前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小明带你看WWDC 2017(day4实况)

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

作者头像
小时光
发布2018-01-29 15:40:42
7980
发布2018-01-29 15:40:42
举报
文章被收录于专栏:Technology Share

作者介绍:

黄明,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团队未来会考虑提供某种机制,方便开发者做自定义缓存相关能力。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小时光茶社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档