テクノロジー

オプティカルフローとは?

屋内では、ドローンに位置を教えてくれる衛星の信号が届きません。代わりに使われる工夫の1つは、どんなドローンよりも古くからあるものです。床が流れていくのを見ることです。この見かけの像の動きはオプティカルフローと呼ばれ、ミツバチも、パソコンのマウスも、小型ドローンも使っています。

要点:オプティカルフローとは、画像の中の模様が、あるフレームから次のフレームへ動くことです。カメラを下に向けたドローンには床が流れていくのが見え、自分の高さがわかっていれば、それを自分の速度に換算できます。傾きによって生じる動きは、ジャイロスコープで取り除きます。安く、軽く、速く、衛星測位が使えない場所でも働きます。ただし、追いかけるための模様、十分な明るさ、正確な高さの値が必要で、小さな誤差は時間とともに積み重なります。

流れていく世界

電車の窓から外を見ると、近くの柵は飛ぶように過ぎ去り、遠くの丘はゆっくりと動いていきます。このように景色があなたの目に対して、あるいはカメラの画像の上で動いて見えることが、オプティカルフローです。たくさんの点で測ると、画像の各部分がどちらへどれだけ動いたかを示す、小さな矢印を一面に並べたものになります。

これを測るのは、思ったより難しいことです。Horn と Schunck が1981年に指摘したように、1つの点の明るさからは測定値が1つしか得られませんが、画像の中の動きには2つの方向があります。そのため手法には、追加の仮定が1つ必要になります。2人が置いた仮定は、画像のほとんどの部分でフローがなめらかに変化する、というものでした。その後の多くの手法が、この考え方を土台にしています。

フローから速度へ

真下を向いたカメラには、床が動いて見えます。同じ速さでも、高さ20cmなら床は飛ぶように過ぎ、2mならゆっくり流れていきます。そのためドローンは、像の動きを秒速何メートルという速度に換算するために、距離センサーで測った自分の高さを必要とします。自分の傾きも差し引かなければなりません。ドローンが動き出そうとして傾くと、ドローン自体が動くより先に床が動いたように見えるからです。この回転をジャイロスコープで測り、取り除きます。

Honegger らが2013年に発表した、オープンソースでオープンハードウェアの設計は、この手順をまるごと1枚の小さな基板に載せました。光に敏感なカメラチップ、マイコンで1秒間に250回計算するフロー、ジャイロスコープによる回転の除去、超音波センサーによる距離の測定を組み合わせ、小型ドローンで実際に飛ばして示しています。著者たちは、パソコンのマウス用のチップでつくられたそれまでのフローセンサーには、屋内や屋外の典型的な薄暗い状況で得られる以上の光が必要だったと指摘しています。

ミツバチは、ずっと前から

ミツバチは、花がどれだけ遠くにあるかをどうやって知り、ダンスで巣の仲間に伝えているのでしょうか。ある説は、飛ぶのに使ったエネルギーを測っているのだとしました。別の説は、景色が目の上をどれだけ動いたかで判断しているのだとしました。Srinivasan らは、ミツバチに短くて狭いトンネルの中を飛んで餌まで行かせ、そのあとのダンスを観察することで、2つの説を検証しました。2000年に発表された結果は、ミツバチの「オドメーター(距離計)」を動かしているのは視覚だ、というものでした。

光学式マウスも、より小さなスケールで同じ原理を使っています。底面にある小さなカメラが、机の表面が動くのを見ているのです。

うまくいかない場面

Alkyon の設計

Alkyon は、家の中を飛ぶコンパニオンとして私たちが構想しているコンセプトです。下向きのオプティカルフローセンサーを、64ゾーンの下向き深度センサーと並べて備える設計で、どれだけ速く動いているかと、どれだけの高さにいるかの両方がわかるようにしています。私たちのシミュレーションでは、こうしたセンサーが生む誤差をモデル化しています。その誤差が積み重なったドリフトは、家具の近くを飛ぶうえでの主な未解決の課題の1つです。開発中のコンセプトで、ヨーロッパ向けのみです。屋内ドローンのナビゲーション(英語)。

出典(2026年11月4日閲覧):Horn、Schunck「determining optical flow」Artificial Intelligence、1981年。Srinivasan ほか「honeybee navigation: nature and calibration of the “odometer”」Science、2000年。Honegger ほか「an open source and open hardware embedded metric optical flow CMOS camera for indoor and outdoor applications」IEEE ICRA、2013年。一般的な情報です。

よくある質問

ドローンのオプティカルフローセンサーとは何ですか?

下を向いた小さなカメラで、床がどれだけ速く流れていくように見えるかを測ります。距離センサーで測った高さと組み合わせると、地面に対するドローンの速度がわかり、衛星測位の届かない場所でもその場でホバリングしやすくなります。

オプティカルフローに距離センサーが必要なのはなぜですか?

同じ速さでも、床に近ければ速く、遠ければゆっくり動いて見えます。像の動きを速度に換算するには、ドローンの高さが必要です。また、ジャイロスコープで、移動ではなく傾きによって生じた像の動きを取り除きます。