ai.py自用

这段代码是一个 Python 脚本,它包含了一些函数,用于与百度人脸识别 API 进行交互。下面是每一行的解释:

  1. #!/usr/bin/env python:这一行是一个 shebang,它指定了脚本的解释器。
  2. # -*- coding:utf-8 -*-:这一行指定了脚本的编码格式。
  3. import base64:这一行导入了 Python 的内置模块 base64,用于对数据进行 base64 编码。
  4. import requests:这一行导入了第三方模块 requests,用于发送 HTTP 请求。

接下来是一个名为 register_image 的函数定义。它接受四个参数:user_iduser_infofile_objectgroup_id(默认值为 “test”)。

  1. # 1. 获取 access token:这是一个注释,说明接下来的代码将获取 access token。
  2. # client_id 为官网获取的AK, client_secret 为官网获取的SK:这是一个注释,说明 client_id 和 client_secret 是从百度官网获取的。
  3. host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=INgt7t4eNaXZ4AoeN2cQICzi&client_secret=QgApMABK25gVxs8p1ck9Sh9MrSL8Y12R':这一行定义了一个变量 host,它是一个字符串,表示用于获取 access token 的 URL。
  4. response = requests.get(host):这一行使用 requests 模块发送一个 GET 请求到 host 指定的 URL,并将响应存储在变量 response 中。
  5. access_token = response.json().get("access_token"):这一行从 response 中提取 JSON 数据,并从中获取 access token。

接下来是第二步。

  1. # 2. 图片进行base64编码:这是一个注释,说明接下来的代码将对图片进行 base64 编码。
  2. # with open("wupeiqi.jpeg", mode='rb') as file::这是一个被注释掉的代码行,它使用 with 语句打开一个名为 “wupeiqi.jpeg” 的文件。
  3. # data = base64.b64encode(file.read()):这是一个被注释掉的代码行,它使用 base64 模块对文件内容进行 base64 编码,并将结果存储在变量 data 中。
  4. data = base64.b64encode(file_object.read()):这一行与上一行类似,但是它使用函数参数 file_object 代替打开的文件。

接下来是第三步。

  1. # 3. 上传图片:这是一个注释,说明接下来的代码将上传图片。
  2. res = requests.post(:这一行使用 requests 模块发送一个 POST 请求,并将响应存储在变量 res 中。
  3. url="https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add",:这一行指定了 POST 请求的 URL。
  4. headers={:这一行开始定义 POST 请求的 headers。
  5. "Content-Type": "application/json":这一行指定了 POST 请求的 Content-Type 为 “application/json”。
  6. },:这一行结束 headers 的定义。
  7. params={:这一行开始定义 POST 请求的 params。
  8. "access_token": access_token:这一行指定了 POST 请求的 access_token 参数为之前获取到的 access_token。
  9. },:这一行结束 params 的定义。
  10. data={:这一行开始定义 POST 请求的 data。
  11. "image": data,:这一行指定了 POST 请求的 image 参数为之前对图片进行 base64 编码后得到的结果 data。
  12. "image_type": "BASE64",:这一行指定了 POST 请求的 image_type 参数为 “BASE64”。
  13. "group_id": group_id,:这一行指定了 POST 请求的 group_id 参数为函数参数 group_id。
  14. "user_id": user_id,:这一行指定了 POST 请求的 user_id 参数为函数参数 user_id。
  15. "user_info": user_info,:这一行指定了 POST 请求的 user_info 参数为函数参数 user_info。
  16. }:这一行结束 data 的定义。
  17. ):这一行结束 POST 请求的定义。
  18. result = res.json():这一行从 res 中提取 JSON 数据,并将结果存储在变量 result 中。
  19. return result["result"]['face_token']:这一行从 result 中提取 face_token 并返回。

接下来是一个名为 search 的函数定义。它接受一个参数:file_object

  1. # 1. 获取 access token:这是一个注释,说明接下来的代码将获取 access token。
  2. # client_id 为官网获取的AK, client_secret 为官网获取的SK:这是一个注释,说明 client_id 和 client_secret 是从百度官网获取的。
  3. host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=INgt7t4eNaXZ4AoeN2cQICzi&client_secret=QgApMABK25gVxs8p1ck9Sh9MrSL8Y12R':这一行定义了一个变量 host,它是一个字符串,表示用于获取 access token 的 URL。
  4. response = requests.get(host):这一行使用 requests 模块发送一个 GET 请求到 host 指定的 URL,并将响应存储在变量 response 中。
  5. access_token = response.json().get("access_token"):这一行从 response 中提取 JSON 数据,并从中获取 access token。

接下来是第二步。

  1. # 2. 图片进行base64编码:这是一个注释,说明接下来的代码将对图片进行 base64 编码。
  2. data = base64.b64encode(file_object.read()):这一行使用 base64 模块对 file_object 的内容进行 base64 编码,并将结果存储在变量 data 中。

接下来是第三步。

  1. # 3. 检验图片:这是一个注释,说明接下来的代码将检验图片。
  2. res = requests.post(:这一行使用 requests 模块发送一个 POST 请求,并将响应存储在变量 res 中。
  3. url="https://aip.baidubce.com/rest/2.0/face/v3/search",:这一行指定了 POST 请求的 URL。
  4. headers={:这一行开始定义 POST 请求的 headers。
  5. "Content-Type": "application/json":这一行指定了 POST 请求的 Content-Type 为 “application/json”。
  6. },:这一行结束 headers 的定义。
  7. params={:这一行开始定义 POST 请求的 params。
  8. "access_token": access_token:这一行指定了 POST 请求的 access_token 参数为之前获取到的 access_token。
  9. },:这一行结束 params 的定义。
  10. data={:这一行开始定义 POST 请求的 data。
  11. "image": data,:这一行指定了 POST 请求的 image 参数为之前对图片进行 base64 编码后得到的结果 data。
  12. "image_type": "BASE64",:这一行指定了 POST 请求的 image_type 参数为 “BASE64”。
  13. "group_id_list": "test",:这一行指定了 POST 请求的 group_id_list 参数为 “test”。
  14. "match_threshold": 80,:这一行指定了 POST 请求的 match_threshold 参数为 80。
  15. "liveness_control": "HIGH",:这一行指定了 POST 请求的 liveness_control 参数为 “HIGH”。
  16. }:这一行结束 data 的定义。
  17. ):这一行结束 POST 请求的定义。

63-65 行是一个被注释掉的 JSON 数据示例。

  1. return res.json():这一行从 res 中提取 JSON 数据并返回。

接下来是一个名为 delete的函数定义。它接受三个参数:user_idface_tokengroup_id(默认值为 “test”)。

  1. # https://aip.baidubce.com/rest/2.0/face/v3/faceset/face/delete:这是一个注释,说明接下来的代码将调用百度人脸识别 API 的删除接口。

接下来是第一步。

  1. # 1. 获取 access token:这是一个注释,说明接下来的代码将获取 access token。
  2. # client_id 为官网获取的AK, client_secret 为官网获取的SK:这是一个注释,说明 client_id 和 client_secret 是从百度官网获取的。
  3. host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=INgt7t4eNaXZ4AoeN2cQICzi&client_secret=QgApMABK25gVxs8p1ck9Sh9MrSL8Y12R':这一行定义了一个变量 host,它是一个字符串,表示用于获取 access token 的 URL。
  4. response = requests.get(host):这一行使用 requests 模块发送一个 GET 请求到 host 指定的 URL,并将响应存储在变量 response 中。
  5. access_token = response.json().get("access_token"):这一行从 response 中提取 JSON 数据,并从中获取 access token。

接下来是第二步。

  1. # 2. 检验图片:这是一个注释,说明接下来的代码将检验图片。
  2. res = requests.post(:这一行使用 requests 模块发送一个 POST 请求,并将响应存储在变量 res 中。
  3. url="https://aip.baidubce.com/rest/2.0/face/v3/faceset/face/delete",:这一行指定了 POST 请求的 URL。
  4. headers={:这一行开始定义 POST 请求的 headers。
  5. "Content-Type": "application/json":这一行指定了 POST 请求的 Content-Type 为 “application/json”。
  6. },:这一行结束 headers 的定义。
  7. params={:这一行开始定义 POST 请求的 params。
  8. "access_token": access_token:这一行指定了 POST 请求的 access_token 参数为之前获取到的 access_token。
  9. },:这一行结束 params 的定义。
  10. data={:这一行开始定义 POST 请求的 data。
  11. "user_id": user_id,:这一行指定了 POST 请求的 user_id 参数为函数参数 user_id。
  12. "group_id": group_id,:这一行指定了 POST 请求的 group_id 参数为函数参数 group_id。
  13. "face_token": face_token:这一行指定了 POST 请求的 face_token 参数为函数参数 face_token。
  14. }:这一行结束 data 的定义。
  15. ):这一行结束 POST 请求的定义。

91-93 行是一个被注释掉的 JSON 数据示例。

接下来是一个名为 speed 的函数定义。它接受一个参数:file_object

95-99 行导入了第三方模块 AipSpeech 并定义了三个常量 APP_ID、API_KEY 和 SECRET_KEY。

100-101 行使用 AipSpeech 模块创建了一个 client 对象,并使用 file_object 的内容进行语音识别,并返回结果。

103-104 行是一个 if 语句,它判断脚本是否是作为主程序运行。如果是,则执行 if 语句块中的代码。

  1. # search():这是一个被注释掉的代码行,它调用了 search 函数。
  2. pass:这一行是一个空语句,什么也不做。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值