Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在使用YOLO和OpenCV时出现错误-没有此类文件或目录:';labels.txt';_Python_Opencv_Machine Learning_Yolo_Darknet - Fatal编程技术网

Python 在使用YOLO和OpenCV时出现错误-没有此类文件或目录:';labels.txt';

Python 在使用YOLO和OpenCV时出现错误-没有此类文件或目录:';labels.txt';,python,opencv,machine-learning,yolo,darknet,Python,Opencv,Machine Learning,Yolo,Darknet,我对Yolo和OpenCV不熟悉。执行以下代码时 options = { 'model': 'C:/Users/parme/OneDrive/Desktop/darknet-master/darknet-master/cfg/yolov2.cfg', 'load': 'C:/Users/parme/OneDrive/Desktop/darknet-master/darknet-master/build/darknet/x64/yolov2.weights', 'threshold': 0.

我对Yolo和OpenCV不熟悉。执行以下代码时

options = {
 'model': 'C:/Users/parme/OneDrive/Desktop/darknet-master/darknet-master/cfg/yolov2.cfg',
 'load': 'C:/Users/parme/OneDrive/Desktop/darknet-master/darknet-master/build/darknet/x64/yolov2.weights',
 'threshold': 0.3
    
}
tfnet = TFNet(options)
cap = cv2.VideoCapture('sample.mp4')
colors=[tuple(255 * np.random.rand(3)) for i in range(5)]
while(cap.isOpened()):
    stime= time.time()
    ret, frame = cap.read()
    results = tfnet.return_predict(frame)
    if ret:
        for color, result in zip(colors, results):
            tl = (result['topleft']['x'], result['topleft']['y'])
            br = (result['bottomright']['x'], result['bottomright']['y'])
            label = result['label']
            frame= cv2.rectangle(frame, tl, br, color, 7)
            frame= cv2.putText(frame, label, tl, cv2.FONT_HERSHEY_TRIPLEX, 1, (0,0,0), 2)
        cv2.imshow('frame', frame)
        print('FPS {:1f}'.format(1/(time.time() -stime)))
        if cv2.waitKey(1)  & 0xFF == ord('q'):
            break
    else:
        break
cap.release()
cv2.destroyAllWindows()
我得到下面的错误。它说没有找到labels.txt。我尝试过搜索它,并提供了一些我尝试过的链接

Parsing C:/Users/parme/OneDrive/Desktop/darknet-master/darknet-master/cfg/yolov2.cfg
Loading C:/Users/parme/OneDrive/Desktop/darknet-master/darknet-master/build/darknet/x64/yolov2.weights ...
Successfully identified 203934260 bytes
Finished in 0.034906864166259766s
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-36-9a5fed223d95> in <module>
      5 
      6 }
----> 7 tfnet = TFNet(options)
      8 cap = cv2.VideoCapture('sample.mp4')
      9 colors=[tuple(255 * np.random.rand(3)) for i in range(5)]

~\anaconda3\envs\DAB300- ML2\lib\site-packages\darkflow\net\build.py in __init__(self, FLAGS, darknet)
     62                 args = [darknet.meta, FLAGS]
     63                 self.num_layer = len(darknet.layers)
---> 64                 self.framework = create_framework(*args)
     65 
     66                 self.meta = darknet.meta

~\anaconda3\envs\DAB300- ML2\lib\site-packages\darkflow\net\framework.py in create_framework(meta, FLAGS)
     57     net_type = meta['type']
     58     this = types.get(net_type, framework)
---> 59     return this(meta, FLAGS)

~\anaconda3\envs\DAB300- ML2\lib\site-packages\darkflow\net\framework.py in __init__(self, meta, FLAGS)
     13         meta['name'] = model
     14 
---> 15         self.constructor(meta, FLAGS)
     16 
     17     def is_inp(self, file_name):

~\anaconda3\envs\DAB300- ML2\lib\site-packages\darkflow\net\yolo\__init__.py in constructor(self, meta, FLAGS)
     18                 return (b * 127, r * 127, g * 127)
     19         if 'labels' not in meta:
---> 20                 misc.labels(meta, FLAGS) #We're not loading from a .pb so we do need to load the labels
     21     assert len(meta['labels']) == meta['classes'], (
     22                 'labels.txt and {} indicate' + ' '

~\anaconda3\envs\DAB300- ML2\lib\site-packages\darkflow\net\yolo\misc.py in labels(meta, FLAGS)
     34             print("Model has name yolo9000, loading yolo9000 labels.")
     35             file = os.path.join(FLAGS.config, nine_names)
---> 36         with open(file, 'r') as f:
     37             meta['labels'] = list()
     38             labs = [l.strip() for l in f.readlines()]

FileNotFoundError: [Errno 2] No such file or directory: 'labels.txt'
C:/Users/parme/OneDrive/Desktop/darknet-master/darknet-master/cfg/yolov2.cfg
正在加载C:/Users/parme/OneDrive/Desktop/darknet master/darknet master/build/darknet/x64/yolov2.0。。。
已成功标识203934260字节
用0.0349068646166259766s完成
---------------------------------------------------------------------------
FileNotFoundError回溯(最近一次调用上次)
在里面
5.
6 }
---->7 tfnet=tfnet(选项)
8 cap=cv2.VideoCapture('sample.mp4')
9种颜色=[范围(5)内i的元组(255*np.random.rand(3))]
~\anaconda3\envs\DAB300-ML2\lib\site packages\darkflow\net\build.py in\uuuuuu init\uuuu(self,FLAGS,darknet)
62 args=[darknet.meta,FLAGS]
63 self.num_layer=len(暗色层)
--->64 self.framework=create_framework(*args)
65
66 self.meta=darknet.meta
~\anaconda3\envs\DAB300-ML2\lib\site packages\darkflow\net\framework.py在create\u framework(meta,FLAGS)中
57净类型=元['type']
58 this=types.get(net_类型,framework)
--->59返回此(元、标志)
~\anaconda3\envs\DAB300-ML2\lib\site packages\darkflow\net\framework.py in\uuuuuu init\uuuu(self、meta、FLAGS)
13元['name']=模型
14
--->15自构造函数(元、标志)
16
17 def为inp(自身,文件名):
构造函数中的~\anaconda3\envs\DAB300-ML2\lib\site packages\darkflow\net\yolo\\uuuuuu init\uuuuuuuuu.py(self、meta、FLAGS)
18返回(b*127、r*127、g*127)
19如果meta中没有“标签”:
--->20个杂项标签(meta,FLAGS)#我们不是从.pb加载的,所以我们确实需要加载标签
21断言len(meta['labels'])==meta['classes'](
22'labels.txt和{}表示'+''
标签中的~\anaconda3\envs\DAB300-ML2\lib\site packages\darkflow\net\yolo\misc.py(meta,FLAGS)
34打印(“型号名称为yolo9000,正在加载yolo9000标签”)
35 file=os.path.join(FLAGS.config,九个名称)
--->36打开(文件“r”)作为f:
37元['labels']=list()
38 labs=[l.strip()表示f.readlines()中的l
FileNotFoundError:[Errno 2]没有这样的文件或目录:“labels.txt”
如果有人能告诉我如何解决这个问题,请告诉我 和
仍不工作。

请确保主目录中有一个名为labels.txt的文件。labels.txt中的每一行都应与模型输出的标签相对应。

我找到了一个解决方案,尝试了以下代码

options = {'model': 'C:/Users/parme/darknet-master/darknet-master/cfg/yolov2.cfg',
             'load': 'C:/Users/parme/darknet-master/darknet-master/bin/yolov2.weights',
           'labels': 'C:/Users/parme/darknet-master/darknet-master/data/coco.names',
           "threshold": 0.1, 
           "gpu": 1.0}

将标签文件显式地放在选项中对我有效。

我确实从coco.names复制了标签并粘贴到了主目录中。但是,它仍然不起作用