您好!欢迎来到爱源码

爱源码

热门搜索: 抖音快手短视频下载   

人脸检测——视网膜脸 《电影网站源码》

  • 时间:2022-09-02 09:02 编辑: 来源: 阅读:294
  • 扫一扫,手机访问
摘要:人脸检测——视网膜脸 《电影网站源码》
截图2020-10-13,5.24.57.pngretinaface人脸检测算法甜品最近一直在了解人脸检测的算法,所以也在尝试学习多人脸检测框架。 所以我把它拿出来给你参考。Retinaface类似于常见的目标检测算法。图像上预设了少量的先验帧,这些先验帧将分布在整个图像中。网络的内部结构会判断这些先验帧是否可以包含人脸,同时调整位置,给每个先验帧一个置信度。 在Retinaface的先验框中,不仅要获取人脸位置,还要获取每张人脸的五个关键点。接下来,当我们执行Retinaface时,我们实际上提前在图片上设置了prior框。网络的预测结果将决定先验盒是否能包含人脸,并调整先验盒以获得预测盒和人脸的五个关键点。 骨干特征提取网络mobileNet和Resnet连续提取骨干网络中的特征(例如mobileNetv1),特征提取过程是将长度和宽度压缩到深度(通道扩展)(下采样)的过程。MobileNet网络由google团队于2017年提出,专注于手机和嵌入式设施中的轻量级CNN网络,在大幅降低模型参数和计算量的情况下,其精度仅略有下降。 增强特征提取网络FPN和SHHFPN的构建是为了生成用于融合的特征图。retinanet_001.pngSSH加上上一层的有效特征层的思路很简单。采用三个并行结构,5×5和7×7卷积的效果被3×3卷积的叠加替代。Retinanet_002.pngretina head在骨干网的输出中输出不同大小的网格,用于检测不同大小的目标。先前框的默认数量是2。这些先验盒用于检测目标,然后通过调整得到目标的边界盒。 人脸分类用于检测在前一个盒子中是否有人脸。 也就是说,判断一个先验框是否能包含目标,使用1×1的卷积,将SSH通道数调整为num _ anchors×2,用来表示每个先验框包含人脸的概率。在这里,我觉得有必要解释一下2,它通常只是用一个概率来表示一个先验框有脸的概率,但是在这里,用两个值来表示一个先验框中能有脸存在的概率。 其实两个值中,如果第一个值比较大,说明有脸,那么第二个值比较大,说明没有脸。人脸框回归用于调整先验框的中心、宽度和高度,四个参数用于调整先验框。 此时,我们可以使用1×1卷积将SSH通道的数量调整为num _ anchors×4,用于表示每个先前帧的调整参数。人脸标志点回归对先验帧进行调整得到人脸关键点,每个人脸关键点需要两个调整参数,所以总共有五个人脸关键点。 此时,通过使用1×1卷积,SSH通道被调整为NUM _ anchors (NUM _ anchors X5X2),其指示每个先前帧中每个面部关键点的调整。5是脸部的五个关键点,这里的2表示调整脸部中心点的参数。 FPN足球俱乐部。Module): def __init__(self,in_channels_list,out_channels): super(FPN,self)。_ _ init _ _()leaky = 0 if(out _ channels & lt;= 64): leaky = 0.1 #对得到的3个有效特征层的通道号进行1x1卷积调整,输出通道号为64self。Output 1 = conv _ bn1x 1(in _ channels _ list[0],out_channels,stride = 1,leaky = leaky)self . Output 2 = conv _ bn1x 1(in _ channels _ list[1],out_channels,stride = 1,leaky = leaky)self . Output 3 = conv _ bn1x 1(in _ channels _ list[2],out_channels,stride = 1,leaky = leaky)self . merge 2 = conv _ bn(out _ channels输出2(输入[1])输出3 =自身。output3 (input [2]) #对最小特征层进行上采样得到up3 up3 = F.interpolate(output3,size=[output2.size(2),output2.size(3)],Mode="nearest") #然后通过上采用结果将最小特征层与中间有效特征层相加output2 = output2+up3 #进行64通道卷积进行特征积分output2 = self.merge2(output2) #这一步类似于上面的up2 = f.interpolate (outputModule): def __init__(self,in_channel,out_channel): super(SSH,self)。_ _ init _ _()assert out _ channel % 4 = = 0 leaky = 0 if(out _ channel & lt;= 64):leaky = 0.1 self . conv3x 3 = conv _ bn _ no _ relu(in _ channel,out_channel//2,Stride=1) #用2个3×3的卷积代替5×5的卷积。Conv5x5 _ 1 = conv _ bn (in _ channel,out_channel//4,stride = 1,leaky = leaky)self . conv5x 5 _ 2 = conv _ bn _ no _ relu(out _ channel//4,out _ channel//4,Stride=1) #用三个3×3的卷积代替7×7 self的卷积。conv7x 7 _ 2 = conv _ bn(out _ channel//4,out _ channel//4,stride = 1,leaky = leaky)self . conv7x 7 _ 3 = conv _ bn _ no _ relu(out _ channel//4,out _ channel//4,stride=1) def forward(self,input):conv3x 3 = self . conv3x 3(input)conv5x 5 _ 1 = self . conv5x 5 _ 1(input)conv5x 5 = self . conv5x 5 _ 2(conv5x 5 _ 1)conv7x 7 _ 2 = self .conv7x 7 _ 2(conv5x 5 _ 1)conv7x 7 = self。conv7x 7 _ 3(conv7x 7 _ 2)# stacked out = torch . cat([conv3x 3,conv5X5,Conv7x7],dim = 1)out = f . relu(out)return out prior框调整深度方向可分离卷积。深度可分卷积的优点是可以减少参数个数,从而降低运算成本。 它经常出现在少量的轻量级网络结构中(这些网络结构适用于移动设施或嵌入式设施)。深度可分卷积由DW(深度方向)和PW(点方向)组成。这里我们通过与普通卷积_filter.jpg网络的对比来说明。深度可分卷积如何减少卷积核通道数与输入通道数一致。输出通道的数量与卷积核DW_PW.jpegDW(深度方向Conv)的数量一致。我们先来看图中的DW部分。在本节中,每个卷积核通道的个数是1,每个卷积校验都要用一个输入通道来计算,所以可以想象输出通道的个数与卷积核的个数和输入通道的个数是一致的。 简单总结一下,有以下两点:卷积核通道数为1,输入通道数等于卷积核数等于输出通道数PW(逐点Conv)PW)。PW卷积核类似于之前的普通卷积核,只是PW卷积核大小为1,卷积核深度与输入通道号相同,卷积核号与输出通道号相同。正常卷积深度可分卷积表示输入矩阵大小,卷积核大小表示输入通道数和输出通道数。添加两个超参数和


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【域名/主机/服务器|】qq邮箱提醒在哪里打开(2024-06-04 18:58)
【技术支持|常见问题】1556原创ng8文章搜索页面不齐(2024-05-01 14:43)
【技术支持|常见问题】1502企业站群-多域名跳转-多模板切换(2024-04-09 12:19)
【技术支持|常见问题】1126完美滑屏版视频只能显示10个(2024-03-29 13:37)
【技术支持|常见问题】响应式自适应代码(2024-03-24 14:23)
【技术支持|常见问题】1126完美滑屏版百度未授权使用地图api怎么办(2024-03-15 07:21)
【技术支持|常见问题】如何集成阿里通信短信接口(2024-02-19 21:48)
【技术支持|常见问题】算命网微信支付宝产品名称年份在哪修改?风水姻缘合婚配对_公司起名占卜八字算命算财运查吉凶源码(2024-01-07 12:27)
【域名/主机/服务器|】帝国CMS安装(2023-08-20 11:31)
【技术支持|常见问题】通过HTTPs测试Mozilla DNS {免费源码}(2022-11-04 10:37)

联系我们
Q Q:375457086
Q Q:526665408
电话:0755-84666665
微信:15999668636
联系客服
企业客服1 企业客服2 联系客服
86-755-84666665
手机版
手机版
扫一扫进手机版
返回顶部