1. NVIDIA显卡驱动+CUDA+CUDNN GPU平台搭建。 (备注:cuda cudnn的版本一定要对应正确)
  2. 在github https://github.com/matterport/Mask_RCNN上下载maskrcnn源码。要求:python3以上,keras, tensorflow深度学习框架,在ubuntu下可以用 sudo pip3 install keras

pip3 install -i https://pypi.doubanio.com/simple/ keras)等命令下载相关python模块。

  1. Maskrcnn的demo是用jupyter写的 可以用 ipython notebook打开 Mask_RCNN /samples/demo.ipynb(因为我不会用jupyter,于是把ipython打开的源码复制出来做成了demo.py,我的附件里面是可以运行起来的demo.py,您可以下载下来直接运行 python3 demo.py)demo.py里面是一个检测的例子,是随机在images里面选取一张图片,然后检测并打上掩码。
  2. 附件2是maskrcnn的coco预训练模型,您就不用再去下载了。
  3. 训练的过程是这样的:
  1. 打开samples/balloon/balloon.py
  2. 更改第66行 IMAGES_PER_GPU = 1
  3. 更改第70行 NUM_CLASSES = 1 + 3(num_classes)
  4. 更改第72行 STEPS_PER_EPOCH = 50 #100 (如果GPU性能足够可忽略)
  5. 更改第90行 添加我们自己的分类

例如:self.add_class("balloon", 1, "object")

      self.add_class("balloon", 2, "lane lines")

        self.add_class("balloon", 3, "land)

  1. 在128行polygons下面插入

names = [r[‘region_attributes’] for r in a[‘regions’]]

NameList = [c[“name”] for c in names]

name_dict = {‘object’:1, ‘lane lines’:2, ‘land’:3}#要和(4)中数字对应

name_id = [name_dict[n] for n in NameList]

  1. 在140行下面添加class_id = name_id
  2. 把标记好的图片和标记好的json文件放到Mask_RCNN /datasets/balloon/train里面。标记好的验证图片和json文件放入Mask_RCNN /datasets/balloon/val里面。
  3. 运行 python3 balloon.py train --dateset = /home/usr_name/Mask_RCNN/datasets/balloon --weights=coco 可以开始训练。(coco.h5应放在Mask_RCNN/下)
  4. 训练好的权重文件放在logs/以最近的时间戳命名的文件夹下面。
  1. 标注工具我使用的是via工具,在附件三
  1. 打开via/via.html 点击add files 导入要标记的图片。
  2. 点击attributes 输入name 点击“+”键 在type一栏选择dropdown
  3. 在id里面添加自己所需要的类别名称如:“object” “lane lines” “land”
  4. 点击左上角的 图形—polygon region shape,标记所需要的region,然后点击左下角的toggle annotation editor为该区域选择id类别名。

  1. 标记完成后,按左上角annotation 选择export annotation (as json)即可得到json文件。

 

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐