前言
在人脸识别时,用户注册时需要输入一张人脸图片,为了加速图像识别的过程,我们往往会预先使用深度神经网络进行特征抽取,并保存抽取出的特征。这样在识别时,只需要采集一张用户的人脸图像,然后进行前向运算抽取特征,然后与预先抽取的特征进行比较即可。保存预训练的特征向量,可以使用json格式。json存储数据采用键值对的方式。我们可以使用用户的注册ID做键,特征向量作为值来进行存储。
Python中json文件的存储的读取
# -*- coding: UTF-8 -*-
'''Risk2S'''
import json
# 列表写入文件
# 测试list
risk_list = [{'123':[1,2,3,4,5,6,7,8,9],'456':[3,4,6,3,6,7,3,7,3,3]},{'123':'111','456':222}]
# 将数据写入文件
file = open('jsondemo.json', 'w')
for i in risk_list:
json_i = json.dumps(i)
file.write(json_i+'\n')
file.close()
# 从文件中读取数据
risk_result = []
with open('jsondemo.json','r') as f:
# 读取数据并分割。 最后一个为空,所以去除
risk_new_list = f.read().split('\n')[:-1]
for x in risk_new_list:
json_x = json.loads(x)
print(type(json_x))
risk_result.append(json_x)
f.close()
print("原始数据是:", risk_list)
print("结果数据是:", risk_result)
输出结果:
<class 'dict'>
<class 'dict'>
原始数据是: [{'123': [1, 2, 3, 4, 5, 6, 7, 8, 9], '456': [3, 4, 6, 3, 6, 7, 3, 7, 3, 3]}, {'123': '111', '456': 222}]
结果数据是: [{'123': [1, 2, 3, 4, 5, 6, 7, 8, 9], '456': [3, 4, 6, 3, 6, 7, 3, 7, 3, 3]}, {'123': '111', '456': 222}]
可以看到读取出的json对象是字典类型,json可以和python的数据类型完美结合。
使用json格式保存人脸特征向量的形式如下:
{"id1":[feature1]}
{"id2":[feature2]}
......