首页/新闻资讯/正文详情

PaddleFormers 人脸检测实战:PyramidBox-Lite Server 模块的安装、API 调用与 Serving 在线部署

发布时间:2026/9/23 12:02:43 来源:云帆数科 栏目:资讯中心
PaddleFormers 人脸检测实战:PyramidBox-Lite Server 模块的安装、API 调用与 Serving 在线部署
PaddleFormers 人脸检测实战PyramidBox-Lite Server 模块的安装、API 调用与 Serving 在线部署【免费下载链接】PaddleFormersPaddleFormers is an easy-to-use library of pre-trained large language model zoo based on PaddlePaddle.项目地址: https://gitcode.com/gh_mirrors/pa/PaddleFormers本篇技术指南以 PaddleFormers 仓库中的 pyramidbox_lite_server 模块文档 为骨架围绕 PaddleHub 生态下 PyramidBox-Lite 轻量人脸检测模型展开覆盖环境安装、命令行与 Python API 预测、关键参数调优以及 PaddleHub Serving 在线服务化部署与 Gradio 交互界面。读完本文你将能够在一台装有 PaddlePaddle 与 PaddleHub 的机器上从零跑通单图人脸检测、批量推理并把模型快速封装成可对外提供 HTTP 服务的人脸检测接口。一、模块基本信息PyramidBox-Lite Server 是什么pyramidbox_lite_server 是 PaddleHub 官方提供的一个**人脸检测face detection**模块其核心信息如下表属性值模块名称Module Namepyramidbox_lite_server类别Categoryface detection网络结构NetworkPyramidBox训练数据集DatasetWIDER FACE 数据集 百度自采人脸数据集是否支持微调Fine-tuning否模型大小Module Size8MB最新更新日期2021-02-26数据指标Data indicators-模型的技术来源是百度在 ECCV 2018 发表的 PyramidBox 论文。PyramidBox-Lite 是基于 PyramidBox 研制的轻量级模型对光照变化、口罩遮挡、表情变化、尺度变化等常见干扰具有较强的鲁棒性可在 CPU 上流畅运行适合作为服务端人脸检测的基础能力。在仓库中该模块的完整实现位于 modules/image/face_detection/pyramidbox_lite_server/ 目录包含以下文件module.py模块主实现定义了PyramidBoxLiteServer类包含预测、命令行、Serving 与 Gradio 四类入口data_feed.py图像读取与预处理缩放、减均值、通道变换processor.py后处理坐标恢复、阈值过滤、可视化绘制、base64 编解码label_list.txt标签表BACKGROUND与facetest.py模块的单元测试可验证安装与 API 正确性。二、安装与环境依赖1、环境依赖使用该模块前需要满足以下版本要求paddlepaddle 1.6.2paddlehub 1.6.0PaddleHub 的安装方法见 installation.rst需要说明的是模块的 Serving 与 Gradio 功能随 PaddleHub 版本演进从 PaddleHub 2.3.1 起才支持 Gradio APP 访问因此若要用到下文第四节的 Gradio 能力建议使用较新的 PaddleHub 版本。2、安装模块执行以下命令安装人脸检测模块$ hub install pyramidbox_lite_server如需安装指定版本例如 1.4.0可追加版本号$ hub install pyramidbox_lite_server1.4.0安装过程中如遇到问题可参考官方快速入门文档Windows_Quickstart | Linux_Quickstart | Mac_Quickstart。三、模块 API 预测1、命令行预测安装完成后可通过命令行直接对单张图片进行人脸检测$ hub run pyramidbox_lite_server --input_path /PATH/TO/IMAGE命令行入口由 module.py 中的run_cmd方法注册通过runnable装饰器暴露。从源码可以看到命令行支持以下可选参数module.py参数类型默认值说明--input_pathstr必填输入图片路径--use_gpuboolFalse是否使用 GPU 预测--output_dirstrdetection_result结果图片保存目录--visualizationboolFalse是否将检测结果保存为图片--shrinkfloat0.5送入网络前图片的缩放比例--confs_thresholdfloat0.6置信度阈值关于 PaddleHub 命令行指令的完整用法可参考 cmd_usage.rst。2、预测代码示例在 Python 中调用模块同样非常简洁import paddlehub as hub import cv2 face_detector hub.Module(namepyramidbox_lite_server) result face_detector.face_detection(images[cv2.imread(/PATH/TO/IMAGE)]) # or # result face_detector.face_detection(paths[/PATH/TO/IMAGE])images与paths两种数据来源二选一即可前者直接传入 BGR 格式的 numpy 数组后者传入图片文件路径列表。仓库中的 test.py 对两种调用方式都编写了对应的单元测试test_face_detection1走paths、test_face_detection2走images并断言置信度大于 0.5、坐标落在合理区间可作为调用结果的正确性参照。3、核心 APIface_detectiondef face_detection(imagesNone, pathsNone, use_gpuFalse, output_dirdetection_result, visualizationFalse, shrink0.5, confs_threshold0.6)功能检测输入图片中的所有可见人脸返回每个人脸的检测框坐标与置信度。参数说明images(list[numpy.ndarray])图片数据列表每个 ndarray 的 shape 为 [H, W, C]颜色空间为BGRpaths(list[str])图片路径列表use_gpu(bool)是否使用 GPU。使用 GPU 前必须先设置CUDA_VISIBLE_DEVICES环境变量output_dir(str)可视化结果的保存目录默认detection_resultvisualization(bool)是否将检测结果保存为图片文件shrink(float)输入图片的缩放比例。该值越大对输入图片中的小尺寸人脸检测效果越好模型计算成本越高值越小则对大尺寸人脸检测效果更好confs_threshold(float)置信度阈值只有置信度超过该值的检测框才会被保留。注意paths与images只需提供其中之一不要同时依赖二者传入数据。返回值res(list[dict])检测结果列表每个元素为一个 dictpath(str)输入图片的路径data(list)检测结果每个元素为 dictconfidence(float)检测置信度left(int)检测框左上角 x 坐标top(int)检测框左上角 y 坐标right(int)检测框右下角 x 坐标bottom(int)检测框右下角 y 坐标。源码级原理预处理与后处理从源码看一次face_detection调用内部完成了「预处理 → 推理 → 后处理」三个环节预处理data_feed.pyreader逐张读取图片后preprocess会按shrink比例使用cv2.resize最近邻插值缩放图像随后将 HWC 布局转为 CHW再减去均值mean [104., 117., 123.]并乘以缩放系数scale 0.007843即 1/127.5最后转为 float32 送入网络。因此shrink直接影响网络输入尺寸进而影响小目标人脸的召回率与推理耗时。推理module.py模块通过 Paddle Inference 加载模型。_set_config中默认创建 CPU predictor并检测CUDA_VISIBLE_DEVICES环境变量若其首字符可转为整数则认为可用 GPU额外创建显存池 1000MB 的 GPU predictor。face_detection中若use_gpuTrue但环境变量未正确设置会直接抛出 RuntimeError 提示先设置CUDA_VISIBLE_DEVICES。后处理processor.py网络原始输出为[label, confidence, left, top, right, bottom]形式的行向量postprocess会先按confs_threshold过滤低置信度结果再将归一化坐标乘以原图宽高并除以shrink恢复为原始图像尺寸下的像素坐标随后通过clip_bbox把越界坐标裁剪到图像范围内。若visualizationTrue则用 OpenCV 在图像上绘制黄色矩形框cv2.rectangle颜色 (255, 255, 0)线宽 2并保存到output_dir文件已存在时会自动追加时间戳避免覆盖。4、导出推理模型save_inference_modeldef save_inference_model(dirname)功能将当前模块的预测模型保存为 Paddle Inference 可直接加载的推理模型文件。参数dirname(str)模型保存路径。从 test.py 的test_save_inference_model用例可以看到调用save_inference_model(./inference/model)后会在目标目录下生成model.pdmodel与model.pdiparams两个文件与 module.py 中_set_config加载的model.pdmodel/model.pdiparams命名约定一致方便将人脸检测能力集成进自有推理服务。四、Server 服务化部署PaddleHub Serving 可以将人脸检测模型一键部署为在线服务对外提供 HTTP 接口。Step 1启动 PaddleHub Serving运行启动命令$ hub serving start -m pyramidbox_lite_server执行后即完成人脸检测服务化 API 的部署默认监听端口为8866。注意若使用 GPU 预测需要在启动服务之前设置CUDA_VISIBLE_DEVICES环境变量仅用 CPU 时无需设置。服务端的数据处理入口是 module.py 中的serving_method通过serving装饰器暴露它接收 HTTP 请求中 base64 编码的图片列表先经base64_to_cv2解码为 numpy 数组见 processor.py再转调face_detection完成检测并返回结构化结果。Step 2发送预测请求服务启动后使用以下代码发送 HTTP 请求并获取结果import requests import json import cv2 import base64 def cv2_to_base64(image): data cv2.imencode(.jpg, image)[1] return base64.b64encode(data.tostring()).decode(utf8) # 发送HTTP请求 data {images:[cv2_to_base64(cv2.imread(/PATH/TO/IMAGE))]} headers {Content-type: application/json} url http://127.0.0.1:8866/predict/pyramidbox_lite_server r requests.post(urlurl, headersheaders, datajson.dumps(data)) # 打印预测结果 print(r.json()[results])请求体中的images字段为图片的 base64 字符串列表接口路径为/predict/pyramidbox_lite_server返回的results即为每个检测框的置信度与坐标信息。关于 PaddleHub Serving 的更多配置如端口、并发等可查阅 serving.md。Gradio APP 支持从 PaddleHub 2.3.1 开始pyramidbox_lite_server 支持通过 Gradio 在浏览器中以可视化方式交互访问地址为http://127.0.0.1:8866/gradio/pyramidbox_lite_server其界面逻辑定义在 module.py 的create_gradio_app方法中页面提供图片上传框、shrink滑块0.01.0默认 0.5与confs_threshold滑块0.01.0默认 0.6提交后调用face_detection并将带框结果图返回给浏览器非常适合快速演示与人工验收检测效果。五、版本更新记录版本说明1.0.0初始发布1.2.0修复 numpy 数据读取问题1.2.1移除 fluid API1.3.0修复 save_inference_model 导出推理模型的问题1.4.0添加 Gradio APP 支持当前仓库中 module.py 的moduleinfo装饰器标注的模块版本即为 1.4.0module.py与 README 中最新版本一致。若需回退到带 Gradio 支持前的稳定版本可执行hub install pyramidbox_lite_server1.3.0。六、快速验证与最佳实践小结正确性自检安装完成后可直接运行仓库自带的 test.pypython test.py它覆盖了paths/images两种输入、CPU/GPU 两种设备、可视化开关、非法路径断言以及推理模型导出共 6 组用例快速确认模块可用小脸检测调优若图片中人脸较小且漏检明显可适当调大shrink如 0.71.0若误检较多可调高confs_threshold如 0.7服务化落地本地验证通过后用hub serving start -m pyramidbox_lite_server即可在 8866 端口获得标准 HTTP 接口方便与业务系统集成需要离线部署时用save_inference_model导出model.pdmodel/model.pdiparams接入自有推理管线。【免费下载链接】PaddleFormersPaddleFormers is an easy-to-use library of pre-trained large language model zoo based on PaddlePaddle.项目地址: https://gitcode.com/gh_mirrors/pa/PaddleFormers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

PHPStan 错误标识符解析:nullCoalesce.expr —— 当 `??` 左侧表达式不可能为 null 时
PHPStan 错误标识符解析:nullCoalesce.expr —— 当 `??` 左侧表达式不可能为 null 时

PHPStan 错误标识符解析:nullCoalesce.expr —— 当 ?? 左侧表达式不可能为 null 时 【免费下载链接】phpstan PHP Static Analysis Tool - discover bugs in your code without running it! 项目地址: https://gitcode.com/gh_mirrors/ph/phpstan 本文以 … · 2026/9/23 12:02:43

联邦学习模型对抗攻击实战:成员推理与孪生网络代码解析
联邦学习模型对抗攻击实战:成员推理与孪生网络代码解析

简介:围绕联邦学习中的对抗攻击与模型安全,课程大作业完整交付了Python源码、详细注释与预训练模型,切合计算机、人工智能、通信工程等专业学生的课程设计、毕业设计需求,也适合相关方向的小白进阶学习。资源共17个文件&#xff0… · 2026/9/23 12:02:43

tokyo hot n0881 性能优化实战:3招解决 StackTrace 报错卡顿
tokyo hot n0881 性能优化实战:3招解决 StackTrace 报错卡顿

tokyo hot n0881 性能优化实战:3招解决 StackTrace 报错卡顿 看着屏幕上一长串红色的 StackTrace,头是不是已经开始疼了?很多工程师在调试 tokyo hot n0881… · 2026/9/23 12:02:36

3个实战项目吃透信息论与编码面试必问
3个实战项目吃透信息论与编码面试必问

3个实战项目吃透信息论与编码面试必问 你是不是也这样?Python 语法背得滚瓜烂熟,LeetCode 刷了几百题,但一提到“信息论”或者“编码原理”,脑子就一片空白。面试官问:“如果让你设计一个高效的文件压缩算法,你第一步该干什么?”你只… · 2026/9/23 13:23:36

LPDDR4/LPDDR4X信号完整性测试:探针、TDR与眼图分析实战
LPDDR4/LPDDR4X信号完整性测试:探针、TDR与眼图分析实战

简介:面向硬件测试与SI设计工程师的LPDDR4信号完整性专题文档,以docx格式提供一份完整测试指导。内容聚焦高速内存最关键的CK时钟与DQS数据选通信号,覆盖差分输入电压、输入斜率、单端信号判定、交叉点检查等基础项,并按LPDDR4规范… · 2026/9/23 13:23:36

天龙八部后现代版保姆级教程:3步搞定源码拆解
天龙八部后现代版保姆级教程:3步搞定源码拆解

天龙八部后现代版保姆级教程:3步搞定源码拆解 看了一堆教程还是不会写项目?别急,这不是你笨,是缺了一份能落地的【天龙八部后现代版】实战指南。… · 2026/9/23 13:23:29

3天搞定申报高新技术企业避坑指南
3天搞定申报高新技术企业避坑指南

3天搞定申报高新技术企业避坑指南 配置环境就卡半天,这是很多刚接触高企申报的新手最真实的写照。别笑,真不是开玩笑。你以为只是填个表、传个文件?错。从知识产权梳理到研发费用辅助账,再到财务指标核算,每一个环节都藏着能让人崩溃的坑。我见过太多团… · 2026/9/23 13:23:29

QEMU Xtensa 系统模拟器完整指南:sim 伪板与 Avnet LX60/LX110/LX200 板级仿真
QEMU Xtensa 系统模拟器完整指南:sim 伪板与 Avnet LX60/LX110/LX200 板级仿真

QEMU Xtensa 系统模拟器完整指南:sim 伪板与 Avnet LX60/LX110/LX200 板级仿真 【免费下载链接】qemu Official QEMU mirror. Please see https://www.qemu.org/contribute/ for how to submit changes to QEMU. Pull Requests are disabled. Please only use relea… · 2026/9/23 13:23:29

Qt Creator安装配置全攻略:从下载到CMake项目实战
Qt Creator安装配置全攻略:从下载到CMake项目实战

1. 为什么Qt Creator依然是C桌面开发的首选IDE1.1 从一堆热搜词里看新手的真实困境先看一组搜索词:fatal: cannot mix incompatible qt library、qt.qpa.plugin: could not find the qt platform plugin、cmake error at ...CMakeDetermineCompilerId.cmake:9、qt c… · 2026/9/23 13:23:23

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码