人工智能大模型微调模型推理服务【免费下载链接】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),仅供参考
