Ultra-Fast-Lane-Detection源码链接
该代码中的配置如下:
源码800*288的大小对于嵌入式平台而言,还是有点大,如何将shape修改成自己想要的大小呢?步骤如下:
# 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(-1, c*w*h)
然后修改def__init__()函数中的
self.cls = torch.nn.Sequential(
torch.nn.Linear(1800, 2048),
torch.nn.ReLU(),
torch.nn.Linear(2048, self.total_dim),
)
为
self.cls = torch.nn.Sequential(
torch.nn.Linear(384, 2048), #384 = 8 * 4 * 12
torch.nn.ReLU(),
torch.nn.Linear(2048, self.total_dim),
)
以上,在不改变model仅改变图片shape的情况下,所需要的修改就只有上面的部分。
self.aux_header2 = torch.nn.Sequential(
conv_bn_relu(***[1]***, 128, kernel_size=3, stride=1, padding=1) if backbone in ['34','18'] else conv_bn_relu(512, 128, kernel_size=3, stride=1, padding=1),
conv_bn_relu(128,128,3,padding=1),
conv_bn_relu(128,128,3,padding=1),
conv_bn_relu(128,128,3,padding=1),
)
self.aux_header3 = torch.nn.Sequential(
conv_bn_relu(***[2],*** 128, kernel_size=3, stride=1, padding=1) if backbone in ['34','18'] else conv_bn_relu(1024, 128, kernel_size=3, stride=1, padding=1),
conv_bn_relu(128,128,3,padding=1),
conv_bn_relu(128,128,3,padding=1),
)
self.aux_header4 = torch.nn.Sequential(
conv_bn_relu(***[3]***, 128, kernel_size=3, stride=1, padding=1) if backbone in ['34','18'] else conv_bn_relu(2048, 128, kernel_size=3, stride=1, padding=1),
conv_bn_relu(128,128,3,padding=1),
)
修改***[1]***
为x2, x3, x4对应的c通道数值即可,
2. 注意修改**data/dataloader.py中get_train_loader()**中的segment_transform部分的shape为aux_seg的(h,w)哟!
以上!
Android端移植下次分享!