zoukankan      html  css  js  c++  java
  • falling object思路总结

    1.用检测的方法把falling object标记为一个类别,然后检测出类别。这种方式不可行的原因:因为falling object可能是任何东西,所以可能是一个路锥,也可能是一个玻璃瓶,还可能是掉下的花盆等等,这个类别我们无法去定义,普通检测肯定解决不了。

      如果用分割把道路上所有的这些东西都统一标成一个障碍物,也有问题:因为这些东西其实是没有固定形状和颜色特征的,我们认为这些是障碍物是从人的逻辑进行的判断而不仅仅依靠视觉逻辑,对于视觉,只会去学习appearance、颜色和位置等信息。还有一种情况,在道路上有一个路锥,其他地方也有一个路锥,如果用多label进行训练,那道路上的路锥就标记为障碍物,但其他地方的路锥就是路锥,同一个物体两种label这个没办法训练。如果只标记道路和道路上的路锥,其他地方都标同一个类,也是同一个物体标成不同类别。当然你可以认为在路上的路锥是一类,其他地方的是一类,但这个是从逻辑上来看的。还有,障碍物众多,形状颜色不同,很难学同一个特征出来。

    2.用目标检测加分割的方法,分割分出道路,道路外的图像全部切割掉,然后这一部分的图像全部填充为0以保证图像还是原图大小,不然切分出来的道路是不规则的部分不方便训练,对于道路内部,任何障碍物都当做是前景,其他的部分全当做是背景。

      这种思路就要考虑test时候输入是原图还是像训练那样输入切割掉后的图片。如果输入是切割后的图片,那就会让原图先经过网络得到道路的范围然后再切割掉然后再出入进网络得结果,这样做,耗时非常大,先要让原图进行目标分割,然后再裁剪,最后再求障碍物检测,前面的两步将会占据很多时间。如果输入是原图,很可能会出现一个问题:比如一个障碍物在路中间,也在人行道上,两个都会被识别成障碍物。其实这倒也无所谓,人行道上识别出来了,我不去用这个东西就好了,因为我只关心路面上的障碍物,或者为了给客户演示好看,我可以在网络检测障碍物的同时并行计算路面的曲面,然后进行后处理,把障碍物不在路面区域的去掉就好了。

      但同时,这也引发我的一个思考,可以这样说,即使按照2这种方式去标注,对于这个障碍物,他可以是任何东西,那他具有的像素特征种类就会特别特别多,不仅是形状,也是颜色,因为这个障碍物可以是任何东西。那既然这样,他可以识别任何障碍物,那任何东西也可以被误认为是障碍物,这样的话,网络可能学不出任何东西,因为什么东西都在里面,网络根本没有这么强的表达能力

      如果是在测试场地,前面都是道路一片空旷,然后放个杯子瓶子什么的东西,你这样把任何东西当成障碍物,我估计没问题,因为他可以学习只要那中间那一块和路面特征不一样的东西,肯定就是障碍物。但是对于实际的城市道路,很简单一个例子,一个车下面放一个很高的瓶子,我估计他会把这个整体识别为障碍物。

      理想状态是障碍物在测试场地那种情况,或者高速公路

    3.把图像中所有的物体都检测出来,然后只计算在道路中的

    4.把所有的物体都都标为背景类,然后只计算在道路中的所有背景类物体 

    尝试的方法:

    1.将整个类别分为路面、障碍物、其他三类进行分割。具体怎么标这三类数据:根据分割的gt数据的颜色找出三个类别,从下到上,找到第一个颜色为地面的点,然后继续一样的点,直到第一个颜色不为地面的点,这个点就是障碍物与地面的连接点,这些连续点都是地面。然后继续找颜色一样的点,直到其他颜色的点,这个点就是其他类别与障碍物的连接点,这些连续的点就是障碍物。剩下的点都是其他类别。

    这种方式缺点:a、分割得出的结果较远处的障碍物识别能力较差,汽车在距离较近处识别效果较好,但远距离就识别能力很差。

            b、gt数据按照这种方式标注,标注出来的效果较差,比如:

        可以看到人的形状并没有很好标注出来,并且栅栏也没有很好标注

          最左侧的地面是白色的,但与地面有连接的是灰色的

    所有的杆都没有标注出来,行人也没有,车也没有

    原因:这个的问题不在于分割模型,还是在于生成原始的gt数据有问题,特别是马路旁边的人行道和绿地,这个在分割的gt数据中是单独的一类,经常会把人行道的区域也认为是障碍物,而在他上面的那些东西反而不能作为障碍物。第一张图生成的gt效果不好,是因为遮挡关系,并且在某些地方又有很多其他类别的东西存在。其实这种情况也说明了一旦有遮挡,一个障碍物我很难标注出一个整体的障碍物。

    解决办法:把问题简化,最开始打算依旧按照以前方法从下往上找,遇到人行道绿地的类别就跳过,但总觉得这种依旧会出现很多复杂问题,因为特别是人行道上面有很多物体,物体的位置关系也差别很大,造成很多我可能想不到的情况。现在打算按照另一种思路来做:根据分割的polygan画出路面的区域,依旧从下往上找,但是在polygan的最顶点处就停止往上找。如果在最底点到最顶点的范围内出现了其他类别,就标为障碍物,其他所有的东西都标为其他类。如果底点到顶点中间是人行道和绿地这种类,直接忽略继续往上找。

  • 相关阅读:
    MongoDB的C#驱动
    在C#使用MongoDB
    MongoDB 主从复制
    MongoDB 索引操作
    MongoDB 分片技术
    Mongodb 与sql 语句对照
    MongoDB命令使用示例
    MongoDB 高级操作
    MongoDB 细说增删查改
    MongoDB 运维技术
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/8823741.html
Copyright © 2011-2022 走看看