YOLO官网:
YOLO: Real-Time Object Detection
keras-yolo3:https://github.com/qqwweee/keras-yolo3
论文链接:
https://pjreddie.com/media/files/papers/YOLOv3.pdf
知乎话题:
如何评价YOLOv3: An Incremental Improvement?
Author:qqwweee
往期回顾
你的同龄人,正在抛弃你(科技版)
吴恩达对话GAN之父Ian Goodfellow
重磅:Caffe2与PyTorch强强联合
前戏
前些天,Amusi翻译了
YOLOv3论文
,大家也好评如潮。而Amusi本人对YOLOv3也很感兴趣,于是配置了
Windows版的DarkNet
,已经跑出了C++版本的YOLOv3,速度要比Python版的快一些。
C++版本的DarkNet
,利用Visual Studio打开,实在很方便,可以直接阅读算法的源码(感觉可以搞事情了)。
当然这也不能满足我,我还配置了
PyTorch版的YOLOv3
,最近在github上看见
基于TensorFlow和Keras复现的YOLOv3
,简直太帅了(给大佬们打call)。
今天就重点向大家介绍
TensorFlow版本的YOLOv3安装和测试教程
。
环境
硬件
-
intel CORE i5
-
GTX 960m(2G显存)
-
12G 内存
软件
-
TensorFlow 1.4
-
Keras
-
h5py
-
OpenCV3.x
注:大家不要被这配置所“吓”到,因为Amusi的十八线过气笔记本还是能打的,比如来测试跑跑。重点是
TensorFlow建议升级到1.4及以上
,但不推荐最新的,因为可能还要安装CUDA9.0。
注意还要额外安装h5py和OpenCV3.x!
这里简单介绍一下安装h5py和OpenCV3.x的命令
1pip install h5py
2pip install opencv-contrib-python
注:其实安装OpenCV,使用pip install opencv-python即可,但Amusi超级喜欢使用pip install opencv-contrib-python,嘻嘻,多一个contrib,意义大有不同。感兴趣的童鞋,可以自行百度。
安装
1 下载 keras-yolo3库
首先,选择一个路径,打开你的cmd命令提示符(对于Windows)或者终端(Linux/Mac),并使用git命令下载keras-yolo3库:
1git clone https://github.com/qqwweee/keras-yolo3.git
2cd keras-yolo3
2 下载已训练好的权重yolov3.weights
大家可以上YOLO的官网上下载
yolov3.weights
,但可能受资源限制问题,下载速度会受限。由于该文件大概
236.MB
,所以贴心的Amusi已经将yolov3.weights上传到百度云上了。
如果你需要,可以在本公众号后台回复:yolov3.weights即可
。注意回复内容一定要准确哦,是yolov3.weights
下载好yolov3.weights,然后将此文件放在
path/keras-yolo3
路径下。
3 yolov3.weights格式
转换
刚才下载好的yolov3.weights并不是TensorFlow/Keras所支持的权重格式,因为
TensorFlow所支持格式是h5文件
。
所以这里需要将yolov3.weights进行格式转换,贴心的qqwweee已经在keras-yolo3中写好了转换脚本文件(convert)了,所以大家直接
打开你的cmd命令提示符(对于Windows)或者终端(Linux/Mac)输入下述命令即可:
1python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
此时在path/keras-yolo3/model_data中就可以看到新生成的yolo.h5文件:
4 测试
此时
你的cmd命令提示符(对于Windows)或者终端(Linux/Mac)会提示“Input image filename:”,即需要输入待检测图像的路径。由于原作者并没有提供测试图像,所以Amusi拿了YOLOv3官方提供的测试图像:dog.jpg和person.jpg来测试。
此时输入dog.jpg,按下回车:
等待不到1s,就会见证奇迹!哇塞,这检测结果,很nice...
然后可以继续输入person.jpg,按下回车:
等待不到1s,又见证了奇迹!哇塞,这检测结果,很nice...
等等,你以为这样就结束了么?!
刚才是检测图像,那我们再试一下对视频进行目标检测。
Amusi这里偷点懒,直接使用电脑的摄像头来测试了