[PyTorch] TorchHub+YOLOv5에서 실시간으로 게임을 인식합니다.

정신을 차리고 보니 TorchHub에 YOLOv5가 추가되었어요. 몰라요.
그래서 이번에는 TorchHub의 YOLOv5와 인터넷 카메라로 실시간 식별에 도전하고 싶다!

운영 환경


이번에는 CPU로 해보려고요.
환경을 이용해서 여기서...
  • PyTorch:1.8.1+cpu
  • OpenCV : 4.5.2
  • 실행 환경이 매우 적다

    우선 YOLOv5 소환


    어쨌든 PyTorch에서 위대한 YOLOv5를 호출해 보세요.
    홈페이지https://github.com/ultralytics/yolov5에 따르면
    $ git clone https://github.com/ultralytics/yolov5
    $ cd yolov5
    $ pip install -r requirements.txt
    
    환경 조정 후
    model = torch.hub.load('ultralytics/yolov5', 'yolov5s') 
    
    만 불러도 된다yolov5s.정말?
    옛날에 YOLO 같은 건 뜻이 만든 모델밖에 없었는데 이걸 어떻게 해!!!이런 기분이지만 시대는 전진했네
    그럼 실제로 해보세요.
    import torch
    model = torch.hub.load('ultralytics/yolov5', 'yolov5s') 
    
    오, 정말 움직인다.

    우선 사용해 보자


    여기.의 이미지를 사용하여 검증합니다.
    Using cache found in C:\Users\toshi/.cache\torch\hub\ultralytics_yolov5_master
    Downloading https://ultralytics.com/assets/Arial.ttf to C:\Users\toshi\AppData\Roaming\Ultralytics\Arial.ttf...
    YOLOv5  2021-11-1 torch 1.8.1+cpu CPU
    
    Downloading https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s.pt to C:\Users\toshi\.cache\torch\hub\ultralytics_yolov5_master\yolov5s.pt...
    100.0%
    
    Fusing layers... 
    Model Summary: 213 layers, 7225885 parameters, 0 gradients
    Adding AutoShape... 
    
    네, 공식 창고models의 반common.py과 관련이 있는 것 같아요.
    저기 좀 들여다봐.

    함수가 많네요.
  • display(self, pprint=False, show=False, save=False, crop=False, render=False, save_dir=Path(''))
  • print(self)
  • show(self)
  • save(self, save_dir='runs/detect/exp')
  • crop(self, save=True, save_dir='runs/detect/exp')
  • render(self)
  • pandas(self)
  • tolist(self)
  • Detections는 다양한 기능을 제공할 수 있는 함수다.
    매개 변수
  • pprint: 출력 개수 발견
  • Show:bbox 실제 그리기
  • save: Show의 내용을 저장할 수 있음
  • crop: 재단된 이미지 출력
  • render:self.imgs에 그림 결과 저장
  • 실제로 해보다
    img = cv2.imread('./photo0000-6368.jpg')
    result = model(img)
    print(result)
    
    <models.common.Detections object at 0x0000022FAE025518>
    

    색깔이 이상해요.BGR로 표현해서 그런가?
    result.display(pprint=True)
    
    #image 1/1: 485x728 21 persons, 2 backpacks, 1 handbag
    
    이 작업을 수행하면 위의 사진이 저장됩니다.
    result.display(show=True)
    
    result.display(save=True)
    
    오, 무슨 유용한 데이터가 있는 것 같아.display() Bbox에서 잘라낸 이미지가 저장됩니다.이게 뭐야?
    이번에 원하는 건 박스가 찍힌 이미지save=True면 충분해, 아마도.
    그럼 이거 화면 포착이랑 연결해.
    result.display(crop=True)
    
    실행합니다!!!!
    어때요?
    CPU인데 거의 실시간으로 작동하지 않나요?이래도 되나!?
    GPU가 없어도 그에 상응하는 정밀도로 움직여야 한다!!!
    ylov5s와 작은 모형을 사용하여 식별을 했지만 잘 아시죠!(영상으로 포착해서 보여주고 싶은데...)
    만약 정말 ylov5x가 된다면 처리 실패의 느낌을 부정할 수 없지만 그래도 CPU로만 조작할 수 있다.
    그래서 이번에 YOLOv5를 해봤어요.이제 이 YOLOv5로 뜻불명의 앱을 만들고 싶어요!

    좋은 웹페이지 즐겨찾기