ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
Create MLでオブジェクト検出モデルをトレーニングする
オブジェクト検出のためのカスタムのCore MLモデルを使用すると、Appに魔法のような機能を追加できます。このセッションでは、XcodeのCreate ML Appによって、どのようにオブジェクト検出モデルを簡単にトレーニングおよび評価できるかについて説明します。また、コンティニュイティカメラを活用して、モデルのパフォーマンスをApp内で直接テストする方法も紹介します。Core ML向けの優れたオブジェクト検出モデルの構築とデプロイが、これまでになく簡単になりました。
リソース
関連ビデオ
Tech Talks
WWDC20
WWDC19
-
ダウンロード
(音楽)
(拍手) おはようございます 私はアレックス・ブラウン Core MLのエンジニアです 本日はCreate MLの 物体検出を紹介します
“What's New in Machine Learning”では― Create MLの 新アプリケーションを紹介しました 皆さんが使用している アプリケーションに追加できる― 機械学習モデルでした
今回は2つの テンプレートについて― 詳しくお話しします 画像を使用した物体検出と 音声識別です
物体検出の話を始めましょう
物体検出は カメラで撮影した― 現実世界のオブジェクトを 認識します その存在や位置― 関係性を検知するのです 様々なオブジェクトを 識別する物体検出は― ウェブで ダウンロードできます
機械学習モデルを データに基づいて― トレーニングして アプリケーションに組み込みます すると特定の動物や ハンドジェスチャ 標識やサイコロを識別します
Appleの機械学習の 利用者なら― すでに画像認識は ご存じでしょう
画像上の被写体や場所を― 1つのみ感知し 認識する機能です 例えばこの画像なら “屋外”または“公園” 特定のアプリケーションでは “犬”と認識します
しかし1つ以上を 認識させたい場合は?
物体検出なら それが可能になります 複数のオブジェクトを 感知するのです 写された写真の場所や― サイズやラベルもです
カメラを使った 高度な認識を可能にします そのためにはオブジェクトの 詳しい情報が― 必要になります
モデルに認識させたい 領域にラベル付けし― 物体検出を トレーニングするのです 注釈付きオブジェクトの 境界ボックスは― サイズ 高さ 幅を持ち オブジェクトを囲います
ボックスの左上の角から 中心に向かって― ピクセル単位で計測されます
これらの注釈 ラベル 位置 サイズを― すべて次の形式で JSONファイルにまとめます
この構築ツールは ウェブで見つかります Create ML アプリケーションと 同じ座標系のデータを使用します
すべての注釈がそろったら― 画像と同じフォルダに ドロップして入れます トレーニングデータの 完成です
以上が物体検出の データ作成の方法です 次は具体的な例です 同僚のスコットが 子供のための― 算数の学習ゲームを 考案しました 現実世界の サイコロを使うゲームです
これはセッション228で 紹介しました Creating Great Apps Using Core ML and ARKitです スコットにモデル構築の 助言を求められ― 物体検出をトレーニングする このアプリケーションを薦めました
スコットの トレーニングデータです サイコロの目を― 様々な角度から撮影し 注釈を付けています サイコロの上面を 境界ボックスで囲い― 面数にラベル付けが してあります
データはそろっています 次はモデル構築の方法を ご紹介します
まずデータをチェックします 各フォルダに 画像が入っています
多数のサイコロ画像です
注釈はJSONファイルに まとまってます Create ML アプリケーションを開きます “Xcode”メニューからでも― Spotlightでも開けます
Create ML アプリケーションから― ドキュメントに アクセスできます 新規作成をします
こちらは テンプレートピッカー モデルの種類の コレクションから選択します ここでは 物体検出を選びましょう
分かるように名前を付け― 詳細を入力します
メインウインドウの右手に― トレーニングビューが 見えます 入力タブが選択されています 準備は完了です トレーニングデータに ドラッグできます
アプリケーションが データが適切かチェックします 例えば今 必要なのは 音声ではなく画像です JSONファイルも 正しいでしょうか 統計も出してくれます 画像は約1000枚と 出ています 6面体なので― 画像が6つのクラスに 分かれています データは完璧
この画面では他にも できることがあります 異なるモデルの パフォーマンスの比較 高度なパラメータを設定し モデルの学習の調整 今は準備が整っているので 必要ありません スタートボタンを 押してみます
トレーニング開始です すぐに トレーニングタブが開き― 進行状況を確認できます これは損失グラフ モデルが改良するにつれ― 損失の値が下がっていきます
物体検出は画像認識より 時間がかかります 1時間以上は かかりそうなので― すでにトレーニング済みの モデルを見てください
こちらです トレーニングタブを ご覧ください 損失が減っています モデルのパフォーマンスの 向上が分かります 注目すべきことが いくつかあります まずはパフォーマンスです 物体検出としては 92%は非常に大きな値です 一貫した 高いパフォーマンスも― 確認できます サイコロの目1~6まで それぞれが90%以上です ほぼ同じ値です
均等の取れた結果が 出たことは重要です サイコロゲームは 平等がカギだからです
このモデルは数学的に 正しいと出ましたが― 機能するかどうかは 確証がありません 出力タブを使います スコットからテスト用画像を 受け取りました ドラッグしてみます
成功しました 5つのサイコロが認識され― きちんと境界ボックスが 描かれました サイコロをクリック 6 1 5… 正確なラベルが 表示されました
うまくいきました 独自のアプリケーションを作るなら― 作成したモデルをドラッグし Xcodeで使用できます このモデルを スコットに送る前に― 試してみたいことがあります
サイコロやカメラを使い― 試作を作っていた時です 9歳の息子に 何をしてるのか聞かれました 答えると興味を持ち― ゲームのアイデアを 話してくれました 熊やコウモリなど動物が― 協力して 宇宙船を作るゲームです カラフルなサイコロで レベルアップします スコットのモデルで 試すことにしました 使用するのは多面体サイコロ ゲーム用です
モデルの動作を見ます 連係カメラ機能を使って― iPhoneで撮った画像を 取り込みます 利用中のアプリケーションと 同じカメラを― 使えるのは効率がいいです
撮影したら “写真を使用”をクリック
分析はすぐ完了します 何が起こるか見てみましょう
6面体のサイコロを 2つ正確に認識し― 正しいラベルも 付けられました 他のサイコロは認識せず― この2つだけに反応
数字も間違ってます なぜでしょう? 予測に問題があるのです スコットが使用したのは 6面体の白いサイコロ 息子のアイデアは 色付きの多面体サイコロです どう対処すべきか? 構わずこのまま ゲームの構築を続けるか― 色付きの多面体サイコロを トレーニングし直すか 2つの方法があります 6面体のサイコロのみを 有効にして― 多面体を無効にする その場合は両種のサイコロを 含んだ写真を撮り― 6面体だけにラベルを付ける 熊やコウモリのゲームを 構築したいなら― 色付きの多面体のほうも ラベル付けが必要です サイコロの目だけ ラベル付けするか― 色の識別もするか 赤の6 黒の4などです
スコットはこのモデルで 試作に着手できます 共有ボタンを押すだけです
送信完了 (拍手)
Create ML アプリケーションを 使用して― 物体検出をする方法を ご紹介しました トレーニングデータ作成の 注意点があります 各クラスの画像の分量は― バランスを考えてください すべてが重要だと アルゴリズムに伝わります 各クラスを同じ重要度で― 扱わせるためです
次は画像数です 各クラスに注釈付き画像を― 最低30枚は用意してください パフォーマンスや 処理の難易度に合わせ― 数を調整してください サイコロは各面の目が 異なります
色の識別が必要なケースも ただし理由は他にもあります 実際にアプリケーションが 使われる状況を考えてください 異なる照明や机の素材 特殊なサイコロの 場合もあるでしょう データの数を増やすことを お勧めします 屋内や屋外の光 異なる背景で撮った画像 違うタイプのデータを 追加すると― モデルが強化されます
画像分類の利用者なら― 驚くかもしれませんが ラベルは1つで十分です 犬であることを示すだけで― 他の部分は犬ではないと モデルが学習します 例を挙げます ピクルスの瓶を数える アプリケーションを作成する場合― 他の瓶のラベルは不要 “異なる瓶”と 認識するからです
モデル構築後 アプリケーションに 機能を追加したい場合― Visionフレームワークを お薦めします 画像だけでなく動画も スムーズに― モデルにまとめられます
物体検出については以上です (拍手)
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。