在上一章节中博主利用Gradio完成了YOLOv8模型的图像推理,那么在本章节中将进行视频推理,其代码十分简单,只需要将原本的视频切分为一帧帧图像再去检测即可,代码如下:
至此,模型的视频推理过程便完成了,但我们在UI界面上却发现,上传的视频是没有画面的,同时,返回的视频虽然成果保存,但其在界面上却显示为NaN
其实,对于学习YOLO
模型推理的过程而言,这已无伤大雅,但博主还有那么一点完美主义精神的,看看能否解决呢?
经过查询相关资料,发现这是由于OpenCV
合成视频操作造成的,解决方式是使用moviepy
,具体如何做呢?
Moviepy合成视频
我们先来看一个moviepy合成视频的案例,可以看到它其实是读取文件夹内所有图像,随后再统一写入
将原本的Opencv合成视频进行改造:
可以看到,现在这个返回的视频可以展示了,但博主在实验时发现,其最终视频的处理时间要比OpenCV
慢上许多,大家根据自己的需要选择即可。
至于视频上传时,点击播放只有声音没有画面的问题,博主搜索了一些资料但也没有找到解决方法,大家如果有解决方案希望能够不吝赐教。
图像推理改进
随后对模型的图像推理模块进行改进,添加了置信度与IOU的进度条,实现代码如下:
实现界面如下:
完整代码已发布在Github: