前提・実現したいこと
Yolo(darkflow)とRealsensed435i(pyrealsense2)を用いて、深度情報が付加された物体検出をpythonで行いたいです。
cv2.VideoCaptureではなくpyreasense2を用いて行いたい。(cv2.VideoCaptureでも深度情報を取得できるのであれば可)
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
from darkflow.net.build import TFNet
import cv2
import numpy as np
import pyrealsense2 as rs
options = {"model": "cfg/yolo.cfg", "load": "bin/yolo.weights", "threshold": 0.1}
tfnet = TFNet(options)
cap = cv2.VideoCapture(1)
class_names = ['aeroplane', 'bicycle', 'bird', 'boat', 'bottle',
'bus', 'car', 'cat', 'chair', 'cow', 'diningtable',
'dog', 'horse', 'motorbike', 'person', 'pottedplant',
'sheep', 'sofa', 'train', 'tvmonitor']
num_classes = len(class_names)
class_colors = []
for i in range(0, num_classes):
hue = 255*i/num_classes
col = np.zeros((1,1,3)).astype("uint8")
col[0][0][0] = hue
col[0][0][1] = 128
col[0][0][2] = 255
cvcol = cv2.cvtColor(col, cv2.COLOR_HSV2BGR)
col = (int(cvcol[0][0][0]), int(cvcol[0][0][1]), int(cvcol[0][0][2]))
class_colors.append(col)
def main():
while(True): ret, frame = cap.read() result = tfnet.return_predict(frame) for item in result: tlx = item['topleft']['x'] tly = item['topleft']['y'] brx = item['bottomright']['x'] bry = item['bottomright']['y'] label = item['label'] conf = item['confidence'] if conf > 0.4: for i in class_names: if label == i: class_num = class_names.index(i) break cv2.rectangle(frame, (tlx, tly), (brx, bry), class_colors[class_num], 2) text = label + " " + ('%.2f' % conf) cv2.rectangle(frame, (tlx, tly - 15), (tlx + 100, tly + 5), class_colors[class_num], -1) cv2.putText(frame, text, (tlx, tly), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0,0,0), 1) cv2.imshow("Show FLAME Image", frame) k = cv2.waitKey(10); if k == ord('q'): break; cap.release() cv2.destroyAllWindows()
if name == 'main':
main()
ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
labelのconfの部分を深度に変えて表示、出力したいです。
プログラミング初学者のため、投げやりの質問になってしまい、申し訳ありません。
ご教授頂けると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/11/09 03:50