计算机视觉
计算机视觉是将来自静止图像或视频的数据转换成一个决策或者一种新的表达方式的过程,这些转换都是为了达到某个目标。
因为人类是视觉动物,所以可能会误以为可以很容易的实现计算机视觉,当你看到图像时,从中找到一辆汽车会很困难么?
而在计算机视觉系统中,计算机接收到的是来自摄像机或者磁盘文件的一个数值矩阵,实际上,计算机视觉问题比我们想象的更加糟糕,它是不可解的,给出三维世界的二维视图,是没有固定方法来重建出三维信息的,在理论上,此类问题没有确定的解,即使数据很完美,同一张二维图像也可以表示多种三维场景。
opencv
opencv是一个开源(参见http://opensource.org)的计算机视觉库,opencv采用c/c 语言编写,可以运行在linux/windows/mac等操作系统上,opencv也提供了python、ruby、matlab以及其他语言的接口。
opencv的目标是为解决计算机视觉问题提供基本工具。
----《学习opencv(中文版)》bradski,g., kaehler,a.
vicando
vicando suite是针对智能驾驶功能的开发和测试平台,能够同步的采集所需的各类数据,同时工具集成opencv,工程师可以直接使用opencv的相关函数来进行开发。
vicando 具有一个开放的sdk,允许创建自定义接口,还允许将正在开发中的算法用作 vicando 本身的一部分,以非常高的性能执行。通过使用 vicansim 中的matlab/simulink扩展,或者利用内置仿真引擎进行网络仿真或视频算法开发。
vicando suite直接支持的数据源
• 示例应用:
在vicando内实时车道线识别与实时显示,通过在vicando内部直接集成车道线识别算法,方便直观的展示车道线识别算法的识别情况,并利用vicando的扩展功能将识别的车道线、航向等信息与视频叠加展示,可以方便的进行算法的调试。
在上图的工程中,我们添加了一路摄像头采集道路信息,同时用两路can通道采集车辆信息,通过图像提取车道线信息,同时结合车辆的状态信息,在图像上实时叠加显示识别的车道线信息和车辆的航线信息。
• 示例应用:
环视摄像头拼接与实时显示,首先通过vicando对lvds摄像头的支持,可以直接将一般的车载摄像头的视频数据接入到平台中,对于开发的工程师而言不必要再去投入精力到不必要的驱动开发等工作中,在vicando中直接集成基于opencv的视频拼接算法,并将拼接结果直接的展示在vicando界面中。
在上图的工程中,我们通过lvds板卡实时采集四路车载摄像头的视频信息(非后装摄像头,可以保证算法应用的参数即为原车摄像头的参数),在软件中加载图像拼接算法,并在软件窗口中直接显示,同时显示车载鱼眼摄像头的原始图像。
vicando suite 产品介绍
vicando suite是针对智能驾驶功能的开发和测试平台软件套装。
软件包含如下组件:
• vicando:
vicando是一款跨平台的,针对ad/adas开发的数据记录和分析工具,支持运行在windows、linux、macos等操作系统,支持x86、arm等平台。
• vicanlog:
设计用于车端路试采集的软件,可以运行在任何基于linux的硬件设备上,无人值守采集数据。除了一般计算机外,也支持nvidia tx-2、xavier,nexcom等设备。
• vicandroid:
安卓端的app,可以采集can总线和视频、音频、gps等数据,内建ftp服务,可以自动的上传数据到服务器。便于方便的对数据进行处理分析。
• vicansim:
通过与opencv和matlab/simulink™等的集成,方便用户部署自己的算法在vicansim上,于此同时也具有与matlab/simulink™的接口。
• vicanbedded:
vicanbedded的目标是应用于嵌入式环境,与vicando 相同。它旨在轻松地将源代码从 pc 平台移植到到嵌入式环境。目前,它可支持 qtembedded 4.x及更高版本、qnx、velocity、vxworks等。
更多vicando相关功能内容,将在后续的文章中发布。