티스토리 뷰

class-specific computation 은 점 내적으로 feature와 SVM 가중치 그리고 non-maximum suppression의 곱으로 이루어져 있다. Image에 대한 모든 점 내적은 single 행렬 곱들로 이루어짐

즉, R-CNN은 해싱과 같은 근사 기법을 사용하지 않고도 수천 개의 객체 클래스를 분류해낼 수 있습니다. 심지어 짧은 시간 내에! 다른 모델보다 정확성, 시간 측면에서 높은 효율성을 보임.

 

2.3. Training

Supervised pre-training - bounding box 없이 image-level annotations만 있는 dataset으로 CNN을 학습시킴. 이렇게 간소화된 training 과정으로 error rate가 CNN은 전에 진행했던 Krizhevsky의 결과보다 거의 똑같게 나오지만, error rate는 2%나 더 좋게 나온다.

Domain-specific fine-tuning  - CNN parameter로 SGD 진행한다. 그리고 정해둔 영역만을 이용하여 training을 진행한다. 0.5 IoU & 0.001 learning rate . 그리고 각 SGD 반복에서, 모든 클래스에 걸쳐 객체가 존재된다고 예측되는 32개의 영역과 객체가 존재하지 않는 96개의 영역을 균일하게 샘플링하여 크기가 128인 미니배치를 구성합니다. 양성 창에 대한 샘플링을 편향시키는데, 그 이유는 양성 창이 배경에 비해 극히 드물기 때문입니다.

Object category classifiers -  binary classifier는 패치에서 자동차 있는 그 부분 전체를 양성 부분이라고 칭했지만, 그 패치의 배경 부분은 자동차가 없기 때문에 이는 엄밀히 따지면 옳지 않았기에 이를 해결하는 것은 IoU overlap threshold 였다. 

이렇게 전체에서 겹치는 부분을 계산하는 것을 IoU라고 하며, 이에 대한 수치는 validation set에서는 0.3으로 정했다. mAP 수치에 따라 이렇게 정한 것이다. 이렇게 특징을 추출하면 class마다 linear SVM을 적용하여 optimize 시켰다.  

2.4. Results on PASCAL VOC 2010-12 - VOC 2012 dataset로 CNN fine tuning 시키고, detection SVM로 최적화 진행

결과는 잘 나왔다. 그리고 SegDPM과 추가적으로 세부적인 부분에 대해서도 segmentation 진행하게 하여, image classifier rescoring을 진행했다. 분류는 히스토그램 교차 커널 SVM을 사용하여 수행되며,이는 다중 특징, 비선형 커널  SVM 접근 방식과 비교했을 때, 좋은 결과 나옴.

2.5. Results on ILSVRC2013 detection 

이에 대해서도 좋은 결과

3.1. Visualizing learned features

첫 번째 층의 필터는 직접 시각화할 수 있으며 이해하기 쉽다. 이 필터들은 방향성을 가진 가장자리와 대립되는 색상을 포착한다. 반면에 후속 층을 이해하는 것은 더 어렵다. 저자는 간단하고 보완적인 비모수적 방법을 제안합니다. 이 방법은 네트워크가 무엇을 학습했는지 직접적으로 보여주게 했다. 중요한 점은 네트워크의 특정 유닛(특성)을 독립적인 객체 탐지기로 사용하는 것입니다. 즉, 우리는 큰 양의 보류 중인 영역 후보들(약 1000만 개)에 대해 유닛의 활성화를 계산하고, 활성화가 가장 높은 순서대로 제안을 정렬하고, 비최대 억제를 수행한 다음, 최고 점수의 영역을 표시합니다. 우리의 방법은 선택한 유닛이 직접 활성화된 입력을 정확히 보여줌으로써 "스스로 말하게"합니다. 우리는 서로 다른 시각적 모드를 보고 유닛이 계산한 불변성에 통찰력을 얻기 위해 평균화를 피합니다. 즉, 사진에 점수를 매겨서 이건 잘 학습된 거다 아니다를 보여줌

 

우리는 네트워크의 다섯 번째이자 마지막 컨볼루션 레이어의 maxpooling된 출력인 레이어 pool5의 유닛을 시각화합니다. pool5 피처 맵은 6 x 6 x 256 = 9216 차원입니다. 경계 효과를 무시하면, 각 pool5 유닛은 원본 227 x 227 픽셀 입력에서 195 x 195 픽셀의 수용 영역을 갖습니다. 중심에 있는 pool5 유닛은 거의 전역적인 시야를 가지며, 가장자리에 있는 유닛은 더 작고 잘린 지원을 갖습니다.

Figure 4의 각 행은 VOC 2007 trainval에서 fine-tuned된 CNN의 pool5 유닛 중 상위 16개의 활성화를 표시합니다. 256개의 기능적으로 고유한 유닛 중 6개가 시각화되었습니다. 이러한 유닛은 네트워크가 학습하는 내용의 대표적인 샘플을 보여주기 위해 선택되었습니다. 두 번째 행에서는 개 얼굴과 점 배열에 반응하는 유닛을 볼 수 있습니다. 세 번째 행에 해당하는 유닛은 빨간색 덩어리를 감지합니다. 인간 얼굴 및 텍스트와 삼각형 구조와 같은 보다 추상적인 패턴을 포함한 감지기도 있습니다. 네트워크는 클래스 튜닝된 소수의 특징과 모양, 질감, 색상 및 재료 특성의 분산 표현을 결합하는 표현을 학습하는 것으로 보입니다. 이후 완전 연결 레이어 fc6는 이러한 풍부한 특징의 다양한 조합을 모델링할 수 있는 능력을 갖고 있습니다.

3.2. Ablation studeies 

1. Performance layer-by-layer, without fine-tuning.

VOC 2007 datasetㅇ르 적용한 CNN의 마지막 3개의 layer를 분석했다.

세 layer 중 첫 번째는 Pool_5. 층이고 이는 3.1에서 설명했다.

두 번째는 fc_6 층으로 Pool_5에 연결되어 있다. 차원을 맞추기 위해 가중치 곱하고, 편향도 좀 더해 줌. 

마지막은 fc_7로, fc_6에 4096x4096 가중치를 곱해준 다음에, fc_6에 처리한 것처럼 비슷하게 편향 벡터를 추가하고 half-wave rectification 적용한다.

이 절에서의 CNN은 PASCAL에 대해 fine-tuning되지 않은 CNN의 결과를 분석한다. 즉, 모든 CNN 매개변수가 ILSVRC 2012에서만 사전 학습되었다. 이에 대한 결과로 fc7에서의 특성이 fc6에서의 특성보다 일반화가 덜 좋다는 것을 보여준다. 이는 CNN의 매개변수 중 약 29%, 즉 약 1680만 개를 제거해도 mAP를 저하시키지 않을 수 있다는 것을 의미합니다. 더 놀라운 것은 fc7과 fc6을 모두 제거하면 pool5 특성만 사용하여 상당히 좋은 결과를 얻는다. 보통 합성곱을 거친 층에서 더 좋은 결과가 나와야 하는데, pooling layer와 같이 조밀하게 연결된 층에서 좋은 결과가 나오는.. 의외의 결과가 나온 것이다!! 이를 통해 CNN 

2. Performance layer-by-layer, with fine-tuning.

파인튜닝으로부터의 향상은 pool5에 비해 fc6와 fc7에서 훨씬 크다. 이는 ImageNet에서 학습한 pool5 특성이 일반적이며, 대부분의 개선은 domain-specific non-linear classifier를 적용했기 때문이라 한다. 

3. 최근 feature learning 과 비교

PASCAL VOC 탐지에 대해 상대적으로 적은 특성 학습 방법이 시도되었습니다. 우리는 변형 가능한 부분 모델에 기반을 둔 두 가지 최근 접근 방식을 살펴봅니다. 참고로, 표준 HOG 기반 DPM [20]의 결과도 포함합니다. 첫 번째 DPM 특성 학습 방법인 DPM ST [28]는 HOG 특성을 "스케치 토큰" 확률의 히스토그램으로 보완합니다. 직관적으로, 스케치 토큰은 이미지 패치의 중심을 통과하는 윤곽의 밀집 분포입니다. 스케치 토큰 확률은 각 픽셀에서 35 x 35 픽셀 패치를 150개의 스케치 토큰 또는 배경 중 하나로 분류하도록 훈련된 랜덤 포레스트에 의해 계산됩니다. 두 번째 방법인 DPM HSC [31]는 HOG를 희소 코드(HSC)의 히스토그램으로 대체합니다. HSC를 계산하기 위해, 희소 코드 활성화는 100 x 7 x 7 픽셀(회색조) 원자로 이루어진 학습된 사전을 사용하여 각 픽셀에서 해결됩니다. 그 결과 활성화는 세 가지 방법으로 정렬되고(전체 및 두 반파의 절반), 공간적으로 풀링되고, 단위 `2 정규화되며, 그런 다음 전력으로 변환됩니다 (x sign(x)jxj^). 모든 R-CNN 변형은 세 가지 DPM 기준선(Table 2 행 8-10)보다 크게 성능이 우수합니다. 이중 특성 학습을 사용하는 두 가지 접근 방식을 포함하여. HOG 특성만 사용하는 최신 DPM 버전과 비교하면, mAP가 20% 이상 높아졌습니다. 54.2% 대 33.7% - 상대적인 개선율 61%. HOG와 스케치 토큰의 결합은 HOG만 사용하는 것보다 2.5 mAP 포인트를 높이고, HSC는 HOG보다 4 mAP 포인트를 높입니다 (내부적으로 비공개 DPM 기준선과 비교했을 때 - 둘 다 DPM의 공개 소스 버전보다 성능이 낮은 비공개 구현을 사용합니다 [20]). 이러한 방법들은 각각 29.1%와 34.3%의 mAP를 달성합니다.

3.3 Network architectures

network architecture 중 Krizhevsky가 만든 구조를 이용했다. "O-Net"이라고, 3 x 3 컨볼루션 커널로 이루어진 13개의 레이어와 다섯 개의 max pooling layer가 교차되고 이후에는 세 개의 fully-connected layer가 있는 균일한 구조를 가진다. 이를 이용하여 R-CNN를 만들었다. 그리고 baseline인 T-Net을 fine tuned하여 또 다른 R-CNN도 완성시켰다. 그래서 O-Net과 다른 점은 minibatches를 24 example로 더 작게 사용했다는 점이다. R-CNN with O-Net가 R-CNN with T-Net보다 성능이 더 좋았다. 대신 시간은 더 오래걸렸다.

 

3.4 Detection error analysis

저자가 오류 분석을 어떻게 했는지 알려면 DPM을 알아야 한다. figure 5와 6에서 자세히 알 수 있다.

 

3.5 Bounding-box regression 

error 분석 기반으로 localization error를 줄이기 위해 DPM의 bounding-box regression에서 영감을 받아, linear regression model을 훈련시켰는데, 이는 pool_5 features에서 new detection window을 예측하기 위함이다. 

 

3.6 qualitative result

결과 좋게 나왔겠지.. 사진 8~11 참고

 

4.The ILSVRC2014 detection dataset

4.1 Dataset overview

train (395,918), val (20,121), and test (40,152) 이렇게 나누었고, val 과 test splits 은 same image distribution 에서 나누었다. 이 둘의 모든 200개 클래스의 모든 인스턴스에 대해 바운딩 박스로 레이블이 지정되며 주석 또한 달려 있다. training dataset에는 주석이 달려 있지 않다. 또한, 훈련 이미지에서 200개 클래스의 인스턴스가 레이블이 지정될 수도 있고 아닐 수도 있다. 이렇게 하는 이유는 R-CNN이 선택을 할 수 있게끔 해준다. training images의 주석이 strict 하지 않기에 negative examples, 객체가 없는 example을 어디서 얻는지 궁금할 수 있다. 저자의  일반적인 전략은 val 세트에 크게 의존하고 일부 훈련 이미지를 양성 예제의 보조 소스로 사용하는 것입니다. 훈련 및 검증에 모두 val을 사용하기 위해 val을 대략 동일한 크기의 "val1"과 "val2"로 분할합니다. 일부 클래스는 val에서 매우 적은 예제를 가지고 있기 때문에(가장 적은 클래스는 31개만 있으며, 절반 이상은 110개 미만입니다), 대략적으로 클래스 균형 잡힌 분할을 생성하는 것이 중요합니다. 이를 위해 많은 후보 분할이 생성되었고, val 이미지의 클래스 카운트를 특징으로 사용하여 클러스터링하고, 그 후에 분할 균형을 개선할 수 있는 무작위 로컬 검색이 수행되었습니다. 여기에서 사용된 특정 분할은 최대 상대 불균형이 약 11%이고 중앙값 상대 불균형이 약 4%입니다. val1/val2 분할과 그들을 생성하기 위해 사용된 코드는 이 보고서에서 사용된 val 분할과 다른 연구자들이 자신의 방법을 비교할 수 있도록 공개적으로 제공될 것입니다.

4.2 Region proposal

PASCAL에서 사용된 것을 그대로 사용함. val_1, val_2에서 "fast-mode"로 진행한 것까지는 같은데, 다른 점은 이런 selective search는 크기 불변이고, region 수는 image resollution에 의존해서 생산되었다.

4.3 Training data

훈련 데이터의 경우, 우리는 val1의 모든 선택적 검색 상자와 실제 상자를 포함하여 클래스당 최대 N개의 실제 상자까지를 가져온 이미지와 상자의 세트를 형성했습니다 IoU를 위해.. (만약 클래스가 훈련 세트에서 N개 미만의 실제 상자를 가지고 있다면, 그 상자들을 모두 사용합니다). 이를 val1+trainN이미지와 상자의 데이터셋이라고 부릅니다. 감소 연구에서는 N이 0, 500, 1000 인 경우의 val2에서의 mAP를 보여줍니다

R-CNN에서 훈련 데이터는 세 가지 절차에 필요합니다:

(1) CNN 파인튜닝

(2) 검출기 SVM 훈련 

(3) 바운딩 박스 회귀기 훈련.

 

(1) CNN 파인튜닝은 PASCAL에서 사용된 것과 동일한 설정을 사용하여 val1+trainN에서 50,000번의 SGD 반복을 수행했습니다. NVIDIA Tesla K20에서 Caffe를 사용하여 13시간이 소요되었습니다.

(2) & (3) SVM 훈련의 경우, val1+trainN의 모든 실제 상자가 각 클래스에 대한 양성 예제로 사용되었습니다. 어려운 음성 채굴은 val1의 무작위로 선택된 하위 집합에서 5000개의 이미지에 대해 수행되었습니다. 초기 실험 결과, val1의 모든 이미지에서 음성을 채굴하는 것과 5000개의 이미지 하위 집합(대략 절반)에서 음성을 채굴하는 것의 mAP 감소가 0.5%에 그침을 보여주었으며, SVM 훈련 시간을 절반으로 줄였습니다. 훈련에서 음성 예제는 어노테이션이 철저하지 않기 때문에 train에서 가져오지 않았습니다. 추가로 검증된 음성 이미지 세트는 사용되지 않았습니다. 바운딩 박스 회귀기는 val1에서 훈련되었습니다.

4.4 Validation and evaluation

시스템 하이퍼파라미터는 SVM C 하이퍼파라미터(SVM C 하이퍼파라미터, 영역 왜곡에 사용된 패딩, NMS 임계값, 바운딩 박스 회귀 하이퍼파라미터) 를 사용하며, 최적이 아닐 수도 있지만, 많은 데이터셋을 튜닝 없이 ILSVRC에서 예비 R-CNN 결과를 생성했다. 

val2에서 최상의 선택을 한 후에, 저자는 ILSVRC2013 평가 서버에 정확히 두 개의 결과를 산출했는데, 첫 번째 제출은 바운딩 박스 회귀 없이이고, 두 번째 제출은 바운딩 박스 회귀와 함께입니다. 이러한 제출을 위해 SVM 및 바운딩 박스 회귀기 훈련 세트를 각각 val+train1k 및 val로 확장했습니다. 우리는 파인튜닝 및 특성 계산을 다시 실행하지 않기 위해 val1+train1k에서 파인튜닝된 CNN을 사용했습니다.

 
 

training data, fine-tuning, bounding box regression을 다르게 하면서 R-CNN의 변화를 살펴보았다. training set을 val_1+train_N으로 늘리니 성능이 24.1%나 증가했다. 또한, val_1로부터 CNN을 fine-tuning 진행하면서 더 좋은 결과를 가져왔다. Bounding box regression 또한 결과가 31.0%로 증

 

4.6 overfeat과의 관계

overfeat는 sliding window 진행할 때 warping이 없음, 그래서 computation은 overlapping window 계산하는 과정이 수월해짐.

 

5.Semantic segmentation

최근의 semantic segmentation system, "second-order pooling(O_2P)"와 논문의 모델을 비교한다. O2P는 CPMC를 이용하는데, 이는 150 영역 후보들을 이미지마다 생성하고, 각 이미지별로 점수를 매긴다. CPMC 성능과 다양한 feature map 종류에 대해서 second-order pooling한 것이 성능이 좋아서 좋은 결과가 나온다. 

CNN features for segmentation 

방법 3가지

1. The first strategy (full) ignores the region’s shape and computes CNN features directly on the warped window, exactly as we did for detection

2. 너무 overlap이 적은 경우, CNN features only on a region’s foreground mask만큼 계산. 배경을 input의 평균으로 대체하고 그리고 평균을 빼는 작업을 하면, 0이 되기에 overlap 작은 것에 대한 문제를 줄일 수 있다. 

3. full & fg features를 합친다. 

 

이 모델은 크게 두 가지 제안점을 준다. bottom-up 영역 제안을 함으로써 CNN의 높은 사용량을 보여주었고, labeling된  training data가 적을 때 거대한 CNN을 어떻게 훈련시키는지의 두 가지 점을 제시했다. 

 

저자는 "supervised pre-training/domain-specific finetuning” 이렇다고 하다....
paradigm will be highly effective for a variety of
data-scarce vision problems

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
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
글 보관함