前言
当我们已经有了现成的mxnet模型,如何在自己的数据上测试模型效果呢(即一张一张或者几张几张的过模型),这就涉及到如何读取图像,并将其变换为mxnet认识的结构(一般是4维),并送入模型,其实不光是mxnet,所有的深度学习框架都会有这个处理过程,这里,博主总结了几种常用的方法,都是比较简单的,个人比较喜欢使用mxnet.image.imread()或者是cv2.imread()
其实无论采用什么方法,只要注意以下几点,方法就多了:
- mxnet是RGB格式,不是BGR,所以opencv读取需要变换BGR->RGB。
- 目前默认的格式是[batch, channel, h, w],而一般读取图像的接口默认channel一般是放到后面的,比如opencv读取的图像一般是[h,w,channel],所以这里需要变换,将channel变换到前面去。
- 模型前向传播一般是4维的,读取图像一般是3维的,所以需要增加一个维度变换成4维。
下面介绍一些方法
1、利用mxnet的imread()函数读取图像并进行数据扩增:
#### data augment function
def transform(data,augmenters):
for aug in augmenters:
data = aug(data)
return data
#### 常用操作
cast_aug = mx.image.CastAug()
resize_aug = mx.image.ForceResizeAug