Oct1a

基于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。

  1. 只需构建Cython扩展即可。注意:如果以这种方式安装,则必须./flow在克隆的darkflow目录中使用,而flow不是全局安装darkflow。

    python3 setup.py build_ext --inplace
    
  2. 让pip在开发模式下全局安装darkflow(仍可全局访问,但代码更改会立即生效)

    pip install -e .
    
  3. 全局安装pip

    pip install .
    

    测试

    flow -h
    

    image.png
    可以输出帮助列表就说明环境没问题了

下载已经训练好的模型


image.png

将下载好的模型文件到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

环境配置参考:https://github.com/thtrieu/darkflow

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。