如何遍历目录下所有PNG图片文件并发送至Deepstack进行人脸识别?
Deepstack批量PNG人脸注册脚本实现
前置依赖
首先确保已经安装requests库:
pip install requests
实现逻辑
- 支持指定扫描目录,自动遍历所有后缀为
.png的图片(不区分大小写,.PNG格式也会被识别) - 默认使用不带后缀的文件名作为人脸注册的
userid,可根据需求自行修改规则 - 采用
with open方式读取文件,避免文件句柄泄露问题 - 每张图片处理完成后直接打印接口返回结果,方便排查异常
完整代码
import os import requests # -------------------------- 配置项 请根据实际情况修改 -------------------------- SCAN_DIR = "/path/to/your/png/directory" # 替换为你要遍历的PNG文件所在目录 DEEPSTACK_API = "http://localhost:80/v1/vision/face/register" # Deepstack服务接口地址 # --------------------------------------------------------------------------- for filename in os.listdir(SCAN_DIR): # 筛选PNG格式文件 if filename.lower().endswith(".png"): file_full_path = os.path.join(SCAN_DIR, filename) # 读取图片二进制内容 with open(file_full_path, "rb") as img_f: img_content = img_f.read() # 生成userid,当前规则为去掉文件后缀的文件名,可自行修改 register_userid = os.path.splitext(filename)[0] # 调用Deepstack接口 resp = requests.post( DEEPSTACK_API, files={"image": img_content}, data={"userid": register_userid} ).json() # 输出处理结果 print(f"文件:{filename} | 接口返回:{resp}")
注意事项
- 运行脚本前请确认Deepstack服务已经正常启动,接口地址和端口与配置项一致
- 若扫描目录下存在不含人脸的PNG图片,接口会返回识别失败的响应,脚本不会中断运行
- 如需自定义
userid规则,直接修改register_userid变量的赋值逻辑即可
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

