YOLO V2 원리 요약

Yolo v2는 yolo v1을 기반으로 일부 콘텐츠를 추가하거나 교체하여 yolo v1의 일부 문제를 어느 정도 종료합니다.

✨1 요약

8가지 변경 사항이 있습니다.

  1. 배치 정규화 계층 추가
  2. 고해상도 백본 네트워크
  3. 앵커 박스 메커니즘
  4. 완전 컨벌루션 네트워크 구조
  5. 새로운 백본 네트워크
  6. K-평균 클러스터링 사전 상자
  7. 고해상도 기능 사용
  8. 다단계 훈련

✨2 배치 정규화 레이어 추가

Batch Normalizaiton을 사용한 후 yolo v1은 성능이 향상되었으며 VOC2007 테스트 세트에서는 원래 63.4% mAP에서 65.8% mAP로 증가했습니다.
특정 Batch Normalization은 별도로 요약됩니다.

✨3 고해상도 백본 네트워크

yolo v1에서 ImageNet pre-training에서 백본의 이미지 크기는 224이고, detection 작업을 할 때 받은 이미지 크기는 448이다. 따라서 네트워크는 해상도 크기의 급격한 변화로 인한 문제를 먼저 극복해야 한다 . .
이 문제를 해결하기 위해: 224×224의 저해상도 이미지에서 훈련된 분류 네트워크는 총 10회의 미세 조정을 위해 448×448의 고해상도 이미지에서 미세 조정됩니다. 미세 조정 후 최종 백본 네트워크인 최종 글로벌 평균 풀링 계층과 소프트맥스 계층을 제거합니다.
yolo v1 네트워크는 65.8% mAP에서 69.5% mAP로 두 번째 성능 향상을 얻었습니다.

4 앵커 박스 메커니즘

이것은 앵커 기반을 의미하며 앵커 프리라는 또 다른 것이 있습니다.
여기에서 처음으로 Faster R-CNN은 별도로 요약 되었으며 더 이상 요약되지 않습니다.

5 완전 컨벌루션 네트워크 구조

yolo v1에는 몇 가지 명백한 문제가 있습니다.

  1. flatten은 피처의 공간 구조를 파괴합니다.
  2. 완전히 연결된 계층은 또한 매개변수의 양을 폭발적으로 증가시킵니다.
  3. 동일한 그리드에서 여러 대상의 발생은 예측할 수 없으며,

공간 구조와 매개변수 폭발을 파괴하는 평탄화 문제:
네트워크의 입력 이미지 크기를 448 에서 416 으로 변경하고 YOLOv1 네트워크의 마지막 풀링 레이어와 Fully Connected 레이어를 모두 제거하고 수정된 네트워크의 최대 다운샘플링 팩터 는 32 이며 최종 결과는 13×13 입니다. 그리드 , 더 이상 7×7이 아닙니다.

동일한 그리드는 여러 대상을 예측할 수 없습니다.
앵커 박스 메커니즘이 여기에 사용됩니다. 각 그리드에는 미리 설정된 k개의 앵커 상자가 있습니다. 네트워크는 이전 프레임을 실제 프레임의 크기로 매핑하는 오프셋만 학습하면 되고 전체 실제 프레임의 크기 정보를 학습할 필요가 없으므로 교육이 더 쉬워집니다. 이전 상자를 동시에 추가한 후 YOLOv2는 각 이전 상자를 변경하여 범주와 신뢰도를 예측했습니다. 즉, 각 그리드에서 경계 상자의 여러 예측 출력이 있을 것입니다 . 따라서 yolo v2의 출력 텐서 크기 는 S×S×k×(1+4+C) 이고 각 경계 상자 예측에는 신뢰도 1개, 경계 상자 위치 매개변수 4개 및 C 범주 예측이 포함됩니다 . 다중 표적 탐지가 가능합니다.


위의 개선 후 네트워크 의 정확도는 증가 하지 않고 mAP 69.5%에서 mAP 69.2%로 약간 감소했지만 재현율은 81%에서 88%로 증가했습니다 . 재현율의 증가는 YOLO가 더 많은 물체를 찾을 수 있음을 의미 하지만 정밀도는 약간 떨어집니다. 그리드당 여러 감지 결과를 출력하면 네트워크가 더 많은 객체를 감지하는 데 도움이 된다는 것을 알 수 있습니다. 따라서 저자는 이러한 작은 정확도 손실 때문에 이러한 개선을 포기하지 않았습니다.

✨ 6개의 새로운 백본 네트워크

Yolo v2는 특징 추출을 위한 새로운 백본을 설계했습니다.네트워크 구조는 다음과 같습니다.
여기에 이미지 설명 삽입
첫째, 저자는 ImageNet에서 사전 훈련을 받았고 72.9%의 top1 정확도와 91.2%의 top5 정확도를 얻었습니다.
정확도 측면에서 DarkNet19 네트워크는 VGG 네트워크 수준에 도달했지만전자의 모델이 더 작고, 부동소수점 연산량이 후자의 1/5 정도밖에 되지 않아 계산 속도가 매우 빠르다..
학습이 완료된 후 yolo v2의 백본인 24, 25, 26층이 제거되고 yolo v1 네트워크가 이전 69.2% mAP에서 69.6% mAP로 개선됩니다.

✨7 K-평균 클러스터링 사전 상자

앞에서 언급한 앵커 기반 메커니즘의 경우 앵커의 높이와 너비, 종횡비 및 숫자와 같은 일부 매개변수를 선택해야 합니다 . 수동으로 설계한 Faster R-CNN 과 달리 yolo v2는 kmeans 방법을 사용하여 VOC 데이터 세트에 클러스터링 하고 총 k개의 이전 프레임을 클러스터링합니다**(IOU를 측정 지표 로 사용)** 실험을 통해, 저자는 마침내 설정했습니다. 클러스터링은 데이터 세트에 적합한 앵커의 높이와 너비를 감지하는 것입니다 .
yolo v1의 선형 출력기로 인해 발생하는 문제를 해결하기 위해 네 개의 경계 상자의 위치 매개변수에 대한 몇 가지 변경 사항이 있습니다.

  1. 중심 좌표 오프셋 자체는 0-1 사이여야 하지만 선형 출력 장치에는 범위 제약이 없기 때문에 학습 초기 단계에서 네트워크가 예측한 매우 큰 값으로 쉽게 이어져 bbox 분기의 학습이 불안정해집니다 . 따라서 YOLOv2 당시 저자는 시그모이드 함수를 추가하여 01 범위로 매핑하였다 .
  2. 높이 와 너비는 음수가 아니어야 합니다 . 여기서는 exp-log 방법이 사용됩니다. 구체적으로 w와 h는 log 함수로 처리됩니다 .
    여기에 이미지 설명 삽입

여기에서 수행하는 작업은 훈련 세트 레이블을 가져오고 네트워크가 이를 향해 훈련하도록 하는 것입니다!
예측할 때 경계 상자 매개 변수에 따라 중심 좌표와 높이 및 너비를 가져와야 합니다. 방법:

  1. 이전 상자의 너비와 높이가 다음과 같다고 가정합니다 여기에 이미지 설명 삽입.여기에 이미지 설명 삽입

  2. 출력 높이 및 너비 오프셋은 여기에 이미지 설명 삽입sum 입니다 여기에 이미지 설명 삽입
    .

  3. 이전 프레임의 중심이 위치한 그리드 좌표를 여기에 이미지 설명 삽입와 라고 가정하면 여기에 이미지 설명 삽입
    출력 변위 오프셋은 여기에 이미지 설명 삽입
    와 입니다 여기에 이미지 설명 삽입
    .

여기에 이미지 설명 삽입
그림의 공식을 사용하여 중심 좌표와 높이 및 너비를 얻습니다.

선험적 상자를 얻기 위해 kmeans 클러스터링 방법을 사용하고 "위치 예측" 경계 상자 예측 방법과 결합하여 YOLOv1의 성능이 69.6% mAP에서 74.4% mAP로 크게 향상되었습니다 .

7 고해상도 기능 사용

SSD의 작업은 여기에서 차용됩니다. yolo v1의 이전 작업에서는 마지막 피처 레이어를 사용하여 예측을 수행했습니다.yolo v2에 관해서는 저자가backbone의 17번째 layer는 13x13x2048 feature layer를 얻기 위해 downsampling을 위해 26x26x512 feature layer를 출력하기 위해 convolved되고 최종 output은 channel dimension에서 splicing된다..
위의 작업 후 기능 맵에 더 많은 정보가 있습니다. 그런 다음 테스트를 위해 가져 가십시오.

그러나 여기서 다운샘플링 작업은 다음과 같습니다.reorg, 다운 샘플링 후 기능 맵의 너비와 높이가 절반으로 줄어들고 채널이 4배로 확장됩니다. 장점은 해상도를 낮추는 동안 손실되는 디테일이 없고 정보의 양이 동일하게 유지된다는 것입니다.

이 작업 후 VOC 2007 테스트 세트의 mAP는 74.4%에서 75.4%로 다시 증가했습니다 .

✨8 멀티 스케일 교육

기능 피라미드의 아이디어를 yolo에 도입하십시오.
구체적으로 네트워크를 훈련할 때 10회 반복마다 {320, 352, 384, 416, 448, 480, 512, 576, 608} 중에서 새로운 이미지 크기가 후속 10회 훈련을 위한 이미지 크기로 선택됩니다(이러한 크기모두 네트워크의 최대 다운샘플링 배수가 32이기 때문에 32의 정수 배수입니다. 32로 나눌 수 없는 이미지 크기를 입력하면 불필요한 문제가 발생합니다.)

이러한 멀티스케일 트레이닝의 장점은 데이터셋에서 다양한 객체의 크기 비율을 변경할 수 있다는 것입니다. 이제 차지하는 픽셀 수로 볼 때 더 큰 개체에서 더 작은 개체로 이동하는 것과 같습니다. 일반적으로 다중 척도 훈련은 모델 성능을 향상시키기 위해 일반적으로 사용되는 기술 중 하나입니다. 물체의 크기가 크게 변하지 않으면 기술이 큰 영향을 미치지 않으므로 다중 척도 교육이 필요하지 않습니다.

다중 크기 교육을 통해 YOLOv1이 75.4% mAP에서 76.8% mAP로 다시 개선되었습니다 .

✨9 선험적 상자 적응 문제

kmeans 클러스터링 방법으로 얻은 이전 상자는 분명히 사용된 데이터 세트에 더 적합합니다.
A 데이터 세트에서 클러스터링된 선험적 상자는 분명히 새로운 B 데이터 세트에 적응하기 어렵습니다. 특히 두 개의 데이터 세트 A와 B에 포함된 데이터가 매우 다른 경우 이 문제는 더욱 심각해집니다. Pasical Voc와 같은 데이터 세트를 COCO 데이터 세트로 변경하면 다시 클러스터링해야 합니다.
클러스터링으로 얻은 선험적 프레임은 데이터 세트 자체에 크게 의존합니다. 데이터 세트가 너무 작고 샘플이 충분히 풍부하지 않은 경우 클러스터링으로 얻은 선험적 프레임은 충분한 크기의 사전 정보를 제공하지 않을 수 있습니다.

하지만 이 문제는 사실 Anchor 기반에 존재하는 문제이고 Anchor free가 등장하기 전까지는 해결되지 않았습니다.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_51691064/article/details/131187295
conseillé
Classement