赞
踩
在之前的文章中,我们已经分别实现了:
1、使用rtsp传输h.264视频流的功能(即局域网视频监控功能)
2、基于yolov5这个开源项目进行目标检测,实现简单的垃圾分类功能
3、最后一篇文章拖了好久才更新有点对不起大家,主要自己五月份开始就忙毕业的事情了,
之后又是疫情啥的,再加上前段时间公司入职,所以一直在忙其他的事情,就没有更新,今天
周末双休抽空更新一下。
接下来我们要将这两个功能进行结合:
1、yolov5这个开源项目提供了直接读取rtsp传输的视频流的功能,进行实时检测。
2、我们也可以使用python的opencv库的接口,读取视频流,将视频中的画面保存到指定路径,再yolov5去该路径下读取图片进行检测。参考资料链接如下:
RTSP协议进行视频取流的方法、注意点及python实现
Python 流媒体播放器的实现
3、但是经过我的实际操作后发现,以上两种思路都无法成功,因为只有rtsp流传输的是mp4格式的视频流数据上述方式是可以的,但是我们实现的是h.264格式的。如何解决呢,我最后经过百度得到了两种思路:
1、Python中一个gstreamer库可以支持解析读取h.264码流,不过该库的资料太少了,我找
了好久都没找到,实际开发难度有点大。
2、通过之前实现的将视频数据保存为MP4格式文件,然后再使用yolov5去读取视频文件进行
检测,假设你将yolov5部署到了ubuntu端,开发板启动通过nfs方式自动挂载到ubuntu中的
某个文件夹(如/home/aston/rootfs中),可在程序中配置,将视频数据保存到该目录中,
然后yolov5读取并进行检测。
显然,这是一种 凑合 的方法,而且在我实际开发中,直接生成的mp4视频文件读取可能
有问题不成功,必须先在pc端打开播放然后略微裁剪一下才可以读取成功,像是添加某种标志
一样,当然也有可能是我的问题。
因为这个项目是当作我的毕设去做的,时间紧迫,毕业要紧,所以就这样草草结束了,现
在入职公司也没时间去搞gstreamer了,不过这个是最好的解决办法,我留给大家一个思路,
有时间的友友可以去搞搞,由于实际工作需求我之后更新的文章可能更多偏向于Linux方向。
1、个人建议学习本项目,最好有一年以上的Linux开发经验。熟悉Linux基本操作,熟悉uboot、kernel、驱动等相关开发知识;
2、对视频编解码感兴趣的朋友本专栏文章可以给你带来一定的帮助,其中涉及到许多相关知识以及视频传输用到的网络协议;
3、想了解华为海思的SDK使用方法也可以阅读下本专栏文章,前期有大量相关的内容;
4、学习顺序,建议安装本专栏各篇文章更新的时间先后顺序进行学习,如果有相关基础,也可根据自己的需要选取相关篇章进行学习。
本项目前前后后也花了几个月时间,自己也学到了很多东西,有兴趣的朋友可以在评论区交流学习,大家一起进步。转眼间大学四年就结束了,大家有缘江湖再见!
当然,以后还是会写博客的,不过更新速度就要慢一点了,不过我一定会保证质量的,可能一个月四篇左右吧!
本文章参考了百度百科,他人技术文章以及哔哩哔哩免费教程,综合整理而来,如有侵权联系删除,小白一个,欢迎大家指导交流!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。