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:往下拉,文末有福利!

前戏

前些天,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 h5py2pip 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.git2cd keras-yolo3

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

大家可以上YOLO的官网上下载yolov3.weights,但可能受资源限制问题,下载速度会受限。由于该文件大概236.MB,所以贴心的Amusi已经将yolov3.weights上传到百度云上了。如果你需要,可以在CVer公众号后台回复: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 测试

1python yolo.py

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

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

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

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

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

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

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

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

1python yolo_video.py

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

5 TODO

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

如果你已经迫不及待,那么建议你学好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和优化思想。

©著作权归作者所有:来自51CTO博客作者mb5fe948249bc3d的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 不适合做软件测试的5类人,你现在看还来得及!
  2. 用httping测试WEB页面响应时间
  3. Linux压力测试软件Stress使用指南
  4. 论软件测试工程师面试套路和暗语灵魂解密
  5. 测试完,还有BUG,还是测试的责任?这锅我们不背!
  6. 别让假装努力毁了你,最强的68道软件测试基础问答题你能答的溜嘛?
  7. 必会10大软件测试软件工具,不知道的快收藏了
  8. 100分面试题,背过面试老师说好的我们再仔细聊聊。
  9. 一文让你快速上手 Mockito 单元测试框架

随机推荐

  1. 从动态生成的音频标签中收听audio.ended
  2. 获取当前时间getDate()注意点
  3. 使用Angularjs根据值选择复选框
  4. 通过IE中的DOM访问帧
  5. 一张图轻松搞懂javascript event对象的cl
  6. 使用jackson json将属性添加到json字符串
  7. 如何.abort()ajax文件上传?
  8. JavaScript获取某年某月的最后一天
  9. 如何测试潜在的“浏览器崩溃”JavaScript
  10. Cesium学习笔记(八):Demo学习(差值器)