当前位置: 首页 > news >正文

【深度学习图片】图片清洗,只留下图像中只有一张人脸的,而且人脸是全的

环境:


conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia -ypip install onnx==1.15 onnxruntime-gpu==1.17pip install insightface==0.7.3pip install opencv-pythonpip install gradio

图片清洗,只留下图像中只有一张人脸的,而且人脸是全的。

import os
import shutilimport cv2
import numpy as np
from insightface.app import FaceAnalysisdef is_full_face(facedata, img_shape, threshold=0.5):"""判断是否为整张脸:param facedata: 人脸数据:param img_shape: 图片尺寸:param threshold: 阈值:return: 布尔值,True 表示整张脸,False 表示部分脸"""img_width, img_height = img_shape[1], img_shape[0]# 检查人脸关键点是否在图片内部kps = facedata['kps']if np.all(kps >= 10) and np.all(kps[:, 0] <= img_width - 10) and np.all(kps[:, 1] <= img_height - 10):keypoints_inside = Trueelse:keypoints_inside = False# 满足阈值并且关键点在图片内部return keypoints_insidedef listPathAllfiles(dirname):result = []for maindir, subdir, file_name_list in os.walk(dirname):for filename in file_name_list:apath = os.path.join(maindir, filename)result.append(apath)return result# 使用的检测模型名为 buffalo_sc
app = FaceAnalysis(name='buffalo_sc', providers=['CUDAExecutionProvider'])
app.prepare(ctx_id=0, det_size=(640, 640))  # ctx_id 小于0 表示用 CPU 预测,det_size 表示 resize 后的图片分辨率src = r"C:\Users\Administrator\Pictures\girl_no_train\mangguo_dst"
dst = r"C:\Users\Administrator\Pictures\girl_no_train\mangguo_dst2"
os.makedirs(dst, exist_ok=True)files = listPathAllfiles(src)
for file in files:img = cv2.imread(file)  # 读取图片faces = app.get(img)  # 得到人脸信息if len(faces) == 0:continueif len(faces) > 1:continuefor facedata in faces:if is_full_face(facedata, img.shape):# print("This is a full face.")shutil.copy(file, dst)
http://www.lryc.cn/news/403327.html

相关文章:

  • 如何在 PostgreSQL 中处理海量数据的存储和检索?
  • 【中项】系统集成项目管理工程师-第2章 信息技术发展-2.2新一代信息技术及应用-2.2.1物联网与2.2.2云计算
  • Redis集群的主从复制原理-全量复制和增量复制-哨兵机制
  • 23年阿里淘天笔试题 | 卡码网模拟
  • 【SpringBoot】单元测试之测试Service方法
  • 剪辑师和小白都能用的AI解说神器,一键把短剧变解说视频-手把手教程-2024
  • 我去,怎么http全变https了
  • IDEA的详细设置
  • 为什么Spring选择使用容器来管理对象,而不是直接使用new
  • 腾讯云发送短信验证码
  • 嵌入式人工智能(13-基于树莓派4B的指纹识别-AS608)
  • 【Vue】`v-on` 指令详解:事件绑定与处理的全面指南
  • 【Spark On Hive】—— 基于电商数据分析的项目实战
  • 哪种SSL证书可以快速签发保护http安全访问?
  • 深入探究理解大型语言模型参数和内存需求
  • maven 私服搭建(tar+docker)
  • 银行业务知识全篇(财务知识、金融业务知识)
  • 解决ElasticJob项目重启ZooKeeper注册冲突以及zkCli删除目录
  • 【EI检索】第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)
  • vscode通过ssh链接远程服务器上的docker
  • 使用NIFI连接瀚高数据库_并从RestFul的HTTP接口中获取数据局_同步到瀚高数据库中---大数据之Nifi工作笔记0067
  • IDEA的工程与模块管理
  • [M前缀和] lc3096. 得到更多分数的最少关卡数目(前缀和+思维)
  • 基础vrrp(虚拟路由冗余协议)
  • 《绝区零》是一款什么类型的游戏,Mac电脑怎么玩《绝区零》苹果电脑玩游戏怎么样
  • Mysql sql技巧与优化
  • 7.SpringBoot整合Neo4j
  • 教室管理系统的开发与实现(Java+MySQL)
  • Go的入门
  • windows中使用Jenkins打包,部署vue项目完整操作流程