1. 객체 탐지
앞선 신경망 구조들은 이미지 분류에 초점을 맞춘 모델들이었다.
그렇다면, 고전적인 방법에서 많이 연구된 영상 처리를 통한 객체 탐지의 경우 딥러닝 모델에선 어떤 방식으로 구현할 수 있을까?
우선, 객체 탐지가 어떤 과정으로 이루어지는지 생각해보아야 한다. 객체 탐지의 경우 세 단계의 파이프라인으로 그 과정을 구성해볼 수 있다.
1. 관심있는 영역 찾기
2. 특성 추출
3. 특성에 따른 분류
이와 같은 파이프라인을 수행하는 모델은 대표적으로 R-CNN, Fast R-CNN, Faster R-CNN, YOLO가 있다.
2. 객체 탐지 – R-CNN
R-CNN의 경우 UC 버클리의 로스 거쉭이 2013년 소개한 방법이다. 이 알고리즘은 사람의 어텐션 메커니즘을 본떠 만들어졌는데, 전체 장면을 스캔하고 관심있는 특정 영역에 초점을 맞추는 방식으로 작동한다.
그 과정은 다음과 같다.
1. 이미지에 존재하는 ROI(Region of interest)를 찾기 위해 선택적 탐색
2. CNN을 통해 ROI에서 특성 추출
3. 전통적인 머신러닝 방법인 선형회귀와 서포트 벡터 머신을 연결하여 바운딩 박스의 위치를 정제하고 박스 안의 물체를 2의 과정에서 추출된 특성을 통해 분류
그러나, 이 알고리즘의 경우 몇가지의 문제점이 존재했는데, 입력 크기가 특정 이미지 크기로 고정되어 유연하지 않았다. 또, 훈련과 추론 과정에서 CNN, 선형회귀, 서포트 벡터 머신을 포함한 여러 단계의 계산을 거쳐야 하기때문에 느리고 계산비용이 많이 소모되었다.
3. 객체 탐지 - Fast R-CNN
이 알고리즘 역시 UC 버클리의 로스 거쉭이 개발한 방식이다.[1] 주된 개선점은 ROI마다 한번씩 여러 번 심층신경망(CNN)이 작동되는 것을 발견하고, ROI탐색은 R-CNN과 같은 방식으로 진행되지만, 2번째 단계에서 CNN이 이미지를 한번만 파악하고 모든 ROI에 대한 특성을 동시에 추출한다는 점이다.
이때, CNN의 마지막 층에서 특성 벡터를 추출하여 ROI와 함께 밀집 신경망에 주입하는데, 이 밀집 신경망은 ROI에 적용할 수 있는 특성에만 초점을 맞추어 학습을 한다. 이 밀집 신경망은 2개의 출력을 만드는데, 분류 카테고리에 대한 소프트 맥스 확률을 출력하고, ROI위치 조정을 위한 바운딩 박스 회귀를 출력한다.
이와 같은 방식으로 인해, 이전 R-CNN이 여러 개의 모델을 합쳐 만드는 알고리즘이었던 반면, Fast R-CNN의 경우 단일 모델로 구성되고, 여러가지의 개선을 통해 계산 복잡도를 줄여 수행속도가 빨라졌다.
그러나, ROI탐색 부분에서 여전히 높은 계산 복잡도를 갖는다는 점을 단점으로 갖는다.
4. 객체 탐지 - Faster R-CNN
Faster R-CNN의 경우 이름에서부터 알 수 있듯, 기존의 R-CNN 알고리즘들보다 더 빠른 알고리즘이다. 이 알고리즘의 경우 2015년 마이크로소프트 리서치의 샤오칭 렌이 제시하였다.[2]
이 모델의 경우, 기존 R-CNN계열 모델의 문제점 이었던 ROI 탐색 과정의 병목을 해결하기 위해 이 모델에 포함된 CNN의 특성 활성화 맵을 사용한다. 활성화 맵의 경우, 입력 이미지의 구조 정보를 굉장히 많이 담고 있는데, 각 맵은 위치를 나타내는 2개의 차원을 가지므로(x,y축) 특성의 위치를 표현한 지도라고 표현할 수 있다. 이를 통해 ROI위치를 제안하는 과정을 거치므로, 결국 CNN이 객체 탐지 처리에 필요한 세가지의 단계를 한번에 처리하는 굉장히 빠른 통합 모델을 구축할 수 있게 됐다.
5. 객체 탐지 – YOLO
앞서 알아본 객체 탐지 알고리즘의 경우 CNN은 전체 이미지 중 개별 ROI 즉 부분 이미지만을 판별한다. 조셉 레드몬은 2015년에 이와는 다른 메커니즘을 갖는 YOLO(You Only Look Once)모델을 발표했다.[3]
YOLO의 경우 특성추출을 위해 사전 훈련된 CNN을 먼저 사용한 후, 이미지를 셀 집합으로 나누고 각 셀에 대해 여러 개의 바운딩 박스와 분류 확률을 예측한다. 이 예측 값을 사용해 임계값 보다 큰 클래스 확률과 바운딩 박스를 선택하고, 이를 바탕으로 이미지 안의 객체 위치를 찾아낸다.
Faster R-CNN보다 월등히 빠른 속도를 갖지만, 이미지에 존재하는 작은 물체를 감지하는 것에서는 한계를 보인다. 이를 해결하기 위해 YOLO9000모델과 YOLOv3모델 등을 발표하였는데, 모델의 구조를 조금 더 복잡하게 하여 기존의 한계점을 해결한 대신 약간의 속도를 희생하였다.