Quantcast
Channel: その後のその後
Viewing all articles
Browse latest Browse all 314

[iOS][Swift][Xcode]【iOS 11】API Diffsから見る iOS 11 の新機能 #WWDC17

$
0
0

今年はWWDC会場よりお送りしております。特に何も期待しないまま参加したのですが、開発者的には非常にワクワクする発表がたくさんありました。


基調講演の内容からではなく、ベータ公開されたiOS Dev CenterのAPIリファレンスを見て、個人的に/開発者目線から気になった新APIを挙げていきます。


Core ML

iOS 10からMetal Performance Shaders(以下MPS)に追加されたCNN関連機能、足りないものが色々とあり、ここらへんは拡充されたら嬉しいなとは思っていましたが、新フレームワークとして登場しました。


おいおい、さらに増えたら MPSCNN / BNNS / Core ML とどう使い分けるんだ、と思いましたが、ドキュメントの図で棲み分けがわかりました。


f:id:shu223:20170606094137p:image:w450


Keras や Caffe で学習したモデルを BNNS や MPSCNN で使えるようにするのが Core MLのようですね。

import coremltools
coreml_model = coremltools.converters.caffe.convert('my_caffe_model.caffemodel')
coreml_model.save('my_model.mlmodel')

実際、学習済みモデルを持ってくるところは扱いづらい仕様だったので、これは嬉しいです。



Metal Performance Shader

上でMPSという略語を何度かもう出しましたが、MPS自体にもいくつか新規追加APIがあります。その中でも目を引くのが Recurrent Neural Networks(RNN / 再帰型ニューラルネットワーク)関連のAPI群。

  • MPSRNNImageInferenceLayer
  • MPSRNNMatrixInferenceLayer
  • MPSRNNSingleGateDescriptor
  • MPSGRUDescriptor
  • MPSLSTMDescriptor
  • MPSRNNSequenceDirection

RNNは、文書解析に向いていて、自然言語処理の分野で成果を挙げているとか。勉強します。


Vision

これも新フレームワーク。画像解析・コンピュータビジョンで顔を識別したり、シーンを分類したりするフレームワークのようです。APIを見てると Core Image の CIDetector の下回りがこれなのかなぁという品揃えです。

  • Face Detection and Recognition
  • Machine Learning Image Analysis
  • Barcode Detection
  • Image Alignment Analysis
  • Text Detection
  • Horizon Detection
  • Object Detection and Tracking

ちなみにドキュメント冒頭で "detect faces" ではなく "identify faces" という言い方をしてるのと、"Face Detection and Recognition" とわざわざ書いてあるので、顔検出ではなく、「これは誰々だ」という顔の認識までしてくれるのかなと期待しましたが、今のAPIを見た限りだと従来の顔の矩形検出っぽいです。今のところは。


いや、それにしてもこれは嬉しいです。もっとAPI掘ってみます。


ARKit

これは基調講演でも盛り上がってましたねー *1


f:id:shu223:20170606094517p:image:w600


私事ですが、勤めている会社のアプリ Fyuse でこういうものを実装しました。


f:id:shu223:20170606094635j:image:w585


Fyuseというアプリはスマホで3D的な写真を取るアプリなのですが、実装した機能というのが、タップして選んだ対象の周囲に3Dの「ARガイド」を表示して、撮影を補助するものです。


f:id:shu223:20170606094825g:image


で、これがiOSの実装的に言うと、

  • カメラからの入力画像を解析してリアルタイムにオブジェクトトラッキング(物体追跡)
  • カメラの姿勢と対象物体の位置・角度からARガイドを表示する

というところで、AVFoundation、Metal、SceneKit(+コアとなる画像処理:弊社リサーチチームによる実装)が要素技術になってきます。


僕は3Dにまったく慣れてなくて、カメラからの入力・iPhoneのスクリーンという2Dの世界と、デバイスの姿勢・SceneKitで構築する3Dの世界とを行き来するのに大変苦労しました。


こういうのをARKitはやりやすくしてくれるものなのかなと思います。具体的なAPIはまた後ほど見たいと思います。


Depth API

基調講演で「Depth API」って言ってて、「きたー!」と思いましたが、


AVFoundationを見るも、新規追加APIはなし


どこにあるのでしょうか・・・?


Core NFC

基調講演でチラッとNFCの文字が見えましたが、新フレームワークが追加されてました。何ができるようになったのか、あとでAPIを見ます。


その他

MusicKit

基調講演でチラッと行ってた気がするけどAPIリファレンスに見当たらないような。。。


いや、Musicライブラリまわりの連携って、実は結構苦しいこと多くないですか?なので、何が新たにできるようになったのかは知っておきたいなと。


RPScreenRecorder

ReplayKitに追加された、アプリのスクリーンビデオを撮るためのクラス。そもそもReplayKitってそういうものじゃなかったでしたっけ?たまに画面を録画する機能をサクッとつくりたいケースはあるので、以前のと何が違うのか、見ておきたいなと。


NEHotspotConfiguration

WiFi関連のAPIが今更新たに公開されるのって、どういう文脈に沿ってるんでしょうか?何にせよ外の物理的な何かと連携するAPIは好物なので、見ておきたいです。


Xcode 9

いろいろ劇的に改善されましたね。


関連


*1:個人的には、ポケモンGoのARはあまりARの良さを活かしているものではないと思ってるので(みんなARモード切って使ってますよね)、あれがARの代表例としていつも挙げられる度にうーんと思ってしまうのですが


Viewing all articles
Browse latest Browse all 314

Trending Articles