YOLOv7 알고리즘(PyTorch+Pyside6+YOLOv7) 기반의 고정밀 실시간 안면 마스크 감지 및 인식 시스템

개요: YOLOv7 알고리즘을 기반으로 한 고정밀 실시간 안면 마스크 표적 탐지 시스템을 이용하여 일상생활에서 마스크를 착용한 보행자를 탐지하고 위치를 찾아낼 수 있다. 카메라 동시에 이 시스템은 테스트 결과의 시각화 및 내보내기도 지원합니다. 이 시스템은 YOLOv7 표적 탐지 알고리즘을 사용하여 데이터 세트를 훈련하고 Pysdie6 프레임워크를 사용하여 데스크톱 페이지 시스템을 구축하며 PT 및 ONNX와 같은 모델 가중치를 시스템의 예측 모델로 로드하도록 지원합니다. 이 시스템이 구현하는 기능에는 모델 가중치 선택 및 초기화, 탐지 신뢰도 및 사후 처리 IOU 임계값 조정, 이미지 가져오기, 탐지, 탐지 결과 및 대상 통계 시각화, 비디오 가져오기, 탐지, 시각화 및 탐지 결과 대상 통계가 포함됩니다. , 폴더 이미지 일괄 가져오기, 탐지, 탐지 결과 시각화 및 대상 통계, 장치 카메라 가져오기, 탐지, 탐지 결과 시각화 및 대상 통계, 단일 이미지, 비디오 및 카메라의 추론 시간 표시. 이 블로그 게시물은 시스템의 환경 구축 프로세스, 전반적인 기능 소개 및 데모를 자세히 설명합니다. 또한 완전한 Python 소스 코드 및 사용 튜토리얼을 제공합니다. 초보자가 참조하기에 적합하고 2차 개발을 지원합니다. 전체 시스템의 전체 코드 및 리소스 파일에 대해 , 기사 마지막에 있는 다운로드 링크로 이동하여 다운로드를 참조하세요.
여기에 이미지 설명을 삽입하세요.

YOLOv7 알고리즘의 원리 소개

YOLOv7은 2022년 7월에 제안되어 출시되었으며, 이 논문은 2023년 최고의 컴퓨터 비전 컨퍼런스 CVPR에서 발표되었습니다. YOLOv7에 대한 링크와 지침은 YOLOv3 및 YOLOv4의 공식 웹사이트에 게시되어 있으며, 이는 YOLOv7이 컴퓨터 비전 컨퍼런스에서 인정을 받았음을 보여줍니다. 큰 놈들. YOLOv7의 공식 버전은 동일한 크기에서 YOLOv5보다 더 정확하고, 120% 더 빠르며(FPS), YOLOX(FPS)보다 180% 더 빠르며, Dual-Swin-T(FPS)보다 1200% 더 빠르며, ConvNext보다 550% 더 빠릅니다. (FPS), SWIN-L(FPS)보다 500% 빠릅니다. 5FPS ~ 160FPS 범위에서 YOLOv7은 속도와 정확도 모두에서 현재 알려진 감지기를 능가하며 GPU V100에서 테스트되었습니다. AP 정확도 56.8%의 모델은 30FPS(batch=1)에 도달할 수 있습니다. 위의 감지율은, 동시에 이는 현재 높은 정확도로 30FPS를 초과할 수 있는 유일한 감지기입니다.
논문 주소: https://arxiv.org/pdf/2207.02696.pdf
소스 코드 주소: https://github.com/WongKinYiu/yolov7
여기에 이미지 설명을 삽입하세요.

YOLOv7 모델 구조

YOLOv7 모델의 전체 구조는 다음과 같으며, YOLOv5와 유사하게 전체적인 구조는 Input, Backbone, Neck, Head, Prediction 모듈로 나눌 수 있다.
여기에 이미지 설명을 삽입하세요.

이 섹션에서는 YOLOv7 관련 모델의 새로운 모듈을 소개합니다.

(1) ReOrg: yolov7-w6.yaml 파일에 위치한 이 모듈은
실제로 입력 정보에 대해 슬라이싱 작업을 수행하며, YOLOv2 알고리즘의 PassThrough 레이어 및 YOLOv5(v5.0 버전)의 Focus 작업과 유사합니다. 입력 레이어를 최대한 많이 분할하려고 시도하며, 원본 정보를 유지하고 다운샘플링합니다. (코드의 이 부분은 특히 models/common.py 파일의 48번째 라인에 위치합니다.)
(2) 다중 채널 컨볼루션 모듈의 이 부분은
주로 다수의 1×1 포인트 Conv 및 3×3 표준 Conv를 재사용합니다. , 그리고 각 Conv의 출력은 다음 Conv의 입력일 뿐만 아니라 DenseNet의 작업과 유사하게 다른 모든 Conv 출력과도 Concat 연결 작업을 수행합니다.
(3) SPPCSPC 모듈
피라미드를 사용하여 얻은 모듈입니다. 풀링 작업 및 CSP 구조. 여전히 많은 수의 분기가 포함되어 있습니다. 총 입력은 서로 다른 분기의 세 세그먼트로 나뉩니다. 중간 분기는 실제로 피라미드 풀링 작업입니다. 왼쪽 분기는 깊이별 Conv와 유사하지만 참고하세요. 중간의 3×3 컨볼루션은 수행되지 않습니다. 그룹화는 여전히 표준 컨볼루션이며 오른쪽에 onv 지점이 있습니다. 마지막으로 모든 분기의 정보 흐름 출력은 concat 벡터화됩니다(코드의 이 부분은 구체적으로 다음 위치에 있습니다). models/common.py 파일의 262번째 줄).
(4) RepConv 모듈
RepVGG는 VGG 네트워크 설계를 기반으로 한 다중 분기 모델로 학습 과정에서 다중 분기를 통해 성능을 향상할 수 있으며 추론은 ​​3×3 컨볼루션과 ReLU를 통해 연속 직선형으로 변환할 수 있습니다. 구조적 재매개변수화를 통해 VGG 네트워크를 통해 추론 속도를 높입니다(코드의 이 부분은 특히 models/common.py 파일의 463번째 줄에 있습니다).
(5) E-ELAN 모듈
이 부분은 다채널 컨볼루션 모듈을 보완하는 부분으로 더 크고 깊은 모델(yolov7-e6e 모델)에서만 사용됩니다. 효율적인 네트워크 설계에 관한 대부분의 논문에서 주요 고려 사항은 매개 변수 수, 계산량 및 계산 밀도입니다. 그러나 메모리 액세스 관점에서 입출력 채널 비율, 아키텍처 분기 수, 요소 수준 작업이 네트워크 추론 속도에 미치는 영향을 분석할 수도 있습니다(shufflenet 논문에서 제안). 모델 스케일링을 수행할 때 활성화 함수도 고려해야 합니다. 즉, 컨볼루셔널 레이어의 출력 텐서에 있는 요소 수에 더 많은 고려 사항이 제공됩니다. 대규모 ELAN에서는 경사 경로 길이 및 계산 모듈 수에 관계없이 안정적인 상태가 달성됩니다. 그러나 더 많은 컴퓨팅 모듈을 무한히 쌓게 되면 이러한 안정된 상태가 파괴될 수 있으며 매개변수 활용도가 감소하게 됩니다. 저자는 확장, 셔플 및 병합 카디널리티 구조를 사용하여 원래 그래디언트 경로를 파괴하지 않고 네트워크의 학습 능력을 향상시키는 E-ELAN을 제안합니다(구체적으로 cfg/training/yolov7-e6e.yaml에서 볼 수 있음). 그것은 연산자의 별도의 구조적 구성으로 분할됩니다)

YOLOv7 손실 함수

YOLOv7은 일반적으로 YOLOv5와 일치하며 좌표 손실, 목표 신뢰 손실(GT는 훈련 단계의 일반적인 IoU) 및 분류 손실의 세 부분으로 나뉩니다. 그 중 목표 신뢰도 손실과 분류 손실은 BCEWithLogitsLoss(로그를 사용한 바이너리 교차 엔트로피 손실)를 사용하고, 좌표 손실은 CIOU 손실을 사용합니다. 자세한 내용은 utils/loss.py의 ComputeLossOTA 함수를 참조하세요.
IoU_Loss: 주로 감지 프레임과 대상 프레임이 겹치는 영역을 고려합니다.
GIOU_Loss: IoU를 기준으로 경계 상자가 겹치지 않는 문제를 해결합니다.
DIOU_Loss: IoU와 GIOU를 기반으로 바운딩 박스 중심점의 거리 정보를 고려합니다.
CIOU_Loss: DIOU를 기반으로 경계 상자 종횡비의 스케일 정보를 고려합니다.

시스템 환경 설정

(1) Anaconda 프롬프트를 엽니다(컴퓨터에 아나콘다 소프트웨어가 없으면 다운로드하여 설치해야 합니다).
(2) yolo7의 conda 환경을 생성하고(conda create -n yolo7 python=3.8) yolo7 환경을 활성화합니다( conda activate yolo7)
(3) 프로젝트 디렉터리를 입력합니다(이 문서에서 설명하는 디렉터리는 E:\Pyside6_yolov7\yolov7입니다)
(4) 환경 종속성 패키지를 설치합니다: pip install -r 요구 사항.txt
(5) 다음을 입력합니다: python base_camera, 환경에서 py를 실행하여 시스템 인터페이스를 엽니다.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.

시스템 인터페이스 및 기능 표시

이 블로그 게시물에서는 설계된 소프트웨어 인터페이스가 표시됩니다. 전체적인 인터페이스 디자인은 간단하고 우아하며 직관적인 작동 경험을 제공합니다. 주요 기능은 다음과 같습니다: 
모델 가중치 가져오기 및 초기화
 탐지 신뢰도 점수 및 조정 후처리 IoU 임계값
 감지된 대상의 정보 표시
 감지 시간의 통계 및 표시
 이미지 가져오기, 감지, 시각적 표시 및 결과 내보내기
 비디오 가져오기, 감지, 시각적 표시 및 결과 내보내기
 일괄 가져오기, 감지 및 결과 폴더 아래의 이미지 시각적 표시 및 내보내기
 카메라 가져오기, 감지, 시각적 표시 및 결과 내보내기
소프트웨어의 초기 인터페이스 예는 다음과 같습니다.
여기에 이미지 설명을 삽입하세요.

모델 가중치 선택 및 초기화

사용자는 "모델 선택" 버튼을 클릭하여 훈련된 모델 가중치를 업로드할 수 있습니다. 지원되는 가중치 형식에는 .pt 및 .onnx가 있습니다. 모델 가중치를 업로드한 후, 사용자는 "모델 초기화" 버튼을 클릭하여 선택한 모델 가중치의 초기화 정보를 구성할 수 있습니다. 또한 사용자는 신뢰 임계값(Confidence), 감지 후 처리 임계값(IoU) 등과 같은 다양한 매개변수를 조정하여 감지 결과의 정확성과 속도를 최적화할 수도 있습니다. Confidence 또는 IoU 아래 입력 상자의 값을 변경하면 슬라이더의 진행률이 동기적으로 변경될 수 있습니다. 슬라이더의 진행률 값을 변경하면 입력 상자의 값도 동기적으로 변경될 수 있습니다. Confidence 또는 IOU 값의 변경 사항은 모델의 구성 감지 신뢰도 임계값 및 IOU 임계값을 변경합니다. 모든 설정을 완료한 후 사용자는 쉽게 탐지 프로세스를 시작하고 탐지 결과를 시각적으로 볼 수 있습니다. 해당 작업을 완료한 후 시스템 상태 표시줄(시스템 오른쪽 하단)에도 해당 작업의 반환 결과가 표시됩니다.
여기에 이미지 설명을 삽입하세요.

이미지 선택, 감지, 표시 및 내보내기

사용자는 "이미지 선택" 버튼을 클릭하여 감지 및 인식을 위해 단일 이미지를 쉽게 업로드할 수 있습니다. 그런 다음 "감지" 버튼(시스템 오른쪽 하단에 있는 버튼, 자세한 내용은 위 범례 참조)을 클릭하면 시스템이 자동으로 대상 감지 작업을 완료합니다. 탐지 프로세스 중에 시스템은 "감지 시간" 열에 탐지를 완료하기 위한 추론 시간을 표시하고 "대상 수" 열에 탐지된 대상 수를 표시합니다. 사용자는 드롭다운 상자를 통해 감지된 대상을 선택하고 해당 위치 정보의 변화를 볼 수도 있습니다(예: 왼쪽 위 모서리 x 좌표 xmin, 왼쪽 위 모서리 y 좌표 ymin, 왼쪽 아래 모서리 x 좌표 xmax, 왼쪽 하단 y 좌표 ymax) 라벨 값입니다. 감지가 완료되면 입력 이미지의 감지 결과가 시스템 오른쪽에 표시됩니다.
사용자가 테스트 결과를 저장하려면 "이미지 결과 내보내기" 버튼을 클릭한 다음 팝업 대화 상자에 저장 파일 이름과 접미사(예: 1.jpg)를 입력하여 테스트 결과 이미지를 저장할 수 있습니다. .
사용자가 종료 버튼(시스템 오른쪽 하단에 있는 버튼, 자세한 내용은 위 범례 참조)을 클릭하면 시스템은 현재 감지 작업을 종료하고 인터페이스를 새로 고쳐 모든 출력 정보를 지웁니다. 또한 사용자는 "이미지 선택" 또는 "비디오 선택" 버튼을 계속 클릭하여 해당 감지 및 인식을 위한 이미지 또는 비디오를 업로드할 수 있습니다. 즉, 이 시스템은 사용자에게 간단하고 사용하기 쉬운 인터페이스를 제공하여 사용자가 이미지 감지 작업을 신속하게 완료하고 감지 결과를 편리하게 보고 내보낼 수 있도록 합니다. 구체적인 작동 예는 아래 그림에 나와 있습니다.
여기에 이미지 설명을 삽입하세요.

비디오 선택, 감지, 표시 및 내보내기

사용자는 "비디오 선택" 버튼을 클릭하여 탐지 및 식별을 위한 비디오를 업로드할 수 있습니다. 다음으로, 사용자는 "감지" 버튼(시스템 오른쪽 하단에 있는 버튼, 자세한 내용은 위 범례 참조)만 클릭하기만 하면 시스템이 자동으로 비디오 타겟 감지 작업을 완료합니다. 탐지 과정에서 시스템은 "감지 시간" 열에 단일 프레임 표적 탐지의 추론 시간을 표시하고 "표적 수" 열에 단일 프레임에서 탐지된 표적 수를 표시합니다. , 시스템은 진행률 표시줄을 사용하여 현재 탐지 일정을 시각적으로 표시합니다. 사용자는 드롭다운 상자를 통해 감지된 대상을 선택하고 해당 위치 정보의 변화를 볼 수도 있습니다(예: 왼쪽 위 모서리 x 좌표 xmin, 왼쪽 위 모서리 y 좌표 ymin, 왼쪽 아래 모서리 x 좌표 xmax, 왼쪽 하단 y 좌표 ymax) 라벨 값입니다. 감지가 완료되면 입력 영상의 감지 결과가 시스템 오른쪽에 표시됩니다.
사용자가 비디오 감지 결과를 일시 중지하고 관찰할 수 있도록 시스템은 "일시 중지" 버튼을 제공합니다(시스템 오른쪽 하단에 있는 버튼, 자세한 내용은 위 범례 참조). 사용자가 클릭한 후 시스템은 영상 감지를 일시 중지합니다. 이때 사용자는 드롭다운 대상 상자를 통해 감지된 대상의 좌표 위치 정보를 선택한 후 "계속" 버튼(화면의 버튼)을 클릭할 수 있습니다. 시스템의 오른쪽 하단, 자세한 내용은 위의 범례 참조) 이를 달성하려면 입력 비디오의 연속 감지가 필요합니다.
사용자가 비디오 탐지 결과를 저장하려면 "비디오 결과 내보내기" 버튼을 클릭한 다음 팝업 대화 상자에 저장 파일 이름과 접미사(예: 2.mp4)를 입력하여 탐지 결과를 저장할 수 있습니다. 동영상. 사용자가 "종료" 버튼(시스템 오른쪽 하단에 있는 버튼, 자세한 내용은 위 범례 참조)을 클릭하면 시스템은 현재 비디오 감지 작업을 종료하고 인터페이스를 새로 고쳐 모든 출력 정보를 지웁니다.
여기에 이미지 설명을 삽입하세요.

폴더 이미지 일괄 가져오기, 감지, 표시 및 내보내기

사용자는 "폴더" 버튼을 클릭하여 배치 이미지를 쉽게 업로드할 수 있습니다. 그런 다음 "감지" 버튼(시스템 오른쪽 하단에 있는 버튼, 자세한 내용은 위 범례 참조)을 클릭하면 시스템이 자동으로 대상 감지 작업을 완료하고 모든 폴더의 사진을 감지합니다. 탐지 프로세스 중 시스템은 "탐지 시간" 열에 탐지를 완료할 추론 시간을 표시하고 "대상 번호" 열에 탐지된 대상 수를 표시합니다. 동시에 시스템은 진행률 표시줄을 사용하여 다음을 수행합니다. 현재 감지 진행 상황을 시각적으로 표시합니다. 사용자는 드롭다운 상자를 통해 감지된 대상을 선택하고 해당 위치 정보의 변화를 볼 수도 있습니다(예: 왼쪽 위 모서리 x 좌표 xmin, 왼쪽 위 모서리 y 좌표 ymin, 왼쪽 아래 모서리 x 좌표 xmax, 왼쪽 하단 y 좌표 ymax) 라벨 값입니다. 감지가 완료되면 입력 이미지의 감지 결과가 시스템 오른쪽에 표시됩니다.
사용자가 테스트 결과를 일괄적으로 저장하려면 "폴더 내보내기" 버튼을 클릭한 다음 팝업 대화 상자에서 출력 폴더를 선택하여 일괄 테스트 결과 이미지를 저장할 수 있습니다. 사용자가 종료 버튼(시스템 오른쪽 하단에 있는 버튼, 자세한 내용은 위 범례 참조)을 클릭하면 시스템은 현재 감지 작업을 종료하고 인터페이스를 새로 고쳐 모든 출력 정보를 지웁니다. 구체적인 작동 예는 아래 그림에 나와 있습니다.
여기에 이미지 설명을 삽입하세요.

카메라 감지, 표시 및 내보내기

사용자는 "카메라 켜기" 버튼을 클릭하여 카메라 장치를 시작할 수 있습니다(기본값은 로컬 장치의 첫 번째 카메라를 시작함). 다음으로, 사용자는 "감지" 버튼(시스템 오른쪽 하단에 있는 버튼, 자세한 내용은 위 범례 참조)만 클릭하기만 하면 시스템이 자동으로 카메라 대상 감지 작업을 완료합니다. 감지 프로세스 동안 시스템은 "감지 시간" 열에 소요된 시간을 표시하고 "대상 수량" 열에 감지된 대상 수를 표시합니다. 사용자는 드롭다운 상자를 통해 감지된 대상을 선택하고 해당 위치 정보의 변화를 볼 수도 있습니다(예: 왼쪽 위 모서리 x 좌표 xmin, 왼쪽 위 모서리 y 좌표 ymin, 왼쪽 아래 모서리 x 좌표 xmax, 왼쪽 하단 y 좌표 ymax) 라벨 값입니다.
사용자가 카메라 감지 결과를 저장하려면 "카메라 내보내기" 버튼을 클릭한 후 팝업 대화 상자에 저장 파일 이름과 접미사(예: 22.mp4)를 입력하여 카메라 감지 결과를 저장할 수 있습니다. 동영상. 사용자가 "종료" 버튼(시스템 오른쪽 하단에 있는 버튼, 자세한 내용은 위 범례 참조)을 클릭하면 시스템은 현재 카메라 감지 작업을 종료하고 인터페이스를 새로 고쳐 모든 출력 정보를 지웁니다. 즉, 이 시스템은 사용자에게 간단하고 사용하기 쉬운 인터페이스를 제공하여 카메라 검사 작업을 신속하게 완료하고 검사 결과를 편리하게 보고 내보낼 수 있도록 해줍니다.
여기에 이미지 설명을 삽입하세요.

데이터세트 소개

이 시스템에서 사용하는 안면 마스크 데이터 세트는 얼굴과 마스크라는 두 가지 범주로 수동으로 라벨이 지정되어 있으며, 데이터 세트에는 총 7952개의 이미지가 있습니다. 이 데이터세트의 카테고리는 모두 회전 횟수가 많고 조명 조건이 다양하므로 보다 강력한 감지 모델을 훈련하는 데 도움이 됩니다. 본 논문의 실험에서 사용한 안면 마스크 검출 및 인식 데이터 세트는 훈련 세트에 6612개의 이미지, 검증 세트에 1340개의 이미지가 포함되어 있으며, 선택된 데이터 중 일부와 샘플 데이터 세트 중 일부는 아래 그림과 같다.

키코드 분석

이 시스템은 PyTorch를 사용하여 표적 탐지 알고리즘을 구현하고 YOLOv7 알고리즘을 기반으로 표적 탐지를 수행합니다. 훈련 단계에서는 사전 훈련된 모델을 훈련의 초기 모델로 사용한 다음, 더 나은 탐지 성능을 얻기 위해 여러 번의 반복을 통해 네트워크 매개변수를 최적화했습니다. 훈련 과정에서 우리는 모델의 일반화 능력과 견고성을 향상시키기 위해 학습률 감소 및 데이터 향상과 같은 기술을 채택했습니다. 모델의 성능을 더 잘 평가하기 위해 훈련 세트와 검증 세트에 대한 광범위한 실험을 수행했습니다. 학습률, 배치 크기 등과 같은 하이퍼파라미터를 조정하여 마침내 이 작업에 적합한 매개변수 설정을 찾았습니다. 동시에 모델의 일반화 능력을 향상시키기 위해 무작위 회전, 크기 조정, 자르기 및 색상 변환과 같은 데이터 향상 기술을 사용하여 과적합 위험을 줄이면서 데이터 세트를 확장합니다.
테스트 단계에서 훈련된 모델을 사용하여 새로운 이미지와 비디오를 감지했습니다. 임계값을 설정하면 임계값보다 신뢰도가 낮은 탐지 프레임을 필터링하여 최종적으로 탐지 결과를 얻습니다. 동시에 후속 분석 및 적용을 위해 감지 결과를 이미지 또는 비디오 형식으로 저장할 수도 있습니다. 이 시스템은 YOLOv7 알고리즘을 기반으로 하며 PyTorch를 사용하여 구현됩니다. 코드에 사용된 주요 라이브러리에는 PyTorch, NumPy, OpenCV, Pyside6 등이 있습니다. 본 시스템에 구현된 일부 키 코드는 아래 그림과 같습니다.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.

Pyside6 인터페이스 디자인

PySide6은 무료 Python 크로스 플랫폼 GUI 라이브러리로, Python용 바인딩 라이브러리이며 크로스 플랫폼 GUI 애플리케이션을 개발하는 데 사용됩니다. PySide6은 Qt5 및 PyQt5 라이브러리를 기반으로 하는 차세대 Python 크로스 플랫폼 GUI 라이브러리로, 개발자에게 크로스 플랫폼 사용자 인터페이스를 구축할 수 있는 강력한 도구 세트를 제공합니다. PySide6의 주요 목표는 성능을 향상하고, 개발자의 작업을 단순화하며, 더 나은 사용자 경험을 제공하는 것입니다. PySide6의 주요 기능은 다음과 같습니다:
크로스 플랫폼 지원: PySide6은 Windows, MacOS 및 Linux와 같은 여러 플랫폼을 지원하며 크로스 플랫폼 GUI 애플리케이션을 쉽게 개발할 수 있습니다.
높은 성능: PySide6은 Qt5 및 PyQt5 라이브러리의 최신 기술을 채택하여 개발자에게 더 높은 성능을 제공합니다.
사용하기 쉬움: PySide6은 풍부한 API와 도구를 제공하므로 개발자는 과도한 코딩 없이 GUI 애플리케이션을 빠르게 개발할 수 있습니다.
확장성: PySide6은 다양한 GUI 구성요소와 컨트롤을 지원하므로 애플리케이션의 사용자 인터페이스를 쉽게 확장하고 사용자 정의할 수 있습니다.
커뮤니티 지원: PySide6에는 개발자가 빠르게 시작할 수 있도록 풍부한 문서와 샘플 코드를 제공하는 활발한 커뮤니티가 있습니다.

전반적으로 PySide6은 개발자에게 크로스 플랫폼 사용자 인터페이스를 구축할 수 있는 간단하고 사용하기 쉬운 도구 세트를 제공하는 강력한 Python 크로스 플랫폼 GUI 라이브러리입니다. PySide6의 성능, 확장성 및 커뮤니티 지원은 개발자가 사용하기에 좋은 라이브러리입니다.

실험 결과 및 분석

실험 결과 및 분석 섹션에서는 정밀도, 재현율 등의 지표를 사용하여 모델의 성능을 평가하고, 손실 곡선과 PR 곡선을 통해 훈련 과정도 분석합니다. 훈련 단계에서는 YOLOv7 알고리즘을 사용하여 총 300세대에 대한 데이터 세트를 훈련했습니다. 아래 그림에서 볼 수 있듯이 훈련 횟수가 증가할수록 모델의 훈련 손실과 검증 손실이 점차 감소하여 모델이 계속해서 더 정확한 특징을 학습하는 것을 알 수 있습니다. 훈련 후 모델을 사용하여 데이터 세트의 검증 세트를 평가하고 다음과 같은 결과를 얻었습니다.
여기에 이미지 설명을 삽입하세요.

아래 그림은 우리가 검증 세트로 훈련한 YOLOv7 모델의 PR 곡선을 보여줍니다. 그림에서 볼 수 있듯이 모델은 높은 재현율과 정밀도를 달성했으며 전반적인 성능도 좋습니다.
여기에 이미지 설명을 삽입하세요.

요약하면, 이 블로그 게시물에서 훈련된 YOLOv7 모델은 데이터 세트에서 잘 작동하고, 높은 탐지 정확도와 견고성을 가지며, 실제 시나리오에 적용될 수 있습니다. 또한, 이 블로거는 전체 시스템에 대한 자세한 테스트를 수행하여 마침내 이 블로그 게시물의 데모 부분에서 볼 수 있는 부드럽고 고정밀 타겟 탐지 시스템 인터페이스를 개발했습니다. 완전한 UI 인터페이스, 테스트 사진 및 비디오, 코드 파일 등이 모두 패키지화되어 업로드되었습니다. 관심 있는 친구들은 내 비공개 메시지를 팔로우하여 다운로드 링크를 얻을 수 있습니다. 또한 이 블로그 게시물의 PDF와 더 많은 표적 탐지 및 인식 시스템을 보려면 작성자의 WeChat 공개 계정 BestSongC에 주목하십시오. (현재 YOLOv5 알고리즘 및 YOLOv8 알고리즘을 기반으로 개발된 시스템 인터페이스가 출시되었으며 표적 탐지 알고리즘 개선 시리즈).

딥러닝을 기반으로 한 기타 표적 탐지 시스템으로는 토마토, 고양이 및 개, 염소, 야생 표적, 담배꽁초, QR 코드, 헬멧, 교통 경찰, 야생 동물, 야생 연기, 인간 추락 인식, 적외선 보행자, 가금류 돼지, 사과, 불도저 등이 있습니다. , 벌, 전화, 비둘기, 축구, 소, 얼굴 마스크, 안전 조끼, 연기 감지 시스템 등이 필요한 친구들은 저를 팔로우하고 블로거의 다른 동영상에서 다운로드 링크를 받으세요.

전체 프로젝트 디렉터리는 다음과 같습니다.
여기에 이미지 설명을 삽입하세요.

Supongo que te gusta

Origin blog.csdn.net/sc1434404661/article/details/135118619
Recomendado
Clasificación