AR测量箱子体积
这段时间都在研究测量箱子体积的项目,通过手机摄像头对准箱子进行拍照,箱子体积就出来了。
很多这方面的研究都使用参考物像证件、A4纸、人民币等。我们不使用任何参考物,使用SLAM的技术,市面上很多AR库都自称有SLAM功能,其中ARCore和ARKit最受追捧。
我们使用ARCore已经实现了测试箱子体积的功能,效果挺好,可惜只能在支持ARCore的设备上运行,中低端手机都不支持。
为了在中低端手机上测量,我们测试了网上能找到的AR库。
我们测试设备是MSM8953和MT6763,测试结果如下:
能用:
- MAXST:设备能运行、效果还可以、文档简单、有待研究
- Wikitude:设备能运行,很卡顿
- 百度AR:开放力度太小,取不到坐标,有待研究
不能用:
- Vuforia:设备不支持,貌似需要调用arcore
- EasyAR: 设备能运行demo,有slam,效果很不稳定,demo没显示相机图像
- 太虚AR 有slam,但无法注册
- 华为AR:仅支持华为手机
- 商汤:人脸识别为主
- 幻视AR:仅提供图像识别功能
- Xzimg:仅提供图像识别功能
- 天眼AR、RAVVAR:仅提供图像识别功能
- Kudan:看视频效果不错,需要联系
- 网易洞见AR:需要联系
最终选择了MAXST,这是韩国公司出的AR库。
网站地址:http://maxst.com/
下面分享一些使用这个库的经验,我使用的是刚发布的SDK4.0:
- MAXST构建的坐标系,坐标原点位置可以选择相机或者Target
- MAXST的SLAM是基于视觉的,在初始化的时候就确定下来图片上的特征点,相机离开这些特征点会导致SLAM丢失,此时需要重新初始化
- 通过MAXST的接口获取特征点,返回的特征点数据是二维信息,不具备深度信息,不像ARCore返回的是三维坐标
- VisualSLAM Demo定位效果还不错,想用来测距,后来发现每次初始化的位置不一样,建立坐标系大小不同,所以没有绝对的距离信息,不能用于直接测量距离
- InstantTracker Demo不需要初始化即可找到平面了,有点神奇,不过不是很准,而且放置的物体不是很稳定
研究到这里,基本可以弃坑了,MAXST不能用于测距,更不用说用来测量体积了