V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
1722332572
V2EX  ›  Python

YOLO_Online 将深度学习最火的目标检测做成在线服务实战经验分享

  •  
  •   1722332572 · 2018-05-09 19:49:59 +08:00 · 4789 次点击
    这是一个创建于 2171 天前的主题,其中的信息可能已经有所发展或是发生改变。

    YOLO_Online 将深度学习最火的目标检测做成在线服务

    第一次接触 YOLO 这个目标检测项目的时候,我就在想,怎么样能够封装一下让普通人也能够体验深度学习最火的目标检测项目,不需要关注技术细节,不需要装很多软件。只需要网页就能体验呢。

    在踩了很多坑之后,终于实现了。

    效果:

    1.上传文件

    http://objectdetection.cn/wp-content/uploads/2018/05/WechatIMG482.jpg

    2.选择了一张很多狗的图片

    http://objectdetection.cn/wp-content/uploads/2018/05/WechatIMG483-2.jpeg

    3.YOLO 一下

    http://objectdetection.cn/wp-content/uploads/2018/05/WechatIMG484.jpg

    技术实现

    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。

    http://objectdetection.cn/wp-content/uploads/2018/05/WechatIMG485-2.jpeg

    解决,并没有解决,因为买不起更好地服务器了,只好本地运行然后截图了。

    坑 3:

    YOLO 的识别是需要一定的时间的,做成 web 的服务,上传完文件之后,并不能马上识别出来,有一定的延迟。

    相关教程:

    TensorFlow + Keras 实战 YOLO v3 目标检测图文并茂教程

    https://zhuanlan.zhihu.com/p/36152438

    YOLO QQ 群(求土豪赞助一波服务器啊)

    群号:167122861

    ObjectDetection:http://objectdetection.cn/

    13 条回复    2018-05-10 10:55:15 +08:00
    yagamilin1120
        1
    yagamilin1120  
       2018-05-09 20:05:09 +08:00
    租个带显卡的云服务吧,最好 2G 以上,不然。。
    YRodT
        2
    YRodT  
       2018-05-09 20:12:30 +08:00 via Android
    后端是 cpu 版 tensorflow+keras ?这得慢成啥样啊,作者官方 c 语言后端,python 外壳了解一下
    inflationaaron
        3
    inflationaaron  
       2018-05-09 20:30:14 +08:00
    绝了,keras 部署还行,至少也要用 Caffe2 或者 TF Serving 吧。
    menc
        4
    menc  
       2018-05-09 20:36:06 +08:00
    请用 tf serving 来部署线上模型,
    为什么 keras 被 kill 心里没有点数么,标题的“将深度学习最火的目标检测做成在线服务”根本就没有做出来,谈何经验分享?
    1722332572
        5
    1722332572  
    OP
       2018-05-09 23:26:39 +08:00
    @menc 已经上线了,只是比较鸡肋,大佬。
    1722332572
        6
    1722332572  
    OP
       2018-05-09 23:32:21 +08:00
    @YRodT 多谢大佬指导,晚点试一下。
    1722332572
        7
    1722332572  
    OP
       2018-05-09 23:40:00 +08:00
    体验网址: http://objectdetection.cn/2018/05/08/yolo_online/
    最后上线的是 web 接收图片,传回自己电脑 YOLO,会比较慢。
    askfermi
        8
    askfermi  
       2018-05-09 23:44:40 +08:00
    正在做一整套开源的包括训练、检测、分割、分类任务的库[手动狗头],类似楼主这个,可以参考: https://github.com/unarxiv/CVTron,Serve 和 Vis 分别是后台和前端的程序
    askfermi
        9
    askfermi  
       2018-05-10 00:01:53 +08:00
    如果楼主有志于此,可以加入我们一起搞搞有趣的事 :D, 还有很多新的想法正在实验中
    askfermi
        10
    askfermi  
       2018-05-10 00:02:40 +08:00
    #8 应该是

    正在做一整套开源的包括训练、检测、分割、分类任务的库[手动狗头],类似楼主这个,可以参考: https://github.com/unarxiv/CVTron 其中 Serve 和 Vis 分别是后台和前端的程序
    Reign
        11
    Reign  
       2018-05-10 10:02:11 +08:00
    感谢楼主的项目,不过你博文中说的“解决,并没有解决,因为买不起更好地服务器了,只好本地运行然后截图了”,为啥一定要买贵的上天的国内服务器,用国外的服务器不就行了么?腾讯云 1G 内存的价格,至少可以买美国 or 法国 1000TB 内存的服务器了,推荐 online 家的 scaleway: https://www.scaleway.com 价格便宜,楼主可以试试
    1722332572
        12
    1722332572  
    OP
       2018-05-10 10:17:42 +08:00
    @Reign 多谢,最后实现了一个版本是 web 只用来让用户上传文件,然后我自己电脑 YOLO 完了传回去。这个版本可以运行了,目前还不稳定。
    1722332572
        13
    1722332572  
    OP
       2018-05-10 10:55:15 +08:00
    @askfermi 是的,想法差不多,我计划也是先用 YOLO 跑一下,后续试一下类似于分类之类的模型。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5159 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 05:43 · PVG 13:43 · LAX 22:43 · JFK 01:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.