HeadlinesBriefing favicon HeadlinesBriefing.com

N二乗ピザ問題:3Dスキャンマッチングのメモリ罠

Towards Data Science •
×

12インチのピザは8インチのピザの1.5倍ではありません。2.25倍です。これはピザの面積が半径の2乗に従うからです。人々は一般的に面積や、線形境界よりも速く成長するものについて直感が乏しいです。だからピザ店は直径で価格を設定し、客は食べきれないピザを確実に買ってしまうのです。同じ直感の失敗が、あるクライアントの3Dスキャンマッチングパイプラインにほぼ1年間存在していました。それによりフリートの各ワーカーでメモリが2倍消費されていました。スコアリングコードのどこかに、要素ごとに1行1列のテーブルがありました。そのコードを読んだ人は全員リストを見ていましたが、正方形を見るべきでした。パイプラインは2つのサーフェススキャンを整列させ、一方を他方から引き、残ったものを検査します。2つのスキャンが同じオブジェクトのものであれば、残りは何もありません。あるクラスのスキャナーには既知の障害モードがあります:オブジェクトに平らな面がある場合、スキャナーは時々浅いピラミッドを記録します。データに残されたままになると、それらのピラミッドは実際の幾何学的な違いのように見え、真のマッチが拒否される原因になります。したがって、2つのアイテムをマッチングとしてマークする前に、残ったシェルがピラミッド型かどうかを確認します。そうであれば、ピラミッドの部分はマッチの証拠として見なされるのではなく、オブジェクトから削除されます。ピラミッドの検出はその平らな底面を見つけることを意味し、スコアラーはサーフェスの向きを見ることで底面を見つけます。メッシュ上の各三角形には法線(三角形の平面に垂直な方向の単位)があり、平らな底面の三角形はすべてほぼ同じ方向を向いています。スコアラーは法線をクラスタにグループ化します。次に各クラスタがどれくらい広がっているかを測定します。最もタイトなクラスタが底面の候補であり、その広がりが閾値未満であれば底面は受け入れられます。広がりこそが2乗が潜んでいた場所でした。これはクラスタ内の法線の各ペア間のコサインの分散として定義されていました。これは完全に合理的な広がりの尺度であり、コサインは高速で計