前段时间导师布置了一个人脸识别一寸照片的任务,给大家顺便分享一下如何使用yolov5(v6.1)训练好的face模型应用到简单的视频一寸照裁剪上。
我们可以把任务拆分成四步:
一:用widerface数据集在yolov5上训练出模型
二:将待测的视频逐帧转化为图片
三:用人脸识别模型对图片识别,并且进行一寸照人脸的裁剪,保存为新的图片
四:把生成的图片再转换为视频
一:用widerface数据集在yolov5上训练出模型
训练模型用的是widerface数据集,将数据集转换成YOLO格式之后,修改对应的配置文件,就可以开始训练了。这里我用我自己训练好的模型best.pt来进行测试。
二:将待测的视频逐帧转化为图片
首先我们要将一段视频拆分成图片,视频的帧率就是每秒播放多少张图片。
我找了一段有14秒的夸张人脸的视频,定为face.mp4 ,视频效果如下:
face

然后用以下video2jpg.py脚本,将videopath下的MP4文件转化成out_path下的jpg图片
from cv2 import VideoCapture
from cv2 import imwrite
# 定义保存图片函数
# image:要保存的图片名字
# addr;图片地址与相片名字的前部分
# num: 相片,名字的后缀。int 类型
def save_image(image, addr, num):
address = addr + str(num) + '.jpg'
imwrite(address, image)
if __name__ == '__main__':
video_path = "/mnt/4T/ym2/projects/yolo-max/yo

该博客介绍了如何利用YOLOv5模型进行人脸识别,将视频拆分为图片,然后对图片中的人脸进行一寸照裁剪,并最终将裁剪后的图片合成新的视频。首先,博主使用widerface数据集训练了YOLOv5模型。接着,将视频转换为图片并逐帧进行人脸检测。通过识别框坐标进行裁剪,调整尺寸符合一寸照标准。最后,将裁剪后的图片重新组合成视频,完成人脸一寸照的视频制作。
最低0.47元/天 解锁文章
1740

被折叠的 条评论
为什么被折叠?



