首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

YOLOv5全面解析教程:使用模型融合提升mAP和mAR

1

模型融合 (Model Ensembling)

融合建模(Ensemble modeling)是这样一个过程:通过使用许多不同的建模算法或使用不同的训练数据集,创建多个不同的模型来预测结果。然后,融合模型汇总每个基础模型(base model)的预测结果,并对未见过的数据进行最终预测。使用融合模型的动机是为了减少预测的泛化误差。只要基础模型具有多样性和独立性,采用融合方法时,模型的预测误差就会减小。这种方法在做出预测时寻求集体智慧(wisdom of crowd)。尽管融合模型在模型中具有多个基础模型,但它就像单个模型那样运行和执行。(https://www.sciencedirect.com/topics/computer-science/ensemble-modeling)

2

开始之前

克隆工程并在 Python>3.7.0 的环境中安装 requiresments.txt , OneFlow 请选择 nightly 版本或者 >0.9 版本 。模型和数据可以从源码中自动下载。

3

普通测试

在尝试TTA之前,我们希望建立一个基准能够进行比较。该命令在COCO val2017上以640像素的图像大小测试YOLOv5x。yolov5x 是可用的最大并且最精确的模型。其它可用的模型是 yolov5s, yolov5m  和 yolov5l等  或者 自己从数据集训练出的模型 ./weights/best。有关所有可用模型的详细信息,请参阅我们的 READEME table

输出:

4

融合测试

通过在任何现有的 val.py或detect.py命令中的 --weights 参数后添加额外的模型,可以在测试和推理时将多个预训练模型融合在一起。

将 yolov5x, yolov5l6 两个模型的融合测试的指令如下:

声明:上述两次测试的mAP,mAR结果如下:

5

融合推理

附加额外的模型在 --weights 选项后自动启用融合推理:

Output:

参考文章

https://github.com/ultralytics/yolov5/issues/318

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230523A012I000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券