その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

API Diffsから見るiOS 13の新機能 - CoreML公式配布モデル #WWDC19

iOS 13の新API発掘シリーズその2です。

f:id:shu223:20190603103013j:plain

以前の公式配布CoreMLモデルと言えば、imagenetベースの物体検出がほとんどで、あまり新鮮味のあるモデルは配布されていませんでした。

qiita.com

なので、自作するか、サードパーティ製のを探して使うことがほとんどでした。

qiita.com

note.mu

・・・が、今日見てみると、楽しそうなモデルがたくさん追加されているではありませんか!

というわけで前回のVision編に続き、本記事では(APIではありませんが)CoreMLの公式配布モデルについて見ていきます。

デプス推定

  • FCRN-DepthPrediction
    • Depth Estimation

redict the depth from a single image.

画像からデプスを「推定」します。つまり、単眼カメラでも、デプスデータを持っていない既存写真からも、デプスが取得できるようになる、ということです。ここからAVDepthDataを生成することもできるはずです。

・・・ということはデプスを利用する機能が実質的にデバイスを限定する機能ではなくなるといえるのではないでしょうか。今まではデプスを使う機能を提供しようにもiPhone X系とか7 Plus, 8 Plus系のハイエンドデバイスのユーザーしか使えなかったので、興味やアイデアはあってもなかなか採用しづらかったのではないかと思います。

これでついにデプス利用機能が多少は普及しそうですね。参考書籍を貼っておきます。

shu223.booth.pm

(もちろん今回の発表をふまえてアップデート予定です)

セグメンテーション(領域分割)

  • DeeplabV3
    • Image Segmentation

Segment the pixels of a camera frame or image into a predefined set of classes.

f:id:shu223:20190604103249p:plain

サムネイル画像によると人間のセグメンテーションのように見えますが、解説を読むと"predefined set of classes"とあり、複数のクラスに対応しているようです。

試しに.mlmodelファイルをダウンロードして埋め込まれているdescriptionを読んでみると、

person, dog, cat and so on

とあります。人の他に犬や猫もセグメンテーションできるようです。

関連: iOS 12のPortrait Matteがすごい/ #iOSDC 2018で登壇します - その後のその後

物体検出(YOLO)

  • YOLOv3

    • Object Detection
  • YOLOv3-Tiny

    • (Real-time) Object Detection

Locate and classify 80 different types of objects present in a camera frame or image.

物体を「画像内のどこにあるか」の情報を含め検出してくれるモデル。リアルタイム検出用の"Tiny"版もあります。

f:id:shu223:20190604103336p:plain

質問への回答を生成

  • BERT-SQuAD
    • Question Answering

Generate answers to questions about paragraphs of text.

公式配布モデルでは唯一の自然言語処理用。

指定したパラグラフ内のテキストに関して、質問を与えると回答を生成してくれるようです。

f:id:shu223:20190604103357p:plain