子供向けスマートフォンの課題

インターネット上のトラブルに十分な知識を持たない子供に高性能なカメラを搭載したスマートフォンの所有がに広がることにより、不適切な自撮りによる被害が発生するようになっています。


この問題は保護者にとって深刻です。問題を避けるために子供にスマートフォンを持たせいないという選択肢もありますが、昨今、子供の日常生活でもスマートフォンが必要とされることも多く、いかに安全なスマートフォンを子供に持たせるかが課題となっています。


TONE e20 はこの問題を技術で解決するために、TensorFlow を活用した画像検知機能を実装しています。

通信せずに不適切な画像を TensorFlow を使用して検知

TONE e20 と TONE e21 にはフリービット株式会社によって開発された特定の画像を AI により自動検知するカメラアプリが標準カメラとしてインストールされています。


この標準カメラは自動で裸などの不適切な画像や映像を検知して規制し、あらかじめ設定された保護者の端末に通知する機能を有しています。




この AI による自動検知は TensorFlow のモバイル向けフレームワークである TensorFlow Lite を使い、端末内で処理されています。


画像の認識には通信機能を使いクラウド上にサーバー側で処理する、という実装方法もありますがセンシティブな内容を含む写真や映像を通信に乗せるコストやリスクを考慮して TONE e20 と TONE e21 ã§ã¯ç«¯æœ«å†…で処理する方式としています。


端末内での処理は AI 専用のチップや GPU を使うことなく、CPU を使用しています。カメラアプリとして快適に利用できるよう処理速度はチューニングされ、画像についてはシャッターを押してからおおよそ 200 ミリ秒 から 1 秒以内、平均で 400 - 600 ミリ秒で処理が完了します。 映像については Android Jetpack の カメラ ライブラリをもとに作成し、一定間隔でキャプチャした画像を検知する仕組みとしてます。


写真、映像ともに不適切な画像を検知した場合は保存させないように規制するとともに保護者の端末に通知する流れとなっています。

モデルは既存のものを活用

TONE e20 と TONE e21 ã«å®Ÿè£…した、不適切な画像を検知する学習モデルは独自に開発したものではありません。

Yahoo が開発していた Caffe ã‚’ベースとした open nsfw model を TensorFlow Lite のモデルに変換することで利用しています。Caffe はカリフォルニア大学バークレー校が中心となって開発しているオープンソースのディープラーニング ライブラリです。Caffe は TensorFlow のために開発されたモデルではありませんが、さまざまなオープンソースやデベロッパーがブログで公開していたノウハウを活用して変換しています。
  

検知機能への反応と評価

フリービット株式会社は 2013 年からスマートフォン事業をスタートし、2015 年からは トーンモバイル ã‚’運営しています。


回線インフラ・ SIM ・サービス・端末を一貫して手掛けることができるのは、トーンモバイルを運営する株式会社ドリーム・トレイン・インターネットを含むフリービットグループで垂直統合しているためです。


トーンモバイルでは単に端末を販売するのではなく、独自の付加価値をもった端末を自社で開発しています。今回ご紹介した AI による不適切な画像の自動検知もその付加価値の一つです。


すでに TONE e20 を購入した保護者の方々からは良い反応を得ています。不適切な自撮り画像の検知だけでなく、AI を活用したいくつかの子供向けの見守り機能が評価されています。安心して子供に渡せるスマートフォンとして評価され、いくつかの自治体では子供向けの推奨スマートフォンとして認証されています。


自撮り画像の検知機能については端末依存の機能ではなく、アプリとして開発されたものです。今後はカメラ機能そのものを向上させるとともに、他の Android スマートフォンや iPhone でも利用できるアプリとしての展開も検討しています。


Posted by Khanh LeViet - Developer Relations Team




回転寿司はレーンに乗った寿司⽫が客席を回遊し、客は⾷べたい寿司⽫を取るというセルフピックアップ システムの寿司店です。また、客席に備えられたタブレットからも寿司やサイドメニューを注⽂する事ができます。

くら寿司の会計は「回転レーンから取った寿司⽫数」と「オーダーした寿司⽫数」をカウントすることで会計が 決まる仕組みとなっています。

これまでは「回転レーンから取った寿司⽫数」が機械的に取得できず、店員が⼿動かつ⽬視で⽫数の確認を⾏っていましたが、くら寿司では QR コードの識別とTensorFlow を⽤いた画像検知により⾃動で取られた寿司⽫の種類と数をカウントすることで、無⼈で会計確認を⾏う事を実現し、業務コストの削減に成功しました。

システム構成

くら寿司ではレーンを流れる寿司には”抗菌寿司カバー「鮮度くん」”という透明なプラスチックのケースが付い ています。これは寿司の鮮度を保ち、誰も触れないことで清潔さを守るためのケースです。

このケース上部には寿司ネタの種類を記載したQRコードを設置しています。

[QRコードの付いた鮮度くんの写真]

⼀⽅、レーンに沿って配置された各テーブルには、レーンの上流と下流に、レーンの直上となる場所にカメラを設置しています。このカメラは TensorFlow の処理を⾼速化する Coral を搭載したRaspberry Pi に付属したもので す。


[レーンに設置された Raspberry Piの写真]

このカメラでQRコードを識別するとともに、TensorFlow を⽤いて鮮度くんから⽫が取られたかどうかを認識しています。


具体的には上流を通過した時点で鮮度くんが閉まっている事を検知し、下流で開いている場合、そのテーブルで鮮度くんから⽫が取られたと判断することができます。ここでQRコードで識別した寿司の種別をあわせることで、どの寿司がどのテーブルで取られたかを識別することができます。

これらの識別や検知のデータは Raspberry Pi 内で⾼速に⾏われ、原則としてその結果のみが店内に設置された サーバに送信されるため、システム全体としてのデータのやりとりは⼩さなものとなります。

検知デバイスとして Raspberry Pi を選んだ理由はくら寿司が持つ経験に基づいています。ローカルで TensorFlow の⾼速処理を実現するために Coral Edge TPU を⽤いていますが、Coral ⽤に設計された Dev Board を⽤いるのではなく、すでに別の⽤途で店舗で数千台稼働させた経験のある Raspberry Pi に Coral を搭載する形態を採⽤しています。



今後の展開

このように⽇々改善されているこのシステムは 2020 年の時点ですでに200ほどの店舗で稼働しています。くら寿司は⽇本国内に450店舗ほどありますが、来年度には全店舗にこのシステムを展開させ、全ての店舗で TensorFlow を⽤いた⾃動の会計システムを稼働させる予定です。


先日のブログで、現在開催中の ML Study Jams “Road to TF Certificate 2020” ã‚’ご紹介しました。

今日は、こちらの試験を 7 月に受験され、晴れて合格された、機械学習の Google Developer Experts でもある新村拓也さん(株式会社KUNO å–締役兼 CTO)から受験体験記をいただきましたので、ご紹介したいと思います。




新村拓也さん



TensorFlow Developer Certificate 受験体験記

TensorFlow Developer Certificate (TensorFlow デベロッパー認定資格)は、TensorFlow のコーディングによる基本的なデータ整形やモデル作成のスキルを評価する公式の認定資格です。

今年始まったばかりの試験なので、資格の難易度やどういう内容を勉強したほうがいいのか疑問に思う方も多いと思われます。TensorFlow のユーザー グループである TensorFlow User Group(TFUG)ではそうした疑問を解消すべく、8 月 5 日(æ°´)に TensorFlow User Group Meetup #11 を開催いたしました。当日の内容が気になる方は、ぜひこちらから当日の配信をご覧ください。

本記事では、筆者を含めてイベントで登壇していただいた方々の体験談をもとに、これから TensorFlow Developer Certificate を受験したい方の役に立つような情報をお届けします。

TensorFlow Developer Certificate について



TensorFlow Developer Certificate はその人が TensorFlow を使用して基本的なデータの前処理やモデルの作成を行うことができるということを客観的に評価するための資格であり、難易度はそれほど高いものではありません。詳しい試験範囲については、公式のハンドブックに記載がありますが、画像・自然言語・時系列データを使用してシンプルなモデルを構築するような内容となっております。

より複雑なモデルを構築したり、TensorFlow の機能を熟知してパフォーマンスを最大化するためのチューニングを行うような専門性を認定することはできませんが、ML チームの一員としてモデル作成のための基礎知識とコーディング スキルを認定することはできると思われます。

そのため、これから機械学習・深層学習を勉強して、そうしたスキルが必要な他の部署への移動や転職を考えている方が自身のスキルを証明するためのものとして活用していただけるのではないでしょうか。合格した場合、電子証明書が発行されますので、それを LinkedIn に記載したり、TensorFlow Certificate Network に登録して世界に発信したりできますので、スキルチェンジを考えている方はぜひ挑戦してみてください。

試験勉強について

試験範囲についてですが公式のハンドブックに記載されている内容以外に、オンライン講義として Coursera の deeplearning.ai TensorFlow in Practice Specialization などが推奨教材として挙げられています。

それ以外にもご自身の経験に応じて確認しておいたほうがいい内容は異なりますので、以下に簡単に挙げさせていただきます。

公式教材ということもあり、TensorFlow の経験者の方であっても目を通しておくことをお勧めします。公式のハンドブックに記載されていることがしっかりと網羅されており、ノートブック形式でコードも公開されているために、非常にいい教材です。
  • TensorFlow 公式ドキュメント
前述の Coursera のコースではそこまで詳しく TensorFlow の文法については解説してくれません。TensorFlow 経験者の方でも、一部の関数の詳細な挙動を確認するために、公式のドキュメントやチュートリアルを活用していただきたいと思います。また、TensorFlow に関してまったくの初心者の方は、いきなり Coursera のコースを受講するのではなく、公式ドキュメントである程度 TensorFlow の基本的な文法を勉強されることをお勧めします。

TensorFlow 公式ドキュメントは、日本のコミュニティによる精力的な翻訳活動のおかげで日本語のコンテンツが豊富ですので、ぜひご活用ください。
  • Python のライブラリに関する基礎知識
コードは Python で記述します。Python の文法はもちろんですが、TensorFlow 以外のライブラリも利用することになるので、その基本的な使い方や、エラーになった際のトラブル シューティングができるようにしておくといいのではないでしょうか。試験で利用するライブラリは、試験環境についての公式のガイドブックがありますので、そちらでご確認ください。
  • 機械学習・深層学習に関する基礎知識
試験ではコードの動作だけではなく、モデルの精度評価も行われますので、モデルのチューニングをする必要があります。適切にモデルのチューニングをするためには、機械学習・深層学習に関する基礎知識が必要となります。ただ、必ずしも最新の手法やアーキテクチャを知っている必要はありません。学習率やバッチサイズの意味、損失関数や Optimizer の特性などの基礎知識について、大枠で理解していれば問題ないと思われます。

機械学習・深層学習に関する基礎知識について自信がない場合は、書籍や Web の教材、他のベンダーが実施している講義・試験を活用してみてはいかがでしょうか。


試験環境について

試験環境は PyCharm に指定のプラグインをインストールして行うのですが、環境はもちろん自分で構築する必要があります。詳細な要件はこちらに記載がありますので、必ず見ながらセットアップをしましょう。

普段 PyCharm を利用していない方は事前の勉強で利用するなどして、慣れておくことをお勧めします。また、試験はみなさんが普段開発で利用されているノート PC でも問題なく試験を受けることはできますが、ご自身で構築した GPU マシンを利用することも可能です。

試験では実際にモデルを訓練する必要がありますので、GPU 環境があれば、より多くのパターンを試行錯誤することができます。ただし、GPU を利用するには TensorFlow のバージョンに合わせて CUDA をインストールしたりと環境構築に注意が必要なので、公式サイトでしっかり確認してから設定しましょう。

また、試験ではデータをダウンロードしてきたり、訓練したモデルをその場で採点用のサーバーに送信したり、コードそのものを送信したりする必要があるので、安定したネット環境のもとで受験するようにしましょう。


試験本番について

試験の準備ができましたら、受験する当日で構いませんので、こちらから試験を購入し、指示に従って、各種情報の登録をしてください。顔写真付きの証明書と本人の写真が必要になりますが、サイト上で Web カメラを使用した撮影もできますので、パスポートや免許証の準備だけしておきましょう。

本人確認と試験環境のプロビジョニングが完了したら、試験をご自身のタイミングで開始できます。ガイドに従って、試験を開始してください。試験を購入すると、メールで追加資料が送られてきますので、本人確認などの間に、必ず一読するようにしましょう。

PC の設定によっては、一部のコードがエラーになる場合もありますので、追加資料には、そうした際にどのように対処しろというような、重要なことが書かれています。慣れている方でしたら、その場でトラブル シューティングができるかもしれませんが、試験という限られた時間の中、想定外のところでエラーになるのは、精神衛生上よろしくありません。

試験は、ハンドブックにも書かれている通り、どんな教材を参考にしても構いません。問題の量に対して、時間は十分に設定されていますので、分からないことや予期せぬトラブルがあったとしても、試験勉強をした教材や、TensorFlow の公式ドキュメントなどを活用し、冷静に対応していくようにしましょう。

最後に

試験を受ける直前は緊張していましたが、始まってみると、試験を解くというより、より精度の高いモデルを構築するにはどうしたらいいのかを、自分の知識を総動員し、没頭しており、振り返ると、非常に楽しい時間でした。

初心者の方だけでなく、ある程度腕に覚えがある方も楽しめる内容なのではないかと思いますので、資格を持つことによるメリット云々ではなく、「純粋に楽しみながら腕試しをしてみる」目的で受験されてみてはいかがでしょうか?

もし残念ながら不合格だった場合は、次回受けるまでに一定のインターバルが必要なので、その間に解けなかった問題を復習することで、次回の合格を目指しましょう。



そして試験に合格しましたら、案内が来ますので、TensorFlow Certificate Network に登録しましょう!

この記事がみなさんの受験の後押しになれば幸いです。







新村さん、ありがとうございました。


Posted by Takuo Suzuki - Developer Relations Team & Mari Okazaki - Community Manager



ML Study Jams “Road to TF Certificate 2020”


Google では、8 月 18 日から 9 月 13 日 10 月 4 日 までの期間中 TensorFlow User Group の協力の下、ML Study Jams “Road to TF Certificate 2020” を開催します。

本プログラムは、TensorFlow デベロッパー認定資格の取得を目指す開発者の皆さんが、オンライン上で試験に必要な勉強をしたり、意見交換をすることで、一緒に受験勉強を進めることができるものです。

Google では本プログラムを通じて、受験者がチューターに質問できるコミュニケーション チャンネルを用意し、受験したい方を応援します。

また、8 月 5 日(æ°´)に、TensorFlow のユーザー グループである TensorFlow User Group(TFUG)によるオンライン ミートアップを開催します。

TensorFlow User Group Meetup #11

このミートアップは、本認定資格をテーマとしたものです。Google の TensorFlow Developer Advocate である Khanh LeViet による認定資格のご案内や、実際に認定資格を受験した TFUG オーガナイザーによる体験談、そして ML Study Jams 事務局による ML Study Jams for TF Certificate のご案内といった内容となっています。

TensorFlow デベロッパー認定資格に興味のある方は、ぜひこのミートアップにご登録・ご参加ください。


TensorFlow デベロッパー認定試験について


先日のブログで少しご紹介した通り、今年、新たに TensorFlow デベロッパー認定試験が開設されました。機械学習を使って自分のレベルを確認してみたい、もしくはさらに高いレベルにチャレンジしたいという方は、この夏、こちらの認定試験に向けた勉強を始めてみましょう。(認定制度については、こちらのブログや、tensorflow.org/certificate をご覧ください。 )

受験日ですが、日本からは以下の 3 つです。

・9/17(木)
・9/26(土)
・10/4(日)

10/4(日)までに受験され、合格された方には、素敵なノベルティをお送りします。


試験の出題範囲


認定試験は、オンライン学習サービス Coursera にある、こちらの 4 つのコースが試験の出題範囲となっています。試験は、英語で問題を読み、設問に答えたり、コードを書いたりする必要があります。


デジタル修了書を手に入れましょう


「TensorFlow デベロッパー認定資格」に合格すると、デジタル修了書を手にすることができます。この修了書は、LinkedIn などのオンライン プロファイルにアップロードすることができる他、機械学習エンジニアとして、さらなるキャリア アップをはかりたい方にも活用していただくことができます。ぜひ挑戦してみましょう。

合格したら


「TensorFlow デベロッパー認定資格」に合格したら、専用フォームに入力して報告をしてください。フォームへのリンクは後日お知らせします。報告して下さった方には、ノベルティを進呈します。

本プログラムのお申し込み


本プログラムへのご参加は、こちらのページよりお申し込みをお願いします。

皆様のご参加をお待ちしております。



Posted by Takuo Suzuki - Developer Relations Team



ロボホンは、二足歩行が可能なモバイルロボットで、音声をメインのインターフェースとしています。また、OS として Android を搭載しており、アプリの追加でできることが増えていくロボットです。

発売当初は、一般のお客様向けに発売しておりましたが、現在は企業や自治体など法人用途でもご活用頂いております。その用途の 1 つが「プログラミング・AI 教育」です。

本記事では、TensorFlow Lite を活用したロボホンの教育ソリューションについてご紹介いたします。

シャープは、プログラミング教育ソリューションとして、「ロブリック」というアプリケーションを販売しています。これは Google Blockly をベースにしたブロックプログラミングのアプリケーションで、ブロックを組み合わせると、ロボホンが動いたり話したりします。2018 å¹´ 6 月の販売開始から多くの自治体にご採用頂き、主に小学校のプログラミング教育にご活用いただいております。

これまで「プログラミング的思考」の育成に向けたソリューション提供に取り組んで参りましたが、これからの「AI-Ready な社会」に向けて、AI 人材の育成に取り組んでいきたいと考え、AI 教育ソリューションを開発し、2020 å¹´ 2 月に実証実験を実施致しました。当ソリューションは、音声認識、対話生成、画像認識などの AI 技術を実体のあるロボホンを通して学習することで、子どもたちに AI に対する興味関心を持たせることを目的としたソリューションです。

この AI 教育ソリューションの重要な機能の 1 つが、機械学習を体感してもらうための TensorFlow Lite を使った画像分類の機能です。子どもたちがロボホンのカメラを使って、ロボホンに 5 つまでの被写体を登録して覚えてもらうと、ロボホンがそれぞれの被写体を見分けることができるようになります。

ロボホンとパンダを見分けるプログラム例


この機能を通して、すでに社会に実装されている機械学習による画像認識の仕組みを説明し、子どもたちが今後この仕組みをどう活用していくか考えるきっかけを与えることが目的です。

授業としての画像認識学習の問題点
AIによる画像認識を生徒に体験してもらうには、データセットを 0 からトレーニングをしたり、ある程度出来上がっているものに追加トレーニングしたりする方法が考えられます。しかし、授業でトレーニングをしようとすると、
  • 十分な数のトレーニング用の画像データを準備するのが難しい
  • 準備できたとしてもそのデータを学習させるための時間が必要になる
という問題が発生します。

また、ロボホンという機械学習にとっては強力とは言えないハードウェアを利用するため、データ学習に必要な時間がさらに長くなってしまうという問題もあります。



トレーニング済みデータセットの利用
そこで、授業中の学習時には、事前トレーニングや最適化されたモデルを使って画像識別をすることで、ロボホンのカメラでとらえた画像の特徴ベクトルを指定の枚数分保存しておき、評価時には、k 近傍法を使ってどの保存済みデータに最も近いかを取得する方法で授業という限られた時間の中でトレーニングの過程や機械学習を体験できるようにしました。

今回利用した事前トレーニング済みデータセットは、量子化モデルの Mobilenet_V1_1.0_224_quant
になります。これは、
  • Android アプリで契約者のロボホンに配信する
  • クラウドを利用せず、ロボホン内で処理する
という要件で開発をしていたため、モデルサイズとパフォーマンスの方に重点を置いてこのデータセットを選択しました。

画像識別のサンプル
今回作成したアプリでは、 

このような画像の場合、
[wood rabbit (34.1%), hare (17.6%), fox squirrel (17.6%)]
のように画像識別されます。

また、

このような画像の場合は、
[tiger cat (80.0%), tiger (11.0%), tabby (5.5%)]
のように画像が識別されます。



学習時には、これらの識別後の情報をそれぞれ、指定された枚数ずつ、保持しておきます。
評価時には、ロボホンのカメラからの入力画像を、学習時と同じように画像識別し、学習時に保存したどの画像に最も近いかを近傍法を利用して取得するようにしています。

TensorFlow Lite の採用
TensorFlow Lite を採用した理由としては、さまざまな環境上で動かすことができ、ロボホンで利用している Android もサポートされていたこと、また、サンプルが用意されており、使い方なども多数インターネット上で情報を得ることができるなど、とても使いやすいツールと感じたからです。

授業での使いやすさ
もともとは、ロブリックとは別のアプリとして開発していましたが、
  • 別アプリとした場合、操作方法を覚え直す必要がある
  • プログラミング教育の一連の流れとしてブロックプログラミングの発展形として AI 教育をスムーズに導入できる
  • 機械学習用のブロックとその他のブロックを組み合わせることでより楽しく学習することができる
などのメリットを鑑みてロブリック用のブロックとして取り込みことにしました。
また、機械学習用のブロックは、
「X 番を Y 回勉強する」「X 番を忘れる」「AI 用のカメラを ON/OFF にする」「X 番と Z 思った」(まあまあ思った、とても思った、など、自信の強さをパラメータとする)
というように子供でもわかり易い言葉を使い、カメラの画像をロボホンの背中の画面だけでなくブラウザ上にも表示することで、画面を見ながらカメラの画角を調整できるなど、シンプルで直感的な UI を目指しました。

より多くの子どもたちに AI 教育ソリューションを
前述の通り、2020 å¹´ 2 月に東京都小金井市立前原小学校 5 年生にて、AI 教育ソリューションの実証授業をしました。

子どもたちは、思い思いの画像を登録し、その画像を見つけると、オリジナリティあふれるセリフをロボホンが話すプログラムを作っていました。実体のあるロボットを通して、プログラムが体感できることに対して、子どもたちが目を輝かせながら取り組んでいたことがとても印象的でしたし、トライアンドエラーの過程で、自ら気付き、修正していく姿に未来への希望を感じました。

私たちシャープはこれからこのソリューションをより多くの子どもたちに体験してもらえるよう準備を進めています。今後も未来を生きる子どもたちに向け、教育分野への取り組みを進めて参ります。




Posted by Khanh LeViet - Developer Relations Team and Takuo Suzuki - Developer Relations Team

Share on Twitter Share on Facebook




1 週間を通じて、Android のオンデバイス機械学習(ML)のさまざまな側面を取り上げてきました。私たちは、実に多様な ML ツールを利用しています。この点は、できたてのアプリから定着しているアプリまで、開発のどの段階でも変わりません。また、設計や製造、エンジニアリングなどの役割や、初心者からエキスパートまでのスキルレベルによって変わるものでもありません。

設計 - 差別化のための ML


「ユーザーに目を向ければ他はすべてついてくる」というのは Google 社内でよく使われる寸言ですが、現在の機械学習の時代にあって、この言葉がますます意味を持つようになっています。Google のデザイン アドボケートである Di Dang は、ユーザーの問題と ML の長所が交わる唯一の交差点を見つけることの重要性を強調しています。往々にして、チームはユーザーのニーズを見失った機械学習のアイデアを追い求めがちです。





Di は、ML 製品の意思決定を行う際に「人にうれしいAIのための UXデザインガイド People + AI Guidebook(日本語・コミュニティによる翻訳版)」を活用する方法と、ML の設計や開発に特有の精度や再現率などのトピックについて Read Along アプリを例に挙げて説明しています。チームがインスピレーションを得るために、Di による Read Along チームへのインタビューもご覧ください。


オンデバイスに完全フォーカスした新しい ML Kit


オンデバイス機械学習をソリューションとして使うべきだと判断した場合、それを最も簡単に実装する方法は、ML Kit のようなすぐに使える SDK を活用することです。Google がトレーニングした洗練されたモデルや処理パイプラインが、使いやすい Kotlin / Java のインターフェースを通して提供されています。ML Kit はオンデバイス ML 用に設計、構築されました。オフラインで動作し、プライバシーが強化されており、リアルタイム ユースケースで高いパフォーマンスを発揮します。しかも、無料です。また先日、ML Kit をスタンドアロン SDK にして、Firebase アカウントがなくても利用できるようにしました。build.gradle ファイルに 1 行追加するだけで、アプリに ML 機能を組み込むことができます。






Jetpack ライフサイクル サポートや、Google Play Services を通して顔の輪郭モデルを使用することでアプリのサイズを 20 MB も節約できるオプションなど、新機能も追加しています。また最近、大きな期待を寄せられていた機能がもう 1 つ追加され、画像のラベル付けと物体検知および物体トラッキングにおいて、Google モデルを独自のモデルと交換できるようになりました。これは、特に簡単に TensorFlow Lite モデルをアプリに追加する方法の 1 つです。ByteArray を操作する必要は一切ありません!

TensorFlow Lite と Android ツールによるカスタマイズ


ML Kit が提供するベースモデルでは満足できないデベロッパーはどうすればいいでしょうか?まず参照すべき場所は、TensorFlow Hub です。ここから Google や多数のコミュニティが提供する TensorFlow Lite モデルをダウンロードして、すぐに使うことができます。米国のスーパーマーケットの 10 万点の商品からトマトの病気の分類まで、選択は皆さん次第です。





Firebase AutoML Vision Edge を利用できるだけでなく、TensorFlow Model Maker(イメージ分類 / テキスト分類)を使えば、Python で数行書くだけで独自のモデルを構築することもできます。TensorFlow Hub か Model Maker で TensorFlow Lite モデルを取得したら、ML Kit の画像のラベル付けや物体検知および物体トラッキングを使って Android アプリに簡単に組み込むことができます。オープンソースのソリューションを使いたい方は、Android Studio 4.1 ベータ版に含まれている ML モデル バインディングを利用すると、使いやすい Kotlin / Java ラッパーで TensorFlow Lite モデルをラップできます。Android アプリにカスタムモデルを追加する作業は、今までになく簡単になっています。詳しくは、こちらのブログをご覧ください

今こそオンデバイス ML の時代



Android Developer Challenge の入賞者からもわかるように、今まさにオンデバイス機械学習の時代が到来しています。かつてはクラウドやスーパーコンピュータだけのものだった ML 機能が Android スマートフォンで利用できるようになりました。一歩踏み出して、11 Weeks of Android のコードラボに挑戦してみましょう。

Android オンデバイス機械学習は急速に進化を続けているプラットフォームです。機能強化リクエストや改善案のフィードバックは、ユースケースと合わせてお知らせください(TensorFlow Lite / ML Kit)。今こそオンデバイス ML の時代です。

機械学習の関連情報


#11WeeksOfAndroid 動画コンテンツの全プレイリストはこちらから、それぞれの週の詳しい内容はこちらからご覧いただけます。毎週新しい分野を取り上げますのでご期待ください。Twitter や YouTube のフォローもお願いします。ご覧いただき、ありがとうございました!


Reviewed by Khanh LeViet - Developer Advocate and  Hidenori Fujii - Google Play Developer Marketing APAC


Share on Twitter Share on Facebook





Android が機械学習、5G、折りたたみ式端末といった数々の技術的・端末固有の限界に挑み、可能性を広げる中、デベロッパーの皆さんもまた、このような新しい技術への対応を常に行い、研鑽されています。このようなデベロッパーの取り組みを称えるため、2019 年に Android Developer Challenge を再開し、特にオンデバイス機械学習を利用した「Helpful Innovation(役立つイノベーション)」に焦点を当てて募集を開始。寄せられた何百ものクリエイティブなプロジェクトの中から、素晴らしいアイデアとそれを実現する意欲にあふれた 10 の入賞作を選出しました。

その後、入賞された皆さんと連携してそのアイデアを実現するためにサポートしてきました。本日、その 10 の入賞作を発表します。まだ最初の一歩を踏み出したばかりの作品もありますが、ぜひ気になるアプリをインストールしてみてください!

  • AgroDoc は、農家が植物の病気を診断して治療計画を立てる手助けをします。[Navneet Krishna、インド、コチ]
  • AgriFarm は、農家が植物の病気を検知し、トマト、トウモロコシ、ジャガイモなどの果物や野菜への大きな被害を防ぐ手助けをします。[パキスタン、バルチスタン]
  • Eskke は、SMS で送金、支払い、サブスクリプションや通信時間の購入を行えるようにして、コンゴの人々がモバイルで効率的にお金を管理できるようにします。[David Mumbere Kathoh、コンゴ民主共和国、ゴマ]
  • Leepi は、アメリカ手話のジェスチャーやシンボルの学習をサポートします。[Prince Patel、インド、バンガロール]
  • MixPose は、ヨガ教師やフィットネスのプロがリアルタイムで教えたり、姿勢を確認したり、フィードバックを提供したりする機会を提供するライブ ストリーミング プラットフォームです。[Peter Ma、アメリカ、カリフォルニア州サンフランシスコ]
  • Pathfinder は、道を移動するものを識別してその軌跡を計算することにより、目の不自由な方が複雑な状況下で移動する手助けをします。[Colin Shelton、アメリカ、テキサス州アディスン]
  • Snore & Cough は、いびきや咳を識別して分析することで、医師の助言を求めるユーザーに情報を提供します。[Ethan Fan、アメリカ、カリフォルニア州マウンテンビュー]
  • Stila は、Fitbit リストバンドや Wear OS by Google を実行している端末などのウェアラブル端末とペア設定し、体のストレスレベルを監視、追跡します。ストレスレベルの経時変化をモニタリングすることで、生活のストレスについて理解を深め、管理できるようにします。[Yingdin Wing、ドイツ、ミュンヘン]
  • Trashly は、リサイクルを促進します。オンデバイス カメラを対象物に向けると、アプリが物体検知を使ってプラスチックや紙のコップ、袋、ボトルなどを識別して分類します。[Elvin Rakhmankulov、アメリカ、イリノイ州シカゴ]
  • UnoDogs は、カスタマイズした情報とフィットネス プログラムを提供し、ペットの健康をサポートします。[Chinmany Mishra、インド、ニューデリー]

ML Kit と TensorFlow Lite でオンデバイス機械学習を身近なものに


機械学習は、技術的なバックグラウンドの不足という制約があるデベロッパーにとって、ますます身近なツールになりつつあります。実際に、Android Developer Challenge で入賞したデベロッパーにとっても、機械学習への挑戦は今回が初めてでした。それでもアイデアを実現できたのは、Google が提供している 2 つの重要なプロダクトもその一助になっています。

その 1 つが ML Kit です。ML Kit によって、モバイルアプリのデベロッパーは Google のオンデバイス機械学習テクノロジーを利用し、カスタマイズしたインタラクティブなエクスペリエンスをアプリに組み込めるようになりました。ML Kit には、言語翻訳、テキスト認識、物体検知などのツールが含まれています。たとえば、Eskke は ML Kit のオフライン テキスト認識とバーコード スキャンを使い、ユーザーがモバイルマネーの端末で QR コードをスキャンしてすばやく現金を引き出せます。また、MixPose は ML Kit の新機能である姿勢検知 API を使って、ユーザーのヨガのポーズや動きを検知し、教師がフィードバックできます。




Android Dev Challenge の入賞者の多くが使っていたもう 1 つの Google の技術が TensorFlow Lite です。この強力な機械学習フレームワークを使うと、通常ではサポートできない Android や iOS、IoT 端末で機械学習モデルを実行できます。TensorFlow Lite の一連のツールは、イメージ検知から音声認識まで、あらゆる種類の強力なニューラル ネットワーク関連アプリに利用できるので、私たちが肌身離さず持ち運んでいる端末で最新テクノロジーを利用できます。たとえば、Trashly は、カスタム TensorFlow Lite モデルを使って対象物がリサイクル可能かどうか、どのようにリサイクルすればよいかを分析します。

今回入賞した 10 個のアプリのようなイノベーションは、私たちが情報にアクセスして、その情報を使用したり解釈したりする方法を変え、その情報が一番必要なとき、必要な場所で利用できるようにする可能性を秘めています。デベロッパーの皆さんと力を合わせることで、新たなテクノロジーを使って次の波をもたらすデベロッパーがまだ見ぬ可能性を切り開いていくことを期待しています。



#11WeeksOfAndroid 第 2 週「機械学習」次のトピック


#11WeeksOfAndroid 第 2 週は機械学習がテーマです。引き続き、Android デベロッパーの皆さんが利用できる新しいツールや情報をお知らせします。今後の予定は次のとおりです。


  • 火曜日 - ML Kit: ML SDK が大幅に改良され、新しいオンデバイス機能が導入されました。デベロッパーのユーザビリティの大幅な改善、CameraX のサポート、そして今後のプラットフォームの方向性をご確認ください。

  • 水曜日 - カスタムモデル: パッケージ化された SDK ではニーズを満たせない場合、Android Studio のツールや TensorFlow Lite、ML Kit にその答えがあるかもしれません。個々のプロダクトだけでなく、それらを組み合わせて使う方法もご説明します。

  • 木曜日 - ML デザイン: People + AI Guidebook で、ML プロダクトに関する意思決定を行う際のベスト プラクティスを学習しましょう。オンデバイス ML を使って読み方を教えるアプリ、Read Along の内側に迫ります。UX 担当、エンジニア、プロダクト マネージャーなど、チーム全員が必見です!


火曜日と水曜日には 「今日のコードラボ」 も紹介します。早速 Android Studio 4.1 ベータ版をダウンロードして一緒に ML を学習しましょう!

*ここでご紹介したアプリは個々のデベロッパーのプロジェクトであり、Google のプロジェクトではありません。


日本でも 7 月 7 日 に 機械学習のオンラインイベントを行います




Android 11 Meetups は、6 月 23 日  から 9 月 29 日にかけて、計 8 回に渡って開催される、アプリ開発企業のエンジニアやプロダクト担当の皆さまを主な対象としたオンラインセミナーシリーズです。次回 7 月 7 日のセミナーでは、TensorFlowやML Kit 等、端末上で実行可能な機械学習についてのセッションを行いますので、興味のある方はぜひこちらのウェブサイトで登録・参加(視聴)ください。


Reviewed by Nori Fujii - Google Play Developer Marketing APAC
Share on Twitter Share on Facebook




広島県熊野町で製造されている伝統工芸品 熊野筆は 180 年の歴史がある日本で最も有名な筆です。

日本の筆の生産の約 8 割が熊野町で行われておりシェアも日本一です。近年では化粧筆として海外の有名ブランドへの OEM(委託者ブランド名製造)の引き合いも増えており、熊野筆は世界にも広まっています。




一方、筆先の肌触り・見た目の美しさなど、機械による定量化が難しい要素が重要である筆作りでは、ほとんどの工程において人間の手作業が必須となります。そこで、経験を積んだ筆職人の育成が重要となりますが、技能習得までに長い時間を要することなどから後継者がなかなか定着して育たないことが課題になっています。

現状の筆職人の作業を一部でも技術でサポートすることは、生産効率向上だけではなく、文化の持続可能性の観点からも重要です。

今回我々は TensorFlow を使って、筆職人の属人的な作業となっている「穂先形状の検品作業」を定量化するツールのプロトタイプを作成しました。将来的には、このツールを用いることで職人作業の定量化、作業量の削減、後継者教育への貢献を目指しています。


熊野筆とは

1840 年頃から製造されている日本の伝統工芸筆です。用途としては書道筆と化粧筆が製造されています。曲線が多い日本語のひらがなを表現するために穂先の柔らかい書道筆が作られていましたが、その特徴を活かして化粧筆が誕生しました。空気に触れているような肌当たりの柔らかさが熊野筆の特徴です。現在では化粧筆の生産が主であり、日本のみならず海外の化粧品メーカーからも注文があります。


伝統技術後継者の育成が課題


柔らかい毛先づくりはすべて、機械ではなく人間の筆職人が手作業で製造しています。熊野筆を製造する職人は現在 1,500 名おり、そのうちの特に高い技術・技法を保持する職人 19 名が伝統工芸士として登録されています。

筆職人となるためには技術取得に長い年月がかかること、筆の評価に高い属人性があることなどから後継者教育が難しく、文化を守る意味でも課題になっています。






熊野筆の作り方


熊野筆に使われる毛には馬や狸など 10 種類以上の動物の毛が使われます。穂先の作り方、毛の種類や長さの配合は生産会社ごとに異なっています。また筆職人によって手作業で整形された穂先は、複数人が目でチェックすることで不良品を取り除き、その品質を確認しています。今回のプロジェクトのパートナーである株式会社晃祐堂では、この生産方法で一日に 2,000 ~ 4,000 本の熊野筆を製造されています。


熊野筆検品の難しいところ






熊野筆において穂先の形はとても重要です。

熊野筆の穂先は人間が手作業で作成しているため、良品であっても微妙に形が異なります。不良品でも、穂先が全体的に小さい・凹んでいる・毛が飛び出ているなどの極僅かな違いであり、素人には見極めが難しいです。

また時期によって素材となる動物の毛自体も変わることから、良品の形の基準を定量的に定めることもとても困難です。現状では筆職人が経験を元に総合的に判断して良品・不良品を選別しています。


私達の解決方法


そこで我々は TensorFlow を使い、良品・不良品を判定する画像分析ツールをプロトタイピングしました。職人の判断を機械的にどこまで再現できるかへの挑戦です。

小箱型の筐体にカメラと回転台を取り付け、対象となる筆を回転台にセットします。

筆が回転台で 1 周する間に 20 枚の画像を撮影し、それぞれの画像が良品か不良品か判定します。

20 枚の内に指定枚数以上が不良品と判定された場合に、その筆が「不良品」と判断されるようにしています。





学習データ

今回は 200 本の良品筆を職人の方々に選抜していただき、それらから約 5,000 枚の穂先の画像を撮影しモデルの学習に用いました。撮影した画像には OpenCV による輪郭抽出をすることで、学習に必要な穂先のみが写るように前処理をしています。



モデリング

シンプルな Convolutional Auto Encoder(CAE)を TensorFlow で構築しました。このモデルには先程の 5,000 枚の良品筆の穂先画像を学習させました。

良品筆の画像特徴を学習したこの CAE は、不良品画像(例えば、穂先が細すぎる画像)をインプットしても、学習した特徴量を元に「良品のような穂先をした画像」がアウトプット(再構成)する性質をもったモデルになります。

その後、インプットした筆画像とアウトプットされた筆画像との差分から再構成誤差を計算します。この再構成誤差を可視化すると、これはそのまま「インプットした筆のどこが不良箇所なのか」を表す不良品箇所の情報と見ることができます。







結果


この学習済みモデルを使って別の良品・不良品画像をインプットしたときの結果を見てみましょう。


良品筆をモデルにインプットし再構成された画像では再構成誤差(= 不良品箇所, 白い領域)はほとんど見られません。一方、不良品をインプットして再構成された画像では、相対的に大きな不良品箇所が確認できます。

参考として、1 本の筆の再構成画像を繋げて動画にしたものが以下です。赤い箇所が不良品箇所を表しています。静止画よりも不良品箇所が視覚的にわかりやすいと思います。(å·¦ : 良品筆、中央&右 : 不良品筆)




評価方法


モデルによる定量的な評価(Precision, Recall の算出)と筆職人の定性的な評価の両方を加味し、再構成誤差の白いピクセルが 40 ピクセル以上存在すれば、その筆画像を「不良品」と分類するしきい値を設けました。

今回は特に、「不良品筆の検知」を重要視してしきい値を設定しましたが、この判定方法によって分類される筆は、概ね筆職人の評価結果と一致します。

また、その筆一本単位での良品 / 不良品判定方法では、1 本の筆が回転台で 1 周する間に 20 枚の画像を撮影し、それぞれの画像が良品か不良品か判定します。最終的に 20 枚中 6 枚が不良品と判定された場合に、その筆が「不良品」と判断されるようにしています。6 枚というしきい値も筆職人の方と相談して決定しました。

このツールの実際の出力結果画面は以下です。









展望


今回のプロジェクトでは、不良箇所を可視化して高い説明可能性を示しつつ、筆職人と概ね同じ判定結果を出すことができるプロトタイプを作ることができました。今後はこのような場面で活用できると考えています。

職人作業の定量化 : 人間の感覚だけに依存しない定量的な評価方法を確立していきたいと思います。方法の異なる判断の方法がいくつかある方が品質管理の観点でも有利です。職人の定性的な判断を定量的に援護するツールになれば良いと思います。

作業量の削減 : 職人の判断感覚を反映したツールを利用することで、長い経験を持った人以外でも検品作業が可能になります。また人間による何十ものチェック ポイントの中の 1 つを機械チェックに置き換えることで作業の一部は軽減することができます。

後継者教育への貢献 : 職人教育の場において、不良品箇所を可視化した再構成誤差の図は非常にリッチな情報となります。どこがどのくらい不良らしいのかを定量的に伝えられることは技術を伝える上で非常に有益です。

穂先形状の判定は、高い専門性と人間の感覚が重要である作業であるため、機械による作業の完全置き換えはまだ難しい状態です。今回の場合のように、人間の作業は非常に精度が高く、人間作業を前提に構築された現状のオペレーションでも効率が低いわけではないことが多いです。そのため、機能検証では機械学習の単純な検知精度だけではなく、既存のオペレーションと AI システムの可能性をきちんと理解して、どこにどのように AI を適応するのがベストかを見極めることが大切です。今回はまず「穂先形状の検品作業」という一部の作業で AI モデルの可能性を確かめることができました。今後はモデル精度・スループットの改善と共に、既存オペレーションへのこのツールの現実的な導入方法についても考えていくつもりです。



<参考>
株式会社ブレインパッドは、2004 年の創業以来、AI、ビッグデータなどの言葉が広まる前から、データ活用のリーディングカンパニーとして、アナリティクスとエンジニアリングを駆使し、企業のビジネス創造と経営改善をご支援しています。支援実績は、金融・小売・メーカー・サービスなど幅広い業種を対象に 1,000 社を超え、データ活用のコンセプトデザインから運用による成果創出までをトータルに支援することで、データを価値に変えるお手伝いをしています。一般社団法人データサイエンティスト協会代表理事、一般社団法人日本ディープラーニング協会理事も担っており、近年はビジネス課題を解決するために機械学習・深層学習を用いる AI 活用事例を多数生み出しています。



Reviewed by Khanh LeViet - Developer Relations Team and Takuo Suzuki - Developer Relations Team
Share on Twitter Share on Facebook