使用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

相关推荐

  • Ettercap Notes

    Ettercap NotesEttercapIthastwomainsniffingoptions:UNIFIEDthismethodsniffsallthepacketsthatpassonthecable.YoucanchoosetoputtheinterfaceinpromiscmodeornotFurthermore…

  • iframe自适应高度_iframe动态自适应高度

    iframe自适应高度_iframe动态自适应高度转载(来源忘记了。。。)<!–内容部分–><divclass=”con”><iframeid=”mainFrame”name=”mainFrame”src=”main.html”style=”width:100%;”frameborder=”0″scrolling=”no”onLoad=”this.height=100″></iframe></div>$(function(){//时间控制每

    2022年10月12日
  • HibernateTemplate使用方法

    HibernateTemplate使用方法HibernateTemplate提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作,Spring2.0更增加对命名SQL查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate的常规用法,就可完成大多数DAO对象的CRUD操作。1、常用方法:   1)voiddelete(Objectentity):删除指定持久化实例   2)dele

  • vs2013安装失败解决办法_个人总结及解决方案

    vs2013安装失败解决办法_个人总结及解决方案今晚上,在机器上安装vs2008时,连续好几次都失败,开始以为是vs2005(之前装的2005)的原因,后来把2005全卸载了,还是安装失败,在错误日志里总是说版本冲突,经过网上前人经验的指点问题得到了解决,现将前辈的经验收藏分享,以造福更多的人我就开始看我indows系统的日志,没有任何红色提示,但我始终不相信我的安装文档有问题,因为同事他们也是用的这个版本(vs2008team),我更…

  • matlab空间计量模型AIC和SC,空间计量模型[通俗易懂]

    matlab空间计量模型AIC和SC,空间计量模型[通俗易懂]回归分析中LMlag,LMerror后面的DFvaluefrob代表什么,哪一个是概率值?这个表的结论是所有的spatiallag都不显著,不要用spatialmodel,一般的OLS就行这一列(MI/DF这列)读下来就是Moran’sI的均值之类的东西(MI)等于-0.17,下面是各个LM检验的自由度,(LM检验是卡方分部所以有不同自由度)。第二列(value)是各个统计量的值,…

    2022年10月23日
  • Hadoop大数据面试–Hadoop篇

    Hadoop大数据面试–Hadoop篇

发表回复

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

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