博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记录SSD中的一些东西
阅读量:5264 次
发布时间:2019-06-14

本文共 1370 字,大约阅读时间需要 4 分钟。

AnnotatedDatum是存放图片和BBox的类

// 估计是一张图片就对应于一个AnnotatedDatum message AnnotatedDatum {  enum AnnotationType {    BBOX = 0;  }   // 存储图片的数据,需要imdecode  optional Datum datum = 1;  // If there are "rich" annotations, specify the type of annotation.  // Currently it only supports bounding box.  // If there are no "rich" annotations, use label in datum instead.  optional AnnotationType type = 2;  // Each group contains annotation for a particular class.   // 每一类都会有一个annotation_group保存属于改类的bbox  repeated AnnotationGroup annotation_group = 3;}

 

数据增强效果图

假设原图输入是一张640*480的图片,这里由于版面问题我放缩了图片尺寸并且没做mean subtract,由于最后会有resize参数导致输出的图片都会resize到300x300,但是主要看的是增强的效果,SSD中的数据增强的顺序是:

DistortImage: 这个主要是修改图片的brightness,contrast,saturation,hue,reordering channels,并没改变标签bbox

ExpandImage: 这个主要是将DistortImage的图片用像素0进行扩展,标签bbox此时肯定会改变,就重新以黑边的左上角为原点计算[0,1]的bbox的左上角和右下角两个点坐标。

BatchSampler: 由于这里选错图了,BatchSampler必须要有GT的存在才会生效,由于我做的是人的检测所以图中没人就不会生成sampled_bboxes,后面修改例子。sampled_bboxes的值是随机在[0, 1]上生成的bbox,并且和某个gt_bboxes的IOU在[min, max]之间。由于proto中配的max_sample都是为1,所以每个batch_sampler可能会有1个sampled_bbox,随机取一个sampled bbox并且裁剪图片和标签。标签裁剪也很好理解首先要通过ProjectBBox将原坐标系标签投影到裁剪后图片的新坐标系的坐标,然后再ClipBBox到[0,1]之间。

Resize:放缩到300x300,最后将图片放缩到300x300,标签框也是线性放缩坐标而已。

Crop:原本data_transformer还会crop的,这个参数是配在prototxt中,默认是原图 所以就和没crop一样。如果要crop的话标签也是会和之前BatchSampler那样处理。

 

  

转载于:https://www.cnblogs.com/Key-Ky/p/6866743.html

你可能感兴趣的文章
shell脚本
查看>>
Upload Image to .NET Core 2.1 API
查看>>
Js时间处理
查看>>
Java项目xml相关配置
查看>>
三维变换概述
查看>>
vue route 跳转
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。...
查看>>
Linux中防火墙centos
查看>>
mysql新建用户,用户授权,删除用户,修改密码
查看>>
FancyCoverFlow
查看>>
JS博客
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>
283. Move Zeroes把零放在最后面
查看>>
Visual Studio Code 打开.py代码报Linter pylint is not installed解决办法
查看>>
Python 数据类型
查看>>
S5PV210根文件系统的制作(一)
查看>>
centos下同时启动多个tomcat
查看>>
slab分配器
查看>>