概述
最近了解了Mask R-CNN的简单使用,于是决定再熟悉一下它训练自定义模型的流程。最近天天做抗原,有很多现成的训练素材,就打算搞一个能识别抗原试剂的模型吧。由于本小区缺乏阳性素材,就没做阴性阳性的区分了。下面是示例图,基本上把4个抗原试剂都检测并切割出来了。
训练流程
训练主要分一下步骤
收集素材图片,分成2组,train和val,用于训练和模型验证
给素材图片进行标记,并将标记结果保存的train和val的目录
使用Mask R-CNN进行训练 训练完,使用最终的model对全新的图片进行识别,验证效果。接下来分别详述每个步骤
素材图片
我一共收集到了37张抗原检测图,train组分了30张,val组分了7张。按照下面的结构组织数据
这个完全是参考官方balloon的目录结构,这样我们可以修改很少的代码,就可以直接开始训练。其中test目录是用来训练完自测的一些图片,不会参与训练。
素材的标记
标记数据我使用的是VGG Image Annotator
,他是一个html本地文件,简单易用,就是保存文件方面不太便捷,对入门来说还是不错的。每个图片都单独标记上抗原的边界,不得不说,标记这活费手又费眼。标记完就可以导出json,放到train和val目录下。train目录下是30张图片的标记json,val则是7张图片的标记json。为了减少代码改动,json的文件名需要是via_region_data.json
使用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模型,可以看这里哦
原文:https://juejin.cn/post/7097875010203123742