03_ARKit图片识别

1. ARKit图片识别的条件

  借助ARKit中的图像识别功能,我们可以构建识别平面图像(如海报或产品包装)的AR应用。
  只需要提供一组图片,在用户的相机摄像头检测到图像时,ARKit会创建一个图片锚点[Image Anchor],告诉我们这些图像在AR绘画中的物理位置。我们可以基于图片锚点,加载自定义模型、动画、文字、视频等内容。
  在AR应用中,图片识别是非常重要、十分常见的形式,我们可以使用ARKit的图片识别开发AR书籍、AR名片、AR卡牌游戏等应用。

ARKit图片的建议:

  1. 检测仅基于高对比度的点,所以彩色和黑白图像都会被检测到,无论是使用彩色还是黑白参考图像都可以;
  2. 避免使用具有稀疏特征的图像;
  3. 避免使用具有重复特征的图像;
  4. 在Build的时候Xcode会对不符合要求的图像进行提示。
    图片

图片来源于腾讯课堂: ARKit视觉风暴https://ke.qq.com/course/575145


技术选型考虑的因素:

  1. 用户设备需要支持ARKit:设备需要A9处理器以上(iphone 6s/SE以上);
  2. ARKit 1.5版本开始支持图片识别;
  3. ARKit 3.0版本支持同时追踪最多100张以上的图片;
  4. ARKit的图片识别主要针对平面图片识别,不规则形状图片偶尔会识别失败(如可乐瓶包装);
  5. 图片识别时也要考虑光照条件,光线暗、反光的情况可能会识别不出。

2. 如何实现ARKit的图片识别

  1. 创建unity项目,倒入ARKit插件;

  2. 在MainCamera中添加脚本并进行相关配置
    脚本配置

  3. 新建ARReferenceImagesSet,新建ARReferenceImage并导入照片。
    新建ARReferenceImagesSet

    ARReferenceImage配置

    ARReferenceImagesSet配置

    需要将ARReferenceImagesSet、ARReferenceImage和项目场景放在同一路径下。

  4. 与MainCamera关联
    MainCamera Unity AR Camera Manager配置

  5. 新建EmptyObject,添加脚本并进行相关配置
    GenerateImageAnchor配置

  6. 编译运行,得到效果
    IMG_1535.png


注:本ARKit系列博客是根据 【子羽老师】发布在腾讯课堂的ARKit视觉风暴课程整理总结:https://ke.qq.com/course/575145

# AR  ARKit 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×