👮♀️ Object Detection과 Segmentation 이해
Object Detection - DL 기반으로 발전
- 딥러닝이 컴퓨터 비전에 자리잡은 기점
- 2012년, AlexNet이 ImageNet competition에서 우승
- PASCAL VOC
- Object Detection Competition
- 2012년까지 40%대 유지
- 최근, 70% 후반까지 성장
Localization/Detection/Segmentation
- Classification
- 가장 처음 거치는 과정
- CNN Convolution 연산 적용
- Feature map의 특성을 기반으로 대상 구분
- 대상이 맞는가, 아닌가
- Object Detection
- Object(s)의 위치를 찾아내는 것
- 종류
- Localization
- Detection
- Segmentation
- Localization
- 하나의 이미지 안에서 하나의 대상(object) 탐지
- 단 하나의 Object 위치를 Bounding box로 지정하여 찾음
- 상대적으로 쉽다
- Detection
- 하나의 이미지 안에 여러 대상(object) 존재
- 여러 개의 Object들에 대한 위치를 Bounding box로 지정하여 찾음
- Segmentation
- Detection보다 더 발전된 형태로 Pixel 레벨 Detection 수행
Localization vs. Detection
- 공통점
- 해당 Object의 위치를 Bounding Box로 찾는다
- Bounding Box 내의 Object 판별
- Bounding Box Regression(Box의 좌표값 예측) + Classification
- 차이점
- Localization에 비해 Detection은 두 개 이상의 Object들을 이미지의 임의의 위치에 찾아야 한다
Object Detection History
- Traditional Detection Methods
- 알고리즘 기반 Object Detection
- 2012년 AlexNet 등장 이전
- Deep Learning Based Detection Methods
- 딥러닝 기반
- 2014년, RCNN 계열
- One-stage detector / Two-stage detector
- One-stage detector
- Detect 바로 적용
- YOLO
- 수행 시간에 집중, 성능 bad
- v2: 성능 향상
- SSD
- Retina-Net
- EfficientDet
- Two-stage detector
- Object가 있을만한 위치를 미리 참조
- Faster RCNN
- Pyramid Networks
- 성능이 좋으나 속도가 느림
- 실시간 적용 어려움
👮♀️ Object Detection 주요 구성 요소
Object Detection 주요 구성 요소
- 영역 추정
- Object가 있을만한 위치를 미리 알려준다
- Bounding Box Regression
- Deep Learning network 구성
- Feature Extraction(백본)
- Network Prediction
- + classification
- + regression
- HEAD
- FPN
일반적인 Object Detection 모델
- FPN(neck)
- 작은 Object들에 대한 정보를 체계화하는 역할
- HEAD에서 classification과 regression 수행
Object Detection의 난제
- classification과 regression을 동시에 수행
- 두 layer가 각각 필요
- 두 항목 모두에 최적화된 loss 함수 필요
- 이미지에서 여러 개의 물체를 분류함과 동시에 위치도 찾아야 한다
- 다양한 크기와 유형의 Object가 섞여 있다
- 크기 서로 다르고 생김새가 다양한 Object가 섞여 있는 이미에서 Detect 수행
- 만들어진 feature map을 기반으로 detect 수행
- 원본 이미보다 훨씬 작은 feature map
- detect 어렵다
- Detect 시간 중요
- Detect 시간이 중요한 실시간 영상 기반에서 Detect해야 하는 요구사항 증대
- CCTV 분석, 자율 주행 등
- 복잡한 알고리즘일수록 수행 속도 감소
- 명확하지 않은 이미지
- Object 이미지가 명확하지 않은 경우가 많음
- 전체 이미지에서 detect할 Object가 차지하는 비중이 낮음
- 데이터셋 부족
- 훈련 가능한 데이터셋 부족
- MS Coco dataset 80개
- Google Open Image 500개
- 데이터셋 생성의 어려움
- 생성 시, annotation 필요
- bounding box
👮♀️ Object Localization과 Detection의 이해
Object Localization
- classification과 유사한 절차
- 원본 이미지 >> Feature Extractor >> Feature Map >> FC Layer >> Soft max Class score
- Feature Extractor
- VGG(백본)에 이미지 입력
- 이미지에서 중요한 feature 뽑아냄
- Featur Map
- 사이즈 감소: 7 * 7
- 채널 수 증가: 512
- 추상화된 이미지
- 대상 학습(image-lable mapping)
- FC Layer
- dense layer
- fully connected layer
- Soft max Class score
- car vs. dog vs. cat
- 확률 계산 >> 점수(scoring)
- Object Localization
- Feature Map의 결과
- Bounding Box Regression 포함
- Bounding Box 학습
- 원본 이미지부터 학습 반복
- bounding box의 예측 오류 줄여 나가는 과정
- 여러 이미지와 bounding box 좌표로 학습
- Object Localization 예측 결과
- class: 대상
- confidence score: 확률
- 좌표
Object Detection
- 두 개 이상의 Object를 검출
- 이미지의 어느 위치에서 Object를 찾아야 하는가?
- object localization을 그대로 적용하면 정확도 감소
- Object가 있을 법한 위치를 먼저 알려주는 것이 중요!
👮♀️ 영역 추정과 슬라이딩 윈도우와의 비교
Object Detection - 두 개 이상의 Object를 검출
- Object Detection의 어려움
- binding box regression 학습만으로는 inference 어렵다
- 비슷한 object가 너무 많다
슬라이딩 윈도우(Sliding Window) 방식
- Windows를 왼쪽 상단에서 오른쪽 하단까지 이동시키면서 detect하는 방식
- 특정 영역에서의 특성을 학습된 feature와 매칭
- Object Detection의 초기 기법으로 활용
- 수행 시간이 오래 걸리고 검출 성능이 상대적으로 낮다
- 여러 형태의 window와 여러 scale을 가진 이미지 스캔해서 검출
- Object가 없는 영역도 무조건 슬라이딩해야 한다
- 영역 추정 기법의 등장으로 활용도 감소
- but Object Detection 발전을 위한 기술적 토대 제공
- 슬라이딩 윈도우의 두 가지 방법
- 다양한 형태의 Window를 각각 sliding 시키는 방식
- 서로 다른 anchor box의 유형으로 발전
- Window Scale은 고정하고 scale을 변경한 여러 이미지를 사용하는 방식
- SSD(여러 사이즈의 feature map으로 추출) >> FPN
- 두 방법을 혼합해서 사용하기도 한다
이미지 scale 조정에 따른 여러 크기의 Object Detection
- 이미지 scale을 감소시키면서 고정된 window 안에 있는 Object Detect
- 첫번째 사진
- 좌측 두 사람 Detect 가능
- but 여러 Object들이 혼재되어 있어 detect 혼동 가능성
👮♀️ Region Proposal - Selective Search
Region Poposal(영역 추정) 방식
- Region Proposal
- 목표
- Object가 있을 만한 후보 영역을 찾는 것
- 절차
- 원본 이미지 >> select >> 후보 Bounding Box 선택 >> 최종 후보 도출 >> 최종 Object Detection
- 슬라이딩 윈도우와의 차이
- 슬라이딩 윈도우
- region proposal
- 모든 영역X >> 후보 영역 추출
- 대상이 있을 법한 위치 선정
Selective Search - 대표적인 Region Proposal 방법
- Selective Search
- 빠른 detection과 높은 recall 예측 성능을 동시에 만족하는 알고리즘
- 딥러닝 알고리즘과 통합되는 과정에서 시간 소요
- 색상, 무늬(Texture), 크기, 형태에 따라 유사한 Region
- 계층적 그룹핑 방법으로 계산
- + edge(경계) detect
- 최초에는 Pixel Intensity에 기반한 graph-based segment 기법을 따름
- Segmentation: 픽셀 단위, 매우 촘촘함
- Over Segmentation 수행
- 각각의 Object들이 1개의 개별 영역에 담길 수 있도록 많은 수의 초기 영역 생성
- 원본 이미지 >> 최초 Segmentation(Over Segmentation) >> 후보 Objects
Selective Search의 수행 프로세스
- 개별적으로 Segment 된 모든 부분들에 bounding box 생성
- 색상, 무늬, 크기, 형태에 따라 유사성이 비슷한 Segment들을 그룹핑
- 두 과정을 계속 반복하면서 Region Proposal 수행
* 출처: 인프런 - 딥러닝 컴퓨터 비전 완벽 가이드