(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
(第1の実施形態)
以下、本発明の実施形態に係る画像切出装置、撮影装置、および画像切出方法について、図面を参照して説明する。
図1、
図2、
図3は、第1の実施形態に係る画像切出装置1を示す。
図1に示すように、画像切出装置1は、被写体を撮影した第1画像データD1と第2画像データD2とを読み込む読込部(読込手段)2と、これらの画像データD1,D2を用いて被写体の画像(単に、被写体画像という)を切り出す切出部(切出手段)3とを備えている。切出部3は、画像データD1,D2から被写体画像を切り出す処理を行う輪郭抽出部3a、マスク生成部3b、および切出処理部3cを備えている。
【0015】
画像切出装置1は、例えば、汎用のコンピュータを用いて構成され、切出部3の輪郭抽出部3a、マスク生成部3b、および切出処理部3cは、コンピュータ上で動作する画像処理プログラムによって構成される。画像切出装置1は、切り出した被写体画像のデータを保存し、また出力する。
【0016】
画像データD1は、第1の色光下で被写体を撮影した画像データであり、画像データD2は、第1の色光とは異なる第2の色光下で被写体を撮影した画像データである。これらの複数の画像データD1,D2を用いるのは、原画像一枚だけでは、被写体に背景色と近い色が含まれている場合に、正しく切り出せないからである。画像データD1,D2は、色光だけを替えて、同一アングルで撮影されている。具体的に各色光は、例えば、第1の色光が白色光であり、第2の色光が赤色光、または白色光による前景光と赤色光による背景光との混合光である。第2の色光は、このような赤色光を含むものに限られず、他の任意の色光とすることができる。
【0017】
画像切出装置1による画像の切り出しは、
図2のフローチャートに示すように、画像データの読み込み(S1)、画像データから被写体の輪郭抽出(S2,S3)、抽出された輪郭の画像を用いてマスクを生成(S4)、マスクを用いて被写体画像を切り出す(S5)、という大略手順で行われる。
【0018】
(読込工程S1)
次に、
図3を含めて参照して、画像切出装置1による画像切出方法を詳細説明する。まず、読込部2によって、画像データD1,D2が読み込まれる。各画像データD1,D2は、bmp,jpeg,pngなどの任意の画像データフォーマットで記録された画像データである。読み込まれた画像データD1,D2は、画素毎に画像処理するために、例えば、x方向(画面水平方向)とy方向(画面垂直方向)とに画素データを配列したデータにフォーマット変換される。
【0019】
画像データD1による第1画像91は、通常の白色光下において、無地の一様な面を背景面に用いて、被写体9を撮影した画像である。この第1画像91は、切り出し用の画像(原画像という)であり、この第1画像91から被写体画像90が切り出される。一般的に、切り出し用の画像には、この第1画像91に示すように、外形の不鮮明な領域a1,a2が存在することがある。被写体9が、例えば、ガラス瓶、ペットボトル、樹脂製の袋などの透明容器などの場合に特に、被写体9の透光性や反射性などの光学的特性の影響を受けて、このような画像になり易い。
【0020】
また、画像データD2による第2画像92は、赤色光下において、第1画像91と同様に、被写体9を撮影した画像である。この第2画像92は、輪郭抽出とマスク形成に用いられる画像(マスク用画像という)である。この画像の場合、赤色光は、白色光を用いる場合よりも、被写体9の外形をより明確に画像化できることにより、第2画像撮影用の色光として選択されている。被写体9の外形をより明確に画像化できることにより、被写体9の輪郭をより確実に自動処理によって抽出することができる。
【0021】
(二値化工程S2)
次に、切出部3の輪郭抽出部3aによって、第2画像データD2、すなわち第2画像92から二値化画像9aが生成される。二値化画像9aは、被写体9の輪郭を抽出するための前処理として生成される。二値化画像9aには、被写体9の輪郭を構成する画素となる輪郭画素が含まれていると想定されている。二値化画像9aは、第2画像92における画素値が鋭敏に変化する境目に位置する画素(エッジ画素)に白の画素値を付与し、それ以外の画素に黒の画素値を付与した画像である。このような二値化画像9aは、エッジ画像と呼ばれ、輪郭画素からなる輪郭画像9cを含んでいる。
【0022】
二値化画像9aの生成は、例えば、第2画像92を単色の濃淡画像に変換した後、画像の濃淡(明暗)が鋭敏に変化している箇所にある画素を特定するエッジ検出処理を通して、各画素の画素値を0または1のいずれかに振り分けて行われる。エッジ検出には、例えば、画素値の標準偏差を用いる。注目画素を中心とする3×3の範囲内の9つの画素から画素値を取得し、標準偏差を算出する。算出した標準偏差が一定値以上であれば、注目画素をエッジ画素と見做し、その画素の色を白とし、以下であれば黒とする。画像内の濃淡が一定の領域、つまりベタ塗り状態の領域の画素はいずれも黒となる。この処理を切り出しに影響しない周囲四辺を除いた画像内の全画素に施すことにより、二値化画像9aが得られる。なお、画素の色の定義を白黒反転してもよい。
【0023】
(輪郭抽出工程S3)
次に、同じく輪郭抽出部3aによって、二値化画像9aから輪郭(輪郭画素)が抽出され、輪郭画像9cが生成される。輪郭画像9cは、被写体9の画像部分を囲むように、輪の如く互いに連なって閉曲線を成すエッジ画素を二値化画像9aから抽出することによって生成される。また、二値化画像9aは、被写体9の輪郭となる輪郭画素以外に、ノイズとなるエッジ画素を含んでいる。そこで、ノイズを除去し、被写体9の輪郭となる画素を抽出するため、例えば、OpenCV(Open Source Computer Vision Library)が用いられる。OpenCVは、画像認識に関連する機能が標準的に含まれているライブラリである。
【0024】
二値化画像9aは、OpenCVで定義されているcvFindContours関数と、cvDrawContour関数という2つの関数を用いて処理される。この処理により、任意の領域を囲む全ての輪郭が調べられ、内部面積が最も大きい輪郭が取得され、他の輪郭が削除されることにより、輪郭画像9cが得られる。孤立したエッジ画素は削除される。また、輪郭抽出部3aによって、輪郭画素の座標値の最大と、最小とから、被写体9の外接矩形(高さH,幅W)の座標(x1,y1)、(x2,y2)が取得される。
【0025】
(マスク生成工程S4)
次に、マスク生成部3bによって、輪郭の画像すなわち輪郭画像9cを用いて、マスク画像9mが生成される。マスク画像9mは、輪郭画像9cにおける各画素の画素値を、輪郭の内側の画素と外側の画素との間で識別可能に設定したデータの集まりである。輪郭の画素は、例えば一律に内側または一律に外側のいずれかに決めればよい。
【0026】
(切出処理工程S5)
次に、切出処理部3cによって、マスク画像9mを用いて第1画像データD1すなわち第1画像91から被写体9の画像が切り出され、被写体画像90が得られる。切り出しは、第1画像91における、被写体9の外接矩形内、すなわち高さH,幅Wを有し座標(x1,y1)、(x2,y2)を対角頂点とする矩形内の画素を新たな画像データとしてコピーすることにより行われる。そのコピーの際にマスク画像9mが参照され、被写体9の輪郭外の画素は透過画素に置き換えられる。被写体画像90は、画素毎に色情報を扱うRGBの3つのチャンネルと透明度を扱うアルファチャンネルとを備える構成とされている。各チャンネルは0−255の256階調で表現されている。被写体画像90における透過画素は、アルファチャンネルの値が0に設定された、完全に透過する画素である。
【0027】
被写体画像90は、被写体9の輪郭の外側の部分、すなわち被写体9の背景となる部分を透明にした画像である。このように、背景を透明にする処理が、被写体画像を切り出す処理であり、この切り出し処理は、切出部3による各工程S2乃至S5の集まりからなる切出工程によって実行される。
【0028】
本実施形態の画像切出装置1とこれを用いる画像切出方法によれば、マスク生成に際し、切り出される被写体画像90を含む切り出し用の原画像である第1画像91とは異なるマスク生成用の第2画像92を用いるので、被写体9の有する光学的特性の影響を回避または抑制することができる。マスク生成用の専用画像を用いることにより、画像切出用のマスク画像9mを精度良く容易に生成でき、被写体画像90を自動的かつ容易に切り出すことができる。また、第1画像91にはマスク生成に要求される条件が課されないので、被写体画像90は、例えば、白色光のもとで、自然な状態で撮影された画像から切り出すことができる。
【0029】
(第2の実施形態)
図4、
図5、
図6は、第2の実施形態に係る画像切出装置1を示す。
図4に示すように、本実施形態の画像切出装置1は、上述の第1の実施形態における輪郭抽出部3aが、二値化部3xと合成部3yとを備えるものである。読込部2、マスク生成部3b、切り出し処理部3cの構成と動作は、第1の実施形態と同様である。輪郭抽出部3aの二値化部3xは、第1、第2画像データD1,D2の両方から二値化画像9aを生成し、合成部3yがこれらの二値化画像9aを合成し、生成された合成二値化画像9bから、最終的に輪郭抽出部3aによって輪郭画像が抽出される。
【0030】
(読込工程S1)
次に、
図5、
図6を含めて参照して、画像切出装置1による画像切出方法を詳細説明する。まず、読込部2によって、第1画像データD1と第2画像データD2とが読み込まれる。ここで、画像データD1は、白色光下で被写体9を撮影した画像データであり、画像データD2は、白色光とは異なる他の色光下で被写体を撮影した画像データである。
図6(a1)(a2)の第1画像91と第2画像92は、それぞれ画像データD1,D2による画像であり、これらのいずれの画像も、星印で示すように外形に不鮮明な領域が存在している。不鮮明な領域とは、各画像において背景との区別が判然としない被写体9上の領域のことである。
【0031】
(二値化工程S21)
輪郭抽出部3aの二値化部3xは、第1の実施形態と同様に標準偏差を用いてエッジ画素を検出する方法によって、これらの第1画像91と第2画像92の両方から、
図6(b1)(b2)に示すように、それぞれ被写体9の二値化画像9aを生成する。これらの二値化画像9aには、星印で示すように外形輪郭に途切れた部分が発生している。このような輪郭画像9aからそれぞれ、
図6(c1)(d1)、または
図6(c2)(d2)に示すように、輪郭画像9cを生成してマスク画像9mを生成すると、被写体9の全体を切り取ることができない不完全なマスクが生成されてしまう。
【0032】
(合成工程S22)
合成部3yは、第1画像91と第2画像92の両方から生成された二値化画像9aを重ねて、画素値の論理和に基づいて画像を合成し、
図6(b3)に示す合成二値化画像9bを生成する。互いに合成される2つの二値化画像9aは、互いに異なる画素値の組からなる2つの画像データD1,D2に基づくものであり、合成に際して相補的に作用して輪郭の途切れた部分を補修する。この合成により、途切れのない閉じた輪郭を有する合成二値化画像9bが得られる。
【0033】
(輪郭抽出工程S31)
輪郭抽出部3aは、合成二値化画像9bから被写体9の輪郭を抽出し、
図6(c3)に示す輪郭画像9cを生成する。その後、マスク生成部3b、切り出し処理部3cによるマスク生成工程S4、切出処理工程S5が実行されて、
図6(d3)(e3)に示すように、マスク画像9mが生成され、被写体画像90が生成される。
【0034】
(第3の実施形態)
図7、
図8は、第3の実施形態に係る画像切出装置1を示す。本実施形態の画像切出装置1は、上述の第1および第2の実施形態に係る画像切出装置1の如く2つの画像データを用いることの他に、3以上の画像データを用いることができるものである。すなわち、
図7に示すように、読込部2は、第1画像データD1および第2画像データD2以外の第3画像データD3をも含む複数の画像データを読み込む。
【0035】
輪郭抽出部3aの二値化部3xは、
図8に示すように、複数の輪郭抽出用の画像からそれぞれ二値化画像9aを生成する。二値化画像9aは、輪郭に注目して生成したエッジ画像である。複数の輪郭抽出用の画像は、読込部2が読み込んだ複数の画像データから選択された画像データによる画像である。複数の輪郭抽出用の画像に、画像切り出し用の第1画像が含まれない場合が第1の実施形態における画像切出装置1の拡張に相当し、含まれる場合が第2の実施形態における画像切出装置1の拡張に相当する。
【0036】
輪郭抽出部3aの合成部3yは、各二値化画像9aを重ねて、画素値の論理和に基づいて画像を合成し、合成二値化画像9bを生成する。輪郭抽出部3aは、合成二値化画像9bを用いて被写体の輪郭を抽出し、輪郭画像9cを生成する。
【0037】
(第4の実施形態)
図9に示す第4の実施形態に係る撮影装置10は、被写体9を撮影し、上述した第1、第2、第3の実施形態のいずれかの画像切出装置1を用いて、被写体画像を切り出して出力する撮影装置である。画像切出装置1は、読込部2と切出部3とを有して、コンピュータ11に備えられている。撮影装置10は、前景照明部4と、背景照明部5と、画像記録部6とを備えており、これらは、コンピュータ11に接続されて、画像切出装置1との情報のやりとりを行う。また、撮影装置10は、照明条件データベースDB1と、処理条件データベースDB2とを備えている。コンピュータ11は、汎用のコンピュータを用いることができ、GUI部1a、制御部1b、メモリ1c、通信部1d等を備えている。
【0038】
前景照明部4は、被写体9を前方から照明する照明装置であり、照明方向や光色を変化させることができる複数の光源4aを有している。前景照明部4は、前景照明用に、少なくとも白色光を発生し、白色光の他に、赤色光などの任意の色光の照明光を発生する。照明光に偏光性を持たせる偏光器を光源4aと組み合わせて用いてもよい。
【0039】
背景照明部5は、被写体9の背後に配置されて背景光を生成する照明装置である。背景照明部5は、例えば、有機EL素子を面分布させた有機ELシートを用いて後方から面発光させる光源5aを有する構成とすることができる。また、背景照明部5は、有機ELシートに替えて、例えば、被写体9の背後に設置した無方向性の反射面を有する、例えば、無地の反射シートと、その反射シートに背景用照明光を照射する光源と、を備えて、被写体9を背景側から間接照明する構成としてもよい。
【0040】
画像記録部6は、前景照明部4と背景照明部5を用いて構成した互いに異なる色光下で、被写体9を撮影して複数の画像データを取得し記録する。画像記録部6は、CCDなどの撮像素子を備えたカメラ6aを有し、被写体9のディジタル画像の画像データを取得する。カメラ6aには、偏光フィルタや種々の色フィルタを備えて、これらを通して被写体9を撮影することができる。カメラ6aには、背景照明部5が発生する背景光と、前景照明部4からの照明光が被写体9から反射された反射光および被写体の背景に配置された光源5aや反射シートから反射された反射光と、のうちいずれか一方または両方が入射する。画像記録部6が撮影する画像データには、このような直接光や反射光が記録される。前景照明部4、背景照明部5、画像記録部6との間で、偏光フィルタを組み合わせて用いて、偏光下で画像データを取得して、被写体9の光学的特性の影響を回避するようにしてもよい。
【0041】
照明条件データベースDB1は、被写体9の形状および光学特性に応じて分類されたデータであって、被写体9を撮影する際の照明の条件を決定するための照明条件のデータを記録している。照明条件は、データベースDB1に記録された照明条件のデータに基づいて、被写体9の種類と画像データの使用目的とに応じて選択される。画像データの使用目的は、例えば、画像切り出し用か、または、マスク形成用かなどである。例えば、画像切り出し用には白色光の条件とされ、マスク形成用には赤色光の条件とされる。
【0042】
選択された照明条件に基づいて、前景照明部4と背景照明部5が制御される。制御は、コンピュータ11の制御部1bが行う。照明条件の選択は、例えば、作業者がGUI部1aを介して行う。例えば、被写体9の外観が赤色の場合は、白色や緑色の背景光を発生させる照明条件を選択して、マスク生成用の画像を撮影する。なお、画像切り出し用の画像(原画像)を、最初に第1画像データD1として撮影する必要はなく、任意の順番で、撮影することができる。また、切り出し用の原画像は、必ずしも白色光下での画像に限られず、切り出した被写体画像の用途に応じて、任意の色光下で撮影した画像を用いることができる。
【0043】
処理条件データベースDB2は、被写体9の外形の特徴に応じて分類され、輪郭を抽出する際に、輪郭抽出部3aによって用いられる画像処理条件のデータを記録している。画像処理条件のデータは、例えば、被写体9が、食料品を包装した商品の場合、「共通一般型(デフォルト型)」、「箱型」、「袋型」、「カップ型」、「ビン型」、「ペットボトル型」、「袋型(透明)」、「対称型」などの種類に応じて特化したデータである。このような被写体9の外形の特徴に応じた条件分類は、照明条件データベースDB1においても同様に適用することができる。また、処理条件データベースDB2は、第1、第2、第3の実施形態の画像切出装置1に適用することができる。
【0044】
画像処理条件は、例えば、輪郭強調、輝度のゲインとオフセット調整、ヒストグラム均一化処理、アンシャープマスキング、アンチエイリアス処理などの、適用、非適用、適用時の適用程度等の条件である。これらの条件は、作業者がデータベースDB2から選択することができる。また、被写体9の対称性を利用できる場合、例えば、ガラス瓶やペットボトルなどの場合、これらは中心軸に関して左右対称であることから、「対称型」の条件を設定し、これを選択することにより自動的に、二値化画像9aを左右反転させて、もとの二値化画像9aに重ねることにより、輪郭の断点を補修して、輪郭画像9cを効率良く得るようにすることができる。
【0045】
(GUI部の実施例)
次に、
図10乃至
図13を参照して、GUI部1aの実施例を説明する。GUI部1aは、画像切出装置1における切り出し処理と撮影装置10における切り出し処理のいずれにも適用することができる。この実施例における被写体は、カタログ等に掲載または表示される商品である。作業者は、操作画面を介して、2枚または3枚の画像を用いて、簡単な操作により、商品画像を自動で切り出したり、切り出した画像を修正したりすることができる。
【0046】
図10に示すように、GUI部1aの操作画面は、第1、第2、第3画像データD1,D2,D3の画像を表示する小さなウインドウw1,w2,w3と、原画像や被写体画像等を互いに比較可能に表示する作業用の大きなウィンドウw4,w5を有している。また、操作画面は、マウス操作やキーボード操作によって選択や決定をするためのボタンを有している。ボタンb1,b2,b3は、コンピュータ11のファイルシステムから画像データを読み込んでウインドウw1,w2,w3に表示させるためのボタンである。ボタンb4は、処理条件データベースDB2に記録された画像処理条件を選択するためのボタンである。
【0047】
ボタンb5は、2枚の画像データを読み込んだ場合に2枚の二値化画像を生成して合成するか否か、また3枚の画像データを読み込んだ場合に2枚または3枚のいずれの二値化画像を生成して合成するか否かを選択する場合に用いられるボタンであり、ボタンb5を操作するたびに、順次選択肢が変わっていずれかを選択可能となる。第1の実施形態のように二値化画像が1枚のみであって合成をしない場合は、ボタン5を押さないデフォルトになる。ボタンb6は、切り出し処理実行開始のボタンである。ボタンb7,b8は、それぞれアンチエイリアス処理と手動修正処理とを行うためのボタンであり、切り出された被写体画像を後処理で修正する際に用いられる。
【0048】
画像データが読み込まれ、ボタンb4,b5について操作がなされるかデフォルトが選択された後に、ボタンb6を操作すると、切り出し処理が実行され、実行結果である被写体画像が、ウインドウw5に表示される。切り出した商品画像は、例えば、png型式で保存される。png形式では透明度情報(透過画素)を扱うことができる。
【0049】
<アンチエイリアス処理>
図11(a)に示すように、切り出された被写体画像90において被写体9の領域と透過画素の領域9tとの境界である被写体9の輪郭が鮮明すぎたりギザギザが目立ちすぎたりして不自然に見える場合がある。この場合に、ボタンb7を操作して、
図11(b)に示すように、アンチエイリアス処理を行うことができる。被写体画像90は、商品画像を画素単位で切り出しているので、解像度が低い場合に輪郭にギザギザが生じることがある。このギザギザを目立たなくしたい場合の他に、被写体画像をチラシや広告などの背景に馴染ませたい場合にアンチエイリアスを用いると有効である。
【0050】
<手動修正処理>
ウインドウw5に表示された画像が、例えば、商品部分の欠落があって正しく切り出せていない画像である場合、修正用のボタンb8を操作する。このボタンb8の操作により、
図12に示す、商品画像修正GUIの作業画面が呼び出される。作業画面は、被写体画像を表示する作業用のウインドウw6と、選択決定等の操作に用いる複数のボタンb9〜b14とを有している。画像修正は、ウインドウw6に表示されるマウスの四角枠状のポインタPT1を移動させることにより行われる。
【0051】
ボタンb9,b10は、ウインドウw6に表示される被写体画像を拡大または縮小するボタンである。このボタンにより、ポインタPT1に対する被写体画像の大きさを相対的に変えることができる。ボタンb11は、被写体画像とマスク画像とを合成して表示するためのボタンである。このボタンb11の操作により、ウインドウw6に表示されている被写体画像に対し、抽出された輪郭の内部である商品部と外部の非商品部とを区別する明暗が表示される。再度同じボタンを操作すると、原画像が表示され、これにより、目視による商品部の特定がしやすくなるため、容易に修正できる。
【0052】
ボタンb12は、被写体画像90を作業画面に最初に表示したときの状態に戻して処理をリセットするボタンである。この機能は、修正を初めからやり直したいときに用いられる。ボタンb13は、商品全体を表示するボタンであり、被写体画像90を最初に表示したときの拡大率の表示に戻す。この機能は、作業中に商品全体をすぐに見たいときに有効である。ボタンb14は、修正された被写体画像90をGUI部1aの操作画面のウインドウw5に転送して表示するボタンである。このボタンb14を操作すると、商品画像修正GUIの作業画面が閉じられ、作業画面を呼び出したもとの操作画面がアクティブになる。
【0053】
次に、修正処理を説明する。
図12のウインドウw6に示されている切り出された被写体画像90には、欠落部9xが認められる。
図13(a)は、欠落部9xの詳細を示す。作業者は、
図13(b)に示すように、ポインタPT1を、被写体9の輪郭からはみ出さないようにしつつ、被写体9の輪郭内で移動させる。この移動の際に、ボタンb9,b10を操作して被写体画像90の拡大縮小が効果的に用いられる。被写体9の輪郭は、被写体画像90とマスク画像とを合成して表示するボタンb11を操作することにより目視確認できる。
【0054】
作業者は、マウスボタンを操作することにより、ポインタPT1の内部にそのポインタPT1が占める領域に対応する原画像の領域9yを表示させることができ、その原画像の領域9yの画素を被写体画像90の欠落部9xにコピーすることができる。原画像は、被写体を切り出す対象の画像である。
図13(c)に示すように、欠落部9xを、原画像の領域9yの画素で埋め尽くして、修正が完了する。
【0055】
なお、本発明は、上記構成に限られることなく種々の変形が可能である。例えば、上述した各実施形態の構成を互いに組み合わせた構成とすることができる。異なる色光下の画像は、例えば、白色光をRGBの各色に分解して、各RGBのいずれか、または、これらのいずれかの組合せによる画像であってもよく、これらをマスク生成用の画像としてもよい。また、異なる色光の概念は、色の違いに限られず、同色の光による照明方向の違いや照明強度の違いによって、被写体9の輪郭を際立たせる光をも包含する概念とすることができる。二値化画像9aを生成する処理は、3×3画素の画素値の標準偏差を用いる処理に限られず、他の任意の二値化処理方法を用いることができる。
【課題】本発明は、画像切り出しに際し、被写体の光学的特性の影響を抑制でき、被写体画像を自動的かつ容易に切り出すことができる画像切出装置、撮影装置、および画像切出方法を提供する。
【解決手段】画像切出装置1は、被写体を撮影した2種類の画像データを読み込む読込部2と、これらの画像データを用いて被写体画像を切り出す切出部3とを備える。読込部2は、第1の色光下で被写体を撮影した第1画像データD1と、第1の色光とは異なる第2の色光下で被写体を撮影した第2画像データD2とを読み込む。切出部3は、第2画像データから被写体の輪郭を抽出し、輪郭の画像を用いて画像切出用のマスクを生成し、マスクを用いて第1画像データから被写体の画像を切り出す。第1の色光は白色光、第2の色光は輪郭を抽出しやすい画像が得られる光、例えば赤色光とされる。マスク生成専用の画像によってマスクを自動生成でき、自動切り出しが可能となる。