コンピュータはどのように植物を3Dで見るのか

less than 1 minute read

Published:

前回の記事では、 手作業で植物を測ることの問題を挙げました。規模に耐えず、ばらつき、最も正確な 方法は植物そのものを壊してしまう。そこで素直な解決策は、植物ではなく写真を撮り、 その写真を測ることです。

しかし写真は平面で、植物は立体です。では、どうやって一方から他方へたどり着くの でしょうか。

二つの目と、距離

まず、誰もが無意識にやっていることから始めます。顔の前に指を一本立て、片目ずつ 交互に閉じてみてください。背景に対して、指が横に跳ぶように見えます。

この「跳び」が、話の核心です。

私たちの両目は約6センチメートル離れた位置から世界を見ているため、それぞれが わずかに違う像を得ます。近い物体は二つの視点間で大きくずれ、遠い物体はほとんど ずれません。脳はこのずれの大きさを読み取り、奥行きの感覚に変換しています。

コンピュータも同じ仕掛けを使いますが、一つ条件が緩みます。二つの視点は同時刻で ある必要も、固定された一対の目から得られる必要もありません。カメラを一台、別の 位置へ動かせば、それが二つ目の視点になります。

植物のまわりを歩く

つまり手順はこうです。歩いて回りながら、多くの位置から植物を撮影する。

三段階:植物のまわり5か所からの撮影、2枚の写真間での同一特徴点の対応付け、そこから得られる3D点群。
三手で表した流れ。多くの位置から撮影し、複数の写真に現れる点を 見つけ、その繰り返し現れる点の幾何によって、すべての位置関係を確定させます。

次にソフトウェアが探すのが特徴点(feature)です。別の写真でも同じものだと 見分けられる、小さく際立った部分——葉の先端、茎の切れ込み、土の表面の斑点。 二度見つけられる程度に、視覚的に特徴のあるものです。

そして対応付けが始まります。写真12のこの部分は、写真13のあの部分と同じ物理的な 一点だろうか。これを何千もの特徴点と何百枚もの写真について行うと、注目すべき ことが起こります。

対応が一つ決まるたびに、条件が一つ加わります。ある点が一方の写真ではここに、 別の写真ではそこに写るなら、二台のカメラは互いに、そしてその点に対して、特定の 位置になければ計算が合いません。条件が十分に積み重なると、それらすべてを満たす 配置は一つに絞られます。ソフトウェアはその配置を解き、各写真がどこから撮られたか各点が空間のどこにあるかを同時に復元します。

これが Structure-from-Motion(動きからの構造復元)です。出力は点群 (point cloud)——3D空間に浮かぶ無数の点が、まとまって植物の形をかたどります。

落とし穴

ここからが、多くの人が意外に思う部分であり、私の研究が存在する理由です。

この復元は、一点を除いてすべてにおいて忠実です。比率も、形状も、幾何も正しい。 しかし大きさは決まりません。

理由を考えてみてください。この過程の条件はすべて、写真どうしの比較から生まれて います。写真と物差しを比べる工程は、どこにもありません。遠くから撮った大きな株と、 近くから撮った小さな株はまったく同じ画像になります。ですから画像の中に、両者を 区別できるものは何もないのです。

したがって復元結果は任意単位で出てきます。未知のスケールにおける完璧なモデルで あり、「未知」とは、再構成のたびに違う値になりうるという意味です。同じ株、火曜と 金曜、二つの異なるスケール——そのスケールを固定しない限り、センチメートルでの 計測に意味はありません。

一般的な対処は、チェッカーボードのような既知の大きさの物体を場面に置き、それを 基準に較正することです。これは有効に働きます。同時に、稼働中の温室で、毎回、 誰かがその基準物を設置し維持し続けなければならない、ということでもあります。

もう一つの道は、スケールを必要としない方法にしてしまうことです。次回はそれを 扱います。


連載の次回:Gaussian Splat とは何か、そしてなぜ葉の多い植物にはメッシュより 適しているのか。