以下、本発明に係るボタン認識装置の一実施形態を図1から図13を参照して説明する。
図1は、本実施形態に係るボタン認識装置を示す概略側面断面図であり、図2は、図1のボタン認識装置の構成を示すブロック図である。
図1および図2に示すように、本実施形態に係るボタン認識装置1は、ボタン2の前面(上面)の画像を取得する撮像装置としてのカメラ3がボタン2の前方(図1において上方)に配置されており、このカメラ3は、ボタン2の上面の画像を取得するようになっている。
ボタン2の上方であって、ボタン2とカメラ3との間には、ボタン2の上面に対して垂直に照射光を照射するための同軸落射照明装置5が配設されている。同軸落射照明装置5は、ボタン2の上方に配置されたハーフミラー5aと、カメラ3によって取得されるボタン2の上面の画像の撮像領域から外れた位置に配置され、ハーフミラー5aにおけるボタン2に対向している下面に対して照射光を照射する光源5bとを有している。ハーフミラー5aは、光源5bから照射された照射光を下面において反射して、ボタン2の上面に対して垂直に照射するように、光源5bおよびボタン2に対して所定の角度をもって配置されている。そして、同軸落射照明装置5は、カメラ3に対向する上面側からボタン2に対して照射光を照射できるようになっている。
そして、カメラ3は、同軸落射照明によってボタン2の上面に照射光を照射した状態でボタン2の上面を撮像することにより前方照明画像を取得するようになっており、これにより、ボタン2の上面における色彩や、文字・図形等の模様等を映し出すことができるようになっている。
ボタン2の上方であって、ボタン2と同軸落射照明との間には、ボタン2の上面に対して斜方から照射光を照射する斜方照明装置7が配設されている。斜方照明装置7は、カメラ3による画像の撮像領域から外れた位置に配置され、ボタン2の上面に対して斜方から照射光を照射する一対の光源7aとを有している。両光源7aは、ボタン2に対して右側上方および左側上方の対称の位置からそれぞれ同一の照射角度によってボタン2の上面を照射する位置に配置されている。
また、ボタン認識装置1は、ボタン2に対する斜方照明装置7の位置を調整することにより、斜方照明装置7からボタン2の上面に照射される照射光の照射角度を調整する位置調整装置9を備えている。本実施形態においては、位置調整装置9は、ボタン2の上面に対する斜方照明装置7の高さ位置を調整することにより、ボタン2の上面に照射される照射光の照射角度を調整することができるようになっている。
そして、カメラ3は、斜方照明装置7によってボタン2の上面に照射光を照射した状態でボタン2の上面を撮像して斜方照明画像を取得するようになっており、これにより、ボタン2の上面に形成された刻印等の凹凸形状を映し出すことができるようになっている。このカメラ3による撮像の前に、位置調整装置9は、同軸落射照明装置5によって取得された前方照明画像を用いて判別されたボタン2の色彩に応じて、ボタン2に対する斜方照明装置7の高さ位置を調整することにより、斜方照明装置7の両光源7aからボタン2の上面に照射される照射光の照射角度を調整するようになっている。
ボタン2の下面側には、ボタン2の下面から照射光を照射する透過照明装置として液晶表示パネル10が設けられており、液晶表示パネル10は、ボタン2の下面から照射光を照射する照明装置として機能するほか、ボタン2を載置する載置台として機能するようになっている。さらに、液晶表示パネル10による表示は、前方照明画像や斜方照明画像を取得する際の背景として機能するようになっている。
そして、カメラ3は、液晶表示パネル10によってボタン2の下方から照射光を照射した状態でボタン2の上面を撮像して透過照明画像を取得することができるようになっており、これにより、ボタン2のシルエットを映し出すようになっている。
また、ボタン認識装置1は、カメラ3によって取得された前方照明画像、斜方照明画像および透過照明画像について各種の処理を行う画像処理装置12を有している。画像処理装置12は、前方照明画像を用いてボタン2の上面の色彩を判別し、前方照明画像と透過照明画像とを用いてボタン2の透光度に応じてボタン2が不透明体、半透明体、透明体のいずれで形成されているかを分類し、さらには、前方照明画像、斜方照明画像および透過照明画像を用いてボタン2の構成を計測して構成情報を取得し、構成情報に基づいてボタン2の表裏を判別するようになっている。
画像処理装置12は、画像処理装置12の各部を制御するCPU15と、前方照明画像、斜方照明画像および透過照明画像を記録する画像メモリ16と、各照明画像と照合するためのボタン2の上面についての規格画像等が予め記録されている第1記録メモリ17と、CPU15が画像処理を行うための画像データの仮の格納場所であるワークメモリ18とを有している。カメラ3は、アナログ・デジタルコンバータ(A/Dコンバータ)19を介して画像メモリ16に接続されており、カメラ3が取得した前方照明画像、斜方照明画像および透過照明画像の各画像データは、A/Dコンバータ19によりデジタル化された後、画像メモリ16において記録されるようになっている。
また、画像処理装置12は、カメラ3の制御を行うカメラ制御部21と、同軸落射照明装置5の制御を行う同軸落射照明制御部22と、斜方照明装置7の制御を行う斜方照明制御部23と、位置調整装置9の制御を行う位置調整制御部25、および液晶表示パネル10の制御を行うパネル制御部26とを有している。
さらに、画像処理装置12は、各照明装置5、7、10によって各照明画像を取得するために各照明装置5、7、10および位置調整装置9を制御する処理、前方照明画像を用いて色彩を判別する処理、前方照明画像および透過照明画像を用いて透光度によってボタン2を分類する処理、および各照明画像を用いてボタン2の構成情報を取得し、ボタン2の表裏を判別する処理を行うための画像処理プログラムを有している。画像処理プログラムは、第2記録メモリ28に記録されている。
そして、画像処理装置12は、CPU15によって、第2記録メモリ28から画像処理プログラムを読み出して、各制御部21、22、23、25、26に制御情報を出力し、各制御部21、22、23、25、26によって、各照明装置5、7、10によりボタン2に照射光を照射し、位置調整装置9により斜方照明装置7の高さ位置を調整して、カメラ3によりボタン2を撮像するようになっている。また、画像処理装置12は、CPU15によって、前方照明画像を用いてボタン2の色彩を判別し、色彩情報を取得するとともに、ボタン2の構成を計測してボタン2の構成情報を取得して、ボタン2の表裏を判別するようになっている。
このとき、画像処理装置12は、前方照明画像の前方照明画像データに基づいて判別したボタン2の色彩に応じて、液晶表示パネル10の表示によるボタン2の背景色を設定するようになっている。また、画像処理装置12は、前方照明画像および透過照明画像の各画像データを用いてボタン2の透光度によって分類したボタン2の種類に応じて、液晶表示パネル10により表示されるボタン2の背景パターンを設定するようになっている。さらに、画像処理装置12は、前方照明画像および透過照明画像の各画像データに基づいて判別したボタン2の色彩に応じて、位置調整装置9によって調整する斜方照明装置7の高さ位置を決定するようになっている。
そして、CPU15は、インターフェース(I/F)20を介してミシンの各部を制御するミシン制御部30に接続されており、画像処理装置12のCPU15は、ボタン2の構成情報および表裏の判別結果をI/F20を介してミシン制御部30に出力するようになっている。ミシン制御部30は、ボタン2の表面が上方を向いているという判別結果を入力した場合には、入力したボタン2の構成情報における平面形状のボタン2の傾きの構成情報に基づいて、平面状におけるボタン2の配置角度を補正し、ボタン2を縫製物に縫い付けるようになっている。一方、ミシン制御部30は、ボタン2の裏面が上方を向いているという判別結果を入力した場合には、ボタン2を除去し、撮像対象となる次のボタン2を液晶表示パネル10の上にセットするようになっている。
次に、本実施形態にかかるボタン認識装置1を用いたボタン認識方法につき、図3から図13を参照して説明する。
図3は、本実施形態に係るボタン認識方法の各工程を示すフローチャートである。
図3に示すように、まず、ボタン認識装置1の画像処理装置12におけるCPU15は、透過照明画像を取得する透過照明画像取得工程を行う(ST1)。
この透過照明画像取得工程において、まず、画像処理装置12のCPU15は、第2記録メモリ28から画像処理プログラムを読み出し、パネル制御部26を介して液晶表示パネル10を制御し、液晶表示パネル10によって、所定の色彩、光量により所定の背景パターンを表示する。この透過照明画像取得工程の段階では、画像処理装置12は、撮像対象であるボタン2の透光度や色彩等を認識していないので、液晶表示パネル10においてまず白色無地パターンを表示する。その後、CPU15は、液晶表示パネル10によって液晶表示パネル10の上に載置されたボタン2の下方からボタン2に白色の照射光を照射した状態で、カメラ3によってボタン2の上面を撮像することにより、透過照明画像を取得する。そして、CPU15は、透過照明画像の透過照明画像データをA/Dコンバータ19によってデジタル化した後、画像メモリ16に記録する。
このとき、ボタン2が不透明な材料で構成されている場合には、カメラ3は、明瞭なシルエットの透過照明画像を取得することができる。また、ボタン2が透明な材料で構成されている場合には、液晶表示パネル10からの照射光はボタン2を透過してしまうので、カメラ3により取得された透過照明画像は、全体的に白くなってしまい、カメラ3は、ボタンの明瞭なシルエットが映し出された透過照明画像を取得することができない。さらに、ボタン2が半透明な材料で構成されている場合には、カメラ3によって取得した透過照明画像は、コントラストが低かったり、輝度がまだらでボタン2の形状がおぼろげとなり、カメラ3は、ボタンの明瞭なシルエットが映し出された透過照明画像を取得することができない。
続いて、CPU15は、透過照明画像取得工程の後、透過照明画像データを用いて、ボタン2の外径・中心位置、糸通し孔の数・外径・中心位置・形成位置等のボタン2の構成を計測し、構成情報を取得する第1計測工程を行う(ST2)。
この第1計測工程においては、図4に示すように、まず、画像処理装置12のCPU15は、透過照明画像データについて、背景部分とボタン部分とに分けるためのしきい値を設定し、二値化処理を行う(ST101)。透過照明画像データについて二値化処理を行った二値化画像データにおいては、例えば、液晶表示パネル10からの照射光がカメラ3に到達する部分が0となり、到達しない部分が1となる。ここで、第1計測工程において用いるしきい値としては、透過照明画像データにおいて背景部分とボタン部分とを分けるときに、透光度がほとんど0%である不透明な材料で構成されているボタン2のみを分類できるように、不透明な材料により構成されているボタン2においては外形輪郭線の抽出が困難となる程度の値に調整することが望ましい。そして、CPU15は、二値化処理を行った透過照明画像の二値化画像データをワークメモリ18に出力する。
続いて、CPU15は、前記二値化画像データのノイズ処理を行う(ST102)。ノイズ処理としては、0に隣接する1を0にするオープニング処理と、1に隣接する0を1にするクロージング処理を行うことにより、細かいノイズ成分の除去、線の途切れの埋め、および穴埋めを行う。
次に、CPU15は、前記二値化画像データを用いてボタン2の外形輪郭線を抽出する処理を行う(ST103)。外形輪郭線を抽出する処理としては、画像において連結した画素の集合に、番号(ラベル)を付加することにより画素の集合を分類するラベリング処理を行い、各画素の集合の境界線を追跡することにより、ボタン2の外形輪郭線を抽出することができる。なお、ここでは、画像データが背景のみの場合、ラベル数を0としてラベルを付加するものとする。この場合、ボタン2が不透明な場合は、ラベルとして1が付加されるが、ボタン2が透明で背景のみで全く外形輪郭線が得られなかったり、断片的な画素の集合が取得されたりする場合は、ラベル数として0や2以上の番号が付されることになる。
その後、CPU15は、外形輪郭線を抽出する工程において、ボタン2の外形輪郭線の抽出の処理で付加されたラベル数を判別することにより、外形輪郭線が正常に抽出できたか否かを判別する(ST104)。これにより、CPU15は、ボタン2の外形輪郭線が正常に抽出できないと判断した場合には(ST104においてNo)、撮像対象となっているボタン2が透明体または半透明体であると判断し、透過照明画像データを用いた第1計測工程を終了する。
ここで、ST103の処理では、ボタン2が透明体であった場合、液晶表示パネル10からの照射光は、ボタン2を透過してカメラ3に到達してしまうので、透過照明画像取得工程においてカメラ3はボタン2のシルエットを映し出すことができない。このため、二値化処理(ST101)、ノイズ処理(ST102)が終了した段階において、透過照明画像データの二値化画像データは背景部分のみしか存在しないので、CPU15は、外形輪郭線を抽出する工程(ST103)において、ボタン2の外形輪郭線が正常に抽出できず、ラベル数が1となっているため、ボタン2が透明体であると判断、分類する(ST104においてNo)。
また、ボタン2が半透明体であった場合、ボタン2による液晶表示パネル10からの照射光の遮断が不十分であるので、透過照明画像取得工程においてカメラ3によって映し出される透過照明画像が低コントラストとなる場合がある。このような場合にも、二値化処理(ST101)、ノイズ処理(ST102)が終了した段階において、前述のボタン2が透明体の場合と同様に、ラベル数が1となっているため、ボタン2の外形輪郭線が正常に抽出できないと判断される(ST104においてNo)ことになる。
また、ボタン2が半透明体であり、かつボタン2の厚みが均一でない場合には、ボタン2を透過する液晶表示パネル10の照射光の透光度が均一にならず、このため、カメラ3により取得された透過照明画像は濃度がまだらであったり、濃度の変化が緩やかとなる。このため、例えば、CPU15による二値化処理(ST101)やノイズ処理(ST102)が行われると、ボタン2の画像として断片的な複数の画素の集合が形成され、外形輪郭線抽出処理におけるラベリング処理(ST103)において、2以上のラベル数が付されることになり、CPU15は、ラベル数が2以上であることを判断することにより、撮像対象となっているボタン2は半透明な材料からなり、透過照明画像によっては十分にボタン2の外形輪郭線を抽出することができないと判断することができる(ST104においてNo)。なお、抽出したボタン2の外形輪郭線が円形かどうか、または急峻な外周縁上の点か否かを検出することにより、ボタン2が半透明体であることを判断しても良い。
そして、CPU15は、外形輪郭線を抽出する工程において、ボタン2の外形輪郭線を正常に抽出できたと判断した場合には(ST104においてYes)、糸通し孔の外形輪郭線を抽出する処理を行う(ST105)。この糸通し孔の外形輪郭線の抽出工程においては、透過照明画像の二値化画像データにおいて背景を排除した後、再度ラベリング処理を行い、検出したボタン部分の境界線を追跡することにより、糸通し孔の外形輪郭線を抽出する。
次いで、CPU15は、前記二値化画像データを用いてボタン2の外径を検出し、ボタン2の中心位置を取得した後(ST106)、糸通し孔の外形輪郭線の抽出工程においてラベリング処理された二値化データを用いて、糸通し孔の数を取得する(ST107)。
次に、CPU15は、ST107において検出された数の糸通し孔のすべてについて外径および中心位置を取得する工程を終了したか否かを判別する(ST108)。このとき、CPU15は、糸通し孔のすべてについて外径および中心位置を取得する工程を終了していないと判断した場合には(ST108においてNo)、前記二値化画像データを用いて糸通し孔の外径を検出し、糸通し孔の中心位置を取得して(ST109)、このボタン2の外径・中心位置、糸通し孔の数・外径・中心位置・形成位置に関する構成情報をインタフェース(I/F)20を介してミシン制御部30に出力する。また、この情報は表裏判別工程で利用するため、ワークメモリ18に保持しておく。その後、CPU15は、再度、ST108において検出された数のすべての糸通し孔の外径および中心位置を取得する工程を終了したか否かを判別する(ST108)。
一方、CPU15は、すべての糸通し孔の外径および中心位置の取得が終了したと判断した場合には(ST108においてYes)、透過照明画像データを用いた第1計測工程を終了する。
続いて、CPU15は、前方照明画像を取得する前方照明画像取得工程を行う(ST3)。
この前方照明画像取得工程において、まず、画像処理装置12のCPU15は、画像プログラムに基づき、パネル制御部26を介して液晶表示パネル10を制御し、液晶表示パネル10によって、所定の色彩および光量によって所定の背景パターンを表示する。この前方照明画像取得工程の段階では、液晶表示パネル10を背景パネルとして使用するので、黒色無地のパターンの表示を行う。そして、CPU15は、同軸落射照明装置5によって液晶表示パネル10の上に載置されたボタン2の上方からボタン2に対して垂直に照射光を照射した状態で、カメラ3によってボタン2の上面を撮像することにより、カラーの前方照明画像を取得する。この前方照明画像取得工程においては、ボタン2の形状や上面に記載された文字、図形等の模様が映し出される。そして、CPU15は、前方照明画像の前方照明画像データをA/Dコンバータ19によってデジタル化した後、画像メモリ16に記録する。
次に、CPU15は、前方照明画像データを用いて色彩情報を取得することにより色彩を判別する色彩判別工程を行う(ST4)。
この色彩判別工程においては、図5に示すように、まず、前方照明画像データについて、再び、第1ボタン計測工程(ST2)のボタン2の外形輪郭線を抽出する工程(ST103)と同様の処理を行い、前方照明画像データにおけるボタン2の外形輪郭線を抽出する(ST201)。
続いて、CPU15は、上述したST103における工程でのラベリング処理により付されたラベル数の値と前方照明画像データの外形輪郭線抽出の工程(ST201)でのラベリング処理により付されたラベル数とに基づいて、撮像対象となるボタン2が透明体か否かを判別する(ST202)。なお、この判断においては、ST103とST201の両工程でのラベリング処理によるラベル数がともに0である場合に、ボタン2が透明体であると判断する(ST202においてYes)。
このとき、CPU15は、ボタン2が透明体でないと判断した場合には(ST202においてNo)、ボタン2が不透明体または半透明体であると判断し、透過照明画像データおよび前方照明画像データを用いて、ボタン2の色彩情報を得るためのサンプリング領域を設定する(ST203)。次に、CPU15は、前記サンプリング領域における各画素について、RGB値の平均値をそれぞれ算出し(ST204)、さらに、前記サンプリング領域における各画素のRGB値を、色相、明度、彩度の色彩情報の表現に変換した後(ST205)、前記色相および前記明度の色彩情報をマンセル表色系に基づいて数値化して色情報を取得し、ワークメモリ18に出力、保持しておき(ST206)、色彩情報取得工程を終了する。ここで取得した色情報は、斜方照明装置の高さ位置調整工程(ST9)、表裏判別工程(ST13)で利用する。
一方、CPU15は、撮像対象となるボタン2が透明体であると判断した場合には(ST202においてYes)、色彩情報を取得することができないので、色彩情報取得工程を終了する。
次に、CPU15は、ボタン2が不透明体または半透明体で構成されていたため色彩情報取得工程(ST4)において色彩情報を取得することができたか否かを判別し(ST5)、取得できないと判断した場合には(ST5においてNo)、ボタン2が透明な材料で構成されているボタンであると分類し、透明な材料により構成されたボタン2の外径・中心位置、糸通し孔の数・外径・中心位置・形成位置等の構成を計測し構成情報を取得する第2計測工程を行う(ST6)。
この第2計測工程においては、図6に示すように、まず、CPU15は、液晶表示パネル10において表示されるボタン2の背景パターンを設定する(ST301)。背景パターンとしては、例えば、図7(1)示す横縞模様や、図7(2)に示す斜め縞模様や、図7(3)に示す市松模様のような周期的な模様が用いられる。
続いて、CPU15は、パネル制御部26を介して、液晶表示パネル10により背景パターンの設定工程(ST301)において設定された背景パターンを表示する(ST302)。
さらに、CPU15は、同軸落射照明制御部22を介して同軸落射照明装置5によりボタン2に照射光を照射しながら、カメラ制御部21を介してカメラ3により前方照明画像を撮像して前方照明画像データを取得する(ST303)。そして、CPU15は、この前方照明画像データを画像メモリ16に記録する。
次に、CPU15は、第2計測工程(ST6)の前方照明画像を取得する工程(ST303)において取得した前方照明画像データを用いて、ボタン2の外形輪郭線を抽出する処理を行う(ST304)。
ここで、液晶表示パネル10からの照射光は、透明体のボタン2を透過して空気中に出射する際に必ず屈折する。また、透明体のボタン2を透過した照射光は、ボタン2の形状によっては透視歪が発生し、ボタン2によって凸レンズの条件が成立すれば拡散され、凹レンズの条件が成立すれば集光することとなる。このため、取得した前方照明画像データ上において、背景部分は液晶表示パネル10によって表示された背景パターンがそのまま周期的なパターンによって撮像される。一方、ボタン部分は背景パターンの周期性が乱れることとなる。これにより、撮像されたパターンが周期的な部分と周期的ではない部分との境界線を追跡することにより、背景とボタン2とを分離し、ボタン2の外径輪郭線を抽出することができる。
このボタン2の外径輪郭線の抽出工程は(ST304)、背景パターンの模様の周期情報はわかっているので、例えば、前方照明画像データについてフーリエ変換を行って周波数成分にし、背景部分の周波数成分のみを削除した後、逆フーリエ変換を行って、元の前方照明画像データに戻すことにより行う。これにより、図8に示すようなボタン部分のみの前方照明画像データを得る。そして、このようなボタン部分のみの前方照明画像データについて、背景部分とボタン部分との境界線を追跡して、図9に示すような二値化画像データを得て、ボタン2の外径輪郭線を抽出する。
そして、CPU15は、ボタン2の外径輪郭線の抽出工程(ST304)において、抽出したボタン2の外形輪郭線が円形かどうか、または急峻な外周縁上の点を有するか否かを検出することにより、正常に外形輪郭線を抽出することができたか否かを判別し(ST305)、正常に抽出することができないと判断した場合には(ST305においてNo)、第2計測工程(ST6)を終了する。
一方、CPU15は、外形輪郭線を正常に抽出することができたと判断した場合には(ST305においてYes)、糸通し孔の輪郭線を抽出する処理を行う(ST306)。この糸通し孔の輪郭線の抽出工程においては、図8に示すST304において取得したボタン部分のみの前方照明画像データを用いて、ST305と同等の方法により糸通し孔の輪郭線を抽出することができる。また、ST305と同等の方法によって図9に示す二値化画像データを得た後、この二値化画像データを用いてST105と同等の方法により糸通し孔の輪郭線を抽出してもよい。
その後、CPU15は、前記二値化画像データを用いてボタン2の外径を検出し、ボタン2の中心位置を取得した後(ST307)、糸通し孔の輪郭線の抽出工程においてラベリング処理された二値化データを用いて、糸通し孔の数を取得する(ST308)。
次に、CPU15は、ST308において検出された数の糸通し孔のすべてについて外径および中心位置を取得する工程を終了したか否かを判別する(ST309)。このとき、CPU15は、糸通し孔のすべてについて外径および中心位置を取得する工程を終了していないと判断した場合には(ST309においてNo)、前記二値化画像データを用いて糸通し孔の外径を検出し、糸通し孔の中心位置を取得し(ST310)、このボタン2の外径・中心位置、糸通し孔の数・外径・中心位置・形成位置に関する構成情報をインタフェース(I/F)20を介してミシン制御部30に出力する。また、この情報は表裏判別工程で利用するため、ワークメモリ18に保持しておく。その後、CPU15は、再度、ST308において検出された数の糸通し孔のすべてについて外径および中心位置を取得する工程を終了したか否かを判別する(ST309)。
一方、CPU15は、糸通し孔のすべてについての外径および中心位置の取得が終了したと判断した場合には(ST309においてYes)、第2計測工程を終了する。
一方、CPU15は、色彩情報取得工程(ST4)において色彩情報を取得することができできたと判断した場合には(ST5においてYes)、第1ボタン計測工程(ST2)において、ST104で肯定判断される(ST104においてYes)ことより、ボタン2の外形輪郭線を抽出できたか否かを判別する(ST7)。そして、ボタン2の外形輪郭線を抽出することができなかったと判断した場合には(ST7においてNo)、半透明の材料により構成されたボタン2の外径・中心位置、糸通し孔の数・外径・中心位置・形成位置等の構成を計測し構成情報を取得する第3計測工程を行う(ST8)。
この第3計測工程においては、図10に示すように、まず、CPU15は、液晶表示パネル10において表示されるボタン2の背景パターンを設定する(ST401)。この背景パターンとしては、ST4の色彩判別工程において判別されたボタン2の色彩に対して、より背景分離が容易になるような背景色となるように設定する。例えば、第3計測工程においてカラー画像を用いて処理を行う場合には、ボタン2の色彩と補色の関係にある色彩を背景色として設定するとよい。また、第3計測工程においてカラー画像を濃淡画像にしてこの濃淡画像を用いて処理を行う場合には、背景部分とボタン部分の濃度差がより大きくなるような色彩を背景色として設定するとよい。さらには、白色または黒色をボタン2の色彩に応じて切り替えてもよい。
続いて、CPU15は、パネル制御部26を介して液晶表示パネル10により背景パターンの設定工程(ST401)において設定された背景パターンを表示する(ST402)。そして、CPU15は、同軸落射照明制御部22を介して、同軸落射照明装置5によりボタン2に照射光を照射しながら、カメラ3部を介してカメラ3により前方照明画像を撮像して前方照明画像データを取得し(ST403)、この前方照明画像データを画像メモリ16に記録する。
次に、CPU15は、第3計測工程(ST8)の前方照明画像を取得する工程(ST403)において取得した前方照明画像データを用いて、ボタン2の外形輪郭線を抽出する処理を行う(ST404)。
このボタン2の外形輪郭線を抽出する工程においては(ST404)、前方照明画像データをカラー画像のまま用いる場合には、背景色は、背景パターンの設定工程(ST401)において設定されたものであるためわかっているので、背景パターンの色彩情報をもとに、ボタン2と背景の領域を分割して、その境界線を追跡することによりボタン2の外形輪郭線を抽出することができる。また、前記前方照明画像のカラー画像を濃淡画像にして、この濃淡画像を用いてボタン2の外形輪郭線の抽出を行う場合、背景パターンの設定工程(ST401)において、予め背景部分とボタン部分との濃度差が大きくなるように設定されているため、背景部分とボタン部分とのコントラストが高い。このため、判別分析法などの動的なしきい値取得アルゴリズムを用いてしきい値を求め、前記前方照明画像の濃淡画像について二値化処理を行うことにより、透過照明画像データと同様の画像データを得ることができる。その後、ST103と同様に前記前方照明画像データについてラベリング処理を行い、背景とボタン2との境界線を追跡することにより、ボタン2の外形輪郭線を抽出する。
そして、CPU15は、ボタン2の外形輪郭線の抽出工程(ST404)において、抽出したボタン2の外形輪郭線が円形かどうか、または急峻な外周縁上の点を有するか否かを検出することにより、正常に外形輪郭線を抽出することができたか否かを判別し(ST405)、正常に抽出することができないと判断した場合には(ST405においてNo)、第3計測工程(ST8)を終了する。
一方、CPU15は、外形輪郭線を正常に抽出することができたと判断した場合には(ST405においてYes)、糸通し孔の輪郭線を抽出する処理を行う(ST406)。この糸通し孔の輪郭線の抽出工程は、ST404のボタン2の外形輪郭線を抽出する工程と同等の方法を用いて、糸通し孔の輪郭線を抽出することができる。
その後、CPU15は、前記前方照明画像データを用いてボタン2の外径・中心位置を検出し(ST407)、前記前方照明画像データを用いて、糸通し孔の数を取得する(ST408)。
次に、CPU15は、ST408において検出された数の糸通し孔のすべてについて外径および中心位置を取得する工程を終了したか否かを判別し(ST409)、終了していないと判断した場合には(ST409においてNo)、前記前方照明画像データを用いて糸通し孔の外径を検出し、糸通し孔の中心位置を取得して(ST410)、このボタン2の外径・中心位置、糸通し孔の数・外径・中心位置・形成位置に関する構成情報をインタフェース(I/F)20を介してミシン制御部30に出力する。また、この情報は表裏判別工程で利用するため、ワークメモリ18に保持しておく。その後、CPU15は、再度、ST408において検出された数の糸通し孔のすべてについて外径および中心位置を取得する工程を終了したか否かを判別する(ST409)。
一方、CPU15は、糸通し孔のすべてについて外径および中心位置の取得が終了したと判断した場合には(ST409においてYes)、第3計測工程を終了する。
そして、CPU15は、第2計測工程(ST6)が終了した場合、第3計測工程(ST8)が終了した場合、またはST2の第1ボタン計測工程においてボタン2の外形輪郭線を抽出できたと判断した場合には(ST7においてYes)、斜方照明装置7によってボタン2に対して照射光を照射する位置を調整することにより(ST9)、ボタン2の上面に照射される照射光の角度を調整する。
斜方照明装置7の位置調整工程においては、図11に示すように、まずCPU15は、色彩判別工程(ST4)において判別されたボタン2の色彩情報に基づいて、ボタン2の上面における光の反射率を取得し(ST501)、演算した反射率から、ボタン2の上面の傾斜や刻印等の凹凸形状を撮像可能にするための斜方照明装置7から照射する照射光の照射角度(θ)および光量を取得する(ST502)。ここで、ボタン2の上面の色彩の明度が低く反射率が低いほど、θを大きく設定し(図1参照)、ボタン2の上面の色彩の明度が高く反射率が高いほど、換言すれば明るい色ほど、θを小さく設定するとともに光量を多く設定する。このような反射率とθおよび光量との関係は、予め実験により算出し、テーブルとして第1記録メモリ17に記録しておくこともできる。そして、CPU15は、演算したθによって斜方照明装置7からの照射光がボタン2の上面に照射されるように、斜方照明装置7の高さ位置を演算し(ST503)、設定した斜方照明装置7の高さ位置を位置調整制御部25に出力するとともに、光量を斜方照明制御部23に出力して(ST504)、位置調整工程を終了する。
続いて、CPU15は、斜方照明装置7によってボタン2の上面を照射光により照射した状態で、カメラ3によりボタン2の上面を撮像して斜方照明画像を取得する処理を行う(ST10)。
この斜方照明画像取得工程においては、CPU15は、位置調整制御部25により入力した高さ位置に基づいて斜方照明装置7の高さ位置を調整するとともに、斜方照明制御部23により入力した光量に基づいて斜方照明装置7の光量を調整し、ボタン2の上方から前記高さ位置および光量により斜方照明装置7によって所定の角度をもってボタン2の上面に散乱光の照射光を照射する。そして、CPU15は、斜方照明装置7によってボタン2の上面に照射光を照射した状態で、カメラ制御部21を介してカメラ3によってボタン2の上面を撮像して斜方照明画像の暗視野画像を取得する。この斜方照明画像取得工程においては、特に、ボタン2の上面の凹凸形状が映し出される。
その後、CPU15は、ST3、ST303、またはST403の前方照明画像取得工程において取得した前方照明画像と、ST10の斜方照明画像取得工程において取得した斜方照明画像とを合成する処理を行う(ST11)。
この画像合成工程において、CPU15は、例えば、図12(a)に示すよう撮像対象のボタン2について、ST10の斜方照明画像取得工程において撮像された図12(b)に示す斜方照明画像と、ST3、ST303、またはST403の前方照明画像取得工程において取得された図12(c)に示すような前方照明画像とを合成する。ここで、斜方照明画像取得工程(ST10)において取得される斜方照明画像の暗視野画像においては、撮影対象のボタン2が透明体の場合には、ボタン2の上面に記載された文字、図形等の模様は、ボタン2の上面において斜方照明装置7からの照射光が散乱して白く映し出される。しかし、ボタン2が不透明体の場合には、ボタン2の上面に記載された画像は映し出されず、ボタン2の上面の凹凸形状が映し出されることとなる。一方、前方照明画像においては、特に、ボタン2の上面の画像が映し出されている。これにより、CPU15は、斜方照明画像と前方照明画像とを合成して、図12(d)に示すようなボタン2の上面に記載された画像および凹凸形状が映し出された合成画像を生成する。
さらに、CPU15は、画像合成工程(ST11)における合成画像を用いて、ボタン2の上面に記載された文字等の模様や、凹凸形状により形成された文字等の模様を検出する処理を行う(ST12)。
この画像検出工程においては、CPU15は、合成画像データについてラベリング処理を行い、ボタン2の上面の模様部分について模様の外形輪郭線を追跡し、模様の外形輪郭線を抽出する。続いて、CPU15は、模様のラベル毎に重心を求めて、模様の中心位置を検出し、この模様中心位置の情報を、各ボタン2のボタン2の外形、凹凸形状、外径および中心位置、さらには糸通し孔の位置、外径、および中心位置等の構成情報に付加する。これにより、ボタン2の表面に模様がある場合、ボタン2を縫製物に縫着する際に複数のボタン2において模様の向きが揃うように、ボタン2の平面形状における角度を調整することが可能となる。
そして、CPU15は、ST1〜ST12において取得された撮像対象となるボタン2の透過照明画像、前方照明画像、および斜方照明画像を用いて判別および計測され、ワークメモリ18に保持していた色彩情報および構成情報を用いて、ボタン2の表裏を判別する(ST13)。
この表裏判別工程においては、図13に示すように、まず、CPU15は、ワークメモリ18に保存されているボタン2の構成情報に基づいて、ボタン2の平面形状における角度およびボタン2の中心位置を取得する(ST601)。
ボタン2の平面形状における角度を取得する工程においては、1つのボタン2について2つの糸通し孔が形成されている場合には、2つの糸通し孔の中心位置を連結する直線の傾きによって、平面形状におけるボタン2の角度を取得する。1つのボタン2について3つの糸通し孔が正三角形の各頂点上に形成されている場合には、3つの糸通し孔のうちいずれか1つの糸通し孔の中心位置をとおり、かつ他の2つの糸通し孔を連結する直線に対して垂直な直線の傾きによって、平面形状におけるボタン2の角度を取得する。1つのボタン2について4つの糸通し孔が形成されている場合には、4つの糸通し孔のうちいずれか1つの糸通し孔を選択して、選択した糸通し孔に一番近接して形成された糸通し孔と選択した糸通し孔との中心位置を連結する直線を基準とする。さらに、選択されていない他の3つの糸通し孔についても一番近接して形成された糸通し孔と直線によって連結し、各直線の傾きを加味して平均を採用することにより、平面形状におけるボタン2の角度を取得する。
ボタン2の中心位置の取得工程においては、ボタン2の外形輪郭線の重心をボタン2の中心位置とする。
続いて、CPU15は、ボタン2における糸通し孔の数を判別する(ST602)。
ここで、糸通し孔の数が2つの場合には、まず、撮像対象となるボタン2の合成画像と比較されるボタン2の規格画像を2方向に回転したか否かを判別し(ST603)、2方向に回転していないと判断した場合には(ST603においてNo)、合成画像と規格画像とのマッチングを行って相関値を求めた後(ST604)、規格画像を180°回転して(ST605)、再度、規格画像を2方向に回転したか否かを判別する(ST603)。このようにして、2方向分の合成画像と規格画像との相関値を求める。
糸通し孔の数が3つの場合には、まず、規格画像を3方向に回転したか否かを判別し(ST606)、3方向に回転していないと判断した場合には(ST606においてNo)、合成画像と規格画像とのマッチングを行って相関値を求めた後(ST607)、規格画像を120°回転して(ST608)、再度、規格画像を3方向に回転したか否かを判別する(ST606)。このようにして、3方向分の合成画像と規格画像との相関値を求める。
糸通し孔の数が4つの場合には、まず、規格画像を4方向に回転したか否かを判別し(ST609)、4方向に回転していないと判断した場合には(ST609においてNo)、合成画像と規格画像とのマッチングを行って相関値を求めた後(ST610)、規格画像を90°回転して(ST611)、再度、規格画像を4方向に回転したか否かを判別する(ST609)。このようにして、4方向分の合成画像と規格画像との相関値を求める。
さらに、CPU15は、各方向について、各相関値のうちの最大値を評価値に決定し(ST612)、ボタン2の表裏を判別するために予め設定されているしきい値と評価値とを比較して、相関値の方が大きいか否か判別する(ST613)。そして、規格画像としてボタン2の表面の画像データが登録されている場合、CPU15は、相関値の方がしきい値よりも大きいと判断した場合には(ST613においてYes)、撮像対象となっているボタン2は表面が上方に向いていると判断し(ST614)、相関値の方がしきい値よりも小さいと判断した場合には(ST613においてNo)、ボタン2は裏面が上方に向いていると判断する(ST615)。このとき、撮像対象となったボタン2が、例えば外周縁が欠けている等の不良品であって、相関値の方がしきい値よりも小さくなってしまった場合には、ボタン2は裏面が上方に向いていると判断されることとなる。
CPU15は、撮像対象となっているボタン2の表裏を判別した後、表裏の判別結果、色彩情報および構成情報をI/F20を介してミシン制御部30に出力する(ST616)。
ミシン制御部30は、入力したボタン2の表裏の判別結果に基づき、ボタン2の裏面が上方に向いているのであれば、そのボタン2を除去し、ボタン2の表面が上方に向いているのであれば、入力したボタン2の構成情報に基づいて糸通し孔の形成位置や糸通し孔の外径を確認する。そして、ミシン制御部30は、糸通し孔の形成位置がずれていたり、糸通し孔の外径が小さいと判断した場合には、そのようなボタン2も除去し、正常なボタン2であると判断した場合には、構成情報に基づきボタン2の平面形状における角度を調整して、縫製物に縫い付ける作業を行う。
本実施形態によれば、前方照明画像のみならず、透過照明画像や斜方照明画像を用いることにより、ボタン2の外形・外径・中心位置・上面の凹凸形状、糸通し孔の数・外径・中心位置・形成位置等の構成情報を精度よく取得することができる。すなわち、ボタン認識装置1は、斜方照明装置7によってボタン2を照射した状態でカメラ3によってボタン2の上面を撮像することにより、ボタン2の上面の凹凸形状についての構成情報を取得することができる。また、ボタン認識装置1は、液晶表示パネル10によってボタン2を照射した状態でカメラ3によってボタン2の上面を撮像することにより、不透明体のボタン2における糸通し孔の形成位置等について、高精度の構成情報を取得することができる。
したがって、本実施形態に係るボタン認識装置1は、多種多様のボタン2について、高精度の構成情報に基づいてボタン2の表裏を判別することができ、表裏の判別精度を向上させることができるとともに、前記構成情報を用いて不良品のボタン2を除去したり、ボタン2を平面形状における所定の角度に向けて配置させることができ、ミシンによって仕上がりよく縫製物にボタン2を縫い付けることができる。
また、ボタン認識装置1は、不透明体のボタン2における糸通し孔の形成位置について高精度の構成情報を取得することにより、製造精度が不良なボタン2を判別することができるので、ミシンの縫い針が糸通し孔を通過せずにボタン2に接触することによる縫い針折れ等のトラブルの発生を防止することができる。
さらに、ボタン認識装置1は、ボタン2の上面の色彩情報を取得し、ボタン2の透光度によってボタン2を分類し、ボタン2の色彩及び透光度に応じて各照明装置5、7、10における照射条件を設定することができる。これにより、より鮮明なボタン2の各照明画像を取得することができるので、多種多様のボタン2について、より高精度の情報を取得することができる。
さらにまた、ボタン2の色彩に応じて、位置調整装置9によってボタン2に対する斜方照明装置7の位置を調整することにより、斜方照明装置7からボタン2の上面に照射される照射光の角度を調整することができる。これにより、斜方照明装置7によって、より鮮明にボタン2の上面の凹凸形状を映し出すことができるので、多種多様なボタン2についてより高精度の構成情報を取得することができ、表裏判別の精度もより向上させることができる。
また、液晶表示パネル10は照射光の色彩を変更することができるので、ボタン2の色彩に応じて液晶表示パネル10からの照射光の色彩を変更することにより、前方照明画像においてボタン部分と背景部分とをより容易に分離することができるような背景色を設定することが可能となる。例えば、不透明の材料からなるボタン2については黒色の背景色に設定し、半透明の材料からなるボタン2について、ボタン2の色彩と補色関係の色彩を背景色に設定したり、前方照明画像においてボタン部分と背景部分とのコントラストがより高くなる色彩を背景色に設定することにより、背景部分とボタン部分とをより明確に分離して、ボタン2の外形輪郭線を抽出することができる。これにより、同軸落射照明装置5によって、より鮮明にボタン2の上面を映し出すことができるので、多種多様なボタン2についてより高精度の構成情報を取得することができ、表裏判別の精度もより向上させることができる。
また、液晶表示パネル10は表示する背景パターンを変更することができるので、ボタン2の透過度に応じて液晶表示パネル10により表示される背景パターンを変更することにより、前方照明画像においてボタン2と背景とを分離可能な背景パターンを設定することが可能となる。例えば、不透明の材料からなるボタン2については、液晶表示パネル10によって無地の背景パターンを表示し、透明の材料からなるボタン2については、液晶表示パネル10によって周期的な模様の背景パターンを表示することにより、背景部分とボタン部分とをより明確に分離して、ボタン2の外形輪郭線を抽出することができる。これにより、同軸落射照明装置5によって、より鮮明にボタン2の上面を映し出すことができるので、多種多様なボタン2についてより高精度の構成情報を取得することができ、表裏判別の精度をより向上させることができる。
なお、本発明は前記実施形態に限定されるものではなく、必要に応じて種々変更することが可能である。
例えば、前記実施の形態では、第1計測処理、第2計測処理、第3計測処理等の各計測処理は、液晶表示パネル10上に1個のボタンを載置した状態で行っているが、液晶表示パネル10上に特定種類のボタンを複数載置し、各計測処理中で複数のボタンを1回の撮像により計測しても良い。
また、上記実施の形態では、ボタン2が不透明体、半透明体、透明体のいずれの材料で構成されているかを判断、分類するために、各画像データにおいてボタン2により形成される集合体のラベリング処理において付されたラベル数を用いて判断しているが、ST1で取得される透過照明画像データにおける背景以外の影部分として認識される画素の有無、及び、影部分として認識された画像の背景分に対する光の透光量により検出される透光度に基づいて、不透明体、半透明体、透明体のそれぞれを分類しても良い。