研究生阶段做检测项目的一些总结

目录

tensorflow版本Faster Rcnn训练用新数据时的问题

项目思维导图

测试图片上只能检测到很少目标

同时跑训练或测试,应该改文件名还是改配置文件的图片路径?



tensorflow版本Faster Rcnn训练用新数据时的问题

刚开始跑faster rcnn的tf版本的时候,明明改了类别数,却总是会出现其他类别。

debug半天,皇天不负有心人,终于发现在cashe文件夹下竟然有第一次生成数据时的缓存文件。

删掉即可,记录一下,找得超级辛苦。

项目思维导图

接手一个大项目,每天起来经常会断片,忘了前面做到哪里了,忘了后面是想干啥来着,正在训练的程序也得想半天训的是什么玩意儿……真的是每天的日常。

其实挺正常的,因为不是只有这一个工作,而且流程复杂,涉及多个模型的改进和测试,会乱很正常,关键是怎么迅速找回昨天的回忆。思维导图记录过程很重要,我用一个在线制作流程图的网站 ProcessOn 帮忙展现整个项目完善过程,目前为止的进度如下图所示:

红色是有效果的改进;

灰色是失败的尝试;

蓝色带‘进行中’标签的是正在训练或者正在改进的地方;

带‘待定’标签的是未来的计划。

这样一来,对整个项目目前的状态一目了然。忘了正在训练什么东西的时候,看一下正在进行的任务就能很快想起来。不知道下一步该往哪里走的时候看一下待定标签,一个一个完成便是。

完成这么一个图很麻烦,会费一些时间,但这是一个事半功倍的事情。

花一点点时间,可以帮助你理清来龙去脉,也可以在未来漫长的做项目过程中,带给你绵长的助力。

测试图片上只能检测到很少目标

跑遥感领域一个表现比较好的模型(SCRDet),把源代码中针对倾斜框的操作改成了针对正框的操作,发现测试效果很不好,针对这个问题排查了很多方面的原因。

  • 看权重加载是否有问题:测试训练过的图片看看能不能测出来东西(排除因为权重加载不进去而用随机初始化的权重进行测试的情况)
  • 若训练图片可以测出来,则为测试过程有问题。

因为研究生阶段做遥感项目,图像比较大,测试时需要切图进行,排除是切的图像块测试的问题还是结果拼接的时候出了问题:

可视化测试时切的每个图像块的检测结果,发现呈现出来的直接是一整张图像而不是一部分切块,这表明测试时没有成功进行切块。

仔细看代码,发现传给sess.run的图像果然是整图而不是切块图像,导致图片输入网络前的resize操作损失了大量信息。

  • 解决完切图问题后,发现测试图片上检测出来的目标多了一些,但仍然不太理想。

排查一遍自己动的倾斜框改正框的一系列操作有无问题,不仅要看网络输入输出处理时的维度问题,还要看制作target时有无问题。

本次问题在于计算显著区域监督的target时,对cv2.fillConvesPoly(mask, rect, 1)的理解不够充分。

这个函数用于对mask在rect提供的坐标点围成的闭环中的像素点置1,比如,若坐标点为3个点就围成一个三角形,对mask落在三角形内部的像素点置1。

因为原先用的倾斜框坐标有8个值,直接reshape成(4,2)的矩形就是4个坐标点,我们想当然的觉得改成正框之后只有4个值(左上和右下),就将reshape的形状改成(2,2)。结果在cv2.fillConvesPoly(mask, rect, 1)中,两个坐标点围成的形状其实是一条线,在二维平面上面积为0,相当于让网络去学一个全0的矩阵 T_T,抑制了整张特征图的信息,结果当然不好。

同时跑训练或测试,应该改文件名还是改配置文件的图片路径?

经过多方尝试,我认为改配置文件更合理。原因如下:

  1. 若是自己命名的文件名称一般都有特殊的含义,比如train_200,train_400这样的文件夹可能我是想分别表示200张图片和400张图片构造的训练集,若配置文件中写的是读取train文件夹中的图片,那么我们在训练200张图的时候就得把train_200改成train。短时间或者一次两次还好,时间长了都忘了这个train是什么含义的一个训练集了。
  2. 跑程序的时候可以print目前所用数据集名称,可以通过名称实时校对是否跑对了数据。

有些同学担心改配置文件怕改了这里漏了那里,那么我们可以把需要经常改动的路径都放在一起,这样要改就全部改,不用全篇找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值