기술나눔

YOLOv10은 자체 데이터 세트를 학습합니다(교통 표지판 감지).

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.

머리말

관련 소개

  • YOLOv10은 Ultralytics Python 패키지를 기반으로 Tsinghua University의 연구원에 의해 구축되었으며, 실시간 표적 탐지의 새로운 방법을 도입하고 이전 YOLO 버전의 후처리 및 모델 아키텍처의 결함을 해결했습니다. NMS(Non-Maximum Suppression)를 제거하고 다양한 모델 구성 요소를 최적화함으로써 YOLOv10은 계산 오버헤드를 크게 줄이면서 최첨단 성능을 달성합니다. 광범위한 실험을 통해 여러 모델 규모에서 뛰어난 정확도와 대기 시간 균형을 보여줍니다.
  • [1] YOLOv10 소스 코드 주소:https://github.com/THU-MIG/yolov10.git
  • [2] YOLOv10 논문 주소:https://arxiv.org/abs/2405.14458
    여기에 이미지 설명을 삽입하세요.
  • 개요
    실시간 객체 감지의 목적은 짧은 지연 시간으로 이미지 속 객체의 카테고리와 위치를 정확하게 예측하는 것입니다. YOLO 시리즈는 성능과 효율성의 균형으로 인해 이 연구의 최전선에 있었습니다. 그러나 NMS에 대한 의존성과 아키텍처의 비효율성은 최적의 성능을 방해합니다. YOLOv10은 nms 없는 교육을 위한 일관된 이중 작업과 전반적인 효율성-정확도 기반 모델 설계 전략을 도입하여 이러한 문제를 해결합니다.
  • 건축학
    YOLOv10의 아키텍처는 이전 YOLO 모델의 강점을 기반으로 구축되는 동시에 몇 가지 주요 혁신을 도입합니다. 모델 아키텍처는 다음 구성 요소로 구성됩니다.
    • 백본: YOLOv10의 백본은 향상된 버전의 CSPNet(Cross Stage Partial Network)을 사용하여 그래디언트 흐름을 개선하고 계산 중복성을 줄이는 기능 추출을 담당합니다.
    • 목: 목은 다양한 비늘의 특징을 모아서 머리로 전달하도록 설계되었습니다. 효과적인 다중 규모 기능 융합을 위한 PAN(Path Aggregation Network) 레이어가 포함되어 있습니다.
    • 일대다 헤드: 훈련 과정 중에 각 개체에 대해 여러 예측을 생성하여 풍부한 감독 신호를 제공하고 학습 정확도를 향상시킵니다.
    • 일대일 헤드: 추론 중에 각 개체에 대해 최상의 예측을 생성하여 NMS가 필요하지 않으므로 대기 시간이 줄어들고 효율성이 향상됩니다.
  • 주요 특징들
    • NMS 없는 교육: 일관된 이중 할당을 활용하여 NMS의 필요성을 제거하고 추론 대기 시간을 줄입니다.
    • 전체적인 모델 설계: 경량 분류 헤드, 공간 채널 분리 다운샘플링, 순위 가이드 블록 설계를 포함하여 각 구성 요소는 효율성과 정확성의 관점에서 완전히 최적화되었습니다.
    • 향상된 모델 기능: 대규모 코어 컨볼루션과 부분 Self-Attention 모듈을 결합하여 상당한 계산 비용 없이 성능을 향상합니다.
  • 모델 변형: YOLOv10은 다양한 애플리케이션 요구 사항을 충족하기 위해 다양한 모델로 제공됩니다.
    • YOLOv10-N: 리소스가 극도로 제한된 환경을 위한 Nano 버전입니다.
    • YOLOv10-S: 소형 버전은 속도와 정확성의 균형을 유지합니다.
    • YOLOv10-M: 범용 사용을 위한 중간 버전(다양한 목적이나 용도에 적합)
    • YOLOv10-B: 더 높은 정확도를 위해 폭을 늘린 균형 잡힌 버전입니다.
    • YOLOv10-L: 컴퓨팅 리소스가 증가함에 따라 정확도가 더 높은 대형 버전입니다.
    • YOLOv10-X: 최고의 정확도와 성능을 제공하는 대형 버전입니다.
      여기에 이미지 설명을 삽입하세요.

전제조건

실험실 환경

torch==2.0.1
torchvision==0.15.2
onnx==1.14.0
onnxruntime==1.15.1
pycocotools==2.0.7
PyYAML==6.0.1
scipy==1.13.0
onnxsim==0.4.36
onnxruntime-gpu==1.18.0
gradio==4.31.5
opencv-python==4.9.0.80
psutil==5.9.8
py-cpuinfo==9.0.0
huggingface-hub==0.23.2
safetensors==0.4.3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

설치환경

pip install ultralytics
# 或者
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple # 国内清华源,下载速度更快
  • 1
  • 2
  • 3

여기에 이미지 설명을 삽입하세요.

여기에 이미지 설명을 삽입하세요.

프로젝트 주소

리눅스

git clone https://github.com/THU-MIG/yolov10.git

cd yolov10
# conda create -n yolov10 python=3.9
# conda activate yolov10
pip install -r requirements.txt
pip install -e .
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
Cloning into 'yolov10'...
remote: Enumerating objects: 4583, done.
remote: Counting objects: 100% (4583/4583), done.
remote: Compressing objects: 100% (1270/1270), done.
remote: Total 4583 (delta 2981), reused 4576 (delta 2979), pack-reused 0
Receiving objects: 100% (4583/4583), 23.95 MiB | 1.55 MiB/s, done.
Resolving deltas: 100% (2981/2981), done.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

윈도우

제발https://github.com/THU-MIG/yolov10.git웹사이트에서 소스 코드 zip 패키지를 다운로드합니다.

cd yolov10
# conda create -n yolov10 python=3.9
# conda activate yolov10
pip install -r requirements.txt
pip install -e .
  • 1
  • 2
  • 3
  • 4
  • 5

YOLOv10을 사용하여 교통 표지판 감지를 위한 자체 데이터 세트 훈련

데이터 준비

이 기사에 사용된 데이터 세트는 무료입니다.다운로드 링크:https://download.csdn.net/download/우정당/88045378

여기에 이미지 설명을 삽입하세요.

훈련을 실시하다

yolo detect train data=../datasets/Road_Sign_VOC_and_YOLO_datasets/road_sign.yaml model=yolov10n.yaml epochs=100 batch=4 imgsz=640 device=0
  • 1

여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.

예상하다

yolo predict model=runsdetecttrain4weightsbest.pt source=E:/mytest/datasets/Road_Sign_VOC_and_YOLO_datasets/testset/images
  • 1

여기에 이미지 설명을 삽입하세요.

여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.

인증 중

yolo detect val data=../datasets/Road_Sign_VOC_and_YOLO_datasets/road_sign.yaml model=runsdetecttrain4weightsbest.pt batch=4 imgsz=640 device=0
  • 1

여기에 이미지 설명을 삽입하세요.

참고자료

[1] YOLOv10 소스 코드 주소:https://github.com/THU-MIG/yolov10.git
[2] YOLOv10 논문 주소:https://arxiv.org/abs/2405.14458