美文网首页图物识别
iOS AR -基于EasyAR的图片识别,显示详情等应用场景

iOS AR -基于EasyAR的图片识别,显示详情等应用场景

作者: FTC陳 | 来源:发表于2017-08-25 18:58 被阅读226次
iOS11推出ARKit,用来实现在现实场景中的增强现实等一系列操作,在分析ARKit的过程中,对国内外其它的一些ARSDK的应用场景进行分析,写了个对固定图片/物体进行扫描识别,进行一些后续操作的Demo,以供参考.

主要内容:
(1)识别固定图片或物体,进行后续界面性质操作
(2)识别固定图片或物体,显示出对应模型,进行模型性质操作

一.主要代码
(1)识别 + 界面性质操作

对于集成EasyAR的操作,不做过多说明,参照官方demo即可
当前集成SDK版本为: EasyAR_SDK_2.0.0_Basic_Samples_iOS

特别注意: ViewController 继承于 GLKViewController

1.替换需要扫描的图片为自己的图片
BOOL initialize() 方法中更改图片设置:

//替换图片
if (!status) { return status; }
easyar_ImageTracker * tracker = [easyar_ImageTracker create];
[tracker attachStreamer:streamer];
//    loadFromJsonFile(tracker, @"targets.json", @"argame");
//    loadFromJsonFile(tracker, @"targets.json", @"idback");
//    loadAllFromJsonFile(tracker, @"targets2.json");
loadFromImage(tracker, @"test2.jpeg");
trackers = [[NSMutableArray<easyar_ImageTracker *> alloc] init];
[trackers addObject:tracker];
更改识别图片.png

2.增加识别成功与失败的方法
void render() 方法中增加方法:

//增加方法
if ([frame targetInstances].count==0) {
    NSLog(@"图片识别失败");
    [[NSNotificationCenter defaultCenter]postNotificationName:@"PicRecognitionFail" object:nil userInfo:nil];
}else{
    for (easyar_TargetInstance * targetInstance in [frame targetInstances]) {
        easyar_TargetStatus status = [targetInstance status];
        if (status == easyar_TargetStatus_Tracked) {
            NSLog(@"图片识别成功");
            //图片识别成功
            [[NSNotificationCenter defaultCenter]postNotificationName:@"PicRecognitionSuccess" object:nil userInfo:nil];
            //            easyar_Target * target = [targetInstance target];
            //            easyar_ImageTarget * imagetarget = [target isKindOfClass:[easyar_ImageTarget class]] ? (easyar_ImageTarget *)target : nil;
            //            if (imagetarget == nil) {
            //                continue;
            //            }
            //            [box_renderer render:[camera projectionGL:0.2f farPlane:500.f] cameraview:[targetInstance poseGL] size:[imagetarget size]];
        }
    }
}

3.识别成功后执行需要的方法

//增加需要执行的方法
//识别成功
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(abc) name:@"arSuccess" object:nil];
- (void)PRScuccess{
     NSLog(@"识别成功操作");
}

//识别失败
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(abcabc) name:@"arFail" object:nil];
- (void)PRFail{
   NSLog(@"识别失败操作");
}
(2)识别 + 模型性质操作

对于模型性质的操作,需要集合Unity进行开发(包括模型动画,模型音频等),现对EasyARSDK中,Unitydemo进行导出iOS工程

1.设置EasyAr的key


设置EasyAr-ke�y.png

2.导出iOS工程

导出iOS工程.png
二.实现效果
(1)对固定图片/物体识别 + 界面性质操作 (界面显示文字,图片,视频等)
图片实物识别:界面操作.gif
(2)对固定图片/物体识别 + 模型性质操作

此处是导出EasyARSDK中,Unitydemo的iOS工程,进行识别

特别注意: InfoPlist文件中添加访问相机权限
Easyardemo.gif
四.Demo地址

欢迎star : https://github.com/FTC-Chen/EasyARTest-Demo1

有任何问题请私信或者留言,或者有更好的实现方法,也请告诉我.

相关文章

  • iOS AR -基于EasyAR的图片识别,显示详情等应用场景

    iOS11推出ARKit,用来实现在现实场景中的增强现实等一系列操作,在分析ARKit的过程中,对国内外其它的一些...

  • EasyAR

    AR EasyAR iOS的SDK功能: 匹配场景图片,在匹配成功的图片上加载图像,3D模型,视频; EasyAR...

  • AR开发--(二)多张图片识别

    AR开发--(二)多张图片识别 Unity5.5+EasyAR SDK1.3.1 多张图片信息保存在targets...

  • 微信小程序使用AR识别图片

    公司需要做个一个AR扫描图片识别成功以后跳转到对应的页面的功能。先感谢小程序支持AR,再感谢EasyAR(http...

  • 再谈AR中的图像识别算法

    之前在《浅谈移动平台创新玩法》简单的猜测了easyar中使用的图像识别算法,基于图片指纹的哈希算法的图片检索 。后...

  • 6种常见的地标识别算法整理和总结

    摘要:地标识别,基于深度学习及大规模图像训练,支持上千种物体识别及场景识别,广泛应用于拍照识图、幼教科普、图片分类...

  • AR 相关平台调研

    AR 相关平台调研比较 EasyAR (国内) 一、 可实现的效果图像识别,云识别,支持1000个以上本地目标的流...

  • EasyAR应用之iOS原生视频播放【脱卡】

    前言 这是EasyAR应用系列的第二篇,针对AR视频播放,“脱卡”功能是亟待解决的问题。然而,EasyAR的文档中...

  • 云识别(1.2以上的版本)

    云识别: 在HiAR官网上的云识别解释是:为了解决识别图片数量限制,以及上线应用不能动态修改识别图片和AR内容的问...

  • opencv api 笔记

    前言opencv在图像处理中使用广泛,许多常见的应用场景例如人脸识别,车牌识别等都是基于opencv开发的。本文是...

网友评论

  • 无奈iOSer:为什么我随意扔一张图片识别不了,是要进行什么操作吗

本文标题:iOS AR -基于EasyAR的图片识别,显示详情等应用场景

本文链接:https://www.haomeiwen.com/subject/dsaedxtx.html