🐥
【Python】YOLOv5で画面上をリアルタイムで推論する【M1/Mac】
環境
- M1Mac
- Ventura 13.2.1(22D68)
- python
- Python 3.9.6
- pythonライブラリ
ライブラリを表示
> pip list
Package Version
----------------------- --------------------
absl-py 1.4.0
appnope 0.1.3
asttokens 2.2.1
backcall 0.2.0
cachetools 5.3.0
certifi 2022.12.7
charset-normalizer 3.1.0
contourpy 1.0.7
cycler 0.11.0
decorator 5.1.1
executing 1.2.0
filelock 3.10.7
fonttools 4.39.3
gitdb 4.0.10
GitPython 3.1.31
google-auth 2.17.0
google-auth-oauthlib 0.4.6
grpcio 1.53.0
idna 3.4
importlib-metadata 6.1.0
importlib-resources 5.12.0
ipython 8.11.0
jedi 0.18.2
Jinja2 3.1.2
kiwisolver 1.4.4
Markdown 3.4.3
MarkupSafe 2.1.2
matplotlib 3.7.1
matplotlib-inline 0.1.6
mpmath 1.3.0
mss 7.0.1
networkx 3.0
numpy 1.24.2
oauthlib 3.2.2
opencv-python 4.7.0.72
packaging 23.0
pandas 1.5.3
parso 0.8.3
pexpect 4.8.0
pickleshare 0.7.5
Pillow 9.4.0
pip 21.2.4
prompt-toolkit 3.0.38
protobuf 4.22.1
psutil 5.9.4
ptyprocess 0.7.0
pure-eval 0.2.2
pyasn1 0.4.8
pyasn1-modules 0.2.8
Pygments 2.14.0
pyparsing 3.0.9
python-dateutil 2.8.2
pytz 2023.2
PyYAML 6.0
requests 2.28.2
requests-oauthlib 1.3.1
rsa 4.9
scipy 1.10.1
seaborn 0.12.2
setuptools 67.6.1
six 1.16.0
smmap 5.0.0
stack-data 0.6.2
sympy 1.11.1
tensorboard 2.12.0
tensorboard-data-server 0.7.0
tensorboard-plugin-wit 1.8.1
thop 0.1.1.post2209072238
torch 2.0.0
torchvision 0.15.1
tqdm 4.65.0
traitlets 5.9.0
typing_extensions 4.5.0
urllib3 1.26.15
wcwidth 0.2.6
Werkzeug 2.2.3
wheel 0.40.0
zipp 3.15.0
結論
main.py
import torch
import cv2
import numpy as np
from mss import mss
model=torch.hub.load('ultralytics/yolov5', 'yolov5s')
with mss() as sct:
monitor={"top":200,"left":200,"width":200,"height":200}
while True:
# mssでスクショしたものをnp配列に
screenshot=np.array(sct.grab(monitor))
# 入力
results=model(screenshot,size=640)
# 推論結果をコンソールに
results.print()
# 画像にバウンディングボックスを表示
results.render()
# cv2でフレームを表示
cv2.imshow("frame",results.ims[0])
if(cv2.waitKey(1)==ord("q")):
cv2.destroyAllWindows()
break
参考記事
Discussion