🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1301閲覧

Python、yolo、tensorflowでruntimeerrorが出る。

退会済みユーザー

退会済みユーザー

総合スコア0

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/01/01 16:50

編集2020/01/02 15:12

yolo、tensorflow(darkflow)で以下のランタイムエラーが出てしまいます。
python、プログラム初心者のため、原因が分かりません。
検討違いな質問かもしれませんが、ご教授お願いします。

<<<<エラー>>>>
RuntimeError: out of range value for argument "y"
(RuntimeError: out of range value for argument "x"となる場合あり)
該当箇所 meters = depth_frame.get_distance(tlx+int(brx-tlx/2), bry+int(tly-bry/2))

python

1import pyrealsense2 as rs 2from darkflow.net.build import TFNet 3import cv2 4import numpy as np 5 6options = {"model": "cfg/yolo.cfg", "load": "bin/yolo.weights", "threshold": 0.1} 7tfnet = TFNet(options) 8 9class_names = ['aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 10'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', 11'dog', 'horse', 'motorbike', 'person', 'pottedplant', 12'sheep', 'sofa', 'train', 'tvmonitor'] 13 14num_classes = len(class_names) 15class_colors = [] 16for i in range(0, num_classes): 17hue = 255*i/num_classes 18col = np.zeros((1,1,3)).astype("uint8") 19col[0][0][0] = hue 20col[0][0][1] = 128 21col[0][0][2] = 255 22cvcol = cv2.cvtColor(col, cv2.COLOR_HSV2BGR) 23col = (int(cvcol[0][0][0]), int(cvcol[0][0][1]), int(cvcol[0][0][2])) 24class_colors.append(col) 25 26config = rs.config() 27config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30) 28config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30) 29 30pipeline = rs.pipeline() 31profile = pipeline.start(config) 32 33try: 34while True: 35frames = pipeline.wait_for_frames() 36depth_frame = frames.get_depth_frame() 37color_frame = frames.get_color_frame() 38if not depth_frame or not color_frame: 39continue 40 41depth_image = np.asanyarray(depth_frame.get_data()) 42color_image = np.asanyarray(color_frame.get_data()) 43 44result = tfnet.return_predict(color_image) 45 46for item in result: 47tlx = item['topleft']['x'] 48tly = item['topleft']['y'] 49brx = item['bottomright']['x'] 50bry = item['bottomright']['y'] 51label = item['label'] 52meters = depth_frame.get_distance(tlx+int(brx-tlx/2), bry+int(tly-bry/2)) 53dep = item['confidence'] 54 55if dep > 0.4: 56 57for i in class_names: 58if label == i: 59class_num = class_names.index(i) 60break 61 62box_color = (255, 128, 0) 63cv2.rectangle(color_image, (tlx, tly), (brx, bry), box_color, 2) 64 65text = label + " " + ('%.2f' % meters) 66cv2.rectangle(color_image, (tlx, tly - 15), (tlx + 100, tly + 5), box_color, -1) 67cv2.putText(color_image, text, (tlx, tly), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0,0,0), 1) 68 69cv2.imshow("Show FLAME Image", color_image) 70 71k = cv2.waitKey(10); 72if k == ord('q'): break; 73 74finally: 75pipeline.stop() 76cv2.destroyAllWindows() 77 78

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HBenpitsu

2020/01/01 17:59 編集

飽くまで予想にすぎませんが、 tlx+int(brx-tlx/2), bry+int(tly-bry/2)が不正な範囲にいると考えられます これらを少し監視してみてください。
退会済みユーザー

退会済みユーザー

2020/01/02 05:21 編集

アドバイスありがとうございます。 640×480で映像を入力してるので、変数meterで定義した値が、入力したピクセル外となったときにエラーが出てる可能性があるってことですかね?
guest

回答1

0

ベストアンサー

meters = depth_frame.get_distance(tlx+int(brx-tlx/2), bry+int(tly-bry/2))

の表記()を適切にすることで解決した。

投稿2020/01/06 15:12

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問