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

使用 PaddleHub 的 yolov3_darknet53_coco2017 模块进行目标检测:安装、预测 API 与 Serving 部署全指南

发布时间:2026/9/24 16:46:11 来源:云帆数科 栏目:资讯中心
使用 PaddleHub 的 yolov3_darknet53_coco2017 模块进行目标检测:安装、预测 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 仓库中 yolov3_darknet53_coco2017 模块文档 为主体系统讲解如何基于 PaddleHub 使用 YOLOv3DarkNet53 骨干网络、COCO2017 数据集训练预训练模型完成目标检测。读完本文你将掌握该模块的环境安装、命令行预测、Python API 调用、结果解析、服务化部署Serving与推理模型导出的完整实战流程并通过源码剖析理解其底层预处理、推理与后处理链路。一、模块基本信息1.1 模块概览Module Nameyolov3_darknet53_coco2017Categoryobject detectionNetworkYOLOv3DatasetCOCO2017Fine-tuning supported or notNoModule Size239MBLatest update date2021-02-26Data indicators-1.2 模型简介YOLOv3 是由 Joseph Redmon 与 Ali Farhadi 提出的单阶段one-stage目标检测器在达到与传统目标检测方法相近精度的前提下推理速度约为传统方法的两倍。YOLOv3 将输入图像划分为网格并对每个网格单元预测边界框bounding box其损失函数由三部分构成定位误差Location loss、置信度误差Confidence loss与分类误差Classification loss。本模块基于 YOLOv3 网络使用 COCO2017 数据集训练可用于图像中目标位置检测。从中文版说明文档可见该模块目前仅支持预测不支持微调这一点与信息表中 Fine-tuning supported or not: No 一致。模块的类别标签文件为 label_file.txt共包含 COCO 数据集的 80 个目标类别person、bicycle、car、dog、cat、bus 等。二、环境依赖与模块安装2.1 环境依赖paddlepaddle 1.6.2paddlehub 1.6.0PaddleHub 的安装方式可参考 PaddleHub 安装文档2.2 安装模块通过 PaddleHub 命令行一键安装$ hub install yolov3_darknet53_coco2017如需安装指定版本例如 1.2.0可显式指定版本号$ hub install yolov3_darknet53_coco20171.2.0安装过程中如遇问题可参考以下快速入门文档Windows 零基础安装Linux 零基础安装MacOS 零基础安装三、命令行预测安装完成后可以直接通过 PaddleHub 命令行对单张图片进行目标检测$ hub run yolov3_darknet53_coco2017 --input_path /PATH/TO/IMAGE其中--input_path指定待检测图片的路径。从 module.py 中run_cmd方法的实现可以看到命令行方式实际支持以下参数--input_path图片路径必填输入--batch_sizebatch 大小默认1--use_gpu是否使用 GPU默认False--output_dir结果图片保存目录默认detection_result--visualization是否保存检测结果图片命令行默认False--score_thresh置信度阈值默认0.5。命令行调用方式更完整的说明见 PaddleHub 命令行指令文档。四、Python API 预测4.1 预测代码示例import paddlehub as hub import cv2 object_detector hub.Module(nameyolov3_darknet53_coco2017) result object_detector.object_detection(images[cv2.imread(/PATH/TO/IMAGE)]) # or # result object_detector.object_detection(paths[/PATH/TO/IMAGE])4.2 API 签名与参数详解def object_detection(pathsNone, imagesNone, batch_size1, use_gpuFalse, output_dirdetection_result, score_thresh0.5, visualizationTrue)该 API 用于检测输入图片中所有目标的位置参数说明如下参数类型说明pathslist[str]图片路径列表imageslist[numpy.ndarray]图片数据列表ndarray.shape 为[H, W, C]BGR 格式batch_sizeintbatch 大小use_gpubool是否使用 GPU若使用 GPU需先设置CUDA_VISIBLE_DEVICES环境变量output_dirstr结果图片的保存路径默认detection_resultscore_threshfloat识别置信度阈值visualizationbool是否将识别结果保存为图片文件NOTE:paths与images两个参数选择其一提供数据即可。在 module.py 中可以看到当use_gpuTrue时会先校验CUDA_VISIBLE_DEVICES环境变量是否正确设置否则抛出RuntimeError提示。4.3 返回结果结构调用返回reslist[dict]列表中的每个元素对应一张输入图片各字段含义如下datalist检测结果列表每个元素为 dictconfidencefloat识别置信度labelstr目标类别标签leftint边界框左上角 x 坐标topint边界框左上角 y 坐标rightint边界框右下角 x 坐标bottomint边界框右下角 y 坐标save_pathstr, optional识别结果图片的保存路径仅当visualizationTrue时存在。后处理逻辑位于 processor.py模型原始输出按lod分段还原为逐图结果row[1]为置信度、row[0]为类别 id通过label_names[category_id]映射为标签名并以score_thresh过滤低置信度框边界框坐标经clip_bbox裁剪到图片尺寸范围内。可视化时draw_bounding_box_on_image 会在原图上绘制红色边界框并在框上方绘制label: confidence%文本。五、源码级原理剖析从输入到输出的完整调用链5.1 推理引擎配置模块在初始化时通过 _set_config 加载随模块发布的 Paddle Inference 模型文件yolov3_darknet53_model/model.pdmodel与model.pdiparams始终创建 CPU predictor禁用 glog 日志与 IR 优化通过读取CUDA_VISIBLE_DEVICES环境变量判断可用 GPU若存在则额外创建 GPU predictor显存池初始大小 500MBdevice_id0推理时依据use_gpu参数选择对应 predictor输入包含两个 tensor图像数据与原始尺寸im_size参见 object_detection。5.2 图像预处理细节模块的数据预处理实现在 data_feed.py 的reader生成器中对每张图片依次执行校验路径有效性读取图片并转为 float32记录原始尺寸im_size供后处理将框坐标映射回原图坐标将 BGR 图像转为 RGB等比缩放到目标尺寸608target_size 608分别计算 x/y 方向缩放系数归一化先除以 255再减去均值mean [0.485, 0.456, 0.406]、除以标准差std [0.229, 0.224, 0.225]通过两次swapaxes将 HWC 排列转换为 CHW 排列。5.3 批处理与推理object_detection内部使用paddle.batch(data_reader, batch_sizebatch_size)包装数据生成器逐 batch 将预处理后的图像数据与尺寸拷贝到 predictor 输入句柄执行predictor.run()后取第一个输出 tensor 交给后处理。批次内的图片索引通过handle_id iter_id * batch_size计算确保结果与输入图片一一对应。六、服务化部署PaddleHub ServingPaddleHub Serving 可将目标检测模块部署为在线 HTTP 服务便于集成到业务系统中。6.1 第一步启动 PaddleHub Serving$ hub serving start -m yolov3_darknet53_coco2017执行成功后即完成目标检测服务化 API 的部署默认端口号为 8866该默认值在 paddlehub/serving/app_compat.py 的run(configsNone, port8866)中定义。NOTE:如使用 GPU 预测需在启动服务前设置CUDA_VISIBLE_DEVICES环境变量否则无需设置。6.2 第二步发送预测请求服务端配置完成后使用以下代码即可发送预测请求并获取结果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/yolov3_darknet53_coco2017 r requests.post(urlurl, headersheaders, datajson.dumps(data)) # 打印预测结果 print(r.json()[results])请求将图片编码为 base64 字符串放入 JSON 的images字段服务端在 serving_method 中通过 base64_to_cv2 解码回 cv2 图像再调用object_detection完成检测并返回结果。七、推理模型导出save_inference_modeldef save_inference_model(dirname)该 API 将模型保存到指定路径便于后续以 Paddle Inference 方式离线部署。该能力继承自 PaddleHub 的BaseModule实现在 paddlehub/module/module.py通过paddle.jit.to_static与paddle.jit.save导出模型输出model.pdmodel网络结构与model.pdiparams参数文件。模块自带的单元测试 test.py 验证了该流程导出后会断言./inference/model.pdmodel与./inference/model.pdiparams均存在。八、测试用例与验证模块目录下的 test.py 提供了完整的单元测试覆盖以下场景paths方式传入图片路径进行检测并断言检测到cat且置信度大于 0.5、边界框坐标在合理范围images方式传入 numpy 数组进行检测结果断言同上visualizationFalse时不保存结果图片传入不存在的路径paths[no.jpg]会触发AssertionError对应 data_feed 中 The ... isnt a valid file path 的断言传入错误的输入类型如images[test.jpg]会触发AttributeErrorsave_inference_model导出后.pdmodel与.pdiparams文件存在。这些测试用例既是模块功能的验证也可作为你集成该模块时的参考样例。九、更新历史Release Note1.0.0初始发布1.1.1修复 numpy 数据读取问题1.2.0移除 fluid API当前仓库中 module.py 的moduleinfo声明的版本即为 1.2.0且已全面采用paddle.inference/paddle.jit等 2.x 风格接口。如需安装历史版本可使用hub install yolov3_darknet53_coco20171.2.0指定版本号。十、常见问题与使用提示GPU 使用前提无论是 Python API 调用还是 Serving 部署使用 GPU 前都必须正确设置CUDA_VISIBLE_DEVICES环境变量否则会抛出异常提示数据输入二选一paths与images只需提供其一二者同时传入时paths优先被读取见 data_feed.py 的读取顺序输入图像格式images参数要求为 BGR 格式的[H, W, C]数组与cv2.imread的输出一致阈值调节可通过调低score_thresh召回更多目标或调高以过滤更多低置信度误检默认值 0.5 适合多数场景模型能力边界该模块仅支持 COCO 80 类目标的检测且不支持微调Fine-tuning如需检测自定义类别或进一步训练需选用支持微调的目标检测模块或自行训练 YOLOv3 模型。赞分享人工智能大模型微调模型推理服务【免费下载链接】PaddleFormersPaddleFormers is an easy-to-use library of pre-trained large language model zoo based on PaddlePaddle.项目地址https://gitcode.com/gh_mirrors/pa/PaddleFormers点击查看免费下载相关推荐marimo Playwright E2E 测试实战从零跑通端到端测试与视觉回归基线管理marimo Playwright E2E 测试实战从零跑通端到端测试与视觉回归基线管理 marimo 的前端 E2E 测试基于 Playwright 构建人工智能大模型微调模型推理服务PaddleHub 图像分类模块 mobilenet_v3_small_imagenet_ssld 使用指南安装、API 预测与 Serving 部署PaddleHub 图像分类模块 mobilenet_v3_small_imagenet_ssld 使用指南安装、API 预测与 Serving 部署 本文以人工智能大模型微调模型推理服务PaddleFormers 目标检测实践基于 PaddleHub 的 YOLOv3-ResNet50-vd-COCO2017 模块安装、预测与 Serving 部署全指南PaddleFormers 目标检测实践基于 PaddleHub 的 YOLOv3 ResNet50 vd COCO2017 模块安装、预测与 Serving人工智能大模型微调模型推理服务上一篇从WaveNet到VITSMaths, CS AI Compendium文本转语音TTS技术演进完整指南下一篇GetQzonehistory三步完成QQ空间历史说说完整备份的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Umi-OCR 离线OCR实战指南:截图、批量、PDF识别三件事一次搞定
Umi-OCR 离线OCR实战指南:截图、批量、PDF识别三件事一次搞定

Umi-OCR 离线OCR实战指南:截图、批量、PDF识别三件事一次搞定 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置… · 2026/9/24 16:46:11

pip 需求文件格式(requirements.txt)完整指南:语法、选项与源码解析
pip 需求文件格式(requirements.txt)完整指南:语法、选项与源码解析

pip 需求文件格式(requirements.txt)完整指南:语法、选项与源码解析 【免费下载链接】pip The Python package installer 项目地址: https://gitcode.com/gh_mirrors/pi/pip 导读:需求文件(requirements file&a… · 2026/9/24 16:46:11

Valetudo 新人指南:本地化扫地机器人云替代方案的工作原理、能力边界与选型安装路径
Valetudo 新人指南:本地化扫地机器人云替代方案的工作原理、能力边界与选型安装路径

物联网后端前端 【免费下载链接】Valetudo Cloud replacement for vacuum robots enabling local-only operation 项目地址: https://gitcode.com/gh_mirrors/va/Valetudo 点击查看 免费下载 Valetudo 是一个面向扫地机器人的"云替代方案"(cl… · 2026/9/24 16:46:04

DEIM 改进系列(九):Mamba 状态空间改进——把 neck 通路从“单点卷积“升级为“序列扫描“
DEIM 改进系列(九):Mamba 状态空间改进——把 neck 通路从“单点卷积“升级为“序列扫描“

DEIM 的 neck lateral 通路(融合前投影)原始实现是 11 卷积——逐像素独立处理,没有序列上下文;而 Mamba 这类状态空间模型用线性复杂度的序列扫描,天然具备长程上下文建模能力。针对这条"只看单点、不看邻居&quo… · 2026/9/24 17:29:00

咨询公司新产品开发指南
咨询公司新产品开发指南

本文档为《全球知名咨询公司新产品开发指南》,适配制造业(如电子、消费产品等)的产品研发部门(产品设计 / 研发管理岗)、市场部门(市场调研 / 品牌营销岗)、销售部门(销售管理 / 区域… · 2026/9/24 17:29:00

YOLO端上部署:MNN Android部署YOLOv8 YOLO11 YOLO26(含源码,支持CPU和GPU)
YOLO端上部署:MNN Android部署YOLOv8 YOLO11 YOLO26(含源码,支持CPU和GPU)

YOLO端上部署:MNN Android部署YOLOv8 YOLO11 YOLO26(含源码,支持CPU和GPU) 目录 YOLO端上部署:MNN Android部署YOLOv8 YOLO11 YOLO26(含源码,支持CPU和GPU) 1. 前言 2. 部署框架MNN 3. 导出MNN模型 4. Android端上部署模型 … · 2026/9/24 17:28:54

导师放养,机械博士论文初稿拖到Deadline还毫无头绪,怎么办?
导师放养,机械博士论文初稿拖到Deadline还毫无头绪,怎么办?

前言机械博士最焦虑的时刻,可能不是实验失败,而是论文Deadline已经摆在眼前,打开Word却不知道从哪里开始。几年时间里做了大量实验、仿真,也发表了几篇SCI,可真正面对博士毕业论文时,却发现:实验… · 2026/9/24 17:28:54

DEIM 改进系列(八):频域处理改进——给特征“换个坐标系看问题“
DEIM 改进系列(八):频域处理改进——给特征“换个坐标系看问题“

DEIM 从主干到 neck 的所有算子都在空域干活——卷积在空域滑窗、注意力在空域加权,但很多结构信息(纹理、边缘、周期性)在频域里表达得更清晰。针对"全程空域视角"这个盲区,我们做了一批频域处理替换变体,双… · 2026/9/24 17:28:54

新型智慧城市建设项目初步设计与投资概算
新型智慧城市建设项目初步设计与投资概算

本份文档为地市级别智慧城市完整初设概算实战范本,适配智慧城市项目投标、可研‑初设编制、政务数字化咨询方案撰写。文档遵循国家及地方数字政府政策标准,采用 “1234” 总体架构,覆盖基础设施、八大基础支撑平台、多类主题智慧应用&#xf… · 2026/9/24 17:28:54

基于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

了解更多?预约专属演示

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

企业微信二维码