(57)【特許請求の範囲】
【請求項１】
データの平均値を正方向及び負方向にシフトすることによってスレッショルド範囲を設定し、
該スレッショルド範囲を外れるデータを削除し、
スパイクノイズが除去されるまで、前記スレッショルド範囲を狭めつつ、上記処理を繰り返すことを特徴とするスパイクノイズの除去方法。
【請求項２】
請求項１において、前記スレッショルド範囲の初期値を、生データのレンジに所定係数を乗算することによって設定することを特徴とするスパイクノイズの除去方法。
【請求項３】
請求項１において、前記スレッショルド範囲の初期値や更新値を、生データ又は前回のスパイクノイズ除去データの算術平均に所定係数を乗算することによって設定することを特徴とするスパイクノイズの除去方法。
【請求項４】
請求項１において、前記スレッショルド範囲の初期値や更新値を、生データ又は前回のスパイクノイズ除去データの最大値と最小値を求め、その差に基づいて設定することを特徴とするスパイクノイズの除去方法。
【請求項５】
請求項１において、前記スレッショルド範囲の初期値や更新値を、生データ又は前回のスパイクノイズ除去データと、そのフィルタ処理結果との差分を求め、該差分から求まる最大値又は算術平均に所定係数を乗算することによって設定することを特徴とするスパイクノイズの除去方法。
【請求項６】
請求項１において、前記繰り返し処理を、スレッショルド範囲が所定範囲以下となった時に終了することを特徴とするスパイクノイズの除去方法。
【請求項７】
請求項１において、前記繰り返し処理を、前回のスパイクノイズ除去データの算術平均に所定係数を乗算することによって設定したスレッショルド範囲を外れるデータが無くなったときに終了することを特徴とするスパイクノイズの除去方法。
【請求項８】
請求項１において、前記繰り返し処理を、その繰り返し回数が所定値となった時に終了することを特徴とするスパイクノイズの除去方法。
【請求項９】
請求項１において、前記繰り返し処理を、前回のデータの平均値とスパイクノイズ除去後の今回のデータの平均値の差分が所定値以下となった時に終了することを特徴とするスパイクノイズの除去方法。
【請求項１０】
請求項１において、前記繰り返し処理を、スパイクノイズ除去データの最大値、最小値、平均値の関係が、所定の関係となった時に終了することを特徴とするスパイクノイズの除去方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スパイクノイズの除去方法に係り、特に、形状測定データ等のスパイクノイズを除去する際に用いるのに好適な、多階調を有する生データに歪みを与えることなく、且つ簡単なアルゴリズムで、計算速度が速く、少ない記憶容量で処理することが可能な、スパイクノイズの処理方法に関する。
【０００２】
【従来の技術】
測定器から得られた生データは、様々なノイズを含んでいることが多くあり、特に、機械的あるいは電気的な衝撃等によって発生する、近傍のデータに大して極端に大きいか、あるいは小さい鋭いピークを持つスパイク状のノイズや、深い溝状のノイズ（以下、単にスパイクノイズと称する）は、誤測定の原因となるため、除去する必要があり、しばしば平滑化用の（ローパス）フィルタが使用される。
【０００３】
【発明が解決しようとする課題】
しかしながら、フィルタの使用のみでは、なかなか除去できないケースも多い。例えば、このようなスパイクノイズを、ガウス関数で平滑化するガウスフィルタや、移動平均で平滑化する移動平均フィルタ等の一般的な線形フィルタで除去しようとすると、周囲のデータに比べてノイズ成分が極端に大きいため、正常データ部分の特徴をなくさないように弱めの平滑化処理を行えば、スパイクノイズの影響が強く残ってしまうし、逆にノイズの影響を小さくしようとして強めの平滑化処理を行えば、正常データの特徴が歪んでしまう。
【０００４】
又、特開平８−２７２９５６には、２値化画像から縦線状ノイズを検出し、検出されたノイズを特異点として計数して縦方向（副走査方向）の特異点の分布を得て、除去すべき縦線状ノイズの存在する列を検出し、除去箇所情報を得て、該除去個所情報に基づく縦線ノイズ除去相当列についてのみ、例えば３×３パターンマッチング方式により、マスクパターンに一致する注目画素を反転して、ノイズ除去を行うことが記載されているが、処理が複雑なだけでなく、多階調を有するデータのスパイクノイズには、有効でなかった。
【０００５】
本発明は、前記従来の問題点を解決するべくなされたもので、多階調を有する生データに歪みを与えることなく、且つ簡単なアルゴリズムで、計算速度が速く、少ない記憶容量でスパイクノイズを除去することを課題とする。
【０００６】
【課題を解決するための手段】
本発明は、スパイクノイズの除去に際して、データの平均値を正方向及び負方向にシフトすることによってスレッショルド範囲を設定し、該スレッショルド範囲を外れるデータを削除し、スパイクノイズが除去されるまで、前記スレッショルド範囲を狭めつつ、上記処理を繰り返すことにより、前記課題を解決したものである。
【０００７】
又、前記スレッショルド範囲の初期値を、生データのレンジに所定係数を乗算することによって設定するようにしたものである。
【０００８】
あるいは、前記スレッショルド範囲の初期値や更新値を、生データ又は前回のスパイクノイズ除去データの算術平均に所定係数を乗算することによって設定するようにしたものである。
【０００９】
あるいは、前記スレッショルド範囲の初期値や更新値を、生データ又は前回のスパイクノイズ除去データの最大値と最小値を求め、その差に基づいて設定するようにしたものである。
【００１０】
あるいは、前記スレッショルド範囲の初期値や更新値を、生データ又は前回のスパイクノイズ除去データと、そのフィルタ処理結果との差分を求め、該差分から求まる最大値又は算術平均に所定係数を乗算することによって設定するようにしたものである。
【００１１】
又、前記繰り返し処理を、スレッショルド範囲が所定範囲以下となった時に終了するようにしたものである。
【００１２】
あるいは、前記繰り返し処理を、前回のスパイクノイズ除去データの算術平均に所定係数を乗算することによって設定したスレッショルド範囲を外れるデータが無くなったときに終了するようにしたものである。
【００１３】
あるいは、前記繰り返し処理を、その繰り返し回数が所定値となった時に終了するようにしたものである。
【００１４】
あるいは、前記繰り返し処理を、前回のデータの平均値とスパイクノイズ除去後の今回のデータの平均値の差分が所定値以下となった時に終了するようにしたものである。
【００１５】
あるいは、前記繰り返し処理を、スパイクノイズ除去データの最大値、最小値、平均値の関係が、所定の関係となった時に終了するようにしたものである。
【００１６】
【発明の実施の形態】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００１７】
本発明の第１実施形態は、図１に示す如く、２次元の生データＤに対して、本発明を適用したもので、図から、生データＤをローパスフィルタに通すことによって得られるフィルタ曲線Ｆが、スパイクノイズＳによって引き摺られているのが分かる。
【００１８】
そこで、本実施形態では、図１に示すようなフィルタ曲線Ｆから、図２に示す如く、ある一定量の値（正方向（上方向）／負方向（下方向）の２つの値、それぞれＵ1、Ｌ1とする）だけシフトした曲線（以下、上下のスレッショルド曲線Ｔu1、Ｔl1と称する）を仮定して、これらの曲線を境に生データを削除する。
【００１９】
ここで、スレッショルド範囲の上シフト量（上限とも称する）及び下シフト量（下限とも称する）の初期値Ｕ1、Ｌ1は、生データＤが未知であるので、余裕をもった値とする。例えば、測定可能範囲（測定レンジ）がＭである場合に、次式により、上シフト量及び下シフト量の初期値Ｕ1、Ｌ1を決定することができる。
【００２０】
Ｕ1又はＬ1＝Ｍ×ａ                    …（１）
【００２１】
ここで、ａは任意に設定可能な定数である。
【００２２】
あるいは、例えば、データの算術平均Ｘmean（粗さのパラメータのＲａと同じ）を求め、次式により、上シフト量及び下シフト量の初期値Ｕ1、Ｌ1を決定することができる。
【００２３】
Ｕ1又はＬ1＝Ｘmean×ｂ                …（２）
【００２４】
ここでｂは、任意に設定可能な定数である。
【００２５】
あるいは、最初のデータＤから、大まかなデータの最大値Ｄmaxと最小値Ｄminを求め、次式により、上シフト量及び下シフト量の初期値Ｕ1及びＬ1を決定することができる。
【００２６】
Ｕ1又はＬ1＝（Ｄmax−Ｄmin）／２    …（３）
【００２７】
ここで、大まかなデータの最大値Ｄmaxと最小値Ｄminは、例えば、次のようにして求めることができる。
【００２８】
▲１▼データの最初からｎ点を抽出して、その中の平均値又は中間値から、ある一定の値以上離れているデータを除外する。
【００２９】
▲２▼このｎ点の抽出範囲を順次移動して、同様の処理をデータの最後まで行う。
【００３０】
▲３▼この結果の大まかなデータから、大まかな最大値Ｄmaxと大まかな最小値Ｄminを求める。
【００３１】
このようにして、スレッショルド範囲外のデータが除去された中間結果を図３に示す。この図３の状態では、未だスパイクノイズの痕跡Ｓ′が残っているので、この図３の中間結果に対して、前回と同様の処理を行う。
【００３２】
但し、スレッショルド値に関しては、初期値Ｕ1、Ｌ1の代りに、例えば次のようにして決定した、Ｕ2（＜Ｕ1）、Ｌ2（＜Ｌ1）なる更新値を適用する。
【００３３】
例えば前回のスパイクノイズ除去データの算術平均Ｘmean′を求め、次式により、次回の上シフト量Ｕ2及び下シフト量Ｌ2を決定する。
【００３４】
Ｕ2又はＬ2＝Ｘmean×ｃ                …（４）
【００３５】
ここで、ｃは任意に設定可能な定数である。
【００３６】
あるいは、前回のスパイクノイズ除去データから、大まかなデータの最大値Ｄmax′と最小値Ｄmin′を求め、次式により、次回の上シフト量Ｕ2及び下シフト量Ｌ2を決定する。
【００３７】
Ｕ2又はＬ2＝（Ｄmax′−Ｄmin′）／２    …（５）
【００３８】
あるいは、前回のスパイクノイズ除去データの真の最大値Ｄmax”と真の最小値Ｄmin”を求め、次式により、次回の上シフト量Ｕ2及び下シフト量Ｌ2を決定する。
【００３９】
Ｕ2又はＬ2＝（Ｄmax”−Ｄmin”）×ｄ／２    …（６）
【００４０】
ここで、ｄは、任意に設定可能な定数であり、例えば０．９５とすることができる。
【００４１】
図３に示す中間結果に対して２回目の処理を行っている状態を図４に示す。２回目のフィルタ曲線Ｆ2が、スパイクノイズＳ2に引き摺られる影響が少なくなっていることが分かる。
【００４２】
この２回目の処理によってノイズが除去された最終結果を図５に示す。
【００４３】
スパイクノイズの除去が不完全な場合には、更に前記処理を繰り返す。この場合も、スレッショルド範囲に関しては、Ｕi+1＜Ｕi、Ｌi+1＜Ｌiなる更新値を適用する。
【００４４】
前記スレッショルド範囲の初期値や更新値は、次のようにして決定することもできる。即ち、図６に示す如く、生データＤ又は前回のスパイクノイズ除去データと、そのフィルタ処理結Ｆとの差分△を求め、この差分から求まる差分の最大値又は算術平均Ｍから、次式により、上シフト量及び下シフト量の初期値Ｕ１、Ｌ１（又は更新値Ｕｉ、Ｌｉ）を決定する。
【００４５】
Ｕ１又はＬ１＝Ｍ×ｅ  …（７）
【００４６】
ここでｅは、任意に設定可能な定数である。
【００４７】
差分△の最大値又は算術平均Ｍは、例えば、次のようにして求めることができる。
【００４８】
▲１▼図６に示すように、生データＤ又は前回のスパイクノイズ除去データにローパスフィルタ処理を行ってフィルタ曲線Ｆを求める。
▲２▼フィルタ曲線Ｆをｎ個の任意区間ｉ（１≦ｉ≦ｎ）に分割する。この時、区間毎のデータ数はスパイクノイズの３〜５倍以上とするが、必ずしも、各区間は同一のデータ数とする必要はない。
▲３▼フィルタ曲線Ｆと生データＤ又は前回のスパイクノイズ除去データとの差分△を区間毎に求める。この時、スパイクノイズを含まない区間に付いては、必ずしも差分を求める必要はない。
▲４▼差分を求めた各区間について、差分データの中間値、又は、各区間毎の差分データの最大値と最小値を除いた残りのデータの算術平均を求める。ここで中間値は、該当区間の差分データを、その値の大きさの順にならべ、差分データの数の中間位置に相当するデータを中間値とする。
▲５▼各区間の差分データの中間値又は算術平均の最大値又は算術平均をＭとする。
【００４９】
最終結果の判定は、例えば次のようにして行うことができる。
【００５０】
例えば、スレッショルド範囲の上シフト量Ｕ又は下シフト量Ｌが、前記測定レンジＭ×ａ′以下となった場合に終了とする。ここでａ′は任意に設定可能な定数である。
【００５１】
あるいは、前回のスパイクノイズ除去データの算術平均Ｘmeanから決めた上限Ｔｕ又は下限Ｔｌを外れるデータが無くなった場合に終了とする。
【００５２】
あるいは、繰り返し処理の繰り返し回数ｎを予め決めておいて終了とする。
【００５３】
あるいは、最初のデータＤ、又は、前回のスパイクノイズ除去データから、大まかなデータの最大値Ｄmaxと最小値Ｄminを求め、次回の上シフト量又は下シフト量が、次式の関係を満足した時に終了とする。
【００５４】
Ｕ又はＬ＜（Ｄmax−Ｄmin）×ｄ′／２          …（８）
【００５５】
ここで、ｄ′は任意に設定可能な定数である。
【００５６】
あるいは、ｎ番目とｎ＋１番目のフィルタ曲線ＦnとＦn+1の差分が、ある値以下になった場合に終了とする。ここで、差分は、例えば次式のいずれかによって定義することができる。
【００５７】
Σ｜Ｘn+1（j）−Ｘn（j）｜／Ｎ              …（９）
Σ（Ｘn+1（j）−Ｘn（j））６2／Ｎ            …（１０）
Σ√（Ｘn+1（j）−Ｘn（j））６2／Ｎ          …（１１）
【００５８】
ここで、Ｘn+1（j）、Ｘn（j)は、それぞれフィルタ曲線Ｆn+1、Ｆn上のｊ番目のデータ、Ｎは、データ数である。
【００５９】
あるいは、前回のスパイクノイズ除去データの最大値Ｄmax′、最小値Ｄmin′、平均値Ｘmean、又は、真の最大値Ｄmax”、真の最小値Ｄmin”、二乗平均値Ｘmean′の比率が、次式の関係を満たす場合に終了とする。
【００６０】
Ｄmax′−Ｄmin′≦Ｘmean×ｆ                  …（１２）
Ｄmax”−Ｄmin”≦Ｘmean′×ｆ′              …（１３）
【００６１】
ここで、ｆ、ｆ′は、任意に設定可能な定数である。
【００６２】
このようにして、生データＤからスパイクノイズＳを除去する際に、フィルタ曲線Ｆではなくスレッショルド範囲Ｔｕ〜Ｔｌを使用することで、図７に示す如く、スパイクノイズＳが片側（図７では下側）に集中していて、フィルタ曲線が一方向に引き摺られている場合でも、必要なデータが除去されることがない。
【００６３】
前記第１実施形態においては、本発明が２次元のデータに適用されていたが、本発明の適用範囲はこれに限定されず、図８に示すような３次元の生データＤに対しても適用することができる。
【００６４】
以下、３次元のデータに適用した本発明の第２実施形態を詳細に説明する。
【００６５】
本実施形態においては、図９に示す如く、例えば従来と同様の面のローパスフィルタによって得られるフィルタ曲面ＦＳに対して、ある一定量の値Ｕ1、Ｄ1だけシフトしたスレッショルド曲面ＴＳu、ＴＳlをそれぞれ設定する。
【００６６】
次いで図１０に示す如く、このスレッショルド面ＴＳu、ＴＳlを境にスパイクノイズＳを削除する。スパイクノイズが除去された結果を図１１に示す。
【００６７】
２次元の場合と同様に、スレッショルド値の上シフト量及び下シフト量を、Ｕi+1＜Ｕi、Ｌi+1＜Ｌiとして、処理をｎ回繰り返すことにより、最終結果を得ることができる。
【００６８】
なお、前記実施形態においては、前回のスレッショルド範囲等に、所定の係数を乗算することによって、今回のスレッショルド範囲を決定していたが、今回のスレッショルド範囲を決定する方法は、これに限定されず、例えば所定値を加算又は減算することによって、決定しても良い。
【００６９】
又、前記フィルタ曲線Ｆ又はフィルタ曲面ＦＳを得るためのローパスフィルタとしては、位相補償型のフィルタが、波形の崩れが少ないので好ましいが、フィルタの種類は、これに限定されない。
【００７０】
本発明は、形状測定データのスパイクノイズの除去に好適であるが、本発明の適用対象は、これに限定されず、形状測定データ以外の一般のデータのスパイクノイズの除去にも同様に適用できる。
【００７１】
【発明の効果】
本発明によれば、通常のフィルタ処理と比べて、スパイク状のノイズが、よりよく除去できる。又、スパイクノイズが上か下でどちらか一方の場合でも、両方に出ている場合でも、対応できる等の優れた効果を有する。
【図面の簡単な説明】
【図１】本発明の第１実施形態が適用される２次元の生データとフィルタ曲線の例を示す線図
【図２】図１の例に対してスレッショルド曲線を設定した状態を示す線図
【図３】図２のスレッショルド曲線によってノイズを除去した中間結果を示す線図
【図４】図３の中間結果に対して、第２フィルタ曲線及び第２スレッショルド曲線を設定した状態を示す線図
【図５】図４の第２スレッショルド曲線によりノイズが除去された最終結果の例を示す線図
【図６】スレッショルド値の初期値又は更新値を求める方法の一つを説明するための線図
【図７】本発明が有効な例を示す線図
【図８】本発明の他の適用対象である３次元の生データとフィルタ曲面の例を示す線図
【図９】図８の例に対して第２実施形態により設定されるスレッショルド曲面の例を示す線図
【図１０】図９のスレッショルド曲面により削除される生データを示す線図
【図１１】図１０によりスパイクノイズを除去した中間結果を示す線図
【符号の説明】
Ｄ…生データ
Ｆ…フィルタ曲線
Ｓ…スパイクノイズ
Ｔ…スレッショルド曲線
Ｕ1、Ｕ2…上シフト量
Ｌ1、Ｌ2…下シフト量
ＦＳ…フィルタ曲面
ＴＳｕ、ＴＳｌ…スレッショルド曲面
【図１】
0003719634.tif 000002
【図２】
0003719634.tif 000003
【図３】
0003719634.tif 000004
【図４】
0003719634.tif 000005
【図５】
0003719634.tif 000006
【図６】
0003719634.tif 000007
【図７】
0003719634.tif 000008
【図８】
0003719634.tif 000009
【図９】
0003719634.tif 000010
【図１０】
0003719634.tif 000011
【図１１】
0003719634.tif 000012