su1433.log
로그인
su1433.log
로그인
객체 검출
suhan cho
·
2022년 3월 28일
팔로우
0
0
사물 인식하는 방법
Object Dectection은 다수의 사물 존재하는 상황에서 각 사물의 위치와 클래스를 찾는 작업 (사각형 바운딩 박스)
Instance Segmentation은 각 사물을 (픽셀단위로) 구분
객체 검출 2-stage 1-stage
2-Stage Detector
물체 1위치를 찾는 문제(localization)와 2분류(classification)문제를 순차적으로 해결
region proposals 각각의 위치를 제안
각각의 위치의 특징을 추출
이를 통해 classification 분류하고, Regression 이미지내 사물이 있는 바운딩 박스의 좌표를 예측
1-Stage Detector
물체의 위치를 찾는 문제(localization)와 분류(classification)문제 한 번에 해결(2-stage보다 빠르지만 정확도 떨어짐 ex) yolo)
2-Stage 방식 예시
R-CNN
이미지를 cpu상에서 Selective Search를 한다. 물체가 있을 법한 위치를 약 2천개를 찾게됨
약 2천개의 물체를 개별적으로 CNN 네트워크에 넣어 특징벡터를 추출
SVMs을 통해 classification, Regressors통해 물체의 정확한 위치 바운딩 박스로 조절 예측 가능하도록 한다.
Fast R-CNN
R-CNN과 동일하게 cpu상에서 selective search를 통해 약 2천개의 region proposals를 찾는다.
feature map을 뽑기 위해서 CNN을 한번만 거친다.
Rol pooling을 통해 각각의 region에 대해 feature을 추출
(CNN 구조상 Feature Map은 input이미지에 대해서 각각에 위치에 대한 정보를 어느 정도 보존하고 있기에 가능)
기본적 CNN네트워크를 이용해서 Softmax 레이어를 거쳐 각각의 클래스에 대한 확률을 구한다.
Faster R-CNN
기존에 cpu상에서 selective search를 했는데 GPU상에서 region proposal의 연산을 할 수 있는 RPN(Resion proposal network)
RPN : featuremap을 보고 어느 곳에 물체가 있을 법한지 예측한다. Selective Search의 시간적 문제를 해결하는 대안
학습이 이루어지고 나고서 GPU상에서 한번의 fowarding만 수행하면 물체가 어디 있을지 예측가능
물체가 있을 법한 위치 찾기 : Sliding Window
이미지에서 다양한 형태의 윈도우를 슬라이딩하여 물체가 존재하는지 확인
너무 많은 영역에 해야한다는 단점과 속도 느릴수 있음
물체가 있을 법한 위치 찾기 : Selective Search
인접한 영역끼리 유사성을 측정해 큰 영역으로 차례대로 통합(R-CNN / Fast R-CNN)
cpu로 확인
성능 평가 지표 : 정확도, 재현율
만약 모든 영역에 대하여 전부 사물이 존재한다고 판단을 해버리면 어떤 일이 벌어질까
재현율은 높아지지만, 정확도는 떨어진다.
만약 매우 확실할 때만 사물이 존재한다고 판단하면?
정확도는 높지만, 재현율은 떨어짐
Intersection over Union(IoU)
IoU란 두 바운딩 박스가 겹치는 비율
성능 평가 예시: mAP@0.5는 정답과 예측의 IoU가 50% 이상일 때 정답으로 판정
NMS 계산 예시: 같은 클래스끼리 IoU가 50% 이상일 때 낮은 confidence의 box를 제거
NMS (Non Maximum Suppression)
객체 검출에서는 하나의 인스턴스에 하나의 바운딩 박스 적용되어야 함
따라서 여러 개의 bounding box가 겹쳐 있는 경우에 하나로 합치는 방법 필요
R-CNN(Regions with CNN features)
Selective Search를 이용해 2000개의 Region Proposal을 생성
각 Region Proposal을 일일이 CNN에 넣어(foward)결과를 계산
Selective Search를 쓰면 물체가 존재할 법한 위치를 찾을 수 있다.
Region proposal를 동일하게 자르고 CNN기반 네트워크로 Feature벡터뽑는다.
클래스별로 존재하는 바이너리SVMs에 넣어 어떤 클레스인지 확인 가능
어떤 위치에 존재하는지 Bbox reg통해 예측
R-CNN 동작과정
Selective search를 이용해 2,000개의 Rol(Region of Interest=Region proposal)추출
각 Rol에 대하여 warping을 수행하여 동일한 크기의 입력 이미지로 변경
Warped image를 CNN에 넣어서(foward) 이미지 feature를 추출
해당 feature를 SVM에 넣어 클래스 분류 결과를 얻는다.
이때 각 클래스에 대해 독립적으로 훈련된 이진(binary) SVM사용
해당 feature를 regressor에 넣어 위치(bounding box)를 예측
R-CNN: Bounding Box Regression
지역화(localization) 성능을 높이기 위해 bounding-box regression사용
Selective Search를 진행하면 존재할법한 예측 위치가 나온다.
실제 존재 위치 학습데이터에서 가져온다.
4개의 파라미터로 학습시킴
R-CNN 한계점
입력 이미지에 대하여 CPU 기반의 Selective Search를 진행해야 하므로 만흥ㄴ 시간이 소요
전체 아키텍처에서 SVM, Regressor 모듈이 CNN과 분리되어 있다.
CNN(Feature만 추출)은 고정되므로 SVM과 Bounding Box Regression결과로 CNN을 업데이트할 수 없다.
다시 말해 end-to-end 방식으로 학습 불가
모든 RoL(Region of Interest)를 CNN에 넣어야 하기 때문에 2000번의 CNN연산 필요
학습과 평가 과정에서 많은 시간이 필요
Fast R-CNN
동일한 Region proposal을 이용하되 이미지를
한 번만 CNN에 넣어
Feature Map을 생성
Fast R-CNN: Rol Pooling Layer
분류를 위해서 Pooling connected layer을 이용해야 하기 떄문에 이 입력에 들어갈 수 있도록
각 Rol영역에 대하여 맥스 풀링(max pooling)을 이용해 고정된 크기의 벡터를 생성
Faster R-CNN
병목에 해당하던 Region Proposal 작업을 GPU장치에서 수행하도록 한다.(RPN적용)
전체 아키텍처를 end-to-end로 학습 가능
Faster R-CNN: Region Proposal Networks(RPN)
RPN네트워크는 feature map이 주어졌을 때 물체가 있을 법한 위치를 예측
k개의 앵커 박스를 이용(다양한 형태와 크기를 사물을 잘게 확인할 수 있게 함)
슬라이딩 윈도우를 거쳐 각 위치에 대해 Regression과 Classification을 수행
suhan cho
안녕하세요
팔로우
이전 포스트
이진탐색
다음 포스트
1406번: 에디터
0개의 댓글
댓글 작성