일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 영어기초
- machinevision
- 석사
- 산업대학원
- Python
- 동사
- C언어
- 코딩
- 오픽
- 직장인
- 인공지능
- 영어공부
- 머신비전
- ComputerVision
- 머신러닝
- 특수대학원
- 파이썬gui
- opencv
- 3dprinter
- 영어회화
- Ai
- coding
- 대학원
- 파이썬
- 영어
- 4차산업
- 딥러닝
- Vision
- 초보영어
- 프로그래밍
- Today
- Total
미래기술연구소
rcnn 요약 본문
RCNN
RCNN(Region with CNN)은 이미지에서 주요 객체들을 바운딩박스(bounding box)로 표현하여 정확히 식별하기 위해서 만들어진 objectdetection 모델이다
RCNN은 이미지를 입력 받고, Selective search를 통해서 약 2~3천개의 region proposal을 생성하게 되며 강제로 동일한 크기로 만든 후 CNN을 통해 feature를 추출하고 이렇게 추출된 feature들의 값들을 fully connected 층을 통해 마지막 파라미터 값들을 받게 된다.
이렇게 출력된 파라미터 값들은 다시 SVM(Suport Vector Machine과 바운딩박스 (bounding box)의 선형회귀(linear regression)의 input값으로 들어가 class에 대한 classification과 바운딩박스(bounding box)에 대한 크기를 예측하게 된다.
하지만 RCNN은 Selective search를 통해 나온 2~3천개의
각각의 이미지들을 CNN으로 넣기 때문에 매우 느리다는 단점이 있고, 마지막 fully connected를 통해 나온 파라미터 값들을 다시 각기 다른 SVM
과 linear regression에 따로 전달하여 한 네트워크 안에서 이루어지지 않기 때문에 back propagation이 되지 않는다는 단점이 존재한다.
Hypothesize Bounding Boxes (Proposals)
Image로부터 Object가 존재할 적절한 위치에 Bounding Box Proposal (Selective Search)
2000개의 Proposal이 생성됨.
Resampling pixels / features for each boxes
모든 Proposal을 Crop 후 동일한 크기로 만듦 (2242243)
Classifier / Bounding Box Regressor
위의 영상을 Classifier와 Bounding Box Regressor로 처리
하지만 모든 Proposal에 대해 CNN을 거쳐야 하므로 연산량이 매우 많은 단점이 존재
R-CNN은 Ross Girshick 등 이 제안했습니다 . 2014 년에는 물체 감지에서 효율적인 물체 위치 파악 문제를 해결했습니다. 이전 방법은 이미지에 서로 다른 스케일의 슬라이딩 윈도우를 사용하여 지역 제안을 제안하는 Exhaustive Search라는 방법을 사용합니다. 대신이 논문에서는 객체 분할과 Exhaustive search를 활용하여 지역 제안을 효율적으로 결정하는 선택적 검색 알고리즘을 사용합니다. 이 선택적 검색 알고리즘은 이미지 당 약 2000 개의 지역 제안을 제안합니다. 그런 다음 CNN 모델로 전달됩니다 (여기서 AlexNet이 사용됨).
이 CNN 모델 은 각 지역 제안에서 (1, 4096) 특징 벡터 를 출력합니다 . 그런 다음이 벡터는 객체 분류를위한 SVM 모델과 지역화를위한 경계 상자 회귀 분석기로 전달됩니다.
R-CNN 문제 :
각 이미지는 2000 개의 지역 제안 을 분류해야합니다 . 따라서 네트워크를 훈련시키는 데 많은 시간이 걸립니다.
그것은 필요 49 GPU에 이미지의 물체를 감지하는 초.
지역 제안의 기능 맵을 저장하려면 많은 디스크 공간도 필요합니다.
. 이미지에 대한 후보 영역 생성 (논문에서는 (Selective search : 비슷한 질감이나 색, 강도를 가진 인접한 픽셀들을 연결하여 영역 구성) 방법을 사용)
2. 각 영역마다 고정된 크기로 wraping/crop하여 CNN 인풋으로 사용. (여기서 CNN은 pre train 되어있는 상태)
3. CNN을 통해나온 feature map을 활용하여 SVM을 통한 분류, regressor를 통한 bounding box regression
단점 : 3단계로 나누어져 구성되어 있고, 후보 영역(region proposal) 만큼 CNN을 돌려야 하기 때문에 느림.
Fast-RCNN
Fast-RCNN은 RCNN에서 부분에서 사용한 SVM을 대신 Softmax를 사용하고, 바운딩박스의 Linear regression의 부분 또한 크로스엔트로피(cross entropy)로 사용하여 하나의 뉴럴 네트워크(Neural Network)로 만들어 back propagation이 가능하고 한 번에 두 가지의
task를 수행하게 만든 모델이다. 하지만 Fast-RCNN역시 Selectivesearch를 수행하는 부분에서 여전히 느려 실시간으로 데이터를 예측하기
에는 어렵다는 단점이 있었다.
Fast R-CNN은 모든 Proposal이 네트워크를 거쳐야 하는 R-CNN의 병목(bottleneck)구조의 단점을 개선하고자 제안 된 방식
가장 큰 차이점은, 각 Proposal들이 CNN을 거치는것이 아니라 전체 이미지에 대해 CNN을 한번 거친 후 출력 된 특징 맵(Feature map)단에서 객체 탐지를 수행
R-CNN
에서는 CNN 아키텍처에서 각 지역 제안을 하나씩 전달 하고 이미지에 대한 약 2000 개의 지역 제안을 생성 한 선택적 검색을 통과했습니다 . 따라서 R-CNN을 사용하여 이미지를 훈련시키고 테스트하는 것은 계산 비용이 많이 듭니다. 이 문제를 해결하기 위해 Fast R-CNN이 제안되었으며, 한 번의 순방향 전파에서 전체 이미지 및 영역 제안을 CNN 아키텍처의 입력으로 사용합니다. 또한 하나의 완전한 아키텍처에서 아키텍처의 여러 부분 (예 : ConvNet, RoI 풀링 및 분류 계층)을 결합합니다. 또한 기능 맵을 저장해야하는 요구 사항이 제거되고 디스크 공간이 절약됩니다. 또한 SVM보다 더 빠르고 더 나은 정확도를 생성하는 것으로 입증 된 지역 제안 분류에 SVM 대신 소프트 맥스 계층을 사용합니다.
빠른 R-CNN은 훈련 (8.75 시간 vs 84 시간) 과 R-CNN의 감지 시간을 대폭 향상시킵니다 . 또한 R-CNN에 비해 평균 평균 정밀도 (mAP)를 약간 향상시킵니다.
Fast R-CNN의 문제점 :
탐지 중에 Fast R-CNN이 걸리는 대부분의 시간은 선택적 검색 영역 제안 생성 알고리즘입니다. 따라서 Faster R-CNN에서 다룬 것은이 아키텍처의 병목 현상입니다.
모든 region proposal마다 CNN연산을 하는 대신에, 입력 이미지에 한번만 CNN을 적용하고 RoI 풀링으로 객체를 판별하기 위한 특징을 추출함.
RoI Pooling : 크기가 다른 feature map의 Region마다 Stride를 다르게 Max Pooling을 진행하여 크기를 같게 하는 방법.
1. Selective search를 통해 Region Proposal을 뽑아냄
2. RCNN에서는 이 RP(region Proposal)을 바로 CNN에 넣었지만, Fast RCNN에서는 뽑아낸 영역을 그대로 가지고 있음.
3. 전체 이미지를 CNN에 넣어 feature map을 얻은 후, (1.)에서 뽑아낸 RP영역을 Projection.
4. RP영역만큼 Projection한 feature map을 FC에 통과 시키기 위해 RoI Pooling을 해줌
5. FC -> SoftMax를 통해 분류 및 Detect.
Faster-RCNN
Faster-RCNN은 RPN(Region proposal Network)을 도입하였다.
RPN은 region proposal을 만들기 위한 네트워크로서, 기존의 Fast-RCNN의 Selective search가 뉴럴넷(Neural Net)밖에서 이루어졌다면
Faster-RCNN은 RPN을 내부에서 사용하게 하여 그 속도를 향상시켰다.
RPN은 이미지를 CNN으로 연산을 하고 연산 결과를 NxN의 합성곱망으로 연산을 하고, 이 결과가 맞는지를 보유하고 있는 바운딩박스
(bounding box)데이터와 Loss Function으로 비교를 하게 된다. 이후
Loss Function결과로 back propagation을 시켜 RPN(Region Proposal Network)이 학습이 되어 진다. 이때 box를 찾는 과정에서, object의 형태
가 다양 한다는 것을 고려하여 여러 형태의 박스들을 만들어내는데 이를
앵커 박스(anchor box)라 한다. RPN에서는 아웃풋 피쳐맵(output feature
map)을 도는 여러 개의 앵커박스를 운영한다.
Region Proposal을 RPN이라는 네트워크를 이용하여 수행(병목현상 해소)
Region Proposal 단계에서의 bottleneck 현상 제거
해당 단계를 기존의 Selective search 가 아닌 CNN(RPN)으로 해결
CNN을 통과한 Feature map에서 슬라이딩 윈도우를 이용해 각 지점(anchor)마다 가능한 바운딩 박스의 좌표와 그 점수를 계산
2:1, 1:1, 1:2의 종횡비(Aspect ratio)로 객체를 탐색
더 빠른 R-CNN은 2015 년에 k He et al. Fast R-CNN 이후 아키텍처의 병목 현상은 선택적 검색입니다. 2000 을 생성해야하기 때문에이미지 당 제안. 전체 아키텍처 교육 시간의 주요 부분을 구성합니다. Faster R-CNN에서는 지역 제안 네트워크로 대체되었습니다. 우선,이 네트워크에서 이미지를 백본 네트워크로 전달했습니다. 이 백본 네트워크는 컨볼 루션 기능 맵을 생성합니다. 이러한 기능 맵은 지역 제안 네트워크로 전달됩니다. 지역 제안 네트워크는 기능 맵을 가져 와서 앵커 (고유 한 크기와 축척을 가진 슬라이딩 윈도우의 중심)를 생성합니다. 그런 다음 이러한 앵커는 분류 계층 (객체가 있는지 여부를 분류 함)과 회귀 계층 (객체와 관련된 경계 상자를 지역화 함)으로 전달됩니다..
감지 시간 측면에서 Faster R-CNN은 R-CNN 및 Fast R-CNN보다 빠릅니다. Faster R-CNN은 또한 이전 두 제품보다 더 나은 mAP를 가지고 있습니다.
Fast RCNN에서 Selective search로 하던 후보영역 생성을 Faster RCNN에서는 RPN(Region Proposal Network)가 하는것이다. 그 외에는 동일하다.
RPN : 후보 영역을 찾는 방법을 CNN을 통하여 물체가 있는 영역인지 아닌지 판별하여 영역을 제시하는 방법.