YOLOv12: 실시간 이미지 및 비디오 표적 감지를 위한 오픈 소스 도구

최신 AI 리소스6개월 전 업데이트 AI 공유 서클
1.7K 00

일반 소개

YOLOv12는 실시간 표적 탐지 기술에 중점을 두고 GitHub 사용자 sunsmarterjie가 개발한 오픈 소스 프로젝트입니다. 이 프로젝트는 기존 컨볼 루션 신경망 (CNN)의 성능을 최적화하기 위해주의 메커니즘을 도입하여 향상된 정확도의 탐지뿐만 아니라 높은 추론 속도를 유지하는 YOLO (You Only Look Once) 시리즈 프레임 워크를 기반으로하며 감시 시스템, 자율 주행 및 이미지 분석 등과 같은 다양한 시나리오를위한 YOLOv12를 제공하여 Nano, Small , 중형, 대형 및 초대형 모델 크기를 제공하여 다양한 컴퓨팅 성능 및 애플리케이션 요구 사항을 충족합니다. 이 프로젝트는 GNU AGPL-3.0에 따라 라이선스가 부여되어 사용자가 무료로 코드를 다운로드하고 필요에 따라 커스터마이징할 수 있습니다. 개발자 팀에는 버팔로 대학교와 중국 과학원의 연구원들이 포함되어 있으며, 기술 문서와 설치 가이드가 상세하게 설명되어 있어 사용자가 빠르게 시작할 수 있습니다.

YOLOv12:实时图像和视频目标检测的开源工具

 

기능 목록

  • 효율적인 실시간 표적 탐지T4 GPU에서 YOLOv12-N은 1.64ms에 불과한 추론 지연 시간으로 40.6% mAP를 달성합니다.
  • 다중 모델 선택저전력 장치부터 고성능 서버까지 다양한 하드웨어 환경을 수용할 수 있도록 5가지 모델(나노~초대형)을 제공합니다.
  • 주의 메커니즘 최적화탐지 정확도를 높이고 계산 복잡성을 줄이기 위해 영역 주의 및 R-ELAN 모듈을 도입했습니다.
  • 모델 내보내기프로덕션 환경에 쉽게 배포할 수 있도록 교육 모델을 ONNX 또는 TensorRT 형식으로 내보낼 수 있도록 지원합니다.
  • 맞춤형 데이터 세트 교육특정 대상 탐지 작업에 적합한 자체 데이터 세트로 모델을 학습시킬 수 있습니다.
  • 시각화 지원:: 테스트 결과 및 성능 평가를 쉽게 표시할 수 있는 감독 도구의 통합.

 

도움말 사용

설치 프로세스

YOLOv12에는 현재 독립형 PyPI 패키지가 제공되지 않으며 GitHub 소스에서 설치해야 합니다. 다음은 Linux용 자세한 설치 단계입니다(Windows 또는 Mac 사용자는 환경 구성을 조정해야 합니다):

  1. 환경 준비하기
    • 시스템에 Python 3.11 이상이 설치되어 있는지 확인합니다.
    • Git을 설치합니다:sudo apt install git(우분투 예시).
    • 선택 사항: 학습 및 추론 속도를 높이려면 NVIDIA GPU 드라이버와 CUDA(권장 버전 11.8 이상)를 설치하세요.
  2. 클론 창고
    터미널에서 다음 명령을 실행하여 YOLOv12 리포지토리를 로컬로 다운로드합니다:

    git clone https://github.com/sunsmarterjie/yolov12.git
    cd yolov12
  1. 가상 환경 만들기
    별도의 Python 환경을 생성하고 종속성 충돌을 피하려면 Conda 또는 venv를 사용하세요:

    conda create -n yolov12 python=3.11
    conda activate yolov12
    
  2. 종속성 설치
    프로젝트에 필요한 종속성을 설치합니다(PyTorch, flash-attn, supervision 등):

    wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.3/flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311-linux_x86_64.whl
    pip install flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311-linux_x86_64.whl
    pip install -r requirements.txt
    pip install -e .
    
  3. 설치 확인
    다음 명령을 실행하여 환경이 올바르게 구성되었는지 확인합니다:

    python -c "from ultralytics import YOLO; print('YOLOv12 installed successfully')"
    

사용법

사용자 지정 모델 교육

YOLOv12는 사용자가 장면별 대상 감지 작업에 적합한 자체 데이터 세트로 훈련할 수 있도록 지원합니다. 작동 단계는 다음과 같습니다:

  1. 데이터 집합 준비하기
    • 데이터는 YOLO 형식(이미지 및 레이블 폴더, .txt 파일 형식의 레이블, 대상 카테고리 및 경계 상자 좌표가 포함된 레이블)이어야 합니다.
    • 설정 data.yaml 파일에 학습 세트, 유효성 검사 세트 경로 및 카테고리 이름을 지정합니다. 예시:
      train: ./dataset/train/images
      val: ./dataset/val/images
      nc: 2  # 类别数量
      names: ['cat', 'dog']  # 类别名称
      
  2. 모델 로드 및 훈련
    Python 스크립트를 사용하여 사전 학습된 모델을 로드하고 학습을 시작합니다:

    from ultralytics import YOLO
    model = YOLO('yolov12s.pt')  # 可选 n/s/m/l/x 模型
    results = model.train(data='path/to/data.yaml', epochs=250, imgsz=640)
    
    • epochs훈련 라운드 수, 더 나은 결과를 위해 250회 이상을 권장합니다.
    • imgsz: 이미지 크기를 입력합니다(기본값은 640x640).
  3. 교육 결과 보기
    교육이 완료되면 교육 결과는 runs/detect/train 폴더에 모델 가중치(best.pt) 및 난독화 행렬 등을 사용할 수 있습니다. 혼동 행렬을 확인하려면 다음 코드를 실행하세요:

    from IPython.display import Image
    Image(filename='runs/detect/train/confusion_matrix.png', width=600)
    

추론 및 테스트

학습된 모델은 이미지나 동영상에서 대상을 감지하는 데 사용할 수 있습니다:

  1. 단일 이미지 감지
    model = YOLO('path/to/best.pt')
    results = model('test.jpg')
    results.show()  # 显示检测结果
    results.save()  # 保存结果到 runs/detect/predict
    
  2. 비디오 감지
    명령줄을 사용하여 동영상 파일을 처리합니다:

    python app.py --source 'video.mp4' --model 'path/to/best.pt'
    
  3. 성능 평가
    유효성 검사 집합을 평가하여 mAP와 같은 메트릭을 얻습니다:

    results = model.val(data='path/to/data.yaml')
    print(results.box.map)  # 输出 mAP@0.5:0.95
    

모델 내보내기

프로덕션 환경에서 사용할 수 있는 형식으로 모델을 내보냅니다:

model.export(format='onnx', half=True)  # 导出为 ONNX,支持 FP16 加速

내보낸 모델은 엣지 디바이스나 서버에 배포할 수 있습니다.

주요 기능 작동

  • 주의 메커니즘 최적화
    YOLOv12의 "영역 주의" 모듈은 수동으로 구성할 필요가 없으며, 훈련 및 추론 중에 자동으로 특징 추출을 최적화하여 작은 대상 감지를 개선합니다. 사용자는 적절한 모델 크기(예: 저전력 디바이스의 경우 Nano)를 선택하기만 하면 이 기능의 향상된 정확도를 누릴 수 있습니다.
  • 실시간 감지
    CUDA 지원 GPU에서 실행하면 추론 속도가 매우 빨라집니다. 예를 들어, T4 GPU에서 YOLOv12-N 모델을 실행하면 단 1.64ms 만에 단일 이미지를 감지할 수 있으며, 사용자는 감독 도구를 사용하여 감지 프레임과 신뢰 수준을 실시간으로 시각화할 수 있습니다:

    results = model('image.jpg')
    results.plot()  # 显示带标注的图像
    
  • 멀티 씬 적응
    모델 크기와 학습 데이터를 조정하여 YOLOv12를 다양한 작업에 쉽게 적용할 수 있습니다. 예를 들어, 감시 시스템에서 보행자를 감지하거나 자율 주행에서 차량 및 교통 표지판을 인식할 수 있습니다.
© 저작권 정책
AiPPT

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...