object detection 9

[Object Detection] RetinaNet: Focal Loss for Dense Object Detection

RetinaNet은 2017년도 FaceBook AI Research 팀에 의해 개발되었으며 YOLOv3보다 먼저 나온 모델입니다. 당시 One-stage detector는 빠른 detect 속도는 인정받았지만 Faster R-CNN보다 detection 정확도는 떨어진다는 인식이 있었습니다. RetinaNet은 One-stage detector의 빠른 detection 속도의 장점을 가지면서 (SSD나 YOLO보다는 떨어짐) One-stage detector의 detection 성능 저하 문제를 개선시켰습니다. 특히 다른 One-stage detector보다 작은 Object에 대한 detection 성능이 뛰어났는데, 이렇게 detect 성능을 높인 RetinaNet의 2가지 특징이 바로 Focal ..

카테고리 없음 2024.04.16

[Object Detection] YOLOv2 (YOLO9000:Better, Faster, Stronger)

이전 포스팅에서 설명한 YOLOv1은 inference 속도는 빠르지만 크기가 작은 object는 잘 detect하지 못하고 새로운 형태의 Bounding Box의 경우 정확히 예측하지 못하는 등 detection 성능이 떨어진다는 큰 단점이 있었습니다. YOLOv2는 그 당시 나왔던 여러 기술들을 합쳐 YOLOv1에 비해 수행 시간과 성능 모두 개선시킨 모델입니다. 이번 포스팅에서는 YOLOv2와 함께 성능을 향상시킨 방법들에 대해서 YOLOv1과 비교하면서 설명하도록 하겠습니다. 성능 향상 방법 1. Batch Normalization 배치 정규화는 다른 regularization의 필요성을 없애고 학습하는 과정 자체를 전체적으로 안정화하여 학습 속도를 가속 시키는 역할을 합니다. YOLOv2는 모든..

[Object Detection] YOLOv1 (You Only Look Once:Unified, Real-Time Object Detection)

이번 포스팅부터는 one-stage detector에 해당하는 YOLO를 버전별로 설명하도록 하겠습니다. YOLO는 현재 (2024년 3월 19일 기준) 9번째 버전까지 나올 만큼 자주 사용되고 활발히 개발되면서 실시간 Object Detection의 대명사로 자리잡게 되었습니다. YOLOv1의 구조 및 동작 방식 YOLOv1의 전체적인 모델 구조는 다음과 같습니다. YOLOv1의 모델은 GoogLeNet으로부터 많은 영감을 받았으며 이를 일부 수정하여 DarkNet이라는 독자적인 Convolutional Network을 만들어 사용했습니다. 24개의 Convolutional Layer(Conv Layer)와 2개의 Fully-Connected Layer(FC Layer)로 연결된 구조이며, Google..

[Object Detection] Faster R-CNN

Fast R-CNN은 ROI Pooling Layer을 사용하여 학습 시간과 객체 검출 시간을 이전 모델들보다 월등히 단축시켰습니다. 하지만 2.3초라는 Fast R-CNN의 detect 시간은 실시간으로 사용되기에는 너무 긴 시간입니다. Fast R-CNN의 detect 시간을 늘린 가장 큰 요인은 바로 Region Proposal로 사용된 Selective Search이었습니다. Selective Search는 딥러닝에 포함되지 않고 외부에서, CPU를 사용해야만 수행될 수 있었기에 detect 시간이 길어진 것이었죠. 이번 포스팅에서 알아볼 Faster R-CNN 모델은 이 Selective Search 부분을 Region Proposal Network(RPN)로 바꾸면서 비로소 모든 요소들을 딥러..

[Object Detection] IoU(Intersection over Union) & NMS(Non-Max Suppression)

이번 포스팅에서는 본격적으로 딥러닝 기반의 Object Detection 알고리즘들을 살펴보기 전에 미리 알아둬야 하는 개념인 IoU와 NMS에 대해서 설명하도록 하겠습니다. IoU(Intersection over Union) Classification의 경우 모델이 예측한 class가 맞는지 틀렸는지 쉽게 판단할 수 있습니다. 실제 class와 일치한지, 불일치한지만 보면 되기 때문입니다. 하지만 Bounding Box의 경우 예측된 Bounding Box가 실제 Bounding Box(Ground Truth)와 애초에 100% 일치할 확률이 거의 없습니다. 따라서 예측된 Bounding Box는 Ground Truth와 일치하냐 불일치하냐를 보기보다는 두 영역이 얼마나 일치하는지를 평가하는 지표가 필..

[Object Detection] Selective Search (선택적 탐색)

개요 이전 포스팅에서 배운 Sliding Window 방식은 일정 크기의 window가 이미지의 모든 영역을 sliding하면서 객체를 찾기 때문에 계산량이 매우 많다는 단점이 있었습니다. 이 단점을 보완하기 위해서 객체가 있을만한 후보 영역을 미리 찾고 그 영역 내에서만 객체를 찾는 방식을 Region Proposal(영역 추정) 방식이라고 합니다. 오늘은 이 Region Proposal의 대표적인 방법 중 하나이자 초기 Object Detection 모델인 R-CNN에 사용된 Selective Search에 대해서 살펴보도록 하겠습니다. Selective Search 과정 Selective Search 이전에 물체가 있을만한 영역을 모두 조사해보는 Exhaustive Search 방법이 있었습니다. ..

[Object Detection] Sliding Window

개요 2개 이상의 객체를 찾아야하는 Object Detection은 feature map이 복잡하게 나타나 객체의 위치를 잘 찾을 수 없었습니다. 단순하게 생각해본다면, 이는 전체 입력 이미지를 작은 영역들로 나누고 각각의 작은 영역 내에서 객체의 위치를 찾는다면 해결할 수 있습니다. 입력 이미지를 작은 영역으로 나눌수록 feature map도 간단해지기 때문이죠. 이러한 방식을 Sliding Window라고 합니다. Sliding Window Slinding Window 기법은 일정 크기의 window를 이동시키며, window 내에서 object를 detection하는 방식입니다. 이때 window는 마치 CNN에서 커널이 입력 이미지와 연산하며 움직이는 것처럼 왼쪽 상단에서부터 오른쪽 하단으로 이동..

[Object Detection] 개념 정리

Object Detection이란? Object Detection이 무엇인지 정확히 알기 위해서는 Classification과 Localization에 대해서 먼저 알아야 합니다. Classification Classification이란 입력으로 들어온 이미지 안의 객체(object)의 종류(이를 class라고 합니다.)를 구분하는 것을 말합니다. 가령 아래 그림과 같은 강아지 이미지가 입력으로 들어올 때 이미지 안의 객체가 고양이, 강아지, 말 class 중 어떤 class에 속하는지 분류하는 것을 뜻합니다. Localization Localization은 주어진 이미지 안의 객체가 어느 위치에 있는지 위치 정보를 출력해줍니다. 객체의 위치 정보는 주로 Bounding Box(객체를 둘러싼 네모)로 표..