96SEO 2026-02-19 22:38 10
用ONNX模型推理#xff0c;便于算法到开发板或芯片的部署。

备注#xff1a;本文是使用Python#xff0c;编写ONNX模型推理代码的
目…本文分享YOLO11中从xxx.pt权重文件转为.onnx文件然后使用.onnx文件进行目标检测任务的模型推理。
YOLO(runs/detect/train/weights/best.pt)#
model.export(formatonnx)运行代码后会在上面路径中生成best.onnx文件的
比如填写的路径是runs/detect/train/weights/best.pt那么在runs/detect/train/weights/目录中会生成与best.pt同名的onnx文件即best.onnx
YOLO(runs/detect/train/weights/best.pt)#
640x640。
如果需要其他尺寸可以修改这个值。
kerasFalse不导出为
量化。
dynamicFalse不启用动态输入尺寸。
simplifyTrue简化模型以提升
参考官网文档https://docs.ultralytics.com/modes/export/#arguments
支持的导出格式format参数值生成的模型示例model.export(
)函数的参数PyTorch-yolo11n.pt-TorchScripttorchscriptyolo11n.torchscriptimgsz,
batchONNXonnxyolo11n.onnximgsz,
batchOpenVINOopenvinoyolo11n_openvino_model/imgsz,
batchTensorRTengineyolo11n.engineimgsz,
batchCoreMLcoremlyolo11n.mlpackageimgsz,
SavedModelsaved_modelyolo11n_saved_model/imgsz,
TPUedgetpuyolo11n_edgetpu.tfliteimgszTF.jstfjsyolo11n_web_model/imgsz,
batchPaddlePaddlepaddleyolo11n_paddle_model/imgsz,
batchNCNNncnnyolo11n_ncnn_model/imgsz,
填充图像自动调整图像尺寸使其符合模型的输入尺寸要求并归一化并转换为模型输入的格式
执行推理。
预处理后的图像输入到模型中模型返回预测的边界框、类别和分数等输出结果。
对模型输出的边界框、类别和分数进行处理首先根据置信度阈值过滤低置信度的检测结果。
然后根据缩放比例将边界框映射回原图的尺寸应用非极大值抑制NMS去除重叠的边界框最终提取有效的检测结果。
在输入图像上绘制检测到的边界框、类别名称和置信度使用不同颜色区分不同类别的对象。
可选择将带有检测结果的图像保存到文件中最终输出检测结果保存的路径。
input_imageself.confidence_thres
为每个类别生成一个颜色调色板self.color_palette
ort.InferenceSession(self.onnx_model,
providers[CUDAExecutionProvider,
session.get_inputs()input_shape
input_shape[2]self.input_height
主要功能对输入的图像进行读取、颜色空间转换、尺寸调整、归一化等预处理操作并返回适合模型输入的图像数据。
函数保持图像的宽高比并填充图像使其符合模型要求的输入尺寸。
归一化图像数据像素值除以
preprocess(self):对输入图像进行预处理以便进行推理。
返回image_data:
image_data预处理函数preprocess会依赖letterbox函数。
letterbox函数功能将图像缩放并进行填充以保持宽高比最终将图像调整到指定的输入尺寸。
计算图像的缩放比例保证宽高比不变。
根据缩放后的图像尺寸计算需要的填充量上下左右。
对图像进行缩放和添加边框填充确保最终图像尺寸符合目标输入尺寸。
返回调整后的图像、缩放比例及填充尺寸。
interpolationcv2.INTER_LINEAR)#
该代码的功能是对模型的输出结果进行后处理主要用于从目标检测模型的输出中提取边界框bounding
boxes、置信度分数和类别ID并将这些检测结果绘制在输入图像上。
将模型的输出数据进行转置和压缩使其符合处理的预期格式。
遍历模型的每一个检测结果提取检测框的坐标x,
h、类别得分并通过阈值过滤掉低置信度的检测结果。
计算检测框在原始图像上的实际位置考虑缩放和填充的影响。
根据图像的缩放比例和填充量将检测框的坐标从网络输入尺寸如640x640调整回原始图像尺寸。
使用非极大值抑制NMS算法对检测结果进行过滤删除重叠的检测框仅保留最高置信度的框。
方法在输入图像上绘制边界框并标注检测类别和置信度。
最终返回包含检测结果的图像图像上绘制了所有有效的检测框和对应的标签。
np.transpose(np.squeeze(output[0]))rows
height])scores.append(max_score)class_ids.append(class_id)indices
class_ids[i]self.draw_detections(input_image,
该代码的功能是根据检测结果在输入图像上绘制边界框和标签以可视化目标检测的结果。
class_id):在输入图像上绘制检测到的边界框和标签。
参数img:
绘制填充的矩形作为标签文本的背景cv2.rectangle(img,
input_imageself.confidence_thres
为每个类别生成一个颜色调色板self.color_palette
preprocess(self):对输入图像进行预处理以便进行推理。
返回image_data:
interpolationcv2.INTER_LINEAR)#
np.transpose(np.squeeze(output[0]))rows
height])scores.append(max_score)class_ids.append(class_id)indices
class_ids[i]self.draw_detections(input_image,
class_id):在输入图像上绘制检测到的边界框和标签。
参数img:
绘制填充的矩形作为标签文本的背景cv2.rectangle(img,
ort.InferenceSession(self.onnx_model,
providers[CUDAExecutionProvider,
session.get_inputs()input_shape
input_shape[2]self.input_height
argparse.ArgumentParser()parser.add_argument(--model,
defaultruns/detect/train/weights/best.onnx,
模型路径。
)parser.add_argument(--img,
help输入图像的路径。
)parser.add_argument(--conf-thres,
help置信度阈值)parser.add_argument(--iou-thres,
保存输出图像到文件cv2.imwrite(det_result_picture.jpg,
runs/detect/train/weights/best.onnx
可视化看一下分割效果保存名称是det_result_picture.jpg
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback