Photometric stereo

光を動かして、
面の向きを測る。

フォトメトリックステレオ(照度差ステレオ)は、カメラも試料も止めたまま、 光の向きだけを変えて複数枚撮る方法です。明るさがどう変わったかから、 画素ごとに面の向き = 表面法線を解きます。

形を三角測量で測るステレオや構造光とは、原理そのものが違います。 このページは、その違いを読むのではなく触って確かめるためにあります。

同じ硬貨の表面法線マップ。面の向きを色で符号化したもので、金属光沢に沈んでいた肖像のレリーフ、周縁の「ELIZABETH II DEI GRA REG FID DEF」の文字、外周の点列が、輪郭まで立ち上がっている。
英国 2 ポンド硬貨を通常のカメラで撮影した画像。金属光沢の反射で表面が平坦に見え、肖像の細部や周縁の刻印は読み取りにくい。
Live Surface Normal

ドラッグして比べる

このページでは、この 1 枚の硬貨だけを使います。同じ 1 回の撮像から どこまで取り出せるのかを、最後まで同じ被写体で追いかけるためです。

Experiment 01

光は、あとから決められる。

下にあるのは写真ではありません。FORESIGHT STEREO が実測した表面法線 n とアルベド(反射率)ρ から、 I = ρ (n · l) をブラウザ上でその場で計算して描いた画像です。 光の位置 l を動かしてみてください。

光の位置 l = (0.00, 0.00, 1.00)

中心=真上から。外周へ行くほど浅い角度から。パッドの上をドラッグしても、 画像の上を直接ドラッグしても動きます。

135°

38°

これが「照明不変」の意味です。

1 回の撮像で nρ を持ってしまえば、 照明はあとからいくらでも作れます。裏を返せば、 法線そのものは光の当て方に左右されないということです。

現場の照明が変わっても、外光が差し込んでも、面の向きという物理量は変わりません。 当社が中核に据えているのは、この性質です。

生成ではなく、計算です。

ここで動いているのは、実測した物理量に I = ρ (n · l) を当てただけの 算術です。もっともらしい絵を作っているのではありません。 同じ入力に同じ光を与えれば、何度やっても同じ画素値になります。

※ Lambert(拡散)反射だけを仮定した再照明です。実物の金属面に出る鏡面反射のギラつきは 含んでいません(→ 苦手なこと)。

The equation

1 画素に、1 組ずつの
連立方程式。

照明の向き l は分かっている。撮れた明るさ I も分かっている。分からないのは、その画素の 面の向き n と反射率 ρ です。

Ii = ρ ( n · li )     i = 1 … N

g = ρn と置くと、これは g について線形になります。 未知数は 3 つ。だから最低 3 枚。3 枚あれば画素ごとに解け、 |g| がアルベド、g / |g| が法線になります。

解いているのは画素ごとに独立した 3 元連立方程式だけです。 だから出力の解像度はカメラの画素そのままになります。 対応点を探すステレオや、パターンを投影する構造光のように、 探索窓の大きさやパターンの粗さで分解能が決まる、ということがありません。

フォトメトリックステレオの撮像配置 カメラは試料の真上に固定し、試料も動かさない。試料の周囲に配置した複数の照明を 1 つずつ順に点灯し、そのたびに 1 枚ずつ撮像する。撮像位置が変わらないので、得られた画像は画素単位でそのまま重なる。 試料(動かさない) カメラ(固定) l1 l2 l3 l4

カメラと試料は固定したまま、照明だけを 1 つずつ切り替えて N 枚撮る。 撮像位置が動かないので、N 枚は画素単位でそのまま重なる。

Experiment 02

3 枚に満たないと、
答えは決まらない。

照明の数 N を動かしてみてください。 N 枚から法線を解き直し、実測の法線とのずれを平均角度で出します。 未知数 3 つに対して式が足りているかどうかが、そのまま絵に出ます。

解き直した法線(面の向きを色で符号化。硬貨の中央部を切り出しています)

4 枚

入力に使っている画像

この N 枚は、実測の nρ から 同じ式で作った模擬画像です(撮影画像ではありません)。 明るさに ±5% の一様乱数を観測ノイズとして加えています。

実測の法線とのずれ

 

実測の法線(答え合わせ用)

N = 1, 2 ── 式が足りない。

未知数 3 つに対して式が 1 本・2 本では、法線は一意に決まりません。 N = 1 では全画素が照明の向きを向いた一様な面になり、硬貨は消えます。 N = 2 では形は出ますが、決まらない 1 方向が抜けたまま歪みます。

N ≧ 3 ── 解けて、そのあとは強くなる。

3 枚で解けます。それ以上は、最小二乗でノイズをならすために効きます。 誤差が 3 枚以降もじわじわ下がるのは、分解能が上がっているのではなく ノイズに強くなっているからです。実機で照明を多めに置くのは、この理由と、 影に入った画素を捨てても残りで解けるようにするためです。 当社の装置では、エリアカメラ構成の TR-100 が 8 方向、 ラインスキャン構成の TR-300 が 4 方向です(→ ラインスキャンカメラとは)。

Four outputs

ρ と n が分かれる、
というのはこういうことです。

式を解いた結果は、そのまま製品の出力になります。 1 回の撮像から、4 つの見方が同時に立ち上がります。

英国 2 ポンド硬貨を通常のカメラで撮影した画像。金属光沢の反射で表面が平坦に見え、肖像の細部や刻印は読み取りにくい。
01 / Live

人の目に見える、そのままの像。

基準となる通常撮像。反射も影もそのまま残る。

2D Texture 出力。照明による陰影と反射が取り除かれ、素材そのものの反射率だけが残っている。外周リングが内側の円より明るく、バイメタルの境界が反射率の差として現れている。
02 / 2D Texture

式の ρ = 素材の明るさ。

陰影を捨てた albedo。体験①で「アルベドを外す」と消えたのが、この情報。

3D Surface 出力。反射率の情報が消え、肖像のレリーフ、周縁の刻印、表面の擦り傷、肖像の下の微小刻印「IRB」が起伏として立ち上がっている。
03 / 3D Surface

n をつなぎ直した高さ。

面の向きを面全体で積分すると起伏になる。擦り傷と刻印「IRB」が立つ。

英国 2 ポンド硬貨の表面法線マップ。面の向きが色で符号化され、肖像のレリーフが立ち上がっている。
04 / Surface Normal

式の n そのもの。

照明不変の特徴量。体験①②が扱っていたのは、この物理量。

On the bench

ここまでは計算。
実機ではこう出ます。

体験①②はブラウザの上で解いた計算でした。同じ方法を実機で日本の硬貨に当てると、 Live / Surface Normal / 3D Surface が順に立ち上がります。 彫りの起伏も、地に付いた擦り傷も、色ではなく面の向きとして出てきます。

500 円硬貨の表面法線画像。桐の花と葉の彫り、周縁の微細な加工、地の擦り傷までが、面の向きの違い(色の違い)として現れている。 2:16

TOMOMI RESEARCH / YouTube YouTube で見る ↗

映像は当社が撮影した実機の出力です。押すまで YouTube への通信は発生しません (押した時点で youtube-nocookie.com の再生画面に切り替わります)。

Strengths and limits

同じ「3D」でも、
測っているものが違う。

フォトメトリックステレオは万能な 3D 計測ではありません。 三角測量にもとづく方式とは、得意と不得意がちょうど裏返しの関係にあります。

  フォトメトリックステレオ 三角測量(ステレオ・構造光)
直接測るもの 面の向き(法線)と反射率 点の位置(距離)
分解能を決めるもの カメラの画素。1 画素ごとに独立して解く 対応点の探索窓、投影パターンの細かさ
得意 浅いキズ・打痕・段差など、高さの細かい変化 寸法・反り・全体の形など、大きな形状
不得意 広い面のうねり、絶対的な高さ(積分で誤差が溜まる) 微細な凹凸、光沢面・透明体での対応点探索
撮像中の条件 カメラ・試料は固定。照明だけを切り替えて N 枚 方式により 1 枚〜複数枚

※ 方式どうしの一般的な比較であり、個別の製品の性能を示すものではありません。 実際に何が見えるかは、対象物・表面仕上げ・撮像条件によって変わります。

苦手なことも、はっきりあります。

この方法は「明るさは面の向きだけで決まる」という前提の上に立っています。 現実の表面は、その前提をあちこちで裏切ります。

01
鏡面反射

金属や光沢面では、正反射が前提から外れた強い明るさを作ります。 そのまま解くと、その画素の法線は嘘をつきます。照明を増やして外れ値として捨てるなど、 手当てが要ります。

02
影と相互反射

ある照明で影に入った画素には、その式が使えません。 深い溝の中で光が反射し合う場所も、前提が崩れます。 N を増やして「使える式だけで解く」余地を作ることになります。

03
広い面のうねり

法線から高さを作るときは積分するので、誤差が距離とともに溜まります。 細かい凹凸には非常に強い一方、板全体の反りのような低い周波数は苦手です。 そこは三角測量系の仕事になります。

04
撮像中に動くもの

N 枚が画素単位で重なることが前提なので、 撮っている間に動くと成立しません。流れるラインの上で使うには、 この制約を装置側で外す必要があります。

当社が独自に発展させてきたのは、まさにこの制約を現場でどう外すか、という部分です。 たとえば TR-300 は、 移動しているライン上での画像 3D 化を実現した連続検査システムです。

Where it sits

この方法は、どこにあるか。

フォトメトリックステレオは方法であって、製品名ではありません。 当社の製品でこの方法を担っているのは、3 層のうち Layer 01 です。

Layer 01 / センサ

FORESIGHT STEREO®

フォトメトリックステレオを独自に発展させた 3D 画像化技術。多方向照明から 表面法線を照明不変に取得する。従来は到達できなかった計測を、現場で成立させる。

Layer 02 / 判定

E3 ENGINE®

良品だけを学習し、そこからの隔たりを数値化する AI 異常検知エンジン。 OKHuman_CheckNG の 3 値で返す。 詳しく見る

Layer 03 / 装置

TR シリーズ

センサと判定を、現場で動く 1 台にまとめたもの。卓上の観察機から、 ライン上の連続検査機、ロボット搭載機まで。

※ 単体ソフトウェアの AI SMART MASK は、この 3 層の外側にあります(「どこを見るか」を決める前処理で、良否判定はしません)。

Contact

この方法で、
あなたの対象物は見えるか。

見えるかどうかは、対象物の表面仕上げと、見たい欠陥の高さで決まります。 画面の上で確かめられるのは、ここまでです。サンプルをお預かりして実際に撮り、 4 つの出力をお返しするところからご相談ください。