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