YOLO_Online 将深度学习最火的目标检测做成在线服务
第一次接触 YOLO 这个目标检测项目的时候,我就在想,怎么样能够封装一下让普通人也能够体验深度学习最火的目标检测项目,不需要关注技术细节,不需要装很多软件。只需要网页就能体验呢。
在踩了很多坑之后,终于实现了。
效果:
1.上传文件
2.选择了一张很多狗的图片
3.YOLO 一下
技术实现
web 用了 Django 来做界面,就是上传文件,保存文件这个功能。 YOLO 的实现用的是 keras-yolo3,直接导入 yolo 官方的权重即可。 YOLO 和 web 的交互最后使用的是 socket。 坑 1:
Django 中 Keras 初始化会有 bug,原计划是直接在 Django 里面用 keras,后来发现坑实在是太深了。
最后 Django 是负责拿文件,然后用 socket 把文件名传给 yolo。
坑 2:
说好的在线服务,为什么没有上线呢?买了腾讯云 1 CPU 2 G 内存,部署的时候发现 keras 根本起不来,直接被 Killed。
解决,并没有解决,因为买不起更好地服务器了,只好本地运行然后截图了。
坑 3:
YOLO 的识别是需要一定的时间的,做成 web 的服务,上传完文件之后,并不能马上识别出来,有一定的延迟。
相关教程:
TensorFlow + Keras 实战 YOLO v3 目标检测图文并茂教程
https://zhuanlan.zhihu.com/p/36152438
YOLO QQ 群(求土豪赞助一波服务器啊)
群号:167122861
ObjectDetection:http://objectdetection.cn/
1
yagamilin1120 2018-05-09 20:05:09 +08:00
租个带显卡的云服务吧,最好 2G 以上,不然。。
|
2
YRodT 2018-05-09 20:12:30 +08:00 via Android
后端是 cpu 版 tensorflow+keras ?这得慢成啥样啊,作者官方 c 语言后端,python 外壳了解一下
|
3
inflationaaron 2018-05-09 20:30:14 +08:00
绝了,keras 部署还行,至少也要用 Caffe2 或者 TF Serving 吧。
|
4
menc 2018-05-09 20:36:06 +08:00
请用 tf serving 来部署线上模型,
为什么 keras 被 kill 心里没有点数么,标题的“将深度学习最火的目标检测做成在线服务”根本就没有做出来,谈何经验分享? |
5
1722332572 OP @menc 已经上线了,只是比较鸡肋,大佬。
|
6
1722332572 OP @YRodT 多谢大佬指导,晚点试一下。
|
7
1722332572 OP 体验网址: http://objectdetection.cn/2018/05/08/yolo_online/
最后上线的是 web 接收图片,传回自己电脑 YOLO,会比较慢。 |
8
askfermi 2018-05-09 23:44:40 +08:00
正在做一整套开源的包括训练、检测、分割、分类任务的库[手动狗头],类似楼主这个,可以参考: https://github.com/unarxiv/CVTron,Serve 和 Vis 分别是后台和前端的程序
|
9
askfermi 2018-05-10 00:01:53 +08:00
如果楼主有志于此,可以加入我们一起搞搞有趣的事 :D, 还有很多新的想法正在实验中
|
10
askfermi 2018-05-10 00:02:40 +08:00
#8 应该是
正在做一整套开源的包括训练、检测、分割、分类任务的库[手动狗头],类似楼主这个,可以参考: https://github.com/unarxiv/CVTron 其中 Serve 和 Vis 分别是后台和前端的程序 |
11
Reign 2018-05-10 10:02:11 +08:00
感谢楼主的项目,不过你博文中说的“解决,并没有解决,因为买不起更好地服务器了,只好本地运行然后截图了”,为啥一定要买贵的上天的国内服务器,用国外的服务器不就行了么?腾讯云 1G 内存的价格,至少可以买美国 or 法国 1000TB 内存的服务器了,推荐 online 家的 scaleway: https://www.scaleway.com 价格便宜,楼主可以试试
|
12
1722332572 OP @Reign 多谢,最后实现了一个版本是 web 只用来让用户上传文件,然后我自己电脑 YOLO 完了传回去。这个版本可以运行了,目前还不稳定。
|
13
1722332572 OP @askfermi 是的,想法差不多,我计划也是先用 YOLO 跑一下,后续试一下类似于分类之类的模型。
|