使用CityScapes数据集训练实例分割网络YOLACT

使用CityScapes数据集训练实例分割网络YOLACT#2020开年第一篇,谁能预料新年伊始的世界如此脆弱,中国疫情肆虐,美伊箭拔弩张,英国愤懑脱欧,儿时的偶像科比和女儿也不幸离世,生命之渺小,生活之曲折,兄弟们,要充满阳光地活着啊,人间,值得。:-)今天还是鄙人生日,愿世间多点爱,与和平。上一篇介绍了博主用CityScapes数据集提取了五类实例,并转换成了COCO数据集的标注格式(将CityScapes数据集转换为COCO格式的实例分割数据集…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

#2020开年第一篇,谁能预料新年伊始的世界如此脆弱,中国疫情肆虐,美伊箭拔弩张,英国愤懑脱欧,儿时的偶像科比和女儿也不幸离世,生命之渺小,生活之曲折,兄弟们,要充满阳光地活着啊,人间,值得。:-)今天还是鄙人生日,愿世间多点爱,与和平。

上一篇介绍了博主用CityScapes数据集提取了五类实例,并转换成了COCO数据集的标注格式(将CityScapes数据集转换为COCO格式的实例分割数据集),实现它的目的是为了拿去训练YOLACT。

YOLACT是加州大学2019年提出的能够达到实时的实例分割网络,在目标检测已经应用广泛的时候,对目标的描述更加精细的实例分割就成了下一个热点话题,网络不过多介绍了,可以学习论文和代码:

YOLACT: Real-time Instance Segmentation

YOLACT++: Better Real-time Instance Segmentation

Github-YOLACT

这篇文章主要介绍博主利用yolact源码在CityScapes上训练、测试的操作过程,完整项目链接:yolact_cityscapes_550

Yolact默认配置是ResNet-101+FPN框架,输入550×550,保持网络配置不变,用自己的数据集训练需要以下步骤:

1、生成COCO Style的标注文件(.json),这部分参考上文所述博客即可。

2、在data/config.py中创建自己数据集的config信息,在博主的项目中已经把yolact原本的配置都删掉了,只保留了用cityscapes训练测试的配置,并且将其设为默认配置,拿去训练自己数据集的时候需要修改类别名、类别数以及图片、标注文件存放位置等等,还需要在yolact的配置中加入自己的数据集,还有训练时候的参数等都可以在config.py里修改。

此外,为了实现一些功能,修改了原始代码中的一些函数,并修补了几个Bug。

使用yolact_coco权重初始化训练:

原生yolact是用imagenet预训练、coco上fine-tune的,由于我们自己的数据集类别与coco不同,想要直接利用作者提供的权重初始化网络,需要把输出层的权重拿掉,训练也需要分两步:先只对输出层权重进行训练,再进行所有参数的fine-tune。

# yolact_coco 初始化权重,只训练输出层
>> python3 train.py --resume=weights/yolact_base_54_20000.pth --init_from=coco --start_iter=0   
# 整体fine-tuning
>> python3 train.py --resume=weights/yolact_base_cityscapes_256_95000.pth --start_iter=0  

使用CityScapes数据集训练实例分割网络YOLACT

训练默认batch_size为8,需要占用11G以上的显存,用什么卡需要注意,1张约占1.5G。过程中如果中断,/weights目录下会生成断点,–resume也可以从断点文件开始训,只不过不需要再加–start_iter这个参数。

训练过程的所有loss以及validation的结果会在shell中输出,同时也会保存在/logs目录下以日期为后缀的.log中。为了方便评估与分析,log2pic.py用于读取log文件并将训练与测试的结果绘制成折线图,这个小脚本不太成熟,但简单易读,稍加修改就可以任意使用。

PS:为了显示博主自己的五个类的validation结果,在eval.py中加入了各类mAP的计算以及在train.py中加入了各类val结果的log保存,代码质量较低,诸位可据需求删改。

使用CityScapes数据集训练实例分割网络YOLACT

使用CityScapes数据集训练实例分割网络YOLACT

使用CityScapes数据集训练实例分割网络YOLACT

关于Evaluation,基本保留了原生yolact的操作,只是切记默认config是博主自己定义的yolact_base_cityscapes_config,增加配置可以用–config=调用,也可以直接修改默认配置。

单张图片测试:

>> python3 eval.py --trained_model=weights/yolact_base_cityscapes_256_95000.pth --score_threshold=0.15 --top_k=15 --image=aachen_000021_000019_leftImg8bit.png:cityscapes_550.png

使用CityScapes数据集训练实例分割网络YOLACT

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/172452.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号