Tensorflowオブジェクト検出APIによるトレーニングと推論の加速

  • 2018.07.23
  • AI
Tensorflowオブジェクト検出APIによるトレーニングと推論の加速

1.Tensorflowオブジェクト検出APIによるトレーニングと推論の加速まとめ

・GoogleがTensorFlowのオブジェクト検出APIを大幅強化
・クラウドTPUと連携した高速学習とTensorFlow Lite出力連携を容易に改良
・いくつかの新しい学習済モデルと新しいチュートリアルも公開

2.Tensorflowオブジェクト検出APIとは?

以下、ai.googleblog.comの「Accelerated Training and Inference with the Tensorflow Object Detection API」の意訳です。

去年、GoogleはTensorFlow Object Detection APIを発表し、それ以来、数多くの新機能やモデルをリリースしました。ニューラル・アーキテクチャ・サーチやインスタンス・セグメンテーション・サポート、Open Images等の新しいデータセットで訓練済みのモデルなど。

私たちはTensorFlow Object Detection APIがニューヨークシティのバスレーンへの違法駐車摘発からタンザニアのキャッサバの病気診断まで、様々な使われ方をされている事に驚いています。

今日、コンピュータビジョンを民主化するというGoogleのコミットメントの一環として、リサーチコミュニティからの要望を取り込んで、このプログラムをより有用なものにするためにAPIにいくつかの追加をしました。主要な改善点は以下です。

1)クラウドTPUを使ったオブジェクト検出モデルの高速学習のサポート
2)学習済みモデルをモバイルで使用するためにTensorFlow Lite形式で容易に出力できるよう改善
3)いくつかの新しいモデルのアーキテクチャの定義
・RetinaNet
・MobileNetを適用したRetinaNet
・PPN(Pooling Pyramid Network)、SSDベースのアーキテクチャーだが同じSSDベースのMobileNet v1と同程度の正確性で1/3のサイズ

さらに、COCOデータセットを使用した訓練済みの各モデルを公開しています。

クラウドTPUによるトレーニングの加速

ユーザーは人工知能開発時に、ハイパーパラメータの最適化とオブジェクト検出モデルの再学習に多くの時間を費やすため、実験の処理時間を短縮する事は非常に重要です。

本日、リリースしたモデルはシングルショット検出器(SSD)アーキテクチャで、これはクラウドTPUを使った学習に最適化されています。たとえば、ResNet-50ベースのRetinaNetをトレーニングして、COCO datasetで35%mAPに3.5時間以内に達することができます。

量子化とTensorFlow Liteによる推論の加速

モバイルデバイスや組み込みデバイスの反応速度(レイテンシ)に対する厳しい要件をよりよくサポートするために、我々が提供しているモデルは、TensorFlow Liteとネイティブに互換性を持ちます。すなわち、低レイテンシで小さいサイズのモデルでオンデバイスで機械学習を用いた推論が可能になります。

その一環として、(1)モデルの量子化と(2)検出時の特有の操作をTensorFlow Liteネイティブに実装しました。

我々のモデルの量子化は、Jacob et al(2018年)とKrishnamoorthi(2018年)の論文に基づいており、学習時と推論時にモデルの重みとアクティベーションの両方に量子化を適用し、より速く動作する小さなモデルを生成します。

Architecture TPU train
time(hours)
Batch
Size
Iterations Image
resolution
COCO
mAP
Per-image GPU
inference speed(ms)
SSD Mobilenet v1 3.2 1024 20k 300×300 20.0 27
SSD Mobilenet v1 with PPN 5.3 512 50k 300×300 19.7 26
SSD Mobilenet v1 with FPN 2.9 128 12.5k 640×640 29.6 56
SSD Resnet 50 withFPN
(aka RetinaNet)
3.5 64 25k 640×640 35.2 76

新しいチュートリアルも公開されました。試してみてください!

クラウドTPUを用いて独自のモデルを学習させる方法を学ぶために、新しいチュートリアルをご覧ください。このチュートリアルでは、Cloud TPUで量子化されたペットの顔検出器をトレーニングし、TensorFlow Liteを用いてAndroidの携帯電話にエクスポートする方法について説明します。

これらの新しい機能が、物体検出の問題を解決したい人にとって助けになる事を我々は期待しています。

Googleは、高品質のコンピュータビジョンモデルにアクセスする事と、量子化したモデルの訓練からオンデバイスに対応するTensorFlow Liteモデルへのエクスポートまで、より快適な使用感を提供します。

機能やバグ修正に貢献してくれたコミュニティの皆様に感謝いたします。いつものように、コードへの貢献を歓迎します、更なるアップデートをお待ちください!

3.Tensorflowオブジェクト検出APIによるトレーニングと推論の加速関連リンク

1)ai.googleblog.com
Accelerated Training and Inference with the Tensorflow Object Detection API