ご存知ではない人には、色とりどりの箱やブロック、数字が並んでいるだけにしか思えないでしょう。熟練の人なら、魚眼カメラやLIDARなどのセンサで取得したデータだとわかるかもしれません。でも、これが、自律走行する車にとっては、自分が走っている複雑な世界を詳しく表現したものなのです。
いま、ラスベガスで開催されている国際コンシューマー・エレクトロニクス・ショー(CES)には、最近の自律走行システムには道路がどのように見えているのかを示すデモが、自動車メーカや研究者から山のように出展されています。
この動きをリードしているのが、車載人工知能用の世界一パワフルなエンジン、NVIDIA DRIVE PX 2です。同じくNVIDIAが提供するDriveWorksソフトウェアを組み合わせると、DRIVE PX 2でディープラーニングのパワーを活用し、最新の自律走行車を開発することができます。
このような新型システムのテクノロジの素晴らしさを伝えるには(1秒あたり24兆回も演算が可能)、その成果がどういうものであるのかは、少し説明しないとわかりにくいかもしれません。
自律走行のデモについて、なにが見えるのか――また、なにが見えないのか――を簡単にご紹介したいと思います。
見えるもの
デモで示される「認識」は、大きくふたつのカテゴリに分けられます。
セマンティック・セグメンテーション――コンピュータの画像はピクセルと呼ばれる小さな点でできていますが、このピクセルがどのクラスのオブジェクトに属しているのかをラベリングする技術がセマンティック・セグメンテーションです。下の画像を見てください。道が青、人がオレンジ、車が赤に色分けされています。画像に写っているものをここまで詳しく判断できるのであれば、自律システムでも安全に運転ができるはずだと思えるでしょう。
物体検出――物体検出というのは、物体の位置を四角いボックスで囲む技術です。動画では、さまざまなクラスの物体を同時に検出できることが示されます。すぐ下の写真は、人と車を特定するように設定した検出器による処理結果です。長方形のボックスで囲む処理も物体の位置を特定するものですが、セグメンテーションよりもずっとシンプルな方法だと言えます。
見えないもの
自律走行システムに道路がどう見えているのかを示すデモでスクリーンに表示されるのは、セマンティック・セグメンテーションと物体検出になります。
しかし、目に見えない部分もあります。このような処理をディープラーニングが支えているのです。ディープラーニングなら、人間にはできないこともできます。道路関連で出現する物体について、すべてのクラスを認識できるソフトウェアを開発するのは無理があります。種類が多すぎるためです。
ではどうすればよいのでしょうか。マシンに自習の方法を教えればいいのです。ディープラーニングなら、複雑な目標を設定することができます。目標を適切に設定できれば――かつ、適切な方法、すなわち適切なアルゴリズムで設定できれば――難しい作業を処理する方法をネットワークが自分でみつけてくれます。
このようなネットワークのトレーニングには、NVIDIA GPUが持つ膨大な処理能力を活用します。GPUはたくさんのタスクを同時並行に処理できるので、ディープラーニングに向いているのです。
GoogLeNetやVGGといった最先端のディープラーニング・ネットワークをベースとして、NVIDIAでは、ワンショットで検出・セグメンテーションをするアーキテクチャを採用しました。ワンショットというのは、ネットワークがイメージ全体を一度に取り込み、検出やセグメンテーションのピクセル・ラベリングなどを返す形式です。
その結果、現実世界における運転の様子を撮影した動画を使えば、短期間でシステムをトレーニングし、さまざまな条件で物体を認識できるようにすることが可能になりました。与えるデータを増やせば増やすほど、システムは賢くなります。KITTIベンチマーク・スイートなど、独立系の研究者グループが管理している現実世界の画像認識ベンチマークがいくつかありますが、トレーニング成果をベンチマークと比較すれば、自分たちが世界的にどのくらいのレベルまで到達できたのかを確認することもできます。
見ているものをどう評価するか
デモをご覧になる機会があったら、「どのようなトレーニングにより、過去に遭遇したことのない状況を理解できるようになっているのだろうか」「処理はリアルタイムだろうか」「コンピュータビジョン・システムの精度を測るためにコンピュータ科学者が利用しているベンチマークと比べると、認識の精度はどうなのだろうか」――この3点を考えてみるとおもしろいでしょう。
Pingback: DeepLearningはアニメを変えるのか? - IT記事まとめ
Pingback: DeepLearningはアニメを変えるのか? - TECHBIRD | TECHBIRD - Effective Tips & References for Programming