之前已经看了通过CNN可以快速对人脸识别分类,但是在一张图片或照片里,如何快速定位到人脸,或者人,不是直接通过CNN就能实现,这次用yolov3的Keras版本来进行入门, 用示例模型,来验证下是否能识别到人,并打上标签。
文章目录
- 了解yolov3
- 安装yolov3的Keras版本
- 进行测试
了解yolov3
yolo是一种简易快捷的目标检测算法,它可以对图像做识别和目标检测,因为比一般算法快速,特别是到了v3版本, 也可以对视频做实时识别。
官网:https://pjreddie.com/darknet/yolo/
理论相关可以自行搜索。
安装yolov3的Keras版本
环境:Windows+Anaconda+Py3.6
- 打开conda,先创建一个用来测试的环境。在环境中先通过conda安装Keras。
- 然后到 https://github.com/qqwweee/keras-yolo3 下载一份源码
下载后我这里放到了:
E:\testproject\keras-yolo3 - 再下载官方已经训练过的示例模型: https://pjreddie.com/media/files/yolov3.weights
下载后放入到keras-yolo3目录中(也就是E:\testproject\keras-yolo3) - 打开conda,还是这个环境,conda路径切换到E:\testproject\keras-yolo3
执行以下命令,也就是把模型转为TensorFlow能识别的模型yolo.h5:
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
- 注:过程中如果出现缺少依赖包的,通过conda安装就可以。如果出现PIL缺少的话(ModuleNotFoundError: No module named ‘PIL’),在py3下不能直接通过conda安装, 要安装的是Pillow。
最后告诉我们已经从Darknet weights转换为 Keras model 了,代表转成功了。
进行测试
还是在conda中,敲入命令:
python yolo_video.py --image
就会开始加载刚才的模型。
- 注:过程中如果出现缺少依赖包的,通过conda安装就可以。
看到让我们输入图片名称:
我找一张图片,放入到项目目录里(E:\testproject\keras-yolo3)。
敲入图片文件名后,回车,过一会就会自动打开打标签后的图片:
顺利检测并标记正确~示例的模型里还能标记人以外的东西,你们可以自己尝试下, 也可以试下视频打标记。当然我们也可以自己训练模型,也就要用gpu来加速了,而不是像现在单纯利用cpu,在github也标明了使用方法,可以深入研究。