如何使用DeepFaceLab提取未裁剪的含人脸完整静态图片
含人脸静态图提取(不裁剪原图)实现方案
DeepFaceLab 实现方法
DeepFaceLab自带的人脸检测链路支持直接过滤输出含人脸的原图,无需额外二次开发,操作步骤如下:
- 将所有待筛选的静态图片放入
workspace/data_src目录(若你原本是要处理目标素材,放入workspace/data_dst也可,不影响检测逻辑) - 若你的素材是视频文件,先运行
1) extract images from video.bat(Windows端)或对应.sh后缀的Linux/Mac脚本拆分为帧图片;已为静态图片可直接跳过这一步 - 找到人脸提取脚本
2) extract S3FD faces from images.bat,右键编辑脚本内容,在启动命令中添加--save-original-frame-with-face True参数,开启后脚本会自动将检测到人脸的整张原图单独输出到指定目录,不会仅输出裁剪后的人脸块,同时自动过滤不含人脸的图片 - 运行修改后的提取脚本即可得到你需要的结果,默认使用的S3FD检测器误检率低,适配绝大多数普通场景的人脸检测需求
其他免费开源实现方案
如果不想使用DeepFaceLab,也可以用以下轻量工具/代码实现需求:
- OpenCV DNN人脸检测器:调用OpenCV内置的预训练人脸检测模型,仅需几十行Python代码即可实现批量筛选,对硬件配置要求极低,运行速度快,核心调用接口为
cv2.FaceDetectorYN() - MTCNN:轻量级人脸检测库,Python环境可直接通过
pip install mtcnn安装,检测逻辑简单,仅需在检测结果中增加判断:只要返回的人脸坐标列表不为空,就将对应原图复制到目标文件夹即可完成筛选 - InsightFace:高精度开源人脸分析工具库,支持检测多角度、小尺寸、遮挡状态的人脸,适合复杂场景的筛选需求,同样支持批量处理,仅需保留检测到人脸的原图即可,无需裁剪人脸区域
内容的提问来源于stack exchange,提问作者Erik Ehlers
相关产品推荐
相关产品推荐

