実現したいこと
- yolov8を使用して得た物体検出結果から、バウンディングボックスの座標と確信度をペアにしたリストを新たに作成したいです。
前提
python、機械学習ともに初心者です。
python、VScodeを使用し、上記のリストをfor文を使用して作成しようとしていたところ以下のエラーメッセージが発生しました。
無知な質問で恐縮ですが、ご教授いただけないでしょうか。
発生している問題・エラーメッセージ
IndexError: index 19 is out of bounds for dimension 0 with size 5
該当のソースコード
python
1from ultralytics import YOLO 2 3model = YOLO('yolov8s.pt') 4 5results = model('/Users/ユーザー名/Yolov8/img',project='/Users/ユーザー名/runs/detect', name='predict', exist_ok=True, save=True, save_txt=True, save_conf=True) 6 7#結果の確信度を取得 8conf = results[0].boxes.conf 9 10#結果のbboxの位置情報を取得 11xyxy = results[0].boxes.xyxy 12 13#各bboxと確信度をペアにしたリストを作成 14bbox_and_scores = [] 15i = 0 16j = 0 17for i in xyxy: 18 for j in conf: 19 xyxy[i.long()].append(conf[j.long()]) 20 bbox_and_scores.append(xyxy[i.long()]) 21 22print(bbox_and_scores)
試したこと
IndexError: tensors used as indices must be long, int, byte or bool tensors
当初はi,jに.long()はつけずに実行しましたが、その際上記のエラーメッセージが表示され、調べたところ解決法として.long()を使用している方がいらっしゃったため、現在の状況に至っています。
補足情報(FW/ツールのバージョンなど)
Windows 11
Python 3.8.18
![guest](/img/icon/icnUserSample.jpg)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。