画像処理ソリューション
これを見れば画像処理の入門から基礎~応用まで全てがわかるのを目指して!
   
翻訳(Translate)

プロフィール

Akira

ニックネーム:Akira
東京都の町田事業所に勤務
画像処理ソフトの開発を行っています。リンクフリーです!
詳細プロフィールは こちら
お問い合わせは、こちら↓

【補助HP】
画像処理ソリューションWeb版 【Newブログ】
イメージングソリューション

スポンサーリンク


カテゴリ

最近のコメント

カレンダー

06 | 2007/07 | 08
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

趣味のブログ

iPhone萬歳!
iPhoneの情報いろいろ。
ブログ学習帳
ブログ、SEO、アフィリエイト情報など(まだまだこれから)
俺流クラフト日記
ハンドメイド作品の記録(現在、放置中)

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

最小二乗法の最適化

近似するX座標の値が等間隔に並んでいる場合、奇関数、偶関数の特性を使って
最小二乗法を高速に処理することが可能になります。

例えば、画像中の線の中心位置をサブピクセル単位で求める場合などに有効です。

  線画像

以下からは線の輝度値を2次曲線で近似して、線の中心を求める例を示します。

X方向の輝度値が最大となる座標付近の輝度値を抜き出し、2次式で近似すると
X座標が180と181との間に最大値がありそうな事が分かります。
輝度データ

二次式(Y = aX2 + bX + c)で近似する場合、下記の行列の式を解くと二次式が
求まります。

  2次式

ここで、逆行列の中は奇関数、偶関数の集まりなので、輝度値データの
X座標を中心座標(X = 180.5)で割り振ると
輝度値データ修正

よって、奇関数、偶関数の特性から、行列の式は

  行列の修正

となり、行列の計算量を減らすことができます。

また、近似するデータの個数が固定できるなら、逆行列の部分はあらかじめ
計算しておく事ができるので、さらに計算量を減らすことができます。

これで、求める線の中心座標は近似曲線の頂点位置、つまり微分の値が0と
なる座標(Y' = 0の座標)なので、
  
  線の中心座標 = Xの中心座標 - b / 2a
            (今回の例ではXの中心座標 = 180.5)

となり、より高速に線の中心座標を求めることができるようになります。


Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

奇関数、偶関数

 奇関数                         
  
  
f (-x) = - f(x)

となる関数。

関数のグラフが原点に対して対象となります。
  
奇関数グラフ

【例】
  Y = X, Y = X3, Y = Sinθ など

【特徴】
  -a ~ aの範囲で積分すると

  奇関数の積分
  となります。


 偶関数                         

  f (-x) = f(x)

となる関数。

関数のグラフがY軸に対して対象となります。
  偶関数グラフ


【例】
  Y = X2, Y = X4, Y = Cosθ など

【特徴】
  -a ~ aの範囲で積分すると

  偶関数の積分

  となります。

この偶関数・奇関数の特徴を応用すると、プログラム上ではfor文などで毎回計算するような処理をより高速に行うことが可能になる場合があります。
その応用例は最小二乗法の最適化のページで、
また、この
関数、奇関数を応用するための工夫を偶関数、奇関数の積分で紹介しています。
もしよろしければご参照下さい。


Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

エクセルで解く最小二乗法

エクセルではグラフの機能で近似曲線の追加というのはありますが、
任意の式で近似したい場合や、近似式の係数を取得したい場合には
エクセルの近似曲線の機能だけでは物足りない場合があります。
そんなときにエクセルでまじめに最小二乗法で解く方法を紹介します。

まずは、最小二乗法を解くとき、逆行列を用いるところまではご理解願います。
詳しくはこちらで紹介しています。
  
最小二乗法
  一般式による最小二乗法

以下では円の最小二乗法を例にとって説明をしたいと思います。

Exelファイルはこちらよりダウンロードできます。
n次式近似を行ったものはこちらから

円の最小二乗法を解くときの円の一般式を

  X2 + Y2 + AX + BY + C = 0

としたときの行列式は

  
円の最小二乗法

です。
まず、行列式に使われている∑の値を求めます。
∑はエクセル関数の「SUM」関数を用いればよいので、簡単に求まります。

円近似データ

まず、行列式の各値を各セルに書いておきます。
次に逆行列を求めるのですが、エクセル関数に「MINVERSE」というのがあります。

逆行列を表示したい複数のセル(下記の例では3×3のセル)を選択します。
次に

  
=MINVERSE(逆行列を求める複数のセル)

と入力します。ここでは文字を入力するだけでEnterキーは押さないこと


逆行列計算

で、次が最大のポイント!
通常ではEnterキーを押したいところですが、行列の計算では

  Ctrlキー  + Shiftキー + Enterキー

を同時に押します。
これで、逆行列の値が求まります。

逆行列計算結果

あとは行列の積が計算できれば、求めたいA,B,Cの値を求めることが
できるのですが、行列の積の計算にはエクセル関数の「MMULT」といのを
用います。

逆行列を計算したときと同様に行列の積の結果を表示したいセル複数のセルを選択し、
   =MMULT(行列1,行列2)
を入力します。ここでも最後はEnterキーだけではなく

  Ctrlキー  + Shiftキー + Enterキー

を押すので注意して下さい。

行列の積

これで求めたかった未知数A,B,Cが求まります。

行列の積の結果

今回は円の近似なので、A,B,Cの値を用いで円の中心座標(a,b)、円の半径rを
求めるには

  a = -A / 2
  b = -B / 2
  r = SQRT(a^2 + b^2 - C)

なので、

円近似結果

となり、円の近似式を求めることができます。


Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

一般式による最小二乗法(円の最小二乗法)

前回はn次曲線による近似の方法につてい説明しましたが、円や楕円、
その他の一般式についても最小二乗法による近似は可能です。
今回は円の最小二乗法を例にとって説明しますが、他の一般式についても
要領は同じです。
楕円近似については「最小二乗法による楕円近似」を参照下さい。

まず初めに一般式を作成します。
円の場合、円の中心座標(a,b)、円の半径 r とすると

  (X - a)2 + (Y - b)2 = r2 ・・・①

n次曲線の時のようにX座標がXiの時のY座標Yiと近似曲線上のY座標f(Xi)
との差の二乗を計算しようにも、円のような式の場合、近似曲線上の点が
存在しない場合もあります。
そこで、今回はY座標の差の2乗の総和を求めるのではなく、①式を=0
式に変形し、点の座標(Xi,Yi)を代入し、その式の2乗の総和を求めます。
①式を=0になるように変形し、2乗の総和は

  ∑{(Xi - a)2 + (Yi - b)2 - r22 = 0 ・・・②

となります。
ただし、このまま未知数a,b,rに関して②式を偏微分してもa,b,rは4次関数と
なるので、各未知数の偏微分=0の時が最小とは限りません。
そこで、②式を展開し、下の式のように置きます。

  ∑{Xi2 + Yi2 + AXi + BYi + C}2 = 0 ・・・③

ただし    
  A = -2a ・・・④
  B = -2b ・・・⑤
  C =  a2 + b2 - r2  ・・・⑥

③式に関してA,B,Cについて偏微分すると

  ∂/∂A = A∑Xi2 + B∑XiYi + C∑Xi + ∑Xi3   + ∑XiYi2 = 0 ・・・⑦
  ∂/∂B = A∑XiYi + B∑Yi2 + C∑Yi + ∑Xi2Yi + ∑Yi3   = 0 ・・・⑧
  ∂/∂C = A∑Xi   + B∑Yi   + C∑1  + ∑Xi2   + ∑Yi2    = 0 ・・・⑨

⑦、⑧、⑨式を行列を用いて解くと

  円の最小二乗法

となり、逆行列を求めるとA,B,Cが求まり、④、⑤、⑥式より
円の中心座標(a,b)、円の半径 r を求めることができる。


Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

最小二乗法

最小自乗法ともいいます。
点の集まりから、近似直線(曲線)を引くための手法です。

最小二乗グラフ


全ての点と近似直線との差の合計が最小になるようになるように直線を引きます。
今回は簡単にするため、f(X)= aX + b の直線の場合で説明します。

X = Xi のとき、直線上のY座標は

  Yi = f(Xi) = aXi + b

より、点と近似直線との差は

  Yi - f(Xi)

   = Yi - (aXi + b)

となります。

この差の合計が一番小さい時にもっとも点の集まりを直線で近似できている
こととなりますが、そのままこの差の総和を計算すると差の値がプラスの時と
マイナスの時があるため、差を2乗してから合計した値が最小になるようにします。

よって、差の2乗の合計は

  
∑(Yi - (aXi + b))2

 = ∑ (a2Xi2 + 2aXib + b2 - 2aXiYi - 2bYi + Yi2)・・・式①

となり、この総和の値が最小となるaとbを求めれば近似直線を求められる
こととなります。

この式を良くみると、aとbの二次関数でできているため、この二次関数が最小となる値を求めればよい。
二次関数が最小となるのは微分した値 = 0 の場合であるから、式①をaとbで
偏微分した値が0(ゼロ)となる値を求めればよい。

式①をaとbでそれぞれ偏微分すると

  ∂/∂a = 2a∑Xi2 + 2b∑Xi - 2∑XiYi = 0

  ∂/∂b = 2a∑Xi  + 2b∑1  - 2∑Yi    = 0

となり、未知数がaとbで式が2本あることから、aとbの連立法的式を解くことで未知数a,bを求めることができる。

連立方程式を行列で表すと
  一次式近似        

となり、行列を解くと未知数a,bが求まり、近似直線を求めることができる。

ちなみに、二次式(aX2 + bX + c)で近似すると

 2次式

三次式(aX3 + bX2 + cX + d)で近似すると

 3次式

と規則的に変化し、n次式近似のプログラムも簡単に作ることができます。

この計算をエクセルで行ったものはこちらからダウンロードできます。


逆行列を求めるプログラムにはガウスの消去法などが一般的に用いられます。

ここで、注意点!
三次式(aX3+bX2+cX+d)の近似を例にとってみると、近似処理をする過程でXに関する計算式はX~X6まで計算されます。
ここで、例えばXの値の範囲が

  0.01~1000

だったとすると、Xに関する計算では

  0.000000000001~1000000000000000000

までの計算がされます。逆行列の計算ではこれらの値に関して足し算や掛け算がなされる訳ですからコンピュータの計算誤差(桁落ち、情報落ちなど?)が発生する場合があります。
これを防ぐために、最小二乗法のプログラムでは近似式をそのまま使うのではなく、Xの値から
Xの平均値(Xb)を引いた計算式

  a(X-Xb)3+b(X-Xb)2+c(X-Xb)+d

で処理を行うのが一般的です。


Loading...
スポンサーリンク



現在の閲覧者数: / 合計