프로젝트의 본격적인 진행 전에 구현 가능성 및 필요 기술들을 알고 세부적인 구상을 위해 여러가지 기술에 관한 조사를 진행하였다.
이번 글에서는 내가 조사하고 보고서에 기입한 기술의 원리, 역사 등을 기술하겠다.
컴퓨터 비전은 인공지능(AI)의 한 분야로, 컴퓨터와 시스템을 통해 디지털 이미지, 비디오 및 기타 시각적 입력에서 의미 있는 정보를 추출한 다음 이러한 정보를 바탕으로 작업을 실행하고 추천할 수 있도록 한다. AI를 통해 컴퓨터가 생각을 할 수 있다면 컴퓨터 비전을 통해서는 컴퓨터가 보고, 관찰하고 이해할 수 있다.
컴퓨터 비전은 인간이 세상을 바라보는 시각 원리와 매우 비슷하게 작동한다.
합성곱 신경망은 시각적 영상을 분석하는 데 사용되는 다층 피드-포워드적인 인공신경망 종류이다. 필터링 기법을 인공신경망에 적용하여 이미지를 효과적으로 처리할 수 있는 심층 신경망 기법으로 행렬로 표현된 필터의 각 요소가 데이터 처리에 적합하도록 자동으로 학습하는 과정을 통해 이미지를 분류한다.
합성곱 신경망을 이용하여 영상 분류를 진행할 시, 다른 영상 분류 알고리즘에 비해 상대적으로 전처리를 거의 사용하지 않는다는 특징을 가지고 있다. 특징을 구분할 영상에 대해 사전에 특징을 미리 이해하고 알고리즘을 정의할 필요가 없다는 것이 합성곱 신경망의 가장 큰 장점이다.
합성곱 신경망 구조
쉽게 설명하면
- Classification -> 이게 뭐냐 (단일 물체)
- Object Detection -> 대강 어디에 뭐가있냐 (여러 물체)
- Instance Segmentation -> 누끼까지 따라 (여러 물체)
- Classification + Localization -> Object Detection의 단일객체 탐지 버전
이 프로젝트에서 주된 내용을 이룰 Object Detection은 single object가 아닌 여러 물체(Multiple objects)에 대해 어떤 물체인지 클래스를 분류하는 Classification(분류) 문제와, 그 물체가 어디 있는지 박스(Bounding box)를 통해 위치 정보를 나타내는 Localization(지역화) 문제를 모두 포함한다.
위 이미지 처러 오랜 시간 발전해온 객체탐지 알고리즘은 많은 종류가 존재한다.
각각의 알고리즘마다 세세한 차이는 존재하겠지만, 최근 들어서서는 Region Proposal 단계의 차이를 중심으로 1-stage-detector와 2-stage-detector 으로 세분화되어 연구되는 경향이있다.
Regional Proposal은 객체 감지(Object Detection)의 첫 번째 단계로, 이미지에서 객체가 있을 가능성이 있는 영역을 찾는 작업이다. Regional Proposal은 객체 감지 성능에 중요한 영향을 미치기 때문에, 다양한 방법들이 연구되고 있다.
RP 과정에서 사용되는 대표적인 방식에는 Sliding Window, Selective Search, Region Proposal Network 등 다양한 방법들이 있다.
거의 대부분의 Regional Proposal 단계는 1-stage-detector와 2-stage-detector로 나눌 수 있다.
1-stage-detector와 2-stage-detector는 object detection의 두 가지 주요 접근 방식이다.
1-stage-detector는 단일 단계로 객체 감지를 수행하는 반면, 2-stage-detector는 두 단계로 나누어서 객체 감지를 수행한다.
1-stage-detector는 이미지에서 객체를 찾을 수 있는 후보 박스(region proposal)를 생성하고, 이 후보 박스에 대한 분류(classification)와 bounding box regression을 동시에 수행한다.
장점
빠른속도
1-1 1-stage-detector는 후보 박스 생성과 분류, bounding box regression을 동시에 수행하기 때문에 2-stage-detector보다 빠른 속도를 달성할 수 있다.
간단한 구조
1-stage-detector는 후보 박스 생성과 분류, bounding box regression을 모두 단일 네트워크에서 수행하기 때문에 구조가 간단하다.
단점
One Stage Detector 방식을 사용하는 모델은 대표적으로 YOLO, SSD, RetinalNet 등이 있습니다.
2-stage-detector는 이미지에서 객체를 찾을 수 있는 후보 박스를 생성하는 단계와 이 후보 박스에 대한 분류와 bounding box regression을 수행하는 단계로 나누어져있다.
장점
높은 정확도
2-stage-detector는 후보 박스를 생성하는 단계에서 정확도를 높인 후, 분류와 bounding box regression을 수행하기 때문에 대체적으로 정확도가 1-stage-detector보다 높다.
더 다양한 물체감지
2-stage-detector는 후보 박스를 생성하는 단계에서 다양한 크기와 모양의 물체를 고려할 수 있기 때문에 다양한 물체 감지에 적합하다.
Two Stage Detector 방식을 사용하는 모델은 대표적으로 R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN 등이 있습니다.
참고논문: ArXiv 아카이브 YOLOv7 논문
논문 요약: YOLOv7은 5 FPS에서 160 FPS 범위에서 모든 알려진 객체 탐지기 중에서 속도와 정확도 모두에서 우수한 성능을 보이며, GPU V100에서 30 FPS 이상에서 가장 높은 정확도 56.8% AP를 기록한다.
YOLOv7은 YOLOR, YOLOX, Scaled-YOLOv4, YOLOv5 등 다양한 객체 탐지기들을 속도와 정확도에서 앞선다.
"YOLOv7 모델의 다양한 종류"
COCO dataset은 80개의 카테고리, 33만 개의 이미지, 250만 개의 객체 인스턴스로 구성된 데이터셋으로 기본적인 객체분류 모델학습에 자주 사용되는 개방된 데이터셋이다.
YOLOv7 모델 레포지토리: WongKinYiu - github
MS COCO dataset: COCO
이 개발 블로그는 개인의 개발과정 및 학습내용을 간단히 정리하기 위해 작성된 것으로, 기술된 내용이 부정확하고 사실과 다를 수 있습니다.
이 글에 나오는 내용들을 당신의 프로젝트 및 학습의 참고용으로 사용하는건 지양해주세요. (다 틀려도 난 몰라)