はじめに
物の高さや断面の形を、触らずに測る方法のひとつに光切断法があります。線状のレーザーを物に当て、それを斜めからカメラで撮ると、段差や凹凸に合わせてラインが曲がって写ります。その曲がり方から、高さを計算する方法です。工場の検査ラインでは、この方式のセンサー(レーザープロファイラ)が広く使われています。
市販のレーザープロファイラは、高さ方向の繰り返し精度が 0.3〜10µm 程度と非常に高性能です[1]。ただし価格は公開されておらず、見積もりで購入する業務用の機器です。
このシリーズでは、ハンドアイキャリブレーション入門でも使った RealSense D435 に、数千円程度のラインレーザーを組み合わせて、光切断計測を自作します。目的は、市販品に勝つことではありません。次の2つを、理論と実測の両方で確かめることです。
- 安い構成で、どこまでの精度が出るのか
- その精度は何で決まっていて、市販品との差はどこから来るのか
第1章では、光切断法の仕組みを説明し、次の問いに答えます。
- 光切断法は、どうやって高さを測るのか
- 高さ1mmは、画像の上で何ピクセルのずれになるのか
- 市販のセンサーは、なぜカメラのセンサーを傾けて取り付けているのか
シリーズの構成
| 章 | 内容 | 使うもの |
|---|---|---|
| 第1章(今回) | 光切断法とは:仕組みと三角測量の関係 | 理論 |
| 第2章 | 精度はどこで決まるか:スペックルとレンズの開口 | 理論 |
| 第3章 | ライン中心をサブピクセルで求める:4つの手法の比較 | シミュレーション |
| 第4章 | 実機編:D435 の赤外線カメラでラインを撮る | 実測 |
| 第5章 | レーザーの面を校正する | 実測 |
| 第6章 | 段差を測る:実測と理論の限界の比較 | 実測 |
| 第7章 | 市販品との差を分解する | 理論+実測 |
| 補足 | 外光とバンドパスフィルタ、高速化 | 実測 |
| 続編(予定) | センサーを傾けたカメラを自作して、市販品にどこまで迫れるか | 実測 |
光切断法の仕組み
図1(a) が、横から見た配置です。

ラインレーザーは、光を扇形に広げて、物の上に1本の線を描きます。横から見ると、光は1枚の薄い面(図1(a) の赤い線)になっています。物の表面のうち、この光の面と交わったところだけが光ります。
カメラは、この光の面から角度 α だけ傾けた方向から、光った線を撮ります。この α を三角測量角と呼びます。
光った点の高さが変わると、カメラから見た方向が変わります。図1(a) の実線(段差の上の点)と破線(基準面の点)は、レンズを通ったあと、センサーの別の位置に届きます。そのため、画像の上では、段差の上に当たったラインだけが上にずれて写ります(図1(b))。このずれ v から高さを計算するのが、光切断法です。
実際の処理では、画像の列ごとにラインの位置(何行目に写っているか)を探します。848列の画像なら、1枚の画像から848点の高さ、つまり断面の形が1本分得られます。物を少しずつ動かしながら撮れば、表面全体の形が得られます。
高さ1mmは何ピクセルか
ずれ v と高さの関係を、式で表してみます。使うのは、ハンドアイキャリブレーション入門の第4章で出てきた、カメラの基本的な関係です。
画像の上での位置 = 焦点距離 × 光軸に垂直な方向のずれ ÷ 光軸方向の距離
高さ z の点は、カメラから見ると、光軸に垂直な方向に z × sinα だけずれ、カメラに z × cosα だけ近づきます。これを上の関係に入れると、次のようになります。
ラインのずれ v = 焦点距離 f × 高さ z × sinα ÷(作動距離 L − 高さ z × cosα)
作動距離 L は、カメラのレンズから基準面の上の測る点までの距離です。高さ z が作動距離 L より十分小さいときは、分母の z × cosα を無視できて、次のように簡単になります。
ラインのずれ v ≈ 焦点距離 f × 高さ z × sinα ÷ 作動距離 L
この連載で想定している配置に当てはめてみます。以下、ピクセルを px と書きます。D435 の赤外線カメラ(848×480)の焦点距離は、データシートの値[2]から換算すると約 426px です。作動距離を 200mm、三角測量角を 30° とすると、次のようになります。
v ≈ 426 × 1mm × 0.5 ÷ 200mm ≈ 1.07px
高さ1mmの段差で、ラインは約1ピクセルしかずれません。 0.1mm の段差なら、約 0.1 ピクセルです。
画像は1ピクセル単位でしか記録されないので、ラインの位置を1ピクセル単位でしか決められなければ、1mm より細かい高さは測れません。0.1mm を測るには、ラインの位置を 0.1 ピクセルの細かさで決める必要があります。この「1ピクセルより細かく位置を求める」技術をサブピクセル推定と呼び、第3章で4つの手法を比べます。

図2(a) は、三角測量角 α を変えたときの、高さとラインのずれの関係です。
- α を大きくするほど、同じ高さでもラインが大きくずれます。 高さ1mmあたりのずれは、α = 20° で約 0.73px、α = 30° で約 1.07px、α = 45° で約 1.51px です。
- ただし α を大きくすると、段差の陰になってカメラからラインが見えない部分が増え、カメラとレーザーの間隔(図1(a) の基線長 b)も長くなります。この連載では 30° を基準にして、20〜45° の範囲で変えて比べます。
簡単にした式が使えなくなるとき
図2(b) は、簡単にした式で高さを計算したときの誤差です。高さが 5mm で約 2%、10mm で約 4%、20mm で約 9% ずれます。高い所ほどカメラに近づき、少し大きくずれて写るためです。
0.1mm を測りたい装置で、10mm の段差を 4% 間違えると、0.4mm の誤差になります。簡単にした式は、仕組みを理解するには便利ですが、0.1mm を狙う計測には使えません。
実際の計測では、「カメラからその点に向かう視線」と「レーザーの光の面」が交わる点として、高さを計算します。そのためには、カメラから見たレーザーの光の面の位置と向きを、正確に知っておく必要があります。これを測るのが、第5章のレーザーの面の校正です。
市販のセンサーは、なぜセンサーを傾けるのか
ここまでの説明は、普通のカメラ(センサーとレンズが平行なカメラ)を前提にしていました。ところが、高い精度を狙う三角測量のセンサーでは、カメラのセンサーをレンズに対して傾けて取り付ける工夫が使われてきました。これをシャインプルーフ配置と呼びます[3]。なぜわざわざ傾けるのでしょうか。

理由は、ピントです。
- 光切断法で測る点は、すべてレーザーの光の面の上にあります。カメラは、この面を斜めから見ています。
- 普通のカメラでピントが合うのは、光軸に垂直な面だけです(図3(a) の緑の破線)。斜めになったレーザーの面とは1か所でしか交わらないので、それより高い所や低い所はぼけます。ぼけた点の光は、センサーの上で1点に集まらずに広がります(図3(a) の橙色)。
- レンズを絞れば(F値を大きくすれば)、測る点からレンズの開口を見込む角度が狭くなり、ピントが合う奥行きの範囲は広がります。この範囲を被写界深度と呼びます。しかし第2章で説明するように、この角度を狭くすると、レーザー特有のスペックル(光のざらつき)による精度の限界が悪くなります。
- そこで、センサーを傾けます。レンズの面・センサーの面・レーザーの光の面の3つが1本の線で交わるようにすると、ピントの合う面がレーザーの光の面と一致します(図3(b))。高い所も低い所もピントが合うので、レンズを絞らずに、大きな開口のまま測れます。
つまりシャインプルーフ配置は、「被写界深度」と「スペックルによる精度」を両立させるための工夫です。
この連載で使う装置
D435 は、センサーとレンズが平行に固定されているので、シャインプルーフ配置にはできません。それでもこの連載で D435 を使えるのは、測る点から見たレンズの開口がとても狭いからです。
被写界深度を決めるのは、レンズの大きさそのものではなく、測る点からレンズの開口を見込む角度です。この角度の半分の sin を開口数(NA)と呼び、およそ次のように計算できます。
開口数 NA ≈ 開口の直径 ÷ 2 ÷ 作動距離(開口の直径 = 焦点距離 ÷ F値)
D435 の赤外線カメラのレンズは、焦点距離 1.93mm、F値 2.0 です[2]。開口の直径は約 0.97mm で、作動距離 200mm での NA は約 0.0024 です。同じ F値 2.0 でも、焦点距離 16mm の一般的な産業用レンズなら開口の直径は 8mm、NA は約 0.02 で、D435 の約8倍になります。F値だけでは NA は決まりません。

図4 は、ピントの合う面から奥行き方向にずれた点が、どれだけぼけるかを示したものです。ずれた点からレンズに向かう光の円すいは、ピントの合う面の上で1点に集まらず、円に広がります(橙色)。これが画像のぼけです。このぼけが物の上での1画素の大きさに収まる奥行きの範囲が、被写界深度です。NA が小さいほど円すいが細いので、同じ1画素でも被写界深度は深くなります(図4(b))。円すいの幾何から、被写界深度はおおよそ「物の上での1画素の大きさ ÷ NA」になります(ぼけを1画素まで許す場合)。
NA の小さい D435 では、ピントを 200mm に合わせた場合、およそ 135〜390mm の範囲でピントが合う計算になり、測る範囲の全体が収まります。焦点距離 16mm・F値 2.0 のレンズでは、同じ条件で前後に約 1.4mm しかありません。D435 なら、普通の配置のままでも、ぼけはほとんど問題になりません。なお、D435 のように被写界深度が作動距離に近いほど深いと、この簡単な式は使えないので、135〜390mm は近似を使わない式で計算しています。
ただし、良いことばかりではありません。上の 3. で触れたスペックルによる精度の限界も、同じ NA で決まり、NA が小さいほど悪くなります。ピントの深さと精度の限界は、NA を通して表と裏の関係にあります。D435 は、NA が小さいおかげでピントの問題を避けられる代わりに、精度の限界が悪くなるカメラだと言えます。どれくらい悪くなるのかを、第2章で計算します。
この連載で使う装置は次のとおりです。
| 部品 | 使うもの | 補足 |
|---|---|---|
| カメラ | D435 の左の赤外線カメラ(白黒) | 848×480、最大 90fps |
| 投光器 | D435 内蔵の赤外線の点模様プロジェクター | ラインに重なるので切る |
| レーザー | 赤(650nm)のラインレーザーモジュール | 出力の小さいクラス2以下 |
| 治具 | カメラとレーザーの固定台 | 三角測量角を変えられるようにする |
| 測る物 | 段差ゲージ、平面板、ChArUco ボード | 段差ゲージは光を散らす表面にする |
カラーカメラではなく赤外線カメラを使うのは、文献で赤外線カメラのほうがキャリブレーションの精度が良いと報告されているためです(再投影誤差の中央値が、カラーカメラ 0.092px に対して赤外線カメラ 0.042px)[4]。ハンドアイキャリブレーション入門の第4章で触れたとおり、赤外線カメラを使うときは、D435 内蔵のプロジェクターを切る必要があります。
配置は、作動距離 200mm、三角測量角 30° を基準にします。このときカメラとレーザーの間隔(基線長)は約 100mm です。
この章の前提と限界
- 焦点距離 426px は、データシートの焦点距離(1.93mm)と画素の大きさからの換算値です。実際の値は、第4章で D435 から読み出す内部パラメータで確かめます。
- 式は、レンズのゆがみがない理想的なカメラで、画像の中央の列について考えたものです。画像の端の列やレンズのゆがみは、第5章の校正で扱います。
- D435 の赤外線カメラが、どの距離にピントを合わせているかは公開されていません。作動距離 200mm でピントが十分に合うかは、第4章で実際の画像で確かめます。
- 市販品の繰り返し精度(0.3〜10µm)は、少なくとも一部の機種で、同じ場所を 4096 回測って平均した条件の値です[1]。1回の測定のばらつきではありません。この連載の結果と比べるときの注意点は、第7章で説明します。
まとめと次回予告
- 光切断法は、レーザーの光の面と斜めから見るカメラで、画像の上のラインのずれから高さを計算する
- ラインのずれ ≈ 焦点距離 × 高さ × sinα ÷ 作動距離。D435・作動距離 200mm・α = 30° では、高さ1mmで約1ピクセル。0.1mm を測るには 0.1 ピクセルの細かさが必要
- 簡単にした式は、高さ 10mm で約 4% ずれる。実際の計測では、視線とレーザーの面の交点として高さを求める(第5章)
- 高精度な三角測量のセンサーでは、センサーを傾けるシャインプルーフ配置で、ピントと精度を両立させる。D435 はセンサーを傾けられないが、開口数(NA)が小さいのでピントの問題が起きにくい。その代わりに精度の限界が悪くなる
次回の第2章では、D435 の小さい NA が精度の限界をどれくらい悪くするのかを、スペックルの理論から計算します。サブピクセル推定の手法をどれだけ工夫しても越えられない限界が、どこにあるのかを見ます。
参考
[1] キーエンス, 2D/3D レーザプロファイラ LJ-X8000 シリーズ 仕様, https://www.keyence.com/products/measure/laser-2d/lj-x8000/specs/(2026年10月28日閲覧)
[2] RealSense D400 Series Product Family Datasheet, Document Number 337029-017, March 2026.
[3] F. Blais, “Review of 20 years of range sensor development,” Journal of Electronic Imaging, 13(1), 231–240, 2004.
[4] T. Schöps, V. Larsson, M. Pollefeys, and T. Sattler, “Why Having 10,000 Parameters in Your Camera Model Is Better Than Twelve,” CVPR, 2020.

コメント