──
Deep Learning で絵を描いたり、音楽を作曲したり、小説を執筆したり、コンピュータのプログラムを作ったり……という例が話題になっている。
その延長上で、「 Deep Learning の画像認識技術を使って、自動車の自動運転をやってしまおう」という独自の方式を取っているのが、Turing 社というベンチャーだ。
ここで中核となっているのが、山本一成という人だ。本サイトでも前に紹介したことがあるが、ponanza という最高レベルの将棋ソフトを開発した人だ。
→ 将棋電王戦 第2局: Open ブログ (2013年)
この人は、その後、将棋の分野から撤退して、AI開発の道に進んだ。そこで選んだのが、Turing 社というベンチャーだ。その CEO となって、自動運転の技術開発をしている。この件は、ネット上でも紹介された。
→ 名人に勝利した将棋AIソフトを開発した天才が作る自動運転車で目指すはテスラ超え!
→ 目指すは「Tesla超え」 将棋AI作者にして自動運転EVベンチャー創業、山本一成CEOが見る景色
会社情報は下記だ。
→ Turing株式会社
──
では、技術はどんなものか? 上記記事によると、こうだ。
センサーという目にあたる部分よりもAIによる制御系(頭脳)を重視した自動運転を実現しようとしている点だ。
センサーは高価なLiDARではなく、非常に安価なカメラを使うという。センサーの性能ではなく、画像を深層学習で鍛えたAIによって解析することで、自分で判断して走れるクルマを生み出そうというのがチューリングの考える完全自動運転である。
現在の自動運転テクノロジーには欠かせないとされているダイナミックマップ(高精度3次元地図)がなくとも完全な自動運転が可能になるというのが同社の主張だ。
( → 名人に勝利した将棋AIソフトを開発した天才が作る自動運転車で目指すはテスラ超え! )
その技術のキモは、テスラと同じ方式であるらしい。テスラの方式は、下記で紹介されている。
→ Teslaはカメラを使ってどのように世界を認識しているか
つまり、こうだ。
・ 単一カメラでなく、マルチカメラを使う。
・ 複数の画像を統合して、3次元の空間状態を構築する。
・ そのときは、Deep Learning の Transformer の技術を使う。
その原理はこうだ。
「2次元の画像から3次元の空間状態を構築するときに、実際の測定をしないで、AIによる推定の技術だけで構築する」
こうして「 Deep Learning の技術で現実の状態を推定する」ことが可能となる。それによって自動運転が可能になる、というわけだ。基本的には「 Deep Learning 技術による認識に基づいて、自動運転をする」と言っていいだろう。
※ 運転技術に Deep Learning を使うのではなく、現実(外界)の認識に Deep Learning の技術を使うだけだ。この点、お間違えなく。
──
では、この方式の優れているところは何か?
「安価なカメラを使うだけなので、超高額の LiDAR を使わなくて済む。だからコストが非常に安く済む」
ということだ。このことを理由に、テスラはこの方式を採用している。Turing 社もまた同じ。
一方、この方式の劣るところは何か?
「現実を直接測定しないで、推定するだけなので、誤認の可能性が残る。99.9%のケースでは正しくても、残りの 0.1% では間違っているかもしれない。しかし、999秒では正しくても、1秒にはエラーが起こるのというのでは、危なっかしくて使い物にならない。1000秒に1秒ずつの認識ミスが起こるのでは、重大な事故が起こる危険がある。命を預けるには、信頼性が低すぎる」
つまり、あちらが立てばこちらが立たず。長所もあるが、短所もある。これではまずい。困った。どうする?
──
そこで、困ったときの Openブログ。うまい案を出そう。こうだ。
「 現実に3次元状況を測定しないで、2次元から3次元を推定する、という方式そのものが間違っている。そんなデタラメな方式が許されるわけがない。現実に3次元状況を測定するべきだ。しかも、そのためには、高価な LiDAR を使わずに、安価なカメラを使うべきだ。では、その方法は? ステレオカメラ方式だ」
ステレオカメラ方式のみが、「良いとこ取り」をすることができる。
・ 現実に3次元の状況を測定する。(推定ではない。)
・ 安価なカメラだけで済む。(高価な LiDAR は不要だ。)
特に、前者は有効だ。たとえば、次の状況がある。
「夜間の道路を走行中に、ずっと先の方で赤いランプが点滅している。そこまでの距離を知りたい。ただし、路面の状況は、よくわからない。近くの路面は、ヘッドライトで照らされているのでわかるが、遠くの路面は、真っ暗なのでわからない。単に、赤いランプが見えるだけだ」
この場合、Deep Learning 技術では赤い点しか認識できないので、3次元情報は得られない。
一方、ステレオカメラ方式ならば、赤い点の位置を画像内で知ると、二つのカメラの画像の差分を取ることで、赤い点の位置をかなり正確に知ることができる。その位置の時間的変化を追えば、その赤い点と自車との距離がどんどん縮まりつつあるのもわかる。かくて、自動ブレーキをかけるべきだという判断を下すことができる。
──
結論。
自動運転のために、Deep Learning の技術を使おう、という発想がある。
この発想自体は、悪くはない。だが、Deep Learning の技術を、「2次元情報から3次元情報を推定する」という目的のために使うのは、邪道である。3次元情報は、推定によって得るのではなく、実測によって得るべきだ。さもないと、エラーの危険性が残る。人の命を託すための方式としては、安全度が低すぎる。
自動運転においては、3次元情報はあくまで実測によって得るべきだ。そのためには、ステレオカメラまたは LiDAR を使うべきだ。LiDAR がコスト的に無理であるのなら、ステレオカメラを使えばいい。
テスラは Deep Learning の技術を、「2次元情報から3次元情報を推定する」という目的のために使ってきた。Turing 社はその方式を真似ようとする。だが、この方式がダメなことは先に述べたとおり。
自動運転に Deep Learning の技術を使おう、という発想そのものは悪くない。だが、その発想によるのなら、Deep Learning の技術は、運転技術にのみ適用するべきだ。測距機能に適用しようとするのは、本末転倒と言える。
なのに、テスラはそういう本末転倒の方式を取る。そのせいかどうかは不明だが、テスラの自動運転は、しばしば死亡事故を起こしている。それほどにも危険度の高いものだ。安全性が無視されているとも言える。
そして、そういうテスラの方式を踏襲しようとする Turing 社の方針は、根本的に間違っていると言えるだろう。(そもそも、テスラの物真似をしようという点で、独自の発想力がない。ただの柳の下のドジョウ戦略だ。馬鹿丸出し。)
──
本質。
Deep Learning の技術は、(人間の)大脳の思考を真似するものだ。そのことで昨今、大幅な技術的成果を上げることができた。それを見て、Deep Learning の技術を自動運転にも適用しよう、という発想が生じた。このこと自体は、なかなかセンスがいいかもしれない。
しかしそもそも、人間は外界を認識するとき、(2次元情報を得てから)大脳の思考によって認識しているのではない。直接的に3次元情報を感知しているのだ。そのためには、大脳の思考を使うかわりに、両目立体視という手法を使う。ここでは思考でなく、二つの目を使うということが大切だ。
なのに、その違いを理解できないで、Deep Learning の方式を使うのは、二つの目を使うかわりに、一つの目と想像力で外界を知ろうとするようなもの。
このようなことは、Deep Learning の使い方を間違えているとも言える。流行に乗ろうとするばかりで、物事の本質を理解できていないわけだ。トンチンカンであり、お門違いであると言える。
なお、両目立体視という直接的な方法を取らずに、大脳の思考に頼るという方法では、失敗する事例が生じる。そのことは、心理学では「錯視」という概念で説明される。錯覚の一種だ。その事例は、次の動画でもわかる。
エイムズの部屋 - Wikipedia
もちろん、これだけではない。「錯視」には、さまざまな例がある。それゆえ、外界の認識には、(単眼でなく)二つの目による立体視が必要なのだ。
[ 付記1 ]
「3次元情報はあくまで実測によって得るべきだ」と述べた。その理由を説明しよう。
そもそも、Deep Learning で得られる情報は、実測値でなく、推定値である。その推定値とは、過去のデータを学習することで得られたものである。つまり、過去における多数の同種のものから、類推的に得られた、想像上の値だ。それが現実の値と一致するという保証はない。99.9% では正しくとも、0.1%では正しくない、ということが起こりうる。
2次元データをいくら大量に学習しても、現実の3次元データを得ることはできないのだ。過去の地形をいくら大量に学んでも、新たな未知の地形を理解することはできないのだ。目の前の現実から、直接的に3次元データを得る方法があるのに、過去の記憶から推定するというのは、あまりにも馬鹿げていることだ。
なるほど、今はやりの Deep Learning を使う、という発想そのものはいい。しかし、その対象となる地形データは、2次元画像によって得られた推定値ではなく、実測された測定値であるべきだ。3次元の地形データを得るために、2次元の画像から類推で推定する、という方式は、Deep Learning の使い方としては、お門違いというものだ。それはいわば、言語AIを構築するときに、2次元画像のAIを使う、というようなトンチンカンさだ。あまりにも馬鹿げている。Deep Learning の本質をまったく理解できていない、と言えるだろう。
比喩的に言おう。大脳がどれほど学習して類推しても、直接的に目で見ることには負けるのだ。
人には二つの目がある。その二つの目によって外界の地形情報を理解できる。なのに、片目を閉じたまま、頭の理解だけで足を動かしていけば、いつかは認識ミスを起こして、事故を引き起こすだろう。人に二つの目があることの意義を、きちんと理解するべきなのだ。
[ 付記2 ]
なお、自動ブレーキのためだけであれば、対象との距離が縮まったことを知るだけで済むので、ミリ波レーダーを使うのでも済みそうだ。(ステレオカメラや LiDAR を使わないで。)
しかし、自動ブレーキだけでなく、自動運転をするためには、もっと詳しい3次元情報が要求される。そのためには、ミリ波レーダーでなく、ステレオカメラや LiDAR が必要装備となるだろう。
[ 付記3 ]
ステレオカメラ方式では、外界の三次元情報を認識できる。そのための方式は、昔の機械式のカメラにおける「二重像合致方式」というのと同様である。
この方式を取れば、闇夜のなかに浮かぶ赤い点の位置を知ることもできるし、白い空間のなかに浮かぶ黒い点の位置を知ることもできる。(一方、ミリ波レーダーや LiDAR では、黒い物体の位置を知ることはできない。対象が電波を反射しないからだ。)
[ 付記4 ]
結局、Turing 社はどうすればよかったのか? 簡単に言えば、こうだ。
「机上で開発するだけでなく、実車で走行テストをして、多大なデータを得るべきだった」
「ただし、ある程度の実車走行データが溜まったら、以後は、仮想空間の中でシミュレートすることで、実車走行のかわりとすることもできる」
ともあれ、前提としては、実車走行のデータをたくさん取ることが必要だ。この際、自動運転をしないで走行データを取るのではなく、実際に自動運転をしながら走行データを取ることが必要だ。そうしてこそ、自分たちの方式の欠点を知ることができる。
現実には、Turing 社は自動運転をしている実車データを取っていないはずだ。その金もあるはずがない。だとしたら、やっていることはすべて机上の空論であるにすぎない。
彼らが本気で自動運転を開発するつもりならば、数千億円ぐらいの出資を受けるべきだ。そうしてこそ、実車でテストできる。
それができないのなら、自主開発は諦めて、既存のメーカーに就職するべきだろう。あるいは、業務提携して、開発の下請けになるべきだろう。
[ 補記 ]
実は、「ステレオカメラ方式で、差分を取るために、Deep Learning 技術を使う」という方式も考えられる。脳は実際にそういうことをなしていると推定される。
ただし、この方式は計算量を多大に要する。普通の「差分を取る」という単純な計算方式の方が、計算量はずっと少なくて済む。
だから、「ステレオカメラ方式で、差分を取るために、Deep Learning 技術を使う」という方式が有意義かどうかは、何とも言えない。技術的には興味深いが、実現性は高くない。
【 追記 】
「ステレオカメラ方式で、Deep Learning 技術を使う」という方式を、すぐ上で紹介した。「ただし、この方式は計算量を多大に要する」とも述べた。
だが、よく考えると、CPU のかわりに GPU を使えば、処理を高速度で実施できる。たとえ計算量が大幅に増えても、それを上回る高速処理が可能になる。
とすれば、「ステレオカメラ方式で、Deep Learning 技術を使う」という方式が望ましい。これぞ名案……と思った。とはいえ、このくらいのことは、すでに他の人も思いついているだろう、とも思った。
そこで、ググってみると、まさしくそうだとわかった。すでにあちこちで開発中である。
→ アイサイトに深層学習、ステレオカメラどこまで進化 スバル寄稿 | 日経
→ ステレオカメラの領域にも深層学習が及んできている - Qiita
→ 深層学習モデルを用いたステレオカメラ画像による高精度な 3D 計測技術
とすれば、この方式が、今後は主流になりそうだ。これに比べると、Turing 社の方式は、はるかに時代遅れになる、と言えそうだ。スタートの時点で、周回遅れであり、今後はどんどん引き離されるばかり、となるだろう。本人たちは、そう気づいていないが。
実は鉄道模型の自動運転でステレオカメラ方式を考えています。距離識別ができるOpenCVのような公開ソフトがあったらご教示いただけると幸いです。
カラーでなくモノクロにすれば水平分解能が3倍になるとか、2K の 200万画素のかわりに 4K の800万画素のカメラを使うとか、そういうところにまで頭が及ばなかった。古い技術を前提としていた。
しかし、画面中央だけは高レートで処理して、中央以外は低レートで処理する、というふうに分割処理すれば、この問題は回避できます。そういう方式をしないせいで、困っていたのかも。あるいは、特許権の関係か。
マルチカメラ >> ステレオカメラ
なんじゃないかと思ってしまう。他にもあたってよく調べると、例えば Turing は、マルチカメラといっても、普通の画角のカメラと魚眼カメラ(超広角)の組み合わせなので、測距は難しい(やっていない、無理だ)とわかりました。
その測距の重要性についても、昔のレンジファインダーカメラに付いている距離計を持ち出したら混乱します。昔の距離計は、内部のハーフミラーやプリズムが実際に動いて、光学的視差を検出するやり方でしょう。物理的にはどこも動かない、単焦点カメラ2台の画像解析での視差検出とは違います。
それと、【 追記 】に書かれている記事は、コメントしようと思ったら先に書き込まれてしまいました。ただし、一つ目の富士通の記事では、「Deep Learning 技術を主に測距に応用した」という内容ではないように読めます。三つ目の記事とは、そこが大きく違うように思います。
最後に、細かい話ですが、[付記3]のところの「一方、ミリ波レーダーや LiDAR では、黒い物体の位置を知ることはできない。対象が電波を反射しないからだ。」というのは、事実とは違うのではないでしょうか。
→ https://x.gd/gxvJe
> 事実とは違うのではないでしょうか
厳密に言えばその通りだけど、細かい話は省略。電波黒体みたいに理解してください。可視光でなくて。
波長の違いがあるだけで、基本的には電波吸収という話で OK 。
要するに、「電磁波を反射しない物体は検知できない」と言っているだけです。色が(可視光領域で)黒かどうかは、表現の仕方の問題であって、本質的ではない。一種の比喩的表現です。
対比しているのは、「電磁波を反射しない物体をも測距できるステレオカメラ」であって、「黒」に対する「白」や「赤」が対比されているわけではない。