如何使用Ultra-fast-lane-detection训练自己的数据(1)

如何使用Ultra-fast-lane-detection训练自己的数据-1

Ultra-Fast-Lane-Detection代码简读

Ultra-Fast-Lane-Detection源码链接
该代码中的配置如下:

  1. configs/culane.py or tusimple.py:
    1.1. 两个文件基本配置一样 ,区分在dataset=‘CULane’ or ‘Tusimple’。这两个参数的不同直接影响的是选取的行坐标的长度和数值(row_anchor,该参数在./data/constant.py中定义。Tusimple数据的分辨率较大,选取的点较多,为56点,CULane数据为18个点); griding_num = 200 代表将800宽分成200份。
    1.2. data_root赋值为数据的path(如./CULane/)
    1.3 其他参数就取决于个人训练的设置了。
  2. data/constant.py:记载了网络训练时筛选出的固定行(该数据的数值是针对网络输入shape确定的,如原网络中的输入是(1,3,288,800), row_anchor的数值就是针对288设定的)
  3. data/dataloader.py:加载图片并完成图片初始化的过程。
  4. model/backbone.py: 定义网络的backbone函数,如原码使用的时resnet系列,具体使用哪几层网络,如果联系都是在这里定义的。
  5. model/model.py:车道线检测网络定义,包含实例分割部分(parsingNet)。
    需要注意的文件基本上就以后几个文件。
    如果只想检测的训练一下作者的源码网络,只需要选定1中的数据类别,及具体的数据地址就行,其他的不需要修改直接运行
    提醒:平台配置一定要按照requirments.txt安装,低版本的环境可能运行不了。

修改网络输入大小

源码800*288的大小对于嵌入式平台而言,还是有点大,如何将shape修改成自己想要的大小呢?步骤如下:

  1. 确定输入shape ,以(1,3,128,384) 为例;
  2. 修改data/constan.py中_row_anchor的数值* ,_row_anchor数值是根据网络输入图片的高度确定的,但我们设置h=128时,如果你不修改_row_anchors的长度(长度也可以修改,看个人决定,但过少会影像检测的性能),只需要让原有的数值都×128/288即可,也可以自行设置,但不得大于127;
  3. config/culane.py中修改griding_num:可以根据需要修改,也可以按照原来的代码等比例缩减,如800分200份,384分96份(384/4),以下假设修改为griding_num=96;
  4. 修改 data/dataloader.py中get_train_loader(),get_test_loader()函数 ,将原有的(288,800)全部改为(128,384);segment_transform中的(36,100)改为(128/8, 384/8)=(16,48),这个数据对应网络哦中aux部分的输出维度;其中cls_num_per_lane代表的就是*_row_anchor的个数,根据自己的修改填写。
  5. 修改 **data/dataset.py中函数def _get_index(self, label)**中所有的288为128(共两处);
  6. 修改model/model.py中的class parsingNet(torch.nn.Module):部分首先修改forward()函数里的fea = self.pool(fea).view(-1, 1800)为
# An highlighted block
fea_tmp = self.pool(fea)  #fea的shape为(?,8, 4, 12)
b,c,h,w = fea_tmp.shape  #fea_tmp shape为(?,8, 4, 12)
fea = fea_tmp.view
  • 7
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值