ArcFace-python
ArcFace-python copied to clipboard
请问大佬,怎么把提取出来的人脸特征保存下来呢
请问大佬,怎么把提取出来的人脸特征保存下来呢? @ @tensorflower
请问大佬,怎么把提取出来的人脸特征保存下来呢? @ @tensorflower
作者的特征提取部分结构体写的有问题,需要修改一下才能把特征存下来
大佬,怎么修改呢 @GengCauWong
大佬,怎么修改呢 @GengCauWong
这个文件struct_info.py改成如下,然后face_feature1.feature[num],num是0~1032
#人脸特征信息 class ASF_FaceFeature(Structure): feature:List[int] featureSize:int
_fields_=[('feature',POINT(c_uint8)), # 人脸特征
('featureSize',c_int32) # 人脸特征长度
]
多谢大佬回复,我试一下 @GengCauWong
多谢大佬回复,我试一下 @GengCauWong
忘了一个地方,lib_func.py里面的,如下地方也要改
malloc = dllc.malloc malloc.restype = POINTER(c_uint8) malloc.argtypes = (c_size_t,)
好的,多谢大佬 @GengCauWong
其实不用该源文件。特征就是一个Bytes数据。通过get_feature_bytes()拿到数据之后保存到文件或者数据都行。然后用的时候再都出来,由于对比的时候需要特定的类型,所以还要转换一下。ASF_FaceFeature()里的set_feature()已经告诉你怎么构造了。打个比方,你从文件或者数据库中读出保存的Bytes数据为feature,然后
fas = ASF_FaceFeature() fas.featureSize = feature.__len__() fas.feature = dllc.malloc(fas.featureSize) dllc.memcpy(fas.feature, feature, fas.featureSize)
然后拿这个fas和其他的对比即可,比如
res, score = im.similiarity(fas, face_feature2)
其实不用该源文件。特征就是一个Bytes数据。通过get_feature_bytes()拿到数据之后保存到文件或者数据都行。然后用的时候再都出来,由于对比的时候需要特定的类型,所以还要转换一下。ASF_FaceFeature()里的set_feature()已经告诉你怎么构造了。打个比方,你从文件或者数据库中读出保存的Bytes数据为feature,然后
fas = ASF_FaceFeature() fas.featureSize = feature.__len__() fas.feature = dllc.malloc(fas.featureSize) dllc.memcpy(fas.feature, feature, fas.featureSize)
然后拿这个fas和其他的对比即可,比如res, score = im.similiarity(fas, face_feature2)
请问大佬有
多谢大佬回复,我试一下 @GengCauWong
忘了一个地方,lib_func.py里面的,如下地方也要改
malloc = dllc.malloc malloc.restype = POINTER(c_uint8) malloc.argtypes = (c_size_t,)
您好,我按照您说的修改还是无法保存。