Computer Vision with CNN
CNN을 다루는 마지막 챕터가 될 것 같다. [머신러닝/딥러닝] 수업이 끝나면 [컴퓨터 비전] 수업이 따로 기다리고 있기 때문에 이번 포스팅에서는 예습하는 기분으로 가볍게 다룬다.
처음부터 영상처리에 관심에 있는 것이 아니라, 딥러닝을 공부하다보니 CNN을 알게되고, CNN을 공부하다보니 컴퓨터 비전이라는 단어도 알게되는 사람이 많다. 나도 그 중 한명이었는데, 몰라도 일하는덴 상관없지만 모르면 부끄러울 것들이 있다. 바로 영상처리의 목적을 분리해서 이해하는 것이다.
영상처리에 대해 관심을 갖기 전, CNN으로 이미지를 '분류(classification)'해놓고 '탐지(detection)'했다고 말하며 뿌듯해하던 기억이 나는데, 사실은 전혀 달랐다는 것을 뒤늦게 깨닫고 낯부끄러웠던 적이 있다. 그래서 일단 이미지 인식(Recognition)분야의 종류에 대해서 정리하고, 각 기술별로 간단히 포스팅하도록 한다.
컴퓨터 비전은 영상을 이용한 모든 기술을 총칭하는데, 그 중 영상 인식(Recognition)에 대해서 알아보자.Image Recognition
: Image Recognition은 이미지나 영상으로부터 정보를 뽑아 사람이 '인식'할 수 있게 하는 기술을 총칭한다. Image Recognition의 종류는 크게 아래 4가지로 나뉠 수 있다.Image Classification
- Image를 discrete 한 class로 구분(혹은 분류) 하는 기술을 의미한다.
- 위 그림과 같이 Image를 보고 '고양이'일 '확률'이 출력된다. (softmax)
※ softmax → 각 class의 확률을 모두 더하면 1.0
Image Localization
- Image에서 발견된 class가 어디'쯤' 위치하는지 bounding box로 표현하는 기술이다.
- 위 그림과 같이 (고양이일 확률, X좌표, Y좌표, box의 너비, box의 길이)가 출력된다.
Object Detection
- Image에서 다수의 객체(object)를 모두 찾아 bounding box로 표현하는 기술이다.
- 위 그림과 같이 (각 object의 확률, bounding box의 좌표)가 출력된다. (logistic)
※ logistic → 각 class의 확률을 독립적으로 본다.
Instance Segmentation
- Object Detection의 발전된 형태로, object의 형태까지 찾는 기술이다.
- 위 그림과 같이 bounding box보다 자세하게 object의 x, y좌표를 찾아낸다.
그럼 이제 앞 포스팅에서 충분히 다루었던 Classification은 생략하고 Object detection부터 조금 자세히 알아보도록 하자.
1. Object Detection
객체 탐지(Object Detection)는 앞서 설명했듯, 단순히 이미지를 1개 class로 분류(classification)하는 것을 넘어, 복수 객체의 위치까지(localization) 알아내는 기술이다. 이 때, 객체의 위치를 표현하기 위한 box를 bounding box라고 한다. 물론 CNN이 등장하기 전부터 활발히 연구되던 분야지만, CNN 등장 후 획기적인 성과를 달성한 분야이기도 하다.
1) R-CNN (Regions with CNN)
CNN을 활용해 객체 탐지를 시도한 첫번째 논문은 2014년 Ross Girshick에 의해 CVPR에서 R-CNN이라는 알고리즘으로 발표 됐다.
※ Rich feature hierarchies for accurate object detection and semantic segmentation, 2014
2) Fast R-CNN
그래서 2015년에 Ross Girshick는 R-CNN의 빠른 버전인 Fast R-CNN을 ICCV에서 발표한다.
※ Fast R-CNN, ICCV, 2015
3) Faster R-CNN
집요한 Ross Girshick는 같은해 NeurIPS에서 Fast R-CNN보다 더 빠른 Faster R-CNN을 발표한다.
※ Faster R-CNN: Towards Real-Time Object Detection with Regional Proposal Networks, NeurIPS, 2015
Fast R-CNN까지는 위 문제 해결을 위해 region proposal을 rule-base의 알고리즘을 직접 구현했었다. 하지만 Faster R-CNN은 이 알고리즘까지 신경망 구조(RPN)로 교체함으로써 훨씬 빠르게 region proposal이 가능하도록 개선시켰다.
Ross Grishick의 이런 노력은 실제로 Real-time Object detection이 가능하도록 획기적인 학습/실행 속도를 개선시켜 현재까지도 Object detection의 근간이 되고 있다.4) YoLo (You only Look once)
Grishick를 만나보진 못했지만 대단히 집요한 사람이란 생각이 든다. 주 저자는 아니지만 Joseph Redmon, Santosh Divvala와 함께 2016년 CVPR에서 YoLo라 이름붙인 Faster R-CNN보다 10배 더 빠른 알고리즘을 발표한다.YoLo는 Faster R-CNN의 RPN조차 병합해서 1개의 End-to-End 방식의 통합 CNN구조로 각 클래스의 확률과 bounding box의 좌표 모두를 출력한다. 이 연구는 최초의 Real time object detector를 구현했다고 평가받으며 현재까지도 대부분의 Object detection은 YoLo로 구현된다.5) etc.
지금까지 설명한 알고리즘 외에도 Object Detection 분야는 계속해서 발전해 나가고 있으니 관심있는 알고리즘은 관련 논문을 읽어봐도 재미있을 것 같다. (LEGO 경진대회를 보는 느낌이다.)
0 댓글