keras版Mask-RCNN来训练自己的目标检测数据集

2020-06-28 16:47:59 浏览数 (1)

一、运行环境的安装:

1、下载好cuda9跟cudnn7,然后在安装好后,cuda其会自动添加到环境变量里,所以使用keras进行GPU加速的时候会自动使用这些库。

2、TensorFlow-gpu版本的安装,这个安装方法有三种,

第一种是直接在pycharm里的安装库里安装。

第二种就是使用pip来安装,这个在安装的时候可以指定安装的版本。例如:

pip install tensorflow-gpu==1.8.0

如果使用pip安装失败的话,则应当升级pip,如果使用pip来升级自身的识别的话,就可以使用conda来安装一个最新的pip来解决这个问题。

3、然后就安装keras就可以了。使用指令

pip install keras

接着就是安装那个labelme打标工具。使用指令:

pip install pyqt5

pip install labelme

然后直接在cmd终端里输入指令:

labelme

5、进行样本打标

点击“open”,打开需要标注的图像,选择对目标区域进行标注

假如你要标注的对象为人和狗,在画掩码过程中,一幅图像中如果有多个person、dog,命名规则为person、person…… dog、dog……。因为labelme生成的标签为一个label.png文件,这个文件只有一通道,在你标注时同一标签mask会被给予一个标签位,其中名字相同的软件会给其填充相同的标签值。所以有多分类的标签名要不一样,同类的标签名要一样,例如人的标签名都是person。而mask要求不同的实例要放在不同的层中。最终训练索要得到的输入为一个w*h*n的ndarray,其中n为该图片中实例的个数

这里的打标的时候不要求每张图片按着类别顺序来进行打标,主要打标的区域选对类别即可。其打标后会生成一个json文件,这个文件里记录了打标的顺序,其中生成的mask图像会按打标顺序分别赋值从1开始的值。其记录的是打标顺序。

数据集 获取:

关注微信公众号 datayx 然后回复 mask 即可获取。

AI项目体验地址 https://loveai.tech

6、把打标后的jison文件转换为对应的五个文件。其中的代码文件是:labelme_json_to_dataset.py,使用的代码是:

其要修改的代码位置是:

json_file = 'C:/Users/QJ/Desktop/hh/total'

把这个改为自己的打标好的json文件路径即可。

7、接着就可以使用模型进行训练了,其训练的文件是train_shapes.py.

其中需要修改的为

a、在类DrugDataset()里的

修改为自己的类别顺序

b、在类ShapeConfig()里的

到此就可以测试自己训练的模型结果了。

9、最后的测试结果如下:

0 人点赞