Python 在使用YOLO和OpenCV时出现错误-没有此类文件或目录:';labels.txt';
我对Yolo和OpenCV不熟悉。执行以下代码时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.
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复制了标签并粘贴到了主目录中。但是,它仍然不起作用