──
テスラの自動運転車の死亡事故があった。これについては、前にも2回述べた。
→ 自動運転車で死亡事故 1
→ 自動運転車で死亡事故 2
そのいずれにおいても、「単眼カメラ方式のせいだろう」と推定した。
──
さて。その後、「単眼カメラでは特徴抽出をしている」というコメントを得た。
→ 単眼カメラ方式の欠陥(自動運転) [コメント欄]
これを受けて、いろいろと考え直すうちに、新たにはっきりと結論を下すことができた。結論は同じで、
「テスラ車の自動運転の事故は、単眼カメラのせいだ」
となる。ただし、その根拠は、いっそうはっきりとする。ほぼ「断定」できるぐらいだ。そこで、以下では根拠を示す。
──
まず、重要なことは、単眼カメラ方式の測距方式だ。これは、
「画像で特徴抽出(輪郭抽出)をしてから、その輪郭部が時間経過のなかでしだいに拡大していく」ということを利用する。
1枚の画像を見ただけではわからないが、時間経過のなかで何十枚もの画像を見ていくと、対象の輪郭線は、次のように変化していく。
・ 最初は遠くの方で点があるだけ。
・ その点がしだいに大きくなって形を取る。
・ その形がどんどん大きくなると同時に、左右に流れていく。
こういうふうに輪郭の変化を見て、対象の位置(自分との距離)を推定する。
※ 歩いている人間が片目で立体視する場合も、同様だ。
さて。上記の方法で距離を知ることには、致命的な難点がある。その難点を二つ示す。
(1) 輪郭線がない
輪郭線がない場合がある。具体的には、ぼやけた画像だ。その実例は、本サイトの背景画像(灰色)だ。これはタイル画像だが、1枚だけ示すと、こうなる。

こういうふうにぼやけたものが対象としてあると、その対象には、輪郭がないので、輪郭抽出ができなくなる。かくて、単眼カメラでは、距離の測定ができなくなる。
( ※ この問題は、ステレオカメラでは生じない。ステレオカメラなら、輪郭があろうとなかろうと、構わない。まったくの無地では困るが、少しでもぼやけた模様があれば、ちゃんと測定できる。その証拠に、あなたは左右の目で、上記の画像の位置がわかるはずだ。くっきりとわかるわけではないが、ちゃんとわかる。ステレオカメラでも同様だ。)
(2) 1本の水平線
1本の水平線が、カメラと同じ高さにある場合には、対象との距離がわかりにくい。だんだん近づいても、単に「同じ水平線が同じところにある」と認識されるだけだからだ。時間的に画像が変化しても、輪郭線はずっと同じように見える。かくて、単眼カメラでは、距離の測定ができなくなる。
( ※ この問題は、ステレオカメラでは生じにくい。なるほど、ステレオカメラであっても、水平線というものはわかりにくい。しかしながら、ステレオカメラの場合には、「輪郭抽出」をしない。生のままの画像を扱う。すると、運転者が対象にどんどん近づくにつれて、対象の水平線画像は垂直方向に少しずつ拡大していく。抽出された輪郭線は変化がないとしても、生画像の水平線は少しずつ変化が生じる。それゆえ、ステレオカメラならば、生画像を処理することで、対象との距離を測定できるだろう。)
──
以上の二つのことは、次の画像を見ると、うまく適用できる。
( ※ ただし、赤と白の交替する横線はないものと考える。)

テスラ車がこのトラックに近づいたとしよう。トラックは道路を横断しており、そのトラックにテスラ車がどんどん近づく。
すると、どうなるか?
(i)
単眼カメラの画像の上半分には、トラックの白い側面が見えるだけだ。この白い側面に対しては、特徴抽出ができない。ゆえに単眼カメラは無効化する。当然、距離の測定はできない。
(ii)
単眼カメラの画像の中央には、横線が見えるはずだ。これは、トラックの側面の下端である。上半分は白で、下半分には遠景が見える。その中間には、横線が見える。(トラックと遠景との境界線だ。)
この横線は、特徴抽出したあとでは、ずっと同じように横線が見えているだけだ。トラックが左右に移動しても、横線は変わらない。
また、テスラ車が近づいたとき、単眼カメラの高さと、トラックの下端の高さが、どちらも同じであれば、横線の上下位置も変わらない。したがって、単眼カメラの画像では、対象との距離の測定ができなくなる。
(iii)
単眼カメラの画像の下半分には、遠景の情景が見える。(トラックの横腹の下に見える。)
すでに、(i) (ii) では、単眼カメラが無効化しており、何ら情報を得られなかった。そこで、(iii) の情報だけが残る。したがって、単眼カメラは、「対象との距離は無限遠」というふうに認定する。
かくて、自動運転車は、「減速せずに高速走行」という指示を出す。そして、トラックの横腹(の下端)に衝突する。
これが、事故の原因だ。
──
以上で、整合的に理解できる。というわけで、
「テスラ車の事故原因は、単眼カメラという方式にそなわる根源的なものだ」
と結論できる。
[ 付記 ]
この問題を解決する方法は、二つある。
一つは、ステレオカメラを使うことだ。この場合は、特徴抽出をせずに、生データを使えるので、距離の検出はずっと容易になる。今回も、ステレオカメラを使っていれば、事故は起こらなかっただろう。
もう一つは、単眼カメラの解像度を大幅に高めることだ。CMOS の 4000万画素程度では、画素のざらつきがひどい(偽色が発生する)ので、まだ実用的ではないだろう。しかしながら、シグマというカメラ会社の3層イメージセンサーならば、ざらつきがない(偽色が発生しない)ので、高精度となる。この3層イメージセンサーを使えば、単眼カメラ方式でも、ステレオカメラ並みの精度を出すことができるだろう。
ただし、以上の方式を比べると、単眼カメラ方式は圧倒的にコストが高い。
・ 解像度を大幅に高める必要がある。
・ 偽色が発生しないような特別なイメージセンサーを使うべき
つまり、非常に高級なイメージセンサーが必要となるので、ステレオカメラに比べて、何倍もの高コストになる。そして、それというのも、「特徴抽出」なんていうことをして、事後的に圧倒的に解像度を下げてしまうからだ。
ステレオカメラならば、たった1画素分のズレがあるだけでも、それによって距離を測定することが可能となる。(ただの1画素だけだと駄目だが、数十もの画素が連続する縦線ならば、左右方向には1画素分のズレがあるだけで足りる。)この1画素分のズレは、ステレオカメラの二つのカメラの間隔を調整することで、いくらでも検出感度を高めることができる。スバルならば、間隔が 35cm もあるので、十分な検出感度を得られる。(ただし、スズキのステレオカメラは、間隔が 20cm しかないので、性能が低い。安かろう悪かろう、だ。)
単眼カメラだと、どうか? まずは特徴抽出という操作が必要となる。常識的には、四角のような形を検出するには、最小でも縦横3ドットが必要だが、それではノイズと区別しがたい。実際には、縦横 10ドットが必要となるだろう。面積では 100倍だ。というわけで、単眼カメラ方式で、ステレオカメラ方式と同程度の検出感度を得るには、ざっと見て 100倍の画素数が必要となる。100倍の画素数を得たあとで、特徴抽出をして、(ステレオカメラの)1画素分ぐらいの距離データを得るわけだ。
ま、やたらとコスト高になる。
結論。
単眼カメラは、特徴抽出をするので、検出感度が 100分の1ぐらいしかない。これを補うには、イメージセンサーで 100倍ぐらいの解像度を取るしかない。そうなると、大幅にコストアップとなる。
現実には、大幅なコストアップは呑めない。したがって、解像度は低めとなる。その結果、検出感度が低下して、低い速度までしか自動ブレーキは有効にならない。
──
とはいえ、現実には、マツダのアクセラは、かなり優秀な単眼カメラ方式を取っている。
→ マツダ・アクセラの自動ブレーキ
これはどうも、CCD の解像度が、近年は急激に向上したせいだろう。
または、もしかしたら、3色カラーをやめて、モノクロにしたのかもしれない。これだと、解像度は一挙に3倍となるな。
ただ、マツダアクセラの単眼カメラでも、対象がぼやけた輪郭線しか持っていなければ、特徴抽出が不可能となり、衝突することは十分にあるだろう。
たとえば、土手にぶつかるとか。あるいは、目の前にある壁にぶつかるとか。
単眼カメラ方式には、難点が多すぎる。ただの自動運転(ハンドル操作)ぐらいなら任せてもいいが、自動ブレーキを任せるには信頼性が低すぎる。命を預けられるほどの信頼性はない。
【 追記 】
単眼カメラ方式で、遠方への精度を高める方法がある。それは、
「望遠レンズを使う」
ということだ。これならば、遠方に対する解像度が上がる。遠くの物体に対しても、精度良く、距離を測定できる。
では、それでOKか? 残念ながら、そうではない。望遠レンズを使うと、解像度が上がるが、同時に、画角が狭くなる。対象となる物体の範囲が狭くなる。そういう難点がある。
上のテスラ車の場合で言うと、うまく行けば水平線部分を検出できるが、下手をすると、白色の側面ばかりを見ることになって、何も検出できなくなる。(範囲が狭いので。)
そういうマイナス点(短所)があるので、「望遠レンズを使う」というのは、一長一短だ。「これを使えば万事うまく行きます」というようなものではない。
【 関連項目 】
→ 日産セレナの自動運転は欠陥品

ちなみにシグマ社はFoveonセンサーを開発、製造しているわけではなく、買ってきたものを組み込んでいるだけです。ベイヤーグリッドでも、Foveonでもない方式として、昔のビデオカメラでは3板方式もありました。
文中にもありますが、人間が3原色でフルカラーを認識しているからと言って、自動運転のセンサーが3原色必要とは限りません。少なくできるかもしれません。逆に道路の白線やトンネルのナトリウムランプなどに合わせた感度特性のセンサーを揃えていくと、3原色で足りなくなる日が来るかもしれません。問題は、人間向けの3原色ベイヤーグリッドセンサーが一番安いので、みなそれを使うことですね。
http://j.mp/2bQEedk
Google の検索結果 2位
http://j.mp/2bIjOpI
(1)
まず、何度も指摘している通り、コントラスト問題は単眼複眼双方とも同条件です。
多くのイメージセンサーは60dbとか65dBとか謳っていますが、これはDSNU(暗時ノイズ)測定によるS/N比で、実際の明光時は45dBくらいが関の山です。
分かりやすく256諧調とすると、256digitのうち1〜2digitはノイズ成分です。そのため、フルレンジの10%(25digit)以下の違いでは確からしさが低いと判断します。特に人命に直結する機器の場合は安全方向に動く傾向があります。
よって、管理人さんが例示したタイルの例はアバウト過ぎてアウトです。
この一点をもってコントラスト起因説は否定できます。人間の目で分かっても、機械のアタマではわかりません。見ればわかるじゃんは話にならないです。
ではどうすればいいのかというと、コントラストを上げればいいのです。そうすれば単眼、複眼共に解決します。その方法は以前に書きました。
(2)
CPUが車の画像見て車と判断できますか?
背景から障害物を抜き出す処理はどちらの方式でも必要です。
(3)
べイヤー配列は、どの4画素を選んでも必ず'R'、'G'、'B’があるのをご存じないのでしょうか?ここまで言ってピンと来ないのなら論外です。
全然関係ないですが、偽色補正の重さで言ったらベイヤー>>>3板式>3層式ですが、全くナシは無理でしょう。例えテレセン使ったとしても。
(4)
地平線の例は、単眼より複眼が精度出せますが複眼にも限界が有ります。遠方に行けば行くほど位相角は小さくなり、単フレームでの判別が不可能になります。
と言うか、単眼カメラを攻撃するなら、全く逆の近距離を言うのがセオリーです。その意味で管理人さんは分かっていない。
本当は、この話は別の切り口で言いたいのだけど、それは止めます。あくまでもカメラシステムの観点だけで話をします。
(5)
望遠はアリですが・・・本当は別の(以下略)
(6)
イメージセンサには個体差が有ります。嘘だと思うのなら「クラスタなしで売って」と業者に言ってみてください。絶対に見積もり書来ないから。
私は過去に一度「クラスタなんか論外、単一欠陥もメジャーは不可」という条件で見積もり依頼出したことが有りますが、milion行くぞと笑われました。
何が言いたいかと言うと、ステレオはステレオで双方の個体差を消す処理が入るから、それぞれのカメラで見るとコントラストが悪くなる方向に行きます。
(7)
ステレオを否定していません。実使用範囲では単眼で充分と言っているだけです。その根拠を書き込んでいます。
管理人さんは分かってると思うけど、日産や日産のティア関係者でもありません(笑)
でも、全くの無関係ってわけでもないね。
> コントラスト問題は単眼複眼双方とも同条件です。
コントラストなんて関係ないです。たとえば、白と黒という 100%のコントラストのある画像があるとする。これがなだらかなグラデーションだと、境界線がないから、特徴抽出ができない。
私の言っているのは、グラデーションの話(段差の有無の話)であって、コントラストの話じゃないです。
白か黒かは関係ない。白と黒のつながりが、連続か断続か、ということです。
> コントラストを上げればいいのです
コントラストを上げても、グラデーションの問題は解決できません。勝手に変なところで境界線が引かれるだけだ。
これは、特徴抽出をするか、単純に画像の差分を取るか、という違いです。コントラストなんて、全然関係ない。
> CPUが車の画像見て車と判断できますか?
車と判断する必要はない。道路上に何らかの物体が置かれているというだけで、危険を察知できます。
逆に言えば、道路上に置かれているものが車であるとかないとか、いちいち理解しないと危険性を察知できないのが、単眼カメラ。利口すぎるせいで、かえって無能になる。結果は、衝突だ。
> 背景から障害物を抜き出す処理はどちらの方式でも必要です。
まったく必要ない。ステレオカメラなら、単に何かが存在していると検知すれば十分であり、その何かが何であるかを認識する必要はない。
道路上に何かがあって衝突するとわかればブレーキをかければいい。たとえそれが風船であろうと、ただの白煙であろうと、あるいは炎であろうと、とにかく何かがあれば、停止するべきだ。それがステレオカメラ方式だ。対象が何であるかを知る必要はない。
また、対象が花火みたいな分散した点集合であっても、同様だ。その点がどのように分散しているかという形状を知る必要はない。単に「何かがある」と検知しただけで、ブレーキをかける必要が生じる。
> 単眼カメラを攻撃するなら、全く逆の近距離を言うのがセオリーです。
自動運転(ハンドル操作)なら単眼カメラがいいが、自動ブレーキはステレオカメラで、というのが私の主張です。お間違えなく。
近距離は関係ないです。近距離になってから気づいて自動ブレーキをかけても、どっちみち衝突は不可避なので、手遅れです。
自動ブレーキに関しては、近距離のことは無意味です。
あと、単眼カメラを全否定しているわけではありません。ステレオカメラなら、片方だけを取ることで、単眼カメラとして使えます。2は1を兼ねる、ということです。(大は小を兼ねる。小は大を兼ねない。)
> イメージセンサには個体差が有ります。
全然問題ないです。個体差は、常に一定のバイアスなので、CPU で吸収できます。
左右の差分 fR(t) - fL(t) を関数 ψ(t) と置けば、これは時間に依存する関数です。時間の差分を Δψ(t) = ψ(t1)-ψ(t2) とすれば、ψ(t) にバイアスがかかっても、そのバイアスは定数(c) なので、Δψ(t) のなかでは差し引きされて、消去されます。
左右の差の時間変化を見る限りは、定数であるバイアスは自動消去されるので、問題ないのです。
あと、個体差については、「較正」という手法で補正できます。あまり気にする必要はありません。……というか、こんなことを知らないとすると、あなたはプロだとは思えないんだが。
それ故、自動ブレーキシステムも、かじょうけんしゅつ
過剰検出は重大なクレームを招く為、避けなくてはいけません。管理人さんの言われるような、あやふやな「何かある」でブレーキ掛かっては欠陥車と同じです。
背景と障害物は見分ける必要があります。
そりゃ、当り前ですし、実際に見分けますよ。
背景ははるか遠くにあってぶつからない。
障害物は道路上にあってぶつかる。
距離が全然違うんだから、区別されます。
> 過剰検出は重大なクレームを招く為
過剰だという理由は? 具体的な実例を示してください。
たとえば、白煙または炎が道路上に噴出していたとしたら、それを無視していい(ブレーキをかけなくていい)というのですか?
無視していいとしたら、せいぜい、「小さな紙が右から左へ流れていた」ということぐらいでしょう。この場合は、対象のサイズの小ささと時間経過から、「無視可能」と判断できます。
一方、大きな段ボール紙が、ずっと同じ位置で立っていたなら、無視するべきではありません。
あと、単眼カメラには、対象を判定する機能なんかないですよ。ディープラーニングによる画像認識ならともかく。
直線の有無によって自動車か否かを判定するとしたら、人間や動物や乳母車や三輪車などを認識できなくなって、とんでもない交通事故が起こります。
私は撮像部としての単眼とステレオの違いを言ってるし、何回も眼は眼、頭は頭と言ってるでしょ。意図的に混同させるのはフェアじゃないよ。
第一、管理人さんは特徴抽出など必要ないと言っておきながら、今度は見分けると。何が言いたいのかわからない。
一つは、操作すれば止まること。もう一つは?操作しないときに止まらないこと。ですよ。
自動ブレーキは操作者の意図しない動作ですから、運用には慎重にならなきゃだめです。技術力が低いのか設計思想なのかはわかりませんが、どちらかというと日産車はドライバーをサポートするという方向性が強いですね。事実、比較動画を見ても、アラート発生は他社と比べて遜色ないですが、そこからエマージェンシーブレーキに移るまでに時間を掛けてるようです。
お前が責任者なんだからお前判断しろと言ってるようですね。
まあ、始まったばかりの技術に完成度を求めるのは我々日本人の悪いクセです。
私は撮像部じゃなくて、システム全体のことを言っています。「単眼カメラ方式」というシステム。
眼のことを言っているんじゃない。眼を使ったシステム全体のことを言っている。
> 特徴抽出など必要ないと言っておきながら、今度は見分けると。何が言いたいのかわからない。
単眼カメラ方式がシステムとして作動するには、(Mobileye 社の)特徴抽出が必要だ。しかし自動ブレーキとしては、その方式では不完全な性能しか出せないので、自動ブレーキとしては、(Mobileye 社の)特徴抽出方式を取る(現在の)単眼カメラ方式はよろしくない。ステレオカメラ方式や、(単眼カメラで)ディープラーニング方式を取るべきだ。
※ ディープラーニングにおける特徴抽出もあるが、これは、Mobileye 社の方式よりも圧倒的に高度なもの。
いやいや。特別な急ブレーキならばともかく、ゆっくり止まるのである限り、ブレーキは過剰気味に働かせても大丈夫です。自動車は停まったことで死ぬことはない。しかし、走り続けて衝突することで、死ぬことはあるし、死なせることもある。
安全面から、「不明なときには(ゆっくり)ブレーキ」であるべきです。その後、接近するにつれて、対象物がどんなものであるかを確認すればいい。対象物が危険性があると判明すれば、さらにブレーキをかける。そうでなければ、ブレーキを解除する。不明の場合には、とりあえず少しブレーキをかけるべきです。
「わからない場合にはとりあえず自動車を突っ込ませる」というあなたの発想は、自動車運転の基本に反します。そのうち死ぬかも。
> 始まったばかりの技術に完成度を求めるのは我々日本人の悪いクセです。
自動ブレーキが未熟なのに、その先の自動運転に手を出す、という安全思想の欠落を問題にしている。「技術的な完璧さを求めている」わけじゃない。「安全思想のデタラメさ」を批判している。
比喩的に言えば、ドラムブレーキしかないのに、「500馬力で時速 300km を出せる高性能車です」というのを発売するようなもの。頭がイカレているとしか思えない。止まる機能がないのに、スピードだけ出して、どうする。完成度がどうのこうのという問題じゃない。安全思想の問題だ。
例:前方路肩の停止車両・落下物等
これは、ハンドルを操作することによって、スピードを落とす量を少なくしているともいえます。
これに対して、仮にカメラ(システム)が障害物と思われる物を検出し、ドライバーの判断を無視して「緩やかな」自動ブレーキを「勝手に」かけるのは
ドライバーにとっては大きなお世話機能で大変扱いずらい車になります。
そうゆう意味では、通りすがりさんの
>一つは、操作すれば止まること。もう一つは?操作しないときに止まらないこと。ですよ。
>自動ブレーキは操作者の意図しない動作ですから、運用には慎重にならなきゃだめです。
のご意見は決して間違いではないです。
自動ブレーキは、緊急回避が必要な場合にのみ動作するのが良いとおもいます。
> 例:前方路肩の停止車両・落下物等
いやいや。上記の例では、ハンドル操作と同時にやるのは、エンジンブレーキであって、普通のブレーキではないはずです。
自動ブレーキが働くのはあくまで「衝突が不可避」と判定されるほどの近距離に近づいた場合だけです。
上記の例では、近距離ではなく、かなり手前でふ(アクセルによって)減速しながらのハンドル操作です。ブレーキが必要となる場面ではありません。
一般に、ブレーキをかけながらハンドル操作をすることは危険です。素人がやると、スリップすることもあります。
あと、ハンドル操作によって方向を転じて、衝突が回避される場合には、自動ブレーキは自動解除されます。特に問題ないでしょう。
の
>不明なときには(ゆっくり)ブレーキ
はエンジンブレーキをさしているのですか?
これは自動ブレーキに該当するの???
>あと、ハンドル操作によって方向を転じて、衝突が回避される場合には、自動ブレーキは自動解除されます。特に問題ないでしょう。
いえいえ、ドライバーが意図しないブレーキがかかること自体が問題だと言っているのです。
これが理解できないかなあ・・・
本項はあくまで、単眼カメラとステレオカメラの話です。細かい例外的なケースのことまでいちいち論じていられない。実装の話は別です。
> ドライバーが意図しないブレーキがかかること自体が問題だ
それは実装の段階でいくらでもチューニングができるので、本項とは関係ありません。