(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】画像処理装置、画像処理方法、及び画像処理プログラム
(51)【国際特許分類】
G06T 7/60 20170101AFI20231129BHJP
G06T 7/00 20170101ALI20231129BHJP
G06T 7/149 20170101ALI20231129BHJP
【FI】
G06T7/60 200Z
G06T7/00 350B
G06T7/149
(21)【出願番号】P 2020089138
(22)【出願日】2020-05-21
【審査請求日】2023-02-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】山本 琢麿
【審査官】笠田 和宏
(56)【参考文献】
【文献】特表2014-523019(JP,A)
【文献】特開2007-293597(JP,A)
【文献】米国特許出願公開第2012/0288181(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/60
G06T 7/00
G06T 7/149
(57)【特許請求の範囲】
【請求項1】
画像中における対象物体の画像領域を表す物体領域情報を画像データベースから取得する物体領域取得部と、
前記物体領域情報を用いて、前記画像領域の内部における前記対象物体の輪郭からの距離値を表す距離分布を計算する距離分布算出部と、
前記対象物体の大域的な形状を反映した曲線を表す点列を前記距離分布に基づいて生成するスクリブル生成部
を含む画像処理装置。
【請求項2】
前記スクリブル生成部は、前記画像領域の内部において前記距離値の高低により規定され所定方向に延びる稜線に沿うように、周辺より前記距離値が大きい複数の点を検出することにより前記点列を生成する、請求項1記載の画像処理装置。
【請求項3】
前記点列に対して、前記曲線が延びる方向とは異なる方向に、乱数に基づいて生成した摂動成分を加える摂動成分加算部を更に含む、請求項1又は2記載の画像処理装置。
【請求項4】
前記摂動成分加算部は前記乱数の数列に平滑化処理を適用することにより前記摂動成分を生成する、請求項3記載の画像処理装置。
【請求項5】
複数の画像と、前記複数の画像の各々に対して前記スクリブル生成部により生成された複数の曲線とを訓練用入力データとして受け取ると共に、前記複数の画像に対する前記物体領域情報を訓練用出力正解データとして受け取る機械学習モデルを更に含む、請求項1乃至4いずれか一項記載の画像処理装置。
【請求項6】
画像中における対象物体の画像領域を表す物体領域情報を画像データベースから取得し、
前記物体領域情報を用いて、前記画像領域の内部における前記対象物体の輪郭からの距離値を表す距離分布を計算し、
前記対象物体の大域的な形状を反映した少なくとも一本の曲線を表す点列を前記距離分布に基づいて生成する
処理をコンピュータが実行する画像処理方法。
【請求項7】
画像中における対象物体の画像領域を表す物体領域情報を画像データベースから取得し、
前記物体領域情報を用いて、前記画像領域の内部における前記対象物体の輪郭からの距離値を表す距離分布を計算し、
前記対象物体の大域的な形状を反映した少なくとも一本の曲線を表す点列を前記距離分布に基づいて生成する
処理をコンピュータに実行させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願開示は、画像処理装置、画像処理方法、及び画像処理プログラムに関する。
【背景技術】
【0002】
画像内から対象となる物体(対象物体)の画像領域をそれ以外の背景等から分離するセグメンテーション技術において、ユーザからの手掛かりとなる入力に基づいて分離領域を特定するインタラクティブセグメンテーションが知られている。インタラクティブセグメンテーションは画像処理において重要な基礎技術であり、様々な用途に用いられる。例えば、機械学習のための学習データの作成において、インタラクティブセグメンテーションを用いることにより、対象物体のアノテーション作業を大きく簡略化できる。
【0003】
ユーザが入力する手掛かりとして、物体の内部を通る一本の自由曲線をユーザが入力することにより、対象物体を指定するスクリブルがある。
【先行技術文献】
【特許文献】
【0004】
【文献】特表2014-523019号公報
【文献】特開2018-163426号公報
【文献】特開2007-293597号公報
【非特許文献】
【0005】
【文献】Oh, Seoung Wug, et al. "Fast user-guided video object segmentation by interaction-and-propagation networks." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019.
【発明の概要】
【発明が解決しようとする課題】
【0006】
人手により生成するスクリブルの形状を再現した曲線を生成できるスクリブル生成手法を提供する。
【課題を解決するための手段】
【0007】
画像処理装置は、画像中における対象物体の画像領域を表す物体領域情報を画像データベースから取得する物体領域取得部と、前記物体領域情報を用いて、前記画像領域の内部における前記対象物体の輪郭からの距離値を表す距離分布を計算する距離分布算出部と、前記対象物体の大域的な形状を反映した曲線を表す点列を前記距離分布に基づいて生成するスクリブル生成部を含む。
【発明の効果】
【0008】
少なくとも1つの実施例によれば、人手により生成するスクリブルの形状を再現した曲線を生成できるスクリブル生成手法を提供できる。
【図面の簡単な説明】
【0009】
【
図1】対象物体の画像に描かれたスクリブルの例を示す図である。
【
図2】対象物体の画像領域をセグメンテーションした例を示す図である。
【
図3】スクリブルを自動生成する画像処理装置の構成の一例を示す図である。
【
図4】画像処理装置への入力画像の一例を示す図である。
【
図5】
図4に示される入力画像における対象物体の画像領域を示す図である。
【
図6】距離変換により得られた距離分布の一例を示す図である。
【
図7】スクリブル生成方法の手順の一例を示すフローチャートである。
【
図8】スクリブルを自動生成する画像処理装置の詳細な構成の一例を示す図である。
【
図9】摂動成分加算について説明するための図である。
【
図10】中心線を生成する方法の手順の一例を示すフローチャートである。
【
図11】摂動成分を加算する方法の手順の一例を示すフローチャートである。
【
図12】インタラクティブセグメンテーションを機械学習する画像処理装置の構成の一例を示す図である。
【
図14】画像処理装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0010】
インタラクティブセグメンテーションのためにユーザが入力する手掛かりにはいくつかの種類がある。バウンディング・ボックスを用いる手法では、対象物体を囲うバウンディング・ボックスをユーザが入力することにより、対象物体を指定する。この方法では、例えば対象物体が空洞(穴)を有するドーナツ等の物体である場合に、内部の空洞が対象物体に属するのか否かを、周囲を囲うバウンディング・ボックスにより指定することはできないという問題がある。
【0011】
点入力を用いる手法では、対象物体の内部領域にユーザが1つの点をうつことにより、対象物体を指定する。この方法では、点の周囲に存在する何処までの広さの領域が対象物体に属するのかを一意に決定できないという問題(不定性)がある。
【0012】
スクリブル(Scribble)を用いる手法では、物体の内部を通る一本の自由曲線をユーザが入力することにより、対象物体を指定する。この方法では、対象物体に属する領域の指定に関して不定性が小さいという利点がある。そのため、スクリブルを用いるインタラクティブセグメンテーションが有望視されている。
【0013】
スクリブルを用いたインタラクティブセグメンテーションを実現する方法として、RGB画像とスクリブルとを入力として対象物体の領域を表す物体マスクを出力するニューラルネットワークを、学習により獲得する手法がある。そのためには、多数多様のRGB画像及びスクリブル並びに物体マスクの学習データを用意する必要がある。より具体的には、画像の多様性を学習するために異なる何千枚・何万枚もの画像を入力として用いると共に、スクリブルの多様性を学習するために形や大きさが異なる多数のスクブルを各画像に対して与えることが必要になる。
【0014】
しかしながら、何千枚・何万枚もの画像の一枚一枚に対して、異なる形や大きさの多数のスクリブルを人手で書き加えることは現実的でない。このことを鑑みると、機械学習のための教師データ(正解出力データ)等として用いるために作成済みの物体マスクから、何らかのアルゴリズムによりスクリブルを自動生成できると、非常に効率的である。
【0015】
例えば、物体マスクの領域を細線化することによりスクリブルのような曲線を自動生成することが考えられる。しかしながら細線化で作成される線はしばしば分岐を有し、人手で入力するスクリブルとは異なる形状のものとなってしまう。即ち、細線化により作成する線では、人手により生成するスクリブルの形状を再現できない。
【0016】
従って、人手により生成するスクリブルの形状を再現した曲線を生成できるスクリブル生成手法を提供することが望ましい。
【0017】
図1は、対象物体の画像に描かれたスクリブルの例を示す図である。
図2は、対象物体の画像領域をセグメンテーションした例を示す図である。
図1に示されるような猫の画像が与えられたとき、人は、例えばスクリブルS1乃至S4として示されるような曲線を一本描くことにより、対象画像の画像領域を指定する。インタラクティブセグメンテーションでは、例えば一本のスクリブルS1が描かれたとき、このスクリブルS1を手掛かりとして、
図2に示すようなセグメンテーション画像SGを生成することができる。このようなインタラクティブセグメンテーションを機械学習により実現するためには、多量の訓練データを生成するために、自然なスクリブルを自動的に生成できることが好ましい。
【0018】
スクリブルを自動的に生成する手法としては、機械学習のための教師データ(正解出力データ)等として用いるために作成済みの物体マスク(画像中における対象物体の画像領域を表す物体領域情報)を用いることが考えられる。即ち、この
図2に示すような対象物体の画像領域SGを表す物体領域情報を入力として、スクリブルを自動的に生成する。
【0019】
機械学習のための訓練データとして使用可能な自然なスクリブルは、下記の3つの要件を満たすことが好ましい。
(要件1)スクリブルは対象物体の略中心を通る
(要件2)スクリブルは、容易に入力可能なものとするために、1本である(分岐しない)
(要件3)入力の個人差を表現するためにスクリブルには多様な変化がある
人がスクリブルを描くときには物体の局所的な特徴ではなく大域的な形状(全体の形)を見て描いていると考えられる。例えば、動物の画像が対象である場合、動物の脚、尾、耳等の局所的な特徴は無視して、動物の体の略中心を通る曲線を大域的な形状から判断してスクリブルを描くと考えられる。このことから、自然なスクリブルは、上記の要件1及び要件2を満たすことが好ましいといえる。
【0020】
例えば
図1に示される猫の画像に対しては、スクリブルS1乃至S4のような曲線が人手により描かれる可能性がある。スクリブルS1乃至S4は何れも、対象物体の略中心を通る一本の曲線であり、上記の要件1及び要件2を満たしている。
【0021】
一方で、人が把握する物体の中心位置は厳密なものではなく、描く人によってスクリブルの中心位置には個人差が発生する。例えば
図1に示される例において、スクリブルS1のように猫の体の上側近くに線が描かれる場合もあれば、スクリブルS4のように猫の体の下側近くに線が描かれる場合もあり、様々な位置にスクリブルが描かれ得る。また人が把握する大域的な形状も各人各様であり、描く人によってスクリブルの形状には個人差が発生する。
図1に示されるスクリブルS1乃至S4のように、曲線の形状が上に凸形状であったり、下に凸形状であったり、波打っていたり、直線に近いものであったり、スクリブルの形状は多様なものとなり得る。これらの例から分かるように、自然なスクリブルは、上記の要件1及び要件2に加え、更に上記の要件3を満たすことが、好ましいといえる。
【0022】
本願開示の技術では、要件1及び要件2を満たすために距離変換を用いる。距離変換とは、各画素に対して、当該画素に最も近い位置にあり値がゼロである画素の位置と当該画素の位置との最短距離を与える変換である。
図2に示すような対象物体の画像領域SG外部の全画素に対して値ゼロを設定し、画像領域SG内部の各画素に対して距離変換を適用することにより、画像領域SG内部の各画素に対して距離値が与えられた距離分布が得られる。即ち、画像領域SGの内部の各画素位置における対象物体の輪郭からの距離値を表す距離分布を計算する。
【0023】
このようにして計算された距離分布において距離値が高い箇所は物体の略中心になる。従って、距離値が高い画素を抽出することにより、「対象物体の略中心を通る」という要件1を満たす点を特定することができる。更に、「分岐しない1本である」という要件2を満たすために、画像領域SGの内部において距離値の高低により規定され所定方向に延びる稜線に沿うように、周辺より距離値が大きい複数の点を検出する。このようにして検出された点列は、所定方向に延びる距離値が高い稜線を表したものとなり、自然なスクリブルを表す点列と考えることができる。上記の所定の方向としては、例えば画像領域SGの主軸方向であってよい。主軸方向に延びる稜線を求めることにより、画像領域SGの長手方向に延びる稜線を求め、対象物体の大局的な形状を適切に反映した曲線を容易に求めることが可能になる。
【0024】
上記のように稜線を求めるのではなく、距離分布の代表点を1点抽出して、代表点から周囲の距離値が高い方に追跡することで稜線に沿った点列を検出してもよい。或いは動的輪郭モデルにおけるポテンシャル場と同様に、稜線に対するポテンシャル場として距離分布を用い、稜線の点列を形成する複数の離散点上のエネルギーの総和が最大となるように最適化することにより、当該点列により表現される中心線を求めてもよい。
【0025】
上記のようにすることで、対象物体の略中心を通り分岐のない1本の曲線を抽出できる。このようにして生成された曲線は、上記の要件1及び要件2を満たすものであり、自然なスクリブルとしての最低限の要件を満たしているといえる。また要件1及び要件2に加え、「多様な変化がある」という要件3を更に満たすためには、位置に関するランダム性や形状に関するランダム性等を導入すればよい。ランダム性を実現するためには乱数を用いればよい。
【0026】
以下に、上記説明した要件を満たすスクリブルを自動生成する画像処理装置及びスクリブル生成方法の実施例を、添付の図面を用いて詳細に説明する。
【0027】
図3は、スクリブルを自動生成する画像処理装置の構成の一例を示す図である。
図3及び以降の同様の図において、各ボックスで示される各機能ブロックと他の機能ブロックとの境界は、基本的には機能的な境界を示すものであり、物理的な位置の分離、電気的な信号の分離、制御論理的な分離等に対応するとは限らない。画像処理装置は、各機能ブロックの機能を有する電子回路ブロックを組み合わせて実現したハードウェア構成でもよいし、電子回路である汎用のプロセッサにおいてソフトウェアを実行することにより各機能ブロックの機能を実現したソフトウェア構成でもよい。ソフトウェアの場合、各機能ブロックは、他のブロックと論理的にある程度分離された1つのソフトウェアモジュールであってもよいし、或いは他のブロックと論理的に一体となったソフトモジュール中の1つの機能を示したものであってもよい。
【0028】
図3に示す画像処理装置は、物体領域取得部10、距離分布算出部11、スクリブル生成部12、及び画像データベース100を含む。画像データベース100には、画像と物体領域情報との対からなる複数の画像に対するデータセットが格納されている。具体的には、1つの画像中における対象画像の画像領域を表す物体領域情報が当該1つの画像に対応づけられた形で、画像と物体領域情報との対が、画像データベース100に複数個格納されている。画像処理装置は、画像データベース100に格納される1つの画像に対応付けられた物体領域情報を入力として、当該1つの画像に示される対象画像に対するスクリブルを生成する。
【0029】
図4は、画像処理装置への入力画像の一例を示す図である。
図5は、
図4に示される入力画像における対象物体の画像領域を示す図である。この例においては、
図4に示される画像において手前に座っている犬が対象物体であり、当該対象物体の物体領域情報として
図5に示される画像領域20が与えられている。
図4に示すような画像と
図5に示すような物体領域情報とが対として、画像データベース100に格納されている。
図4に示す画像を対象とする場合、
図3に示す画像処理装置が、
図5に示される画像領域20に基づいて、例えば曲線S5として示すようなスクリブルを生成することになる。
【0030】
図5に示される対象物体(犬)の画像領域20は、例えば、対象物体の画像領域内で画素値が所定値(例えば1)であり、対象物体の画像領域の外側(即ち背景画像領域)において画素値が別の所定値(例えば0)であるデータであってよい。物体領域取得部10は、
図5に示されるような画像中における対象物体の画像領域20を表す物体領域情報を画像データベース100から取得する。距離分布算出部11は、物体領域取得部10から物体領域情報を受け取り、当該物体領域情報を用いて、距離変換を実行することにより、画像領域の内部における対象物体の輪郭からの距離値を表す距離分布を計算する。具体的には、画像領域の内部における各点(各画素)について、最も近い位置にある対象物体の外部の点(画素)との距離を求め、当該距離を表す値を当該点(画素)に割り当てる。
【0031】
図6は、距離変換により得られた距離分布の一例を示す図である。なお
図6においては、
図5に示される画像領域20の形状を、説明の便宜上、簡略化して示している。即ち、
図5に示される画像領域20は実際には例えば何十万個もの多数の画素を含むことになるが、
図6に示される距離分布画像21では、説明の便宜上、ゼロ以上の距離値を有する数十個の画素により画像領域20が形成される距離分布の例が示されている。そのため例えば
図5に示される脚の形状は、
図6においては省略されている。
【0032】
図6に示される距離分布画像21においては、
図5に示される画像領域20内部における各画素について距離値が割り当てられている。
図6に示される例において、ある画素が有する距離値は、当該画素と対象画像の輪郭との最短距離(即ち当該画素と画像領域20外部の画素との最短距離)を、整数値に丸めた画素数として示してある。距離値としては、ユークリッド距離であってもマンハッタン距離であっても構わない。
【0033】
スクリブル生成部12は、対象物体の大域的な形状を反映した曲線(滑らかな自由曲線)を表す点列を、
図6に示されるような距離分布に基づいて生成する。具体的には、距離分布において周辺より距離値が大きい複数の点を検出することにより、上記曲線を表す点列を生成してよい。更により具体的には、スクリブル生成部12は、画像領域の内部において距離値の高低により規定され所定方向に延びる稜線に沿うように、周辺より距離値が大きい複数の点を検出することにより、上記曲線を表す点列を生成してよい。これにより、対象物体の画像領域20の大域的な形状を反映した方向に延び且つ中心付近に位置した曲線22を表す点列を容易に生成することができる。
【0034】
なおスクリブル生成部12が生成する曲線は、前述の要件2を満たすために原則として一本の曲線であることが好ましいが、例外的な場合も考慮すると、スクリブル生成部12が生成する曲線は必ずしも一本に限られるものではない。例えば、曲線は原則一本であってよいが、対象物体の画像領域が大きく2つに分岐するような形状である場合には、例外的に途中で2本に分岐するような分岐点を有する曲線であってもよい。即ち、稜線を沿った点列を検出する際に、稜線が2つに分かれるような場合には、点列も2つの点列に分かれるものであってよく、スクリブル生成部12が生成する曲線も2つに分岐するものであってよい。分岐点の数や分岐の本数も特に限定されるものではない。
【0035】
図7は、スクリブル生成方法の手順の一例を示すフローチャートである。
図3に示す画像処理装置が
図7に示すスクリブル生成方法を実行する。例えば、
図3に示す画像処理装置がコンピュータにより実現される場合、当該コンピュータがスクリブル生成方法を実現するソフトウェアを実行することにより、当該スクリブル生成方法を実行する。
【0036】
なお
図7及び以降の図において、フローチャートに記載された各ステップの実行順序は一例にすぎず、本願の意図する技術範囲が、記載された実行順番に限定されるものではない。例えば、Aステップの次にBステップが実行されるように本願に説明されていたとしても、Aステップの次にBステップを実行することが可能なだけでなく、Bステップの次にAステップを実行することが、物理的且つ論理的に可能である場合がある。この場合、どちらの順番でステップを実行しても、当該フローチャートの処理に影響する全ての結果が同一であるならば、本願に開示の技術の目的のためには、Bステップの次にAステップが実行されてもよいことは自明である。Aステップの次にBステップが実行されるように本願に説明されていたとしても、上記のような自明な場合を本願の意図する技術範囲から除外することを意図するものではなく、そのような自明な場合は、当然に本願の意図する技術範囲内に属する。
【0037】
ステップST1において、物体領域取得部10が、画像データベース100から物体領域情報を取得する。ステップST2において、距離分布算出部11が、物体領域情報から距離分布を算出する。ステップST3において、スクリブル生成部12が、距離分布からスクリブルを生成する。ステップST4において、必要な本数のスクリブルを生成したか否かを判定する。更にスクリブルを生成する場合には、ステップST1に戻って以降の処理を実行する。必要な本数のスクリブルを既に生成した場合には、スクリブル生成処理を終了する。
【0038】
図7に示すスクリブル生成方法を実行することにより、対象物体の略中心を通り分岐のない曲線を抽出できる。このようにして生成された曲線は、前述の要件1及び要件2を満たすものであり、自然なスクリブルとしての要件を満たしているといえる。但し要件1及び要件2に加え、「多様な変化がある」という要件3を更に満たすためには、位置に関するランダム性や形状に関するランダム性等を加える処理を、スクリブル生成処理に含めてよい。
【0039】
図8は、スクリブルを自動生成する画像処理装置の詳細な構成の一例を示す図である。この画像処理装置においては、「多様な変化がある」という要件3を更に満たすために、摂動成分を加算する処理をスクリブル生成処理に含めてある。
図8において、
図3に示す画像処理装置と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【0040】
図8に示す画像処理装置において、スクリブル生成部12は、中心線生成部30及び摂動成分加算部31を含む。中心線生成部30は、対象物体の大域的な形状を反映した曲線を表す点列を距離分布に基づいて生成する。具体的には、中心線生成部30は、距離分布において周辺より距離値が大きい複数の点を検出することにより、上記曲線を表す点列を生成してよい。距離分布において、距離値が高い箇所は物体の略中心になる。従って、距離値が高い画素を抽出することにより、対象物体の略中心を通る線に対応する点、即ち中心線を形成する点列を特定することができる。
【0041】
摂動成分加算部31は、中心線生成部30が生成した点列に対して、曲線が延びる方向とは異なる方向に、乱数に基づいて生成した摂動成分を加える。なお本願明細書において、摂動成分とは、中心線生成部30により生成される対象物体の大域的な形状を反映した曲線に対して計算され、当該曲線の形状とは独立であり、点列を形成する各点の位置を振動させるランダム成分である。また曲線が延びる方向と異なる方向とは、曲線の接線方向とは異なる方向のことであり、例えば曲線の法線方向であってよい。或いは曲線の延びる方向の基となった、対象物体画像領域の主軸方向に垂直な方向であってよい。このような方向に摂動成分を加えることにより、曲線の形状に関して、自然な多様性を加えることができる。
【0042】
図9は、摂動成分加算について説明するための図である。
図9の左側に示される画像において、曲線41は、中心線生成部30が対象物体の画像領域に対して生成した中心線である。摂動成分を計算するために、対象物体である犬の画像(より具体的には
図5に示される画像領域20)を囲む長方形のバウンディング・ボックス40を設定する。このバウンディング・ボックス40を形成する4辺のうち、曲線41が延びる方向(例えば画像領域20の主軸方向)に延びる辺(例えば長辺)を座標の横軸にとり、当該方向とは垂直な方向に延びる辺(例えば短辺)を座標の縦軸にとることにより、座標平面を形成する。この座標平面において、曲線41をプロットしたものが曲線42である。
【0043】
摂動成分加算部31は、ランダム性を導入するために、上記座標平面において例えばn個の乱数系列43-1A乃至43-nAを生成する。n個の乱数系列43-1A乃至43-nAは、例えば、座標平面横軸上の各離散点(長辺上の各画素に対応する点)に対して0から1の間の値を有する乱数を割り当てることにより生成してよい。摂動成分加算部31は更に、バウンディング・ボックス40の長辺の長さに対応する幅と、バウンディング・ボックス40の短辺の長さに対応する高さ(値の大きさ)を有するフィルタにより、乱数系列43-1A乃至43-nAの各々を平滑化処理する。この平滑化処理により、n個の乱数系列43-1A乃至43-nAにそれぞれ対応するn個の摂動成分43-1B乃至43-nBを生成する。摂動成分加算部31は、n個の摂動成分43-1B乃至43-nBの各々を曲線42に加算することにより、n個のスクリブルを生成する。
図9の右側に示される画像には、摂動成分加算部31が上記のようにして生成した3個のスクリブルS10乃至S12が示されている。
【0044】
なお摂動成分としては、乱数系列に基づいて平滑化処理を実行する以外に、例えば、ガウス過程を用いることで、摂動成分もしくはランダム性を有する曲線を直接生成してもよい。例えば、ガウス過程の平均をゼロに設定するとともに、分散をバウンディング・ボックスの大きさに応じて設定し、観測値が存在しない状態のモデルを作成する。このモデルからサンプリングすることにより、滑らかな摂動成分を生成することができる。また観測値として検出した中心線を用いたモデルを作成し、当該モデルからサンプリングすることにより、ランダム性を有する曲線を直接生成してもよい。
【0045】
以下に、中心線生成部30により実行する中心線生成処理と摂動成分加算部31により実行する摂動成分加算処理とについて詳細に説明する。
【0046】
図10は、中心線を生成する方法の手順の一例を示すフローチャートである。
図8に示す画像処理装置が
図10に示す中心線生成方法を実行する。例えば、
図8に示す画像処理装置がコンピュータにより実現される場合、当該コンピュータが中心線生成方法を実現するソフトウェアを実行することにより、当該中心線生成方法を実行する。
【0047】
ステップST11において、中心線生成部30が、距離変換画像を生成する。即ち、画像領域内部の各画素に距離値が割り当てられた距離分布を生成する。ステップST12において、中心線生成部30が、距離変換画像内の代表点を一点抽出する。代表点としては、例えば、画像領域内部の距離分布における最大距離値を有する点であってよい。ステップST13において、中心線生成部30が、画像領域について主軸を算出する。例えば、画像領域内の各画素と軸との最短距離を求め、画像領域内の全ての画素について最短距離の総和を求め、総和が最小となるように軸の位置及び傾きを調整することにより、主軸方向を求めることができる。
【0048】
ステップST14において、中心線生成部30が、主軸の±方向に周辺より距離値が高い点を追跡する。ここで周辺より距離値が高い点とは、主軸とは略垂直な方向において(略垂直な方向に並ぶ)複数の画素点の距離値を互いに比較したときに、相対的に大きな距離値を有する画素点であってよい。また追跡するとは、ステップST12において求めた代表点から、主軸の延びる方向に沿って(主軸と略平行に)延びる稜線の峰を辿るように、代表点から主軸の正方向及び負方向に距離値が相対的に高い点を追跡することであってよい。例えば、現在の点から進むべき第1の方向(主軸の延びる方向)を中心とする所定の角度範囲に存在する点のうち、距離値が最も高い点を順次選択していってよい。追跡することにより選択された点列の全体の長さは、例えば、対象物体の画像領域に対して所定の割合(例えば80%)となる長さである等としてよい。これにより、適切な長さを有するスクリブルの基となる曲線を生成することができる。
【0049】
なお上記のように追跡することにより生成された互いに隣接する連続した点列そのものを、中心線生成部30が生成する曲線の点列としてもよいし、そのように生成された点列から所定個おきにサンプルすることにより、所定間隔で並ぶ複数の点を求めてもよい。そのような所定間隔で並ぶ複数の点に対して、当該複数の点を通るスプライン曲線のような自由曲線をフィットさせることにより、中心線生成部30が曲線を生成してもよい。
【0050】
図11は、摂動成分を加算する方法の手順の一例を示すフローチャートである。
図8に示す画像処理装置が
図11に示す摂動成分加算方法を実行する。例えば、
図8に示す画像処理装置がコンピュータにより実現される場合、当該コンピュータが摂動成分加算方法を実現するソフトウェアを実行することにより、当該摂動成分加算方法を実行する。
【0051】
ステップST21において、摂動成分加算部31が、乱数系列を生成する。ステップST22において、摂動成分加算部31が、対象物体の画像領域を囲むバウンディング・ボックス(BBOX)の大きさに比例した平滑化の強度を決定する。バウンディング・ボックスの形状は長方形であり、その長辺方向が例えば対象物体画像領域の主軸方向に一致するように、バウンディング・ボックスの方向が設定されてよい。平滑化の強度としては、平滑化処理に用いるフィルタの幅を、例えば対象物体の画像領域の主軸方向に沿ったバウンディング・ボックスの長辺の長さに対して所定の比率に設定してよい。これにより、対象物体の画像領域の主軸方向長さに応じた適切な周期(周波数)の波形を、摂動成分として生成することができる。フィルタの形状は任意であり、例えばガウシアンや矩形のフィルタであってよい。
【0052】
対象物体の画像領域の中心付近に描かれ主軸方向に延びる曲線に対して、例えばバウンディング・ボックス長辺の長さの1/100倍の周期で細かく振動する成分を摂動成分として加算したのでは、結果として得られるスクリブルは自然な形状とはならない。また対象物体の画像領域の中心付近に描かれ主軸方向に延びる曲線に対して、例えばバウンディング・ボックス長辺の長さの10倍の長周期で振動する成分を摂動成分として加算したのでは、結果として得られるスクリブルには適切な揺れが現れない。従って、平滑化処理に用いるフィルタの幅を、バウンディング・ボックス長辺の長さに対して所定の比率に設定し、適切な周期(周波数)の波形を摂動成分として生成することが好ましい。
【0053】
ステップST23において、摂動成分加算部31が、バウンディング・ボックスの大きさに比例した摂動成分の強度を決定する。摂動成分の強度としては、平滑化処理に用いるフィルタの高さ(値)を、例えば対象物体の画像領域の主軸に垂直な方向に延びるバウンディング・ボックスの短辺の長さに対して所定の比率に設定してよい。これにより、対象物体の画像領域の主軸に垂直な方向の幅に応じた適切な振幅の波形を、摂動成分として生成することができる。
【0054】
ステップST24において、摂動成分加算部31が、幅及び高さが上記のように設定されたフィルタを用い、乱数系列に対して平滑化処理を行うことにより摂動成分を生成する。即ち、乱数系列に対してフィルタリング処理を施すことにより、摂動成分を生成する。このように乱数の数列に平滑化処理を適用することにより、スクリブルに対して自然な多様性を付加するために適した摂動成分を容易に生成することができる。ステップST25において、摂動成分加算部31が、摂動成分を中心線に加算することによりスクリブルを生成する。
【0055】
以上のようにして、対象物体の画像領域に対して、人手により生成するスクリブルに類似した自然なスクリブルを自動的に生成することができる。また以下に説明するように、そのように自動的に生成されたスクリブルを入力訓練データとして用いることにより、スクリブルから画像領域を分離するインタラクティブセグメンテーションを効率的に機械学習することができる。
【0056】
図12は、インタラクティブセグメンテーションを機械学習する画像処理装置の構成の一例を示す図である。
図12に示す画像処理装置は、物体領域取得部10、距離分布算出部11、スクリブル生成部12、物体マスク取得部51、RGB画像取得部52、学習データ53、学習データ取得部54、DNN学習部55、及び画像データベース100を含む。
【0057】
物体領域取得部10、距離分布算出部11、及びスクリブル生成部12は、上述のスクリブル生成処理を実行することにより、画像データベース100に格納される多数の画像の各々に対して、多様性を有した複数のスクリブルを生成する。物体マスク取得部51は、画像データベース100に格納される多数の画像に対応づけられた物体マスク(物体領域情報)を取得する。RGB画像取得部52は、画像データベース100に格納される多数の画像(例えばRGB画像)を取得する。学習データ53はデータベースであり、上記のように取得又は生成された、複数の画像、複数の画像に一対一に対応する複数の物体マスク、及び複数の画像の一枚ずつに対応づけられた複数のスクリブルを、機械学習用の訓練データセットとして格納する。
【0058】
学習データ取得部54は、学習データ53から、複数の画像及び各画像に対応づけられた複数のスクリブルを訓練用入力データとして取得するとともに、複数の画像に一対一に対応づけられた複数の物体マスクを訓練用出力データ(教師データ)として取得する。DNN学習部55は、訓練用入力データを入力とし訓練用出力データを正解出力として深層ニューラルネットワークに与えることにより、入力データに対して正しい出力データを出力できるように深層ニューラルネットワークを教育する。DNN学習部55により学習された深層ニューラルネットワークに関するデータ(最適化された重みパラメータ等)が、学習済みデータとして出力される。
【0059】
図13は、機械学習モデルの一例を示す図である。DNN学習部55は、入力層61、中間層62、出力層63、及び層間結合64及び65を含むニューラルネットワークを含む。深層ニューラルネットワークの場合、中間層は層間結合で結合された2以上の層を含む。また、
図13では全結合層を模したものになっているが、含まれる層は全結合層に限らず、畳み込み層や正規化層などを含んでもよい。DNN学習部55は、複数の画像(例えばRGB画像)と、複数の曲線(自動生成されたスクリブル)と、物体領域情報(物体マスク)とに基づいて、所望の入出力関係を実現するよう、層間結合に関する重みパラメータを学習する。
【0060】
具体的には、DNN学習部55は、複数の画像と、複数の画像の各々に対して生成された複数の曲線とを訓練用入力データとして受け取ると共に、複数の画像に対する物体領域情報を訓練用出力正解データとして受け取る。DNN学習部55は、物体マスクを教師データ(正解出力データ)として用いることにより、入力画像及び入力スクリブルに対して正しい物体マスクを出力できるように、ニューラルネットワークの層間結合の重みパラメータを最適化する。このように機械学習を実行することにより、スクリブルに基づくインタラクティブセグメンテーションを高精度で実現する深層ニューラルネットワークを効率的に生成することができる。
【0061】
図14は、画像処理装置のハードウェア構成の一例を示す図である。
図14に示す画像処理装置は、CPU121、表示部122、入力部123、ROM124、RAM125、HDD126、ネットワークインターフェース127、可搬型記憶媒体用ドライブ128、及び演算回路部129を含む。
【0062】
入力部123は、ユーザとのインターフェースを提供するものであり、画像処理装置を操作するための各種コマンドや要求されたデータに対するユーザ応答等が入力される。表示部122は、画像処理装置で処理された結果等をディスプレイ画面に表示すると共に、画像処理装置を操作する際にユーザとの対話を可能にするために様々なデータ表示を行う。ネットワークインターフェース127は、周辺装置との通信又は遠隔地との通信を行なうためのものである。
【0063】
図14に示される画像処理装置はコンピュータであり、スクリブル生成方法や機械学習方法は、画像処理装置が実行可能なコンピュータプログラムとして提供される。このコンピュータプログラムは、可搬型記憶媒体用ドライブ128に装着可能な記憶媒体Mに記憶されており、記憶媒体Mから可搬型記憶媒体用ドライブ128を介して、RAM125或いはHDD126にロードされる。或いは、このコンピュータプログラムは、周辺装置又は遠隔地にある記憶媒体(図示せず)に記憶されており、この記憶媒体からネットワークインターフェース127を介して、RAM125或いはHDD126にロードされる。
【0064】
入力部123を介してユーザからプログラム実行指示があると、CPU121は、記憶媒体M、周辺装置、遠隔地記憶媒体、或いはHDD126からプログラムをRAM125にロードする。CPU121は、RAM125の空き記憶空間をワークエリアとして使用して、RAM125にロードされたプログラムを実行し、適宜ユーザと対話しながら処理を進める。なおROM124は、画像処理装置の基本動作を制御するための制御プログラムが格納されている。
【0065】
上記コンピュータプログラムを実行することにより、画像処理装置が、スクリブル生成処理や機械学習処理を実行する。演算回路部129は、機械学習を実行するように専用に設計された専用ハードウェアであってよく、例えば行列演算専用回路等の専用ハードウェアであってよい。但し専用の演算回路部129を設けることなく、汎用計算用のプロセッサであるCPU121が、機械学習計算部として機能することにより、機械学習アルゴリズムを実行してもよい。
【0066】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【0067】
10 物体領域取得部
11 距離分布算出部
12 スクリブル生成部
30 中心線生成部
31 摂動成分加算部
51 物体マスク取得部
52 RGB画像取得部
53 学習データ
54 学習データ取得部
55 DNN学習部
100 画像データベース