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

PaddleFormers 中 PyramidBox 人脸检测模块的安装、调用与 Serving 部署全指南

发布时间:2026/9/24 6:51:49 来源:云帆数科 栏目:资讯中心
PaddleFormers 中 PyramidBox 人脸检测模块的安装、调用与 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_face_detectionPaddleHub 模块为核心系统讲解其模型原理、环境依赖、安装方式、命令行与 Python API 预测、Serving 在线服务部署以及推理模型导出等完整流程。读完本文你将能够在本仓库环境中独立完成基于 PyramidBox 的人脸检测推理任务并将其部署为可供 HTTP 调用的在线服务。一、模块基本信息与模型背景pyramidbox_face_detection是 PaddleHub 生态中的一个图像人脸检测模块其关键信息如下表所示Module Namepyramidbox_face_detectionCategoryface detectionNetworkPyramidBoxDatasetWIDER FACE DatasetFine-tuning supported or notNoModule Size220MBLatest update date2021-02-26Data indicators-从仓库源码看该模块在 module.py 中通过moduleinfo声明了namepyramidbox_face_detection、typeCV/face_detection、authorbaidu-vis、version1.2.0即该模块归属于 CV 人脸检测类别当前版本为 1.2.0。模型原理简述PyramidBox 是一种基于 SSDSingle Shot MultiBox Detector的单阶段人脸检测器其核心特点是利用上下文信息解决困难人脸的检测问题。它并不只在单一尺度的特征图上预测而是在六个尺度的特征图上进行不同层级的预测从而更好地覆盖不同大小的人脸。其关键工作包括以下模块LFPNLow-level Feature Pyramid Networks融合低层特征增强小尺度人脸的检测能力PyramidAnchors在不同金字塔层级上设计不同尺度的锚框CPMContext-sensitive Predict Module利用上下文敏感模块提升检测精度Data-anchor-sampling一种数据增强采样策略提升训练样本的多样性。该 PaddleHub 模块使用 WIDER FACE 数据集预训练支持对人脸检测任务的预测不支持 Fine-tuning。其官方效果展示见 README_en.md。下面这张图是仓库docs/imgs/目录下的人脸检测结果示例可以看到检测器能够在真实照片中定位出人脸区域并用矩形框标出二、环境依赖与模块安装1. 环境依赖在安装使用本模块之前需要确认本机环境满足以下版本要求paddlepaddle 1.6.2深度学习框架提供模型推理所需的算子与运行时paddlehub 1.6.0PaddleHub 工具库提供模块管理、命令行调用与 Serving 部署能力。PaddleHub 的完整安装教程可参考 安装文档Windows/Linux/Mac 平台的零基础安装指南分别见 Windows 快速开始、Linux 快速开始 与 Mac 快速开始。2. 安装模块在满足上述依赖后通过 PaddleHub 的hub install命令即可完成模块安装$ hub install pyramidbox_face_detection安装过程中如果遇到问题可参考上述各平台的快速开始文档排查环境问题。如需安装指定历史版本例如 1.2.0可使用版本号限定$ hub install pyramidbox_face_detection1.2.0三、模块 API 预测1. 命令行预测安装完成后可以通过hub run命令直接在命令行中进行人脸检测。该命令通过 run.py 中的RunCommand注册执行它会加载模块并调用模块内由runnable装饰的run_cmd方法。$ hub run pyramidbox_face_detection --input_path /PATH/TO/IMAGE从 module.py 的run_cmd实现可以看到命令行模式下模块支持的参数有参数类型默认值说明--input_pathstr必填待检测图片的路径--use_gpuboolFalse是否使用 GPU 进行预测--output_dirstrdetection_result结果图片的保存目录--visualizationboolFalse是否将检测结果保存为图片--score_threshfloat0.15人脸检测的置信度阈值命令行调用方式更完整的说明可参考 PaddleHub 命令行指令教程。2. 预测代码示例在 Python 脚本中通过hub.Module加载模块然后调用face_detection方法即可完成预测。模块支持两种输入方式直接传入 numpy 数组BGR 格式图片或传入图片路径列表。import paddlehub as hub import cv2 face_detector hub.Module(namepyramidbox_face_detection) result face_detector.face_detection(images[cv2.imread(/PATH/TO/IMAGE)]) # or # result face_detector.face_detection(paths[/PATH/TO/IMAGE])注意paths和images两个参数只能选择其一提供数据二者同时传入时都会参与处理。3. API 详解模块的核心预测接口定义在 module.py 中def face_detection(imagesNone, pathsNone, use_gpuFalse, output_dirdetection_result, visualizationFalse, score_thresh0.15)功能检测输入图片中的所有出现的人脸位置。参数说明参数类型默认值说明imageslist[numpy.ndarray]None图片数据列表每个 ndarray 的 shape 为 [H, W, C]颜色空间为 BGRpathslist[str]None图片路径列表use_gpuboolFalse是否使用 GPU 推理使用 GPU 前必须首先设置 CUDA_VISIBLE_DEVICES 环境变量output_dirstrdetection_result结果图片的保存路径visualizationboolFalse是否将识别结果保存为图片文件score_threshfloat0.15置信度阈值低于该阈值的检测框会被过滤关于use_gpu的使用约束module.py 中的实现会在启用 GPU 时检查CUDA_VISIBLE_DEVICES环境变量若未正确设置会抛出RuntimeError。同时模块在初始化时_set_config方法会通过该环境变量自动判断是否构建 GPU 预测器GPU 预测器的显存池初始大小设为 1000MB。返回值说明res(list[dict])识别结果列表列表中的每个元素是一个 dict包含以下字段path(str)原输入图片的路径当通过images传入数组时该字段为自动生成的时间戳标识data(list)检测结果列表其中每个元素为 dictconfidence(float)该检测框的置信度left(int)检测框左上角 x 坐标top(int)检测框左上角 y 坐标right(int)检测框右下角 x 坐标bottom(int)检测框右下角 y 坐标。内部处理流程源码级解析一次face_detection调用的完整数据流如下数据读取与预处理data_feed.pyreader逐个读取图片。对于paths输入会校验文件是否存在不存在会断言失败对于images输入会通过cv2.cvtColor将 BGR 转 RGB 再封装为 PIL Image。图像缩放preprocess中的get_shrink根据图像宽高计算缩放比例避免超大图直接送入网络随后将图像由 HWC 转为 CHW、由 RGB 转为 BGR。归一化按mean [104., 117., 123.]逐通道减均值并乘以scale 0.007843得到模型输入。推理module.py将预处理结果送入 CPU 或 GPU 预测器执行。后处理processor.py把网络输出的归一化坐标乘以原始图像宽高还原为像素坐标按score_thresh过滤低置信度框当visualizationTrue时会创建output_dir目录check_dir并用红色线条线宽 4在图上绘制检测框draw_bboxes。4. 推理模型导出模块还提供了save_inference_model接口用于将当前模型保存为可用于独立部署的推理模型文件def save_inference_model(dirname)参数dirname(str)模型保存路径。该接口在 test.py 中被验证执行save_inference_model(./inference/model)后会在该目录下生成model.pdmodel网络结构与model.pdiparams模型参数两个文件。5. 测试用例验证仓库为模块提供了完整的单元测试test.py覆盖了主要使用场景test_face_detection1通过paths传入图片路径CPU 推理test_face_detection2通过images传入 numpy 数组CPU 推理test_face_detection3开启visualizationTrue的推理test_face_detection4GPU 推理测试前设置CUDA_VISIBLE_DEVICES0test_face_detection5传入不存在的文件路径验证会抛出AssertionErrortest_face_detection6传入非数组数据验证会抛出cv2.errortest_save_inference_model验证推理模型导出后model.pdmodel与model.pdiparams均存在。这些测试用例既是模块可用性的保证也是学习如何正确调用 API 的参考范例。测试对检测结果的断言如confidence 0.5、检测框坐标位于图像范围内也说明了正常推理时输出结果的量级。四、Server 部署PaddleHub ServingPaddleHub Serving 可以将人脸检测模块部署为一个在线服务通过 HTTP 请求对外提供预测能力。服务端与客户端的实现可分别参考 http_server.py 与 client.py。第一步启动 PaddleHub Serving在命令行中执行启动命令$ hub serving start -m pyramidbox_face_detection执行完成后人脸检测服务化 API 即部署成功默认端口号为 8866。注意如果使用 GPU 进行预测需要在启动服务之前设置CUDA_VISIBLE_DEVICES环境变量如果使用 CPU 则无需设置。从 serving.py 的实现可以看到hub serving命令还支持以下常用参数参数默认值说明-m/--modules无指定要部署的模块支持模块名版本号形式-p/--port8866服务监听端口--use_gpuFalse是否使用 GPU 推理--use_multiprocessFalse是否启用多进程模式Windows 不支持-w/--workerscpu核数*21多进程模式下的 worker 数量-c/--config无通过 JSON 配置文件启动服务-i/--gpu0指定使用的 GPU 设备停止服务可使用hub serving stop -p 8866按端口安全停止。第二步发送预测请求服务启动后使用以下 Python 代码即可发送预测请求并获取结果。请求体中的图片需要先经过 base64 编码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) # Send an HTTP request data {images:[cv2_to_base64(cv2.imread(/PATH/TO/IMAGE))]} headers {Content-type: application/json} url http://127.0.0.1:8866/predict/pyramidbox_face_detection r requests.post(urlurl, headersheaders, datajson.dumps(data)) # print prediction results print(r.json()[results])服务端收到请求后会调用模块中被serving装饰的serving_method见 module.py它使用base64_to_cv2实现于 processor.py将 base64 字符串解码回图片数组再交给face_detection完成检测并返回结构化结果。五、更新历史Release Note该模块的版本演进历史如下1.0.0初始发布First release。1.1.0修复读取 numpy 数据时的问题Fix the problem of reading numpy。1.2.0修复save_inference_model的一个 bugFix a bug of save_inference_model。如需安装最新修复版本可执行$ hub install pyramidbox_face_detection1.2.0六、小结pyramidbox_face_detection是一个开箱即用的人脸检测 PaddleHub 模块底层采用基于 SSD 的 PyramidBox 网络在六个尺度特征图上进行多层级预测擅长利用上下文信息处理困难人脸上层则通过 PaddleHub 统一封装了命令行调用、Python API 调用、Serving 在线部署与推理模型导出等能力。本文结合仓库源码module.py、data_feed.py、processor.py、test.py完整梳理了从安装到部署的全链路读者可依据各章节的代码示例直接在本地复现人脸检测与在线服务部署。赞分享人工智能大模型微调模型推理服务【免费下载链接】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 模块的安装、API 调用与 Serving 在线部署PaddleFormers 人脸检测实战PyramidBox Lite Server 模块的安装、API 调用与 Serving 在线部署 本篇技术指南以 P人工智能大模型微调模型推理服务PaddleHub PyramidBox 人脸检测模块使用指南安装、API 预测与 Serving 一键部署PaddleHub PyramidBox 人脸检测模块使用指南安装、API 预测与 Serving 一键部署 本文围绕 PaddleFormers 仓库中的人工智能大模型微调模型推理服务PaddleFormers 人脸检测实战PyramidBox-Lite Server 模块的安装、预测与服务化部署完全指南PaddleFormers 人脸检测实战PyramidBox Lite Server 模块的安装、预测与服务化部署完全指南 本指南以 PaddleFormer人工智能大模型微调模型推理服务创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

跨平台换机不再头疼:全能换机如何做到五大平台一键互传
跨平台换机不再头疼:全能换机如何做到五大平台一键互传

换手机这件事,痛点往往不在“买新机”,而在“搬数据”。iPhone换安卓、鸿蒙换Windows、Mac换安卓……每一次跨平台迁移,都意味着和联系人、照片、聊天记录来一场“手动拉锯战”。更别提那些藏在各品牌官方工具里的隐性门槛:iOS的“… · 2026/9/24 6:51:43

TypeScript - TypeScript 面向对象
TypeScript - TypeScript 面向对象

一、面向对象概述面向对象是程序中一个非常重要的思想,面向对象简而言之就是程序之中所有的操作都需要通过对象来完成举例来说,操作浏览器需要使用 window 对象,操作网页要使用 document 对象,操作控制台要使用 console 对象计算机… · 2026/9/24 6:51:43

Armbian换源全指南:apt源与armbian.list正确配置,告别404和慢速
Armbian换源全指南:apt源与armbian.list正确配置,告别404和慢速

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 6:51:12

Akka Streams 与 Reactive Streams 互操作指南:Publisher / Subscriber / Processor 的无缝桥接实战
Akka Streams 与 Reactive Streams 互操作指南:Publisher / Subscriber / Processor 的无缝桥接实战

后端并发编程异步编程 【免费下载链接】akka-core A platform to build and run apps that are elastic, agile, and resilient. SDK, libraries, and hosted environments. 项目地址: https://gitcode.com/gh_mirrors/ak/akka-core 点击查看 免费下载 Akka Stream… · 2026/9/24 7:39:15

Flink Working Directory 完全指南:进程工作目录配置与跨重启本地恢复实战
Flink Working Directory 完全指南:进程工作目录配置与跨重启本地恢复实战

大数据流处理批处理数据工程 【免费下载链接】flink 项目地址: https://gitcode.com/gh_mirrors/fli/flink 点击查看 免费下载 Working Directory(工作目录)是 Flink 为 JobManager 与 TaskManager 进程提供的本地持久化目录,用于… · 2026/9/24 7:39:08

codeburn sync 团队同步指南:将本地 AI 用量遥测安全推送到共享 OTLP 后端
codeburn sync 团队同步指南:将本地 AI 用量遥测安全推送到共享 OTLP 后端

【免费下载链接】codeburn Free, local tool to track AI coding token usage and cost across 37 tools and agents (Claude Code, Cursor, Codex, Gemini and more), by model, project, and task. npx codeburn 项目地址: https://gitcode.com/gh_mirrors/co/cod… · 2026/9/24 7:39:02

Quick Reference 仓库中的 Pytorch 速查表:张量操作、CUDA 加速与模型导出实战指南
Quick Reference 仓库中的 Pytorch 速查表:张量操作、CUDA 加速与模型导出实战指南

文档知识库教程开发工具 【免费下载链接】reference 为开发人员分享快速参考备忘清单(速查表) 项目地址: https://gitcode.com/jaywcjlove/reference 点击查看 免费下载 本文以 Quick Reference(jaywcjlove/reference)仓库中的 docs/pytorch… · 2026/9/24 7:39:02

PulseBlaster在NV色心实验中的纳秒级时序控制原理与实践
PulseBlaster在NV色心实验中的纳秒级时序控制原理与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 7:38:56

basic-computer-games 之 Hurkle 游戏 MiniScript 移植版:三种运行方式与源码逐行解析
basic-computer-games 之 Hurkle 游戏 MiniScript 移植版:三种运行方式与源码逐行解析

示例工程 【免费下载链接】basic-computer-games An updated version of the classic "Basic Computer Games" book, with well-written examples in a variety of common MEMORY SAFE, SCRIPTING programming languages. See https://coding-horror.github.io/basic… · 2026/9/24 7:38:56

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

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

企业微信二维码