刚接触网站建设有哪些问题,学网络运营需要多少钱,泸州网站seo,网站优化需要工具2D图像检测跟踪
图像跟踪技术#xff0c;是指通过图像处理技术对摄像机中拍摄到的2D图像进行检测、识别、定位#xff0c;并对其姿态进行跟踪的技术。
苹果官方给我们提供的ARKit框架具备了这样一个图像识别的能力#xff0c;其能检测并识别从设备摄像头采集图像中的预定义…2D图像检测跟踪
图像跟踪技术是指通过图像处理技术对摄像机中拍摄到的2D图像进行检测、识别、定位并对其姿态进行跟踪的技术。
苹果官方给我们提供的ARKit框架具备了这样一个图像识别的能力其能检测并识别从设备摄像头采集图像中的预定义2D图像并能评估2D图像的尺寸大小和稳定跟踪这些图像的姿态ARKit最大支持同时跟踪100张2D图像。
利用图像检测功能我们可以实现如下的AR体验 1.使用2D图像作为放置虚拟元素的参考位置。通常情况下我们会要求用户扫描其周边环境在检测到的屏幕上放置虚拟元素这在某些时候会显得不太友好如一个零售商店需要显示一个虚拟导购这时我们可以在商店的大门两侧粘贴两张海报在ARKit检测到这两张海报后利用这两张海报的位置计算出一个位置显示虚拟导购营造虚拟导购正在门口迎接顾客的氛围。 2.使用2D图像作为AR应用的入口。AR应用启动后无须检测平面用户只需要将手机摄像头对准2D图像就可以出发AR体验这在某些场合更合适如在电影院里用户通过扫描电影海报就可以将电影主角召唤出来。 不仅如此2D图像检测在教育培训、工作应用等很多场景都有广阔的应用前景。 图像检测基本操作
在ARKit中使用图像检测功能有两步第一步建立一个参考图像库放置待检测图像集第二步是配置好图像跟踪的configuration并使用该配置运行ARSession
1.预先处理待检测的图像信息
使用静态方式创建参考图像库 a.新建一个Xcode工程在左侧工程导航面板中选择Assets.xcassets文件大在打开的资源面板左侧空白处右击并打开弹出菜单选择New AR Resource Group创建一个资源组并命名为Poke Cards如图所示。 b.在新创建的资源素名称上右击选择import导入图片或直接拉入图片 注意警告中对图片的要求按照要求放置图片会有更高的精度。 配置并运行
在创建好参考图像库后就可以通过ARConfiguration配置并运行ARSession启动2D图像检测跟踪典型使用方法如代码所示。
let config ARImageTrackingConfiguration()guard let trackedImagesLib ARReferenceImage.referenceImages(inGroupNamed: Poke Cards, bundle: Bundle.main) else{fatalError(无法加载参考图像库)}config.trackingImages trackedImagesLibconfig.maximumNumberOfTrackedImages 2arview.session.run(config,options: [ ]) 在上述代码中首先从bundle中加载参考图像库并将该参考图像库设置到AR配置类的trackingImages属性然后通过ARSession.run()方法就可以运行2D图像检测跟踪了。ARKit支持同时跟踪多个2D图像通过maximumNumberOfTrackedImages属性可以设置同时跟踪2D图像的数目这个值设置的越大同时跟踪的图像就越多但性能消耗也会越大。 运行2D图像检测识别应用后ARKit检测到与参考图像库中参考图像一致的2D图像时ARSession会自动添加一个ARImageAnchor到ARAnchor集合中开发人员可以通过ARSessionDelegate协议中didadd代理方法进行相应处理。 在AR应用运行时动态创建图像参考库并配置运行 参考图像库除了可以在Xcode编辑状态下静态创建也可以在AR应用运行时动态创建典型的参考代码如下所示。 let config ARImageTrackingConfiguration()var trackedImagesLib SetARReferenceImage()let image UIImage(named: Poke)let referenceImage ARReferenceImage(image!.cgImage!,orientation: .up,physicalWidth: 0.15)trackedImagesLib.insert(referenceImage)config.trackingImages trackedImagesLibconfig.maximumNumberOfTrackedImages 1arview.session.run(config,options: [ ])
检测图像使用的配置
所有ARConfiguration配置类的功能都是建立虚拟数字世界与现实物理世界之间的联系营造虚拟元素真的存在于真实世界中的假象。对于2D图像检测跟踪而言可以使用图像跟踪ARImageTrackingConfiguration和世界追踪ARWorldTrackingConfiguration两种配置方式实现。
ARWorldTrackingConfiguration配置方式可以跟踪现实世界中的所有对象包括2D图像通过设置该配置类的以下3个属性可以实现对2D图像的检测跟踪使用detectionImages属性设置参考图像库使用maximumNumberOfTrackedImages属性设置最大同时跟踪的图像数量automaticImageScaleEstimationEnabled为一个布尔值用于指示ARKit是否对检测到的图像进行尺寸估计。
ARImageTrackingConfiguration是专为2D图像检测跟踪优化的配置其中trackingImages属性用于设置参考图像库maximunNumberOfTrackedImages设置最大同时跟踪的图像数量isAutoFocusEnabled为一个布尔值用于设定对焦方式。
图像跟踪和世界跟踪两种配置类都可以实现对2D图像的检测跟踪它们的区别如下 1.世界跟踪比图像跟踪性能代价高因为其执行的任务更多处理工作更大因此使用图像跟踪可以检测跟踪更多的2D图像 2.图像跟踪只检测跟踪视线内的2D图像一旦2D图像离开视线对图像的跟踪将不再进行。而世界跟踪会跟踪已检测到的所有图像即使2D图像离开视线跟踪也会进行因此世界跟踪不仅知道2D图像还知道这个2D图像所在位置 3.世界跟踪方式更适合跟踪静态不移动的2D图像图像跟踪方式更适合跟踪运动2D图像