5.2 三维目标识别三维目标识别是人形机器人环境感知系统的核心模块旨在从预处理后的点云数据中精准识别并理解环境中的各类目标如障碍物、行人、家具、工具等输出目标的位置、尺寸、类别、姿态等关键信息为机器人路径规划、避障、交互操作如抓取工具等自主决策任务提供核心依据。与二维目标识别相比三维目标识别依托点云的三维空间信息能更准确地应对遮挡、光照变化、尺度差异等复杂场景更贴合人形机器人在真实物理空间中的感知需求。其核心技术可分为两类3D Detection三维目标检测与3D Segmentation三维分割分别聚焦“目标级定位分类”与“像素级区域划分”。5.2.1 三维目标检测三维目标检测是人形机器人环境感知体系的核心模块旨在从预处理后的三维点云数据中精准完成“目标定位”与“类别识别”两大核心任务部分高级算法可额外输出目标姿态如朝向、可交互角度、尺寸等关键信息。相较于二维目标检测依赖图像像素信息的局限性三维目标检测依托点云的三维空间坐标能有效应对遮挡、光照变化、尺度差异等复杂场景准确还原目标在物理空间中的真实位置与形态为机器人路径规划、避障、自主交互如抓取工具、避让行人等决策任务提供直接的空间信息支撑。其核心输出为“3D包围盒类别标签”即通过长方体包围盒框选目标同时标注目标类别如“椅子”“行人”“螺丝刀”。1. 核心任务与评价指标1核心任务三维目标检测的核心是解决“在哪里”定位和“是什么”分类的问题具体可拆解为下面的过程目标定位预测目标在全局坐标系或机器人本体坐标系中的3D包围盒参数中心坐标x/y/z、长/宽/高、朝向角度类别分类判断每个3D包围盒内目标的类别如家具类、工具类、人体类等姿态估计进阶预测目标的精确姿态如物体摆放角度、机器人可抓取的姿态支撑后续操作任务。2关键评价指标工程中常用指标衡量检测效果适配人形机器人场景的核心指标包括平均精度mAP核心评价指标反映不同类别目标检测的精准度与召回率的综合性能mAP越高说明检测效果越好3D IoU交并比衡量预测包围盒与真实包围盒的重叠程度通常设定IoU阈值如0.5高于阈值则判定为有效检测推理速度FPS单位时间内完成检测的帧数人形机器人实时感知需满足10~30 FPS否则会导致决策延迟小目标检测精度针对机器人交互的小尺寸目标如工具、零件的检测能力直接影响精细操作任务的可靠性。2. 主流技术路线与核心算法点云数据具有“无序性、稀疏性、非结构化”的固有特性直接适配传统深度学习模型难度较大。因此三维目标检测算法的核心思路是“将非结构化点云转化为可学习的特征表示”主流技术路线可分为两大类Voxel-based体素化与Point-based基于原始点云两类路线在效率与精度上各有侧重适配不同的机器人应用场景。1Voxel-based体素化技术路线通过“体素化”操作将不规则的三维点云空间划分为规则的立方体体素Voxel将非结构化点云转化为结构化的3D张量类似3D图像再复用二维CNN卷积神经网络的成熟框架设计3D卷积网络实现特征提取与目标检测。该路线的核心优势是“结构化适配卷积网络”计算效率高易工程化部署适配机器人嵌入式算力需求。Voxel-based技术路线的关键流程如下体素划分根据场景尺度设定体素边长室内场景常用0.1~0.2m保证小目标细节室外场景常用0.3~0.5m提升效率将预处理后的点云映射到对应的体素网格中空体素直接填充为0体素特征编码对每个非空体素提取内部点的几何特征如点的数量、重心坐标、法向量、距离机器人的距离将每个体素转化为固定维度的特征向量如128维形成3D特征张量卷积与特征融合通过3D卷积层、池化层对3D特征张量进行下采样提取多尺度特征小体素捕捉细节大体素捕捉全局上下文再通过特征融合模块整合不同尺度特征包围盒预测与优化通过检测头Head输出目标的3D包围盒参数、类别概率再通过NMS非极大值抑制去除冗余包围盒过滤置信度低于阈值如0.5的检测结果得到最终检测输出。Voxel-based技术路线的典型算法与场景如下VoxelNet首个成熟的Voxel-based三维目标检测算法奠定了体素化路线的基础但其3D卷积计算量较大实时性较差适用于离线场景如机器人场景建模SECOND通过优化体素特征编码与3D卷积结构大幅提升计算效率同时保证检测精度适用于半实时场景如机器人室内导航PointPillars核心创新是将3D体素简化为2D“柱体Pillars”沿Z轴方向不划分体素将3D卷积转化为2D卷积计算效率提升一个量级可达到30 FPS以上同时保持较高检测精度是当前人形机器人实时感知的主流选择适配家庭、办公等室内实时场景。Voxel-based技术路线的优势是计算效率高、工程化难度低、适配嵌入式算力劣势是体素化过程会丢失部分精细几何特征体素尺寸越大小目标检测精度越低。2Point-based基于原始点云技术路线摒弃体素化过程直接对原始点云进行特征学习通过设计专门的网络结构解决点云“无序性”问题如采用对称函数最大值池化、平均值池化保证特征对输入点顺序不敏感最大限度保留点云的原始几何细节。该路线的核心优势是“精细特征保留”小目标检测精度高适配机器人精细操作场景。Point-based技术路线的关键流程如下点云采样原始点云点数较多如10万直接处理计算量过大需通过采样算法如FPS最远点采样保留关键特征点如1万点减少计算量的同时保留目标几何结构局部特征提取通过KD树或球查询Ball Query获取每个采样点的局部邻域点集利用专门的网络结构如PointNet的MLP层将邻域点的坐标、法向量等信息转化为局部特征向量捕捉目标的边缘、边角等精细结构全局特征融合通过多层特征聚合模块将局部特征与全局特征如整个场景的特征融合形成兼具细节与全局上下文的特征表示目标检测与姿态优化通过检测头输出3D包围盒与类别部分算法如PointRCNN会对检测框内的点云进行二次精细采样与特征学习优化包围盒位置与目标姿态提升检测精度。Point-based技术路线的典型算法与场景如下PointNet首个直接处理原始点云的深度学习模型奠定了Point-based路线的基础但其局部特征捕捉能力较弱适用于简单形状目标检测如工业零件PointRCNN采用“两阶段检测”策略第一阶段生成候选包围盒第二阶段对候选框内点云精细优化检测精度高适用于机器人精细操作场景如抓取工具、识别零件PV-RCNN融合Point-based与Voxel-based的优势先用Voxel-based方法提取全局特征再用Point-based方法优化局部特征兼顾效率与精度适用于对精度和实时性均有要求的场景如机器人自主导航精细交互。Point-based技术路线的优势是保留原始几何细节小目标检测精度高劣势是网络结构复杂计算效率低于Voxel-based方法对机器人嵌入式算力要求较高。3. 人形机器人场景适配策略不同应用场景对三维目标检测的需求差异较大需要针对性选择技术路线实时导航/避障场景如家庭、办公环境移动优先选择Voxel-based路线的PointPillars算法保证10~30 FPS的实时性重点检测行人、桌椅、墙壁等中大型目标IoU阈值设为0.5降低误检率精细操作场景如工业装配、家庭服务抓取优先选择Point-based路线的PointRCNN、PV-RCNN算法保证小目标工具、零件、餐具的检测精度可牺牲部分实时性5~10 FPS必要时采用离线预训练在线微调的方式提升精度复杂动态场景如公共场所行走采用“Voxel-based粗检测Point-based精优化”的融合方案同时结合多传感器融合点云图像提升动态目标行人、移动障碍物的检测稳定性避免因遮挡导致的漏检。总而言之三维目标检测的核心是“结构化特征表示”与“效率-精度平衡”。Voxel-based路线适配实时移动场景Point-based路线适配精细操作场景融合路线是未来主流方向。在人形机器人应用中需结合具体场景需求选择算法通过参数优化、模型轻量化、多传感器融合等手段实现“精准感知-高效决策”的闭环。5.2.2 三维分割三维分割是人形机器人环境感知的另一核心技术与三维目标检测聚焦“目标级定位分类”不同其核心目标是对三维点云进行“像素级语义划分”即给每个点云赋予唯一的语义标签如“地面”“墙壁”“桌子”“行人”“工具”实现对环境的精细化语义理解。在人形机器人场景中三维分割能为机器人提供更细腻的环境结构信息例如区分可行走的地面与需避让的台阶、识别抓取目标的具体部位如工具手柄是机器人精准导航、精细操作、场景建模的重要支撑。根据任务目标的不同三维分割可分为“语义分割Semantic Segmentation”与“实例分割Instance Segmentation”两类前者关注“类别划分”后者关注“个体划分”。1. 核心任务与评价指标1核心任务三维分割的核心是解决“每个点是什么类别”或“每个点属于哪个个体”的问题具体可拆解为下面的步骤语义分割为点云中的每个点分配唯一的语义类别标签如“地面”“椅子”“行人”不区分同一类别的不同个体如两张相同的椅子标注为同一标签实例分割在语义分割的基础上进一步区分同一类别的不同个体如两张相同的椅子标注为“椅子_1”“椅子_2”边界优化进阶精准分割目标的边缘点云避免类别混淆如区分桌子边缘与地面接触点支撑机器人精细操作。2核心评价指标平均交并比mIoU核心评价指标计算每个类别的交并比预测区域与真实区域的重叠程度后取平均值mIoU越高说明分割精度越高像素准确率Pixel Accuracy, PA被正确分类的点云数量占总点云数量的比例反映整体分割效果类别像素准确率Class Pixel Accuracy, CPA每个类别中被正确分类的点云数量占该类别总点云数量的比例重点关注机器人核心交互目标如工具、行人的分割精度小区域分割精度针对小尺寸目标或窄区域如工具手柄、台阶边缘的分割能力直接影响精细操作可靠性推理速度FPS单位时间内完成分割的帧数实时场景需满足10~20 FPS。2. 主流技术路线与核心算法三维分割的核心挑战是点云“无序性、稀疏性、非结构化”导致的局部特征捕捉与全局语义融合难度大。主流技术路线与三维目标检测类似分为Voxel-based体素化、Point-based基于原始点云及多模态融合路线各类路线在分割精度、效率、细节保留上各有侧重需结合机器人场景需求选择。1Voxel-based体素化技术路线将三维点云体素化转化为结构化3D张量复用3D CNN框架提取特征通过语义分割头为每个体素分配语义标签最后将体素标签映射回原始点云。该路线的核心优势是计算效率高易工程化部署适配机器人实时感知需求。Voxel-based技术路线的关键流程如下体素划分与编码采用与三维目标检测类似的体素划分策略室内0.1~0.2m室外0.3~0.5m提取每个非空体素的几何特征重心、法向量、点密度转化为3D特征张量3D卷积特征提取通过3D卷积层、池化层、反卷积层或上采样层提取多尺度特征还原体素的空间位置信息实现从全局特征到局部细节的融合体素标签预测通过分割头为每个体素分配语义标签采用Softmax函数输出类别概率标签映射与优化将体素标签映射到原始点云对边界体素采用插值优化提升边缘分割精度。Voxel-based技术路线的典型算法与应用场景如下3D UNet基于3D UNet的三维分割算法通过“编码-解码”结构实现多尺度特征融合分割精度较高但计算量较大适用于半实时场景如机器人场景建模VoxSegNet优化体素特征编码与3D卷积结构提升计算效率同时保证分割精度适用于室内实时导航场景如区分地面、墙壁、桌椅PillarSeg将3D体素简化为2D柱体采用2D CNN替代3D CNN大幅提升效率可达到20 FPS以上适配人形机器人实时语义分割场景如家庭环境感知。Voxel-based技术路线的优势是效率高、工程化难度低、适配嵌入式算力劣势是体素化导致边缘细节丢失小区域分割精度低体素尺寸越大边界混淆越严重。2Point-based基于原始点云技术路线直接对原始点云进行特征学习通过专门的点云语义分割网络如PointNet系列捕捉局部精细特征与全局语义信息为每个原始点云直接分配语义标签。该路线的核心优势是细节保留好边缘分割精准小区域分割精度高适配机器人精细操作场景。Point-based技术路线的关键流程如下点云采样与分组通过FPS最远点采样保留关键特征点采用球查询或K近邻查询获取每个采样点的局部邻域点集分层特征提取利用PointNet等网络的分层采样与特征聚合结构从局部邻域点集中提取精细特征逐步融合全局语义信息如从工具手柄局部特征融合“工具”全局语义语义标签预测通过全连接层或1×1卷积层输出每个点云的类别概率分配语义标签边缘优化采用条件随机场CRF或注意力机制优化目标边缘点云标签减少类别混淆。Point-based技术路线的典型算法与应用场景如下PointNet基于PointNet的改进算法通过分层特征聚合解决局部特征捕捉不足的问题是Point-based分割的基础算法适用于简单场景小目标分割如工业零件SqueezeSeg结合Point-based局部特征与全局语义约束提升复杂场景分割稳定性适用于室内外混合场景PointTransSeg引入Transformer注意力机制强化全局语义与局部细节的融合边缘分割精度高适用于机器人精细操作场景如工具抓取、台阶识别。Point-based技术路线的优势是细节保留好、边缘分割精准、小区域分割精度高劣势是网络结构复杂、计算效率低对嵌入式算力要求高。3多模态融合技术路线融合激光雷达点云的三维空间信息与相机图像的纹理颜色信息利用图像的纹理特征辅助点云语义分割如通过图像纹理区分“木质桌子”与“金属椅子”提升复杂场景下的分割精度尤其适用于遮挡、光照变化场景。多模态融合技术路线的典型算法与应用场景如下PointPainting将图像语义分割结果“喷涂”到对应的点云之上为点云补充纹理语义信息再通过Point-based网络优化分割结果提升遮挡场景分割精度适用于动态复杂场景如公共场所FusionSeg通过特征融合模块直接融合点云几何特征与图像纹理特征实现端到端语义分割适用于对精度要求高的精细操作场景。多模态融合技术路线的优势是分割精度高、抗干扰能力强劣势是需同步激光雷达与相机数据增加硬件成本与数据预处理复杂度适配机器人多传感器融合系统。3. 工程化实践要点人形机器人场景中三维分割需平衡“精细度”与“实时性”同时适配嵌入式算力限制核心实践要点包括点云预处理适配通过直通滤波筛选机器人视野范围内的点云如Z轴0.1~2.0m剔除无效点对小目标点云进行增强如重复采样提升小区域分割精度体素/采样参数优化室内精细场景选择小尺寸体素0.1m或少点数采样1万~2万点保证边缘细节室外大范围场景选择大尺寸体素0.3~0.5m提升效率模型轻量化采用轻量化网络结构如3D MobileNet、PointNet简化版通过模型量化、剪枝降低计算量采用“编码-解码”轻量化结构在保证精度的同时提升速度多传感器融合优化同步激光雷达与相机数据采用时间戳对齐、空间校准技术减少数据偏差重点融合图像纹理特征与点云几何特征提升目标类别区分度场景自适应后处理通过条件随机场CRF或形态学优化如膨胀、腐蚀优化分割边界根据场景动态调整类别权重如提升工具类别的损失权重提升核心目标分割精度。4. 人形机器人场景适配策略不同应用场景对三维分割的需求差异较大需要针对性选择技术路线实时导航/避障场景如家庭、办公环境移动优先选择Voxel-based路线的PillarSeg、VoxSegNet算法保证10~20 FPS的实时性重点分割地面、墙壁、桌椅、行人等核心类别mIoU目标≥0.7精细操作场景如工业装配、家庭服务抓取优先选择Point-based路线的PointTransSeg或多模态融合的PointPainting算法保证工具、零件等小目标的分割精度CPA≥0.8可牺牲部分实时性5~10 FPS复杂动态场景如公共场所行走采用“Voxel-based粗分割Point-based精优化”的融合方案结合多传感器融合技术提升动态目标行人、移动障碍物与遮挡目标的分割稳定性避免因分割错误导致的决策风险。总而言之三维分割的核心是“精细特征捕捉”与“语义信息融合”。Voxel-based路线适配实时移动场景Point-based路线适配精细操作场景多模态融合路线适配复杂动态场景。在人形机器人应用中需结合场景需求选择技术路线通过参数优化、模型轻量化、多传感器融合等手段实现“精细化语义理解-精准决策”的闭环与三维目标检测互补形成完整的环境感知体系。5.2.3 实战演练人形机器人三维目标识别本实例基于Open3D的原生几何功能实现了无深度学习依赖的人形机器人三维目标识别。通过生成含地面、桌椅、工具的室内模拟点云经去噪降采样预处理后采用DBSCAN聚类拟合包围盒模拟3D检测基于坐标高度特征完成语义分割最后分窗口可视化结果为机器人导航避障与工具抓取等任务提供感知支撑。实例5-2人形机器人三维目标识别源码路径codes\5\Point02.py实例文件Point02.py的主要实现流程如下所示。1下面代码的功能是模拟人形机器人激光雷达采集室内环境点云数据生成包含地面、桌子、椅子、螺丝刀工具四类目标的三维点云为每类目标设定专属空间坐标范围合并点云后添加轻微噪声还原传感器采集误差计算点云法向量供后续几何分析并输出原始点云总数。# 1. 生成模拟室内点云机器人激光雷达采集 def generate_robot_indoor_pcd(): 生成包含地面、桌子、椅子、工具的室内点云 # 1. 地面点云Z0X/Y∈[-6,6] ground_points np.random.uniform(-6, 6, size(6000, 3)) ground_points[:, 2] 0 ground_pcd o3d.geometry.PointCloud() ground_pcd.points o3d.utility.Vector3dVector(ground_points) # 2. 桌子点云X[1,3], Y[-1,1], Z[0,0.75] table_points np.random.uniform([1, -1, 0], [3, 1, 0.75], size(2000, 3)) table_pcd o3d.geometry.PointCloud() table_pcd.points o3d.utility.Vector3dVector(table_points) # 3. 椅子点云X[-2,0], Y[-1,1], Z[0,0.5] chair_points np.random.uniform([-2, -1, 0], [0, 1, 0.5], size(1500, 3)) chair_pcd o3d.geometry.PointCloud() chair_pcd.points o3d.utility.Vector3dVector(chair_points) # 4. 工具点云螺丝刀X[2,3], Y[0,0.5], Z[0.75,1.0] tool_points np.random.uniform([2, 0, 0.75], [3, 0.5, 1.0], size(500, 3)) tool_pcd o3d.geometry.PointCloud() tool_pcd.points o3d.utility.Vector3dVector(tool_points) # 合并加噪声模拟传感器误差 indoor_pcd ground_pcd table_pcd chair_pcd tool_pcd noise np.random.normal(0, 0.01, size(len(indoor_pcd.points), 3)) indoor_pcd.points o3d.utility.Vector3dVector(np.asarray(indoor_pcd.points) noise) # 计算法向量用于后续几何分析 indoor_pcd.estimate_normals(search_paramo3d.geometry.KDTreeSearchParamHybrid(radius0.1, max_nn30)) print(f机器人采集的原始点云总数{len(indoor_pcd.points)}) return indoor_pcd2下面代码的功能是对机器人采集的原始点云做预处理通过统计滤波剔除噪声点再用体素降采样减少点云数量以适配机器人实时处理需求输出预处理后的点云总数提升后续三维目标检测和分割的效率与准确性。# 2. 点云预处理 def preprocess_pcd(pcd): 去噪降采样适配机器人实时处理 # 统计滤波去噪 filtered_pcd, _ pcd.remove_statistical_outlier(nb_neighbors15, std_ratio2.0) # 体素降采样 downsampled_pcd filtered_pcd.voxel_down_sample(voxel_size0.05) print(f预处理后点云总数{len(downsampled_pcd.points)}) return downsampled_pcd3下面代码的功能是用几何方法模拟三维目标检测先通过DBSCAN聚类区分不同目标的点云簇为每个聚类拟合有向包围盒作为3D检测框依据包围盒中心坐标、高度等空间特征将目标分类为桌子、椅子、工具或地面输出检测目标数、各目标3D包围盒参数及类别信息返回检测框和目标名称供可视化使用。# 3. 三维目标检测几何方法 def detect_3d_objects_geometry(pcd): 模拟三维目标检测 1. 聚类DBSCAN区分不同目标 2. 拟合OrientedBoundingBox作为3D检测框 3. 基于空间位置分类目标桌子/椅子/工具 # 步骤1DBSCAN聚类区分不同目标点云 with o3d.utility.VerbosityContextManager(o3d.utility.VerbosityLevel.Warning) as cm: labels np.array(pcd.cluster_dbscan(eps0.2, min_points50, print_progressFalse)) max_label labels.max() print(f\n 三维目标检测结果 ) print(f检测到 {max_label 1} 个独立目标聚类数) # 步骤2为每个聚类拟合3D包围盒并分类 det_boxes [] # 存储检测框 det_names [] # 存储目标名称 # 颜色映射桌(红)/椅(蓝)/工具(黄)/地面(绿) colors [[1, 0, 0], [0, 0, 1], [1, 1, 0], [0, 1, 0]] for label in range(max_label 1): # 提取单个聚类的点云 cluster_points np.asarray(pcd.points)[labels label] cluster_pcd o3d.geometry.PointCloud() cluster_pcd.points o3d.utility.Vector3dVector(cluster_points) # 拟合有向包围盒更贴合目标形状 obb cluster_pcd.get_oriented_bounding_box() obb.color colors[label % 4] # 按类别上色 # 基于包围盒中心/高度分类目标模拟检测分类 center obb.center height obb.extent[2] # Z轴高度 if 1 center[0] 3 and 0 height 0.8: name 桌子 elif -2 center[0] 0 and 0 height 0.6: name 椅子 # 修正原0.7 height 0.3逻辑错误数值范围不成立 elif 2 center[0] 3 and 0.2 height 0.3 and 0.75 center[2] 1.0: name 工具螺丝刀 else: name 地面 det_boxes.append(obb) det_names.append(name) # 打印检测信息机器人决策用 print(f目标{label 1}{name}) print(f 3D包围盒中心({center[0]:.2f}, {center[1]:.2f}, {center[2]:.2f})) print(f 尺寸{obb.extent[0]:.2f}×{obb.extent[1]:.2f}×{obb.extent[2]:.2f}) return det_boxes, det_names4下面代码的功能是用几何方法实现三维语义分割基于点云的X/Y/Z坐标特征为每个点分配地面、桌子、椅子、工具类语义标签为不同标签匹配对应颜色生成彩色点云统计各类别点云数量及占比并输出返回分割后的彩色点云以直观区分不同目标。# 4. 三维语义分割几何方法 def segment_3d_points_geometry(pcd): 模拟三维语义分割 基于Z坐标/空间位置给每个点分配语义标签并上色 标签0-地面绿1-桌子红2-椅子蓝3-工具黄 points np.asarray(pcd.points) seg_labels np.zeros(len(points), dtypenp.int32) seg_colors np.zeros((len(points), 3)) # 基于几何特征标注语义标签 for i, p in enumerate(points): x, y, z p # 地面Z≈0 if abs(z) 0.05: seg_labels[i] 0 seg_colors[i] [0, 1, 0] # 桌子X[1,3], Y[-1,1], Z[0,0.75] elif 1 x 3 and -1 y 1 and 0 z 0.75: seg_labels[i] 1 seg_colors[i] [1, 0, 0] # 椅子X[-2,0], Y[-1,1], Z[0,0.5] elif -2 x 0 and -1 y 1 and 0 z 0.5: seg_labels[i] 2 seg_colors[i] [0, 0, 1] # 工具X[2,3], Y[0,0.5], Z[0.75,1.0] elif 2 x 3 and 0 y 0.5 and 0.75 z 1.0: seg_labels[i] 3 seg_colors[i] [1, 1, 0] # 生成分割后的彩色点云 seg_pcd copy.deepcopy(pcd) seg_pcd.colors o3d.utility.Vector3dVector(seg_colors) # 统计分割结果 print(f\n 三维语义分割统计 ) label2name {0: 地面, 1: 桌子, 2: 椅子, 3: 工具} for label in [0, 1, 2, 3]: count np.sum(seg_labels label) print(f{label2name[label]}{count}个点占比{count / len(points) * 100:.1f}%) return seg_pcd5下面代码的功能是对人形机器人三维目标识别的结果进行可视化展示分两个独立窗口呈现如图5-2所示第一个窗口展示三维目标检测结果将预处理后的点云与彩色检测包围盒叠加显示标注窗口名称并设定固定尺寸第二个窗口展示三维语义分割结果呈现按语义标签上色的彩色点云直观区分不同目标帮助直观验证检测和分割效果。# 5. 可视化结果 def visualize_results(pcd, det_boxes, seg_pcd): 分窗口可视化检测和分割结果 # 窗口1三维目标检测原始点云彩色包围盒 print(\n 可视化1三维目标检测彩色框为检测目标 ) o3d.visualization.draw_geometries([pcd] det_boxes, window_name人形机器人-三维目标检测, width800, height600) # 窗口2三维语义分割彩色点云 print(\n 可视化2三维语义分割颜色区分目标 ) o3d.visualization.draw_geometries([seg_pcd], window_name人形机器人-三维语义分割, width800, height600) # 主函数 if __name__ __main__: # 1. 生成模拟点云机器人激光雷达采集 raw_pcd generate_robot_indoor_pcd() # 2. 预处理去噪降采样 proc_pcd preprocess_pcd(raw_pcd) # 3. 三维目标检测几何聚类包围盒 det_boxes, det_names detect_3d_objects_geometry(proc_pcd) # 4. 三维语义分割几何特征分类 seg_pcd segment_3d_points_geometry(proc_pcd) # 5. 可视化结果分窗口展示 visualize_results(proc_pcd, det_boxes, seg_pcd) print(\n 人形机器人三维目标识别完成 ) print(检测结果可用于导航避障分割结果可用于工具抓取等精细操作)三维目标检测结果三维语义分割结果图5-2 三维目标识别结果的可视化