Q&A
yolov5を用いて人クラスと判定されたかつクラス判例閾値がある一定の値以上の物体のみを検出するようなコードを作りたいです。
detect.pyのオプションで自分が行いたいことを実行できることは知っていますが、今回は自分でコードを書いて目的のことを実装したいです。
どのようにすれば人だけを検出するようにするかつある値以上のクラス判定値を持つ人だけを検出するようにできるでしょうか。
物体検出を行うコードは以下のようになります。
今回は物体の座標もほしいので座標も求めれるようなコードにしています
python
1import torch 2import csv 3import glob 4import numpy as np 5 6model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True) 7# 検出できる物体を表示する(80種類) 8print(model.names) 9 10img = sorted(glob.glob('data/images2/*.jpg')) 11print(img) 12for image in img: 13 results = model(image) 14 obj = results.pandas().xyxy[0] 15 for i in range(len(obj)): 16 if i>=2: 17 break 18 name = obj.name[i] 19 xmin = obj.xmin[i] 20 ymin = obj.ymin[i] 21 xmax = obj.xmax[i] 22 ymax = obj.ymax[i] 23 width = obj.xmax[i] - obj.xmin[i] 24 height = obj.ymax[i] - obj.ymin[i] 25 xmid = (xmin + xmax + width)/2 26 yvalue = ymin + height 27 plapos=np.array([xmid,yvalue]) 28 print(plapos) 29 30 31 #print("name =", name, "xmin =", xmin, "ymin =", ymin, "xmid =", xmid, "yvalue =", yvalue) 32 33 34 results.show() 35 results.crop()
回答1件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。