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

部门门户网站建设请示怎么创建公众号步骤

部门门户网站建设请示,怎么创建公众号步骤,无锡网站怎么推广效果好,网站建设和优化文章目录 0. 前言1. 级联神经网络介绍2. MTCNN介绍2.1 MTCNN提出背景2.2 MTCNN结构 3. MTCNN PyTorch实战3.1 facenet_pytorch库中的MTCNN3.2 识别图像数据3.3 人脸识别3.4 关键点定位 0. 前言 按照国际惯例#xff0c;首先声明#xff1a;本文只是我自己学习的理解#xff… 文章目录 0. 前言1. 级联神经网络介绍2. MTCNN介绍2.1 MTCNN提出背景2.2 MTCNN结构 3. MTCNN PyTorch实战3.1 facenet_pytorch库中的MTCNN3.2 识别图像数据3.3 人脸识别3.4 关键点定位 0. 前言 按照国际惯例首先声明本文只是我自己学习的理解虽然参考了他人的宝贵见解及成果但是内容可能存在不准确的地方。如果发现文中错误希望批评指正共同进步。 本文详细介绍MTCNN——多任务级联卷积神经网络的结构并通过PyTorch实例说明MTCNN在人脸识别上的应用。 MTCNN的全称是Multi-Task Cascaded Convolutional Networks它的缩写确实是MTCNN不是MTCCN. 1. 级联神经网络介绍 级联cascaded神经网络是一种人工神经网络的架构设计它指的是多个神经网络层按照特定的方式连接起来形成一个逐层处理信息的多层结构。在级联神经网络中前一层次网络的输出作为后一层次网络的输入这种结构允许在网络在深度方向上对复杂性和抽象层数进行增加。 级联网络的重要特点是其动态构建特性即可以从一个小规模的基本网络开始并随着训练过程自动添加更多的隐藏单元或子网络逐渐扩展成一个更深层次的结构然后通过只针对新增部分数据进行训练来更新权重即增量式学习Incremental Learning。这与传统的——构建完整模型后统一进行训练更新权重的思路非常不同。 使用传统的思路如果发现我们的模型并不适用于待解决的任务导致要调整模型结构时通常会意味着之前的训练模型的工作全部白费了。 总结起来级联神经网络具有以下优点 自适应结构级联网络设计允许根据训练数据或学习过程动态调整网络结构比如自动增加新的层或神经元以适应更复杂的模式识别任务。 学习效率提升可以通过增量学习或局部训练来加快学习速度只针对新增加的部分进行训练优化。在某些情况下级联网络可以采用非传统的权重更新机制不需要在整个网络上执行全局误差反向传播算法。 鲁棒性和容错性分层结构有助于提高系统的鲁棒性单个层次的错误可能在后续层次中得到修正。 2. MTCNN介绍 2.1 MTCNN提出背景 MTCNN是Kaipeng Zhang等人在论文——Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks中提出的其宗旨是通过多任务级联CNN解决两个问题人脸检测找出图像中人脸的位置和边界框和人脸对齐精确定位面部特征点。 2.2 MTCNN结构 MTCNN的构建思路可以简单分为下面几个步骤 准备步骤对图像进行缩放建立图像金字塔第一步Proposal-Net快速选出若干候选框为下一步准备第二步Refine-Net对第一步的众多候选框进行精选留下置信度大的候选框第三步Output-Net输出最终bounding box、人脸关键特征定位和置信度。 详细来说P-Net、R-Net和O-Net的结构如下 通过Netron可以看到facenet_pytorch库中的MTCNN的结构及详细参数如下 P-Net (Proposal Network) 输入是原始图像。首先通过一个卷积层(Conv2d)将3通道的输入图像转换为10通道特征图使用3x3的卷积核(kernel_size(3, 3))。紧接着使用PReLU激活函数(prelu1)进行非线性变换。使用最大池化层(MaxPool2d)下采样特征图(pool1)步长为2。再经过两个卷积层(Conv2d)提取更深层次的特征并分别用PReLU激活函数(prelu2和prelu3)进行非线性处理。最后通过两个1x1卷积层(Conv2d)生成两个输出一个是softmax4_1用于预测每个像素是否为人脸的概率分布另一个是conv4_2用于回归bounding box的位置信息。 R-Net (Refine Network) 输入是P-Net的候选区域。类似于P-NetR-Net也包含多个卷积层与激活函数以及池化层进行特征提取和下采样。在最后通过两个全连接层(Dense或Linear)生成两个输出softmax5_1用于判断候选框内是否为人脸并给出置信度dense5_2用于进一步细化人脸框的位置。 O-Net (Output Network) 输入同样是前一级网络(R-Net)筛选后的候选区域。O-Net具有更多的卷积层以获取更精细的特征表达同样在最后阶段通过三个全连接层生成三个输出softmax6_1用于人脸分类dense6_2用于人脸框回归精修dense6_3用于估计关键点(如眼睛、嘴巴等)的位置。 整个MTCNN模型通过逐步筛选和优化候选区域在不同尺度上定位和识别图像中的人脸从而实现高效准确的人脸检测。 3. MTCNN PyTorch实战 3.1 facenet_pytorch库中的MTCNN facenet_pytorch库中的MTCNN类是一个用于人脸检测的多任务级联卷积神经网络模型实现。直接使用MTCNN类的最大好处就是该模型已经训练好可以拿来即用其初始化时接受多个参数以下是对这些参数的详细解释 image_size默认值160输出图像的大小像素图像会调整为正方形。 margin默认值0在最终图像上添加到边界框的边距以像素为单位。需要注意的是与davidsandberg/facenet库中的应用方式稍有不同该库在调整原始图像大小之前就对原始图像应用了边距导致边距与原始图像大小相关这是davidsandberg/facenet的一个bug。 min_face_size默认值20要搜索的人脸的最小尺寸。 thresholds默认值[0.6, 0.7, 0.7]MTCNN人脸检测阈值列表分别对应P-Net、R-Net和O-Net三个阶段的阈值。 factor默认值0.709用于创建人脸大小缩放金字塔的比例因子。 post_process默认值True是否在返回前对图像张量进行后处理。 select_largest默认值True如果检测到多个人脸是否选择面积最大的一个返回。若设为False则选择概率最高的人脸返回。 selection_method默认值None指定使用哪种启发式方法进行选择如果设置此参数将覆盖select_largest probability选择概率最高的。largest选择面积最大的框。largest_over_threshold选择超过一定概率的最大框。center_weighted_size基于框大小减去离图像中心加权距离平方后的结果进行选择。 keep_all默认值False如果设为True则返回所有检测到的人脸并按照select_largest参数设定的顺序排列。如果指定了保存路径第一张人脸将被保存至该路径其余人脸将依次保存为save_path1, save_path2等。 device默认值None运行神经网络前向传递时所使用的设备。图像张量和模型会在前向传递前复制到这个设备上。 3.2 识别图像数据 这块没有特殊要求随便去网上下载以下是我自己的识别对象数据 3.3 人脸识别 代码 from facenet_pytorch import MTCNN import torch from torch.utils.data import DataLoader from torchvision import datasets import osdevice torch.device(cuda:0 if torch.cuda.is_available() else cpu) print(the device is:{}.format(device))model MTCNN(image_size160, margin0, min_face_size10,thresholds[0.7,0.7,0.7],factor0.7, post_processTrue, devicedevice) path os.path.abspath(face_img) #在face_img文件夹下面还要再加一个class_folder文件夹 dataset datasets.ImageFolder(path) imgs_list list(sorted(os.listdir(os.path.join(path,class_folder))))def collate_fn(x):return x[0]loader DataLoader(dataset, collate_fn collate_fn, num_workers0) index 0 #detected_faces []for pic,_ in loader:aligned, confidence model(pic , return_probTrue)if confidence is not None:print(Confidence of {} containing human face is {:.8f}.format(imgs_list[index], confidence))detected_faces.append(aligned)else:print(No human face detected in {}.format(imgs_list[index]))index 1# 以下是人脸对齐的还原实现 #face_numpy (detected_faces[0] 1) * 127.5 # 由于是 [-1, 1] 范围将其映射到 [0, 255] #face_numpy face_numpy.numpy().astype(np.uint8) #face_image Image.fromarray(face_numpy.transpose(1, 2, 0)) # 将 Numpy 数组转为 PIL 图像格式并注意调整通道顺序为 (H, W, C)#plt.imshow(face_image) #plt.show()输出 Confidence of art.png containing human face is 0.99512947 No human face detected in ironman.png Confidence of man.png containing human face is 0.99643928 No human face detected in ogre.png Confidence of thanos.png containing human face is 0.96726525 Confidence of woman.png containing human face is 0.99991846可见MTCNN不认为钢铁侠和食人魔魔法师算“人脸”。MTCNN的输出有2部分 对齐后的人脸张量其范围是[-1, 1]可以将其线性还原到[0, 255]并输出对其后的人脸例如下图包含人脸的置信度即上面的0.99512947等置信度数值。 3.4 关键点定位 也可以使用mtcnn.detect()得到人脸得关键点眼睛、鼻子、嘴角定位代码如下 from facenet_pytorch import MTCNN import torch from torch.utils.data import DataLoader from torchvision import datasets import os import numpy import matplotlib import matplotlib.pyplot as pltdevice torch.device(cuda:0 if torch.cuda.is_available() else cpu) print(the device is:{}.format(device))model MTCNN(image_size160, margin0, min_face_size10,thresholds[0.7,0.7,0.7],factor0.7, post_processTrue, devicedevice)path os.path.abspath(face_img) #在face_img文件夹下面还要再加一个class_folder文件夹 dataset datasets.ImageFolder(path) imgs_list list(sorted(os.listdir(os.path.join(path,class_folder))))def collate_fn(x):return x[0]loader DataLoader(dataset, collate_fn collate_fn, num_workers0) index 0 detected_faces []for pic,_ in loader:aligned, confidence model(pic , return_probTrue)if confidence is not None:print(Confidence of {} containing human face is {:.8f}.format(imgs_list[index], confidence))detected_faces.append(aligned)boxes, probs, points model.detect(pic, landmarksTrue)points points.squeeze(0)for x,y in points:plt.scatter(x,y,s10,cr)plt.imshow(pic)plt.savefig({}_aligned.jpg.format(imgs_list[index]))plt.close()else:print(No human face detected in {}.format(imgs_list[index]))index 1 最终保存的图像为: 可以看出MTCNN的关键点定位也是很准确的。上面代码的boxs即为人脸边界框这里不再画出效果。
http://www.zqtcl.cn/news/560138/

相关文章:

  • 北京正规网站建设比较wordpress cookies因预料之外的输出被阻止
  • 自助微信网站设计什么叫一级域名二级域名
  • 上海 顶尖 网站设计wordpress多站点不同主题
  • asp c 网站开发wordpress 动静分离
  • 服装网站建设规定wordpress禁止自动升级
  • 如何在网站上做社交的链接毕设给学校做网站
  • 网页设计与网站建设指标点您身边的网站建设顾问
  • 个人网站的制作广州网站优化招聘
  • 做网站产生的流量费怎么算软件开发前景和收入
  • 网站空间 .de单页型网站
  • 网站建设com品牌建设的作用
  • 优质作文网站柳州做网站去哪家公司好
  • 呼和浩特网站建设价格网站建设服务器
  • 做的比较好的电商网站西安有那些做网站的公司好
  • 哪个网站可以做英语语法题智慧云建筑信息平台
  • 网站怎么做百度才会收录金乡县网站开发
  • 深圳移动网站建站网站如何做播放线路
  • 深圳网站建设q.479185700惠哪个网站可以免费设计房子
  • 迁西网站开发网站建设技术网站建
  • 网站建设与管理课程报告能够做外贸的网站有哪些
  • 浅析社区网站的建设如何建立企业网站
  • 网站建设尺寸像素是多少广州商城型网站建设
  • 重庆自助建站模板简述网络营销的特点
  • 企业网站托管一个月多少钱网页设计规范2018
  • 网站建设费用摊销会计分录合肥网站建设哪里好
  • 郑州市建设工程造价信息网站关于工程项目建设的网站
  • 网站做淘宝客收入咋样景区门户网站建设方案
  • 遵义做网站推广西安都有哪些公司
  • 万网建网站流程产品展示网站模板php
  • 新津县建设局网站网站做301