본문 바로가기

8. OpenCV | CV

8/3(목) IT K-DT(104일차) / 4.ObjectDetection

 

4. Object Detection(객체 탐지)

 

4-1. Object Detection(객체 탐지)

컴퓨터비전과 이미지처리와 관련된 컴퓨터기술. 디지털이미지와 비디오로 특정한 계열의 Sementic Instance를 감지하는 행위.
얼굴검출, 보행자검출 등이 포함됨

4-1-1. 컴퓨터 비전의 Task 비교

Image Classification: 이미지에 있는 개체 범주 목록을 생성해서 구별
Single-Object Localization: 이미지에 있는 개체 범주 목록과 각 개체 범주의 한 인스턴스의 위치와 배열을 나타내는 bounding box 생성.

https://machinelearningmastery.com/object-recognition-with-deep-learning

 

A Gentle Introduction to Object Recognition With Deep Learning - MachineLearningMastery.com

It can be challenging for beginners to distinguish between different related computer vision tasks. For example, image classification is straight forward, but the differences between object localization and object detection can be confusing, especially whe

machinelearningmastery.com

 

Object Detection: 각 개체 범주의 모든 인스턴스의 위치와 배율을 나타내는 축 정렬 경계 상자와 함께 이미지에 있는 개체 범주 목록 생성

 

4-1-2. 논문 흐름도

https://oniss.tistory.com/39 

 

object detection 논문 흐름도

해당 논문들 https://github.com/hoya012/deep_learning_object_detection Object Detection in 20 Years (20년간의 Object Detection에 대해 연구한 논문) https://arxiv.org/pdf/1905.05055.pdf

oniss.tistory.com

사진에서 빨간글씨는 숙지해두는것을 추천 // 크게 R-CNN계열과 YOLO계열로 나뉘어져있음

 

4-2. 전통적인 Object Detection

https://pyimagesearch.com/2021/04/12/opencv-haar-cascades/

 

OpenCV Haar Cascades - PyImageSearch

In this tutorial, you will learn about OpenCV Haar Cascades and how to apply them to real-time video streams.

pyimagesearch.com

 

Sliding Window:
이미지를 가로질러 고정된 크기의 window를 여러 배율로 slide하여 객체를 탐지하는 것.
각 단계에서 window가 중지되고 일부 feature를 계산한 다음 

해당 영역의 객체가 포함되어 있는지 여부를 확인함.
https://hoya012.github.io/blog/Tutorials-of-Object-Detection-Using-Deep-Learning-what-is-object-detection 

 

Tutorials of Object Detection using Deep Learning [1] What is object detection?

Deep Learning을 이용한 Object detection Tutorial - [1] What is object detection?

hoya012.github.io

 

Selective Search:
색상, 질감 및 모양과 같은 다양한 하위 수준 이미지 기능을 결합하여 이미지 영역의 계층적 그룹을 만드는 방식으로 작동
이밎를 여러 개의 작은 영역으로 과도하게 분할한 다음 색상, 질감, 또는 기타 기능의 유상성에 따라 영역을 재귀적으로 병합
이미지 영역 계층 구조를 사용하여 개체 제안을 생성 -> 서로 다른 배율과 해상도의 영역을 결홥하여 전체 이미지를 덮는 후보 개체 위치 집합을 만들어 수행
머신러닝 알고리즘 또는 기타 기준을 사용하여 개체를 포함할 가능성에 따라 점수를 매김

 

4-3. Two Stage 모델

탐색 영역을 찾는 Region Proposal과 해당 영역을 분류하는 detection,

두 가지 과정이 순차적으로 수행되는 방법론을 의미.


https://wsshin.tistory.com/9

 

[논문정리] RCNN, Fast RCNN, Faster RCNN 핵심!

이번 포스팅은 Object Detection 중 2-Stage Detector의 큰 흐름이라고 할 수 있는 R-CNN 계열에 대해 정리해보겠습니다. 이미 블로그, 유튜브를 포함한 많은 곳에서 R-CNN 계열을 설명하고 있으므로, 이번 포

wsshin.tistory.com

위치를 찾는 문제(Localization)
물체가 있을법한 위치를 찾음.
1개의 이미지 안에서 물체가 있을법한 위치를 찾아 나열하는 과정에 대한 정보를 제안.
분류의 문제(Classificatoin)
각각의 위치에 대해 class를 분류.
이미지 내의 사물에 존재하게 하는 bounding box를 예측하는 regression 사용

 

4-3-1. R-CNN

Selective Search를 이용해 2,000개의 Roi를 추출
각 RoI에 대해 동일한 크기의 입력 이미지로 변경
이미지를 CNN에 넣어 벡터 이미지를 추출
해당 feature를 SVM에 넣어 class 분류 결과를 얻음
입력 이미지에 대해 CPU기반의 Selective Search를 진행하므로 많은 시간이 소요됨

 

4-3-2. Fast R-CNN

동일한 Region proposal을 이용하지만 이미지를 한 번만 CNN에 넣어 Feature Map을 생성.
Region proposal: 물체가 있을법한 위치를 찾는 것.
입력 이미지에 대해 CPU기반의 Selective Search를 진행하므로 많은 시간이 소요됨

 

4-3-3. Faster R-CNN

병목에 해당하던 Region proposal 작업을 GPU에서 수행함


RPN(Region Proposal Network):
슬라이딩 윈도우를 거쳐 각 위치에 대해 Regression과 Classification을 수행
전체 class에 대한 결과가 아닌 물체가 있는지 없는지에 대한 여부만 output으로 알려줌
Regression Layer는 bounding box의 위치를 잘 예측할 수 있도록 도와줌