MMLab-dataset_analysis

数据分析工具

mmyolo、mmsegmentation等提供了数据集分析工具
在这里插入图片描述

dataset_analysis.py

数据采用coco格式数据
根据配置文件分析全部数据类型或指定类型的Bbox_num、bbox_wh\bbox_wh_ratio、bbox_area
在这里插入图片描述
在这里插入图片描述

示例数据采用的是讯飞X光安检物品监测数据集,通过结果可以看出Knife、wrench、powerbank等小物品的数据相对较少,Knife类别最少,存在显著的类别不平衡问题。

数据可视化分析

  • bbox_area
    在这里插入图片描述
  • bbox_ratio
    在这里插入图片描述
  • bbox_wh
    在这里插入图片描述

benchmark.py

测试模型性能:推理速度

!python /root/mmyolo/tools/analysis_tools/browse_coco_json.py --data-root /root/autodl-tmp/train --img-dir /root/autodl-tmp/train/images/ --ann-file /root/autodl-tmp/train/annotations/instances_train2014.json

browse_coco_json.py

将数据集与标签进行可视化

browse_dataset.py

-将数据可视化保存输出到文件夹下,包含两种模式
-m:‘original’, ‘transformed’, ‘pipeline’
‘original’:金输出原始图像
‘transformed’:输出变换后的图像
‘pipeline’:输出数据增流各个阶段的图像

Optimize_anchors

通过分析数据,优化先验anchor的设置,仅支持YOLOAnchorGenerator
“”"Optimize anchor settings on a specific dataset.

This script provides three methods to optimize YOLO anchors including k-means
anchor cluster, differential evolution and v5-k-means. You can use
--algorithm k-means, --algorithm differential_evolution and
--algorithm v5-k-means to switch those methods.

Example:

Use k-means anchor cluster::

    python tools/analysis_tools/optimize_anchors.py ${CONFIG} \
    --algorithm k-means --input-shape ${INPUT_SHAPE [WIDTH HEIGHT]} \
    --out-dir ${OUT_DIR}

Use differential evolution to optimize anchors::

    python tools/analysis_tools/optimize_anchors.py ${CONFIG} \
    --algorithm differential_evolution \
    --input-shape ${INPUT_SHAPE [WIDTH HEIGHT]} \
    --out-dir ${OUT_DIR}

Use v5-k-means to optimize anchors::

    python tools/analysis_tools/optimize_anchors.py ${CONFIG} \
    --algorithm v5-k-means \
    --input-shape ${INPUT_SHAPE [WIDTH HEIGHT]} \
    --prior_match_thr ${PRIOR_MATCH_THR} \
    --out-dir ${OUT_DIR}

该工具默认调用gpu进行数据计算,算法名称还有个小bug,需要注意一下

 if args.algorithm == 'k-means':
      optimizer = YOLOKMeansAnchorOptimizer(
          dataset=dataset,
          input_shape=input_shape,
          device=args.device,
          num_anchor_per_level=num_anchor_per_level,
          iters=args.iters,
          logger=logger,
          out_dir=args.out_dir)
  elif args.algorithm == 'DE':
      optimizer = YOLODEAnchorOptimizer(
          dataset=dataset,
          input_shape=input_shape,
          device=args.device,
          num_anchor_per_level=num_anchor_per_level,
          iters=args.iters,
          logger=logger,
          out_dir=args.out_dir)
  elif args.algorithm == 'v5-k-means':
      optimizer = YOLOV5KMeansAnchorOptimizer(
          dataset=dataset,
          input_shape=input_shape,
          device=args.device,
          num_anchor_per_level=num_anchor_per_level,
          iters=args.iters,
          prior_match_thr=args.prior_match_thr,
          mutation_args=args.mutation_args,
          augment_args=args.augment_args,
          logger=logger,
          out_dir=args.out_dir)
  else:
      raise NotImplementedError(
          f'Only support k-means and differential_evolution, '
          f'but get {args.algorithm}')
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云朵不吃雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值