科学家已经发展了边缘面这是一种优化的新型面部识别模型,可在处理能力和存储有限的设备上使用。这种轻巧的面部识别网络的灵感来自EDGENEXT的混合体系结构,该网络结合了卷积神经网络(CNN)和变形金刚的优势,以执行准确的面部识别,同时保存计算资源。
典型的面部识别系统依靠深度神经网络,尽管它们准确性,但仍需要广泛的记忆和处理能力,从而使它们不切实际地用于边缘设备。为了应对这些挑战,已经朝着设计更有效的神经网络以进行视觉相关的任务了,旨在平衡准确性与可用的计算资源。
但是,随着引入更新的模型视觉变压器(VIT),该技术通过有效捕获长期互动来提高面部识别的有前途的方法。题为“边缘:边缘设备的有效面部识别模型”的研究论文结合了诸如低级线性模块(Loralin)之类的技术,以通过最大程度地减少对大量机上内存的需求来在边缘设备上实现高性能。
引入边缘面识别模型
研究人员扩大了现有的EDGENEXT为下一代边缘设备上的面部识别而定制的建筑。进行了一些修改,以使Edgenext体系结构降低参数和计算成本(FLOP),以使模型更加高效和轻巧。
该团队之所以选择EDGENEXT,是因为它在图像识别精度中优于其他流行模型,例如MobileVit和EdgeFormer。 EDGENEXT还通过使用“转置查询和关键注意特征图”来解决边缘设备的变压器成本,从而跨通道而不是空间维度实现了有效的计算。
然而,尽管Edgenext的效率,其线性层仍然对计算成本和参数大小都有显着贡献。作者建议用新开发的洛拉林层代替传统的线性层,这些层使用小矩阵来减少参数和计算的数量。
Pytorch类实现低级线性层(Loralin)
班级洛拉林(nn.模块):
防御__init __(self,in_feat,out_feat,伽马,偏见):
极好的(Loralin,self).__ Init __()
等级=最大限度(2,int((int)(最小(in_feat,out_feat) * gamma))
self.lin1 = nn.linear(in_feat,等级,bias = false)
self.lin2 = nn.linear(等级,out_feat,bias = bias)
防御向前(自我,输入):
x = self.lin1(输入)
x = self.lin2(x)
返回x
用于实现洛拉林的Pytorch类旨在通过将传统的致密层分解为两个较低级别的矩阵来创建更具参数的线性转换。这种方法降低了计算成本和所需的参数数量,使其适用于边缘设备。
该代码通过获取四个参数,即输入功能的数量来创建洛拉林类的实例(in_feat),输出功能的数量(out_feat),控制低级矩阵等级的超参数(伽玛)和布尔国旗(偏见)。下一行计算层中使用的低级矩阵的等级。它确保排名至少为两个,并将其与由伽玛超参数控制的输入特征,输出特征之间的较小维度进行比较。
代码计算两个线性层,第一个线性层(in_feat)输入功能((秩)输出功能,((偏见= false)没有偏差术语,而第二个线性层(秩)输入功能((out_feat)输出功能,并指定(偏见) 行为。
当在神经网络中使用层时,正向通行证执行实际计算。该代码将第一个线性层应用于输入数据,将第二个线性层应用于第一层的输出,以返回洛拉林层的最终输出。
基准的边缘表面性能和准确性
与较大且更复杂的模型相比,新开发的Edgeface面部识别模型即使在LFW,IJB-B和IJB-C等基准数据集上达到了最新的精度。根据记录,该模型仅需要177万参数,使其非常紧凑,适合边缘设备。
“我们的实验表明,与SOTA轻量级模型相比,我们的模型非常有效,并且在我们评估中使用的七个基准测试数据集中,EdgeFace在每个模型中具有2-5 M参数和<2M参数的模型中,EdgeFace实现了四个不同的数据集的最佳识别性能。
该代码将公开可用,允许采用者测试和验证模型性能。