stixel-world代码解读

下边缘的求法应该是使用的第二篇论文的方法

上边缘的求法应该是使用的第一篇论文的方法

这是求上边缘的代码:

std::vector<float> integralMembership(vmax);
            float tmpSum = 0.f;
            for (int v = 0; v < vmax; v++)
            {
                const float d = disparity(u, v);

                float membership = 0.f;
                if (dB > 0.f && d > 0.f)
                {
                    const float deltad = (d - dB) / deltaD;
                    const float exponent = 1.f - deltad * deltad;
                    membership = powf(2.f, exponent) - 1.f;
                }

                tmpSum += membership;
                integralMembership[v] = tmpSum;
            }

            score(u, 0) = integralMembership[vB - 1];
            for (int vT = 1; vT < vB; vT++)
            {
                const float score1 = integralMembership[vT - 1];
                const float score2 = integralMembership[vB - 1] - integralMembership[vT - 1];
                score(u, vT) = score1 - score2;
            }

这段代码应该是对应stixel-world的论文的cost方程,score1-score2是vT之前不包括vT所有点之和减去vT之后包括vT所有点之和.

修改代码:

score(u, 0) = - integralMembership[vB - 1];

 

 

这段代码是求上边缘使用的,求的是delta Du这部分

float deltaD = 0.f;
if (dB > 0.f)
{
    const float YB = tf.toY(dB, vB);
    const float ZB = tf.toZ(dB, vB);
    deltaD = dB - tf.toD(YB, ZB + param_.deltaZ);
}

YB和ZB是baseline那个点对应的世界坐标的y值和z值,世界坐标如下图:

 这个toD是to disparity,不是depth

 

 

上边缘应该是先求出道路消失的位置,即vhor

posted @ 2018-05-23 21:17  有梦就要去实现他  阅读(356)  评论(0编辑  收藏  举报