簡體   English   中英

如何使用OpenCV C ++加載Yolo對象檢測網絡

[英]How to load Yolo object detection network with OpenCV C++

我按照本教程實現了Yolo對象檢測器: https : //github.com/thtrieu/darkflow/,並且我成功完成了它。

創建的.pb文件可用於將圖形遷移到移動設備(JAVA / C ++ / Objective-C ++)。 輸入張量和輸出張量的名稱分別為“輸入”和“輸出”。

我想用OpenCV(c ++)加載網絡。 readNetFromTensorflow()方法需要兩個文件:.pb和.pbtxt。 后者不是由上面指出的實現方式生成的。 同樣,要使用readNetFromDarknet()方法,必須有兩個文件:.cfg和.weights。 后者不是由上面指出的實現方式生成的。

那么,如何使用opencv將yolo網絡從python遷移到c ++?

我也嘗試直接從.pb文件生成.pbtxt文件,但readNetFromTensorflow()方法不成功(在沒有有用信息的情況下會生成通用異常)

拋出引用異常:

[在Object_detection_inference_cpp.exe中的0x00007FFFB80C9129處引發的異常:Microsoft C ++異常:內存位置0x000000CBC18FDC90處的cv :: Exception。]

提前致謝。

這是我用來將.pb文件轉換成.pbtxt文件的代碼:

import tensorflow as tf
from google.protobuf import text_format
from tensorflow.python.platform import gfile

def graphdef_to_pbtxt(filename): 
    with gfile.FastGFile(filename,'rb') as f:
    graph_def = tf.GraphDef()
    graph_def.ParseFromString(f.read())
    tf.import_graph_def(graph_def, name='')
    tf.train.write_graph(graph_def, 'pbtxt/', 'tiny-yolov2-trial3-test.pbtxt', as_text=True)
  return

graphdef_to_pbtxt('tiny-yolov2-trial3-test.pb')

使用tf_text_xxx.py必須具有.config文件。 我只有上述教程中的.cfg文件。 因此,我無法使用您報告的這三個功能。 難道我做錯了什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM