• 阅读数:341发布于2021-01-22 17:08:14

    只看该作者
    3D视觉精英实战训练营(第一期)D组分享 复制本文链接

    项目简介

    在实例代码的基础上进行开发。
    https://pan.baidu.com/s/1wDlILjvBRZrf9GPqLfckVQ 提取码:vjv3
    开发内容包括:分隔人体像素点、计算人体重心、计算运动运动速度。

    效果展示

    人体像素分割

    人体点云展示

    成员分工

    成员分工

    算法思路

    算法思路

    1、依据深度模型检测出的黄框作为初始人体区域。

    2、在初始区域的中心位置的深度值(Z轴)作为人体所在位置的起始值

    3、在人体起始位置的±30cm 设为属于人的像素,即可得到分割人体像素

    4、访问SDK获取点云,利用PCL 库呈现三维点云,并计算点云的重心

    未来展望

    未来展望

    补充说明

    • 进行处理时,需要在原始的深度图上处理,而不是转的伪彩色的图上。因为原始的深度图是16位的,转的伪彩色是8位的(0~255),精度丢失了。

    • 进行形态学(腐蚀、膨胀、开闭运算)处理处理,相对太局限性。例如3米的物体和1米的物体,算子是用50*50的?固定大小的算子,可能直接把远出的人体给腐蚀没了,因为远处的人占据的像素比较少。

    • 如果只用深度图,对于存在地面的人体,据我所知,是没法处理的,因为人和地面的深度值一样,所以连在一起,如下图所示。

    异常情况

    但如果引入点云的Y值(世界坐标系的垂直方向)就可以人和地面分割出来。

    代码文件

    主要是修改DetectDemo.cpp 需要配置PCL才可运行

    代码文件下载

    回复 (1)

    举报
举报

请选择举报理由

  • 垃圾广告
  • 违规内容
  • 恶意灌水
  • 重复发帖
提示

奥比中光 · 3D视觉开发者社区...

站长统计