小明带你看WWDC 2017(day4实况)

作者介绍:

黄明,WWDC 2017大会的小时光茶社特派员 ,腾讯SNG增值产品部内容中心iOS组leader,主要负责手Q个性化业务、手Q WebView等项目。作为终端开发也喜欢学习些图像图形方向的知识,同好者可以技术交流。生活中,休闲比较喜欢看书,娱乐比较喜欢电竞。 

今天是WWDC的倒数第二天,感兴趣的session越来越少,跟大家分享分享听了这几个。


1. Core ML in depth

Core ML in depth,再次跟我们解释了怎么使用Core ML,着重点在于Core ML Tools的介绍。介绍了它的大概结构,为什么使用python(因为很多Machine Learning的开源库都是使用python),开发者可以使用Core ML Tools转换其他Machine Learning产生的库,以供Core ML使用,并且它是开源的,开发者可以随时修改以支持更多的库。顺便说一句,虽然苹果PPT中没有提到Tensorflow,但其实Core ML是间接支持Tensorflow的,因为Keras的后端可以是Tensorflow或者Theano


2. Image Editing with Depth

Image Editing with Depth,更为形象的为开发者展示了什么是depth,并使用Demo为我们展示利用depth可以做些什么效果。当然还有更多的效果等待广大开发者通过智慧来探索。下图左、中、右分别是原图,depth信息、depth形象展示图。

另外在使用depth过程中,一定要注意depth信息存储一般分辨率小于原图,在使用depth过程中,需要对其进行缩放。这里即涉及到缩放算法,除了临近采样、线性插值和Bicubic,苹果还提供了一种EdgePreservedUpsampleFilter,以便保证边缘不会被平滑掉。

最后,在传输包含depth信息图像时,需要注意depth的一些信息一定要和图像信息同步处理,如方向也要随着图像方向改变而改变、图像做了transform则depth信息也得做对应处理。


3. Advances in Core Image

Advances in Core Image,介绍了Core Image的相关更新,包括:

1、提供了更多的新的内建Filter(包括depth相关):

2、更新了部分已有的filter:

3、可以直接使用Metal Shading Language来写CLKernel,这样支持提前编译以提高性能,并且具备更多Modern Language特性。

4、提供了新的CIRenderDestnationAPI,这类API支持提交GPU任务后继续执行,异步返回执行结果,这样提高了GPU/CPU并行效率。

5、支持了各种扫描码识别,包括二维码。

6、XCode中提供了CIImage的快速预览能力,方便开发者debug,非常好的特性。


4. Using Metal 2 for Compute

Using Metal 2 for Compute,我原本以为是介绍怎么用Metal进行GPU并行计算,但其实是关于稍高层一点的应用,介绍怎么用Metal2做机器学习算法运算,即MPS(Metal Performance Shaders)的介绍。

MPS是Core ML的基础。如图,和Accelerate在同一层级,Accelerate是使用CPU运算,而MPS使用GPU运算,这里的运算都是指Machine Learning或图像处理中比较高层的相关数学运算。MPS从iOS10开始就封装了很多图像处理相关算法的原语(Primitive),如下图所示:

iOS11又提供了如下新的图像处理算法支持:

也新增了当下很流行的各种Machine Learning相关算法,如CNN:

使用MPS构建CNN网络将十分简洁,如下图:

这样就可以构建一个多层的CNN网络。

Session中还介绍了一个Inception-v3 + LSTM做Image Caption(图像描述)的例子。

使用这种算法,每一个迭代选取一个更为具体的描述,最终产生一个完整的准确的描述:

Demo中的效果非常不错,广大对Machine Learning感兴趣的开发者可以多研究研究。最终算法结果表现如下:

至于性能,iOS11做了很多优化,同一个算法在iOS11上的提升如下:

具体性能怎样,可能还有待开发者使用测试。


今天session较少,终于也有时间去Lab问问题了,今天去Webview相关的Lab问了两个问题。

1、Q:关于Safari为什么JS Performance会比Chrome高这么多(Keynote说80%)。

A:有一个比较重要的优化是GC的并行优化,新的Safari目前使用的Webkit GC是一个并行的过程,而Chrome的貌似还不是。当然还有很多细节优化,大家可以去Webkit Blog查阅相关信息。

2、Q:新的WKWebview支持拦截custom scheme,不能拦截http/https是为什么?未来是否有计划支持开发者对于WKWebview做自定义的数据缓存机制的需求?

A:不支持HTTP/HTTPS的拦截是因为安全问题,开发者拦截就绕开了WKWebview一系列安全措施。有很多其他开发者也提到了自定义缓存机制问题如Oracle,WKWebview团队未来会考虑提供某种机制,方便开发者做自定义缓存相关能力。


好了今天的内容就到这里,明天见。


关于我们:

小时光茶社(Tech Teahouse),由腾讯QQ会员技术团队创建,用于技术分享和交流。

欢迎长按二维码,关注我们^__^。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值