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

网站进入沙盒的表现合肥seo网站推广外包

网站进入沙盒的表现,合肥seo网站推广外包,网站建设用什么代码,痞子wordpress模板本篇测评由优秀测评者“小火苗”提供。 本文将介绍基于米尔电子MYD-LT527开发板#xff08;米尔基于全志 T527开发板#xff09;的FacenetPytorch人脸识别方案测试。 一、facenet_pytorch算法实现人脸识别 深度神经网络 1.简介 Facenet-PyTorch 是一个基于 PyTorch 框架实…本篇测评由优秀测评者“小火苗”提供。 本文将介绍基于米尔电子MYD-LT527开发板米尔基于全志 T527开发板的FacenetPytorch人脸识别方案测试。 一、facenet_pytorch算法实现人脸识别 深度神经网络 1.简介 Facenet-PyTorch 是一个基于 PyTorch 框架实现的人脸识别库。它提供了 FaceNet 模型的 PyTorch 实现可以用于训练自己的人脸识别模型。FaceNet 是由 Google 研究人员提出的一种深度学习模型专门用于人脸识别任务。 在利用PyTorch神经网络算法进行人脸图像对比的实验设置中我们专注于对比环节而不涉及实际项目的完整实现细节。但55555贴近实际应用我们可以构想以下流程 1捕捉新人脸图像首先我们使用摄像头或其他图像采集设备捕捉一张新的人脸照片。 2加载存储的人脸图像接着从数据库中加载所有已存储的人脸图像。这些图像是之前采集并存储的用于与新捕捉到的人脸照片进行对比。 3构建神经网络模型为了实现对比功能我们需要一个预先训练好或自定义的神经网络模型。这个模型能够提取人脸图像中的关键特征使得相似的图像在特征空间中具有相近的表示。 4特征提取利用神经网络模型对新捕捉到的人脸照片和存储的每一张人脸图像进行特征提取。这些特征向量将用于后续的对比计算。 5计算相似度采用合适的相似度度量方法如余弦相似度、欧氏距离等计算新照片特征向量与存储图像特征向量之间的相似度。 6确定匹配图像根据相似度计算结果找到与新照片相似度最高的存储图像即认为这两张图像匹配成功。 7输出匹配结果最后输出匹配成功的图像信息或相关标识以完成人脸对比的实验任务。 2.核心组件 MTCNNMulti-task Cascaded Convolutional Networks即多任务级联卷积网络专门设计用于同时进行人脸检测和对齐。它在处理速度和准确性上都有出色的表现是当前人脸检测领域的主流算法之一。 FaceNet由Google研究人员提出的一种深度学习模型专门用于人脸识别任务。FaceNet通过将人脸图像映射到一个高维空间使得同一个人的不同图像在这个空间中的距离尽可能小而不同人的图像距离尽可能大。这种嵌入表示可以直接用于人脸验证、识别和聚类。 3.功能 支持人脸检测使用MTCNN算法进行人脸检测能够准确识别出图像中的人脸位置。 支持人脸识别使用FaceNet算法进行人脸识别能够提取人脸特征并进行相似度计算实现人脸验证和识别功能。 二、安装facenet_pytorch库 1.更新系统 更新ubuntu系统详情查看米尔提供的资料文件 2.更新系统软件 apt-get update 3.安装git等支持软件 sudo apt-get install -y python3-dev python3-pip libopenblas-dev libssl-dev libffi-dev git cmake 4.安装Pytorch支持工具 # 克隆 PyTorch 源代码 git clone --recursive https://github.com/pytorch/pytorch # 进入 PyTorch 目录 cd pytorch # 安装 PyTorch (需要根据你的需求选择 CUDA 版本如果不需要 GPU 支持则不需要 --cuda 参数) pip3 install --no-cache-dir torch -f https://download.pytorch.org/whl/torch_stable.html # 测试 PyTorch 安装 python3 -c import torch; print(torch.__version__) 5.安装facenet_pytorch pip3 install facenet_pytorch 三、CSDN参考案例 1.代码实现 ############face_demo.py############################# import cv2 import torch from facenet_pytorch import MTCNN, InceptionResnetV1 # 获得人脸特征向量 def load_known_faces(dstImgPath, mtcnn, resnet): aligned  [] knownImg  cv2.imread(dstImgPath) # 读取图片 face  mtcnn(knownImg) # 使用mtcnn检测人脸返回人脸数组 if face is not None: aligned.append(face[0]) aligned  torch.stack(aligned).to(device) with torch.no_grad(): known_faces_emb  resnet(aligned).detach().cpu() # 使用ResNet模型获取人脸对应的特征向量 print(n人脸对应的特征向量为n, known_faces_emb) return known_faces_emb, knownImg # 计算人脸特征向量间的欧氏距离设置阈值判断是否为同一张人脸 def match_faces(faces_emb, known_faces_emb, threshold): isExistDst  False distance  (known_faces_emb[0] - faces_emb[0]).norm().item() print(n两张人脸的欧式距离为%.2f % distance) if (distance  threshold): isExistDst  True return isExistDst if __name__  __main__: # help(MTCNN) # help(InceptionResnetV1) # 获取设备 device  torch.device(cuda:0 if torch.cuda.is_available() else cpu) # mtcnn模型加载设置网络参数进行人脸检测 mtcnn  MTCNN(min_face_size12, thresholds[0.2, 0.2, 0.3], keep_allTrue, devicedevice) # InceptionResnetV1模型加载用于获取人脸特征向量 resnet  InceptionResnetV1(pretrainedvggface2).eval().to(device) MatchThreshold  0.8 # 人脸特征向量匹配阈值设置 known_faces_emb, _  load_known_faces(yz.jpg, mtcnn, resnet) # 已知人物图 faces_emb, img  load_known_faces(yz1.jpg, mtcnn, resnet) # 待检测人物图 isExistDst  match_faces(faces_emb, known_faces_emb, MatchThreshold) # 人脸匹配 print(设置的人脸特征向量匹配阈值为, MatchThreshold) if isExistDst: boxes, prob, landmarks  mtcnn.detect(img, landmarksTrue) print(由于欧氏距离小于匹配阈值故匹配) else: print(由于欧氏距离大于匹配阈值故不匹配) 此代码是使用训练后的模型程序进行使用在程序中需要标明人脸识别对比的图像。 2.实践过程 第一次运行时系统需要下载预训练的vggface模型下载过程较长后面就不需要在下载了运行会很快。如图所示 3.程序运行异常被终止 运行程序提示killed系统杀死了本程序的运行经过多方面的测试最终发现是识别的图片过大使得程序对内存消耗过大导致。后将图片缩小可以正常运行了。 以下是对比图像和对比结果。 四、gitHub开源代码 1.首先下载代码文件 代码库中大致的介绍了facenet算法的训练步骤等。 2.代码实现 以下是facenet的python代码注意需要更改下面的一条程序cuda False,因为t527使用的是cpu芯片到时自带gpu但是cuda用不了因为cuda是英伟达退出的一种计算机架构。 import matplotlib.pyplot as plt import numpy as np import torchimport torch.backends.cudnn as cudnn from nets.facenet import Facenet as facenet from utils.utils import preprocess_input, resize_image, show_config #--------------------------------------------# # 使用自己训练好的模型预测需要修改2个参数 # model_path和backbone需要修改 #--------------------------------------------# class Facenet(object): _defaults  { #--------------------------------------------------------------------------# # 使用自己训练好的模型进行预测要修改model_path指向logs文件夹下的权值文件 # 训练好后logs文件夹下存在多个权值文件选择验证集损失较低的即可。 # 验证集损失较低不代表准确度较高仅代表该权值在验证集上泛化性能较好。 #--------------------------------------------------------------------------# model_path : model_data/facenet_mobilenet.pth, #--------------------------------------------------------------------------# # 输入图片的大小。 #--------------------------------------------------------------------------# input_shape : [160, 160, 3], #--------------------------------------------------------------------------# # 所使用到的主干特征提取网络 #--------------------------------------------------------------------------# backbone : mobilenet, #-------------------------------------------# # 是否进行不失真的resize #-------------------------------------------# letterbox_image : True, #-------------------------------------------# # 是否使用Cuda# 没有GPU可以设置成False #-------------------------------------------# cuda : False, } classmethod def get_defaults(cls, n): if n in cls._defaults: return cls._defaults[n] else: return Unrecognized attribute name   n   #---------------------------------------------------# # 初始化Facenet #---------------------------------------------------# def __init__(self, **kwargs): self.__dict__.update(self._defaults) for name, value in kwargs.items(): setattr(self, name, value) self.generate() show_config(**self._defaults) def generate(self): #---------------------------------------------------# # 载入模型与权值 #---------------------------------------------------# print(Loading weights into state dict...) device  torch.device(cuda if torch.cuda.is_available() else cpu) self.net  facenet(backboneself.backbone, modepredict).eval() self.net.load_state_dict(torch.load(self.model_path, map_locationdevice), strictFalse) print({} model loaded..format(self.model_path)) if self.cuda: self.net  torch.nn.DataParallel(self.net) cudnn.benchmark  True self.net  self.net.cuda() #---------------------------------------------------# # 检测图片 #---------------------------------------------------# def detect_image(self, image_1, image_2): #---------------------------------------------------# # 图片预处理归一化 #---------------------------------------------------# with torch.no_grad(): image_1  resize_image(image_1, [self.input_shape[1], self.input_shape[0]], letterbox_imageself.letterbox_image) image_2  resize_image(image_2, [self.input_shape[1], self.input_shape[0]], letterbox_imageself.letterbox_image) photo_1  torch.from_numpy(np.expand_dims(np.transpose(preprocess_input(np.array(image_1, np.float32)), (2, 0, 1)), 0)) photo_2  torch.from_numpy(np.expand_dims(np.transpose(preprocess_input(np.array(image_2, np.float32)), (2, 0, 1)), 0)) if self.cuda: photo_1  photo_1.cuda() photo_2  photo_2.cuda() #---------------------------------------------------# # 图片传入网络进行预测 #---------------------------------------------------# output1  self.net(photo_1).cpu().numpy() output2  self.net(photo_2).cpu().numpy() #---------------------------------------------------# # 计算二者之间的距离 #---------------------------------------------------# l1  np.linalg.norm(output1 - output2, axis1) plt.subplot(1, 2, 1) plt.imshow(np.array(image_1)) plt.subplot(1, 2, 2) plt.imshow(np.array(image_2)) plt.text(-12, -12, Distance:%.3f % l1, hacenter, va bottom,fontsize11) plt.show() return l1 3.代码实现 此代码调用的签名的代码但其可以直接的去调用图片进行人脸识别。 from PIL import Image from facenet import Facenet if __name__  __main__: model  Facenet() while True: image_1  input(Input image_1 filename:) try: image_1  Image.open(image_1) except: print(Image_1 Open Error! Try again!) continue image_2  input(Input image_2 filename:) try: image_2  Image.open(image_2) except: print(Image_2 Open Error! Try again!) continue probability  model.detect_image(image_1,image_2) print(probability) 4.程序运行 运行程序后首先显示的是程序的配置信息然后可以输入图像对比检测的内容。以下是图像识别的效果和对比的准确率。 五、参考文献 CSDN博客 https://blog.csdn.net/weixin_45939929/article/details/124789487?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-124789487-blog-142987324.235^v43^pc_blog_bottom_relevance_base6spm1001.2101.3001.4242.2utm_relevant_index4 官方源码来源 https://gitcode.com/gh_mirrors/fac/facenet-pytorch/overview *部分图片来源于网络如有版权问题请联系删除
http://www.laogonggong.com/news/132832.html

相关文章:

  • html5 wap网站做网站四百全包
  • 做卡贴的网站江门门户网站
  • 网站怎么制作教程手机如何自动备份wordpress
  • 音乐网站建设南京微信网站开发
  • 网页设计创建网站的基本流程文化传媒公司简介模板
  • 俄罗斯免费网站推广长沙传统网络营销策略
  • 如何用公众号做网站服务器网站网站专用
  • 拖曳式网站建设淘宝产品页面设计
  • 网站开发团队人数构成做宠物食品的网站
  • 民族服装的网站建设店面门面设计
  • 保定网站建设的过程网站制作背景图片
  • 北京建设项目管理有限公司网站百度推广怎么收费标准案例
  • 广州建设网站的公司如何在建设厅网站搜索企业
  • 我国档案网站建设沈阳网络优化公司哪家好
  • 深圳罗湖的网站建设备案网站首页地址
  • 广州网站推广软件当今做啥网站致富
  • 建设网站五个步骤内蒙古建筑培训网官网
  • 网站加速 wordpress网站实现留言功能
  • 做海报创客贴同类网站wordpress图片本地化
  • 阳江建设网站wordpress图片幻灯片
  • 如何建立一个免费的网站wordpress 新闻插件
  • jsp项目个人网站开发网站排名快速提升
  • 建站工具搭建网站兰州网站的建设
  • 美食网站开发意义wordpress用户密码加密算法
  • 三明住房和城乡建设部网站唐山中小企业网站制作
  • 图像处理与网站开发优化系统设置
  • 海阳网网站wordpress去除目录
  • 湘潭市建设工程质量监督站网站广东省建设厅网站查询
  • 富阳网站设计wordpress首页调用图片
  • 网站建设费经营范围个人网站做导购要什么经营许可