首页 > 其他分享 >人脸识别facenet-pytorch/Yolov5

人脸识别facenet-pytorch/Yolov5

时间:2023-11-12 13:44:06浏览次数:41  
标签:Yolov5 人脸识别 img pytorch 人脸 import path folder os

facenet-pytorch篇

import cv2
from PIL import Image
import os
from facenet_pytorch import MTCNN
from torchvision.transforms import ToPILImage

folder_path = r'E:\Code\Python\QQh5\sourceLib'
output_folder = r'testPersonFace'

# 如果输出文件夹不存在,则创建
os.makedirs(output_folder, exist_ok=True)

# 加载MTCNN模型用于人脸检测
mtcnn = MTCNN(keep_all=True)

# 转换Tensor到PIL Image
to_pil = ToPILImage()


# 人脸文件集合
persons_name = []

# 遍历文件夹中的图像
for file in os.listdir(folder_path):
    if file.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp')):
        img_path = os.path.join(folder_path, file)

        # 打开图像
        img_obj = Image.open(img_path)

        # 使用MTCNN检测人脸
        boxes, _ = mtcnn.detect(img_obj)

        # 检查是否检测到人脸
        if boxes is not None:
            persons_name.append(img_path)
            print(f'{img_path} 人脸√')


            # # 保存带有检测到人脸的图像(选择第一个人脸)
            # img_with_faces = mtcnn(img_obj)[0]
            #
            # # 转换为PIL Image对象
            # img_with_faces_pil = to_pil(img_with_faces)
            #
            # # 保存图像
            # img_with_faces_pil.save(os.path.join(output_folder, f'output_{file}'))
        else:
            print(f'{img_path} 人脸×')

yolov5 篇

YOLO地址:https://github.com/ultralytics/yolov5/blob/master/README.zh-CN.md

import torch
import cv2
from PIL import Image
import os

pt_path = r'E:\Code\Python\YoLov5\yolov5\yolov5s.pt'

# 模型
model = torch.hub.load(r"E:\Code\Python\QQh5\yolov5", 'custom', path=pt_path,
                       source='local')  # 或 yolov5n - yolov5x6, custom

# 图像
# img_path = r"E:\Code\Python\QQh5\sourceLib\test1.jpg"  # 或文件、路径、PIL、OpenCV、numpy、列表

folder_path = r'E:\Code\Python\QQh5\sourceLib'

# 使用列表推导式获取文件夹中的所有图片路径
image_paths = [os.path.join(folder_path, file) for file in os.listdir(folder_path) if file.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp'))]

# 打印所有图片路径
for img_path in image_paths:
    # print(img_path)



    img_obj = Image.open(img_path)

    # 推理
    results = model(img_obj)

    # 检查图像中是否存在人物
    for item in results.xyxy[0]:
        # 类别 0 对应 COCO 数据集中的人物类别,根据你的数据集可能需要调整这个
        if int(item[5]) == 0:
            # 检测到人物,保存图像
            print(f'{img_path} 人脸√')
            im = results.crop(save=False)[0]['im']
            a = cv2.imencode(".jpg", im)
            success, enc_img = cv2.imencode(".jpg", im)
            img_data = enc_img.tobytes()

            # 从原始路径获取文件名
            img_filename = img_path.split("\\")[-1]
            with open(f'testPersonFace/output_{img_filename}', 'wb') as f:
                f.write(img_data)
                # print(img_data)

            # # 显示图像
            # cv2.imshow('win', im)
            # cv2.waitKey(0)
            # cv2.destroyAllWindows()
        else:
            print(f'{img_path} 人脸×')

标签:Yolov5,人脸识别,img,pytorch,人脸,import,path,folder,os
From: https://www.cnblogs.com/code3/p/17827088.html

相关文章

  • pytorch实现感知机模型
    感知机是一种简单的二分类模型,通常用于线性分类任务。以下是使用PyTorch和Python实现感知机模型的示例代码,并附有注释。pythonimporttorchimporttorch.nnasnnimporttorch.optimasoptimimportmatplotlib.pyplotaspltimportnumpyasnp#生成一些随机的线性......
  • 深度解析NLP文本摘要技术:定义、应用与PyTorch实战
    在本文中,我们深入探讨了自然语言处理中的文本摘要技术,从其定义、发展历程,到其主要任务和各种类型的技术方法。文章详细解析了抽取式、生成式摘要,并为每种方法提供了PyTorch实现代码。最后,文章总结了摘要技术的意义和未来的挑战,强调了其在信息过载时代的重要性。关注TechLead,分......
  • 深度解析NLP文本摘要技术:定义、应用与PyTorch实战
    在本文中,我们深入探讨了自然语言处理中的文本摘要技术,从其定义、发展历程,到其主要任务和各种类型的技术方法。文章详细解析了抽取式、生成式摘要,并为每种方法提供了PyTorch实现代码。最后,文章总结了摘要技术的意义和未来的挑战,强调了其在信息过载时代的重要性。关注TechLead,分......
  • Pytorch学习笔记-(xiaotudui)
    常用的包importtorchimporttorchvisionfromtorchimportnnfromtorch.utils.dataimportDataLoaderfromtorch.nnimportConv2d,MaxPool2d,Flatten,Linear,Sequentialfromtorch.utils.tensorboardimportSummaryWriterPytorchpytorch安装准备环境安装Anco......
  • 怎么用一张照片做人脸识别,通过技术可以实现吗?讲讲原理
    AI是否能够拥有真正的“思想”是一个哲学和科技界长期争论的话题。目前的AI,包括高级的机器学习系统和神经网络,是基于人类设计的算法和数据来运作的,它们并不具备自我意识或者主观体验。AI系统可以执行复杂的任务,比如驾驶汽车、玩棋盘游戏、甚至进行艺术创作,但它们这样做是因为被编......
  • ai换脸可以突破人脸识别吗,有没有技术可以攻破
    人工智能(AI)换脸技术,通常被称为“Deepfakes”,可以生成几乎无法与真实面部区分开的面部图像或视频。这种技术的确有可能被用来欺骗人脸识别系统,至少是那些不具备足够先进检测机制的系统。以下是一些可能被用来攻破人脸识别系统的技术和方法:1.制作高质量的Deepfakes如果AI生成的换......
  • cuda 和pytorch安装
    Anaconda配置虚拟环境https://blog.csdn.net/qq_45073095/article/details/120603954安装pytorchwin10下pytorch-gpu安装以及CUDA详细安装过程......
  • Pytorch 实现 GAN 网络
    Pytorch实现GAN网络原理GAN的基本原理其实非常简单,假设我们有两个网络,G(Generator)和D(Discriminator)。它们的功能分别是:G是一个生成网络,它接收一个随机的噪声z,通过这个噪声生成伪造数据,记做G(z)。D是一个判别网络,判别数据是不是“真实的”。它的输入参数是x,输出记为D(x)......
  • 一文概览NLP句法分析:从理论到PyTorch实战解读
    关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。本文全面探讨了自然语言处理(NLP)中句法分析的理论与实践。从句法和语法的......
  • Pytorch环境配置(基于pycharm集成开发环境)
    pycharm可以在官网(https://www.jetbrains.com/pycharm/)直接下载,有两个版本,社区版免费,足够深度学习使用。专业版收费,但可以使用学生邮箱注册然后免费使用。1.下载、安装anaconda到以下镜像下载对应版本的anaconda:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/note:这个版......