Ultra-Fast-Lane-Detection-v2 icon indicating copy to clipboard operation
Ultra-Fast-Lane-Detection-v2 copied to clipboard

请教下train_height,original_height与crop_ratio之间的关系

Open jfkkf123 opened this issue 2 years ago • 12 comments

你好,我想请教下train_height,original_height与crop_ratio之间的关系,我看了在culane和curvelane中的配置文件以及源码resize中对这三者的使用,看不出三者间的数学关系。特别是对train_height和crop_ratio的设置,请问这是经验值吗?并且在width方向却没有使用crop_ratio,让我很疑惑,希望作者能帮我解疑。谢谢

jfkkf123 avatar Nov 21 '22 02:11 jfkkf123

@jfkkf123

  • train_height 指的是训练时输入图像的高度,可能是800或者1600
  • original_height值得是数据集中的图像高度,比如720P就是720,CULane是590
  • crop_ratio指的crop比例,因为数据集包含一些天空的像素,一般是不用考虑的,因此可以把图像上部分给crop掉,crop_ratio就是控制这个的,比如crop_ratio=0.2,指的是把图像上方20%的图像给crop掉

cfzd avatar Nov 21 '22 07:11 cfzd

谢谢,我再对着源码理解理解。

jfkkf123 avatar Nov 21 '22 08:11 jfkkf123

@jfkkf123 抱歉,有个地方说错了,crop_ratio=0.8代表把图像上方20%的图像给crop掉

cfzd avatar Nov 23 '22 13:11 cfzd

@cfzd 哈哈,我当时就觉得有好像有点问题。也就是说train_height(或width)、original_height(或width)和crop_ratio在数学上并没有一个y=f(x)这样的关系。还想请教下,如果我想在训练过程中加入车道线的分类(白实,白虚,黄虚等),是不是需要对exist_row(exist_col)中的二分类扩展成多分类。

jfkkf123 avatar Nov 24 '22 03:11 jfkkf123

@jfkkf123 对的,你可以把那个二分类扩展成多个类别用来表示车道线的类别

cfzd avatar Nov 24 '22 06:11 cfzd

@cfzd 哈哈,我当时就觉得有好像有点问题。也就是说train_height(或width)、original_height(或width)和crop_ratio在数学上并没有一个y=f(x)这样的关系。还想请教下,如果我想在训练过程中加入车道线的分类(白实,白虚,黄虚等),是不是需要对exist_row(exist_col)中的二分类扩展成多分类。

哈喽,请问一下您车道线分类用的是公开数据集吗?

04633435 avatar Dec 15 '22 06:12 04633435

@jfkkf123 抱歉,有个地方说错了,crop_ratio=0.8代表把图像上方20%的图像给crop掉

大佬,问一下这个crop在train的时候有用到吗,我在查看代码的时候没有看到相关操作,但是修改configs验证的时候准确度又会出问题(训练crop=0.8,test:crop=1)

Handaphoser avatar Mar 27 '23 07:03 Handaphoser

@Handaphoser crop的操作在这个地方: https://github.com/cfzd/Ultra-Fast-Lane-Detection-v2/blob/849fa7b90c189b646d12adc1d807bec54e982031/data/dali_data.py#L163-L176

先把图像放大,然后再按照原尺寸进行裁切,天空就被裁掉了

cfzd avatar Mar 27 '23 10:03 cfzd

@Handaphoser crop的操作在这个地方:

https://github.com/cfzd/Ultra-Fast-Lane-Detection-v2/blob/849fa7b90c189b646d12adc1d807bec54e982031/data/dali_data.py#L163-L176

先把图像放大,然后再按照原尺寸进行裁切,天空就被裁掉了

好的,谢谢。

Handaphoser avatar Mar 30 '23 07:03 Handaphoser

@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 avatar Apr 21 '23 03:04 Handaphoser

@Handaphoser 这个并没有问题,原因如下:

  1. 因为裁掉了天空,左右并没有裁切,所以对于col anchor表示的车道线学习没有影响
  2. 对于row anchor,加入anchor在原图上的位置为[0.4, 0.5, 0.6] ...位置的车道线,如果不裁切,那么网络可能就会用[0.4, 0.5, 0.6] ...处的特征进行学习
  3. 假设裁切掉了0.3的图像,那么网络就需要用[0.1, 0.2, 0.3] ...处的特征进行学习,但这个过程是自动的,可以由bp保证网络找到正确的位置(因为最后每个anchor的检测头输入的都是全图特征)
  4. 一个不太恰当的例子,就像图像分类,它的label并不会因为对图像做crop,resize而变化

cfzd avatar Apr 23 '23 04:04 cfzd

  1. 因为裁掉了天空,左右并没有裁切,所以对于col anchor表示的车道线学习没有影响

感谢这么写详细地回答

Handaphoser avatar Apr 23 '23 08:04 Handaphoser