如何像python opencv中的128d一样计算面嵌入的256d数组向量。?

如何像python opencv中的128d一样计算面嵌入的256d数组向量。?,python,face,Python,Face,我使用下面的代码来获取面嵌入的128d数组向量 embedder = cv2.dnn.readNetFromTorch('openface_nn4.small2.v1.t7') embedder.setInput(face_blob) # face_blob is the blob of face image vec = embedder.forward() # vec contains the 128d 如何计算面部图像的256d数组向量。?谢谢您必须构建自己的或修改现有的NN

我使用下面的代码来获取面嵌入的
128d数组向量

embedder = cv2.dnn.readNetFromTorch('openface_nn4.small2.v1.t7')

embedder.setInput(face_blob)  # face_blob is the blob of face image
vec = embedder.forward()      # vec contains the 128d

如何计算面部图像的
256d数组向量
。?谢谢

您必须构建自己的或修改现有的NN,因此它返回256d,而不是上一层的128d。可以简单地将
Dense(128,…)
替换为`Dense(256,…),也可以复杂地将替换后的整个网络重新训练。

@SAndrew可能您可以从网络的源代码(openface_nn4.small)开始,看看最新的层是什么,它可能类似于
Dense(512)
然后
Dense(256)
然后
稠密(128)
——在本例中,您只需删除最后一层即可。否则,您可能需要构建不同的网络,收集一些数据,对其进行培训,等等。。。顺便说一句,为什么你认为128d的嵌入对于你的目的是不够的?我处理的是低细节、平滑或jpeg压缩的高丢失的人脸,识别非常容易出错。所以我想我应该试试256d,而不是128d。你认为256d会更好吗?@SAndrew根据我的经验,128d矢量足以描述地球上的每一张脸数百万次,所以256d通常是一种过度杀伤力。我宁愿花时间在数据收集上(获得更好的图像)和准备(面部检测、对齐等)——这肯定会让你得到更好的结果。我认为面部对齐是你提出的一个很好的地方,我还没有考虑过。在提取128d面层之前,我还将包括这一点。谢谢