16. CryptoFace - 密态推理入门 - 《CryptoFace: End-to-End Encrypted Face Recognition》
和现有方法的区别主要流程离线阶段:客户端生成公钥并对注册图像加密,然后连同相应的身份一起发给服务器提取加密特征。在线阶段:客户端对验证图像进行加密,然后连同相应的身份一起发给服务器提取加密特征。服务器计算匹配函数并将加密后的匹配结果返回给客户端解密。
·
前言
本文介绍 Wei Ao 和 Vishnu Naresh Boddeti 的《CryptoFace: End-to-End Encrypted Face Recognition》。恕我是土狗🐶,我并没有看出这篇文章在算法层面的创新性,文章的部分语言描述也不是很严谨。作为一个强迫症,看都看了,还是简单记录一下吧。
方法介绍
1. 方法流程
-
和现有方法的区别

-
主要流程

- 离线阶段:客户端生成公钥并对注册图像加密,然后连同相应的身份一起发给服务器提取加密特征。
- 在线阶段:客户端对验证图像进行加密,然后连同相应的身份一起发给服务器提取加密特征。服务器计算匹配函数并将加密后的匹配结果返回给客户端解密。
2. 网络结构
文章所使用的神经网络结构大致为:首先,用 ViT 的方法将图像分 patch ;然后,用更浅的网络提取每个 patch 的特征,并且每个 patch 的特征提取器参数不共享;最后,拼接每个 patch 的特征,并输入全连接层。
下面具体介绍每一块:
- 卷积块:文章使用了 AESPA 算法所设计的 Hermite 多项式近似激活函数。特别的,为了减少乘法层数的消耗,将多项式的权重与卷积层的参数权重融合。

- 池化层:使用 2 × 2 2\times 2 2×2 卷积。
- 损失函数:使用 ArcFace 损失评估人脸识别的效果,用 jigsaw 损失提供额每个 patch 的位置信息。
- 匹配函数:相似度超过阈值的两个逻辑输出来自同一个人。令 y i y_i yi 为每个人脸图像对应的逻辑输出, T T T 为相似度阈值,则匹配函数如下:
Match ( y 1 , y 2 ) = ∥ y 1 ∥ y 1 ∥ − y 2 ∥ y 2 ∥ ∥ 2 − T \text{Match}(y_1,y_2)=\bigg\| \frac{y_1}{\| y_1\|}-\frac{y_2}{\| y_2\|} \bigg\|^2-T Match(y1,y2)= ∥y1∥y1−∥y2∥y2 2−T 上述函数涉及根号的倒数运算,文中使用二阶多项式进行近似。由于二阶多项式有三个未知数,因此选择三个统计点 t 1 = Mean ( t ) − Std ( t ) , t 2 = Mean ( t ) , t 1 = Mean ( t ) + Std ( t ) t_1=\text{Mean}(t)-\text{Std}(t),t_2=\text{Mean}(t),t_1=\text{Mean}(t)+\text{Std}(t) t1=Mean(t)−Std(t),t2=Mean(t),t1=Mean(t)+Std(t) 及其对应的根号倒数 1 / t 1 , 1 / t 2 , 1 / t 3 1/\sqrt{t_1},1/\sqrt{t_2},1/\sqrt{t_3} 1/t1,1/t2,1/t3 ,并将这三个点带入多项式求解未知参数。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)