以下、添付の図面を参照しながら、本発明による印刷装置および印刷方法の実施の形態の一例を詳細に説明するものとする。
まず、図1には、本発明による印刷装置の概略構成説明図が示されている。
この図1に示す印刷装置10は、所謂、フラットベッドタイプのインクジェットプリンタであって、固定系のベース部材12と、ベース部材12上において上面14aに略矩形形状の名刺やカードなどの被印刷物200が載置されるテーブル14と、X軸方向に延設された棒状部材16を備え、棒状部材16がテーブルの上方側をY軸方向に摺動自在に配設された移動部材18と、棒状部材16においてX軸方向に摺動自在に設けられ、テーブル14に載置された被印刷物200に対して印刷を行う印刷ヘッド20と、ベース部材12の後方側において立設された立設部材22と、立設部材22に配設され、テーブル14の上面14a全体を撮影可能なカメラ26とを有して構成されている。
なお、こうした印刷装置10の全体の動作は、マイクロコンピューター300によって制御される。
より詳細には、テーブル14は、被印刷物200が載置される上面14aが平坦となっており、この上面14aは、印刷ヘッド20によりチェッカーパターンが印刷される。
ベース部材12にはY軸方向にガイド溝28a、28bが延設されており、移動部材18は、このガイド溝28a、28bに沿って図示しない移動機構によりY軸方向に移動する。
なお、移動部材18をY軸方向に移動させる移動機能については、ギアとモーターとの組合せなどによる従来より公知の技術を用いればよい。
そして、移動部材18は、棒状部材16の前面に設けられたガイドレール(図示せず。)に摺動自在に印刷ヘッド20が設けられている。
この印刷ヘッド20は、インクジェット方式によりインクを吐出するインクヘッドである。
印刷ヘッド20には、X軸方向に移動自在なベルト(図示せず。)が設けられており、このベルトが図示しない移動機構によって巻き取られることにより当該ベルトが移動し、このベルトの移動に伴って、印刷ヘッド20がX軸方向を左方側から右方側、右方側から左方側に移動することとなる。
なお、ベルト(図示せず。)を巻き取って印刷ヘッド20をX軸方向に移動させる移動機構については、ギアとモーターとの組合せなどによる従来より公知の技術を用いればよい。
また、本明細書において「インクジェット方式」とは、二値偏向方式あるいは連続偏向方式などの各種の連続方式や、サーマル方式あるいは圧電素子方式などの各種のオンデマンド方式を含む、従来より公知の各種の手法によるインクジェット技術による印刷方式を意味するものとする。
カメラ26は、カラー画像を撮影するとともに、テーブル14の上面14a全体を撮影することができるように立設部材22に固定的に配設されている。
また、印刷装置10の全体の動作を制御するマイクロコンピューター300においては、カメラ26により撮影された撮影画像などの各種の情報を記憶する記憶部50と、テーブル14の上面14aに配置された被印刷物200の配置位置および姿勢を取得する位置・姿勢取得部52と、作業者により編集された印刷データを実際に印刷に用いる印刷データとして作成する印刷データ作成部54とが備えられている。
なお、位置・姿勢取得部52は、被印刷物200が位置する配置領域を取得する配置領域取得部62と、被印刷物200の大まかな輪郭部分の画像たる粗放エッジ画像を取得する粗放エッジ画像取得部64と、被印刷物200の正確な輪郭部分の画像たる精密エッジ画像を取得する精密エッジ画像取得部66と、被印刷物200の配置位置および姿勢を取得する配置位置取得部68と、被印刷部を所定の姿勢になるよう正規化するための変換行列を算出する算出部70とを有して構成されている。
以上の構成において、印刷装置10により被印刷物200に所望の印刷を行う場合について説明するが、まず、印刷装置10においては、工場出荷時やカメラ26の交換時などの所定のタイミングで、カメラキャリブレーションと、カメラ26とテーブル14の上面14a(印刷座標系)とのキャリブレーションが行われる。
ここで、カメラキャリブレーションは、印刷装置10とは独立した状態で、別途LCD(Liquid Crystal Display:液晶ディスプレイ)を用いて行うこととなる。
そして、カメラキャリブレーションを行った後に、カメラ26を印刷装置10に設置し、カメラ26とテーブル14の上面14aとの位置、姿勢の関係を求めるキャリブレーション(つまり、カメラ26とテーブル14の上面14aとのキャリブレーションである。)を行う。
具体的には、カメラキャリブレーションでは、カメラ26の画角一杯にチェッカーパターンを撮影し、Zhangの手法によりカメラパラメータを算出する。
ここで、このチェッカーパターンは、テーブル14の上面14aに描かれているものではなく、別途、LCD上に表示したものを使用する。
なお、Zhangの手法によりカメラパラメータを算出する手法については、例えば、特開2007−309660号公報に開示されている技術を用いるため、その詳細な説明は、省略することとする。
そして、印刷装置10を使用する際には、Zhangの手法により算出された下記の(1)(2)式より、レンズ歪み係数(k1、k2)を含むカメラの内部パラメータ(A)のみを使用する。
また、カメラ26とテーブル14の上面14aとのキャリブレーションでは、カメラ撮影画像から印刷領域画像への射影変換行列Hc2pを算出する。
まず、テーブル14に何も載せていない状態を撮影する。なお、このとき、テーブル上には、既知の間隔の市松模様のチェッカーパターンが描かれている(このチェッカーパターンは、印刷ヘッド20により印刷されたものである。)。
次に、上記(2)式を利用して、撮影した画像(つまり、テーブル14上に描かれたチェッカーパターンの画像である。)のレンズ歪みを補正する。
その後、チェッカー交点座標をサブピクセル精度で推定する。
そして、チェッカー間隔をプリンタの解像度でのピクセル数に変換し(図2を参照する。)、チェッカー交点座標をそれらピクセル座標に変換するための射影変換行列Hc2pを求める。
ここで、市松模様の1マスの寸法をn(mm)、プリンタの解像度をr(dpi)とすると、変換後の1マスのピクセル数は、r×n/25.4となる。
そして、上記(3)式にn組の変換前後の画像座標値を当てはめる。
これをB・h=0とおくと、hはBの最小特異値に対応する右特異ベクトル、またはBTBの最小固有値に対応する固有ベクトルとして求められる(例えば、OpenCV 2.x,SVD::solveZ()関数を利用)。
また、こうしたカメラ26とテーブル14の上面14aとのキャリブレーションについては、例えば、従来より公知の技術(例えば、近代科学社「写真から作る3次元CG」徐剛著を参照する。)を用いるため、その詳細な説明は、省略することとする。
こうしたキャリブレーション済みの印刷装置10により、被印刷物200の印刷面200aに印刷を行う印刷の手順を、図3を参照しながら説明することとする。
まず、移動部材18が立設部材22の真下に位置した状態で、作業者が、起動した印刷装置10において、カメラ26によるテーブル14の上面14aの撮影を行い、被印刷物200が載置されていない状態のテーブル14の画像(以下、「被印刷物200が載置されていない状態のテーブル14の画像」を、「背景画像」と称することとする。)を取得する(ステップS302、図5(a)を参照する。)。
なお、移動部材18が立設部材22の真下に位置した状態とは、移動部材18や印刷ヘッド20、あるいは、それらの影が映ることなく、カメラ26によりテーブル14の上面14a全体を撮影することが可能な状態である。
次に、テーブル14の上面14aに被印刷物200を載置し、カメラ26により被印刷物200が載置されたテーブル14の上面14aの撮影を行い、被印刷物200が載置された状態のテーブル14の画像(以下、「被印刷物200が載置された状態のテーブル14の画像」を、「前景画像」と称することとする。)を取得する(ステップS304、図5(b)を参照する。)。
このとき、テーブル14の上面14aに載置された被印刷物200は、1つであってもよいし複数であってもよく、複数の場合には、X軸方向およびY軸方向に沿って大まかにならべればよく、並べられた被印刷物200は、X軸またはY軸に対してある程度傾いた姿勢であってもよい。
また、上面14aに被印刷物200を複数載置する場合には、隣り合う被印刷物200は所定の間隔を空けて並べられる。
その後、作業者により図示しない操作子などが操作されて、被印刷物200の配置位置および姿勢を取得する指示が入力されると、位置・姿勢取得部52において、被印刷物200の配置位置および姿勢を取得するための位置・姿勢取得処理が開始される(ステップS306)。
ここで、図4のフローチャートには、位置・姿勢取得処理の詳細な処理内容が示されており、この位置・姿勢取得処理においては、まず、ステップS302の処理で取得した背景画像と、ステップS304の処理で取得した前景画像とをそれぞれ、上記(2)(3)式を用いて、レンズ歪み補正を行うとともに、印刷領域への射影変換を行う(ステップS402、図5(c)(d)を参照する。)。なお、以下の説明において、特に説明のない限り、「背景画像」とは、レンズ歪み補正を行うとともに印刷領域への射影変換を行った背景画像を意味するものとし、「前景画像」とは、レンズ歪み補正を行うとともに印刷領域への射影変換を行った前景画像を意味するものとする。
次に、テーブル14の上面14aにおいて被印刷物200が位置する配置領域(以下、「被印刷物200が位置する配置領域」を、単に「配置領域」と適宜に称することとする。)を取得する(ステップS404)。
即ち、このステップS404の処理においては、まず、配置領域取得部62において、背景画像と前景画像との差分をとる。
つまり、カラー画像である背景画像と前景画像とにおいて、RGBをベクトルとして、2つの画像間における対応する画素のユークリッド距離に基づいてグレー値で表現したグレースケール画像を作成する(図6(a)を参照する。)。
なお、こうした背景画像と前景画像との差分を抽出してグレースケール画像を作成する技術は、従来より公知の技術を用いることができるため、その詳細な説明は省略することする。
その後、配置領域取得部62において、被印刷物200の存在する領域と被印刷物200の存在しない領域とを明確にするために、作成したグレースケール画像の二値化を行う(図6(b)を参照する。)。
即ち、所定の閾値より大きなグレー値を「白」、所定の閾値より小さなグレー値を「黒」とした差分二値画像を作成する。このとき、ユークリッド距離のヒストグラム(図6(c)を参照する。)において、ユークリッド距離の最も低い山の右側の裾野を所定の閾値とする。
また、配置領域取得部62において、背景画像に対してSobelフィルタ処理を行った後に、大津の閾値よる二値化処理を行って、チェッカーパターンにおける市松模様の境界線が明示された背景二値画像を作成する(図6(d)を参照する。)。
なお、「Sobelフィルタ」および「大津の閾値による二値化」の各処理については、従来より公知の技術であるため、その詳細な説明は省略することとする。
そして、配置領域取得部62において、背景画像と前景画像との差分をとって作成された差分二値画像(図6(b)に示す画像である。)と、背景画像における市松模様の境界が明示された背景二値画像(図6(d)に示す画像である。)とを合成して絶対差分画像を取得する(図7(a)を参照する。)。
このとき、絶対差分画像においては、図7(a)に示すように、被加工物200が配置されていない領域(つまり、「黒」で表されている領域である。)において、市松模様の境界線に起因するノイズ(白画素)が残る場合がある。
こうしたノイズを消去するために、次に、配置領域取得部62において、背景二値画像の白画素座標から、絶対差分画像上の白画素を上下左右方向にスキャンし、白画素が連続する長さが、背景二値画像における境界線の幅(図6(d)を参照する。)以下のものは、スキャンした白画素を黒に変更する(図7(b)を参照する。)。
そして、配置領域取得部63において、市松模様の境界線に起因するノイズが除去された絶対差分画像から、白画素が連続している点群を1つの被印刷物200として抽出するとともに、この点群を囲むバウンティングボックスを取得し(図7(c)を参照する。)、白画素が連続する点群とバウンティングボックスとを合わせて、被印刷物200が位置する配置領域として取得する。
なお、こうした被印刷物200が位置する配置領域の取得については、テーブル14の上面14aに載置された全ての被印刷物200に対して実行される。つまり、図7(b)に示す絶対差分画像からは、12個の領域が取得されることとなる。
このようにして、被印刷物200が位置する配置領域の取得がなされると、次に、各配置領域において被印刷物200の正確な輪郭が明示された精密エッジ画像を取得する(ステップS406)。
即ち、このステップS406の処理においては、まず、粗放エッジ画像取得部64において、任意の配置領域について、取得された被印刷物200を囲むバウンティングボックスの4辺をそれぞれ3ピクセルずつ拡張し、拡張後のバウンティングボックスを含む被印刷物200が位置する配置領域を被加工物200のROI(Region of Interest)とする(図8(a)を参照する。)。
次に、粗放エッジ画像取得部64において、ROIにおける白画素を、膨張させた後に縮退を行う処理を複数回行って、さらに、黒画素を基点としてそこから黒が連続する領域の画素を黒に、それ以外の領域の画素を白とする画像を新たに生成することで、被印刷物200を表す領域内の黒画素を除去する(図8(b)を参照する。)。
そして、粗放エッジ画像取得部64において、黒画素を除去した白画素の点群における黒画素との境界に位置する白画素を膨張し、白画素の点群で表される被印刷物200を表す領域を外側に2ピクセル分だけ拡張した拡張画像を取得する(図8(c)を参照する。)。
さらに、粗放エッジ画像取得部64において、この2ピクセル分拡張した被印刷物200を表す領域を所定量だけ縮退し、その後、バウンティングボックス内の白画素と黒画素とを反転して、縮退反転画像を取得する(図8(d)を参照する。)。
なお、縮退する所定量は、例えば、2ピクセル分拡張した被印刷物200を表す領域における対角線の長さの2%とする。
その後、粗放エッジ画像取得部64において、取得した拡張画像と縮退反転画像とを合成して、被印刷物200の大まかな輪郭(エッジ)部分が形成された粗放エッジ画像を取得する(図8(e)を参照する。)。
粗放エッジ画像を取得すると、精密エッジ画像取得部66において、粗放エッジ画像を取得したROIの前景画像を取得し(図9(a)を参照する。)、この前景画像からDoG(Difference of Gaussian)画像の生成処理および細線化処理を行って、細線化DoG画像を取得する(図9(b)を参照する。)。
なお、DoG画像の生成(Difference of Sobel−X and Sobel−Y)処理、細線化(Non−maximal suppression)処理の技術は、従来より公知の技術のため、その詳細な説明は省略することとする。
そして、精密エッジ画像取得部66において、取得した細線化DoG画像と粗放エッジ画像とを合成して、被印刷物200の輪郭近傍以外の白画素を除去し(図9(c)を参照する。)、その後、合成した画像における中心から、上下左右方向にスキャンし最初に読み取った白画素のみを残すことで、被印刷物200の正確な輪郭(エッジ)部分が形成された精密エッジ画像を取得する(図9(d)を参照する。)。
その後、まだ精密エッジ画像を取得していない配置領域について、同様に処理を行い、全ての配置領域において精密エッジ画像を取得する。
精密エッジ画像を取得すると、次に、各配置領域における精密エッジ画像において輪郭部分が表示された被印刷物200の配置位置および姿勢を取得する(ステップS408)。
即ち、このステップS408の処理においては、配置位置取得部68において、精密エッジ画像における被印刷物200の輪郭部分の四辺に直線を当てはめ、その四辺を通る直線とその交点とを求める。
以下、図10(a)を参照しながら、被印刷物200の輪郭部分の四辺を通る直線とその交点を求める手順について説明するが、この図10(a)に示す図は、上記したROIから取得した精密エッジ画像ではなく、4つの角が直角でない矩形を例に挙げて説明する。
まず、ハフ変換によって直線の式x=a1*y+b1を検出するとき、傾き「a1」が1以下(X軸に対する傾きが45度以下)になるような直線を2本取得する(図10(a)における横方向の直線LH0、LH1である。)。
このとき、Y切片b1が小さい方の直線を「LH0」とし、大きい方の直線を「LH1」とする。
次に、ハフ変換によって直線の式y=a2*x+b2を検出するとき、傾き「a2」が1以下(Y軸に対する傾きが45度以下)になるような直線を2本取得する(図10(a)における縦方向の直線LV0、LV1である。)。
このとき、X切片b2が小さい方の直線を「LV0」とし、大きい方の直線を「LV1」とする。
その後、直線LH0と直線LV0の交点を「P0」、直線LH0と直線LV1との交点を「P1」、直線LH1と直線LV1との交点を「P2」、直線LH1と直線LV0との交点を「P3」とする。
なお、このとき取得した交点P0、P1、P2およびP3の座標値については、精密エッジ画像を取得したROIにおける座標値ではなく、印刷座標系における座標値とする。
こうして、精密エッジ画像において、被印刷物200の輪郭部分の四辺を通る直線と、当該直線の交点とを取得することにより、被印刷物200の配置位置および姿勢を取得される。
各配置領域における被印刷物200の配置位置および姿勢を取得すると、次に、各配置領域において被印刷物200が所定の姿勢となるように被印刷物200を正規化するための変換行列を算出し(ステップS410)、ステップS308の処理に進む。なお、「所定の姿勢」とは、例えば、直線LH0がX軸と平行となる姿勢である。
即ち、このステップS414の処理においては、算出部70において、交点P0、P1、P2およびP3を囲むバウンティングボックスの傾きを水平にし(図10(b)を参照する。)、被印刷物200のローカル座標系に座標値を変換するためのパラメータを算出する。
具体的には、まず、直線LH0(交点P0−P1)をX軸に一致するよう回転する角度θを算出する。
次に、算出した回転角度で印刷座標系の原点(0,0)を回転中心として回転するためのアフィン変換行列Rを算出する。
そして、交点P0、P1、P2およびP3の座標値をアフィン変換行列Rで回転し、取得した座標値を囲むバウンティングボックスを取得する。
その後、取得したバウンティングボックスの左上点の座標(tx、ty)を原点(0,0)に移動するアフィン変換行列Tを算出する。
そして、アフィン変換行列Hp2e=T・Rを、印刷座標系から被印刷物200のローカル座標系への変換パラメータとする。
また、取得したバウンティングボックスのサイズをこの被印刷物200のサイズとする。
こうして、位置・姿勢取得処理により、各配置領域における被印刷物200の配置位置および姿勢を取得すると、ステップS308の処理に進み、作業者により、正規化した被印刷物200において、被印刷物200に印刷するための印刷データの編集が行われる。
即ち、ステップS308の処理では、印刷データを編集することが可能な編集ソフトを利用して作業者が印刷データを編集する際に、正規化した被印刷物200の画像データ上で編集を行うようにする。
なお、この正規化した被印刷物200の画像データは、ステップS402の処理で取得した画像(図5(d)に示す前景画像である。)から、被印刷物200のバウンティングボックスサイズ(ステップS410の処理で取得したバウンティングボックスのサイズである。)の領域にアフィン変換行列Hp2eで被印刷物200の画像を切り出して取得する。(図11(a)を参照する。)
そして、取得した画像データ上において、作業者が、印刷データの編集を行うことにより、被印刷物200のどの位置に、どのような模様(図形、文字、絵など)の印刷を行うのかを決定することとなる(図11(b)を参照する。)。
作業者による印刷データの編集が完了すると、印刷データ作成部54において、編集した印刷データを正規化前の被印刷物200に印刷可能な印刷データに変換する(ステップS310)。
即ち、このステップS310の処理では、印刷データ作成部54において、被印刷物200が位置する各配置領域に対して取得したアフィン変換行列Hp2eの逆行列を取得し、取得したそれぞれのアフィン変換行列Hp2eの逆行列により、作業者に編集された印刷データを変換し、変換した各印刷データがそれぞれ被印刷物200の配置位置および姿勢に応じた位置および角度で配置された印刷データを(図11(c)を参照する。)、実際の印刷に用いる印刷データとして記憶部50に記憶する。
そして、ステップS310の処理において実際に印刷に用いる印刷データが作成された後に、作業者により印刷の開始が指示されると、マイクロコンピューター300の制御により、当該印刷データに基づいて印刷を行う(ステップS312)。
以上において説明したように、本発明による印刷装置10は、カメラ26を配設するようにし、背景画像と前景画像との差分をとって差分二値画像を取得するとともに、背景画像から背景二値画像を取得して、これらの2つの二値画像から絶対差分画像を取得するようにした。
そして、この絶対差分画像において、白画素のノイズを除去した後に、テーブル14に載置された各被印刷物200を表す白画素の点群を抽出と当該点群を囲むバウンティングボックスとを被印刷物200が位置する配置領域として取得するようにした。
さらに、取得した配置領域における白画素の点群内の黒画素を除去するとともに、白画素の領域を拡張した拡張画像と、白画素の領域を縮退した後に白画素と黒画素とを反転した縮退反転画像を作成し、これらの2つの画像を合成して粗放エッジ画像を取得するようにした。
また、各配置領域に対応する前景画像から、細線化DoG画像を取得し、細線化DoG画像と粗放エッジ画像とから精密エッジ画像を取得するようにした。
さらにまた、取得した精密エッジ画像における被印刷物200の輪郭部分の四辺に直線を当てはめて、被印刷物200の配置位置および姿勢を取得するようにした。
その後、被印刷物200を正規化するための変換行列を算出し、作業者により印刷データが編集されると、当該変換行列の逆行列により当該印刷データを変換し、実際に印刷に用いる印刷データを作成するようにした。
これにより、本発明による印刷装置10においては、背景画像および前景画像の2枚の画像に基づいて、安定して被印刷物200の位置や姿勢を取得することができるようになる。
従って、本発明による印刷装置10によれば、被印刷物200を固定および位置決めするような治具を設けることなく、被印刷物200に対して所望の印刷を行うことができるようになる。
なお、上記した実施の形態は、以下の(1)乃至(4)に示すように変形するようにしてもよい。
(1)上記した実施の形態においては、印刷装置10をインクジェットプリンタとして記載したが、これに限られるものではないことは勿論であり、印刷装置10としては、ドットインパクトプリンタやレーザープリンタなどの各種のプリンタを用いるようにしてもよい。
(2)上記した実施の形態においては、12個の被印刷物200に対して印刷を行う場合について説明したが、印刷可能な被印刷物200の個数は、これに限られるものではないことは勿論であり、1〜11または13個以上であってもよい。
(3)上記した実施の形態においては、印刷装置10は、印刷ヘッド20が移動部材18に備えられた棒状部材16においてX軸方向に移動するとともに移動部材18によりY軸方向に移動するようにしたが、これに限られるものではないことは勿論である。
即ち、印刷装置としては、図12に示すように、テーブル14がY軸方向に移動するとともに、印刷ヘッド20がX軸方向に移動するような構成としてもよい。
具体的には、図12に示す印刷装置60は、ベース部材12上に配設されたガイドレール62にテーブル14が摺動自在に設けられるとともに、ベース部材12上に固定的に配設された固定部材66に印刷ヘッド20を摺動自在に配設する点において、印刷装置10と異なっている。
このガイドレール62は、ベース部材12上においてY軸方向に延設された1対のガイドレール62−1、62−2により形成されている。
なお、テーブル14には、ガイドレール62のY軸方向で移動することができるように、マイクロコンピューター300により制御される駆動手段(図示せず。)がもうけられており、これにより、テーブル14はベース部材12上でY軸方向に移動することができるようになる。
また、固定部材66は、ベース部材12に固定的に配設された立設部材68−1、68−2と、立設部材68−1、68−2を連結するようにX軸方向に延設された棒状部材64と、により構成されている。
そして、棒状部材64においてX軸方向に沿って摺動自在に印刷ヘッド20が配設されている。
これにより、印刷ヘッド20は、固定部材66においてX軸方向に移動することとなる。
(4)上記した実施の形態ならびに上記した(1)乃至(3)に示す変形例は、適宜に組み合わせるようにしてもよい。