前提
python3.8でyolov5を使用しています
実現したいこと
たとえば、条件分岐で写真に人とスーツケースが写っていたらバウンディングボックスを出力するのようなことをしたいと考えています。しかし、どうやら一度の認識で一個の物体しか認識していない?ようで同時に2つ以上のクラス検出ができません。
どのように解決したらよろしいでしょうか。
よろしくお願いいたします。
該当のソースコード
class YOLOV5: def yolov5(self): model_name='yolov5s.pt' model = torch.hub.load(os.getcwd()+'/YOLOv5/yolov5/', 'custom', source='local', path = model_name, force_reload = True) color = (255,0,0) RGB_image = cv2.imread("/home/limlab/YOLOv5/yolov5/test8.jpg") results = model(RGB_image) # 画像パスを設定し、物体検出を行う for *box, conf, cls in results.xyxy[0]: if conf > 0.5: s = model.names[int(cls)] print(s) if s == 'person' and s == "suitcase": #--- 枠描画 cv2.rectangle(RGB_image,(int(box[0]), int(box[1])),(int(box[2]), int(box[3])),color,thickness=2,) #--- 文字枠と文字列描画 cv2.rectangle(RGB_image, (int(box[0]), int(box[1])-20), (int(box[0])+len(s)*10, int(box[1])), color, -1) cv2.putText(RGB_image, s, (int(box[0]), int(box[1])-5), cv2.FONT_HERSHEY_PLAIN, 1, [225,255,255], 1, cv2.LINE_AA) cv2.imshow('color',RGB_image) if cv2.waitKey(0) & 0xff == 27:#ESCで終了 cv2.destroyAllWindows()
出力結果
person person suitcase person person
回答2件
あなたの回答
tips
プレビュー