02 / 3D SCAN TO CAD

複数の3Dスキャンを自動で位置合わせ。

複数方向から取得した点群を重ね、CAD比較やリバースエンジニアリング(現物から形状を再構成する作業)の前処理を省力化することを想定した検証です。点群の位置・向きをそろえる処理を実装し、重なりの割合と手法による成否を比較しました。

実験には、人工点群と公開地表データを切り分けたものを使っています。別々に計測した実物のスキャンを統合した実績ではなく、編集可能なCADへの変換も別途検証が必要です。

01

別々に取ったスキャンを重ねて、部品の形を確認したい

例えば、部品を別の向きからスキャンして、一度の測定では見えなかった面も確認したい場合です。3Dスキャンで得られる「点群」は、表面の位置を3次元座標の点で表したものです。

取得したデータどうしの位置や向きが違うと、そのままでは部品の形を一緒に確認できません。両方に写っている面を手掛かりに、同じ座標にそろえる処理が「位置合わせ」です。

利用場面の例

  1. 別の向きから測る

    同じ部品の、共通する面を含む複数の点群を用意する。

  2. 共通する面でそろえる

    片方を基準に、もう片方の位置と向きを合わせる。

  3. 同じ座標で確認する

    複数の測定範囲を重ねて表示し、部品全体の形を確認する。

位置合わせを自動化できれば、手作業で向きや位置を調整する負担を減らせる可能性があります。基準のCADと比較する場合は、どの面を基準にし、どの差を測るかも決める必要があります。

これは活用の考え方です。以下の研究では、その中の位置合わせについて、正解を確認できるデータで基礎的な条件を調べました。

02

研究で調べたのは、重なる範囲と位置合わせの方法

公開研究「Point Cloud Playground」では、「共通する部分が少なくなると、位置合わせはどこまで成り立つか」を調べました。部品のスキャンを統合した実績ではなく、処理の性質を確かめる基礎実験です。

人工の曲面と公開の地表データをそれぞれ切り分け、共通する点の割合を100・80・60・40%に変えました。片方を2度回転し、点間隔の中央値の半分だけ移動させ、最大80回の計算で正しい位置へ戻せるかを比較しました。

人工データを使う理由は、正しい位置が分かるからです。見た目が似ているだけでなく、元の位置へ戻ったかを数値で確かめられます。比較したのは、次の2つの方法です。

  • 通常のICP
    各点から最も近い点を探し、その対応をすべて使って位置と向きを調整する。
  • 近い70%を使うICP(Trimmed ICP)
    距離が近い70%の対応に絞り、相手側に対応する点がない部分の影響を減らす。
重なりの割合 通常のICP 近い70%を使うICP
100% 成功 成功
約80% 基準未達 成功
約60% 基準未達 基準未達
約40% 基準未達 基準未達

人工データ・地表データとも、成否はこの表のとおりでした。「成功」は計算が収束し、正しい対応点とのずれをまとめた誤差(RMSE)が、点間隔の中央値の1%以下になった場合です。

重なり80%では対応を絞る方法で改善しましたが、60%・40%では両方とも基準未達でした。方法を変えるだけで、共通部分の少なさを解決できるとは限らない結果です。

これは一つの点群を切り分けた実験です。別々のスキャンで生じる測定誤差や見え隠れの違い、実際の部品で必要な寸法精度は、別に確認する必要があります。70%という設定を、そのまま現場へ推奨する結果ではありません。

実務での検証では、まず共通して写る面、最初の位置・向きのずれ、許容する誤差を確認いたします。手元のスキャンを使い、自動処理に任せられる範囲と、人による確認が必要な範囲を整理いたします。

基礎実験の図を見る:何と何をどう重ねたか

基礎検証の実行結果 / 人工データ・重なり80%

緑の点群に、オレンジの点群を重ねる

同じ人工の曲面から、範囲が少し違う2組の点群を作りました。緑を固定し、位置と向きをずらしたオレンジを動かして、共通する部分を重ねる実験です。CADデータは使っていません。

○ 緑:固定する点群

左寄りの範囲から取り出した5,000点

位置合わせの基準として固定する点群。人工曲面の左寄りの範囲を緑の輪で表示。

こちらの位置・向きは変えません。

● オレンジ:動かす点群

右寄りの範囲から取り出した5,000点

位置を合わせるために動かす点群。人工曲面の右寄りの範囲をオレンジの点で表示。2度回転し、少し移動させた状態。

2度回転させ、少し移動させています。

共通する4,000点(各点群の80%)を重ねたい

ICPでオレンジの点群を移動・回転し、緑に合わせます。対応点の使い方を変えた2つの方法を比較しました。

処理後:同じ2色を重ねて比較

○ 緑:固定した点群● オレンジ:処理後の点群

通常のICP

基準未達:共通部分がずれた

通常のICPの結果。オレンジの点群が緑の点群に対して左へずれ、点が密集する部分の位置も一致していない。

オレンジの密集部分が、緑の密集部分から外れています。

共通部分のずれ:37.78倍

近い70%を使うICP

成功:共通部分が重なった

近い70%の対応を使うICPの結果。共通する部分では緑の輪の中心にオレンジの点が重なる。片方にしかない範囲は単色のまま残る。

共通部分では、緑の輪の中にオレンジの点が入っています。

共通部分のずれ:0.01倍未満

全部の点が重なるわけではありません。片方にしかない部分はそのまま残り、両方に共通する部分が重なれば、正しく位置が合っています。

4図は同じ視点・縮尺です。色と重なりを見やすくするため、表示する点を8分の1に減らしています。計算は各5,000点、評価は共通4,000点で行っています。

「ずれ」の測り方と実験の範囲

数値は、共通4,000点の正しい対応関係に対する3次元の誤差(RMSE)を、元データの点間隔の中央値で割った値です。位置合わせ前は1.62倍でした。小さいほど良く、計算が収束し、0.01倍以下になった場合を成功としています。

元の人工曲面は6,000点です。正しい対応関係は結果の評価に使い、ICPには渡していません。この実験では、実物を別々にスキャンしたときの見え隠れや、測定誤差の違いまでは再現していません。

この図の元になった評価結果(GitHub)

条件別の結果CSV:人工データ / 地表データ

03

位置合わせを含む、4つの基礎処理を実装

位置合わせのほか、点群を扱いやすくするための処理も実装しました。Pythonの数値計算ライブラリNumPy・SciPyを使い、次の4つを、条件を変える7種類の実験で評価しています。

  • 点を減らす(ボクセル間引き)
    空間を小さな区画に分けて点をまとめ、残る点数と元の形からのずれを測定。
  • 不要な点を除く(統計的外れ値除去)
    周囲の点から離れた点を探し、混入させた不要な点の検出率と、必要な点を残せた割合を測定。
  • 面の向きを求める(PCA法線推定)
    近くの点の広がりから表面の向きを求め、人工データの正しい向きと比較。
  • 位置と向きを合わせる(ICP)
    近い点どうしを対応付け、移動・回転を繰り返して二つの点群を重ね、正しい位置からのずれを測定。

対象は、形や面の向きを式で確かめられる人工の曲面6,000点と、米国の公開レーザー測量データUSGS 3DEPから抽出した地表5,000点です。処理後の点群に加え、条件別の測定CSVと比較図を出力します。

例えば面の向きの推定では、近傍64点を使った人工データの平均誤差は0.846度でした。地表データには正しい面の向きの記録がないため、そちらでは小さな座標変化に対する結果の安定性を測っています。安定していることと、正しい向きであることは別に確認します。

7種類の実験条件・指標・結果(GitHub)

04

CAD化の方法は、その後の使い道で変わる

スキャンの位置が合った後に、どこまでの成果物が必要かを整理します。形の確認、既存のCADとの比較、寸法を編集して再設計することでは、必要な工程が変わります。

目的 ご相談時に確認したいこと
取得した形を確認したい どの範囲を見たいか、欠損や不要な点をどう扱うか
既存の形状と比較したい 比較する面や領域、位置合わせの基準、許容する差
CADへ取り込みたい 必要なファイル形式と、その後に行う作業
寸法を変えて再設計したい 編集する寸法、形状の構成、残したい設計上の条件

用途が分かると、どの工程を自動化し、どこを人が確認するかを決めやすくなります。

再設計に使うなら、表面の形に加えて、どの寸法を変えるか、穴や段差をどんな操作で作るか、その操作が何に依存するかを扱う必要があります。

別の公開研究「Research Notes」では、基準面・寸法・スケッチ・形状操作の関係を、依存グラフという構造で記録しました。プログラムで作った板・穴付き板・段差付き角柱の3形状は、体積と表面積を式による計算値と照合し、STEPへの書き出し・読み込み後にも確認しています。

これは作成手順を自分で定義した形状の検証です。読み込んだSTEPから見つけた穴は、未確認の候補として別に記録しています。この3形状の検証には、元の設計操作の復元、寸法変更に連動する一般的な再計算、スケッチの拘束条件を解く処理は含めていません。

対応する単体部品の寸法編集と、小規模なアセンブリの再計算・干渉確認は、別の記事でご紹介しています。

点群の位置合わせ、面や立体の生成、寸法を編集できるモデルの作成を分け、必要な工程から検証いたします。

3形状の作成・STEP往復の検証(GitHub)

05

ご相談では、小さな対象から進めます

対象部品や合わせたい面を絞り、位置合わせにかかる手作業をどこまで減らせるかを検証いたします。必要な精度と、人が確認する工程も整理いたします。

  1. 最終的な用途と、欲しい出力形式を確認する。
  2. サンプル点群の状態と、比較に使える基準データを確認する。
  3. 対象部品や領域を絞り、まず整理・位置合わせなどを試す。
  4. 必要な誤差に収まるか、残る手作業は何かを確認する。
  5. 次の形状処理やCAD化へ進む条件を決める。

06

手元のスキャンで、どこまで進められるかご相談ください

データ形式と対象部品、現在の合わせ方、手間がかかっている作業をお知らせください。必要な精度や、CAD化した後の用途が決まっていれば、あわせて伺います。取得前の段階でもご相談いただけます。

点群・3Dデータの処理について相談する

技術PoCの内容を見る

技術担当の方へ:点群処理の実験と評価