第一次接触 YOLO 这个目标检测项目的时候,我就在想,怎么样能够封装一下让普通人也能够体验深度学习最火的目标检测项目,不需要关注技术细节,不需要装很多软件。只需要网页就能体验呢。
在踩了很多坑之后,终于实现了。
效果:
1.上传文件
2.选择了一张很多狗的图片
3.YOLO 一下
技术实现
- web 用了 Django 来做界面,就是上传文件,保存文件这个功能。
- YOLO 的实现用的是 keras-yolo3,直接导入yolo 官方的权重即可。
- YOLO 和 web 的交互最后使用的是 socket。
tip0:
最理想的情况就是 YOLO 的模型和参数只加载一次,然后目标检测就很快。
这个比较容易实现,py 代码中先加载模型,再写处理逻辑。
tip1:
Django 中 Keras 初始化会有 bug,原计划是直接在 Django 里面用 keras,后来发现坑实在是太深了。
最后 Django 是负责拿文件,然后用 socket 把文件名传给 yolo。
tip2:
说好的在线服务,为什么没有上线呢?买了腾讯云 1 CPU 2 G 内存,部署的时候发现 keras 根本起不来,直接被 Killed 。
解决,只好本地运行然后截图了,这个服务对于硬件的要求还是挺高的。
tip3:
YOLO 的识别是需要一定的时间的,做成 web 的服务,上传完文件之后,并不能马上识别出来,有一定的延迟。
解决,正在尝试 web 端只负责接收图片,然后 GPU 服务器负责处理 YOLO 相关的任务,然后再把处理过的图片返回到 web 端。
相关教程:
TensorFlow + Keras 实战 YOLO v3 目标检测图文并茂教程
https://zhuanlan.zhihu.com/p/36152438
YOLO QQ 群(求土豪赞助一波服务器啊)
群号:167122861