基于darkflow的YOLO实时对象检测
YOLO
YOLO全称you only look once,是实时对象检测的技术
Darkflow
darkflow实现了将darknet移植到tensorflow上,可以用tensorflow加载darknet训练好的模型,并使用tensorflow重新训练,输出tensorflow graph模型,用于移动设备。
环境
Manjaro + Python3.6 + tensorflow 1.11 + numpy 1.15.2 + Opencv 3.4.3
上次使用darknet框架在我本机只能检测图片,因为Opencv安装出了点问题,折腾很久还是无法调用摄像头,所以一番摸索,发现这个darkflow是基于darknet改写,比较容易运行。
下载安装Darkflow框架
git clone https://github.com/thtrieu/darkflow.git
安装
您可以在以下三种方式中选一个开始使用darkflow。
只需构建Cython扩展即可。注意:如果以这种方式安装,则必须
./flow
在克隆的darkflow目录中使用,而flow
不是全局安装darkflow。python3 setup.py build_ext --inplace
让pip在开发模式下全局安装darkflow(仍可全局访问,但代码更改会立即生效)
pip install -e .
全局安装pip
pip install .
测试
flow -h
可以输出帮助列表就说明环境没问题了
下载已经训练好的模型
将下载好的模型文件到bin目录下
检测摄像头版:
python flow --model cfg/yolo.cfg --load bin/yolo.weights --demo camera
检测视频版:
python flow --model cfg/yolo.cfg --load bin/yolo.weights --demo demo.avi
使用GPU版:
python flow --model cfg/yolo.cfg --load bin/yolo.weights --demo camera --gpu 1.0
想接外置摄像头的话不太好弄,跟darknet不一样-c 0就完事了
可参考github的issues问题:How to use different camera connected in darkflow
本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。