yolov5输出生成统计图
时间: 2025-07-04 15:12:13 浏览: 3
### 如何使用 YOLOv5 生成检测结果的统计图
为了生成 YOLOv5 的检测结果统计图表,可以通过以下方法实现:
#### 方法概述
YOLOv5 提供了丰富的接口用于处理检测结果。通过解析其输出的数据结构,可以进一步生成各种形式的统计数据和可视化图表。具体来说,可以从以下几个方面入手[^1]:
1. **获取检测框信息**
在推理阶段,YOLOv5 返回的结果通常是一个列表,其中包含了每个检测对象的信息(类别、置信度分数以及边界框坐标)。这些数据可以直接被用来计算各类指标。
2. **利用 Pandas 进行数据分析**
可以将检测结果存储为 DataFrame 格式的表格文件,并借助 `pandas` 库完成初步的数据整理工作。例如按类别汇总数量或者平均置信度等操作非常方便快捷。
3. **绘图库的选择与应用**
常见的 Python 绘图工具如 Matplotlib 和 Seaborn 都非常适合制作柱状图、饼图等多种类型的图形来展示分析成果;另外还有 Plotly 等交互性强的选项可供考虑。
下面给出一段简单的代码示例说明如何基于 PyTorch 版本下的 YOLOv5 实现这一流程:
```python
import torch
from matplotlib import pyplot as plt
import seaborn as sns
sns.set_theme()
# 加载预训练权重及配置参数
model = torch.hub.load('ultralytics/yolov5', 'yolov5s')
def plot_detection_stats(img_paths):
all_results = []
for img_path in img_paths:
results = model(img_path) # 执行推断
df = results.pandas().xyxy[0] # 结果转成 pandas dataframe
all_results.append(df)
combined_df = pd.concat(all_results, ignore_index=True)
class_counts = combined_df['name'].value_counts()
fig, ax = plt.subplots(figsize=(8,6))
sns.barplot(x=class_counts.index[:10], y=class_counts.values[:10])
ax.set_title('Top Detected Classes')
ax.set_xlabel('Class Name')
ax.set_ylabel('Count')
plt.show()
if __name__ == "__main__":
images = ['image1.jpg','image2.jpg']
plot_detection_stats(images)
```
此脚本会读取指定路径下的一组图片文件,逐一对它们执行目标识别任务并将所得记录累积起来形成总的DataFrame表单最后选取前十个最常见的类目绘制条形统计图呈现出来[^4].
---
#### 注意事项
- 如果希望得到更详细的性能评估报告,则可能还需要额外引入其他第三方包比如 scikit-learn 来辅助完成混淆矩阵构建等工作。
- 对于大规模项目而言建议采用数据库管理系统保存长期积累下来的大量标注样本及其关联属性以便后续查询检索更加高效便捷。
---
阅读全文
相关推荐


















