SLAMについて

前回投稿で、LiDARについて書いたが、LiDARが最も定常的に利用される環境と予測するのが自動運転である。LiDARは、どのように自動運転に貢献しているのか?動作原理がレーダに似ているので、いわゆるサポカーの一部で利用されているミリ波レーダのような用途であろうか?実はSLAM(Simultaneous Localization and Mapping:スラム)と呼ばれる自己位置特定と周辺地図生成を同時に連続的に行うアルゴリズムで利用される。

自己位置と地図というキーワードを目にすると、GPSによるナビゲーションを思い出し、「それならもうすでにカーナビでできてる」と思うかもしれない。しかし、GPSによる位置情報は数メートル〜数10センチ単位で誤差があり、かつ、GPS衛星電波の受信状況によっては誤差が大きい、位置が特定されないなどの問題がある。また、カーナビで利用される地図は、道路、建物図であるが、それだけを見ていては運転操作はできないという問題がある。実際に車両を運転する場合には、まわりの状況や対抗車、歩行者など細部走行に適不適を判断するとともに、逐次変化していく状況を判断して、場合によっては1メートル以下の単位の精度で運転操作を人間は行っている。

SLAMは、建物以外の障害物と自動運転車との間の高精度な相対的位置認識を実現する技術として利用されている。対向車や歩行者などのような逐次変化する環境の把握につては、サポカーにあるようなミリ波レーダや、AIによって急速に進化している画像認識技術による物体認識アルゴリズム(YoLo,SSDなど)によって実現されるが、樹木や道路標識などの障害物、実際に走行可能な道路幅などが認識可能な地図を生成し、それに応じて自己位置を高精度に決定し、予測していくにはSLAMが必要になる。

詳細は触れないが、もともとはSLAMはロボット向けに15年以上前に考案されたアルゴリズムであり、ベイズ確率論に基づく確率論的モデリングによるアルゴリズムである。その理論を自動車に搭載し自動運転に応用したのがいわゆるGoogle Carである。同様に最近ではロボット掃除機にも搭載されつつある(2015年以降はルンバにもVisual SLAMが搭載されている)。このように応用範囲は広く、今後は自動運転車のみならず自律移動するすべての機器に搭載されていくと考えられる。

自己位置と地図を同時に生成していくとはどういうことであろうか。人間の行動を例にしたイメージ的な話になるが、ある既知の特定の場所から未知の場所に移動をしたとする。この時点では、その経路はまわりの景色も目印も初めてであるため道路地図を参考に不安を持ちながら走行し、風景の記憶は運転の記憶とともに記憶するだけである。しかし、次回からは道路地図だけでなく、こっちに行けばxxxの看板が見える、とか、高い建物が見えるとかの風景の記憶もあり、より細部がわかるので安心して移動ができる。もし、一本道を間違ったとしても、修正するように進行しその先に、「前にみた風景」が出現すれば、「あーここに出るんだー」という言葉とともに、想定していた道にでたことを理解し(SLAMではこれをLoop Closureと呼ぶ)、また安心な移動を継続するとともに、新たに経験した道の風景を記憶して移動の選択肢を増やしていくことになる。これが自己位置認識と地図生成を同時にするということである。参考に、以下に弊社の簡単な自動運転ロボットカーで室内を走行しSLAMで生成したMapの例を示す。図の紫色の線(曲線)が人間の指示によって走り回った軌跡であり、白色の部分が測定されSLAMによって空間と認識された領域であり、グレーの部分が障害物として認識された領域である。このように空間と障害物を詳細にMapとして認識することで、それ以降は自動的に自己位置からどれだけの方向、距離に障害物があるかということを自己位置とともに逐次認識しながら移動経路を決定することが可能になる。GPSによって大まかな位置を知り、SLAMによって高精度な自己位置と周辺の地図を認識し、カメラ画像による物体検出でリアルタイムの周辺移動物を認識することで、人間並み(以上?)の状況認識が可能となり自動運転が可能になる。

大別するとSLAMには、カメラなどの画像情報から周辺物の3次元情報(輪郭、位置)を推測するVisual SLAMと、LiDARによって3次元情報を計測する(LiDAR) SLAMがある。通常、両方区別なくSLAMと呼び、画像情報を用いるアルゴリズムを指す場合に限りVisual SLAMと呼ぶことが多い※1。2019年にテスラモータのCEOイーロン・マスクは自動運転の開発にあたり、人間は視覚情報を主として用い運転をしていることからLiDARは搭載せず自動運転を実現すると明言している※2。主な自動運転開発のプロジェクトではLiDARを利用することがそれぞれ示されている。現時点では、LiDARを用いた方が物体の3次元形状や相対距離を計測することが可能であり、そのデータをSLAMに入力すると高精度で自己位置と周辺地図を生成することが可能となる。Visual SLAMは人間同様に画像情報からの推定になるが、現時点では精度という面ではLiDARによるSLAMまでは達していない。Visual SLAMでは奥行きを含む3次元形状を2次元画像からどのようにして認識するかという課題があるが、従来はMicrosoftのkinectのような2つ以上のカメラの画像(ステレオカメラ画像)から奥行きを推定するSLAMが精度が得られるとされていたが、近年では単一のカメラの画像(monocular)から推定するSLAMも精度が高くなりつつある※3。

書きたいことはまだあるが、長くなったので今回はここまでとする。

※1 https://www.youtube.com/watch?v=NMFsEpVppZM

※2 https://jp.techcrunch.com/2019/04/23/2019-04-22-anyone-relying-on-lidar-is-doomed-elon-musk-says/

※3 Depth from Videos in the Wild: Unsupervised Monocular Depth Learning from Unknown Cameras

https://arxiv.org/abs/1904.04998

LiDARについて

10月にAppleからiPhone12が発売された。iPhoneは新製品になるたびになんらかの新しい技術が搭載されているので毎回楽しみにしている、(とはいえ昔のように毎年買い替えたりはしないが)。今回の目玉は5G通信対応だろう。しかし、私が注目しているは、iPhone12Pro/MAXにLiDAR(ライダー)を搭載したということだ。

LiDARとは赤外線やレーザー光などを用いて対象物との距離を計測する装置である。正式な名称はLight Detection And RangingもしくはLight Imaging Detection And Rangingであり、航空管制や防衛分野で広く利用されているRADAR(レーダ)と概念は同じであり、レーダは、Radio(電波)を使うのに対しLiDARはLight(光)を使う。電波は減衰が少ないので(周波数帯域にもよるが)数百km先の物体を検知することが可能であるのに対し、光は減衰が大きいため最大でも数百m先の物体の検知にとどまる。また、LiDARは出力パワーが小さくて済むためにiPhoneはVCSEL(垂直共振器面発光型レーザー)という小型チップで実現している。

iPhoneがLiDARを搭載することによって、カメラの夜間でのフォーカスやAR(Augmented Reality)がより向上すると言われている。ARはカメラのレンズで捉えた対象物と、CGを合成することで現実を拡張する技術である。CG合成には、遠近感に応じた適切な縮尺でCGを表示する必要があり、遠近感を認識するためiPhoneと対象物の距離を知る必要がある。ARは以前にiPhoneにも搭載されていたが、それほど高機能ではなかった。従来はカメラに写った像から距離を予測していたがその方式はLiDARで測定するほど精度が高くなかった。また、カメラの像に依存するため夜間など輪郭が明確でない環境では利用が困難だった。それに対してiPhone12 Pro/MaXはLiDARを搭載することで物理的に距離を計測することが可能となるため、夜間でも高精度で対象物との間の距離が認識でき、フォーカスが良くなるとともに、ARの利用も可能となる。

LiDARで広がりをもってスキャンすることによって、対象物が存在する空間と存在しない空間を認識することが可能となる。しかも、細かな距離の違いを認識することが可能となる。つまり、対象物の3次元的位置・形状を計測することが可能となるということである。

iPhoneよりも前にこの技術を応用しているのが自動運転技術である、この画像にある自動車のルーフに乗る形で搭載されているのがLiDARである。自動運転ではコンピュータが人間に代わって常に360°全方向の障害物の有無と3次元形状をリアルタイムで知る必要があるため、スキャン方向は一定速度で機械的に回転している(余談だが空港などに設置されているレーダも同様の理由で回転している)。現在、市販されている運転支援機能つき自動車(自動運転機能レベル2相当)ではセンサーとして主にミリ波レーダとカメラが利用されいるが、自動運転機能のレベル3以上の自動で判断し操舵するタイプの自動運転車では周囲状況を3次元的な形状レベルで認識することが求められる。LiDARはSLAM同様にレベル3以上の自動運転の基礎技術と言われ、自動運転車には数台〜十数台が搭載され自動運転車の周囲認識・予測情報の元を計測するとプロトタイプでは設計されている。画像のような回転型ではなく、iPhoneのような固定型を車体の四隅などエッジに搭載することで、最近の自動運転車はコンパクトかつスタイル的に違和感がなくなっている。

自動運転に必要される距離(数十m〜数百m)まで計測可能なLiDARの価格は、数年前まで1台100万円台と高額であったが、近年、製造企業が増え低コスト化が進みつつあり1台数十万円まで下がりつつある。自動運転車の普及には価格を下げることが必要であり、そのためにはLiDARの低価格化も必須であると考える。

※数mの計測能力のLiDARであれば、1万円程度でAmazonで入手可能である。https://www.amazon.co.jp/RPLiDAR-A1M8-%E3%83%AC%E3%83%BC%E3%82%B6%E3%83%BC-%E3%82%B9%E3%82%AD%E3%83%A3%E3%83%8A-%E3%82%AD%E3%83%83%E3%83%88/dp/B07J9HSWJ6/ref=asc_df_B07J9HSWJ6/?tag=jpgo-22&linkCode=df0&hvadid=280371677441&hvpos=&hvnetw=g&hvrand=13045166321911298224&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009501&hvtargid=pla-640104653997&psc=1

携帯料金の値下げについて(個人的雑感)

現政権になって携帯料金の値下げの圧力が大手3社にかかっている。この動きについて、利用者としては望ましいことと思っているが、いろいろと腑に落ちない疑問がある。(素人の疑問です)

1.これってデフレの動きに影響しないの?
 前政権では、目標としてデフレを脱却するというのを掲げていたと記憶している。ここで携帯料金の値下げをしたら、携帯会社側では原価低減化の動きが起こり、結果、関連産業で賃金低下となり、消費が冷え込むのでは?一部の分野だけだからいいのか?

2.格安スマホ企業の立場は?
 格安スマホ企業(大手の小会社以外の会社)は、いろいろ工夫をして価格差があるスマホを提供してきたのに、大手が値下げをすることで魅力が薄れるのではないか?MVNOの使用料金もさげるのか?

3.大手の発表内容って、これ値下げ?
 今の段階で見ていると、大手(現時点でドコモは未発表)の戦略は、自社もしくは小会社による低価格のメニューの提供であるが、これを値下げというのか?なぜ、現在のメニューの価格を下げるのではなく、新しい低価格メニューの発表なのか?(現行メニュー同様にいろいろオプションを薦めて契約させ、結局サービス内容をわかりにくくするだけでは?)
 

AVRI(自動運転対応指数)

AVRIをご存知であろうか?AVRIはAutonomous Vehicles Readiness Indexの略称であり日本語では自動運転対応指数というものである。AVRIは世界四大監査法人の一つであるKPMGインターナショナルが毎年発表している30の国と地域を対象とした自動運転に対する準備状況を指標化したデータである。KPMG Japan(https://home.kpmg/jp/ja/home/media/press-releases/2020/08/avri2020.html)の表記を引用すると

「本調査は、28の指標を用いて30の国と地域を評価し、AVの展開とイノベーションを進めるうえでの準備状況を評価しています。指標は政策と法律、テクノロジーとイノベーション、インフラストラクチャー、消費者の支持という4つを柱として編成されています。本調査は2020年1月~5月にかけて行いましたが、多数の指標を用いているため、一部の内容は、当該期間の以前もしくは以降の内容を含んでいます。2020年自動運転車対応指数に関する情報については、Autonomous Vehicles Readiness Index (AVRI) のサイト(英語版)をご覧ください」

となっている。上記にKPMG Japanサイトには2020年の上位10カ国と日本を昨年の順位を比較した表が示されており。それによると日本は昨年より順位を一つ下げ11位となっている。

上記Autonomous Vehicles Readiness Index (AVRI) のサイト(英語版)のレポートによると日本の評価は以下のようになっている。Technology and innovationは自動運転に関する特許数が1位であることが評価された結果であり、Infrastructureは携帯電話向け電波4Gのカバレージが広いことや道路の整備状況が良い、ドライバーのマナーが良いことが評価されている。一方、Policy and legislationやConsumer Acceptanceは自動運転を推進するような政策や法律整備が上位国に比較して遅れていることが指摘されている。また、日本のレポートには、日本特有の狭く入り組んだ道やトンネルにおける課題解決や、IoTエンジニアやAIエンジニが不足していることも指摘されている。

  • Policy and legislation 18位
  • Technology and innovation 3位
  • Infrastructure 6位
  • Consumer Acceptance 18位

最近興味があるもの

このブログを再開して、今日で4日目である。とりあえず三日坊主は免れたようである。今日は軽めの記事となるが、今後の記事の前置きとして、最近私が興味があるものを書きたい。

  1. Transformer技術の応用
  2. 深層強化学習の応用
  3. AIとVRの融合

1は、これまでも触れてきた、2018年より急速に進化しているTransformerが、自然言語を超えた分野でどのように応用されていくか、また、各分野をどのように進化させるかということである。この点については、弊社にもいろいろ相談がきており第三者というよりは開発の張本人として考えていきたい。

2は、教師信号を必要とする教師あり学習、教師信号がなくても大量のデータから抽象化された情報を学習する教師なし学習とは異なり、全体の流れ、挙動の結果から最も良い結果となる方策を学習する強化学習についての現在の状況を知りたいと考えている。

3は、単純に最近、Oculus Quest2を購入したからである。まだ、ちょっとゴーグルが重いので長時間の装着に難点があるが、没入感については満足である。これでゲーム以外のコンテンツが揃えば市場が大きく成長していくと思われる。VRとAIを組み合わせることで、VR環境でシミュレート/経験し、大量にデータ得て学習を行うことで、今までにないAIを構築することが可能となるなどが考えられる。

Microsoftが世界トップクラスの言語モデル「GPT-3」の独占的ライセンス取得を発表

ちょっと前の情報だが、MicrosoftはGPT-3の独占的ライセンスを取得したことを発表した(2020年9月22日)。https://blogs.microsoft.com/blog/2020/09/22/microsoft-teams-up-with-openai-to-exclusively-license-gpt-3-language-model/

「GPT-3」とは、Tesla motorやSpaceXの創業者であるイーロン・マスクが出資者として名を連ねる団体のOpenAIが開発し公開している言語モデルであり、GPT-3は、transformerとunsupervised pre-trainingという2つの技術を組み合わせた GPTのバージョン3を指している。

Googleが開発しているBERTと競って言語モデルのSOTA(State Of The Art:最高水準)を更新しているモデルである。特に、GPT-2が公開された際には、大量のデータを用いて訓練生成したモデルは、フェイクニュースなどで悪用される恐れがあるという理由で公開されず、OpenAIの設立趣旨に反するのではないかとの議論になったほど優れたモデルである。

GPT-3は1,750億のパラメータによって構成されているため、個人や一般企業が新たにモデルをチューニングすることは現実的ではなく、OpenAIが提供するAPIを介して”利用”するということが現実的である。つまり転移学習のベースモデルとして利用することが想定される。

このモデルを用いることで言語における単語の出現を予測することが可能となり、ある単語の後に続く一番もっともらしい単語・文章の予測生成が可能となる。たとえば、ある記事の見出しを与えるだけで、その後に続く長い文章を高精度で生成することができる。transformer技術は言語だけでなく、画像や作曲などの”順序”が重要な要素となる分野においてもSOTAを更新しつつあり、transformerを応用したモデルであるBERTやGPT-3の応用が始まっている。

MicrosoftはOpenAIとパートナーシップを結んでおり、今回の独占的ライセンス取得はその流れによるものと思われる。Microsoftは6月にリリースしたAzureホストAPIにてGPT-3を提供すると発表している。今回の取引による、OpenAIのAPIサービスには影響はなく、これまで通り、OpenAIのAPIを介したGPT-3の利用も継続利用可能とOpenAIからコメントされている。

サーシャはプログラミングが大好き 

今日、ふらっと近所の本屋に入ってプログラミン専門書コーナーを見ていると、「サーシャはプログラミングが大好き コーディングと出会った少女の物語」という薄い本が目に入った。

この本はアメリカのサーシャ・アリエル・アルストンという21歳の大学生の女性が、アメリカ(でも!)STEM(科学、技術、工学、数学)分野に興味を持つ女子高校生が1%に満たないことを危惧し、子供のころからコーディングに関心を持ってもらうように執筆した短編の本である。ほんとに薄く20分もあれば完読できるぐらいで、ストーリーも「物語」という割に単純で、サーシャというワシントンDCに住む小学生の女の子が、大手IT企業のエンジニアの母親のすすめでサマーキャンプでコーディングを学び、プログラムをつくる喜びを知る、という話である。

なぜ、この本を読もうと思ったかというと、パラパラと眺めたときに目に入った次のキーワードが日本のプログラミング教育にも必要だなあと思ったからだ。

  • C(Communicate) 伝える
  • O(Organize)まとめる
  • D(Demonstrate)やってみせる
  • E(Express) 表現する

C,O,Dについてはコンピュータと人間のやりとりを示すキーワードだが、Eについてはプログラミングする目的に関する内容であり、文中では母親がサーシャに

「Eは『Express(表現する)』を意味するの。パソコンが、あなたが教えたことを間違えず正確にやることを覚えたら、あなたはあなたが作ったものや解決した問題を誰かと共有することができるの。それってすばらしいと思わない?」

と教えている箇所がある。この「誰かと共有する」というのはGithubなどを使って仕事をしているエンジニアには常識となっている考え方だが、それを「すばらしいと思わない?」という言葉とともに教えるのは非常に、これから始める小学生のプロラグミングにも必要な考えだと思う。

私がが大学で学んだプログラミングでは、コーディング結果を「出力して」確認し、想定通りに動作したらそれで終わり、単位が取れるということしか学べず、「表現して誰かと共有する」というところまでは行かなかった。

これからプログラムを学ぶ小学生には、コンピュータを使って自己表現し、その思いを誰かと共有するためにコーディングをするということを理解して欲しいと思った。

機械学習初心者向け講座

言い訳に過ぎないが、今年は、コロナ禍であっという間に時間が過ぎてしまった感がある。前回の記事からもう9ヶ月も空いていた。この期間は、淡々と業務をこなすだけで過ぎてしまったなあと反省している。

数ヶ月前に知り合いから、時間に余裕がでてきたので機械学習の入門的なオンライン講座をじっくりと受けてみたい、何か良い講座はないか?という相談を受けた。数学についてはあまり詳しくはない、プログラムについても基礎的なスキルしかないということだった。

これだけブームになっているので世の中にはいろんな講座があるが、数学的な背景を説明せず、さらっとではなくじっくりと基礎的な事項に関して講義として、私はcourseraというサイトでスタンフォード大学が提供しているMachine Learningの受講を推薦した。

推薦理由としては、

  • 講師はAndrew NgでAI分野では著名な研究者
  • 機械学習の基礎的な内容が11週間分のカリキュラムでじっくり学べる
  • 5分〜15分程度の動画で説明されるので、隙間時間を使って効率よく学べる
  • 動画の途中に1,2問の簡単なチェックテスト、1週の終わりに5問のチェックテストがあり、合格しないと先に進めない(トライは何度でもOK)ため適度な緊張
  • プログラミング課題があり知識だけでなく実際に経験できる
  • 講義は英語(ボランティアによる日本語訳字幕もある)
  • このコースは無料(修了証発行は有料)
  • 内容的には、入門的な基礎知識だけでなく、学習で精度が悪い場合の原因・対策の分析手法についても講義があり実務的な基礎も学べる
  • 主な機械学習の適用例のロジックについても講義があり実務的である
  • プログラミングは、MATLABまたはOCTAVE(free)で実装する必要がある。(オフレコ:受講経験者が多くネットには、課題の実装コードが上がっているので、プログラミングが苦手でもいざというときは大丈夫!!)

とざっとあげられる。英語が苦手とか、プログラミングがああ、という人にもそれなりに打つ手があるので、機械学習のエッセンスを学びたくて時間が1週間で5〜6時間ぐらい確保できるという人には絶対おすすめだ。

Google発表:Transformerが大容量データを扱えるようになった

Googleが2018年11月にBERTを発表して以来、Transformerを利用した様々な論文が注目を浴びている。

Googleは2019年10月にはBERTを更に進化させ、Google検索やGoogle翻訳の基盤技術とすることも発表している。

その技術の一部の詳細が以下のような形でGoogleのブログで発表された。アルゴリズムとしてのTransformerの長所をいかしつつ、サービスとして実装するには、取り扱うコンテンツの規模や計算機資源の制約といった課題を解決するReformerという新技術である。

日本語の記事の見出しの中には、「小説を理解できる」という記載もあるが、要約文を生成できるというのが実際の機能である。(余談であるが、この「理解」という言葉は日常的に気軽に使うが定義・説明が難しい言葉であり技術的にはあまり使われない。)

Transformerも含めReformerは、大量の文章(コンテンツ)を事前に学習(教師なし)することで得られた要素(単語、画素)の関係性を活用してコンテンツ生成を可能とする技術である。

Reformerを画像に適用した以下の例がGoogleのブログに示されている。
上段の画像(上半分)を入力して、全体の画像をReformerが生成できるかということを示している。これまでもGANやVAEなどのアルゴリズムでの同様の取り組みがされているが、精度が向上しているように見られる。

Google、小説を全て処理できるAI翻訳「Reformer」発表
https://amp.review/2020/01/23/google_reformer/

(原文)Reformer: The Efficient Transformer
https://ai.googleblog.com/2020/01/reformer-efficient-transformer.html

学生の進路にもデータサイエンスブーム

一足遅れというか、二足遅れというかかなり遅れて、大学選択にもデータサイエンスブームの影響がきたようである。昨年、’AIブーム’が終わったのではないかと記事の中で書いたが、これは決して悲観すべきことではなく、ブームはブームとして終わり、本格的に社会実装されて行くフェーズに入ったようである。

 今までは優秀な学生が目指す大学の進路としては、ひたすら偏差値が高い大学・学部であり、将来の職業とは密接ではないことが多かった。しかし、経済環境の変化により「就職先」ではなく「職業」の方が重要になってきている昨今、大学進学時点からそれらを強く意識する学生が増加しているということだろうと考える。
 
 とはいえ、データサイエンスを専門的に学べる大学・学部は少なく、知識・技術の基盤として多くの人が身につけるには困難な状況であることには変わりはない。したがって、弊社としても裾野を広げていく活動を重視していきたい。

東大生に「データサイエンティスト」が人気、なぜ?
https://www.itmedia.co.jp/business/articles/2001/10/news074.htmlh

大学選びに異変あり データサイエンス3大学「MUSYC」人気急騰!
https://dot.asahi.com/aera/2019050700061.html

難化による安全志向ではない 受験生が“東大早慶”を受けない理由https://friday.kodansha.co.jp/article/90496