机器人基础知识三

边缘特征提取:

  1. 在边缘检测中,常用的一种模板是Sobel 算子。Sobel 算子有两个,一个是检测水平边缘的 ;另一个是检测垂直边缘的 。
  2. Laplacian算子也是计算图像梯度的一个利器,它相当于二阶Sobel算子的导数。
  3. scharr滤波器主要是配合sobel算子运算的,分别计算x方向或y方向的图像差分,其参数与sobel基本一致。

特征点检测与匹配:

  1. Harris角点算法特征点检测广泛应用到目标匹配、目标跟踪、三维重建等应用中,在进行目标建模时会对图像进行目标特征的提取,常用的有颜色、角点、特征点、轮廓、纹理等特征。
  2. SIFT:尺度不变特征变换(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。
  3. SURF是一种稳健的局部特征点检测和描述算法。
  4. FAST只是一种特征点检测算法,并不涉及特征点的特征描述



    FAST角点:若某像素与其周围邻域内足够多的像素点相差较大,则该像素可能是角点。
  5. BRIEF是对已检测到的特征点进行描述,它是一种二进制编码的描述子,摈弃了利用区域灰度直方图描述特征点的传统方法,大大的加快了特征描述符建立的速度,同时也极大的降低了特征匹配的时间,是一种非常快速,很有潜力的算法。

矩阵变换:

机器人基础知识三_第1张图片

  1. 如果一个射影映射是从一个射影平面映射到另一个平面。那么这个射影映射就可以称为 该平面上的射影变换。我们将下图中绿色平面的图形再绕平面交线旋转回蓝色平面,那么这一系列过程就确定了一个射影变换。
  2. 仿射变换(Affine Transformation)是指在向量空间中进行一次线性变换 (乘以一个矩阵)和一次平移 (加上一个向量),变换到另一个向量空间的过程。
  3. 所谓刚体变换,就是一个可被看做刚体的物体,从一个状态 (位置和朝向),转换为另一个状态的过程。
  4. 刚体(rigid body)是指在运动中和受到力的作用后,形状和大小不变,而且内部各点的相对位置不变的物体。
  5. 比例变换就是将平面上任意一点的横坐标放大或缩小S11倍,纵坐标放大或缩小S22倍,其中S称为比例变换矩阵。
  6. 欧式变换:旋转+平移+等比缩放。

渲染引擎:

  1. OSG是一个开源系统,主要包括场景图形核心,Producer库,OpenThread库以及用户插件四个部分,作为一个开放源代码的图形开发工程开始在全球运作了。
  2. OGRE,指的是OGRE引擎,是游戏制作引擎。
  3. 渲染管线的功能是通过给定虚拟相机、3D场景物体以及光源等场景要素来产生或者渲染一副2D的图像。图形渲染管线主要包括两个功能:一是将物体3D坐标转变为屏幕空间2D坐标,二是为屏幕每个像素点进行着色。渲染管线的一般流程如下图所示。分别是:顶点数据的输入、顶点着色器、曲面细分过程、几何着色器、图元组装、裁剪剔除、光栅化、片段着色器以及混合测试。
  4. 光栅化是将几何数据经过一系列变换后最终转换为像素,从而呈现在显示设备上的过程
  5. 光线追踪是三维计算机图形学中的特殊渲染算法,跟踪从眼睛发出的光线而不是光源发出的光线,通过这样一项技术生成编排好的场景的数学模型。这样得到的结果类似于光线投射与扫描线渲染方法的结果。
  6. DirectX是由微软公司创建的多媒体编程接口,是一种应用程序接口API)。DirectX可以让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3D图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。
  7. OpenGL是用于渲染2D、3D矢量图形的跨语言跨平台应用程序编程接口(API)。
  8. Vulkan是一个跨平台的2D和3D绘图应用程序接口API)。
  9. Metal 提供了针对平台优化的低开销 API,让您可以利用丰富的着色语言,以及图形与计算程序之间更加紧密的集成,开发最新的 3D 专业 app 和令人惊叹的游戏。
  10. GLSL: OpenGL着色语言(OpenGL Shading Language)是用来在OpenGL中着色编程的语言,也即开发人员写的短小的自定义程序,他们是在图形卡的GPU (Graphic Processor Unit图形处理单元)上执行的,代替了固定的渲染管线的一部分,使渲染管线中不同层次具有可编程性。
  11. 高级着色器语言是一种类似 C 的高级别着色器语言,用于 DirectX中的可编程着色器。
  12. Cg语言是为GPU编程设计的高级着色器语言。

物理引擎:

  1. Bullet是一个跨平台的物理模拟计算引擎。
  2. ODE (Open Dynamics Engine) 是一个免费的具有工业品质的刚体动力学的库,一款优秀的开源物理引擎,它能很好地仿真现实环境中的可移动物体,它是快速,鲁棒性好和可移植的。
  3. 鲁棒是Robust的音译,也就是健壮和强壮的意思。 它也是在异常和危险情况下系统生存的能力。
  4. Havok,全称为Havok Game Dynamics SDK,译作Havok游戏动力开发包。一般称为Havok,是一个用于物理(动力学)效应模拟的游戏引擎,为电子游戏所设计,注重在游戏中对于真实世界的模拟。
  5. PhysX是一套物理运算引擎,也是世界三大物理运算引擎之一,另外两种是Havok和Bullet。物理运算引擎的作用,简而言之,就是令虚拟世界中的物体运动符合真实世界的物理定律,以使游戏更加富有真实感。
  6. SLAM即时定位与地图构建或并发建图与定位。将一个机器人放入未知环境中的未知位置,是否有办法让机器人一边移动一边逐步描绘出此环境完全的地图,所谓完全的地图是指不受障碍行进到房间可进入的每个角落。
  7. 样条曲线这个名字形象地表达出这种用多个有规律的多项式函数拼接拟合复杂曲线的方法。
  8. 细分曲面(Subdivision surface),又翻译为子分曲面,在计算机图形学中用于从任意网格创建光滑曲面。细分曲面定义为一个无穷细化过程的极限。
  9. 隐式曲面网格生成方法是一类将三维场景的隐式表达用离散网格显式表示出来的方法。
  10. 3D ACIS Modeler (ACIS) 是 Spatial久负盛名的3D造型引擎。ACIS采用面向对象的开放C++架构,拥有强大的3D造型能力。同时集成了线框、曲面和实体造型的功能,支持流形和非流形拓扑,具备非常丰富的几何运算集,因此非常适用于构建具有混合造型功能的3D应用程序。
  11. Parasolid是世界上领先的、经过生产证明的三维几何建模组件软件。
  12. OpenCASCADE是一个提供三维曲面造型和实体建模、CAD数据交换及可视化的软件开发平台。
  13. 离线渲染经典实现方式为cpu将需要渲染的文件先从硬盘读取到内存,再读取到cpu完成对数据的计算,计算后的数据为图像数据,通过视频编码格式压缩,最终成为我们可以在电脑上播放的影片。
  14. 实时渲染经典的实现方式为cpu将需要渲染的文件先从硬盘读到内存,再读取到cpu完成数据的计算,通过pcie接口传输到显卡,显卡将这类数据图形化,通过显卡强大的运算能力,直接输出画面到显示设备。
  15. Metal能够为 3D 图像提高 10 倍的渲染性能,并支持大家熟悉的游戏引擎及公司。
  16. shader是一段GLSL(openGL着色语言)小程序,运行在GPU(图形处理器),而非CPU使用GLSL语言编写,看上去像c或c++,但却是另外一种不同的语言。使用shader就像写个普通程序一样,写代码-->编译-->链接在一起才能生成最终的程序。

        几何阶段:

        顶点着色器:模型转化和相机转化,坐标变换,逐顶点色彩信息处理。

        曲面细分着色器:原有图元内加入更多顶点,丰富细节。

        几何着色器:顶点的增删改操作。

        投影:三维空间投影到二维平面,透视投影的正交投影。

        裁剪:剔除摄像机看不到的顶点。

        屏幕映射:映射到窗口坐标系。

        光栅化阶段:

        图元组装:连接顶点,把顶点数据收集组成简单的基本线。

        三角形遍历:检验屏幕上某个像素是否被三角形区域所覆盖,被覆盖的区域将生成片元。

        片元着色器:为每个片元计算颜色。

        逐片元操作:测试(裁剪-剔除片元-透明度测试-深度测试-遮挡关系)并合并片元。

  1. Open Dynamics Engine(ODE)是一个开源的物理引擎,使用它可以仿真铰接式固形体运动。
  2. Newton引擎主要应用于3D游戏开发中,其快速方便的碰撞检测和关节构架等功能使其非常适合于机器人仿真环境的建立,避免了手工复杂的力学计算,并能提供逼真的仿真结果。
  3. Vortex可以实现实时仿真和交互操作。

数据结构、算法和设计模式:

  1. Visual Studio 是一个开发工具,即IDE,集成了很多开发 .net 程序的便捷功能,如果不使用它也是可以开发 .net 程序的,使用 记事本即可。Net Framework 官方叫法是 .net 应用程序框架,其中包含了 .net 平台的基础类库及运行时环境(即编译你代码的组件以及程序运行起来后将代码翻译成机器码的组件等)。
  2. 经典MVC模式中,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。
  3. 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。 也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。
  4. PROCESS EXPLORER由Sysinternals开发的Windows系统和应用程序监视工具。
  5. MeshLab 是一个开源、可移植和可扩展的三维几何处理系统,主要用于交互处理和非结构化编辑三维三角形网格。
  6. CloudCompare工具是一个非常好的处理点云数据的开源工具。
  7. 交互式反汇编器专业版(Interactive Disassembler Professional),人们常称其为IDA Pro,或简称为IDA。
  8. RPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点请求另一个节点提供的服务
  9. CURL是一个利用URL语法在命令行下工作的文件传输工具。
  10. SGML是国际上定义电子文档和内容描述的标准。
  11.  Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 
  12. Perl 是高级、通用、直译式、动态的程序语言。
  13. JSP与PHP、ASP、ASP.NET等语言类似,运行在服务端的语言。
  14.  PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。
  15. ASP 文件可包含文本、 HTML 标签和脚本。ASP 文件中的脚本可在服务器上执行。
  16. Clojure是一种运行在Java平台上的 Lisp 方言,Lisp是一种以表达性和功能强大著称的编程语言。
  17. Smalltalk,被公认为历史上第二个面向对象的程序设计语言,和第一个真正的集成开发环境(IDE)。
  18. Ruby,一种简单快捷的 面向对象 (面向对象程序设计)脚本语言。
  19. Pascal语言语法严谨,层次分明,程序易写,可读性强,是第一个结构化编程语言。
  20. 二分图又称作二部图,是图论中的一种 特殊模型 。. 设G= (V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集 (A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集 (i in A,j in B),则称图G为一个二分图。
  21. 二项堆是二项树的集合或是由一组二项树组成。
  22. 位图图像(bitmap),亦称为点阵图像栅格图像,是由称作像素(图片元素)的单个点组成的。
  23. SIMD全称Single Instruction Multiple Data,单指令多数据流,能够复制多个操作数,并把它们打包在大型寄存器的一组指令集。
  24. SN码有时也指“机器码” ,是有些软件为了防止盗版,采取了一定的保护措施。在用户注册的时候会根据用户软件所安装的计算机软硬件信息生成唯一的识别码,一般称作机器码,也叫序列号、认证码、注册申请码等。
  25. 手机的PIN码是保护SIM卡的一种安全措施,防止别人盗用SIM卡,如果启用了开机PIN码,那么每次开机后就要输入4-8位数PIN码。
  26. 光学字符检测(OCV)与光学字符识别(OCR)的区别在于前者仅需要证明字符的存在与对错,而后者则需要知道是什么字符。

你可能感兴趣的:(3.2,机器人基础知识,计算机视觉,人工智能)