# yolov5_onnxrutime_infer **Repository Path**: yuanfangshangya/yolov5_onnxrutime_infer ## Basic Information - **Project Name**: yolov5_onnxrutime_infer - **Description**: yolov5在onnxruntime上推理实现。 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-08-16 - **Last Updated**: 2023-08-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # yolov5_onnxrutime_infer #### 介绍 yolov5在onnxruntime上推理实现。 1、安装onnxruntime pip install onnxruntime 2、导出yolov5s.pt为onnx,在YOLOv5源码中运行export.py即可将pt文件导出为onnx。 3、使用onnx进行推理,这一步只能获取模型推理产生的候选框,拿到推理结果后还需要进行下一步处理,通过非极大值抑制对候选框进行筛选。 使用onnx加载yolov5s.onnx模型,进行推理计算,打印推理结果,打印的推理结果矩阵为[25200, 85],意味着有25200个检测框,每个检测框包含85个结果。显然拿到直接的推理结果还无法在图像上进行准确的目标绘制,接下来还要进行非极大值抑制才能获取准确推理结果。 4、非极大值抑制:非极大值抑制可以采用OpenCV等接口实现,也可以手动实现。这里根据非极大值原理进行手动实现。 非极大值抑制分为置信度和iou抑制。首先进行置信度抑制,此处置信度为检测框置信度而非分类结果的置信度,设置检测框置信度阈值0.25。 置信度抑制非常简单,即根据置信度阈值,移除阈值以下的候选框,保留阈值以上的候选框进入下一步处理。 在iou抑制之前,先对所有候选框列表进行置信度排序,然后从候选框列表中找出不同类别候选框形成子列表候选框。 iou抑制整体思路:对每个类别候选框取出最大置信度候选框优先输出,再通过最大置信度候选框与其他候选框计算iou,通过iou阈值判断,大于iou阈值则删除,循环计算直至候选框列表为空。 最后将保留的候选框输出,在图像上绘制检测结果。 ![输入图片说明](image.png)