首页 > 其他分享 >MMDet——pipline及数据增强模块解析

MMDet——pipline及数据增强模块解析

时间:2022-12-08 15:07:13浏览次数:74  
标签:ratio img type results MMDet dict 模块 pts pipline

博主目前在基于mmdet做HD Map的相关工作,因此需要从数据集、pipline以及模型结构各个方面都需要进行重构,而在pipline中,对于之前Detection通用的pipline,需要对Box的GT处理进行变化,以此记录。
首先贴上mmdet官方对pipline的讲解:教程 3: 自定义数据预处理流程
其次贴上另一个大神带图讲解:mmdetection中数据增强的可视化

这里我们仅对train_pipline进行讲解:

train_pipline

train_pipeline = [
    dict(type='LoadImageFromFile'),
    dict(type='LoadAnnotations', with_bbox=True),
    dict(type='Resize', img_scale=(1333, 800), keep_ratio=True),
    dict(type='RandomFlip', flip_ratio=0.5),
    dict(type='Normalize', **img_norm_cfg),
    dict(type='Pad', size_divisor=32),
    dict(type='DefaultFormatBundle'),
    dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels']),
]
  1. LoadImageFromFileLoadAnnotations
    • 从名字就可以知道,这两个method分别是读取imageannotation
    • 一般LoadImageFromFile不需要更改;
    • 如果你的GT不是Object Detection中的box,那么就要重点要更改一下LoadAnnotations函数。

例如我这里的GT是点的形式,那么我就把原先的_load_bboxes改成了_load_pts,同时对里边,只需要把点保存成numpy.array的形式,放进results里边就行了。

	def _load_pts(self, results):
        """Private function to load points annotations.
        Args:
            results (dict): Result dict from :obj:`mmdet.CustomDataset`.
        Returns:
            dict: The dict contains loaded points annotations.
        """
        pts_ego3d_list = []
        for pts_anno in results['ann_info']:
            if self.pts_type == '2D':
                pts_ego3d_list.append(np.array(pts_anno['pts_ego3d'], dtype=np.float32)[:, :2])  
            else:
                pts_ego3d_list.append(np.array(pts_anno['pts_ego3d'], dtype=np.float32))    
        results['gt_pts'] = np.stack(pts_ego3d_list, axis=0)
        return results
        
	def __call__(self, results):
        """Call function to load multiple types annotations.

        Args:
            results (dict): Result dict from :obj:`mmdet.CustomDataset`.

        Returns:
            dict: The dict contains loaded bounding box, label, mask and
                semantic segmentation annotations.
        """
        if self.with_pts:
            results = self._load_pts(results)
        if self.with_label:
            results = self._load_labels(results)
        return results
  1. Resize
    • Resize是对所有的info进行resize,例如imagegt_bboxes等;
    • 主要说一下几个参数:
      • img_scale:配合keep_ratio一起使用;可以是个list,例如img_scale=[(736, 1333), (768, 1333), (800, 1333)],如果keep_ratio=True,那么image和其他的GT都会按照给定img_scale中能够保证图像最大的参数去resize;如果为keep_ratio=False,那么就是按照给定的img_scale分别去resize长和宽。总之,最终的image的对应边尺寸不会大于img_scale给定的任意一边。
      • 参考理解:目标检测中的resize
      • MMDetection 图像缩放 Resize 详细说明
dict(type='Resize', img_scale=(1333, 800), keep_ratio=True),
  1. RandomFlip
    • RandomFlip是对所有的info进行flip,例如imagegt_bboxes等;
    • 主要说一下几个参数:
      • flip_ratio:每张image做flip的概率。

标签:ratio,img,type,results,MMDet,dict,模块,pts,pipline
From: https://blog.51cto.com/u_15906550/5921702

相关文章

  • 1200V CoolSiC模块IMBG120R140M1H SICFET N-CH 18A
    IMBG120R140M1H模块SICFETN-CH1.2KV18ATO263(IMBG120R140M1HXTMA1)说明:1200VCoolSiC模块是碳化硅(SiC)MOSFET模块,具有较高的效率和系统灵活性。这些模块采用近阈值......
  • Pytest----如何使用logging模块写日志
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • jieba 模块
    1特点支持四种分词模式:精确模式,试图将句子最精确地切开,适合文本分析;全模式,把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;搜索引擎模......
  • 电阻电位器电子尺转RS-485,位移角度转Modbus模块 检测模拟信号 YL123
    特点:●电阻电位器电子尺信号采集转换为RS-485输出●采用12位AD转换器,测量精度优于0.1%●通过RS-485接口可以程控校准模块精度●信号输入/输出之间隔离耐压1000VDC●......
  • 一文搞懂蓝牙模块各种工作模式
    ​摘要:本文主要归纳总结蓝牙模块的不同工作模式,通过蓝牙模块不同的工作模式了解其扮演不同角色时工作的一个基本原理,为更深入的研究蓝牙模块底层的工作机制和技术方案......
  • 一文搞懂蓝牙模块各种工作模式
    ​摘要:本文主要归纳总结蓝牙模块的不同工作模式,通过蓝牙模块不同的工作模式了解其扮演不同角色时工作的一个基本原理,为更深入的研究蓝牙模块底层的工作机制和技术方案......
  • 学成在线项目-精品推荐模块
    学成在线项目-精品推荐模块思路:大盒子包含三个小盒子,左边精品推荐,中间用小li包含小a,右边是修改盒子。分析完毕,开干。1、效果图如下2、html代码如下:<!DOCTYPEhtml......
  • win 下编译OpenCV 3.1.0 扩展模块
    前言:因为需要用到扩展模块的一些方法,所以这里把扩展模块也编译进去。(不然的话直接https://sourceforge.net/projects/opencvlibrary/files/opencvwin/3.1.0/opencv-3.1.0.......
  • Python爬虫实战,requests模块,Python抓取虎牙直播美女封面图片
    前言今天给大家的介绍Python爬取海量美女图片并保存本地。开发工具Python版本:3.8相关模块:requests模块multiprocessing模块urllib模块json模块环境搭建安装Pyth......
  • uniapp的拖拽模块movable-view
    可移动的视图容器,在页面中可以拖拽滑动或双指缩放。参考:movable-view|uni-app官网(dcloud.net.cn);(4条消息)微信小程序开发(七):movable-area和movable-view_Hansel.Wn......