使用Mask R-CNN训练一个抗原检测模型

概述

最近了解了Mask R-CNN的简单使用,于是决定再熟悉一下它训练自定义模型的流程。最近天天做抗原,有很多现成的训练素材,就打算搞一个能识别抗原试剂的模型吧。由于本小区缺乏阳性素材,就没做阴性阳性的区分了。下面是示例图,基本上把4个抗原试剂都检测并切割出来了。

抗原检测.PNG

训练流程

训练主要分一下步骤

  • 收集素材图片,分成2组,train和val,用于训练和模型验证
  • 给素材图片进行标记,并将标记结果保存的train和val的目录
  • 使用Mask R-CNN进行训练

训练完,使用最终的model对全新的图片进行识别,验证效果。接下来分别详述每个步骤

素材图片

我一共收集到了37张抗原检测图,train组分了30张,val组分了7张。按照下面的结构组织数据

image.png

这个完全是参考官方balloon的目录结构,这样我们可以修改很少的代码,就可以直接开始训练。其中test目录是用来训练完自测的一些图片,不会参与训练。

素材的标记

标记数据我使用的是VGG Image Annotator,他是一个html本地文件,简单易用,就是保存文件方面不太便捷,对入门来说还是不错的。每个图片都单独标记上抗原的边界,不得不说,标记这活费手又费眼。标记完就可以导出json,放到train和val目录下。train目录下是30张图片的标记json,val则是7张图片的标记json。为了减少代码改动,json的文件名需要是via_region_data.json

image.png

使用Mask R-CNN进行训练

拷贝官方samples中的balloon.py,只需要简单修改即可开始训练

  • ROOT_DIR调整到根目录,我的直接就是./
  • 全文替换balloon为kangyuan
  • 下载coco的训练模型文件,将COCO_WEIGHTS_PATH指向它

开始训练吧

python balloon.py train --dataset=./datasets/kangyuan --weights=coco
复制代码

如何配置正确的环境依赖,可以看[这里](如何使用GPU训练Mask-RCNN - 掘金 (juejin.cn))

训练完毕后,可以在./logs/kangyuanxxxxxxxxx的目录中找到30个Epoch的模型,直接使用第30个即可。

如果你还不知道如何使用Mask R-CNN模型,可以看这里

猜你喜欢

转载自juejin.im/post/7097875010203123742