YOLOv5 및 PyTorch PlatoBlockchain 데이터 인텔리전스를 사용한 Python의 객체 감지 추론. 수직 검색. 일체 포함.

YOLOv5 및 PyTorch를 사용한 Python의 객체 감지 추론

개요

물체 감지는 컴퓨터 비전의 넓은 분야이며 "야생에서" 컴퓨터 비전의 더 중요한 응용 프로그램 중 하나입니다. 한 쪽 끝에서는 작업을 수행하는 로봇이나 자율 주행 자동차 등 환경을 통해 에이전트를 탐색하는 자율 시스템을 구축하는 데 사용할 수 있지만 이를 위해서는 다른 분야와의 교차가 필요합니다. 그러나 이상 감지(예: 라인의 결함 제품), 이미지 내에서 물체 찾기, 얼굴 감지 및 물체 감지의 다양한 기타 응용 프로그램은 다른 필드와 교차하지 않고 수행할 수 있습니다.

객체 감지는 이미지 분류만큼 표준화되지 않았습니다. 새로운 개발의 대부분은 일반적으로 대규모 라이브러리 및 프레임워크가 아닌 개별 연구원, 유지 관리자 및 개발자가 수행하기 때문입니다. TensorFlow나 PyTorch와 같은 프레임워크에 필요한 유틸리티 스크립트를 패키징하고 지금까지 개발을 안내한 API 지침을 유지하는 것은 어렵습니다.

이로 인해 객체 감지가 이미지 분류보다 다소 더 복잡하고 일반적으로 더 장황하며(항상 그런 것은 아님) 접근하기 어렵습니다. 생태계에 있는 것의 주요 이점 중 하나는 모범 사례, 도구 및 사용 방법에 대한 유용한 정보를 검색하지 않는 방법을 제공한다는 것입니다. 물체 감지를 사용하면 대부분의 사람들이 좋은 그립을 얻기 위해 현장의 풍경에 대해 더 많은 조사를 해야 합니다.

대중에게 다행스럽게도 Ultralytics는 YOLOv5 구현을 중심으로 간단하고 매우 강력하며 아름다운 객체 감지 API를 개발했습니다.

이 짧은 가이드에서는 MS COCO에서 훈련된 사전 훈련된 가중치 세트를 사용하여 PyTorch의 Ultralytics에서 빌드한 YOLOv5를 사용하여 Python에서 객체 감지를 수행할 것입니다.

OLO 로브 5

YOLO (너는 한 번만 본다) 방법론이자 객체 감지를 위해 구축된 모델 제품군입니다. 2015년에 시작된 이래로 YOLOv1, YOLOv2(YOLO9000) 및 YOLOv3은 같은 저자에 의해 제안되었으며 딥 러닝 커뮤니티는 오픈 소스 발전을 계속해 왔습니다.

울트라리틱스의 YOLOv5 는 PyTorch에서 YOLO를 대규모로 구현하여 그 어느 때보다 접근성을 높였지만 YOLOv5가 이러한 기반을 얻게 된 주된 이유는 YOLOvXNUMX를 중심으로 구축된 아름답고 간단하고 강력한 API이기도 합니다. 이 프로젝트는 불필요한 세부 사항을 추상화하면서 사용자 정의 가능성, 거의 모든 사용 가능한 내보내기 형식을 허용하고 전체 프로젝트를 최대한 효율적이고 최적으로 만드는 놀라운 방법을 사용합니다. 참으로 이것은 오픈 소스 소프트웨어 구현의 아름다움과 그것이 우리가 살고 있는 세계에 어떻게 힘을 실어주는지를 보여주는 한 예입니다.

이 프로젝트는 상황에 맞는 물체에 대한 주요 데이터세트인 MS COCO에 대한 사전 훈련된 가중치를 제공합니다. 이 가중치는 일반 물체 감지 시스템을 벤치마킹하고 구축하는 데 사용할 수 있지만 가장 중요한 것은 상황에 맞는 물체에 대한 일반 지식을 사용자 정의 데이터 세트.

YOLOv5를 사용한 객체 감지

진행하기 전에 다음 항목이 있는지 확인하십시오. torchtorchvision 설치 :

! python -m pip install torch torchvision

YOLOv5는 리포지토리 자체와 다음 예에서 볼 수 있듯이 상세하고 말도 안되는 문서와 아름답고 단순한 API를 가지고 있습니다.

import torch

model = torch.hub.load('ultralytics/yolov5', 'yolov5s')
img = 'https://i.ytimg.com/vi/q71MCWAEfL8/maxresdefault.jpg'  
results = model(img)
fig, ax = plt.subplots(figsize=(16, 12))
ax.imshow(results.render()[0])
plt.show()

의 두 번째 주장 hub.load() method는 우리가 사용하고자 하는 가중치를 지정합니다. 그 중 아무 곳이나 선택하여 yolov5nyolov5l6 – MS COCO 사전 훈련된 가중치를 로드하고 있습니다. 커스텀 모델의 경우:

model = torch.hub.load('ultralytics/yolov5', 'custom', path='path_to_weights.pt')

어쨌든 – 입력을 모델을 통해 전달하면 반환된 객체에는 결과를 해석하는 데 유용한 메서드가 포함되며 render() 그것들은 우리가 집어넣을 수 있는 NumPy 배열을 반환합니다. imshow() 전화. 결과적으로 다음과 같이 멋지게 형식이 지정됩니다.

결과를 파일로 저장

다음을 사용하여 추론 결과를 파일로 저장할 수 있습니다. results.save() 방법:

results.save(save_dir='results')

이것은 아직 존재하지 않는 경우 새 디렉토리를 생성하고 방금 플로팅한 동일한 이미지를 파일로 저장합니다.

개체 자르기

감지된 개체를 개별 파일로 자르도록 결정할 수도 있습니다. 우리의 경우 감지된 모든 레이블에 대해 여러 이미지를 추출할 수 있습니다. 이것은 다음을 통해 쉽게 달성됩니다. results.crop() 다시 만드는 메서드 runs/detect/ 디렉토리, expN/crops (여기서 N은 각 실행에 대해 증가함), 각 레이블에 대해 잘린 이미지가 있는 디렉토리가 만들어집니다.

results.crop()
Saved 1 image to runs/detect/exp2
Saved results to runs/detect/exp2

[{'box': [tensor(295.09409),
   tensor(277.03699),
   tensor(514.16113),
   tensor(494.83691)],
  'conf': tensor(0.25112),
  'cls': tensor(0.),
  'label': 'person 0.25',
  'im': array([[[167, 186, 165],
          [174, 184, 167],
          [173, 184, 164],

다음을 사용하여 출력 파일 구조를 확인할 수도 있습니다.

모범 사례, 업계에서 인정하는 표준 및 포함된 치트 시트가 포함된 Git 학습에 대한 실습 가이드를 확인하십시오. 인터넷 검색 Git 명령을 중지하고 실제로 배움 이것!

! ls runs/detect/exp2/crops


! ls runs/detect/exp2/crops

개체 카운팅

기본적으로 감지를 수행하거나 인쇄할 때 results object – 그에 대해 추론이 수행된 이미지의 수를 얻을 수 있습니다. results 개체(YOLOv5는 이미지 배치에서도 작동함), 해상도 및 감지된 각 레이블 수:

print(results)

결과 :

image 1/1: 720x1280 14 persons, 1 car, 3 buss, 6 traffic lights, 1 backpack, 1 umbrella, 1 handbag
Speed: 35.0ms pre-process, 256.2ms inference, 0.7ms NMS per image at shape (1, 3, 384, 640)

스크립트를 사용한 추론

또는 탐지 스크립트를 실행할 수 있습니다. detect.py, YOLOv5 저장소 복제:

$ git clone https://github.com/ultralytics/yolov5 
$ cd yolov5
$ pip install -r requirements.txt

그런 다음 실행:

$ python detect.py --source img.jpg

또는 URL, 비디오 파일, 여러 파일이 있는 디렉토리 경로, 특정 파일에만 일치하도록 경로에 glob, YouTube 링크 또는 기타 HTTP 스트림을 제공할 수 있습니다. 결과는 runs/detect 디렉토리.

더 나아가기 – 컴퓨터 비전을 위한 실용적인 딥 러닝

당신의 호기심 많은 성격이 당신을 더 멀리 가고 싶게 만드나요? 다음을 확인하는 것이 좋습니다. 코스: “파이썬을 이용한 컴퓨터 비전을 위한 실용적인 딥러닝”.

YOLOv5 및 PyTorch PlatoBlockchain 데이터 인텔리전스를 사용한 Python의 객체 감지 추론. 수직 검색. 일체 포함.

또 다른 컴퓨터 비전 과정?

우리는 MNIST 숫자나 MNIST 패션의 분류를 하지 않을 것입니다. 그들은 오래전에 자신의 역할을 다했습니다. 고급 블랙박스 아키텍처가 성능 부담을 짊어지게 하기 전에 너무 많은 학습 리소스가 기본 데이터 세트와 기본 아키텍처에 집중하고 있습니다.

우리는 집중하고 싶다 신비화, 실용적인 사항, 이해, 직관실제 프로젝트. 배우고 싶다 방법 당신은 변화를 만들 수 있습니다? 우리는 뇌가 이미지를 처리하는 방식부터 유방암에 대한 연구 수준의 딥 러닝 분류기를 작성하고 "환각"하는 딥 러닝 네트워크에 이르기까지, 실제 작업을 통해 원리와 이론을 가르치고, 컴퓨터 비전을 해결하기 위해 딥러닝을 적용하는 전문가가 되기 위한 노하우와 도구.

안에 무엇입니까?

  • 비전의 첫 번째 원칙과 컴퓨터가 "보는" 방법을 가르칠 수 있는 방법
  • 컴퓨터 비전의 다양한 작업 및 응용
  • 작업을 더 쉽게 만들어줄 무역 도구
  • 컴퓨터 비전용 데이터세트 찾기, 생성 및 활용
  • 컨볼루션 신경망의 이론과 응용
  • 데이터 세트의 도메인 이동, 동시 발생 및 기타 편향 처리
  • Transfer Learning 및 다른 사람의 교육 시간 및 계산 리소스를 귀하의 이익을 위해 활용
  • 최첨단 유방암 분류기 구축 및 교육
  • 주류 아이디어에 건강한 회의론을 적용하고 널리 채택된 기술의 의미를 이해하는 방법
  • t-SNE 및 PCA를 사용하여 ConvNet의 "개념 공간" 시각화
  • 기업이 더 나은 결과를 얻기 위해 컴퓨터 비전 기술을 사용하는 방법에 대한 사례 연구
  • 적절한 모델 평가, 잠재 공간 시각화 및 모델의 관심 식별
  • 도메인 연구 수행, 자체 데이터 세트 처리 및 모델 테스트 설정
  • 최첨단 아키텍처, 아이디어의 진행, 독창적인 요소 및 구현 방법
  • KerasCV – 최첨단 파이프라인 및 모델 생성을 위한 WIP 라이브러리
  • 논문을 구문 분석하고 읽고 직접 구현하는 방법
  • 용도에 따른 모델 선택
  • 엔드 투 엔드 머신 러닝 파이프라인 만들기
  • Faster R-CNN, RetinaNets, SSD 및 YOLO를 통한 물체 감지에 대한 풍경 및 직관
  • 인스턴스 및 시맨틱 분할
  • YOLOv5를 사용한 실시간 객체 인식
  • YOLOv5 객체 감지기 훈련
  • KerasNLP(업계 최강의 WIP 라이브러리)를 사용하여 Transformers 작업
  • Transformer를 ConvNet과 통합하여 이미지 캡션 생성
  • Deepdream

결론

이 짧은 가이드에서는 PyTorch를 사용하여 빌드된 YOLOv5로 객체 감지를 수행하는 방법을 살펴보았습니다.

타임 스탬프 :

더보기 스택카부스