JP2019153001A - 演算装置、画像処理システム、演算方法、及びプログラム - Google Patents

演算装置、画像処理システム、演算方法、及びプログラム Download PDF

Info

Publication number
JP2019153001A
JP2019153001A JP2018036891A JP2018036891A JP2019153001A JP 2019153001 A JP2019153001 A JP 2019153001A JP 2018036891 A JP2018036891 A JP 2018036891A JP 2018036891 A JP2018036891 A JP 2018036891A JP 2019153001 A JP2019153001 A JP 2019153001A
Authority
JP
Japan
Prior art keywords
value
parameter
update
determination
vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018036891A
Other languages
English (en)
Other versions
JP7054775B2 (ja
Inventor
俊嗣 堀井
Toshitsugu Horii
俊嗣 堀井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Priority to JP2018036891A priority Critical patent/JP7054775B2/ja
Publication of JP2019153001A publication Critical patent/JP2019153001A/ja
Application granted granted Critical
Publication of JP7054775B2 publication Critical patent/JP7054775B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

【課題】 複数の数値の中央値を求める演算処理に要する演算負荷を低減することができる演算装置、画像処理システム、演算方法、及びプログラムを提供する。【解決手段】 演算装置1aにおいて、判定部111は、N個の数値と基準値P1(m)(基準パラメータP1の値)とのそれぞれの大小関係を判定する判定処理を行う。更新部112は、判定処理の判定結果に基づいて基準値P1(m)を更新する更新処理を行う。繰り返し制御部113は、更新後の基準値P1(m)の値を用いた判定処理を判定部111に実行させ、更新部112に基準値P1(m)を繰り返し更新させる。そして、繰り返し制御部113は、所定回数Z繰り返し更新した後の基準値P1(m)を中央値とする。【選択図】図1

Description

本発明は、一般に演算装置、画像処理システム、演算方法、及びプログラムに関する。
従来、メディアンフィルタを用いた画像処理が行われている。特許文献1に記載の画素データ処理装置は、所定方向に沿って並ぶ複数の画素を有する画素列ごとに、画素データの中央値を求める。そして、画素データ処理装置は、複数の画像列の各中央値を並べた行の中央値を擬似的な中央値としている。
特開2001−45507号公報
上述の特許文献1の画素データ処理装置は、画素列毎に画素データ(数値データ)の中央値を求めている。すなわち、画素データ処理装置は、複数の数値データがそれぞれ表す複数の数値から中央値を求める。
しかし、複数の数値の中央値を求める演算処理では、複数の数値を昇順または降順にソートする処理(ソート処理)のための演算負荷が比較的大きくなり、演算処理に要する時間が比較的長くなっていた。
本発明の目的は、複数の数値の中央値を求める場合に演算負荷を低減することができる演算装置、画像処理システム、演算方法、及びプログラムを提供することにある。
本発明の一態様に係る演算装置は、2以上の整数をNとし、前記N個の数値データがそれぞれ表す数値に基づいて、前記N個の数値の中央値を求める演算装置である。演算装置は、判定部と、更新部と、繰り返し制御部と、を備える。前記判定部は、前記N個の数値がとり得る上限値と下限値との間の値に設定されたパラメータを基準パラメータとし、前記N個の数値と前記基準パラメータの値とのそれぞれの大小関係を判定する判定処理を行う。前記更新部は、前記判定処理の判定結果に基づいて前記基準パラメータの値を更新する更新処理を行う。前記繰り返し制御部は、更新後の前記基準パラメータの値を用いた前記判定処理を前記判定部に実行させ、前記更新部に前記基準パラメータの値を繰り返し更新させる。前記繰り返し制御部は、所定回数繰り返し更新した後の前記基準パラメータの値を前記中央値とする。
本発明の一態様に係る画像処理システムは、上述の演算装置と、濃淡画像の情報を受け取る画像取得部と、を備える。前記N個の数値は、前記濃淡画像の複数の画素のうち、注目画素を含む所定領域の前記N個の画素のそれぞれの濃淡値である。前記演算装置は、前記繰り返し制御部が求めた前記中央値を前記注目画素の濃淡値に設定することで、前記濃淡画像の平滑処理を行う。
本発明の一態様に係る演算方法は、2以上の整数をNとし、前記N個の数値データがそれぞれ表す数値に基づいて、前記N個の数値の中央値を求める演算方法である。前記演算方法は、判定ステップと、更新ステップと、制御ステップと、を備える。前記判定ステップは、前記N個の数値がとり得る上限値と下限値との間の値に設定されたパラメータを基準パラメータとし、前記N個の数値と前記基準パラメータの値とのそれぞれの大小関係を判定する判定処理を行う。前記更新ステップは、前記判定処理の判定結果に基づいて前記基準パラメータの値を更新する更新処理を行う。前記制御ステップは、更新後の前記基準パラメータの値を用いた前記判定処理を前記判定ステップに実行させ、前記更新ステップに前記基準パラメータの値を繰り返し更新させる。前記処理制御ステップは、所定回数繰り返し更新した後の前記基準パラメータの値を前記中央値とする。
本発明の一態様に係るプログラムは、コンピュータシステムに、上述の演算方法を実行させる。
以上説明したように、本発明は、複数の数値の中央値を求める場合に演算負荷を低減することができるという効果がある。
図1は、実施形態の画像処理システムの構成を示すブロック図である。 図2は、同上の画像処理システムの演算装置が実行するクロスメディアンフィルタの処理を説明するための図である。 図3は、同上の演算装置のMAX演算を説明するための図である。 図4は、同上の演算装置のEQ演算を説明するための図である。 図5は、同上の演算装置の処理を示すフローチャートである。 図6は、同上の画像処理システムを備える検査システムの構成を示すブロック図である。 図7は、同上の検査システムの対象物を示す斜視図である。 図8は、同上の検査システムの画像処理を説明するための図である。 図9は、同上の変形例の演算装置のMIN演算を説明するための図である。 図10は、同上の変形例の演算装置のEQ演算を説明するための図である。
以下の実施形態は、一般に演算装置、画像処理システム、演算方法、及びプログラムに関する。より詳細に、以下の実施形態は、複数の数値データがそれぞれ表す複数の数値の中央値を求める演算装置、画像処理システム、演算方法、及びプログラムに関する。
本実施形態の画像処理システムは、コンピュータを用いた画像処理技術により、対象物を撮像した濃淡画像に画像処理を施して、対象物の検査(汚れの有無、キズの有無、欠けの有無、良品判定など)を行う。
図1は、本実施形態の検査システムA1の一部を示す。検査システムA1は、画像処理システム1と、表示装置2とを備える。
画像処理システム1(画像処理装置)は、演算装置1a、及び画像取得部1bを備えており、濃淡画像の情報を取得し、画像処理用のプログラムを実行することで、濃淡画像の情報に対して画像処理を施す。
演算装置1aは、コンピュータシステムであり、ハードウェアとしてのプロセッサ及びメモリを主構成とする。メモリに記録されたプログラム(画像処理用のプログラム)をプロセッサが実行することによって、本開示における演算装置1aの機能が実現される。プログラムは、コンピュータシステムのメモリに予め記録されていてもよいが、電気通信回線を通じて提供されてもよいし、コンピュータシステムで読み取り可能なメモリカード、光学ディスク、ハードディスクドライブ等の非一時的記録媒体に記録されて提供されてもよい。コンピュータシステムのプロセッサは、半導体集積回路(IC)又は大規模集積回路(LSI)を含む1乃至複数の電子回路で構成される。複数の電子回路は、1つのチップに集約されていてもよいし、複数のチップに分散して設けられていてもよい。複数のチップは、1つの装置に集約されていてもよいし、複数の装置に分散して設けられていてもよい。
画像取得部1bは、撮像装置、データ記憶装置、サーバなどのいずれかから有線伝送路または無線伝送路を介して、対象物が写っている濃淡画像の情報を受け取る。または、画像取得部1bは、メモリカード、光学ディスクなどの携行型の非一時的記録媒体から対象物が写っている濃淡画像の情報を受け取ってもよい。画像取得部1bによって取得された濃淡画像の情報は、演算装置1aに引き渡される。
濃淡画像は複数の画素(ピクセル)で構成されており、各画素に対応して濃淡データ(数値データ)がそれぞれ設定されている。濃淡データは濃淡値(数値)を表しており、濃淡値は8ビットのデータで表される。すなわち、濃淡値は256段階に分類されており、各画素の濃淡値は、0−255の範囲のいずれかの値に設定される。なお、本実施形態において、暗い画素は濃淡値が低く、明るい画素は濃淡値が高くなる。
演算装置1aは、フィルタ11、検査部12、結果出力部13を備える。
フィルタ11は、クロスメディアンフィルタとして機能し、画像取得部1bから受け取った濃淡画像に平滑化処理を施す。
クロスメディアンフィルタとして機能するフィルタ11は、濃淡画像の複数の画素から注目画素を選択し、注目画素及び注目画素の周囲の複数の画素の各濃淡値の中央値(濃淡中央値)を求める。そして、フィルタ11は、注目画素の濃淡データを濃淡中央値に設定し直す。フィルタ11は、濃淡画像の複数の画素のそれぞれを注目画素として順に選択し、複数の画素のそれぞれの濃淡データを濃淡中央値に設定し直すことで、濃淡画像に平滑化処理を施す。
図2は濃淡画像の一部を示しており、濃淡画像では、複数の画素Eがマトリクス状に配置されている。
クロスメディアンフィルタとして機能するフィルタ11は、画素E(1)を注目画素とした場合、注目画素E(1)を中心とする行方向及び列方向に位置する計10個の画素E(2),E(3),………,E(10),E(11)を、注目画素E(1)の周囲の複数の画素として抽出する。画素E(2)−E(4)及び画素E(5)−E(7)は、注目画素E(1)を挟んで列方向に並んで配置されている。画素E(8),E(9)及び画素E(10),E(11)は、注目画素E(1)を挟んで行方向に並んで配置されている。すなわち、画素E(1)−E(7)は列方向に延びる第1画素列L1を構成し、画素E(1),E(8)−E(11)は行方向に延びる第2画素列L2を構成する。第1画素列L1と第2画素列L2との交点が注目画素E(1)になる。そして、フィルタ11は、11個の画素E(1)−E(11)の濃淡中央値(各濃淡値の中央値)を求め、注目画素E(1)の濃淡値として濃淡中央値を設定することで、注目画素E(1)の濃淡データを設定し直す。
一方、本実施形態とは異なる比較例では、11個の画素E(1)−E(11)の濃淡中央値を求める中央値抽出処理のために、11個の画素E(1)−E(11)の各濃淡値を降順または昇順にソートしてから、濃淡中央値を求めていた。この場合、ソート処理用のプログラムが画像処理用のプログラムに実装されており、ソート処理用のプログラムは分岐命令を用いる。そして、ソート処理用のプログラムが分岐命令を実行することによって、演算負荷が比較的大きくなってしまう。この結果、11個の画素E(1)−E(11)のソート処理のための演算負荷が比較的大きくなり、平滑化処理に要する時間が比較的長くなってしまう。
そこで、本実施形態のフィルタ11は、中央値抽出処理に要する演算負荷を低減させるために、以下の中央値抽出処理を行って、11個の画素E(1)−E(11)の濃淡中央値を求める。また、11個の画素E(1)−E(11)の各濃淡値は、D(1)−D(11)で表される。
なお、11個の画素E(1)−E(11)にそれぞれ設定されている11個の濃淡データが、本開示におけるN個の数値データに相当する。また、11個の濃淡データが表す濃淡値D(1)−D(11)が、本開示におけるN個の数値に相当する。Nは2以上の整数であり、本実施形態ではN=11である。また、11個の濃淡値D(1)−D(11)を、D(n)と表すこともある(n=1,2,………,11)。
演算装置1aが実行する画像処理用のプログラムには、平滑処理用のプログラムが含まれており、演算装置1aが平滑処理用のプログラムを実行することで、フィルタ11の機能が実現される。なお、演算装置1aは、1つの命令を複数のデータに適用して、1サイクルで複数のデータを並列処理する命令、所謂SIMD(Single Instruction Multiple Data)の命令(SIMD命令)を実行することができる。
フィルタ11は、判定部111、更新部112、繰り返し制御部113、初期値記憶部114、平滑部115を有する。
判定部111は、11個の濃淡値D(1)−D(11)と基準パラメータP1の値P1(m)とのそれぞれの大小関係を判定する判定処理を行う(なお、mは、1回の中央値抽出処理における判定処理(または後述の更新処理)の累積回数を表す回数パラメータであり、1以上の整数をとる)。このとき、判定部111は、判定処理でSIMD命令を実行することによって、11個の濃淡値D(1)−D(11)と基準パラメータP1の値P1(m)とのそれぞれの大小関係を1サイクルで並列的に判定することができる。なお、以降の説明では、基準パラメータP1の値P1(m)を基準値P1(m)と呼ぶ。
図3、図4は、SIMD命令を用いた判定処理の概略を示す。なお、図3、図4では、(m)と表記しているが、mは判定処理の回数を表す回数パラメータであるので、以下では、m=定数M(1以上の整数)として説明を行う。
まず、図3に示すように、判定部111は、11個の濃淡値D(1)−D(11)のそれぞれを11個の成分として有する11次元の列ベクトルを、数値ベクトルV1として求める。また、判定部111は、基準値P1(M)を11個の成分として有する11次元の列ベクトルを、基準ベクトルV2(M)として求める。
そして、判定部111は、数値ベクトルV1と基準ベクトルV2(M)とのMAX演算を行う。MAX演算はSIMD命令の一つである。この場合、MAX演算は、数値ベクトルV1及び基準ベクトルV2(M)の互いに対応する成分の各値を比較して、各成分の最大値を抽出し、11次元の抽出ベクトルV3(M)を生成する処理である。すなわち、MAX演算では、濃淡値D(1)と基準値P1(M)とが比較され、濃淡値D(2)と基準値P1(M)とが比較され、………、濃淡値D(11)と基準値P1(M)とが比較される。そして、判定部111は、濃淡値D(1)と基準値P1(M)のいずれか大きい方、濃淡値D(2)と基準値P1(M)のいずれか大きい方、………、濃淡値D(11)と基準値P1(M)のいずれか大きい方で11個の成分が表された抽出ベクトルV3(M)を求める。言い換えると、抽出ベクトルV3(M)は、数値ベクトルV1と基準ベクトルV2(M)とから、成分毎の最大値を抽出し、成分毎の最大値で11個の各成分が表された列ベクトルである。このとき、判定部111は、SIMD命令であるMAX演算を実行することによって、抽出ベクトルV3(M)の11個の成分の各値を1サイクルで並列的に求めることができる。なお、数値ベクトルV1及び基準ベクトルV2(M)の互いに対応する成分の各値が等しい場合、抽出ベクトルV3(M)の当該成分の値は濃淡値D(n)または基準値P1(M)になる。
次に、図4に示すように、判定部111は、数値ベクトルV1と抽出ベクトルV3(M)とのEQ演算を行う。EQ演算はSIMD命令の一つである。この場合、EQ演算は、数値ベクトルV1と抽出ベクトルV3(M)との互いに対応する成分の各値を比較して、11次元の判定ベクトルV4(M)を求める処理である。具体的に、EQ演算は、数値ベクトルV1と抽出ベクトルV3(M)との互いに対応する成分の各値を比較して、数値ベクトルV1と抽出ベクトルV3(M)の成分毎に対応する各値が等しいか否かを判定し、判定ベクトルV4(M)はこの判定結果として求められる。判定ベクトルV4(M)の11個の各成分は、数値ベクトルV1及び抽出ベクトルV3(M)の互いに対応する成分の各値が同じ値である場合に「1」(第1値)を設定される。また、判定ベクトルV4(M)の11個の各成分は、数値ベクトルV1及び抽出ベクトルV3(M)の互いに対応する成分の各値が異なる値である場合に「0」(第2値)を設定される。このとき、判定部111は、SIMD命令であるEQ演算を実行することによって、判定ベクトルV4(M)の11個の成分の各値を1サイクルで並列的に求めることができる。
判定ベクトルV4(M)の各成分は、数値ベクトルV1及び基準ベクトルV2(M)の互いに対応する成分の各値を比較した結果を表している。数値ベクトルV1の所定成分の濃淡値D(n)が基準値P1(M)以上であれば、判定ベクトルV4(M)の所定成分の値は「1」になる。数値ベクトルV1の所定成分の濃淡値D(n)が基準値P1(M)未満であれば、判定ベクトルV4(M)の所定成分の値は「0」になる。したがって、判定ベクトルV4(M)において値が「1」である成分の個数は、数値ベクトルV1において基準値P1(M)以上になる濃淡値D(n)の個数になる。言い換えると、判定ベクトルV4(M)において値が「1」である成分の個数は、11個の画素E(1)−E(11)の各濃淡データのうち、濃淡値D(n)が基準値P1(M)以上になる濃淡データの個数になる。
判定部111は、判定ベクトルV4(M)の11個の成分のうち、値が「1」である成分の個数をカウントすることで、濃淡値D(n)が基準値P1(M)以上になる濃淡データの個数をカウントできる。判定部111は、濃淡値D(n)が基準値P1(M)以上になる濃淡データの個数を、カウントパラメータP2の値P2(M)に設定する。以降、カウントパラメータP2の値P2(m)をカウント値P2(m)と呼ぶ。
そして、更新部112は、カウント値P2(M)に基づいて基準パラメータP1の値を更新する更新処理を行う。
具体的に、更新部112は、更新処理において、濃淡データの個数Nの半値、または当該半値を丸めた値を更新閾値K1とする。本開示では、N=11であり、更新閾値K1は5.5に設定されている。そして、更新部112は、カウント値P2(M)が更新閾値K1より大きければ、後述のステップパラメータP3の値P3(M)を基準値P1(M)に加算し、この加算値が、更新後の基準値P1(M+1)になる。また、更新部112は、カウント値P2(M)が更新閾値K1より小さければ、ステップパラメータP3の値P3(M)を基準値P1(M)から減算し、この減算値が、更新後の基準値P1(M+1)になる。なお、以降、ステップパラメータP3の値P3(m)をステップ値P3(m)と呼ぶ。
また、更新部112は、更新後の基準値P1(M+1)を求めた後、ステップ値P3(M)の半値、または当該半値を丸めた値を、次回のステップ値P3(M+1)とする。
次に、繰り返し制御部113は、基準値P1(M)に代えて更新後の基準値P1(M+1)を用いた上述の判定処理を判定部111に実行させ、判定部111は、カウント値P2(M+1)を求める。そして、繰り返し制御部113は、カウント値P2(M)に代えてカウント値P2(M+1)を用いた上述の更新処理を更新部112に実行させる。すなわち、更新部112は、カウント値P2(M+1)と更新閾値K1との大小関係に基づいて、基準値P1(M+1)とステップ値P3(M+1)との加算または減算を行い、基準値P1(M+2)を求める。また、更新部112は、更新後の基準値P1(M+2)を求めた後、ステップ値P3(M+1)の半値、または当該半値を丸めた値を、次回のステップ値P3(M+2)とする。
ステップ値P3(m)は、上述の基準値P1(m)の更新処理が行われる毎に徐々に小さくなる。そして、繰り返し制御部113は、ステップ値P3(m)が予め決められた所定値Rになるまで、基準値P1(m)の更新処理を繰り返させる。そして、繰り返し制御部113は、ステップ値P3(m)が所定値Rになった場合、そのときの基準値P1(m)を、11個の画素E(1)−E(11)の濃淡中央値の近似値とする。
言い換えると、繰り返し制御部113は、回数パラメータmが予め決められた所定回数Zになるまで、基準値P1(m)の更新処理を繰り返させる。そして、繰り返し制御部113は、回数パラメータmが所定回数Zになった場合、そのときの基準値P1(Z)を、11個の画素E(1)−E(11)の濃淡中央値の近似値とする。
以下、図5のフローチャートを用いて、フィルタ11の中央値抽出処理について説明する。ここでは、所定値Rは「1」であり、所定回数Zが「8」になる。
初期値記憶部114には、中央値抽出処理で用いられる基準パラメータP1の初期値P1(1)のデータ、及びステップパラメータP3の初期値P3(1)のデータが予め格納されている。以降、基準パラメータP1の初期値P1(1)を初期基準値P1(1)と呼び、ステップパラメータP3の初期値P3(1)を初期ステップ値P3(1)と呼ぶ。
初期基準値P1(1)は、濃淡値がとり得る値の上限値と下限値との和の半値、または当該半値を丸めた値に予め設定されている。この場合、濃淡値がとり得る値の上限値は255であり、下限値は0であり、[255+0]/2=127.5になる。本実施形態では、初期基準値P1(1)は、127.5の小数点以下を切り上げた値(丸めた値)、すなわち「128」に設定される。
初期ステップ値P3(1)は、初期基準値P1(1)から、濃淡値がとり得る値の下限値を減算した値の半値、または当該半値を丸めた値である。この場合、初期基準値P1(1)は128であり、下限値は0であり、[128−0]/2=64になる。すなわち、初期ステップ値P3(1)は、「64」に設定される。
まず、繰り返し制御部113は、判定部111による1回目の判定処理(m=1)を開始させる。判定部111は、初期値記憶部114から初期基準値P1(1)のデータ、及び初期ステップ値P3(1)のデータを読み出す(ステップS1)。
そして、判定部111は、11個の濃淡値D(1)−D(11)を対象とする1回目の判定処理を行う(ステップS2)。判定部111は、1回目の判定処理を開始すると、数値ベクトルV1及び基準ベクトルV2(1)に基づいて、抽出ベクトルV3(1)を求める。数値ベクトルV1は、濃淡値D(1)−D(11)のそれぞれで各成分が構成された11次元の列ベクトルである。基準ベクトルV2(1)は、初期基準値P1(1)で各成分が構成された11次元の列ベクトルである。判定部111は、数値ベクトルV1及び抽出ベクトルV3(1)に基づいて、判定ベクトルV4(1)を求める。判定部111は、判定ベクトルV4(1)に基づいて、カウント値P2(1)を求める。
更新部112は、1回目の更新処理を行う(ステップS3)。更新部112は、1回目の更新処理を開始すると、カウント値P2(1)に基づいて更新後の基準値P1(2)を求め、基準パラメータP1の値(基準値P1(m))を更新する。すなわち、更新部112は、カウント値P2(1)と更新閾値K1との大小関係に基づいて、初期基準値P1(1)と初期ステップ値P3(1)との加算または減算を行い、基準値P1(2)を求める。
繰り返し制御部113は、ステップ値P3(1)の値「128」の半値である「64」を、変更後のステップ値P3(2)とする(ステップS4)。そして、繰り返し制御部113は、ステップ値P3(m)が所定値「1」であるか否かを判定する(ステップS5)。この場合、ステップ値P3(2)は「64」であり、ステップ値P3(2)は「1」ではない。
そこで、繰り返し制御部113は、判定部111による2回目の判定処理(m=2)を開始させる(ステップS2)。判定部111は、基準値P1(2)を用いた判定処理を実行し、カウント値P2(2)を求める。そして、繰り返し制御部113は、カウント値P2(2)を用いた2回目の更新処理を更新部112に実行させる(ステップS3)。すなわち、更新部112は、カウント値P2(2)と更新閾値K1との大小関係に基づいて、基準値P1(2)とステップ値P3(2)との加算または減算を行い、基準値P1(3)を求める。
繰り返し制御部113は、ステップ値P3(2)の値「64」の半値である「32」を、変更後のステップ値P3(3)とする(ステップS4)。そして、繰り返し制御部113は、ステップ値P3(m)が所定値「1」であるか否かを判定する(ステップS5)。この場合、ステップ値P3(3)は「32」であり、ステップ値P3(3)は「1」ではない。
そこで、繰り返し制御部113は、判定部111による3回目の判定処理(m=3)を開始させる(ステップS2)。判定部111は、基準値P1(3)を用いた判定処理を実行し、カウント値P2(3)を求める。そして、繰り返し制御部113は、カウント値P2(3)を用いた3回目の更新処理を更新部112に実行させる(ステップS3)。すなわち、更新部112は、カウント値P2(3)と更新閾値K1との大小関係に基づいて、基準値P1(3)とステップ値P3(3)との加算または減算を行い、基準値P1(4)を求める。
繰り返し制御部113は、ステップ値P3(3)の値「32」の半値である「16」を、ステップ値P3(4)とする(ステップS4)。そして、繰り返し制御部113は、ステップ値P3(m)が所定値「1」であるか否かを判定する(ステップS5)。この場合、ステップ値P3(4)は「16」であり、ステップ値P3(3)は「1」ではない。
そこで、繰り返し制御部113は、判定部111による4回目の判定処理(m=4)を開始させる(ステップS2)。以降、4回目の判定処理及び更新処理、5回目の判定処理及び更新処理、6回目の判定処理及び更新処理、7回目の判定処理及び更新処理が、上記同様に順次行われる。このとき、判定処理及び更新処理の回数が増えるにつれて、ステップ値P3(m)は、ステップ値P3(5)=「8」、ステップ値P3(6)=「4」、ステップ値P3(7)=「2」となる。
そして、繰り返し制御部113は、判定部111による8回目の判定処理(m=8)を開始させる(ステップS2)。判定部111は、基準値P1(8)を用いた判定処理を実行し、カウント値P2(8)を求める。そして、繰り返し制御部113は、カウント値P2(8)を用いた8回目の更新処理を更新部112に実行させる(ステップS3)。すなわち、更新部112は、カウント値P2(8)と更新閾値K1との大小関係に基づいて、基準値P1(8)とステップ値P3(8)との加算または減算を行い、基準値P1(8)を求める。
繰り返し制御部113は、ステップ値P3(7)の値「2」の半値である「1」を、ステップ値P3(8)とする(ステップS4)。そして、繰り返し制御部113は、ステップ値P3(m)が所定値「1」であるか否かを判定する(ステップS5)。この場合、ステップ値P3(8)は「1」であるので、繰り返し制御部113は、基準値P1(8)を、11個の画素E(1)−E(11)の濃淡中央値の近似値とする(ステップS6)。
平滑部115は、濃淡画像の全ての画素のそれぞれを注目画素に順次設定し、全ての画素のそれぞれの濃淡データの濃淡値を濃淡中央値に置き換えた平滑画像を生成する。
検査部12は、濃淡画像と平滑画像との差分画像(または差分二値化画像)を生成し、差分画像(または差分二値化画像)に基づいて対象物の検査処理を行う。
結果出力部13は、検査部12の検査結果、検査経過などの各情報を含む画像データを作成し、表示装置2へ出力する。表示装置2は、受信した画像データに基づいて、検査部12の検査結果、検査経過などの各情報を表示する。
上述のように、演算装置1aは、MAX演算、EQ演算などのSIMD命令を実行することによって、複数の濃淡値の濃淡中央値(の近似値)を求めることができる。演算装置1aは、SIMD命令を実行することによって、複数の濃淡データ(数値データ)を1サイクルで並列的に処理することができ、中央値抽出処理に要する時間を比較例に比べて短縮できる。また、演算装置1aは、ソート処理を行わないので、分岐命令を用いる必要がなく、中央値抽出処理に要する演算負荷を比較例に比べて低減することができる。
また、本実施形態の所定値Rは「1」に限定されない。例えば、所定値Rは「2」、「4」、「8」、「16」、「32」、「64」、「128」のいずれであってもよい。この場合、所定値Rの各値に対応する所定回数Zは、「7」、「6」、「5」、「4」、「3」、「2」、「1」になる。
また、数値ベクトルV1、基準ベクトルV2(m)、抽出ベクトルV3(m)、判定ベクトルV4(m)は、列ベクトルに限定されず、行ベクトルであってもよい。
また、フィルタ11は、メディアンフィルタとして機能してもよい。この場合、注目画素を中心とする所定領域(矩形領域、円形領域など)の複数の画素の各濃淡値から濃淡中央値を求めて、注目画素の濃淡データに濃淡中央値を設定する。
図6は、検査システムA1の全体の概略構成を示す。検査システムA1は、上述の画像処理システム1、表示装置2に加えて、照明装置3、撮像装置4、搬送装置5をさらに備える。
検査システムA1は、図7に示す照明カバー9を対象物とする。照明カバー9は、照明器具のカバーであり、照明器具のLEDなどの光源から発せられた光を拡散させて照明器具の外部へ照射する光拡散性を有する。照明カバー9は、例えば光拡散性を有する材料(例えば乳白色のアクリル樹脂)により形成されている。照明カバー9のカバー本体91は、長尺の半楕円筒状の外形形状をしている。そして、カバー本体91の表面は、カバー本体91の幅方向(カバー本体91の短手方向)の両端のそれぞれから中央に進むにつれて裏面側から表面側への突出量が大きくなる弧状の曲面に形成されている。
照明カバー9は、搬送装置5によって、照明装置3及び撮像装置4の下方を、後方から前方に向かう進行方向X1に移動し、照明装置3による照明処理、撮像装置4による撮像処理が行われる。
搬送装置5は、例えばベルトコンベア装置で構成されている。搬送装置5は、モータ、プーリ、コンベアベルトなどを備えており、モータの回転駆動力がプーリなどを介してコンベアベルトに伝達される。搬送装置5の上面にはコンベアベルトが露出しており、コンベアベルト上に載置された照明カバー9は、後方から前方に向かう進行方向X1に一定速度で進む。コンベアベルト上の照明カバー9の長さ方向(照明カバー9の長手方向)は前後方向に沿っており、照明カバー9の幅方向(照明カバー9の短手方向)は左右方向に沿っており、照明カバー9の曲面は上方向を向いている。
照明装置3は、搬送装置5の上方に配置されている。照明装置3は、照明カバー9に対して上方から照明光を照射する。すなわち、照明装置3は、検査対象となる照明カバー9の表面に照明光を照射する。なお、照明装置3の種類は、特定の種類に限定されず、バータイプの照明装置、リング照明装置などのいずれであってもよい。また、照明光の波長特定の波長に限定されない。
撮像装置4は、白黒の静止画を撮像するカメラであり、搬送装置5の上方に配置されている。そして、撮像装置4は、照明カバー9の表面で反射した照明光(反射光)を受光して、照明カバー9の表面を撮像する。撮像装置4が撮像した画像は、濃淡値が256段階に設定された濃淡画像G1である(図8参照)。撮像装置4は、濃淡画像G1の情報を画像処理システム1へ出力する。なお、撮像装置4は、カラー画像を撮像するカメラであってもよい。
ここで、濃淡画像G1に写っている照明カバー9の前後方向は、第1画素列L1(図2参照)が延びている方向(列方向)に沿っている。また、濃淡画像G1に写っている照明カバー9の左右方向は、第2画素列L2(図2参照)が延びている方向(行方向)に沿っている。
画像処理システム1では、画像取得部1bが濃淡画像G1の情報を受け取り、濃淡画像G1の情報を演算装置1aへ引き渡す。演算装置1aでは、フィルタ11が濃淡画像G1に対して上述の平滑処理を施して、平滑画像を生成する。検査部12は、濃淡画像G1と平滑画像との差分をとって、さらに二値化処理を施した差分二値化画像G2を生成し(図8参照)、差分二値化画像G2に基づいて照明カバー9の検査処理を行う。
図8に示す濃淡画像G1には、照明カバー9が写っているカバー撮像領域71が存在する。カバー撮像領域71には、照明カバー9の表面のキズに対応する欠陥撮像領域72が存在している。欠陥撮像領域72は、列方向に長いカバー撮像領域71において、行方向に線状に形成されている。しかしながら、照明カバー9の表面が曲面であることから、カバー撮像領域71には、列方向(照明カバー9の長手方向)に沿って濃淡値が変化するグラデーションが発生しやすい。このグラデーションは、列方向(照明カバー9の長手方向)に沿って変化する縞模様のように見える。
一方、平滑画像は、濃淡画像G1に平滑処理を施した濃淡画像であるので、照明カバー9の表面の線状の汚れ、キズなどの欠陥撮像領域が目立たなくなり、カバー撮像領域のグラデーションが殆ど残った画像になる。
そこで、検査部12は、濃淡画像G1と平滑画像との差分をとって、さらに二値化処理を施した差分二値化画像G2を生成する。差分二値化画像G2では、カバー撮像領域81のグラデーションを含む背景成分がほぼキャンセルされて、照明カバー9の表面のキズに対応する欠陥撮像領域82が強調される。したがって、検査部12は、差分二値化画像G2に基づいて照明カバー9の検査処理を行うことで、検査精度を向上させることができる。
濃淡画像G1に生じるグラデーションのように、列方向に沿って濃淡値が変化するグラデーションをキャンセルする場合には、フィルタ11の中央値抽出処理における第1画素列L1を第2画素列L2より長くすることが好ましい(図2参照)。例えば、第1画素列L1を構成する画素数を100とし、第2画素列L2を構成する画素数を30とする。なお、第1画素列L1及び第2画素列L2を構成するそれぞれの画素の数は、特定の値に限定されない。
また、演算装置1aは、SIMD命令を実行することができるプロセッサとして、ベクトル演算ユニットを具備するCPU(Central Processing Unit)、またはGPU(Graphics Processing Unit)を有することが好ましい。例えば、演算装置1aのプロセッサとして、インテル(Intel Corporation)製のCore i5 3340Mを用いた場合、画素数が5Mpixの濃淡画像に対して、上述の中央値抽出処理を約0.2秒で完了させることができた。一方、上述の比較例のように、演算装置がソート処理用のプログラムを実行した場合、画素数が5Mpixの濃淡画像に対して、中央値抽出処理を完了させるのに約20秒を要した。このように、演算装置1aによる上述の中央値抽出処理は、ソート処理用のプログラムを実行する比較例よりも、演算負荷を低減することができ、演算時間も短縮できる。
(変形例)
変形例のフィルタ11は、図9、図10に示す処理を行う。なお、図9、図10では、(m)と表記しているが、mは判定処理の回数を表す回数パラメータであるので、以下では、m=定数Mとして説明を行う。
フィルタ11の判定部111は、図9に示すように、数値ベクトルV1と基準ベクトルV2(M)とのMIN演算を行う。MIN演算はSIMD命令の一つである。この場合、MIN演算は、数値ベクトルV1及び基準ベクトルV2(M)の互いに対応する成分の各値を比較して、各成分の最小値を抽出し、11次元の抽出ベクトルV30(M)を生成する処理である。すなわち、MIN演算では、濃淡値D(1)と基準値P1(M)とが比較され、濃淡値D(2)と基準値P1(M)とが比較され、………、濃淡値D(11)と基準値P1(M)とが比較される。そして、判定部111は、濃淡値D(1)と基準値P1(M)のいずれか小さい方、濃淡値D(2)と基準値P1(M)のいずれか小さい方、………、濃淡値D(11)と基準値P1(M)のいずれか小さい方で11個の成分が表された抽出ベクトルV30(M)を求める。言い換えると、抽出ベクトルV30(M)は、数値ベクトルV1と基準ベクトルV2(M)とから、成分毎の最小値を抽出し、成分毎の最小値で11個の各成分が表された列ベクトルである。このとき、判定部111は、SIMD命令であるMIN演算を実行することによって、抽出ベクトルV30(M)の11個の成分の各値を1サイクルで並列的に求めることができる。なお、数値ベクトルV1及び基準ベクトルV2(M)の互いに対応する成分の各値が等しい場合、抽出ベクトルV30(M)の当該成分の値は濃淡値D(n)または基準値P1(M)になる。
そして、図10に示すように、判定部111は、数値ベクトルV1と抽出ベクトルV30(M)とのEQ演算を行う。EQ演算は、数値ベクトルV1と抽出ベクトルV30(M)との互いに対応する成分の各値を比較して、数値ベクトルV1と抽出ベクトルV30(M)の成分毎に対応する各値が等しいか否かを判定し、判定ベクトルV4(M)はこの判定結果として求められる。判定ベクトルV4(M)の各成分は、数値ベクトルV1及び基準ベクトルV2(M)の互いに対応する成分の各値を比較した結果を表している。数値ベクトルV1の所定成分の濃淡値D(n)が基準値P1(M)以下であれば、判定ベクトルV4(M)の所定成分の値は「1」になる。数値ベクトルV1の所定成分の濃淡値D(n)が基準値P1(M)より大きければ、判定ベクトルV4(M)の所定成分の値は「0」になる。したがって、判定ベクトルV4(M)において値が「1」である成分の個数は、数値ベクトルV1において基準値P1(M)以下になる濃淡値D(n)の個数になる。言い換えると、判定ベクトルV4(M)において値が「1」である成分の個数は、11個の画素E(1)−E(11)の各濃淡データのうち、濃淡値D(n)が基準値P1(M)以下になる濃淡データの個数になる。
判定部111は、判定ベクトルV4(M)の11個の成分のうち、値が「1」である成分の個数をカウントすることで、濃淡値D(n)が基準値P1(M)以下になる濃淡データの個数をカウントできる。判定部111は、濃淡値D(n)が基準値P1(M)以下になる濃淡データの個数を、カウントパラメータP2の値P2(M)に設定する。
更新部112は、カウント値P2(M)に基づいて基準パラメータP1の値を更新する更新処理を行う。
具体的に、更新部112は、カウント値P2(M)が更新閾値K1より大きければ、ステップ値P3(M)を基準値P1(M)から減算し、この減算値が、更新後の基準値P1(M+1)になる。また、更新部112は、カウント値P2(M)が更新閾値K1より大きければ、ステップ値P3(M)を基準値P1(M)に加算し、この加算値が、更新後の基準値P1(M+1)になる。また、更新部112は、更新後の基準値P1(M+1)を求めた後、ステップ値P3(M)の値の半値、または当該半値を丸めた値を、次回のステップ値P3(M+1)とする。
次に、繰り返し制御部113は、基準値P1(M)に代えて更新後の基準値P1(M+1)を用いた判定処理を判定部111に実行させ、判定部111は、カウント値P2(M+1)を求める。そして、繰り返し制御部113は、カウント値P2(M)に代えてカウント値P2(M+1)を用いた上述の更新処理を更新部112に実行させる。すなわち、更新部112は、カウント値P2(M+1)と更新閾値K1との大小関係に基づいて、基準値P1(M+1)とステップ値P3(M+1)との加算または減算を行い、基準値P1(M+2)を求める。また、更新部112は、更新後の基準値P1(M+2)を求めた後、ステップ値P3(M+1)の値の半値、または当該半値を丸めた値を、次回のステップ値P3(M+2)とする。
ステップ値P3(m)は、上述の基準値P1(m)の更新処理が行われる毎に徐々に小さくなる。そして、繰り返し制御部113は、ステップ値P3(m)が予め決められた所定値Rになるまで、基準値P1(m)の更新処理を繰り返させる。そして、繰り返し制御部113は、ステップ値P3(m)が所定値Rになった場合、そのときの基準値P1(m)を、11個の画素E(1)−E(11)の濃淡中央値の近似値とする。
(まとめ)
上述の実施形態に係る第1の態様の演算装置1aは、2以上の整数をNとし、前記N個の数値データ(濃淡データ)がそれぞれ表すN個の数値(濃淡値)の中央値(濃淡中央値)を求める演算装置である。演算装置1aは、判定部111と、更新部112と、繰り返し制御部113と、を備える。判定部111は、N個の数値がとり得る上限値と下限値との間の値P1(m)に設定されたパラメータを基準パラメータP1とし、N個の数値と基準値P1(m)(基準パラメータP1の値)とのそれぞれの大小関係を判定する判定処理を行う。更新部112は、判定処理の判定結果に基づいて基準値P1(m)を更新する更新処理を行う。繰り返し制御部113は、更新後の基準値P1(m)の値を用いた判定処理を判定部111に実行させ、更新部112に基準値P1(m)を繰り返し更新させる。そして、繰り返し制御部113は、所定回数Z繰り返し更新した後の基準値P1(m)を中央値とする。
したがって、演算装置1aは、ソート処理を行わないので、分岐命令を用いる必要がなく、複数の数値の中央値(の近似値)を求める場合に演算負荷を低減することができる。
また、実施形態に係る第2の態様の演算装置1aでは、第1の態様において、判定部111は、判定処理において、N個の数値データのうち基準値P1(m)より大きい数値を表す数値データの個数をカウント値P2(m)(カウントパラメータP2の値)として求めることが好ましい。そして、更新部112は、更新処理において、Nの半値、または当該半値を丸めた値を更新閾値K1とする。更新部112は、カウント値P2(m)が更新閾値K1より大きければ、基準値P1(m)より小さいステップ値P3(m)(ステップパラメータP3の値)を基準値P1(m)に加算して更新後の基準値P1(m)を求める。更新部112は、カウント値P2(m)が更新閾値K1より小さければ、ステップ値P3(m)を基準値P1(m)から減算して更新後の基準値P1(m)を求める。
したがって、演算装置1aは、複数の数値の中央値(の近似値)を求める場合に演算負荷を低減することができる。
また、実施形態に係る第3の態様の演算装置1aは、第2の態様において、初期値記憶部114をさらに備えることが好ましい。初期値記憶部114は、N個の数値がとり得る上限値と下限値との和の半値、または当該半値を丸めた値を、初期基準値P1(1)(基準パラメータP1の初期値)として記憶している。初期ステップ値P3(1)(ステップパラメータP3の初期値)は、初期基準値P1(1)から前記下限値を減算した値の半値、または当該半値を丸めた値である。判定部111は、1回目の判定処理において、N個の数値データのうち初期基準値P1(1)より大きい数値を表す数値データの個数をカウント値P2(m)として求める。更新部112は、1回目の更新処理において、カウント値P2(m)が更新閾値K1より大きければ、初期ステップ値P3(1)を初期基準値P1(1)に加算して更新後の基準値P1(2)を求める。また、更新部112は、カウント値P2(m)が更新閾値K1より小さければ、初期ステップ値P3(1)を初期基準値P1(1)から減算して更新後の基準値P1(2)を求める。更新部112は、2回目以降の更新処理におけるステップ値P3(m)として、前回の更新処理におけるステップ値P3(m)の半値、または当該半値を丸めた値を用いる。
したがって、初期基準値P1(1)及び初期ステップ値P3(1)は容易に求められる。この結果、演算装置1aは、初期基準値P1(1)を予め記憶することで、複数の数値の中央値(の近似値)を求める場合に演算負荷をより低減することができる。
また、実施形態に係る第4の態様の演算装置1aは、第2または第3の態様において、判定部111は、N個の数値でN個の各成分が表された数値ベクトルV1と基準値P1(m)でN個の各成分が表された基準ベクトルV2(m)とから、成分毎の最大値を抽出する。そして、判定部111は、成分毎の最大値でN個の各成分が表された抽出ベクトルV3(m)を求めることが好ましい。さらに、判定部111は、数値ベクトルV1と抽出ベクトルV3(m)との互いに対応する成分同士を比較する。判定部111は、N個の各成分が、成分同士の各値が等しい場合に第1値で表され、成分同士の各値が異なる場合に第2値で表された判定ベクトルV4(m)を求める。そして、判定部111は、判定ベクトルV4(m)において第1値で表された成分の数をカウント値P2(m)として求める。
したがって、演算装置1aは、SIMD演算を利用して中央値を求めることができ、複数の数値の中央値(の近似値)を求める場合に演算負荷及び演算時間をさらに低減することができる。
また、実施形態に係る第5の態様の演算装置1aでは、第1の態様において、判定部111は、判定処理において、N個の数値データのうち基準値P1(m)より小さい数値を表す数値データの個数をカウント値P2(m)(カウントパラメータP2の値)として求めることが好ましい。そして、更新部112は、更新処理において、Nの半値、または当該半値を丸めた値を更新閾値K1とする。更新部112は、カウント値P2(m)が更新閾値K1より大きければ、基準値P1(m)より小さいステップ値P3(m)(ステップパラメータP3の値)を基準値P1(m)から減算して更新後の基準値P1(m)を求める。また、更新部112は、カウント値P2(m)が更新閾値K1より小さければ、ステップ値P3(m)を基準値P1(m)に加算して更新後の基準値P1(m)を求める。
したがって、演算装置1aは、複数の数値の中央値(の近似値)を求める場合に演算負荷を低減することができる。
また、実施形態に係る第6の態様の演算装置1aは、第5の態様において、初期値記憶部114をさらに備えることが好ましい。初期値記憶部114は、N個の数値がとり得る上限値と下限値との和の半値、または当該半値を丸めた値を、初期基準値P1(1)(基準パラメータP1の初期値)として記憶している。初期ステップ値P3(1)(ステップパラメータP3の初期値)は、初期基準値P1(1)から前記下限値を減算した値の半値、または当該半値を丸めた値である。判定部111は、1回目の判定処理において、N個の数値データのうち初期基準値P1(1)より小さい数値を表す数値データの個数をカウント値P2(m)として求める。更新部112は、1回目の更新処理において、カウント値P2(m)が更新閾値K1より大きければ、初期ステップ値P3(1)を初期基準値P1(1)から減算して更新後の基準値P1(2)を求める。また、更新部112は、カウント値P2(m)が更新閾値K1より小さければ、初期ステップ値P3(1)を初期基準値P1(1)に加算して更新後の基準値P1(2)を求める。更新部112は、2回目以降の更新処理におけるステップ値P3(m)として、前回の更新処理におけるステップ値P3(m)の半値、または当該半値を丸めた値を用いる。
したがって、初期基準値P1(1)及び初期ステップ値P3(1)は容易に求められる。この結果、演算装置1aは、初期基準値P1(1)を予め記憶することで、複数の数値の中央値(の近似値)を求める場合に演算負荷をより低減することができる。
また、実施形態に係る第7の態様の演算装置1aは、第5または第6の態様において、判定部111は、N個の数値でN個の各成分が表された数値ベクトルV1と基準値P1(m)でN個の各成分が表された基準ベクトルV2(m)とから、成分毎の最小値を抽出する。そして、判定部111は、成分毎の最小値でN個の各成分が表された抽出ベクトルV3(m)を求めることが好ましい。さらに、判定部111は、数値ベクトルV1と抽出ベクトルV3(m)との互いに対応する成分同士を比較する。判定部111は、N個の各成分が、成分同士の各値が等しい場合に第1値で表され、成分同士の各値が異なる場合に第2値で表された判定ベクトルV4(m)を求める。そして、判定部111は、判定ベクトルV4(m)において第1値で表された成分の数をカウント値P2(m)として求める。
したがって、演算装置1aは、SIMD演算を利用して中央値を求めることができ、複数の数値の中央値(の近似値)を求める場合に演算負荷及び演算時間をさらに低減することができる。
また、実施形態に係る第8の態様の画像処理システム1は、第1乃至第7の態様のいずれか一つの演算装置1aと、濃淡画像G1の情報を受け取る画像取得部1bと、を備える。N個の数値は、濃淡画像G1の複数の画素のうち、注目画素E(1)を含む所定領域のN個の画素E(1)−E(11)のそれぞれの濃淡値D(1)−D(11)である。演算装置1aは、繰り返し制御部113が求めた濃淡中央値(中央値)を注目画素E(1)の濃淡値に設定することで、濃淡画像G1の平滑処理を行う。
したがって、画像処理システム1は、濃淡画像G1の平滑処理を行う際に、ソート処理を行わないので、分岐命令を用いる必要がなく、複数の数値の中央値(の近似値)を求める演算処理に要する演算負荷を低減することができる。
また、実施形態に係る第9の態様の画像処理システム1は、第8の態様において、演算装置1aは、濃淡画像G1の平滑処理を行うメディアンフィルタとして機能することが好ましい。
したがって、画像処理システム1は、濃淡画像G1に写っている線状の汚れ、キズなどを目立たなくして、濃淡画像G1に写っている汚れ、キズなどの背景(グラデーションなど)を主に残した平滑画像を生成できる。
また、実施形態に係る第10の態様の演算方法は、2以上の整数をNとし、前記N個の数値データ(濃淡データ)がそれぞれ表すN個の数値(濃淡値)の中央値(濃淡中央値)を求める演算方法である。演算方法は、判定ステップ(ステップS2)と、更新ステップ(ステップS3)と、制御ステップ(ステップS5,S6)と、を備える。判定ステップは、N個の数値がとり得る上限値と下限値との間の値P1(m)に設定されたパラメータを基準パラメータP1とし、N個の数値と基準値P1(m)(基準パラメータP1の値)とのそれぞれの大小関係を判定する判定処理を行う。更新ステップは、判定処理の判定結果に基づいて基準値P1(m)を更新する更新処理を行う。制御ステップは、更新後の基準値P1(m)の値を用いた判定処理を判定ステップに実行させ、更新ステップに基準値P1(m)を繰り返し更新させる。そして、制御ステップは、所定回数Z繰り返し更新した後の基準値P1(m)を中央値とする。
したがって、演算方法は、ソート処理を行わないので、分岐命令を用いる必要がなく、複数の数値の中央値(の近似値)を求める場合に演算負荷を低減することができる。
また、実施形態に係る第11の態様のプログラムは、コンピュータシステムに、第10の態様の演算方法を実行させる。
したがって、プログラムを実行したコンピュータシステムは、ソート処理を行わないので、分岐命令を用いる必要がなく、複数の数値の中央値(の近似値)を求める場合に演算負荷を低減することができる。
なお、上述の実施の形態は本発明の一例である。このため、本発明は、上述の実施形態に限定されることはなく、この実施の形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。
A1 検査システム
1 画像処理システム
1a 演算装置
1b 画像取得部
11 フィルタ
111 判定部
112 更新部
113 繰り返し制御部
114 初期値記憶部
P1(m) 基準値(基準パラメータP1の値)
P1(1) 初期基準値(基準パラメータP1の初期値)
P2(m) カウント値(カウントパラメータP2の値)
P3(m) ステップ値(ステップパラメータP3の値)
P3(1) 初期ステップ値(ステップパラメータP3の初期値)
K1 更新閾値
V1 数値ベクトル
V2(m) 基準ベクトル
V3(m) 抽出ベクトル
V4(m) 判定ベクトル
G1 濃淡画像
E(1)−E(11) 画素
E(1) 注目画素
D(1)−D(11) 濃淡値

Claims (11)

  1. 2以上の整数をNとし、前記N個の数値データがそれぞれ表す数値に基づいて、前記N個の数値の中央値を求める演算装置であって、
    前記N個の数値がとり得る上限値と下限値との間の値に設定されたパラメータを基準パラメータとし、前記N個の数値と前記基準パラメータの値とのそれぞれの大小関係を判定する判定処理を行う判定部と、
    前記判定処理の判定結果に基づいて前記基準パラメータの値を更新する更新処理を行う更新部と、
    更新後の前記基準パラメータの値を用いた前記判定処理を前記判定部に実行させ、前記更新部に前記基準パラメータの値を繰り返し更新させる繰り返し制御部と、を備え、
    前記繰り返し制御部は、所定回数繰り返し更新した後の前記基準パラメータの値を前記中央値とする
    ことを特徴とする演算装置。
  2. 前記判定部は、前記判定処理において、前記N個の数値データのうち前記基準パラメータの値より大きい数値を表す数値データの個数をカウントパラメータの値として求め、
    前記更新部は、前記更新処理において、前記Nの半値、または当該半値を丸めた値を更新閾値とし、前記カウントパラメータの値が前記更新閾値より大きければ、前記基準パラメータの値より小さいステップパラメータの値を前記基準パラメータの値に加算して前記更新後の前記基準パラメータの値を求め、前記カウントパラメータの値が前記更新閾値より小さければ、前記ステップパラメータの値を前記基準パラメータの値から減算して前記更新後の基準パラメータの値を求める
    ことを特徴とする請求項1記載の演算装置。
  3. 前記N個の数値がとり得る前記上限値と前記下限値との和の半値、または当該半値を丸めた値を、前記基準パラメータの初期値として記憶している初期値記憶部をさらに備え、
    前記ステップパラメータの初期値は、前記基準パラメータの初期値から前記下限値を減算した値の半値、または当該半値を丸めた値であり、
    前記判定部は、1回目の前記判定処理において、前記N個の数値データのうち前記基準パラメータの初期値より大きい数値を表す数値データの個数を前記カウントパラメータの値として求め、
    前記更新部は、1回目の前記更新処理において、前記カウントパラメータの値が前記更新閾値より大きければ、前記ステップパラメータの初期値を前記基準パラメータの初期値に加算して前記更新後の前記基準パラメータの値を求め、前記カウントパラメータの値が前記更新閾値より小さければ、前記ステップパラメータの初期値を前記基準パラメータの初期値から減算して前記更新後の基準パラメータの値を求め、
    前記更新部は、2回目以降の前記更新処理における前記ステップパラメータの値として、前回の前記更新処理におけるステップパラメータの値の半値、または当該半値を丸めた値を用いる
    ことを特徴とする請求項2記載の演算装置。
  4. 前記判定部は、
    前記N個の前記数値で前記N個の各成分が表された数値ベクトルと前記基準パラメータの値で前記N個の各成分が表された基準ベクトルとから、成分毎の最大値を抽出し、前記成分毎の最大値で前記N個の各成分が表された抽出ベクトルを求め、
    前記数値ベクトルと前記抽出ベクトルとの互いに対応する成分同士を比較して、前記N個の各成分が、前記成分同士の各値が等しい場合に第1値で表され、前記成分同士の各値が異なる場合に第2値で表された判定ベクトルを求め、
    前記判定ベクトルにおいて前記第1値で表された成分の数を前記カウントパラメータの値として求める
    ことを特徴とする請求項2または3記載の演算装置。
  5. 前記判定部は、前記判定処理において、前記N個の数値データのうち前記基準パラメータの値より小さい数値を表す数値データの個数をカウントパラメータの値として求め、
    前記更新部は、前記更新処理において、前記Nの半値、または当該半値を丸めた値を更新閾値とし、前記カウントパラメータの値が前記更新閾値より大きければ、前記基準パラメータの値より小さいステップパラメータの値を前記基準パラメータの値から減算して前記更新後の前記基準パラメータの値を求め、前記カウントパラメータの値が前記更新閾値より小さければ、前記ステップパラメータの値を前記基準パラメータの値に加算して前記更新後の基準パラメータの値を求める
    ことを特徴とする請求項1記載の演算装置。
  6. 前記N個の数値がとり得る前記上限値と前記下限値との和の半値、または当該半値を丸めた値を、前記基準パラメータの初期値として記憶している初期値記憶部をさらに備え、
    前記ステップパラメータの初期値は、前記基準パラメータの初期値から前記下限値を減算した値の半値、または当該半値を丸めた値であり、
    前記判定部は、1回目の前記判定処理において、前記N個の数値データのうち前記基準パラメータの初期値より小さい数値を表す数値データの個数を前記カウントパラメータの値として求め、
    前記更新部は、1回目の前記更新処理において、前記カウントパラメータの値が前記更新閾値より大きければ、前記ステップパラメータの初期値を前記基準パラメータの初期値から減算して前記更新後の前記基準パラメータの値を求め、前記カウントパラメータの値が前記更新閾値より小さければ、前記ステップパラメータの初期値を前記基準パラメータの初期値に加算して前記更新後の基準パラメータの値を求め、
    前記更新部は、2回目以降の前記更新処理における前記ステップパラメータの値として、前回の前記更新処理におけるステップパラメータの値の半値、または当該半値を丸めた値を用いる
    ことを特徴とする請求項5記載の演算装置。
  7. 前記判定部は、
    前記N個の前記数値で前記N個の各成分が表された数値ベクトルと前記基準パラメータの値で前記N個の各成分が表された基準ベクトルとから、成分毎の最小値を抽出し、前記成分毎の最小値で前記N個の各成分が表された抽出ベクトルを求め、
    前記数値ベクトルと前記抽出ベクトルとの互いに対応する成分同士を比較して、前記N個の各成分が、前記成分同士の各値が等しい場合に第1値で表され、前記成分同士の各値が異なる場合に第2値で表された判定ベクトルを求め、
    前記判定ベクトルにおいて前記第1値で表された成分の数を前記カウントパラメータの値として求める
    ことを特徴とする請求項5または6記載の演算装置。
  8. 請求項1乃至7のいずれか一項に記載の演算装置と、
    濃淡画像の情報を受け取る画像取得部と、を備え、
    前記N個の数値は、前記濃淡画像の複数の画素のうち、注目画素を含む所定領域の前記N個の画素のそれぞれの濃淡値であり、
    前記演算装置は、
    前記繰り返し制御部が求めた前記中央値を前記注目画素の濃淡値に設定することで、前記濃淡画像の平滑処理を行う
    ことを特徴とする画像処理システム。
  9. 前記演算装置は、前記濃淡画像の前記平滑処理を行うメディアンフィルタとして機能する
    ことを特徴とする請求項8記載の画像処理システム。
  10. 2以上の整数をNとし、前記N個の数値データがそれぞれ表す数値に基づいて、前記N個の数値の中央値を求める演算方法であって、
    前記N個の数値がとり得る上限値と下限値との間の値に設定されたパラメータを基準パラメータとし、前記N個の数値と前記基準パラメータの値とのそれぞれの大小関係を判定する判定処理を行う判定ステップと、
    前記判定処理の判定結果に基づいて前記基準パラメータの値を更新する更新処理を行う更新ステップと、
    更新後の前記基準パラメータの値を用いた前記判定処理を前記判定ステップに実行させ、前記更新ステップに前記基準パラメータの値を繰り返し更新させる制御ステップと、を備え、
    前記制御ステップは、所定回数繰り返し更新した後の前記基準パラメータの値を前記中央値とする
    ことを特徴とする演算方法。
  11. コンピュータシステムに、請求項10記載の演算方法を実行させることを特徴とするプログラム。
JP2018036891A 2018-03-01 2018-03-01 演算装置、画像処理システム、及びプログラム Active JP7054775B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018036891A JP7054775B2 (ja) 2018-03-01 2018-03-01 演算装置、画像処理システム、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018036891A JP7054775B2 (ja) 2018-03-01 2018-03-01 演算装置、画像処理システム、及びプログラム

Publications (2)

Publication Number Publication Date
JP2019153001A true JP2019153001A (ja) 2019-09-12
JP7054775B2 JP7054775B2 (ja) 2022-04-15

Family

ID=67946419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018036891A Active JP7054775B2 (ja) 2018-03-01 2018-03-01 演算装置、画像処理システム、及びプログラム

Country Status (1)

Country Link
JP (1) JP7054775B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0927030A (ja) * 1995-07-12 1997-01-28 Fujitsu Ltd 画像処理装置
JP2003177912A (ja) * 2001-12-07 2003-06-27 Canon Inc Simd演算を利用した数値データ列の中央値算出方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0927030A (ja) * 1995-07-12 1997-01-28 Fujitsu Ltd 画像処理装置
JP2003177912A (ja) * 2001-12-07 2003-06-27 Canon Inc Simd演算を利用した数値データ列の中央値算出方法

Also Published As

Publication number Publication date
JP7054775B2 (ja) 2022-04-15

Similar Documents

Publication Publication Date Title
CN104601899B (zh) 图像处理装置和图像处理方法
JP4160258B2 (ja) 勾配ベースの局部輪郭線検出のための新しい知覚的しきい値決定
EP3499418A2 (en) Information processing apparatus, identification system, setting method, and program
CN106839976B (zh) 一种检测镜头中心的方法及装置
CN109344752B (zh) 用于处理嘴部图像的方法和装置
JP4150390B2 (ja) 外観検査方法及び外観検査装置
CN111065915B (zh) 优化对目标物体外部检查的设备及其方法
CN110930356B (zh) 一种工业二维码无参考质量评估系统及方法
CN113012068B (zh) 图像去噪方法、装置、电子设备及计算机可读存储介质
CN115937182A (zh) 一种多视角机械缺陷视觉检测方法
JP2017227474A (ja) 照明装置、及び、画像検査装置
CN116363140A (zh) 一种中硼硅玻璃缺陷的检测方法、系统、装置及存储介质
CN109945794B (zh) 图像处理系统、计算机可读记录介质及图像处理方法
JP7274180B2 (ja) プログラム、ニューラルネットワーク処理コンピュータ、ニューラルネットワーク処理装置、およびニューラルネットワークの演算方法
JP2017085570A (ja) 画像補正方法及び画像補正装置
CN115719326A (zh) Pcb板缺陷检测方法及装置
US20060250414A1 (en) System and method of anti-aliasing computer images
JP2019153001A (ja) 演算装置、画像処理システム、演算方法、及びプログラム
CN116380915A (zh) 身份证表面缺陷检测的方法、装置、介质及电子设备
US10627351B2 (en) Inspection of components for imperfections
CN115797233A (zh) 图像灰度校正方法、视觉检测方法及装置
JP5264956B2 (ja) 2次元コード読取装置及びその方法
EP3062516B1 (en) Parallax image generation system, picking system, parallax image generation method, and computer-readable recording medium
JP7302410B2 (ja) 画像認識装置、画像認識システム、画像認識方法及びプログラム
CN110310235B (zh) 眼底图像处理方法、装置及设备和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220303

R151 Written notification of patent or utility model registration

Ref document number: 7054775

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151