机器学习之Matlab制作自己的数据集

机器学习之Matlab制作自己的数据集

制作数据集的方法

机器学习图像特征的时候,需要一定的样本,这些样本包含训练对象的基本数据:图像特征和所对应类别,即标签。
笔者总结了当前存在的两种生成数据集的方式,也应用在不同的场景:

  • 1、训练对象被单*剪,并将每一类单独保存;
  • 2、一张图有多个训练对象,将训练对象位置和类别对应保存。

第一种方式比较简单,在训练好的模型,直接检测测试集,从而评估模型好坏。
但是,如何在整幅图寻找目标并标记出不同位置呢?似乎是个挺难的问题,如果没有现成的检测框架,检测依然会很难。

第二种方式,对数据集的处理比较复杂,笔者分享一个比较笨重的方法,
首先明确下目标:
需要生成训练图像中,每个被训练对象的位置,类别,图像宽高等,我们把焦点锁在位置。

一般推荐LableImage工具,但是很多人不好上手,加上安装很多库,安装出现异常等。
笔者就是因为出现安装异常,决定寻找其他救命稻草。

Matlab做LableImage

众所周知,Matlab功能强大,最擅长矩阵处理。
今天,我们看一下这个标记图像功能。网上很多推荐的需要三个还是几个代码,第一个和后边的运行不同程序,今天,我们分享一个简单的,但冗杂的。

首先,在命令行执行以下指令:

trainingImageLabeler

  • 1
  • 2

弹出一个这样一个界面,可以批量图像处理。添加图像、选定ROI,都很灵活。

机器学习之Matlab制作自己的数据集

这个界面很简洁了,不需要细讲。
记得每次截取位置后点击那个绿色对号,它会把位置信息保存在一个结构体里。

笔者批量标记了很多图像,然后生成这样一个结构体:

机器学习之Matlab制作自己的数据集

目标信息基本得到了!!!
欢呼雀跃~~~

因为数据集还需要其他信息,类似宽高等,可以在代码中添加。
笔者采用了一个特别笨的方法:复制到excel。
其实有比较简单的,将数据直接保存到csv格式。
可以参考这篇:https://blog.csdn.net/weixin_38709804/article/details/80173304

合乎TensorFlow的格式

因为这部分数据集是要在TensorFlow中使用,我们按照需要的格式,处理成以下格式:

机器学习之Matlab制作自己的数据集

接下来的事情,就是调用csv_tfrecord,生成直接处理的TFRecord格式了。
可能路径需要相对路径,不太确定,自行决定哈。
Matlab还是很强大的哈。

        </div>
					<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-258a4616f7.css" rel="stylesheet">
            </div>
</article>

制作数据集的方法

机器学习图像特征的时候,需要一定的样本,这些样本包含训练对象的基本数据:图像特征和所对应类别,即标签。
笔者总结了当前存在的两种生成数据集的方式,也应用在不同的场景:

  • 1、训练对象被单*剪,并将每一类单独保存;
  • 2、一张图有多个训练对象,将训练对象位置和类别对应保存。

第一种方式比较简单,在训练好的模型,直接检测测试集,从而评估模型好坏。
但是,如何在整幅图寻找目标并标记出不同位置呢?似乎是个挺难的问题,如果没有现成的检测框架,检测依然会很难。

第二种方式,对数据集的处理比较复杂,笔者分享一个比较笨重的方法,
首先明确下目标:
需要生成训练图像中,每个被训练对象的位置,类别,图像宽高等,我们把焦点锁在位置。

一般推荐LableImage工具,但是很多人不好上手,加上安装很多库,安装出现异常等。
笔者就是因为出现安装异常,决定寻找其他救命稻草。

Matlab做LableImage

众所周知,Matlab功能强大,最擅长矩阵处理。
今天,我们看一下这个标记图像功能。网上很多推荐的需要三个还是几个代码,第一个和后边的运行不同程序,今天,我们分享一个简单的,但冗杂的。

首先,在命令行执行以下指令:

trainingImageLabeler