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

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

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

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

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

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

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

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

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

尝试的方法:

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

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

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

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

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

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

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

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

falling object思路总结的更多相关文章

  1. Android开发之ViewPager的简单使用

    ViewPager是V4包中的,如果你的编译器敲不出ViewPager,那么你就需要添加,看下面: 第一步:点击+号 第二步:选择第一个Library 第三步:添加这个包: 然后点击ok-->o ...

  2. javascript王国的一次旅行,一个没有类的世界怎么玩转面向对象?

    1. 前言 作为Java 帝国的未来继承人,Java小王子受到了严格的教育, 不但精通Java语言.Java虚拟机.java类库和框架,还对各种官方的Java规范了如指掌. 近日他听说一个叫做Java ...

  3. java结合testng,利用mysql数据库做数据源的数据驱动实例

    上一篇我们介绍用如何用yaml结合testng做数据驱动,就又想来个数据库的参数化 备注:@DataProvider的返回值类型只能是Object[][]与Iterator<Object> ...

  4. Inventory Update

    依照一个存着新进货物的二维数组,更新存着现有库存(在 arr1 中)的二维数组. 如果货物已存在则更新数量 . 如果没有对应货物则把其加入到数组中,更新最新的数量. 返回当前的库存数组,且按货物名称的 ...

  5. Exact Change

    设计一个收银程序 checkCashRegister() ,其把购买价格(price)作为第一个参数 , 付款金额 (cash)作为第二个参数, 和收银机中零钱 (cid) 作为第三个参数. cid ...

  6. android 面试汇总<二>

    Animation Q:Android中有哪几种类型的动画? 技术点:动画类型 参考回答: 常见三类动画 View动画(View Animation)/补间动画(Tween animation):对V ...

  7. 【leetcode】1289. Minimum Falling Path Sum II

    题目如下: Given a square grid of integers arr, a falling path with non-zero shifts is a choice of exactl ...

  8. 【leetcode】931. Minimum Falling Path Sum

    题目如下: Given a square array of integers A, we want the minimum sum of a falling path through A. A fal ...

  9. javascript之Object.defineProperty的奥妙

    直切主题 今天遇到一个这样的功能: 写一个函数,该函数传递两个参数,第一个参数为返回对象的总数据量,第二个参数为初始化对象的数据.如: var o = obj (4, {name: 'xu', age ...

随机推荐

  1. yii2之目录解析

    /backend 1.assets\AppAsset.php2.config\main-local.php 注释14到17行3.controllers\SiteController -> act ...

  2. IT兄弟连 JavaWeb教程 AJAX的技术构成

    Ajax并不是新的技术,而是之前技术的整合,其中包括JavaScript.HTML.CSS.DOM.XMLHttpRequest.XML和JSON是构成Ajax技术体系技术基石. JavaScript ...

  3. 类variant解剖

    说明:由于代码较为庞大,类variant源码请参考\eos\libraries\fc\src中的variant.hpp与variant.cpp文件^_^.     首先概览一下这个庞大的类,细数一下, ...

  4. day5字典作业详解

    1.day5题目 1.有如下变量(tu是个元祖),请实现要求的功能 tu = ("alex", [11, 22, {"k1": 'v1', "k2&q ...

  5. 如何使用JAR文件重用JMeter代码并节省时间

    在开发测试时,通常需要在测试中编写代码.此代码可能很长,可能会在多个测试中重复,或者可能仅针对特定测试编写.此外,如果要求发生变化,则在测试中编写的代码可能必须更改或补充. 这可能需要很长时间并且容易 ...

  6. render函数和redirect函数的区别+反向解析

    render函数和redirect函数的区别+反向解析 1.视图函数:一定是要包含两个对象的(render源码里面有HttpResponse对象)   request对象:----->所有的请求 ...

  7. hdu1392凸包裸题

    //极角排序 #include <bits/stdc++.h> #define sqr(x) ((x)*(x)) using namespace std; ],top; struct PO ...

  8. 记录一个修改application.properties时遇到的坑

    有一个需求是会频繁修改配置文件中的常量,为了方便就会用unzip解压war包,修改propertites中的值后重新打war 包,部署,但是发现修改的值没有起作用,,一直在纠结...后来发现其实在编译 ...

  9. scut 125. 笔芯回文

    https://scut.online/p/125 看数据量,这题可能是O(n^2)的dp 也可能是区间dp,但是区间dp一般复杂度是O(n^3),虽然也可以优化,但是比赛的时候那么多人“秒”了,应该 ...

  10. 开源分布式Job系统,调度与业务分离-HttpJob.Agent组件介绍以及如何使用

    项目介绍: Hangfire:是一个开源的job调度系统,支持分布式JOB!! Hangfire.HttpJob 是我针对Hangfire开发的一个组件,该组件和Hangfire本身是独立的.可以独立 ...