为了实现我们对特定场景下的图像识别功能,我们需要依托YOLO V8工具,对大量的图片进行目标标准和训练。因此我们首先要做的一项工作便是准备大量的用于标准和训练做续的图片。
由于在实际项目中,特别是以公安交管所需要的场景中,我们很难单纯依托网络下载的方式获得所需要的素材图片,因为笔者认为,为了获取更多高质量的素材,我们需要从真实的都视频监控中去提取所需要的视频素材,并通过其生成一张一张的图片,这样才能让我们获取到更为真实有效的图片素材,进一步支撑我们开展标准、训练等工作。
为此,笔者将在下文一步一步的指导读者采用视频的形式获取所需要的图片素材,其基本原理为读取视频,使用opencv获取视频的每一帧,时间为周期将视频帧单独保存起来,并单独命名供后续标签标注使用,封装为函数,实现对大量视频的并发处理。笔者已经在本文给出示例代码以供参考,您也可以直接套用相关代码,从而进一步实现您所需要的功能。
1、视频素材准备
为了从视频中获取图片,顾名思义,我们需要提前准备出较多时长的视频素材。以公安交管场景为例,我们需要提前准备较多的道路交通视频监控录像文件,格式一般为MP4文件,当然常见的AVI格式也可以,总之可以被python脚本程序识别就可以。如下图所示,笔者准备了以下视频素材,每个视频都较大。
2、代码示例
读取视频生成图片的基本思想是确定时间周期后,每个几秒存一帧,这样便可以快速高效的生成大量的可以用于标注