“优质数据”是训练出好模型的前提,如同食材对于料理的重要性,是一样的道理。通用类数据集能应付大部分实验用途的需求,但面对很多特定场景时就不是那么管用了,例如在工业上的PCB板瑕疵检测、物流分拣功能、农业蔬果采摘、医学肿瘤分享等应用,就需要在实际场景中采集现场数据。
但是能够呈现我们所要特征的数据量通常是很有限的,所以显得特别珍贵。虽然我们可以在这些图形上进行非常精密的标注,但碍于数量的限制,在最终训练出来的模型效果还是会大打折扣。
数据增强(augment)技术能非常有效地解决数据量不足的问题,透过多种图像处理的技巧,例如空间转换、颜色调整、模糊度等方式,将这些珍贵而且有限的图像数据进行极大化的扩充,白话地说就是把一张图像当10张用,如果我们手上只有100张优质图像,就能扩充到上千张,然后合并到训练用途的数据集中,这样就能解决数据量不足的问题。
TAO启动器提供的augment指令,就是负责处理离线图像增强的功能,目前具备以下三类图像处理的方式:
下图是一个简单的例子,将左边原始数据透过不同图像处理技巧,就能获得更多的变种图像(中间与右边),然后将增强过的图像与标注,纳入训练用的数据集中。
图像增强过程中比较复杂的部分,只要牵涉到“空间增强”的处理,例如将图像做90度旋转处理或改变图像尺寸等,就得将标注文件中所有对象的标框坐标也跟着做转换,存放到新图像所对应的标注文件中,这是增强过程中最关键的处理。
执行这项任务还需要一个配置文件的辅助,将要处理的效果写入配置文件中,然后使用 ”tao augment -a <配置文件> -d <原始数据路径> -o <输出路径>” 指令格式,就能执行数据增强的任务。
配置文件里面主要分为以下四个组别:
关于各项参数的详细配置细节,请访问https://docs.nvidia.com/tao/tao-toolkit 里面CV Applications下的 “Offline Data Augmentation” 部分。
现在就开始执行TAO提供的augment范例,请在Jupyter进入cv_samples/augment目录中,里面有augment.ipynb脚本以及specs目录中有一个default_spec.txt配置文件。
点击augment.ipynb开启执行脚本,按照以下步骤执行:
脚本中“0_Set up env variables”步骤中,第一个执行块就是配置环境变量。最简单的配置就是将“LOCAL_PROJECT_DIR”设为目前执行位置。请执行以下修改:
将 os.environ["LOCAL_PROJECT_DIR"] = FIXME
改成 os.environ["LOCAL_PROJECT_DIR"] = os.getcwd()
然后执行这个步骤的三个指令块。
因为augment功能只支持KITTI格式,因此必须准备这种格式的数据集,如果使用其他格式数据集,请先坐好格式转换。
执行脚本在这里指引大家去KITTI官方网站下载数据集,但整个过程相当繁琐,而且从境外下载的网速也个问题,因此请跳过整个 “A. Download the dataset” 所有执行块,以及 “B. Verify downloaded dataset” 前三个执行块。
我们在https://pan.baidu.com/s/1WcRt9ONqsYhLRmL8Rg8_YQ(密码855n)百度网盘上存放了data_object_image_2.zip与data_object_label_2.zip两个压缩文件,直接在这里下载到augment目录下比较方便。
下载完后,请在Jupyter开启一个终端,执行以下指令:
$ $ $ |
cd ~/tao/cv_samples/augment # 请根据您实际路径 unzip -u data_object_image_2.zip -d data unzip -u data_object_label_2.zip -d data |
然后就会形成以下的目录结构:
现在执行 “B. Verify downloaded dataset” 的最后两个指令块 “# verify” 与 “ Sample Kitti label”,能如下图般正常执行就表示数据环境都已经调试完成。
在执行以下指令块之前,先打开specs/dafault_spec.txt文件,里面的设置组在前面已经讲解过,请自行添加或删除设置组的参数,存档后执行下面指令块:
正确执行时,会在最下面出现下图的信息,表示正在根据配置文件的参数,进行数据增强的作业。
可以比对一下原始数据的标签与增强后的同名标签,看看里面的不同之处,并且试着多修改配置文件里面的各项参数,比对一下不同参数所产生的效果。
由于增强后的数据集文件名与原始数据相同,因此最后还需要再做一个“批量改名”的工作,在Ubuntu操作系统可以用以下指令来执行:
$
$ $ |
sudo apt install rename # 在文件名开头添加字符,例如‘a’。注意,图像与标签的文件名必须对应上 cd <增强后的图像路径> && rename 's/^/a/' *.png cd <增强后的标签路径> && rename 's/^/a/' *.txt |
然后将修改过文件名的图像与标签文件,全部移到原始数据集中,这样就能让数据集的内容快速扩充,即便原本的优质数据量只有100张的数量,也可以轻松透过这个TAO的数据增强工具,迅速扩充到好几倍的数据量,提高模型训练的结果。【完】
好文章,需要你的鼓励
后来广为人知的“云上奥运”这一说法,正是从这一刻起走上历史舞台。云计算这一概念,也随之被越来越多的人所熟知。乘云科技CEO郝凯对此深有感受,因为在2017年春节过后不久,他的公司开始成为阿里云的合作伙伴,加入了滚滚而来的云计算大潮中。同一年,郝凯带领团队也第一次参加了阿里云的“双11”活动,实现了800万元的销售业绩。
随着各行各业数字化变革的不断深入,人类社会正加速迈向智能化。作为智能世界和数字经济的坚实底座,数据中心也迎来了蓬勃发展。面