Ultra-Fast-Lane-Detection-v2
Ultra-Fast-Lane-Detection-v2 copied to clipboard
请教下train_height,original_height与crop_ratio之间的关系
你好,我想请教下train_height,original_height与crop_ratio之间的关系,我看了在culane和curvelane中的配置文件以及源码resize中对这三者的使用,看不出三者间的数学关系。特别是对train_height和crop_ratio的设置,请问这是经验值吗?并且在width方向却没有使用crop_ratio,让我很疑惑,希望作者能帮我解疑。谢谢
@jfkkf123
-
train_height
指的是训练时输入图像的高度,可能是800或者1600 -
original_height
值得是数据集中的图像高度,比如720P就是720,CULane是590 -
crop_ratio
指的crop比例,因为数据集包含一些天空的像素,一般是不用考虑的,因此可以把图像上部分给crop掉,crop_ratio
就是控制这个的,比如crop_ratio
=0.2,指的是把图像上方20%的图像给crop掉
谢谢,我再对着源码理解理解。
@jfkkf123 抱歉,有个地方说错了,crop_ratio=0.8代表把图像上方20%的图像给crop掉
@cfzd 哈哈,我当时就觉得有好像有点问题。也就是说train_height(或width)、original_height(或width)和crop_ratio在数学上并没有一个y=f(x)这样的关系。还想请教下,如果我想在训练过程中加入车道线的分类(白实,白虚,黄虚等),是不是需要对exist_row(exist_col)中的二分类扩展成多分类。
@jfkkf123 对的,你可以把那个二分类扩展成多个类别用来表示车道线的类别
@cfzd 哈哈,我当时就觉得有好像有点问题。也就是说train_height(或width)、original_height(或width)和crop_ratio在数学上并没有一个y=f(x)这样的关系。还想请教下,如果我想在训练过程中加入车道线的分类(白实,白虚,黄虚等),是不是需要对exist_row(exist_col)中的二分类扩展成多分类。
哈喽,请问一下您车道线分类用的是公开数据集吗?
@jfkkf123 抱歉,有个地方说错了,crop_ratio=0.8代表把图像上方20%的图像给crop掉
大佬,问一下这个crop在train的时候有用到吗,我在查看代码的时候没有看到相关操作,但是修改configs验证的时候准确度又会出问题(训练crop=0.8,test:crop=1)
@Handaphoser crop的操作在这个地方: https://github.com/cfzd/Ultra-Fast-Lane-Detection-v2/blob/849fa7b90c189b646d12adc1d807bec54e982031/data/dali_data.py#L163-L176
先把图像放大,然后再按照原尺寸进行裁切,天空就被裁掉了
@Handaphoser crop的操作在这个地方:
https://github.com/cfzd/Ultra-Fast-Lane-Detection-v2/blob/849fa7b90c189b646d12adc1d807bec54e982031/data/dali_data.py#L163-L176
先把图像放大,然后再按照原尺寸进行裁切,天空就被裁掉了
好的,谢谢。
@Handaphoser crop的操作在这个地方:
https://github.com/cfzd/Ultra-Fast-Lane-Detection-v2/blob/849fa7b90c189b646d12adc1d807bec54e982031/data/dali_data.py#L163-L176
先把图像放大,然后再按照原尺寸进行裁切,天空就被裁掉了
大佬,问一下。我看这个对train image先扩大再裁剪,但是在代码里没有看到对label做相关操作,是不是会导致训练的时候训练图像和label的车道线位置无法对应起来,是不是学习到的错误特征。另外eval_lane这个函数也没有做相关操作。
@Handaphoser 这个并没有问题,原因如下:
- 因为裁掉了天空,左右并没有裁切,所以对于col anchor表示的车道线学习没有影响
- 对于row anchor,加入anchor在原图上的位置为
[0.4, 0.5, 0.6] ...
位置的车道线,如果不裁切,那么网络可能就会用[0.4, 0.5, 0.6] ...
处的特征进行学习 - 假设裁切掉了0.3的图像,那么网络就需要用
[0.1, 0.2, 0.3] ...
处的特征进行学习,但这个过程是自动的,可以由bp保证网络找到正确的位置(因为最后每个anchor的检测头输入的都是全图特征) - 一个不太恰当的例子,就像图像分类,它的label并不会因为对图像做crop,resize而变化
- 因为裁掉了天空,左右并没有裁切,所以对于col anchor表示的车道线学习没有影响
感谢这么写详细地回答