묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
mmdetection show_result 함수관련
안녕하세요강사님 강의 덕분에 항상 연구에 큰 도움받고 있습니다 :) 강의에 나온 mmdetection show_result 함수 관련하여 질문드립니다. 상황:from mmdet.api import init_detector # config 파일과 checkpoint를 기반으로 Detector 모델을 생성. model = init_detector(config_file, checkpoint_file, device='cuda:0') model.show_result(img_arr, results, pixel_list, score_thr=0.7, bbox_color=(0,0,0), thickness=0.01,font_size=8, out_file= f'{save_dir1}{rgb_file_name}')위 코드와 같이 init_detector 함수로 model을 생성show_result 함수로 이미지 위에 추론결과를 시각화하려고 합니다. 이때, show_result 함수에 pixel_list라는 인자를 추가하였는데 다음과 같은 에러를 만났습니다. "TypeError: show_result() got multiple values for argument 'score_thr'" 그래서 mmdetection/mmdet/models/detectors/base.py 모듈의 show_result 함수를 수정하였더니 문제가 해결되었습니다. 하지만 mmdetection 내의 mmdet 원본코드를 직접 수정한다면 mmdetection 버전이 바뀔때 마다 매번 해당 코드를 수정해줘야 할 것 같아서요. 혹시 원본코드를 수정하지 않고 새로운 모듈(new_base.py)을 만들고 override를 할 수 있는 방법이 있을까요? (mmdetection/mmdet/api/inference.py의 init_detector와 mmdetection/mmdet/models/detectors/base.py의 show_result 함수가 뭔가 엮여있는 것 같은데 도저히 방법을 모르겠습니다 ㅠㅠ)
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
mmdetection (mask_rcnn) 인퍼런스 관련 질문입니다.
안녕하세요. 좋은강의 잘 듣고 있습니다. 얼마전에 mmd-to-tensorrt 질문을 올렸었는데요. 사실 해당 라이브러리를 사용해보려 한 목적이 Inference의 속도를 향상시키려는 시도의 일환이었습니다. 혹시 mmdetection을 이용한 mask_rcnn 의 추론 속도를 향상시키는 다른 방안을 알고계신가 싶어 질문 드립니다. mmdetection에 포함된 다른 instance segmentation 검출 로직인 yolact를 사용하면 미세하게 속도의 향상이 있으나 검출 정확성 측면에서 mask rcnn이 더 낫더라구요. 항상 좋은 강의 감사드립니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
MMDetection To TensorRT 를 사용시 Mask_RCNN Dimension 문제가 발생합니다 ㅠㅠ
안녕하세요. 선생님의 MMDetection 강의를 보고 여러가지 만들어보고 있는 학생입니다. 다름이 아니고 mask_rcnn에 tensorrt를 적용해보고자 하여 mmd to tensorrt 라는 github를 발견하고 사용해보았습니다. https://github.com/grimoire/mmdetection-to-tensorrt 일단 설치하고 모델 적용을 하는데 기본값으로 모델을 변환하고 추론하면 추론이 되긴 하는데 segm 가 빠진 bbox만 검출이 됩니다. 그리고 파라미터를 수정해서 seg trt_model = mmdet2trt( cfg_path, args.checkpoint, fp16_mode=args.fp16, device=args.device, enable_mask=True, opt_shape_param=opt_shape_param, output_names=["num_detections", "boxes", "scores", "classes", "masks"] ) 요런식으로 만들어 모델을 돌려보면 IndexError: Dimension out of range (expected to be in range of [-1, 0], but got 1)가 가 계속 뜨는데요. 혹시 도움주실수 있을까 하여 작성했습니다. 좋은 강의 감사히 보고있습니다. 감사합니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
mmdetection mask-rcnn 추론결과 title 이름 변경 관련
안녕하세요 강사님 mmdetection 관련해서 이론적으로나 실무적으로나 항상 많은 도움 받고있습니다. 강의 내용을 바탕으로 mmdetection code를 작성하던 도중 질문사항이 생겨서요 ㅎㅎ mmdetection Mask R-CNN 모델을 이용하여 추론결과 아래 사진과 같이 mask, bbox 두가지가 나타나는데 bbox위에 나타나는 title(coin) 대신 변수를 표시하고 싶습니다. class name, confidence score 가 아닌 ID, pixel number를 표시하고 싶습니다. 제 코드는 다음과 같습니다. img_name = path_dir + '/' + file_list[i] img_arr= cv2.imread(img_name, cv2.IMREAD_COLOR) img_arr_rgb = cv2.cvtColor(img_arr, cv2.COLOR_BGR2RGB) # cv2.imshow('img',img) fig= plt.figure(figsize=(12, 12)) plt.imshow(img_arr_rgb) # inference_detector의 인자로 string(file경로), ndarray가 단일 또는 list형태로 입력 될 수 있음. results = inference_detector(model, img_arr) #추론결과 디렉토리에 저장 model.show_result(img_arr, results, score_thr=0.8, title= bbox_color=(0,0,255),thickness=0.5,font_size=7, out_file= f'{save_dir1}{file_list[i]}') 이 결과 추론되는 사진은 다음과 같습니다 아래는 mmdetection/mmdet/core/visualization/image.py에 있는 imshow_det_bboxes 함수입니다. 아래 함수가 시각화 해주는 함수여서 해당 함수를 수정하면 될 것 같은데 아무리 뜯어봐도 어디를 고쳐야할 지 도저히 감이 오질 않습니다 ...ㅠㅠ def imshow_det_bboxes(img, bboxes, labels, segms=None, class_names=None, score_thr=0, bbox_color='green', text_color='green', mask_color=None, thickness=2, font_size=13, win_name='', show=True, wait_time=0, out_file=None): """Draw bboxes and class labels (with scores) on an image. Args: img (str or ndarray): The image to be displayed. bboxes (ndarray): Bounding boxes (with scores), shaped (n, 4) or (n, 5). labels (ndarray): Labels of bboxes. segms (ndarray or None): Masks, shaped (n,h,w) or None class_names (list[str]): Names of each classes. score_thr (float): Minimum score of bboxes to be shown. Default: 0 bbox_color (str or tuple(int) or :obj:`Color`):Color of bbox lines. The tuple of color should be in BGR order. Default: 'green' text_color (str or tuple(int) or :obj:`Color`):Color of texts. The tuple of color should be in BGR order. Default: 'green' mask_color (str or tuple(int) or :obj:`Color`, optional): Color of masks. The tuple of color should be in BGR order. Default: None thickness (int): Thickness of lines. Default: 2 font_size (int): Font size of texts. Default: 13 show (bool): Whether to show the image. Default: True win_name (str): The window name. Default: '' wait_time (float): Value of waitKey param. Default: 0. out_file (str, optional): The filename to write the image. Default: None Returns: ndarray: The image with bboxes drawn on it. """ assert bboxes.ndim == 2, \ f' bboxes ndim should be 2, but its ndim is {bboxes.ndim}.' assert labels.ndim == 1, \ f' labels ndim should be 1, but its ndim is {labels.ndim}.' assert bboxes.shape[0] == labels.shape[0], \ 'bboxes.shape[0] and labels.shape[0] should have the same length.' assert bboxes.shape[1] == 4 or bboxes.shape[1] == 5, \ f' bboxes.shape[1] should be 4 or 5, but its {bboxes.shape[1]}.' img = mmcv.imread(img).astype(np.uint8) if score_thr > 0: assert bboxes.shape[1] == 5 scores = bboxes[:, -1] inds = scores > score_thr bboxes = bboxes[inds, :] labels = labels[inds] if segms is not None: segms = segms[inds, ...] mask_colors = [] if labels.shape[0] > 0: if mask_color is None: # Get random state before set seed, and restore random state later. # Prevent loss of randomness. # See: https://github.com/open-mmlab/mmdetection/issues/5844 state = np.random.get_state() # random color np.random.seed(42) mask_colors = [ np.random.randint(0, 256, (1, 3), dtype=np.uint8) for _ in range(max(labels) + 1) ] np.random.set_state(state) else: # specify color mask_colors = [ np.array(mmcv.color_val(mask_color)[::-1], dtype=np.uint8) ] * ( max(labels) + 1) bbox_color = color_val_matplotlib(bbox_color) text_color = color_val_matplotlib(text_color) img = mmcv.bgr2rgb(img) width, height = img.shape[1], img.shape[0] img = np.ascontiguousarray(img) fig = plt.figure(win_name, frameon=False) plt.title(win_name) canvas = fig.canvas dpi = fig.get_dpi() # add a small EPS to avoid precision lost due to matplotlib's truncation # (https://github.com/matplotlib/matplotlib/issues/15363) fig.set_size_inches((width + EPS) / dpi, (height + EPS) / dpi) # remove white edges by set subplot margin plt.subplots_adjust(left=0, right=1, bottom=0, top=1) ax = plt.gca() ax.axis('off') polygons = [] color = [] for i, (bbox, label) in enumerate(zip(bboxes, labels)): bbox_int = bbox.astype(np.int32) poly = [[bbox_int[0], bbox_int[1]], [bbox_int[0], bbox_int[3]], [bbox_int[2], bbox_int[3]], [bbox_int[2], bbox_int[1]]] np_poly = np.array(poly).reshape((4, 2)) polygons.append(Polygon(np_poly)) color.append(bbox_color) label_text = class_names[ label] if class_names is not None else f'class {label}' if len(bbox) > 4: label_text += f'|{bbox[-1]:.02f}' ax.text( bbox_int[0], bbox_int[1], f'{label_text}', bbox={ 'facecolor': 'black', 'alpha': 0.8, 'pad': 0.7, 'edgecolor': 'none' }, color=text_color, fontsize=font_size, verticalalignment='top', horizontalalignment='left') if segms is not None: color_mask = mask_colors[labels[i]] mask = segms[i].astype(bool) img[mask] = img[mask] * 0.5 + color_mask * 0.5 plt.imshow(img) p = PatchCollection( polygons, facecolor='none', edgecolors=color, linewidths=thickness) ax.add_collection(p) stream, _ = canvas.print_to_buffer() buffer = np.frombuffer(stream, dtype='uint8') img_rgba = buffer.reshape(height, width, 4) rgb, alpha = np.split(img_rgba, [3], axis=2) img = rgb.astype('uint8') img = mmcv.rgb2bgr(img) if show: # We do not use cv2 for display because in some cases, opencv will # conflict with Qt, it will output a warning: Current thread # is not the object's thread. You can refer to # https://github.com/opencv/opencv-python/issues/46 for details if wait_time == 0: plt.show() else: plt.show(block=False) plt.pause(wait_time) if out_file is not None: mmcv.imwrite(img, out_file) plt.close() return img 감사합니다
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
큰 object와 작은 object 동시 segmentation성능 관련 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님, 선생님 덕분에 segmentation 과제를 재미있게 수행하고 있습니다 제가 하고 있는 과제 중에 큰 object와 작은 object를 동시에 판별하는 task가 있습니다 비유를 하자면 콩이 큰콩과 작은콩이 섞여 있고 나머지 특성은 동일한 콩이라 class는 한개로 했습니다 (큰 콩과 작은콩은 많으면 지름 기준 최대 10~20 배 차이) 그런데 작은 콩은 많으면 1000~2000 개씩 있고 큰 콩만 있는 이미지 (30~100 개)도 있습니다 또 쪼개진 콩도 있습니다 (쓰고 나니까 task가 너무 어렵네요...) 그래서 제가 이문제를 잘 맞추기 위해 접근한 방식은 mmdetection에서 max object를 3000 개로 늘리고 roi 제안은 6000개로 늘렸습니다 (cfg.model.test_cfg.rcnn.max_per_img = 3000 #default 100 cfg.model.test_cfg.rpn.nms_pre = 6000 # default 1000 cfg.model.test_cfg.rpn.max_per_img = 6000 # default 1000) 그 다음에 anchor generator stride라는것이 중요하다는 것을 찾아서 기존 [8]에서 [1, 2, 4]로 바꿨습니다 (구글 검색해서 찾은건데 사이트를 지금은 못 찾겠네요;;;) (cfg.model.rpn_head.anchor_generator.scales = [1, 2, 4] # default [8]) 그랬더니 어느정도 작은 입자를 잘 찾는 모델을 만들었습니다만 문제는 큰입자가 있을때 큰입자의 일부분을 쪼개서 작은입자로 찾는 문제가 발견되었습니다 여기서 여쭈어 보고 싶은 점은 1) anchor generator stride 의 정확한 의미가 궁금합니다 제가 이해하기로는 피쳐맵에서 anchor 를 찾는 stride 같은데 (8로 하면 8 grid에 한번 4면 4 grid에 한번) 이걸 1, 2, 4로 하는 것은 무슨 의미인지 아시나요? 2) 큰입자를 찾으면 작은입자를 못잡고 작은입자를 찾으면 큰입자를 못잡는 (잡긴하는데 실제로는 쪼개진 영역이 아닌데 쪼개서 잡는 영역 존재) 문제가 발생하는데 두가지 task를 동시에 하는것이 가능할까요? 3) 다른 모델 (efficient det 등?)을 써야할지 아니면 다른 일반적인 해결책인 있는지 문의드립니다 감사합니다!!
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
mm_mask_rcnn_inference.ipynb 에서 질문입니다.
mmdetection의 mask rcnn을 이용한 video inference 코드 인데요, 강사님 영상에서는 수행 속도가 3.5 task/s가 나오는데, 제가 실행했을때는 1.5 task/s 가 나옵니다. 강사님 영상에서의 아웃풋 제가 실행 했을때 아웃풋 왜 이렇게 차이가 나죠? 제가 뭔가 착각하고 있는건가요? 아래는 해당 코드입니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
MMDetection의 evaluation 기능에 대해 질문 있습니다
안녕하십니까? 언제나 좋은 강의 잘 듣고 있습니다. 보여주신 mask-rcnn 강의 기반으로 MMDetection 실습을 진행하는 도중 test 파일에 대한 F-1 score, mAP 를 계산하는 evlauation 기능에 대한 부분이 해결되지 않아 잘문 남깁니다. mmdetection에 test.py가 있던데, 이걸 활용할 수 있는 방법이 있는 건가요? 새로운 사진에 학습 결과를 테스트 해보고자 질문 남깁니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
mmdetection에 다양한 model 사용하는 방법
안녕하세요! 1. mmdetection에 faster RCNN말고 다른 모델이 많은것 같은데, 만약에 YOLO같은 모델을 사용하고 싶을때에는 pretrained된 weight를 어디서 다운로드 해야 하나요..? mmdetection 문서에서 찾아봐도 잘 안보이네요. 수정) mmdetection github에 config 파일 아래에 있는거 찾았습니다. 2. faster RCNN의 config 파일을 보면 train_pipeline에 image_scale = (1333,800)이라고 되어 있는데 이 scale보다 작은 image가 들어오면 padding을 해주어서 image scale을 맞출것 같은데 더 큰 image가 들어오면 어떤 방식으로 scale을 조정하는지 궁금합니다. 3. 사용자가 model을 학습할때 image 크기의 분포를 대략적으로 알고있으면 2번에 image_scale만 바꿔주면 더 잘 최적화가 될까요..?
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
Segmentation 시각화에 문제가 생겨 질문 드립니다.
mmdetection과 오픈소스 데이터셋으로 실습을 하려는 학생입니다. coco format의 데이터를 받아 시각화를 하려하는데, 시각화 과정에서 이미지의 아이디에 대응하는 세그먼트가 나오는 것이 아니라 사전에 설정된 세그먼트가 아래 그림처럼 이미지와 상관없이 나와 이 문제를 해결하고 싶습니다. 이 세그먼트가 어디에 영향을 받는지 찾아보니 mask rcnn 벌룬 실습코드 기준 3개 셀 위인 이 셀의 coco.loadimgs(*)[0] 중 *에 영향을 받는 것으로 추측할 수 있었습니다. (해당 id를 바꾸면 고정된 세그먼트가 다른 걸로 바뀝니다.) 어디서 문제가 생긴지는 알겠으나 코드를 수정하기엔 모르는 것이 많아 이 문제를 어떻게 해결할 지 여쭤보고자 질문 남깁니다. 추가로 1. 시각화 과정에는 문제가 있어도 학습에는 문제가 없을지(시각화 코드를 수정하지 않아도 학습 코드를 돌리면 제대로 학습이 되는지?) 2. Json 파일에 등록된 이미지의 일부만 images 폴더에 있어도 학습이 되는지(데이터셋이 28만장 이미지로 이루어져있어서 colab이 pro 버전임에도 i/o error를 출력함. 그래서 이미지 중 일부 -약 1만장- 만 빼서 학습에 사용한다면?)? 에 대해서도 답변 남겨주시면 감사하겠습니다. 늘 좋은 강의 잘 듣고 있습니다. 감사합니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
train_test_split 함수에 대해 질문이 있습니다.
수업을 듣고 mmedetection을 이용해 custom dataset을 train 시키려는 작업을 계획 중인데, 걸리는 부분이 있어 질문 드립니다. mmdetection에서 mask-rcnn을 수행하기 위해 kaggle에서 coco format에 맞는 dataset을 받고, json 파일의 형식이 coco format에 맞는지 확인 했습니다. 그런데 이 dataset의 이미지와 json가 train밖에 없어서 train, val로 나누기 위해 train_test_split 을 써야 하는데, 이 함수의 첫 번째 변수로 어떤 것을 넣어야 하는지(mask rcnn nucell실습에서는 meta_df) 잘 이해가 되지 않습니다. 찾아보니 array 형태로 넣어야한다고는 하는데, 단순히 train 이미지가 있는 경로를 np.array로 넣는 것은 아닌 거 같고, 제 파이썬 실력은 많이 부족해 답이 나오지 않아 질문 남깁니다. Dataset의 형태는 사진으로 첨부합니다. json은 약 28만 장에 대한 내용이 coco format으로 나와있습니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
mmdetection을 이용한 faster rcnn 관련 문의(np.long)
안녕하세요 mmdetection을 통하여 Faster RCNN 강의 중 문의사항이 있어 문의드립니다 ◆ 문의사항 np.long 필요여부 : Class KittyTinyDataset(customDataset) 설정 시 data_anno에서 labels의 dtype을 np.long해야만 하는 이유가 있을까요?(np.int32시 error 남) data_anno = { "bboxes" : np.array(gt_bboxes, dtype=np.float32).reshape(-1, 4), "labels" : np.array(gt_labels, dtype=np.long), "bboxes_ignore" : np.array(gt_bboxes_ignore, dtype=np.float32).reshape(-1, 4), "labels_ignore" : np.array(gt_labels_ignore, dtype=np.long) }
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
<mmdetection 관련>
안녕하세요 선생님 강의 잘 듣고 대학원 연구생활에 있어서 많이 도움받고있습니다. 다름이 아니라 수업을 듣던 중 다음과 같은 질문사항이 생겨 질문드립니다. 1. 제가 하려고 하는것은 mmdetection - maskrcnn inference code를 이용하여 inference를 진행한 뒤 추론 결과를 디렉토리에 저장하려고 합니다. 아래 코드와 같이 원본이미지에 추론결과를 덧씌운 결과는 저장에 성공했지만 from mmdet.apis import init_detector, inference_detector, show_result_pyplot import mmcv import torch import cv2 import matplotlib.pyplot as plt #버전 및 gpu 작동확인 print(f"Setup complete. Using torch {torch.__version__} ({torch.cuda.get_device_properties(0).name if torch.cuda.is_available() else 'CPU'})") # config 파일을 설정하고, 미리 학습한 maskrcnn 모델을 checkpoint로 설정. config_file = 'custom_config.py' checkpoint_file = '/Scratch/home/dohyeon/mmdetection/tutorial_exps/epoch_12.pth' # config 파일과 pretrained 모델을 기반으로 Detector 모델을 생성. model = init_detector(config_file, checkpoint_file, device='cuda:0') #디렉토리 내 모든 파일 segmentation 실행 및 저장 path_dir = '/Scratch/home/dohyeon/mmdetection/input/pre-processing/save_point2' file_list = os.listdir(path_dir) for i in range(6): img_name = path_dir + '/' + file_list[i] img_arr= cv2.imread(img_name, cv2.IMREAD_COLOR) img_arr_rgb = cv2.cvtColor(img_arr, cv2.COLOR_BGR2RGB) # cv2.imshow('img',img) fig= plt.figure(figsize=(12, 12)) plt.imshow(img_arr_rgb) # inference_detector의 인자로 string(file경로), ndarray가 단일 또는 list형태로 입력 될 수 있음. results = inference_detector(model, img_arr) # inference 된 결과를 원본 이미지에 적용하여 새로운 image로 생성(bbox 처리된 image) # Default로 score threshold가 0.3 이상인 Object들만 시각화 적용. show_result_pyplot은 model.show_result()를 호출. show_result_pyplot(model, img_arr, results) #추론결과 디렉토리에 저장 model.show_result(img_arr, results, out_file= f'input/pre-processing/save_point3/{file_list[i]}') 제가 원하는 방법은 원본이미지에 추론결과를 덧씌운 show_result_pyplot 과 같은 이미지가 아니라 원본에 덧씌우지 않은 추론결과만을 저장하고 싶습니다. 혹시 좋은 방법이 있을까요? 2. 추론 결과가 mask 형태의 이미지처럼 나오나요? 아니면 배열과 같이 나오나요? 3. 만약 추론결과가 mask형태의 이미지처럼 나온다면 위 그림과 같이 배경 픽셀은 0이고 사람의 픽셀만 0~255 사이의 값으로 나오나요? 이상입니다 감사합니다
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
mmdetection segmentation 모델로 object detection 학습
mmdetection의 detectoRS로 object detection을 해보고자 하는데 detectoRS(HTC + ResNet-101)는 segmantation에 사용되는 모델이라 config값에 추가적인 값들이 있는 것 같습니다. 이럴 때는 config에서 mask관련 설정은 모두 없애고 학습해야되나요? config를 어떻게 건드려야 할지 잘 모르겠습니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
json convert 질문입니다.
안녕하세요..? 깅사님 그 혹시 데이터 셋이 png 이미지랑 mask 이미지 밖에 없습니다. ann 파일이 전혀 없습니다. 그래서 json 파일을 만들어야 하는데 혹시 만드는 방법이나 참고할 만한 자료가 있을까요 .. ? ㅠㅠ
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
mmdetection 학습 중 이미지 파일명 출력 방법에 대해서 문의드립니다.
안녕하세요. mmdetection을 통해서 데이터를 순차적으로 읽어오려고 하고 있습니다. 관련 설정 변경으로 shuffle 부분을 변경하긴 했는데 실제로 데이터가 순차적으로 오는지 확인하기 위해서, batch size 크기로 파일명을 모델 학습 시, 출력을 해보고 싶은데.. 구조가 너무 복잡하다보니 어디에 코드를 넣는게 좋을지 잘 모르겠습니다. 혹시 어디 부분을 수정하면 좋을지 조언을 받을 수 있을까요?
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
mmdetection config 질문드립니다.
data = dict( samples_per_gpu=2, workers_per_gpu=2, train=dict( type=dataset_type, ann_file=data_root + 'annotations/instances_train2017.json', img_prefix=data_root + 'train2017/', pipeline=train_pipeline), 안녕하세요. 선생님 config 관련 정보를 보다가 samples_per_gpu 와 workers_per_gpu에 대해서 알고 싶어 질문드립니다.GPU 하나를 쓴다고 하였을 때,samples_per_gpu의 경우는 batch_size와 동일해진다고 해석을 하였는데...이 해석이 맞는지 헷갈려서 문의드립니다.그리고 workers_per_gpu 부분은 정확히 무슨 의미인지, 그리고 숫자 증가에 따라 어떤 차이가 발생하고어떻게 선정을 하는 것인지 궁금합니다.단순 구글 검색해서 nums_worker 같은 경우, cpu에서 gpu로 데이터를 넘기는데 cpu 코어를 얼마나 할당해서 gpu로 데이터를 넘길 것인가 부분이라고 나왔는데이 내용이 config의 workers_per_gpu랑은 다른 내용인 것 같아 질문드립니다.항상 좋은 강의 감사드립니다.
-
해결됨[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
안녕하세요 ..? gpu 사용량에 대해서 질문이 있습니다.
안녕하세요 .. ? 강사님 강의 잘 듣고 있고, 정말 많이 배우고 있습니다. 자꾸 귀찮게 해드리는 것은 아닌지 죄송할 따름입니다. Oxford Pet의 dataset의 학습을 다 끝내거나, cfg와 epoch5.pth로 inference_detector로 모델을 만들어 하나의 이미지에 object detection을 수행을 끝낸 뒤에 리눅스에서 nvidia-smi로 gpu 사용량을 확인해 보면 학습 또는 object detection이 끝났음에도 gpu 사용량이 유지되는 것을 확인했습니다.(학습이 끝난 뒤에도 몇 분이 지났음에도 nvidia-smi를 눌렀을 때, 10650Mib의 사용량을 유지 했습니다.) 이 gpu 사용량이 왜 유지 되는 것인지 혹시 알 수 있을까요 .. ? 아래 사진은 object detection이 끝난 후 수분이 지났음에도 유지되는 gpu 사용량 사진입니다.
-
해결됨[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
안녕하세요 강사님 ~!!
안녕하세요 .. ? 지금 mmdetection kitti_tiny 학습 강의를 듣고 있습니다. 혹시 Pretrained된 모델을 학습 시키고 나서, 학습 시킨 inference 모델을 다시 불러 올 때, tutorial_exps 폴더에 있는 epoch_12.pth 파일을 가져오면 되나요 .. ? 이렇게 하면 될까요 .. ? config_file = '/content/mmdetection/configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py' checkpoint_file = '/content/mmdetection/tutorial_exps/epoch_12.pth'
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
mmdetection에서의 mask-rcnn에 대해서 질문이 있습니다
안녕하세요 mmdetection 모델 목록에 mask-rcnn이 있는데, 그 이유가 roi-align 부분만 빼면 Detection 모델인 Faster-RCNN이랑 똑같기 때문에 그런 것인가요?