CodeZine(コードジン)

特集ページ一覧

【デブサミ2016】19-E-2レポート
話題の機械学習ライブラリで防犯カメラはここまで進化する! ~ 画像認識・異常検出×IoTでできること

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/03/17 14:00

 2015年より、ブームと呼べるほどの注目が集まるディープラーニング。ディープラーニングとは多層構造のニューラルネットワークのことだが、ではニューラルネットワークとは何かと言うと……一般的には「脳の神経回路を模した機械学習のアルゴリズム」だが、その本質や仕組みを理解するのはなかなか難しい。日本オラクル クラウド・テクノロジー事業統括 PaaS事業推進室 PaaS Evangelistの中嶋一樹氏も「多くの方にとって理解し難い領域であるのは事実」としながら、「ただし、ニューラルネットワークを使ってできることは非常に面白く、かつ、より身近になってきている」として、画像認識をはじめとした参加型のデモを実施。こうした機械学習の技術とIoT(Internet of Things)がつながることによって、何が変わるのか、どんなサービスに応用できるのかなど、身近な例を挙げて紹介した。

日本オラクル クラウド・テクノロジー事業統括 PaaS事業推進室 PaaS Evangelist 中嶋一樹氏
日本オラクル クラウド・テクノロジー事業統括 PaaS事業推進室 PaaS Evangelist 中嶋一樹氏

誰もが手軽に体感できるようになった最新の画像認識技術

 ニューラルネットワークでできることは多岐にわたる。中でもよく知られるのが画像認識だ。画像認識の一環である「顔認識」なども当初は驚くべき技術だったが、今日ではFacebookやアップルの写真(Photos)アプリなどですっかりおなじみの機能となった。また、世界的に研究が進む自動運転の分野においても、人や道路の状況を把握するために画像認識の技術が応用されている。

 中嶋氏は「現代のニューラルネットワークの技術ではどれほどの精度で画像を認識できるのか、まず体感していただきたい」と語り、デモを披露した。

 最初のデモ環境でキーとなるライブラリは、「TensorFlow」と「ImageNet」の2つ。TensorFlowは、2015年11月にGoogleがオープンソース化して公開した機械学習の開発ライブラリで、セットアップや記述が簡単なのが特徴だ。一方、ImageNetは機械学習用の学習画像データ(リファレンスデータモデル)で、世界中の物体について平均1000の画像を保持している。

TensorFlowとImageNet
TensorFlowとImageNet

 「ImageNetは、昨年のTED Conferenceでスタンフォード人工知能研究所所長のフェイフェイ・リー氏がプレゼンテーションで取り上げたことでも話題となった。ImageNetのみならず、画像認識技術の今を理解するうえで非常にわかりやすいプレゼンテーションなので、興味のある方はぜひご覧いただきたい」(中嶋氏)

 これらのライブラリがバックエンドで稼働しているNode.jsのWebアプリケーションを使って、中嶋氏はサンプル画像をいくつか解析してみせた。たとえば「薪ストーブ」の写真は、99%の信頼度でストーブと解析された(一見「暖炉」に似ているが、暖炉と薪ストーブは厳密には別物であり、解析結果は大正解とのこと)。また、ウイスキー白州のボトルは信頼度51%で「ビールのボトル」、44%で「ワインボトル」という解析結果に。惜しくも不正解だったが、ボトルであることは認識されたようだ。

 中嶋氏は、続いて画像アップローダのWebフォームURLを公開し、セッション受講者にその場でデモへの参加を呼びかけた。受講者の多くはスマートフォンやPCから続々と写真をアップロードし、それらはリアルタイムでスクリーンに映し出され、解析された。解析結果については、それぞれ本人が「正解」「残念」「惜しい」のリボンを付けていく仕組みで、なかなかに優秀な認識精度、そして解析スピードを体感することができた。

受講者からアップロードされた画像をリアルタイムに解析していく様子
受講者からアップロードされた画像をリアルタイムに解析していく様子

 「TensorFlowとImageNetという誰もが使えるオープンな技術を活用して、このような画像認識を手軽に実現できるようになったのは素晴らしいこと」(中嶋氏)

 次に、中嶋氏は“さらに一歩先”に進む画像認識技術の応用例として「NeuralTalk2」というライブラリを取り上げた。まず、NeuralTalk2を活用したアプリケーションで何ができるのかを示すビデオを再生。

 ビデオでは、スマートフォンのカメラで街中を撮影しながら歩き、「今、画面に映し出されているのは何か」をリアルタイムに自然言語のキャプション(英語)で表示していく様子が紹介された。たとえば、“a woman walking down a street with a cell phone”、“a building with a large window in the middle of it”といったように、撮影画面の変化に合わせて表示されるキャプションも瞬時に切り替わっていく。

 紹介ビデオだけでなく、NeuralTalk2についてもサンプル画像を使ったデモを実施。たとえば、犬が椅子の上に座っている写真をアップロードすると、“a dog sitting on a bench in front of a window”と、画像の内容が正確に自然言語で表現された。

 中嶋氏自身がニューラルネットワークに興味を持ち始めたのも、このNeuralTalk2がきっかけであり、「この技術を活用することで世の中が変わっていくと感じた」という。

IoTや機械学習対応DBとの連携による新サービスへの応用例

 中嶋氏は本セッションのテーマとして、ニューラルネットワークによる画像認識技術のほかに「IoT(Internet of Things)」を掲げていた。2つのデモで紹介したような画像認識技術がIoTとどうつながり、それによって何が実現できるようになるのか。シンプルでわかりやすい具体例として中嶋氏が挙げたのは「防犯カメラ」だ。

 現在の防犯カメラは、映像を撮影・記録しておき、事件などが起きた場合には何か証拠が残されていないか、後で調査するのに使われる。従来はそれが当たり前だったが、IoT(インターネット接続の防犯カメラ)と機械学習(画像認識技術)を組み合わせて活用すれば、撮影した画像をテキストに落とし込めるようになる。テキスト化すれば“検索”が可能となるので、平常時とは違う何かが写り込んだときにアラートを通知する仕組みなども十分考えられるだろう。

 「“後から調査”ではなく、事件発生時にアラートを受けて現場へ急行するようなシステムも実現できる。また、事後調査の場合にも従来は人間がひと通り見なければならなかったが、テキスト検索で解析可能になれば、そのような負担も激減するはず」(中嶋氏)

 具体的な実現方法としては、まず、カメラで撮影した画像データをTensorFlowやNeuralTalk2で解析してテキスト化し、構造化データとしてデータベースに保存。さらにデータベース内では、画像認識とはまた別の機械学習アルゴリズムを使って異常検出(アノマリー分析)し、アラートを発するという流れとなる。ここで異常検出モデルをいかに実装するかが一つの課題となるが、Oracleデータベースのクラウドサービス版である「Oracle Database Cloud」なら、機械学習のエンジンが組み込まれており(※4種類のエディションのうち上位2エディションで対応)、異常検出のアルゴリズムを用いて分析することができるという。

IoTと画像認識技術、異常検出の機械学習機能に対応したOracle Database Cloudの組み合わせで、防犯カメラの自動アラーティングシステムを実現可能
IoTと画像認識技術、異常検出の機械学習機能に対応したOracle Database Cloudの組み合わせで、
防犯カメラの自動アラーティングシステムを実現可能

 中嶋氏は続いて、Oracle Database Cloudの機械学習機能を使った異常検出のデモを実施。自宅の玄関先に設置する防犯カメラをイメージして、玄関前の画像を5枚アップロードした。そのうち4枚は夜間・日中など異なる時間帯で、ドアのみが写っている画像。そして、残り1枚はチャイムを鳴らす人物が写り込んでいる画像で、これが機械学習によって異常検出できるのかを試すデモとなる。

 Oracle Database Cloudの設定は、オンプレミス/クラウド共通の管理ツールである「Oracle SQL Developer」を使用。データソースとして玄関前の画像データが格納してあるテーブルを指定し、機械学習のモデルとして異常検出を選択してマウスでつなげるといった、アイコンベースの簡単な操作でほぼ完結する様子が見てとれた。

 最初の分析結果では、検出されるべき画像のほかに、違う画像も異常値として検出されてしまった。基本的にデータが増えるほど精度が向上するものであり、「全体で5件のみのデータでは少々無理があるかもしれない」(中嶋氏)とのことだったが、ごく簡易なチューニングを施したところ、チャイムを鳴らす人が写っている画像のみ検出することに成功。少ないデータでも、異常検出の精度を確保できることが示された。

 「データベースに機械学習エンジンが組み込まれているメリットの一つは、リアルタイム分析が行えること。スタンドアロンの分析ツールだと、いったんデータを抽出して投入する必要があり、既存のアプリケーションに機能を組み込むのが難しいが、機械学習エンジンが組み込まれているOracle Database CloudならSQLで実装可能。アプリケーションの中に異常検出の仕組みを簡単に組み込める。アプリに組み込むことで、SMSやEメールを送信するといったアラート通知も自在に行えるので、リアルタイムのアラーティングシステムを容易に構築できる」(中嶋氏)

 なお、機械学習エンジンを利用できるOracle Database CloudのEnterprise High Performance Editionは、1時間あたり3.36ドル~の従量課金制で利用可能とのこと。分析用途であればほとんどの場合、データベースを24時間365日立ち上げる必要はなく、たとえば「月曜日の午前中だけ立ち上げたい」といったニーズも考えられる。そのようなケースでは、1日10ドル程度、1か月換算で40ドル程度(5000円弱)の価格帯で機械学習の分析機能が利用できることになる。

 異常検出をはじめとした機械学習に興味はあるが、専用のソリューションまでは必要ないという方などは、まずOracle Database Cloudで手軽に試してみるのもよいだろう。

お問い合わせ

 日本オラクル株式会社

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5