这会是一个系列,我给这个项目取名为Owl,我的预想基于这个项目可以玩很多视觉相关的AI。废话不多说,先聊聊这个项目是做什么的,很多拥有树莓派的小伙伴都想着DIY很多有意思的视觉想法,但受限于它的计算能力,无法运行一般的深度学习模型;另外很多拥有PC的小伙伴虽然拥有着算力,但受限于它的移动能力,无法部署在家中的任意位置。所以,基于树莓派和PC搭建服务器,树莓派负责图像的采集,PC负责图像处理,完成以下功能:
(1)树莓派采集图像传给PC
(2)PC将AI模型的结果传给树莓派,树莓派基于结果绘制结果或完成业务功能
(3)局域网内的设备通过树莓派IP和端口实时浏览处理后的视屏流结果
这样一来,帧率只会受限于局域网速和PC端AI模型的前项推断,理论上可以玩大多数的AI模型了。
Talk is cheap!Github地址:https://github.com/WaterdropsKun/Owl,基于树莓派搭建视频流服务器代码结构如下,代码结合原作者博客一起阅读:
app.py:主函数
base_camera.py:相机基类
camera_opencv.py:继承相机基类,我是采用usb相机,OpenCV的调用方式
树莓派上搭建Python环境就不详细说明了,缺啥补啥即可。最终python app.py运行即可,局域网内手机登录http://树莓派IP:5000/效果如图所示: