본문 바로가기

반응형

Machine Learning Tasks/Object Detection

(9)
Object Detection - EfficientDet (2) 이전 포스트 [Machine Learning/Vision] - Object Detection - EfficientDet (1) Experiements Object detection COCO 2017 테스트 데이터셋에 대해 성능을 평가하고 data augmentation 기법으로 horizontal flipping 과 cropping 직전에 이미지를 0.1-2.0 사이로 리사이즈하는 scale jittering 을 사용합니다. 성능평가 방법으로 soft-NMS를 사용합니다. 성능평가 결과는 Table 2와 같습니다. Table 2는 비슷한 성능을 가진 다른 baseline 모델과 묶은 것으로 먼저 EfficientDet-D0는 YOLOv3 과 성능이 비슷하면서 FLOPS는 28배 정도 적습니다. Retin..
Object Detection - EfficientDet (1) CNN 모델의 속도-성능 tradeoff 문제는 굉장히 중요합니다. MobileNet, ShuffleNet, EfficientNet 모델과 같이 모델의 파라미터와 연산량을 (FLOPS) 줄이면서 컴퓨터 비젼의 다양한 태스크에 대한 성능을 높이려는 경량화 시도가 계속되고 있는데요, 여러 vision 관련 태스크 중에서도 object detection 태스크는 핸드폰, 자율주행, 로봇 등 다양한 분야에 적용되므로 모델의 연산량, 크기를 줄이면서 정확도를 높이는 것이 매우 중요합니다. 이번 포스트에서 살펴볼 내용은 구글에서 발표한 EfficientDet 으로 scalable, efficient object detection 을 위해 1) BiFPN detector, 2) EfficientNet compount..
Object Detection - YOLO v3 Pytorch 구현 (2) 지난 포스트 [Machine Learning/기타] - Object Detection - YOLO v3 Pytorch 구현 (1) Training Model 모델은 Darknet 을 사용합니다. YOLO 공식 홈페이지에 사전훈련된 Darknet 모델의 파라미터 "yolov3.weight"를 받을 수 있는데, 바이너리 파일이므로 Pytorch / Keras 프레임워크로 별도로 모델을 구성했다면 사전훈련된 파라미터 값을 레이어에 따라 적절하게 덮어씌우는 과정이 필요합니다. 즉, Darknet 모델을 불러오고 사전훈련된 파라미터 값을 불러온 이후에 backbone 모델 파라미터를 고정시키고 detector 부분만 따로 훈련시키는 전이학습을 (transfer learning) 수행합니다. 따라서 backbone..
Object Detection - YOLO v3 Pytorch 구현 (1) [Machine Learning/기타] - Object Detection - YOLO v3 이번 포스트에서는 YOLO v3 Pytorch 구현을 해보고자 합니다. Datasets PASCAL VOC 2007 / 2012 데이터셋을 먼저 다운받습니다. YOLO 공식 홈페이지에 접속하면 PASCAL VOC 데이터 처리 방법에 대해 상세히 나와 있습니다. wget 명령어를 이용하여 VOC 데이터셋 tar 파일을 다운받습니다. 구글 코랩을 이용할 경우 '/content' 경로에 다운받아지며 리눅스 CLI로 동작시키기 위해서는 느낌표를 명령어 앞에 붙여야 합니다. !wget https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar !wget https://pjr..
Object Detection - SSD (Single Shot MultiBox Detector) 이번 포스트에서 살펴볼 object detecion 알고리즘은 SSD (Single Shot Detector) 입니다. Region proposal networks 를 사용한 2-스테이지의 Faster-RCNN은 정확도가 매우 높지만 real-time 에 부적합한 7 FPS라는 매우 낮은 속도를 가지고, YOLO는 1-스테이지 detector 로서 속도가 45 FPS로 매우 높지만 정확도가 낮고 작은 물체를 잘 감지하지 못하는 단점이 있었습니다. SSD는 YOLO보다 빠르면서 Faster-RCNN 만큼 정확도를 높이는 다양한 테크닉을 사용하는데요 한번 살펴보도록 하겠습니다. SSD Figure 1은 YOLO와 SSD의 비교 그림입니다. SSD는 입력 이미지를 300을 사용하며 (SSD300), fully..
Object Detection - DIoU, CIoU Object detection 알고리즘은 YOLO 시리즈, SSD 같은 1-스테이지 detection 과 R-CNN 계열의 2-스테이지 detection 으로 나눌 수 있지만, 이미지에 존재하는 객체의 localization 을 위한 bounding box regression 은 필수적으로 포함되며 일반적으로 $l_1, l_2$ norm의 목적함수로 훈련됩니다. 하지만 bounding box regression 성능 평가는 $l_1, l_2$ norm의 스케일과 해석의 비직관성으로 인해 타겟 박스와 (라벨) 예측한 박스가 겹치는 정도를 나타낸 IoU를 (Intersection over Union) 사용합니다. (Equation 1) 따라서, 테스트 메트릭과 (IoU) 목적함수의 ($l_1, l_2$) 불..
Object Detection - YOLO v3 지난 포스트 [Machine Learning/기타] - Object Detection - YOLO v2 YOLO v2 가 나온 시점에서는 object detection 알고리즘 내에서 가장 빠르고 정확한 알고리즘 중 하나였지만 이후에 공개된 RetinaNet, SSD 등 다른 object detection 알고리즘에 비해 정확도가 낮고 작은 물체를 잘 탐지하지 못한다는 문제점이 있었습니다. YOLO v3 는 성능을 향상시키기 위한 다양한 업데이트를 YOLO v2 에 반영했는데요, 한번 살펴보도록 하겠습니다. Updates Darknet-53 YOLO v2 포스트에서 살펴봤듯이 YOLO v2 는 이미지 feature 를 추출하기 위해 19-layer 로 되어있는 Darknet-19 를 backbone ne..
Object Detection - YOLO v2 이번 포스트에서는 YOLO (You Only Look Once) 후속작 YOLO v2 에 대해서 다뤄보도록 하겠습니다. Better YOLO 가 다른 detection 모듈에 비해 대표적으로 안좋은 점은 적은 수의 bounding box 로 인해 재현율이 (recall) 낮다는 점입니다. 특히, 컴퓨터 비젼에서는 점점 더 깊고 큰 neural networks 를 사용하는 추세이지만 object detection 은 정확하고 충분히 빨라야하기 때문에 YOLO v2 에서는 모델을 더 크게 구성하는 대신 모델의 구성요소를 바꾸어 성능을 향상시킵니다. Batch normalization 먼저 모든 convolution layer 에 batch normalization 을 적용합니다. 이를 통해 2% 정도의 mA..

반응형