ENSENSO 3D双目相机垂直测量规则物体点云体积

时间:2024-03-10 13:50:22

ENSENSO 3D双目相机垂直测量规则物体体积

一.

获取工作:

img
  • 拍摄要点:
    • 正上方于物体,视角垂直于背景
    • 背景尽量平整,不反光
    • 相机高度大于一米以上,这里测试高度在1.5m左右

二.实验工具,环境

  • Python

  • Python_package

    • import numpy 
      import open3d 
      from matplotlib
      import scipy
      

三.处理过程

  • 点云数据以numpy形式保存为.npy文件

    • image-20210914210941271
  • 用CloudCompare查看效果

    • image-20210914211146895
  • 对元数据进行裁剪

    • 在不拍到杂乱背景的前提下,裁的越大越好
    • 这里选择裁剪为500*500
    • 裁剪后image-20210914211413307
  • 寻找点云中最大的平面(Plane_Segmentatio),这里默认背景尺寸大于物体

    • 下表面image-20210914211916430
    • 上表面
image-20210914212017965
  • 点云离群点去除(去除异常点干扰)

    • image-20210914212206825
    • 这里把这些红色的点作为离群点排除(实际这些不全是离群点,为了展示效果阈值参数比较夸张)
  • 还原下表面

    • 提取下表面点云的z平均值GroundZavg
    • 复制上表面点云,将复制项的点云Z通道值设置为GroundZavg
    • 拼接点云
    • image-20210914212630985
  • 物体表面重建,这里是α形状重建(Surface_reconstruction),这一步仅作展示

    • image-20210914212802610
    • scipy.spatial.ConvexHull 的凸包,具有volume接口
image-20210914212843712 image-20210914213128676
  • 最小物体框检测(Bounding)
    • image-20210914213241624
    • 红色Box是AABB Box,绿色是OBB Box
    • image-20210914213342921
    • Box可以用作近似体积估算

四.结果

  • 测得体积为1141cm^3

  • 实际用尺子测量规则物体积估算为1199cm^3

image-20210914213450438

  • 测试耗时image-20210914214101217