Advertisement

无人驾驶之MATLAB无人驾驶工具箱学习(1)

阅读量:

更新完显卡驱动后,视频可以自动导入了,继续码。2018.08.11

1 坐标系转换

ADST(Automated Driving System Toolbox )中的坐标系

ADST中的坐标系:

  • 世界坐标系(world coordinate system),所有车辆及其传感器都固定在其上。
  • 车辆(VEHICLE):固定安装于车体上。为了便于表示自身位置和运动状态,我们定义了基于车辆重心的车辆坐标系。
  • 传感器(sensors):明确具体种类的传感器装置,请注意!例如使用摄像头或雷达等设备。
  • spatial(spatial coordinate system):能准确反映相机感知到的环境图像的空间坐标系。在spatial坐标中定位物体的位置时会使用像素单位来表示位置信息。

世界坐标系

全部车辆、传感器及相关坐标系都在世界坐标系上建立。这一技术在全局路径规划、定位导航以及驾驶情景生成中起着关键作用。

车辆坐标系

在ADST体系中,自动驾驶汽车固定于感知周边环境的传感器设备。被定义为装备了用于感知周围环境的传感器的自动驾驶汽车。x轴指向汽车行驶的方向;y轴朝向车辆行驶左侧的方向;z轴垂直地面朝上,并遵循右手坐标系的标准。坐标位置的单位是米;原点设置在后轮中心下方的地面上。

在全局路径规划、定位和导航以及驾驶场景生成中(原文:在全局路径规划、定位及导航、驾驶场景生成中),车辆的姿态可以用[x,y,θ]来表示(原文:车辆的状态可以用车辆的位姿[x,y,θ]表示)。

传感器坐标系

一个自动驾驶系统可配置多个传感器在车辆任何位置上布置这些设备有助于实现系统的感知能力与决策能力。每个传感器所在的坐标系位置由该坐标系的原点来确定其中摄像头作为重要的感知设备其坐标系原点通常设置在镜头中心并采用z轴方向与相机延伸方向一致的方式以确保良好的成像效果与空间定位精度

空间坐标系

空间坐标系统能够以比单个像元更精细的尺度定位图像中的具体点。在一个基于单个像元的笛卡尔网格中定位图像元素时,在像元级别使用整数行列索引来标识特定单元即可实现对图像元素的位置描述(例如,在二维平面网格中用(x,y)形式标记各单元)。通过将位置分解为部分像元(partial pixels)的信息来表示时,则允许对图像元素的位置进行超分辨率建模(例如,在二维平面网格中用(x,y)形式标记各单元)。

更丰富的空间坐标信息可通过" Spatial Coordinates "这一资料库进行查询(Image Process Tool Box)

2 地面实况标记及验证

时序自动算法(Temporal Automation Algorithms)

GTL应用程序(Ground Truth Labeler)能够自动生成并导出特定的自动化算法用于标记数据集

类继承(Class Inheritance)

如果算法是实时的,需要继承类

复制代码
 vision.labeler.AutomationAlgorithm

    
 vision.labeler.mixin.Temporal
    
 // example
    
 classdef MyCustomTemporalAlg<vision.labeler.AutomationAlgorithm && vision.labeler.mixin.Temporal

如果算法为时间独立的,需要继承类

复制代码
 vision.labeler.AutomationAlgorithm

    
 // example
    
 classdef MyCustomNonTemporalAlg < vision.labeler.AutomationAlgorithm

开启实时特性

该类_temporal-based mixin_ 包括诸如 StartTime、CurrentTime 和 EndTime 等属性,并用于构建基于时间的算法。详情参阅 vision.labeler.mixin.

用GTL创建一个时序自动算法

GTLapp 限定于同时满足时序与非时序自动生成功能的要求;而 Imagine Labeler APP 则仅具备非时序自动生成能力。

为了用GTLapp创建一个时序自动算法,通过在matlab中键入命令行

复制代码
    groundTruthLabeler

启动. 单击Select Algorithm, Add Algorithm, and Create new algorithms, 然后单击"Open" to launch the template.

为视频或图像序列定义地面实况数据

概览

安装并登录该APP后,在启动视频加载功能时(一开视频加载就),MATLAB程序会崩溃(导致程序崩溃),使得我也出现崩溃情况(也出现崩溃)。因此放弃尝试解决这个问题(放弃尝试解决)。其他人也有遇到类似问题并找到了解决方案(其他人也有遇到类似问题并找到了解决方法),也欢迎与我们分享经验。

当MATLAB发生崩溃时,可能是因为电脑的驱动出现问题.完成显卡驱动的更新后,MATLAB将不再崩溃.

GTL(Ground Truth Labels)是一种用于标注不同类型的感兴趣区域(ROIs)的有效方法。该方法采用了简洁的方法来标注矩形ROIs、像素级别的ROIs以及与视频或图像序列相关的场景标签。

GTL定义

标签定义描述 | 特征| 描述 |

--- ---
ROI分级 d对应于部分ROI标签的标签。每一个子标签属于一个特定标签。子标签可以值用于矩形或线ROIs。子标签下不能再有子标签。
属性 s属性可以标签更深一层的分类。可以认为属性是在场景中无法标签化但是想和标签连续起来的性质。假设已经有一个车辆标签的情况下想要在情景中标记一辆红色的汽车。你可以给车辆标签创建属性如车辆类型(汽车)和颜色(红)。属性仅仅只能用于矩形、线型或子标签。
场景标签 g给自然场景的属性,如晴天。YOU can associate this label with a frame(坐标系?不太懂).

用GTLapp,可以:

  • 通过交互式操作可以选择矩形ROI、折线型ROI以及场景标签来实现目标识别。
  • 使用矩形ROI能够精确标记物体实例,例如车辆、行人或者路标等。
  • 折线型ROI则适合用于标注车道边界与护栏结构。
  • 通过像素标签技术能够区分背景区域、道路区域以及其他建筑设施。
  • 场景标签则用于描述光照条件、天气状况以及道路变换等方面的属性信息。

打开GTL

  • 在应用标签页的Automotive工具栏中,请单击App图标。
    • 在Matlab的command window中,请输入。
复制代码
    groundTruthLabeler

加载视频或图像序列,导入标签

可以加载:

  • 数据源(Data source )可以选择导入视频文件夹、处理图像序列集或使用自定义读取函数来处理。
  • 标签集合(label definition )可以通过加载已保存于本地文件中的标签集来实现。
  • 会话实例可以通过导入之前保存的会话配置来创建新的分析任务。

可以导入:

导入标签(Import Labels ):可以从 MATLAB 工作区 或之前保存的 m 文件中提取并导入 ROI 和情景标签;所导入的标签应归类为 _ groundTruth _ 类别。

定义ROI标签定义(define ROI Label Definitions)

GTL提供了多种方法来标注情景;可以选择矩形、线条或单个像素作为标注工具;在对视频或图像进行标注之前;首先要定义每个标签所属的类别;矩形和线条标签允许创建子标签并为其配置属性参数;例如;在一个场景中先标注出车辆对象;然后就可以为他们设置类型属性;如van、truck、sedan等具体分类;可以通过字符串指定车辆颜色名称;也可以通过属性列表来指定多个颜色选项;此外;在计算机视觉工具箱中有关于像素级标注的内容

Tip :创建标签前,尝试组织你想要跟踪的标签、子标签及其属性的方案。可以任务标签集子标签为你可以在ROI附近画的东西。比如,你可以在一个汽车周五画一个矩形,但是不能在一个颜色周围画出一个矩形。但是,你可以用一个属性标记汽车的颜色。

对于子标签,可以任务他们是父标签的组件的标签。比如,汽车的前灯,因此前灯就是一个恰当的子标签。

标签的准则为:

  • 标签可以有子标签。
  • 子标签不可以有子标签。

一个有子标签和属性的标签的例子

赋予每个标签及其子标签独特的属性。举例说明了'Vehicle'这个类别。它包含两个属性:车辆颜色(vehicleColor)和车辆类型(vehicleType)。此外,' vehicle '还拥有一个子类别'后刹车灯(rearBrakeLight),它还拥有独立的属性:形状(shapeOfLight)和遮挡情况(occluded)。

打羽毛球球去啦,回来再码!2018.08.11

MATLAB又抽风了,只能硬翻了!2018.08.13

添加ROS标签、子标签及属性

指定Label参数,并从以下三种类型中进行选择:矩形框、直线或者像素标记区域。接着为每个标记起名字,并且还可以为每个标记做出说明或标注。

只有矩形和线型ROI标签允许添加子标签及属性。

在"ROI Label Definition"窗格内挑选该标记的名字,并单击"Sublabel"按钮,在此处键入名称、分类以及可选说明信息。此APP会将所选子标记与其选定的主要标记建立关联关系。若需查看某个标记及其相关的所有子标记和属性,请在"ROI Label Definition"窗格内展开对应的主标记。每个主标记都可以附加多个副标记,并且不允许为副标记再附加副标记

为了为一个正方形tag以及线性tag或其他嵌套tag增添属性,在'ROI Label Definition'窗格中选取该tag及其嵌套tag。同时可以在数值型域、字符串域或其他列表域内选定所需的属性参数,并且还可以附加说明信息。

创建情景标签定义

为情景附加标签提供定义方式:例如,在不同的自然环境中进行捕捉(如晴天、雨天或黄昏)。在场景标签定义窗口中,请单击"Define new scene label"按钮,并输入名称以及可选的描述说明。选择是否仅在此时此刻应用此场景标签即可完成设置。

设置时间区间和回放控制

可以用回放控制:

  • 支持逐帧查看,并可在视频末尾或开始部分进行定位。
  • 通过握杆滑动可以选择推进视频播放。
  • 可以在APP中指定一个红色标记的时间段用于限定帧显示范围;在此期间,系统会根据情景标签自动应用相关算法。
  • 可通过设定起始时间(Start Time)、当前时间(Current)以及结束时间(End Time)来调整观看范围;这些时间点可从视频文件中提取,也可通过图片序列获取特定的时间戳。
  • 放大效果可以通过点击“Zoom In”按钮实现;这一功能特别适合于长时间视频的快速浏览。

为了实现逐帧调试功能,可以通过以下几种方式:使用快捷键组合或者其他控制键(如Home、End或其他方向键)。另外一种方法是按下Ctrl+S组合键以保存当前会话状态;同时可以通过Ctrl+O组合键访问当前对话框。此外,在工具栏上还可以找到全局视图按钮以及放大缩小显示内容的功能。

标记地面实况

能够接收标签画面,并可借助自动算法进行标记。APP中预装有若干仅适用于矩形区域(即ROIs)的自动算法功能。当APP运行时可导入本机设计的自定义自动化流程。

APP包含如下内置自动算法:

  • ACF行人探测系统:采用基于预处理后的自适应通道特征(Aggregate Channel Feature, ACF)训练出的相关模型来进行行人的探测与识别。
  • 点追踪系统(point tracker):通过KLT算法在有限的空间范围内追踪多个目标物体。
  • 实时内插系统(Temporal Interpolator):利用关键帧中的目标区域框(ROI)信息,在连续视频序列中预测并填充中间未被采集到的画面区域。
  • ACF车辆探测系统(Aggregate Channel Feature, ACF-based detector):通过预先训练好的自适应通道特征相关模型实现对车辆的探测与识别功能。

手动创建标签和属性

在"ROI Label Definition"窗口中设置一个标签或子标签定义后,在图像的帧界线上绘制区域

在一个场景中标注子场景。每当在一个场景中标注或者选择一个场景时,在应用中的子场景窗口内会以列表形式显示所选/新建的场景标记

支持复制与粘贴操作。当执行"复制标签"时,默认会将选定的标签及其相关属性进行拷贝,并排除其所有直接关联的子标签内容;然而,在处理"复制子标签"操作时,则会同时包含所选择的子标签与其父级标签的信息。

打算将属性应用于一个标签或子标签,在场景中选择相应的标签(或子标签),然后从'Attributes'窗格中设置属性。

用于手动为情景标签进行标注,在窗格界面中挑选一个代表该场景的标签并将其指定到时间段内(Time Interval)。通过红色标记线确定该时间段的具体跨度。

配置自动化

在选择自动化算法前,点击“Configure Automation”来设置相应的参数。

  • 自动化方向(Direction of Automation):可选择预设的方向参数以实现视频分析任务。当设置为"正向"模式时,APP将执行从起始帧到目标帧范围内的自动化处理流程;而"逆向"模式则会反转该范围进行分析。
    • 自动算法起始参数(Run automation settings):根据设定的方向参数不同,默认可支持多种配置选项以满足不同场景需求。
    • 反向区域导入(Inverse ROI import):系统支持通过指定逆向区域实现精准目标定位功能。

用内置自动化算法创建标签

  1. Algorithm Selection List将被用来选择自动标签的算法。
  2. 此类算法通常具有特征目标追踪需求。通过将你希望追踪的区域选中来确定ROIs的位置。

Alice程序将自动执行此操作。当按下此按钮时,在右边窗口中会出现相关标记。仅当选择了特定的ROI和情景标签时才被激活,并且时间设置固定不变。左侧窗口列出所有可选标签,在右边窗口则显示相应的操作指令

  1. 启动程序。
  2. 检查运行后的计算结果。
    如果该结果不符合预期,则可以选择撤销当前操作(通过单击'Undo Run'),并进入设置选项(通过单击'Setting')进行参数调整。
    此外,在某些情况下还可以通过移动窗口位置、调节窗口大小以及添加或移除"ROIs"等方式来优化自动计算的效果。
  3. 当最终结果符合预期时,请单击'Accept'以保存当前设置并关闭此计算过程;或者选择取消(通过单击'CANCEL')以清除当前计算生成的所有标记信息。
    需要注意的是,“Delete Button"仅用于清除当前计算生成的标记信息,并不影响APP的整体功能。

在Label界面中, 单击"View Raw Summary of Object Annotations", 以获取并分析当前视频流的标注信息。

创建一个自定义标签算法

参见“Create Automation Algorithm For Ground Truth Labeling”,p2-25.

导出标签和保存会话

为了将地面实况标签导出至MATLAB工作空间或M文件中,在"Label"标签中的"Export Labels"按钮被点击。这些标注会被以一个名为groundTruth的对象的形式输出出来。通过点击工作区中的"Save"按钮可以在"Label"标签中标记进行保存操作。这些标记会被以.m文件的形式存储起来。利用提取出来的groundTruth对象, 可以训练一个物体检测器. 更多详细信息请参见:"Train an Object Detector from Ground Truth Data".

注:像素标签数据和地面实况数据被保存为分离文件“Separate files”。APP将两者文件保存在同一个文件夹下。记住这些提示:

  • 一旦标签矩阵被创建,不要将他们移动到不同的文件夹下。groundTruth类包含标签矩阵的像素数据的地址。这些地址不能够修改。
  • 如果用图片集创建地面实况,不要从保存的原始地址中删除图片。这些图片的路径被保存在groundTruth类中并且不能够被修改。
  • 可以移动groundTruth m文件到不同的文件夹中。

保存设计(Save Layout)

为了以备后续使用,单击“Label ”标签中的“View ”选项卡下的“Layout ”。在下拉列表中选择“Save”按钮,然后输入文件名。保存的设计将包含会话参数的选择设置。如果需要删除或重命名一个设计,请从“Label ”列表中选择“Organize layout ”选项卡。每次启动时,默认打开的是最近一次保存的设计。

地面实况标签总结

GTLapp支持交互式地在视频流、图像序列以及基于自定义的数据源中标注地面实况数据。通过app中的View Label Summary选项可观察并对比标记的区域(ROIs)及其情景标签在时间轴上及其图像帧的位置分布情况。

View Label Summary

Generate a label overview to create stopable ROI tags and scene tag distribution curves. Among these, the y-axis represents the number of ROIs at each time point. The visual summary excludes sub-tags and attribute information.

针对场景标签而言,在每条记录的时间点上会标记该场景的存在与否;而对于视频数据,则以x轴表示时间值(秒)。当处理图像或自定义生成的帧序列时,则将x轴设定为图像帧数量。通过曲线检查同一时间段内出现的所有标签。拖动竖线以切换视频的时间位置,在任意图表视图中进行操作即可完成相关设置

希望将‘Label summary view’保留在workspace中,并通过选择Layout->Dock Label Summary来实现此目标。

比较选择的标签

通过使用“Compare Selected Labels”选项以及checkbox来实现对选定标签的选择性比较。所选用于比较的ROI标签会在同一图表中展示。

全部评论 (0)

还没有任何评论哟~