1. 运行环境
win10 + python3.8.10
2. 安装python依赖包
2.1 gluoncv
ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE.
pip install gluoncv --upgrade
2.2 numpy
错误:Running setup.py install for numpy ... error
解决:
pip install --upgrade pip
pip install --upgrade setuptools
安装visual studio 2019(查看https://wiki.python.org/moin/WindowsCompilers)
选择最新的windows MSVCv142 - VS 2019 C++ x64/x86 build tools
选择最新的windows 10 sdk
2.3 mxnet
#安装cuda - 跳过
#pip install mxnet-cu110(无法找到cu110版本的)
pip install mxnet
2.4 opencv
#pip install opencv-python
pip install wheel
手动下载opencv.whl就不会自动更新numpy
https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv
pip install opencv_python-4.5.2-cp38-cp38-win_amd64.whl
错误:ValueError: check_hostname requires server_hostname
不能开代理的
3. 下载模型
这里放出了模型的权重,模型名字是darknet53:
https://github.com/njvisionpower/Safety-Helmet-Wearing-Dataset
4. 运行测试
修改1:
直接把代码中的mx.gpu()屏蔽,改为mx.cpu()
#if args.gpu:
# ctx = mx.gpu()
#else:
# ctx = mx.cpu()
ctx = mx.cpu()
修改2:
我下载来的模型权值文件放到了models文件夹下,symbol文件夹也是下载的
因此,代码中模型的名字前面加上models,也就是改下路径即可。
if args.network == 'yolo3_darknet53_voc':
net.load_parameters('models/darknet.params',ctx=ctx)
print('use darknet to extract feature')
elif args.network == 'yolo3_mobilenet1.0_voc':
net.load_parameters('models/mobilenet1.0.params',ctx=ctx)
print('use mobile1.0 to extract feature')
else:
net.load_parameters('models/mobilenet0.25.params',ctx=ctx)
print('use mobile0.25 to extract feature')
frame = 'image/2.jpg'
运行:
python test_yolo.py
效果:
参考资料1:开源一个安全帽佩戴检测数据集及预训练模型 - supersayajin - 博客园 (cnblogs.com)