我正在尝试在Windows机器上经过考虑的顶篷环境中设置YOLO。由于tensorflow和darkflow似乎在软件包管理器上均不可用,因此我通过pip安装了它们
pip install tensorflow
,然后从github下载darkflow目录,并从冠层命令提示符导航到该目录
pip install .
然后
python setup.py build_ext --inplace
用于设置cython_utils。现在,命令行演示似乎可以正常工作
python flow --model cfg/yolo.cfg --load bin/yolo.weights --demo videofile.mp4 --saveVideo
但是当我尝试在机盖编辑器中运行以下命令时:
from darkflow.net.build import TFNet
option = {'model': 'cfg/yolo.cfg', 'load': 'bin/yolo.weights', 'threshold': 0.3}
tfnet = TFNet(option)
它抛出了这个错误:
AssertionError Traceback (most recent call last)
c:\users\umair\appdata\local\temp\tmp9n4e92.py in <module>()
4 option = {'model': 'cfg/yolo.cfg', 'load': 'bin/yolo.weights', 'threshold': 0.3}
5
----> 6 tfnet = TFNet(option)
C:\Users\umair\AppData\Local\Enthought\Canopy\edm\envs\User\lib\site-packages\darkflow\net\build.py in __init__(self, FLAGS, darknet)
56
57 if darknet is None:
---> 58 darknet = Darknet(FLAGS)
59 self.ntrain = len(darknet.layers)
60
C:\Users\umair\AppData\Local\Enthought\Canopy\edm\envs\User\lib\site-packages\darkflow\dark\darknet.py in __init__(self, FLAGS)
11
12 def __init__(self, FLAGS):
---> 13 self.get_weight_src(FLAGS)
14 self.modify = False
15
C:\Users\umair\AppData\Local\Enthought\Canopy\edm\envs\User\lib\site-packages\darkflow\dark\darknet.py in get_weight_src(self, FLAGS)
45 else:
46 assert os.path.isfile(FLAGS.load), \
---> 47 '{} not found'.format(FLAGS.load)
48 self.src_bin = FLAGS.load
49 name = loader.model_name(FLAGS.load)
AssertionError: bin/yolo.weights not found
我尝试将我的Darkflow提取源中的bin和cfg文件夹复制到site-packages / darkflow文件夹中:
C:\Users\umair\AppData\Local\Enthought\Canopy\edm\envs\User\Lib\site-packages\darkflow
,但这似乎也不起作用。具有讽刺意味的是,通过冠层命令提示符,它在python控制台中可以正常工作
那么这一切到底有什么问题?我在安装软件包时犯了一些错误吗?错过了在某处添加路径的方法?还是我将bin和cfg文件夹放置在错误的位置?
答案 0 :(得分:0)
听起来像代码在假定它与脚本在同一目录中运行。这不能被假定。您可以在Canopy编辑器中的ipython提示符下更改工作目录,也可以将Canopy配置为自动执行此操作。请参阅Canopy文档:https://docs.enthought.com/canopy/2.1/quick-start/code_editor.html#change-directory