ImageAI的介绍(3)

ImageAI提供了一种简单而强大的方法来使用YOLOv3,SqueezeNet,ResNet,InceptionV3 和 DenseNet架构来训练自定义对象检测模型。这使您可以在与任何类型的感兴趣对象相对应的任何图像集上训练自己的模型,训练过程生成一个 JSON 文件,用于映射图像数据集和许多模型中的对象类型。然后,您就可以使用生成的 JSON 文进行高精度自定义图像预测。

(一)创建数据集

1.首先你要创建一个数据集文件夹并命名(如d),在数据集文件中创建一个名称为 train 的子文件夹在数据集文件中创建一个名称为 test 的子文件夹。

2.在train文件夹中,创建需要训练的图像(inages)和标注子文件夹(annotations)。将每个对象图像的数据集的大约70-80%放在images文件夹中,并将这些图像的相应注释放在批注文件夹(annotations)中。

3.在验证文件夹中,创建验证图像(images)和标注子文件夹(annotations)。将其余的数据集图像放入images文件夹中,并将这些图像的相应注释放入标注文件夹(annotations)中。

完成此操作后,图像数据集文件夹的结构应如下所示:

官网copy
在这里插入图片描述

小伙伴们可能要问annotations下的文件的文件怎么来的,这是使用LabelImg软件标注图片后产生的,这里推荐两个这款软件的使用教程(个人觉的写的挺好的)
labellmg使用推荐教程1
labellmg使用推荐教程2

数据集准备好之后就可以训练了

from imageai.Detection.Custom import DetectionModelTrainer
trainer = DetectionModelTrainer()
#导入了DetectionModelTrainer类并创建了它的一个实例

trainer.setModelTypeAsYOLOv3()
#设置预训练模型,这里以yolov3为例

trainer.setDataDirectory(data_directory="dogs")
#此函数设置数据集文件夹的路径

trainer.setTrainConfig(object_names_array=["dogs"], batch_size=4, num_experiments=200, train_from_pretrained_model="pretrained-yolov3.h5")
'''
object_names_array(必填):这是数据集中所有不同对象的名称的列表。
batch_size(可选):这是训练实例的批次大小。
num_experiments(必填):也称为时期,它是网络在所有训练中进行训练的次数。
train_from_pretrained_model(可选):用于通过指定预训练的YOLOv3模型的路径来执行转移学习
'''

trainer.trainModel()
#开始训练模型

(二)使用预训练模型

训练完成后,在你的数据集文件下会生成models文件,json文件夹,然后调用下面的代码调用生成的模型文件

官方demo

from imageai.Detection.Custom import DetectionModelTrainer

trainer = DetectionModelTrainer()
trainer.setModelTypeAsYOLOv3()
trainer.setDataDirectory(data_directory="dogs")
metrics = trainer.evaluateModel(model_path="dogs/models", json_path="dogs/json/detection_config.json", iou_threshold=0.5, object_threshold=0.3, nms_threshold=0.5)
print(metrics)

model_path(必需):这可以是单个模型的路径,也可以是包含已保存模型的文件夹的路径
参数 json_path(必填):这是在训练期间生成的用来保存模型的detection_config.json。
iou_threshold:设置最大交并比阈值
object_threshold:设置物体检测的检测最小置信度
nms_threshold(可选):用于设置mAP评估的最小非最大抑制值。

这里我写的感觉很捞,所以在这里贴上官网的链接,小伙伴自己看看吧

https://imageai.readthedocs.io/en/latest/customdetection/index.html
小伙伴们自己点击看看,比我写好得多,这里因为有其它的事情,所以写的真的很垃圾,也没有跑代码。写到这里,关于ImageAI就结束了。官网真的很棒,从某种方面,你可以理解为我是在官网上copy的,还用训练自己的数据集时,最好用高性能GPU。

(三)结语

如果有什么错误的地方,还请大家批评指正,最后,希望小伙伴们都能有所收获。

在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值