はじめに
点群にフィットする円のことを「最小二乗円」というらしいです。
その最小二乗円を以下の3つのパターンで求めたいと思います。
・普通の最小二乗円(任意の点を通らない)
・ある1点を通る最小二乗円
・ある2点を通る最小二乗円
点群は とします。
イメージしやすいように、以下の図に点群の点の数が4の場合の最小二乗円を描画しています。
緑色が「普通の最小二乗円」、赤色が「ある1点を通る最小二乗円」、青色が「ある2点を通る最小二乗円」です。
普通の最小二乗円
重心 を求めます。
だけ平行移動した座標系の点群を とします。
の総和は以下の関係があります。
変換前、変換後の座標系における円の中心座標をそれぞれ とすると、以下の式が成り立ちます。
円の半径を とし、 とおきます。
目的関数 を以下のように定めます。
式を簡単にするために とおきます。
を で微分して、 とおきます。
を で微分して、 とおきます。
を で微分して、 とおき、 で微分した結果 を用いると以下の式が成り立ちます。
式 を変形して、 を求めます。
式 より、 が求まったので、これを式 に代入すると が求まります。
は式 と により以下のように求まります。
以上より、点群にフィットする円が定まりました。
円が定まらないときについての考察 - 普通の最小二乗円
式 の分母が の時は計算不能です。
となるのは、 シュワルツの不等式の等号が成り立つときです。
それは、全ての点 と原点を通る直線が存在する時です。この時、元の座標系の全ての点 を通る直線が存在しています。
よって、全ての点 を通る直線が存在しない時に、フィットする円は計算可能であることが分かります。
計算機で「解なし(点群にフィットする円を求められない)」を判定するときは許容誤差用定数 を用いて とするのではなく、
点群の覆う矩形の対角線の長さ をかけて、 とするなどの工夫が必要かと思います。
ある1点を通る最小二乗円
「普通の最小二乗円」のアルゴリズムを使いまわすため、円が通る点を とおきます。
そうすると、式 が成り立たないので、 が成り立ちません。 は成り立ちます。
変換後の座標系では円が原点を通るので、以下が成り立ちます。
を で微分して、 とおきます。式 の計算を途中まで使って計算します。
式 と式 は全く同じ式なので、 は式 で求まり、これを式 に代入すると が求まります。
あとは式 で が求まります。
以上より、点群にフィットする「ある1点を通る円」が定まりました。
円が定まらないときについての考察 - ある1点を通る最小二乗円
前の議論同様、円が定らないのは全ての点 と原点を通る直線が存在する時です。この時、元の座標系の全ての点 と を通る直線が存在しています。
よって、全ての点 と を通る直線が存在しない時に、フィットする円は計算可能であることが分かります。
ある2点を通る最小二乗円
「普通の最小二乗円」のアルゴリズムを使いまわしません。
円が通る2点を とおき、2点の中間点を とおきます。
ただし、円が通る2点は等しくないものとします。
と のなす角を とおくと、 は以下のようになります。
だけ平行移動した後、 回転した座標系の点群を とします。
式 の逆変換は 回転した後、 だけ平行移動したものです。
式 の写像を とおきます。
は変換後、 軸上に存在するので、変換後の座標を とおくと、以下のようになります。
変換前、変換後の座標系における円の中心座標をそれぞれ とします。
変換後の円の中心は、 軸上に存在するので以下の式が成り立ちます。
円の半径を とし、 とおくと、 に以下の関係が成り立ちます。
目的関数 を以下のように定めます。
式を簡単にするために とおきます。
を で微分して、 とおきます。
式 より、 が求まったので、これを式 に代入すると が求まります。
は より、 の平方根を取ることで求まります。
は を逆変換することで求まります。
以上より、点群にフィットする「ある2点を通る円」が定まりました。
円が定まらないときについての考察 - ある2点を通る最小二乗円
式 の分母が の時は計算不能です。
となるのは、
全ての点 がX軸上に存在する時です。この時、元の座標系の全ての点 と と を通る直線が存在しています。
よって、全ての点 と と を通る直線が存在しない時に、フィットする円は計算可能であることが分かります。
TODO
図を挿入する
普通の最小二乗円:変換の図、E用の円の図、円が計算できない場合の図(変換後の座標系⇒変換前の座標系)
1点を通る最小二乗円:同様
2点を通る最小二乗円:変換の図を2段階で書く