57、机器人视觉中的主导平面检测与点模式分组算法

机器人视觉中的主导平面检测与点模式分组算法

1 机器人视觉与主导平面检测

1.1 视觉传感器与光学流的应用

在机器人与人类协作的场景中,视觉传感器是理解环境的基础设备。当机器人上安装的相机随机器人移动时,图像序列能提供连续图像上点的对应关系,从而得到运动和结构信息。

传统的使用视觉系统检测障碍物或平面区域的方法,如全向和单目相机系统的边缘检测、地标观察等,依赖于机器人周围环境,在没有特定特征的一般环境中应用困难。而光学流作为场景的运动信息,可用于构建移动机器人周围的环境信息,并且在生物数据处理中,它也是障碍物检测的基础信息。

1.2 独立成分分析(ICA)的引入

独立成分分析(ICA)是一种强大的纹理分析方法,它能从纹理中提取独立成分作为主导特征。由于光学流是移动相机观察环境中物体表面产生的纹理,因此可以将流向量视为纹理元,用 ICA 从像素上的流向量中提取独立特征,进而分离出主导平面和其他区域。

算法分为学习阶段和导航阶段。在学习阶段,ICA 利用输入值计算特征,该算法是 Santos - Victor 算法的统计版本,对机器人运动速度的扰动具有稳定性。

1.3 ICA 分离纹理

ICA 是一种从混合信号中分离原始信号的统计技术。假设混合信号 (x_1(t)) 和 (x_2(t)) 是原始信号 (s_1(t)) 和 (s_2(t)) 的线性组合:
[
\begin{cases}
x_1(t) = a_{11}s_1(t) + a_{12}s_2(t) \
x_2(t) = a_{21}s_1(t) + a_{22}s_2(t)
\end{cases}
]
其中 (a_{11}, a_{12}, a_{21}, a_{22}) 是线性组合的权重参数。仅使用记录的信号 (x_1(t)) 和 (x_2(t)) 作为输入,ICA 可根据这些信号的统计特性估计原始信号 (s_1(t)) 和 (s_2(t))。

将 ICA 应用于安装在移动机器人上的相机观察到的光学流,以检测机器人可以移动的可行区域。因为移动相机观察到的光学流是主导平面和其他物体的运动场的线性组合,假设主导平面和其他物体的运动场是空间独立的成分,ICA 就能检测出机器人可以移动的主导平面。

1.4 从图像序列中检测主导平面

1.4.1 相机几何

当安装在移动机器人上的相机在地面平面上移动时,会得到包含主导平面区域和障碍物的连续图像。相机平行于主导平面移动,通过连续图像计算的光学流描述了主导平面和障碍物基于相机位移的运动,这些光学流向量的差异可用于检测主导平面区域。

1.4.2 学习监督信号

在没有障碍物的情况下,捕获时间 (t) 的图像序列 (\hat{I}(x, y, t)),并计算光学流 (\hat{u}(t) = (\frac{dx}{dt}, \frac{dy}{dt})):
[
\hat{u}(t)^T\nabla\hat{I}(x, y, t) + \hat{I} t = 0
]
计算帧 (t = 0, \cdots, n - 1) 的光学流 (\hat{u}(t)) 后,创建监督信号 (\hat{u}):
[
\hat{u} = \frac{1}{n - 1}\sum
{t = 0}^{n - 1}\hat{u}(t)
]

1.4.3 使用 ICA 检测主导平面

捕获包含障碍物的图像序列 (I(x, y, t)),并以相同方式计算光学流 (u(t))。将光学流 (u(t)) 和监督信号 (\hat{u}) 作为 ICA 的输入信号,得到输出信号 (v_1) 和 (v_2)。

为解决输出信号顺序的模糊性问题,使用 (v_1) 和 (v_2) 长度的方差差异。设 (l_1) 和 (l_2) 为 (v_1) 和 (v_2) 的长度:
[
l_j = \sqrt{v_{xj}^2 + v_{yj}^2}, (j = 1, 2)
]
其中 (v_{xj}) 和 (v_{yj}) 分别是输出 (v_j) 的 (x) 和 (y) 轴分量数组。方差 (\sigma_j^2) 为:
[
\sigma_j^2 = \frac{1}{xy}\sum_{i \in xy}(l_j(i) - \bar{l} j)^2, \bar{l}_j = \frac{1}{xy}\sum {i \in xy}l_j(i)
]
由于图像中主导平面和障碍物的运动不同,表达障碍物运动的输出方差大于表达主导平面运动的输出方差。如果 (\sigma_1^2 > \sigma_2^2),则使用输出信号 (l = l_1) 检测主导平面,否则使用 (l = l_2)。

因为主导平面在图像中占据最大区域,计算 (l) 与其中位数的距离 (d):
[
d(i) = |l(i) - m|
]
其中 (m) 是向量 (l) 中元素的中位数。检测 (d(i) \approx 0) 的区域为主导平面。

1.4.4 主导平面检测步骤
  • 学习阶段
    1. 机器人在无障碍物的平面上小距离移动。
    2. 机器人捕获平面的图像 (\hat{I}(u, v, t))。
    3. 计算图像 (\hat{I}(u, v, t)) 和 (\hat{I}(u, v, t - 1)) 之间的光学流 (\hat{u}(t))。
    4. 如果时间 (t > n),使用公式计算监督信号 (\hat{u}),否则返回步骤 1。
  • 主导平面识别阶段
    1. 机器人在有障碍物的环境中小距离移动。
    2. 机器人捕获图像 (I(u, v, t))。
    3. 计算图像 (I(u, v, t)) 和 (I(u, v, t - 1)) 之间的光学流 (u(t))。
    4. 将光学流 (u(t)) 和监督信号 (\hat{u}) 输入 ICA,输出信号 (v_1) 和 (v_2)。
    5. 使用输出信号的方差确定输出顺序。
    6. 使用流向量的中位数检测主导平面。

1.5 实验验证

进行主导平面检测实验,机器人配备单相机在主导平面上以均匀速度向前移动,捕获无障碍物的图像序列,直到 (n = 20)。使用带金字塔的 Lucas - Kanade 方法计算光学流,得到监督信号 (\hat{u})。

然后机器人向桌子边缘移动,捕获图像序列。为证明方法对移动机器人非唯一速度的鲁棒性,计算图像序列 (I(x, y, 0)) 和 (I(x, y, t))((t = 1, 2, 3))之间的光学流 (u(t)),将其与监督信号 (\hat{u}) 作为快速 ICA 的输入。实验结果表明,能正确检测出主导平面区域,且方法对机器人非唯一速度具有鲁棒性。

1.6 主导平面检测流程

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;

    A([开始]):::startend --> B(学习阶段):::process
    B --> B1(机器人无障移动):::process
    B1 --> B2(捕获图像):::process
    B2 --> B3(计算光学流):::process
    B3 --> B4{t > n?}:::process
    B4 -- 否 --> B1
    B4 -- 是 --> B5(计算监督信号):::process

    B5 --> C(导航阶段):::process
    C --> C1(机器人有障移动):::process
    C1 --> C2(捕获图像):::process
    C2 --> C3(计算光学流):::process
    C3 --> C4(输入 ICA):::process
    C4 --> C5(确定输出顺序):::process
    C5 --> C6(检测主导平面):::process
    C6 --> D([结束]):::startend

2 模拟人类感知分组的点模式分组算法

2.1 算法概述

提出一种算法,能像人类观察者一样对点进行分组。该算法简单、完全无监督,能够找到复杂且不一定是凸形状的聚类。分组被识别为本文定义的简化 Delaunay 图(RDG)的连通分量,可看作是格式塔感知分组接近律的算法等价形式。

2.2 算法优势

引入了一种衡量点集两种不同分组之间差异的度量,用于比较该算法与人类视觉感知以及常用的 k - 均值聚类算法。实验表明,该算法模拟人类感知分组,在所有研究的案例中都优于 k - 均值算法。

2.3 潜在应用

该算法在结构纹理分割方面有潜在应用。

2.4 分组算法流程

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;

    A([开始]):::startend --> B(定义点集):::process
    B --> C(构建简化 Delaunay 图):::process
    C --> D(找到连通分量):::process
    D --> E(确定分组):::process
    E --> F([结束]):::startend

2.5 两种算法对比

算法 特点 性能 应用场景
本文算法 简单、无监督、能处理复杂形状 模拟人类感知分组,优于 k - 均值算法 点模式分组、结构纹理分割
k - 均值算法 常用聚类算法 在模拟人类感知分组方面不如本文算法 一般聚类任务

2.6 分组算法详细步骤

  • 定义点集 :明确需要进行分组的点的集合,这些点可以是二维或更高维度空间中的点。
  • 构建简化 Delaunay 图(RDG)
    1. 首先构建完整的 Delaunay 三角剖分图,它是一种将点集连接成三角形网络的方法,使得每个三角形的外接圆不包含其他点。
    2. 根据一定的规则对完整的 Delaunay 图进行简化,去除一些不必要的边,得到简化 Delaunay 图(RDG)。
  • 找到连通分量 :在简化 Delaunay 图(RDG)中,使用图搜索算法(如深度优先搜索或广度优先搜索)找到所有的连通分量。连通分量是指图中相互连接的节点集合,集合内的节点之间存在路径相连,而与集合外的节点没有路径相连。
  • 确定分组 :将每个连通分量作为一个分组,这样就完成了点的分组。

2.7 分组算法实验验证

为了验证算法的有效性,进行了一系列实验。在实验中,生成了不同分布和形状的点集,包括复杂形状和非凸形状的点集。将本文算法与 k - 均值算法进行对比,使用前面提到的衡量点集两种不同分组之间差异的度量来评估算法的性能。

实验结果表明,在所有测试的案例中,本文算法都能更准确地模拟人类的感知分组,而 k - 均值算法在处理复杂形状和非凸形状的点集时表现不佳。例如,在一些点集呈现出细长或不规则形状的情况下,k - 均值算法可能会将原本属于同一组的点错误地划分到不同的组中,而本文算法能够正确地识别出这些点属于同一组。

2.8 分组算法在结构纹理分割中的应用

在结构纹理分割中,图像可以看作是由许多点(像素)组成的集合。使用本文的分组算法,可以将具有相似特征(如颜色、纹理等)的像素点分组在一起,从而实现对结构纹理的分割。

具体步骤如下:
1. 特征提取 :从图像中提取每个像素点的特征,例如颜色特征(如 RGB 值)、纹理特征(如灰度共生矩阵特征)等。
2. 点集定义 :将提取的特征作为点的坐标,形成一个点集。
3. 分组处理 :使用本文的分组算法对该点集进行分组。
4. 纹理分割 :将分组结果映射回图像,将属于同一组的像素标记为同一类别,从而实现结构纹理的分割。

2.9 两种算法在不同场景下的性能对比表格

场景 本文算法表现 k - 均值算法表现
简单凸形状点集 能准确分组,与人类感知一致 能较好分组,但可能存在少量误差
复杂非凸形状点集 准确模拟人类感知分组 容易出现分组错误
结构纹理分割 有效分割,保留纹理结构 分割效果差,丢失纹理信息

2.10 总结与展望

2.10.1 主导平面检测算法总结

主导平面检测算法利用独立成分分析(ICA)对光学流进行处理,能够在不进行相机校准的情况下,从移动未校准相机观察的图像序列中检测出机器人可以移动的可行区域。该算法分为学习阶段和导航阶段,对机器人运动速度的扰动具有稳定性,实验结果证明了其对机器人非唯一速度的鲁棒性。这种算法为移动机器人的导航和路径规划提供了有效的解决方案。

2.10.2 点模式分组算法总结

模拟人类感知分组的点模式分组算法简单、完全无监督,能够找到复杂且不一定是凸形状的聚类。通过定义简化 Delaunay 图(RDG)并找到其连通分量来实现点的分组,该算法在模拟人类感知分组方面优于 k - 均值算法,并且在结构纹理分割等领域具有潜在的应用价值。

2.10.3 未来展望
  • 主导平面检测算法 :未来可以进一步研究如何在更复杂的环境中提高算法的性能,例如在光照变化较大、存在动态障碍物的环境中。同时,可以将该算法与其他传感器(如激光雷达、超声波传感器等)的数据融合,提高机器人对环境的感知能力。
  • 点模式分组算法 :可以探索该算法在更多领域的应用,如目标检测、图像分类等。此外,还可以对算法进行优化,提高其计算效率,以适应大规模数据的处理。

2.11 两种算法的综合流程图

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;

    A([开始]):::startend --> B{选择算法}:::process
    B -- 主导平面检测算法 --> C(学习阶段):::process
    C --> C1(机器人无障移动):::process
    C1 --> C2(捕获图像):::process
    C2 --> C3(计算光学流):::process
    C3 --> C4{t > n?}:::process
    C4 -- 否 --> C1
    C4 -- 是 --> C5(计算监督信号):::process
    C5 --> C6(导航阶段):::process
    C6 --> C7(机器人有障移动):::process
    C7 --> C8(捕获图像):::process
    C8 --> C9(计算光学流):::process
    C9 --> C10(输入 ICA):::process
    C10 --> C11(确定输出顺序):::process
    C11 --> C12(检测主导平面):::process

    B -- 点模式分组算法 --> D(定义点集):::process
    D --> E(构建简化 Delaunay 图):::process
    E --> F(找到连通分量):::process
    F --> G(确定分组):::process

    C12 --> H([结束]):::startend
    G --> H
源码来自:https://pan.quark.cn/s/d16ee28ac6c2 ### 上线流程 Java Web平台在实施Java Web应用程序的发布过程时,通常包含以下几个关键阶段:应用程序归档、生产环境配置文件替换、系统部署(涉及原有应用备份、Tomcat服务关闭、缓存数据清除、新版本WAR包上传及服务重启测试)以及相关异常情况记录。以下将对各阶段进行深入说明。#### 一、应用程序归档1. **归档前的准备工作**: - 需要事先验证Java开发环境的变量配置是否正确。 - 一般情况下,归档操作会在项目开发工作结束后执行,此时应确认所有功能模块均已完成测试并符合发布标准。 2. **具体执行步骤**: - 采用`jar`指令执行归档操作。例如,在指定文件夹`D:\apache-tomcat-7.0.2\webapps\prsncre`下运行指令`jar –cvf prsncre.war`。 - 执行该指令后,会生成一个名为`prsncre.war`的Web应用归档文件,其中包含了项目的全部资源文件及编译后的程序代码。#### 二、生产环境配置文件调换1. **操作目标**:确保线上运行环境开发或测试环境的参数设置存在差异,例如数据库连接参数、服务监听端口等信息。2. **执行手段**: - 将先前成功部署的WAR包中`xml-config`文件夹内的配置文件进行复制处理。 - 使用这些复制得到的配置文件对新生成的WAR包内的对应文件进行覆盖更新。 #### 三、系统部署1. **原版应用备份**: - 在发布新版本之前,必须对当前运行版本进行数据备份。例如,通过命令`cp -r prsncre ../templewebapps/`将旧版应用复...
源码地址: https://pan.quark.cn/s/a4b39357ea24 公路工程质量检验评定管理系统 软件简介:本系统是对公路工程检验及评定过程中常用到的报表、文书进行全面管理的系统。 包括 合同段管理用表(施工组织设计报审表、总体工程开工报批表、合同段质量检验评定表、标段工程检验汇总表); 单位管理用表(单位工程交工证书、单位工程检验汇总表、单位工程质量检验评定表); 分部管理用表(永久工程材料报验单、施工设备报验单、施工放样报验单、专项施工方案报审单、分部工程开工申请批复单、分部工程质量检验评定表、交工证书、分部工程检验汇总表); 分项管理用表(检验申请批复单、分项工程开工申请批复单、分项工程质量评定表、中间交工证书、专项施工方案报审单、永久工程材料报验单、施工设备报验单、分项工程质量检查表); 工程管理用表(工程汇总表、交工验收各合同段工程质量评定一览表、建设项目质量检验评定表); 质量管理用表(监理工程师通用通知、监理日报、工地会议纪要、工程暂时停工指令、复工指令、分包商资格审查申请批复表、承包单位通用申报表、承包单位每周工作计划、工程质量事故处理报告单、工程缺陷责任期终止证书); 工程表(工程变更令、工程变更申请表、工程延期索赔金额审批表、索赔申请表) 等施工过程中常用的42种表格。 使用此系统必为公路部门在施工过程中的监理带来极大的方便。 单机、网络应用方便,该系统集表格的制作、填写、存贮、查询、分析处理于一身,使表格更加规范,更加整洁。 该系统的应用必将给使用单位的工作质量和信息化管理水平得到显著提高。 如何运行本系统? 本系统基于宏达数据库信息管理开发平台开发,下载后,双击文件夹中"dbimp.exe(或Hadp.exe)"文件即可完...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值