AI 모델 및 플랫폼
YOLOv7: 가장 발전된 객체 감지 알고리즘?

2022년 7월 6일은 AI 역사에 기록될 날입니다. 이 날에 YOLOv7이 출시되었습니다. 출시 이후로 YOLOv7은 컴퓨터 비전 개발자 커뮤니티에서 가장 뜨거운 주제가 되었습니다. YOLOv7은 이미 객체 감지 산업에서 중요한 里程碑으로 여겨지고 있습니다.
YOLOv7 논문이 발표된 직후, 가장 빠르고 정확한 실시간 객체 감지 모델로 나타났습니다. 하지만 YOLOv7은 어떻게 이전 버전을 능가할 수 있었을까요? YOLOv7이 컴퓨터 비전 작업을 수행하는 데 इतन 효율적인 이유는 무엇일까요?
이번 글에서 YOLOv7 모델을 분석하고, YOLOv7이 왜 산업 표준이 되는지 이유를 찾으려고 합니다. 하지만 그 전에 객체 감지의 짧은 역사에 대해 살펴보아야 합니다.
객체 감지는 무엇인가?
객체 감지는 컴퓨터 비전의 한 분야로, 이미지나 비디오 파일에서 객체를 식별하고 위치를 찾습니다. 객체 감지는 자율 주행 자동차, 감시 시스템, 로봇틱스 등 많은 응용 분야의 기초입니다.
객체 감지 모델은 두 가지 종류로 분류할 수 있습니다. 단일 샷 감지기와 다중 샷 감지기입니다.
실시간 객체 감지
YOLOv7을 이해하려면, YOLOv7의 주요 목표인 실시간 객체 감지를 이해해야 합니다. 실시간 객체 감지는 현대 컴퓨터 비전의 핵심입니다. 실시간 객체 감지 모델은 실시간으로 관심 객체를 식별하고 위치를 찾습니다.

실시간 객체 감지 모델은 전통적인 이미지 감지 모델보다 한 단계 앞서 있습니다. 전자는 비디오 파일에서 객체를 추적하는 데 사용되며, 후자는 정적인 이미지에서 객체를 식별하고 위치를 찾습니다.
따라서 실시간 객체 감지 모델은 비디오 분석, 자율 주행 자동차, 객체 카운팅, 다중 객체 추적 등에 매우 효율적입니다.
YOLO는 무엇인가?
YOLO 또는 유 只 看 一 次는 실시간 객체 감지 모델家族입니다. YOLO 개념은 2016年に Joseph Redmon에 의해 처음 도입되었으며, 당시 가장 빠르고 정확한 객체 감지 알고리즘으로 주목을 받았습니다. 이후 YOLO 알고리즘은 컴퓨터 비전 산업에서 표준이 되었습니다.

YOLO 알고리즘의 기본 개념은 경계 상자와 클래스 확률을 사용하여 실시간으로 예측하는 것을 목표로 합니다. YOLO는 이전 객체 감지 모델과 달리, 분류기를 재사용하여 객체 감지를 수행하는 새로운 접근 방식을 제안했습니다.
이 접근 방식이 효과적으로 작용하여 YOLO는 다른 실시간 객체 감지 알고리즘보다 성능 격차가 크게 나타났습니다. 하지만 YOLO가 इतन 효율적인 이유는 무엇일까요?
YOLO와 비교하여 이전 객체 감지 알고리즘은 관심 영역을 찾기 위해 지역 제안 네트워크를 사용했습니다. 인식 과정은 각 영역에서 별도로 수행되었습니다. 따라서 이러한 모델은 동일한 이미지에서 여러 번 반복적으로 수행되어 정확도가 낮고 실행 시간이 길었습니다. 반면에 YOLO 알고리즘은 단일 완전 연결 계층을 사용하여 한 번에 예측을 수행합니다.
YOLO는 어떻게 작동하는가?
YOLO 알고리즘이 작동하는 과정을 설명하는 세 가지 단계가 있습니다.
객체 감지를 단일 회귀 문제로 재정의
YOLO 알고리즘은 객체 감지를 단일 회귀 문제로 재정의합니다. 이는 이미지 픽셀, 클래스 확률, 경계 상자 좌표를 포함하여 단일 회귀 문제로 해결합니다. 따라서 알고리즘은 이미지에서 객체를 예측하고 위치를 찾기 위해 한 번만 볼 수 있습니다.
이미지를 전역적으로 이유
또한, YOLO 알고리즘이 예측을 수행할 때, 이미지 전역적으로 이유를 사용합니다. 이는 지역 제안 기반 및 슬라이딩 기술과 달리, YOLO 알고리즘이 훈련 및 테스트 과정에서 전체 이미지를 볼 수 있으며, 클래스와 그 나타남에 대한 문맥 정보를 인코딩할 수 있습니다.
YOLO 이전에 Fast R-CNN은 가장 인기 있는 객체 감지 알고리즘 중 하나였으며, 이미지의 더 큰 문맥을 볼 수 없었습니다. 따라서 YOLO는 Fast R-CNN보다 50% 더 정확합니다.
객체의 표현을 일반화
마지막으로, YOLO 알고리즘은 객체의 표현을 일반화합니다. 따라서 YOLO 알고리즘이 자연 이미지 데이터셋에서 테스트되었을 때, 기존의 R-CNN 모델보다 월등히 성능을 나타냅니다. 이는 YOLO가高度 일반화 가능하여, 새로운 입력이나 도메인에서 수행할 때도 안정적으로 작동합니다.
YOLOv7: 새로운 것
이제 실시간 객체 감지 모델과 YOLO 알고리즘에 대한 기본적인 이해를 갖추었으니, YOLOv7 알고리즘에 대해 살펴보겠습니다.
훈련 과정을 최적화
YOLOv7 알고리즘은 모델 아키텍처를 최적화하는 데만 집중하지 않고, 훈련 과정을 최적화하는 데에도 관심을 두고 있습니다. 이는 최적화 모듈 및 방법을 사용하여 객체 감지의 정확도를 높이고, 훈련 비용을 강화하면서 간섭 비용을 유지하는 것을 목표로 합니다. 이러한 최적화 모듈을 훈련 가능한 무료 물品이라고 합니다.
조잡한 리드 가이드 레이블 할당
YOLOv7 알고리즘은 조잡한 리드 가이드 레이블 할당을 사용합니다. 이는 동적 레이블 할당과 달리, 다중 출력 레이어를 사용하여 모델을 훈련할 때 발생하는 문제를 해결합니다.
모델 재매개
모델 재매개는 객체 감지에서 중요한 개념입니다. 그러나 훈련 과정에서 문제가 발생할 수 있습니다. YOLOv7 알고리즘은 경사 전파 경로를 사용하여 모델 재매개 정책을 분석합니다.
확장 및 복합 스케일링
YOLOv7 알고리즘은 확장 및 복합 스케일링 방법을 도입합니다. 이는 실시간 객체 감지를 위해 매개변수와 계산을 효율적으로 사용하는 것을 목표로 합니다.

YOLOv7: 관련 연구
실시간 객체 감지
현재 YOLO는 산업 표준이며, 대부분의 실시간 객체 감지 모델은 YOLO 알고리즘과 FCOS(완전 convolutional one-stage object-detection)를 사용합니다. 최신 실시간 객체 감지 모델은 일반적으로 다음과 같은 특징을 갖습니다
- 강력하고 빠른 네트워크 아키텍처
- 효과적인 특징 통합 방법
- 정확한 객체 감지 방법
- 강력한 손실 함수
- 효과적인 레이블 할당 방법
- 효과적인 훈련 방법
YOLOv7 알고리즘은 자가 지도 학습 및 蒸発 방법을 사용하지 않습니다. 대신, 훈련 가능한 무료 물品 방법을 사용합니다.
모델 재매개
모델 재매개 기술은 앙상블 기술로, 여러 계산 모듈을 간섭 단계에서 결합합니다. 이 기술은 모델 수준 앙상블과 모듈 수준 앙상블으로 나눌 수 있습니다.
모델 수준 재매개 기술은 두 가지 방법을 사용하여 최종 간섭 모델을 얻습니다. 첫 번째 방법은 다른 훈련 데이터를 사용하여 동일한 모델을 여러 번 훈련하고, 훈련된 모델의 가중치를 평균합니다. 두 번째 방법은 모델의 가중치를 훈련 과정에서 평균합니다.
모듈 수준 재매개는 훈련 과정에서 모듈을 여러 가지로 나누고, 간섭 과정에서 이를 결합하여 동일한 모듈을 생성합니다. 최근에 모듈 수준 재매개가 인기를 얻고 있습니다.
그러나 재매개 기술은 모든 아키텍처에 적용할 수 없습니다. 따라서 YOLOv7 알고리즘은 다양한 아키텍처에 적합한 새로운 모델 재매개 기술을 사용합니다.
모델 스케일링
모델 스케일링은 모델의 속성을 조정하여 다양한 컴퓨팅 장치에서 모델을 생성하는 것을 목표로 합니다. 모델 스케일링은 일반적으로 깊이, 입력 이미지 크기, 특징 피라미드 수, 채널 수와 같은 요소를 사용합니다. 이러한 요소는 네트워크 매개변수, 간섭 속도, 계산 및 모델의 정확도 사이의 균형 있는 트레이드 오프를 보장하는 데 중요한 역할을 합니다.
가장 일반적으로 사용되는 스케일링 방법은 네트워크 아키텍처 검색입니다. 이는 스케일링 인자를 자동으로 검색하여 복잡한 규칙 없이 적합한 스케일링 인자를 찾습니다. 그러나 네트워크 아키텍처 검색의 주요 단점은 스케일링 인자를 검색하는 데 비용이 많이 든다는 것입니다.
대부분의 모델 재매개 모델은 개별 스케일링 인자를 독립적으로 분석하고, 또한 독립적으로 최적화합니다. 이는 네트워크 아키텍처 검색이 비상관 스케일링 인자와 함께 작동하기 때문입니다.
VoVNet이나 DenseNet과 같은 결합 기반 모델은 모델의 깊이를 조정할 때 일부 계층의 입력 너비를 변경합니다. YOLOv7은 결합 기반 아키텍처를 사용하므로 복합 스케일링 방법을 사용합니다.

위의 그림은 다양한 모델의 확장 효율적인 계층 집계 네트워크를 비교합니다. 제안된 E-ELAN 방법은 원래 아키텍처의 경사 전파 경로를 유지하면서, 그룹 컨볼루션을 사용하여 추가된 특징의 기수를 증가시킵니다. 이 과정은 다양한 맵에서 학습된 특징을 강화하고, 계산 및 매개변수의 사용을 더 효율적으로 할 수 있습니다.
YOLOv7 아키텍처
YOLOv7 모델은 YOLOv4, YOLO-R, 스케일된 YOLOv4 모델을 기반으로 합니다. YOLOv7은 이러한 모델을 개선하고 모델을 더 정확하게 만들기 위한 실험의 결과입니다.
확장 효율적인 계층 집계 네트워크 또는 E-ELAN
E-ELAN은 YOLOv7 모델의 기본 빌딩 블록입니다. 이는 이미 존재하는 네트워크 효율성 모델, 주로 ELAN에서 파생됩니다.
효율적인 아키텍처를 설계할 때 주요 고려 사항은 매개변수 수, 계산 밀도 및 계산량입니다. 다른 모델은 또한 입력/출력 채널 비율, 네트워크 아키텍처의 가지, 네트워크 간섭 속도, 합성곱 네트워크의 텐서 요소 수 등과 같은 요소를 고려합니다.
CSPVoNet 모델은 위에서 언급한 매개변수를 고려할 뿐만 아니라, 다양한 특징을 학습하기 위해 다른 계층의 가중치를 활성화하여 간섭을 더 빠르고 정확하게 수행할 수 있습니다. ELAN 아키텍처는 네트워크가 더 효과적으로 학습하고 수렴할 수 있도록 가장 짧은 경사 전파 경로를 설계하는 것을 목표로 합니다.
ELAN은 계산 블록의 스택 수에 관계없이 안정적인 상태에 도달합니다. 그러나 계산 블록을 무한히 스택하면 안정적인 상태가 깨질 수 있으며, 매개변수 사용률이 감소할 수 있습니다. 제안된 E-ELAN 아키텍처는 확장, 셔플링 및 병합 기수를 사용하여 네트워크의 학습 능력을 지속적으로 향상시키면서 원래 경사 전파 경로를 유지할 수 있습니다.
さらに, E-ELAN과 ELAN의 아키텍처를 비교하면, 계산 블록이 다르다는 것을 알 수 있습니다. 그러나 전환 계층의 아키텍처는 변경되지 않았습니다.
E-ELAN은 그룹 컨볼루션을 사용하여 계산 블록의 기수를 확장하고, 채널을 확장합니다. 특징 맵은 그룹 매개변수에 따라 계산되고 셔플링되며, 결합됩니다. 각 그룹의 채널 수는 원래 아키텍처와 동일하게 유지됩니다. 마지막으로, 특징 맵의 그룹은 기수를 수행하기 위해 추가됩니다.
결합 기반 모델의 모델 스케일링
모델 스케일링은 모델의 속성을 조정하여 다양한 서비스 요구 사항에 맞게 모델을 생성하는 것을 목표로 합니다.

그림은 결합 기반 모델의 모델 스케일링을 보여줍니다. (a)와 (b)에서 계산 블록의 출력 너비가 모델의 깊이를 스케일링할 때 증가하는 것을 볼 수 있습니다. 결과적으로, 전송 계층의 입력 너비가 증가합니다. 이러한 방법을 결합 기반 아키텍처에 적용하면, 스케일링은 깊이에서 수행되며, (c) 그림에 나타나 있습니다.
따라서 결합 기반 모델의 경우, 스케일링 인자를 독립적으로 분석하는 것이 불가능하며, 함께 분석해야 합니다. 따라서 결합 기반 모델의 경우, 복합 모델 스케일링 방법을 사용하는 것이 적합합니다. 또한, 깊이 인자를 스케일링할 때, 블록의 출력 채널도 스케일링해야 합니다.
훈련 가능한 무료 물건
훈련 가능한 무료 물건은 훈련 전략 또는 비용을 변경할 수 있는 방법 또는 기술의 집합입니다. YOLOv7의 훈련 가능한 무료 물건은 무엇일까요?
계획된 재매개 컨볼루션
YOLOv7 알고리즘은 경사 전파 경로를 사용하여 네트워크와 재매개 컨볼루션을 어떻게 결합할 수 있는지 결정합니다. 이는 RepConv 알고리즘에 대한 대안으로, VGG 모델에서는 잘 수행되었지만, DenseNet 및 ResNet 모델에서는 좋지 않게 수행됩니다.
RepConv 알고리즘은 3×3 컨볼루션과 1×1 컨볼루션을 결합하여 연결을 식별합니다. 그러나 알고리즘의 성능과 아키텍처를 분석하면, RepConv가 DenseNet의 결합과 ResNet의 잔差을 파괴한다는 것을 알 수 있습니다.

위의 그림은 계획된 재매개 모델을 보여줍니다. YOLOv7 알고리즘이 네트워크의 계층에서 결합 또는 잔差 연결이 있는 경우, RepConv 알고리즘의 동일한 연결을 사용해서는 안 된다는 것을 발견했습니다. 따라서 RepConvN을 동일한 연결 없이 교체하는 것이 허용됩니다.
조잡한 보조 및 미세한 손실
깊은 감시는 컴퓨터 과학에서 깊은 네트워크의 훈련 과정에서 자주 사용되는 가지입니다. 깊은 감시의 기본 원리는 중간 계층에 추가적인 보조 헤드를 추가하는 것입니다. 또한,浅한 네트워크의 가중치와 보조 손실을 사용합니다. YOLOv7 알고리즘은 최종 출력을 담당하는 헤드를 리드 헤드라고 하며, 보조 헤드는 훈련을 도와주는 헤드입니다.
YOLOv7은 레이블 할당에 다른 방법을 사용합니다. 일반적으로, 레이블 할당은 지面 진실과 주어진 규칙을 참조하여 레이블을 생성합니다. 그러나 최근에는 예측 입력의 분포와 품질이 신뢰할 수 있는 레이블을 생성하는 데 중요한 역할을 합니다. YOLOv7은 경계 상자와 지面 진실을 사용하여 객체의 부드러운 레이블을 생성합니다.
さらに, YOLOv7의 새로운 레이블 할당 방법은 리드 헤드의 예측을 사용하여 리드 헤드와 보조 헤드를 모두 안내합니다. 레이블 할당 방법에는 두 가지 전략이 있습니다.
리드 헤드 가이드 레이블 할당자
전략은 리드 헤드의 예측 결과와 지面 진실을 기반으로 최적화를 사용하여 부드러운 레이블을 생성합니다. 이러한 부드러운 레이블은 리드 헤드와 보조 헤드의 훈련 모델로 사용됩니다.
전략은 리드 헤드가 더 큰 학습 능력을 가지고 있기 때문에, 리드 헤드가 생성하는 레이블이 더 대표적이고, 소스와 타겟 사이에서 상관관계가 있기를 가정합니다.
조잡한 리드 헤드 가이드 레이블 할당자
이 전략은 또한 리드 헤드의 예측 결과와 지面 진실을 기반으로 최적화를 사용하여 부드러운 레이블을 생성합니다. 그러나, 주요 차이점은 있습니다. 이 전략에서는 두 가지 부드러운 레이블, 조잡한 수준과 미세한 레이블이 있습니다.
조잡한 레이블은 양성 샘플 할당 과정의 제약을 완화하여 더 많은 그리드를 양성 타겟으로 취급합니다. 이는 보조 헤드의 더 약한 학습 강度로 인해 정보가 손실되는 것을 방지하기 위해 수행됩니다.

위의 그림은 YOLOv7 알고리즘에서 훈련 가능한 무료 물건을 사용하는 것을 보여줍니다. 이는 보조 헤드에 대한 조잡한 레이블과 리드 헤드에 대한 미세한 레이블을 나타냅니다. 모델 (b)와 모델 (a)를 비교하면, (b)에는 보조 헤드가 있지만 (a)에는 없습니다.
그림 (c)에는 독립적인 레이블 할당자가 나타나고, 그림 (d)와 그림 (e)에는 각각 리드 가이드 레이블 할당자와 조잡한 리드 가이드 레이블 할당자가 나타납니다.
기타 훈련 가능한 무료 물건
위에서 언급한 것 외에도, YOLOv7 알고리즘은 추가적인 훈련 가능한 무료 물건을 사용합니다. 그러나, 이는 YOLOv7이 처음 제안한 것이 아닙니다. 이러한 물건은
- Conv-Bn-Activation 기술의 배치 정규화: 이전에는 컨볼루션 계층을 직접 배치 정규화 계층에 연결합니다.
- YOLOR의 암시적 지식: YOLOv7은 이 전략을 컨볼루션 특징 맵과 결합합니다.
- EMA 모델: EMA 모델은 YOLOv7의 최종 참조 모델로 사용되며, 주로 평균 교사 방법에서 사용됩니다.
YOLOv7: 실험
실험 설정
YOLOv7 알고리즘은 마이크로소프트 COCO 데이터셋을 사용하여 객체 감지 모델을 훈련하고 검증합니다. 이러한 실험 중 일부는 사전 훈련된 모델을 사용하지 않습니다. 개발자는 2017년 훈련 데이터셋을 사용하여 훈련하고, 2017년 검증 데이터셋을 사용하여 하이퍼파라미터를 선택했습니다. 마지막으로, YOLOv7의 객체 감지 결과는 최신 객체 감지 알고리즘과 비교됩니다.
개발자는 에지 GPU (YOLOv7-티니), 일반 GPU (YOLOv7), 클라우드 GPU (YOLOv7-W6)를 위한 기본 모델을 설계했습니다. 또한, YOLOv7 알고리즘은 다양한 서비스 요구 사항에 맞게 모델을 스케일링하는 데 사용됩니다.
기준선
YOLOv7 알고리즘은 이전 YOLO 모델과 YOLOR 객체 감지 알고리즘을 기준선으로 사용합니다.

위의 그림은 YOLOv7 모델의 기준선을 다른 객체 감지 모델과 비교합니다. 결과는 명확합니다. YOLOv4 알고리즘과 비교하여, YOLOv7은 75% 少한 매개변수와 15% 少한 계산을 사용하며, 0.4% 더 높은 정확도를 나타냅니다.
최신 객체 감지 모델과의 비교

위의 그림은 YOLOv7을 최신 객체 감지 모델과 비교합니다. 결과는 명확합니다. YOLOv7 알고리즘이 제안하는 방법은 속도-정확도 트레이드 오프 점수에서 최고입니다.
제거 연구: 제안된 복합 스케일링 방법

위의 그림은 다양한 전략을 사용하여 모델을 스케일링하는 결과를 비교합니다. YOLOv7 모델은 계산 블록의 깊이를 1.5배, 너비를 1.25배로 스케일링합니다.
깊이만 스케일링하는 모델과 비교하여, YOLOv7 모델은 0.5% 더 높은 정확도를 나타내며, 매개변수와 계산을 少하게 사용합니다. 반면에, 너비만 스케일링하는 모델과 비교하여, YOLOv7 모델은 0.2% 더 높은 정확도를 나타내며, 매개변수는 2.9% 더 많고, 계산은 1.2% 더 많습니다.
제안된 계획된 재매개 모델
YOLOv7 알고리즘은 재매개 모델을 사용하여 잔差 기반 및 결합 기반 모델을 검증합니다. 검증 과정에서, YOLOv7 알고리즘은 3-스택 ELAN을 결합 기반 모델로 사용하고, CSPDarknet을 잔차 기반 모델로 사용합니다.
결합 기반 모델의 경우, YOLOv7 알고리즘은 3-스택 ELAN의 3×3 컨볼루션 계층을 RepConv로 대체합니다. 아래의 그림은 계획된 RepConv와 3-스택 ELAN의 자세한 구성입니다.

さらに, 잔차 기반 모델의 경우, YOLOv7 알고리즘은 반전된 다크 블록을 사용합니다. 원래 다크 블록에는 3×3 컨볼루션 블록이 없기 때문입니다. 아래의 그림은 반전된 CSPDarknet의 아키텍처를 보여줍니다.

보조 손실을 위한 보조 헤드
보조 손실을 위한 보조 헤드의 경우, YOLOv7 모델은 독립적인 레이블 할당을 사용하여 보조 헤드와 리드 헤드의 방법을 비교합니다.

위의 그림은 보조 헤드에 대한 연구 결과를 보여줍니다. 모델의 전체 성능이 보조 손실이 증가할수록 증가하는 것을 알 수 있습니다. 또한, YOLOv7 모델이 제안하는 리드 가이드 레이블 할당이 독립적인 리드 할당 전략보다 더 나은 성능을 나타냅니다.
YOLOv7 결과
위의 실험을 기반으로, YOLOv7의 성능은 다음과 같습니다.

위의 그림은 YOLOv7 모델을 다른 객체 감지 알고리즘과 비교합니다. 결과는 명확합니다. YOLOv7 모델은 평균 정밀도(Average Precision)와 배치 간섭(batch interference)에서 다른 객체 감지 모델을 능가합니다.
さらに, 아래의 그림은 YOLOv7 모델을 다른 실시간 객체 감지 알고리즘과 비교합니다. 다시 한번, YOLOv7 모델은 전체 성능, 정확도, 효율성에서 다른 모델을 능가합니다.

추가적인 관찰 결과는 다음과 같습니다.
- YOLOv7-Tiny는 YOLOv7 모델 중 가장 작은 모델로, 600만 개의 매개변수를 가집니다. YOLOv7-Tiny는 평균 정밀도 35.2%를 나타내며, 이는 YOLOv4-Tiny 모델과 비교하여 매개변수가 유사한 경우 더 높은 성능을 나타냅니다.
- YOLOv7 모델은 3700만 개의 매개변수를 가집니다. 이는 YOLOv4 모델보다 매개변수가 적으며, 계산도 少합니다. 또한, 0.4% 더 높은 정확도를 나타냅니다.
- YOLOv7 모델은 5에서 160 FPS 범위에서最高의 mAP와 FPS를 나타냅니다.
결론
YOLO 또는 You Only Look Once는 현대 컴퓨터 비전에서 최신 객체 감지 모델입니다. YOLO 알고리즘은 높은 정확도와 효율성을 가지고 있으며, 실시간 객체 감지 산업에서 광범위하게 적용되고 있습니다. 2016년 처음 YOLO 알고리즘이 도입된 이후, 실험을 통해 모델을 지속적으로 개선할 수 있었습니다.
YOLOv7 모델은 YOLOv7 모델 중 가장 강력한 모델이며, 현재까지 가장 강력한 YOLO 알고리즘입니다. 이 글에서 YOLOv7 모델의 기본을 살펴보고, YOLOv7이 इतन 효율적인 이유를 설명하려고 했습니다.












