美文网首页来聊聊苹果发布会吧ios开发进阶苹果WWDC 2017
iOS11来啦!快看ARKit、ML(就是那个!:)

iOS11来啦!快看ARKit、ML(就是那个!:)

作者: yjking123456 | 来源:发表于2017-06-06 17:32 被阅读1013次

WWDC 17 苹果开发者大会,带来了全新的 iOS 11、MacOS、tvOS 和 watchOS,革命性的 AR 和 ML 应用,以及更强的 iPad、“硬件神兽” iMac Pro 和智能音箱 HomePod。各位小伙伴们还不赶快来尝尝鲜~~

ARKit


ARKit通过CoreMotion获取摄像头和传感器的数据,无需额外校正即可精准处理空间的移动。在空间里侦测出水平面,例如桌面、地板等,预估场景和虚拟物件的亮度。更可通过Metal、SceneKit, 或者第三方工具(例如Unity、Unreal Engine)进行高级定制。

ARSession

AR的功能都通过这个会话来管理。
从SpriteKit里的SKView派生了ARSKView
,用于显示2D内容;
从SceneKit里的SCNView派生了ARSCNView
,用于显示3D内容。
然后是配置:ARSessionConfiguration
,这是一个简单的基类,仅追踪设备方向。还派生了ARWorldTrackingSessionConfiguration
,它追踪设备方向和位置,侦测现实世界中的平面。
现实世界物体的锚点ARAnchor
,可定位方向和位置。还派生了ARPlaneAnchor
,包含了平面的方向和位置信息。
摄影机ARCamera
,其捕捉的画面是ARFrame
,光照ARLightEstimate

以上就是ARKit的主要对象了,是不是很简单,一目了然?
关键还是实战!对吧。好,下面掏出家伙来~~(好像哪里不对😢)

代码

let configuration = ARWorldTrackingSessionConfiguration()
configuration.planeDetection = .horizontal
sceneView.session.run(configuration)

简单三步:1、定义配置实例;2、配置为侦测水平面;3、运行session。
当然,你得先根据需要定义好sceneView,2D就定义为ARSKView,3D就定义为ARSCNView。
接下来你就可以做最重要的事情了——放东西!😄😄😄,不然怎么叫增强现实!要放东西去增强!

// 创建transform,在摄影机前0.2meters
var translation = matrix_identity_float4x4
translation.columns.3.z = -0.2
let transform = simd_mul(view.session.currentFrame.camera.transform, translation)

// 添加锚点
let anchor = ARAnchor(transform: transform)
view.session.add(anchor: anchor)

// 再显示一个Label吧
func view(_ view: ARSKView, nodeFor anchor: ARAnchor) -> SKNode? {
    return SKLabelNode(text: "🐸")
}

一个长者出现在你的面前!赶紧膜!

Machine Learning


机器学习,这个还用我多说?你是不是要开始写个Alpha狗去虐愚蠢的人类了?赶快看下面!
1.首先给你的项目增加模型文件,后缀是.mlmodel;



2.如上图,定义好model的名字、输入、输出。然后就是写代码啦:

let model = MarsHabitatPricer()
func selectedRow(for feature: Feature) -> Int {
    return pickerView.selectedRow(inComponent: feature.rawValue)
}

let solarPanels = pickerDataSource.value(for: selectedRow(for: .solarPanels), feature: .solarPanels)
let greenhouses = pickerDataSource.value(for: selectedRow(for: .greenhouses), feature: .greenhouses)
let size = pickerDataSource.value(for: selectedRow(for: .size), feature: .size)

这里示范了从UIPickerView获得输入。最后保存到model文件里,机器就学习了价格,就可以跟你砍价了(大误)~~~
人类就这样被机器控制了(大大误),你要反抗?苹果早就给了你一个武器:NSLinguisticTagger
,你可以用自然语言跟机器沟通,让它赦免你?

人类最后的话

随着大会推进和深入研究,我后续会不断更新,您还不赶紧关注文章!消灭人类暴X,世界属于AI

相关文章

网友评论

  • weiweilong:人类最后的疑问: .mlmodel 怎么创建呢?
    yjking123456:@叶舞清风 注意!Xcode9该武器尚在测试中,需要开发者账号才能获得
    叶舞清风:@yjking123456 你已经更新到9了》???我这最新才8.3.3
    yjking123456:请使用最新型武器:Xcode9,配备了.mlmodel子弹!
  • zaoxxn:哈哈哈,赶紧膜
    yjking123456:@zaoxxn +1s

本文标题:iOS11来啦!快看ARKit、ML(就是那个!:)

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