python|图像识别
时下我们不得不承认,科技的发展对现代生活有着决定性的影响。令人喜忧参半的是,科技变化之快,让我们几乎无法跟上其脚步,更不用说预测未来了。影响力之大和最吸引人的技术就是图像识别,图像识别技术是人工智能的一个重要领域,它是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对象的技术。今天以女神宋慧乔的两张不同照片为例,利用python识别其相似度,从而判定是否是同一人,同时让我们对图像识别有个初步的了解,什么?照片可以换苍老师和波老师吗?我怀疑你们在开车,可是我没有证据!
准备工作:
1、开发环境:windows pycharm
2、需要导入标准库:json base64 requests
3、备注: base64是计算机数据格式模块(用来做数据传输)
RECOMMEND推荐阅读0
1
导入标准库或模块
import json
import base64
import requests
0
2
分别读取两张图片的数据 (随意自行下载两张图片)
with open("1.jpg", "rb") as f:
pic1 = f.read()
with open("2.jpg", "rb") as f:
pic2 = f.read()
0
3
整合两张图片json数据(r表示读; b二进制)
image_data = json.dumps(
[
{"image": str(base64.b64encode(pic1), "utf-8"), "image_type": "BASE64", "face_type": "LIVE", "quality_control": "LOW"},
{"image": str(base64.b64encode(pic2), "utf-8"), "image_type": "BASE64", "face_type": "IDCARD", "quality_control": "LOW"},
]
)
备注:quality_control 控制台类型 IDCARD证件照 LIVE生活照
上面的代码为固定格式,其中face_type类型可随意选LIVE或 IDCARD
0
4
拼接API接口:此接口属于商用是花钱买的, 第二个链接中access_token=需要的数据 要从第一个链接中获取
get_token = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=lVfov6E1oaWZR9f4qIhd9Hjy&client_secret=Gubrc6RnMTdA3Eb8WumHIGrz4vHgCTdy"
API_url = "https://aip.baidubce.com/rest/2.0/face/v3/match?access_token="
0
5
导入requests库发送post请求,并赋值给text
text = requests.get(get_token).text
0
6
将json数据转化成python数据 用键值对取值的方法获取access_token的值,并重新赋值给access_token
access_token = json.loads(text)['access_token']
0
7
拼接API接口完成
url = API_url + access_token
0
8
请求API接口传入图片数据,返回图片相似度
response = requests.post(url, image_data)
0
9
获取相似度数值,并赋值给score
score = json.loads(response.text)['result']['score']
0
10
根据相似度,如果相似度大于90,则判断是同一个人,否则不是
if score > 90:
print("图片相似度为:%s, 同一个人" % score)
else:
print("图片相似度为:%s, 不是同一个人" % score)
0
11
右键运行代码,获取结果,任务完成
0
12
想自行测试的小伙伴,这里有完整代码,希望可以帮到你!