【问题标题】:While using YOLO and OpenCV getting an error - No such file or directory: 'labels.txt'使用 YOLO 和 OpenCV 时出现错误 - 没有这样的文件或目录:'labels.txt'
【发布时间】:2020-11-06 15:44:45
【问题描述】:

我是 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'

如果有人能告诉我如何解决这个问题,请告诉我。我试过以下 https://github.com/thtrieu/darkflow/issues/790https://github.com/thtrieu/darkflow/issues/75 还是不行。

【问题讨论】:

    标签: python opencv machine-learning yolo darknet


    【解决方案1】:

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

    【讨论】:

    • 我确实从 coco.names 复制标签并粘贴到主目录中。还是不行
    【解决方案2】:

    我有一个解决方案,尝试了下面的代码。

    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}
    

    将标签文件明确地放在对我有用的选项中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-12
      • 1970-01-01
      • 1970-01-01
      • 2018-03-05
      • 1970-01-01
      • 2010-12-18
      • 2016-01-03
      • 1970-01-01
      相关资源
      最近更新 更多