Manual
marutan 取扱説明・動作原理
marutanは、写真からAIで丸太を検出し、ChArUcoボードを既知寸法の基準として実寸を推定するWebベースの丸太計測システムです。このページでは、計測の考え方、ChArUco校正、カメラキャリブレーション、Auto / Manualの使い分けを説明します。
1. 全体の動作
ポイントは、ChArUcoを単なる「物差し」として使うのではなく、写真の中の既知寸法の平面として扱うことです。
2. ChArUcoとは
ChArUcoは、ArUcoマーカーとチェスボードを組み合わせた基準ボードです。marutanでは、ボードのマス数・マスの実寸・マーカー寸法・使用する辞書を指定して検出します。
- マス数:5 × 7
- マス1辺:34.7 mm
- マーカー1辺:20.8 mm
- 辞書:DICT_6X6_1000
- ArUcoマーカー
- ChArUco交点
- 交点IDと画像上の座標
- ボード上の既知座標
3. Auto Detectの動作原理
Auto Detectでは、ユーザーが交点を一つずつクリックする必要はありません。OpenCV.jsのChArUco検出器が写真から交点を自動検出し、検出した交点IDからボード上の位置を特定します。
ボードが十分写っていて、印刷サイズと設定値が一致していれば、通常はこちらが簡単です。
4. 4点とホモグラフィ
marutanでは、検出したChArUco交点からボードの4隅に対応する4点を自動的に選び、画像座標をボード上の実寸座標へ写す変換を作ります。
この変換によって、画面の上側と下側で丸太が違う大きさに写るような透視(遠近)による縮尺の違いを考慮できます。
5. 地面にChArUcoを置く場合
現在の透視補正版は、ChArUcoを地面上の基準平面として使用することを想定しています。例えば次のように配置します。
ChArUcoと丸太が離れていても計測値は出せます。ただし、ホモグラフィが直接正確に扱えるのは基本的に同一平面上の距離です。丸太の断面は地面から浮いているため、距離が大きい場合や丸太の向きが斜めの場合には追加の誤差が生じます。
6. 丸太とChArUcoを同一平面に置く場合
丸太断面とChArUcoを同一平面上に配置できる場合、ホモグラフィの前提と非常によく一致します。ChArUcoと測定対象が同じ平面にあるため、透視補正を利用しやすい配置です。
一方、ChArUcoが地面、丸太断面が別の高さにある場合は、同一平面ではありません。その場合は今回の地面基準方式として扱い、精度を実験的に評価する必要があります。
7. Camera Calibration
Camera Calibrationには、カメラの内部パラメータを入力します。入力した値はChArUcoのPnPによるカメラ姿勢推定に使用できます。
| 項目 | 意味 |
|---|---|
| fx / fy | 焦点距離を画素単位で表した値 |
| cx / cy | 主点(画像中心付近)の座標 |
| k1 / k2 / k3 | 放射方向のレンズ歪み係数 |
| p1 / p2 | 接線方向のレンズ歪み係数 |
8. Manualの使い方
- まず丸太写真を読み込みます。
- ChArUco設定が、実際に撮影したボードと一致していることを確認します。
- Manualを押します。
- ChArUcoボードの外周4隅を、左上 → 右上 → 右下 → 左下の順番でクリックします。
- 4点が揃うと、ホモグラフィを計算して校正します。
- Auto Detectがうまくいかない場合の救済手段として使用します。
ChArUco交点を一つずつ大量にクリックする必要はありません。
9. 推奨する撮影方法
推奨
- ChArUco全体を写真に入れる
- ボードが小さくなりすぎないようにする
- 丸太断面をできるだけ正面から撮影
- ボードの印刷寸法を設定値と一致させる
- レンズ・撮影解像度がキャリブレーション時と一致するようにする
避けたい条件
- ChArUcoの一部が隠れる
- 強い反射・ブレ・ピンぼけ
- 極端に斜めから撮影する
- キャリブレーション時と違う解像度で内部パラメータをそのまま使用
- 地面上のChArUcoから大きく離れた丸太を、検証なしに高精度とみなす
10. まず行うとよい精度検証
地面にChArUcoを置いて遠距離の丸太を測る運用を想定する場合、次の試験が有効です。
これにより、marutanを何m程度まで実用的に使えるか、径の誤差がどの程度になるかを定量的に評価できます。