重磅:TensorFlow实现YOLOv3(内含福利)

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

往期回顾

YOLOv3:你一定不能错过

CVer微信群和QQ群—入群方式

OpenCV实战:人脸关键点检测(FaceMark)

PS:往下拉,文末有福利!

前戏

扫描二维码关注公众号,回复: 12437375 查看本文章

前些天,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

重磅:TensorFlow实现YOLOv3(内含福利)

2 下载已训练好的权重yolov3.weights

大家可以上YOLO的官网上下载yolov3.weights,但可能受资源限制问题,下载速度会受限。由于该文件大概236.MB,所以贴心的Amusi已经将yolov3.weights上传到百度云上了。如果你需要,可以在CVer公众号后台回复:yolov3.weights即可。注意回复内容一定要准确哦,是yolov3.weights

重磅:TensorFlow实现YOLOv3(内含福利)

下载好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文件:

重磅:TensorFlow实现YOLOv3(内含福利)

4 测试


1python yolo.py

此时你的cmd命令提示符(对于Windows)或者终端(Linux/Mac)会提示“Input image filename:”,即需要输入待检测图像的路径。由于原作者并没有提供测试图像,所以Amusi拿了YOLOv3官方提供的测试图像:dog.jpg和person.jpg来测试。

此时输入dog.jpg,按下回车:

重磅:TensorFlow实现YOLOv3(内含福利)

等待不到1s,就会见证奇迹!哇塞,这检测结果,很nice...

重磅:TensorFlow实现YOLOv3(内含福利)

然后可以继续输入person.jpg,按下回车:

重磅:TensorFlow实现YOLOv3(内含福利)

等待不到1s,又见证了奇迹!哇塞,这检测结果,很nice...
重磅:TensorFlow实现YOLOv3(内含福利)

等等,你以为这样就结束了么?!

刚才是检测图像,那我们再试一下对视频进行目标检测。

Amusi这里偷点懒,直接使用电脑的摄像头来测试了


1python yolo_video.py

重磅:TensorFlow实现YOLOv3(内含福利)

原谅这帧率,啊哈哈,与电脑配置有关......但检测效果还可以,你看teddy bear

5 TODO

聪明的你应该已经注意到,上述教程还只是测试,并没有训练,因为keras-yolo3的原作者qqwweee还没有实现......

重磅:TensorFlow实现YOLOv3(内含福利)

如果你已经迫不及待,那么建议你学好TensorFlow,自己来复现论文!这样会有满满的成就感!如何快速学好TensorFlow呢?这是一个问题,同样困扰了Amusi很久。

终于经过Amusi再三考量,昨天在网易云课堂上购买了心仪很久的《TensorFlow实用课程》。购买的原因很简单,讲师来自中科视拓的深度学习大讲堂(很硬的团队),背景是中科院计算所!!!。

在看了《TensorFlow实用课程》教学大纲和免贵的视频介绍后,Amusi终于忍不住,嘿嘿,下单了

图片

Amusi推荐指定购买链接如下,微信扫一扫购买即可:

图片

Warning:通过扫描上述的购买链接(即Amusi推荐指定的二维码),登陆网易云课程账号,加入购物车并购买了《TensorFlow实用课程》课程,那么可以单独加Amusi微信,Amusi可以将你拉入CVer微信学习群。

那么《TensorFlow实用课程》到底哪些地方吸引到Amusi,让一毛不拔的Amusi愿意为知识付费呢?(Amusi其实经常知识付费,知乎上Live就很赞)。接下就简单看一下该课程的介绍和亮点。

《TensorFlow实用课程》

《TensorFlow实用课程》教学目标:
本课程从TensorFlow编程角度来展开介绍,课程内容明确定位为使用TensorFlow编程语言来实现计算模型,让学员学完本课程后,能够比较自由的使用TensorFlow(可简称TF)来表达想要的计算,模型或者算法。

《TensorFlow实用课程》课程内容:

图片

图片

图片

图片

图片

《TensorFlow实用课程》教学方式:

通过一个例子来阐述,让初学者通过完成一个例子,就能理解TF表达计算的思想;

通过人脸识别的例子来阐述Verification Task,包括WebFace中训练和LFW中测试;

在实际中学习Debug和优化思想。

猜你喜欢

转载自blog.51cto.com/15069443/2614439