背景
在对视频进行人脸打码时,需要从硬盘读取视频帧,然后通过训练好的深度神经网络模型进行人脸监测,获取到人脸的位置,然后对人脸进行打码。
opencv读取多张视频帧,提高性能
由于opencv每次只能读取一张视频帧,然后把这一张视频帧送入神经网络模型进行人脸监测,这样逐帧的处理视频,速度相对来说比较慢。
为了提高性能,需要进行优化。如果对训练深度神经网络模型原理了解的话,那么可以每次传入多个视频帧,这样每次作为一个batch,使计算效率更高一些。
深度神经网络模型在训练时,是每次处理一个batch图像,通过梯度下降,优化模型参数。[batch,image_channel,image_height,image_width],这是深度卷积神经网络模型训练时,需要传入的数据shape。
这样就需要opencv每次读取多个视频帧,但是opencv里面没有这样的方法,只能自己去实现这样的方法。
实例代码
1import cv