(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024157849
(43)【公開日】2024-11-08
(54)【発明の名称】IoU算出装置、領域検出装置、画像処理装置、およびプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20241031BHJP
G06N 3/084 20230101ALI20241031BHJP
G06V 10/82 20220101ALI20241031BHJP
【FI】
G06T7/00 350C
G06N3/084
G06V10/82
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023072461
(22)【出願日】2023-04-26
(71)【出願人】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100141139
【弁理士】
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100171446
【弁理士】
【氏名又は名称】高田 尚幸
(74)【代理人】
【識別番号】100114937
【弁理士】
【氏名又は名称】松本 裕幸
(74)【代理人】
【識別番号】100171930
【弁理士】
【氏名又は名称】木下 郁一郎
(72)【発明者】
【氏名】遠藤 伶
(72)【発明者】
【氏名】望月 貴裕
(72)【発明者】
【氏名】河合 吉彦
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096FA18
5L096FA19
5L096FA59
5L096KA04
(57)【要約】
【課題】モデルの機械学習が可能となるように2つの任意のポリゴンについてのIoU(Intersection over Union)を算出することのできるIoU算出装置を提供する。
【解決手段】凸包分割部は、与えられる画像内の1つのポリゴンを分割することによって1つ以上の分割後の凸包ポリゴンを得る。凸包内側ピクセルマップ生成部は、分割後の凸包ポリゴンについて内側ピクセルマップ(IPM)を生成する。ポリゴン内側ピクセルマップ生成部は、凸包ポリゴンについてのIPMを合成することによって、分割前のポリゴンについてのIPMを生成する。IoU近似値計算部は、与えられる2つのポリゴンのそれぞれについてのIPMに基づいて、積集合領域の面積の近似値と和集合領域の面積の近似値とを求め、前者を後者で除することによって、IoU値の近似値を算出する。この計算過程は、微分可能な関数と最大値関数と最小値関数との範囲内で計算される。
【選択図】
図10
【特許請求の範囲】
【請求項1】
与えられる画像内の1つのポリゴンを分割することによって1つ以上の分割後の凸包ポリゴンを得る凸包分割部と、
分割後の前記凸包ポリゴンのそれぞれについて前記画像内の各々のピクセルが当該凸包ポリゴンの内側に存在するか否かを数値として表わす内側ピクセルマップ(IPM)を生成する凸包内側ピクセルマップ生成部と、
前記凸包内側ピクセルマップ生成部が生成した分割後の前記凸包ポリゴンの内側ピクセルマップを合成することによって、前記凸包分割部によって分割される前の前記ポリゴンについて前記画像内の各々のピクセルが当該分割される前のポリゴンの内側に存在するか否かを数値として表わす内側ピクセルマップを生成するポリゴン内側ピクセルマップ生成部と、
前記画像内の与えられる2つのポリゴンのそれぞれについて前記ポリゴン内側ピクセルマップ生成部が生成した前記内側ピクセルマップに基づいて、当該2つのポリゴンの積集合領域について前記画像内の各々のピクセルが当該積集合領域の内側に存在するか否かを数値として表わす内側ピクセルマップと、当該2つのポリゴンの和集合領域について前記画像内の各々のピクセルが当該和集合領域の内側に存在するか否かを数値として表わす内側ピクセルマップと、を生成し、当該積集合領域についての内側ピクセルマップを基に当該積集合領域の面積の近似値を求め、当該和集合領域についての内側ピクセルマップを基に当該和集合領域の面積の近似値を求め、前記積集合領域の面積の近似値を前記和集合領域の面積の近似値で除することにより、与えられた前記2つのポリゴンについてのIoU(Intersection over Union)値の近似値を算出するIoU近似値計算部と、
を備え、
前記凸包内側ピクセルマップ生成部が前記凸包ポリゴンについての内側ピクセルマップを生成する計算処理過程と、ポリゴン内側ピクセルマップ生成部が分割後の前記凸包ポリゴンについての内側ピクセルマップに基づいて分割前の前記ポリゴンについての内側ピクセルマップを生成する計算処理過程と、前記IoU近似値計算部が前記2つのポリゴンのそれぞれについての内側ピクセルマップに基づいて前記IoU値の近似値を算出するまでの計算処理過程とは、画像領域内において連続且つ微分可能な関数と、引数のうちの最大値を返す最大値関数と、引数のうちの最小値を返す最小値関数との範囲内のみで計算される、
IoU算出装置。
【請求項2】
前記凸包内側ピクセルマップ生成部は、処理対象とする前記凸包ポリゴンが持つ辺のそれぞれについて、前記画像内の各々のピクセルが、当該辺およびその辺の延長線を基準として、当該凸包ポリゴンの内側の所定のピクセルと同じ側にあるか反対の側にあるかを数値として表わす当該辺についての内側ピクセルマップを生成し、前記凸包ポリゴンが持つすべての辺についての前記内側ピクセルマップを合成することによって、前記画像内の各々のピクセルが当該凸包ポリゴンの内側に存在するか否かを数値として表わす内側ピクセルマップを生成する、
請求項1に記載のIoU算出装置。
【請求項3】
前記凸包内側ピクセルマップ生成部は、前記凸包ポリゴンが持つすべての辺についての前記内側ピクセルマップを合成する際に、それぞれの辺についての内側ピクセルマップ前記ピクセルごとの値についての最小値を選択することにより、前記ピクセルが当該凸包ポリゴンの内側に存在するか否かを数値として表わす内側ピクセルマップを生成する、
請求項2に記載のIoU算出装置。
【請求項4】
機械学習モデルを内部に備えて、外部から渡される画像を前記機械学習モデルに入力することによって前記画像内において特定の特徴を有する領域を推定する領域推定部と、
前記領域推定部が備える前記機械学習モデルの学習を行うための、学習用画像と当該学習用画像に対応する正解領域との対を供給する学習用データ供給部と、
前記学習用データ供給部が供給する前記学習用画像に基づいて前記領域推定部が推定した結果である推定領域と、前記学習用画像に対応して前記学習用データ供給部が供給する前記正解領域と、の誤差を求める誤差算出部と、
を備える領域検出装置であって、
前記推定領域に対応する図形および前記正解領域に対応する図形は、いずれも、任意のポリゴンであって、
前記誤差算出部は、請求項1から3までのいずれか一項に記載のIoU算出装置を備え、前記IoU算出装置が前記推定領域に対応する図形であるポリゴンと、前記正解領域に対応する図形であるポリゴンとについて算出した前記IoU値の近似値、に基づく前記誤差を算出する、
領域検出装置。
【請求項5】
機械学習モデルを内部に備えて、外部から渡される画像を前記機械学習モデルに入力することによって前記画像内におけるポリゴンを推定した結果として推定ポリゴンを出力する推定部と、
前記推定部が備える前記機械学習モデルの学習を行うための、学習用画像と当該学習用画像に対応する正解ポリゴンとの対を供給する学習用データ供給部と、
前記学習用データ供給部が供給する前記学習用画像に基づいて前記推定部が推定した結果である前記推定ポリゴンと、前記学習用画像に対応して前記学習用データ供給部が供給する前記正解ポリゴンと、の誤差を求める誤差算出部と、
を備える画像処理装置であって、
前記誤差算出部は、請求項1から3までのいずれか一項に記載のIoU算出装置を備え、前記IoU算出装置が前記推定ポリゴンと前記正解ポリゴンとについて算出した前記IoU値の近似値、に基づく前記誤差を算出する、
画像処理装置。
【請求項6】
与えられる画像内の1つのポリゴンを分割することによって1つ以上の分割後の凸包ポリゴンを得る凸包分割部と、
分割後の前記凸包ポリゴンのそれぞれについて前記画像内の各々のピクセルが当該凸包ポリゴンの内側に存在するか否かを数値として表わす内側ピクセルマップ(IPM)を生成する凸包内側ピクセルマップ生成部と、
前記凸包内側ピクセルマップ生成部が生成した分割後の前記凸包ポリゴンの内側ピクセルマップを合成することによって、前記凸包分割部によって分割される前の前記ポリゴンについて前記画像内の各々のピクセルが当該分割される前のポリゴンの内側に存在するか否かを数値として表わす内側ピクセルマップを生成するポリゴン内側ピクセルマップ生成部と、
前記画像内の与えられる2つのポリゴンのそれぞれについて前記ポリゴン内側ピクセルマップ生成部が生成した前記内側ピクセルマップに基づいて、当該2つのポリゴンの積集合領域について前記画像内の各々のピクセルが当該積集合領域の内側に存在するか否かを数値として表わす内側ピクセルマップと、当該2つのポリゴンの和集合領域について前記画像内の各々のピクセルが当該和集合領域の内側に存在するか否かを数値として表わす内側ピクセルマップと、を生成し、当該積集合領域についての内側ピクセルマップを基に当該積集合領域の面積の近似値を求め、当該和集合領域についての内側ピクセルマップを基に当該和集合領域の面積の近似値を求め、前記積集合領域の面積の近似値を前記和集合領域の面積の近似値で除することにより、与えられた前記2つのポリゴンについてのIoU(Intersection over Union)値の近似値を算出するIoU近似値計算部と、
を備え、
前記凸包内側ピクセルマップ生成部が前記凸包ポリゴンについての内側ピクセルマップを生成する計算処理過程と、ポリゴン内側ピクセルマップ生成部が分割後の前記凸包ポリゴンについての内側ピクセルマップに基づいて分割前の前記ポリゴンについての内側ピクセルマップを生成する計算処理過程と、前記IoU近似値計算部が前記2つのポリゴンのそれぞれについての内側ピクセルマップに基づいて前記IoU値の近似値を算出するまでの計算処理過程とは、画像領域内において連続且つ微分可能な関数と、引数のうちの最大値を返す最大値関数と、引数のうちの最小値を返す最小値関数との範囲内のみで計算される、
IoU算出装置、としてコンピューターを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、IoU算出装置、領域検出装置、画像処理装置、およびプログラムに関する。
【背景技術】
【0002】
機械学習の手法を用いて画像内の特定の領域を検出するための領域検出の手法が既存技術として存在する。その既存技術においては、まず、学習用の画像と、その画像に含まれる正解領域とのペアを、学習用データとして大量に準備する。正解領域は、特定の特徴を有する領域である。例えば、正解領域は特定の物体等が含まれる領域である。そして、その学習用データを用いて、ニューラルネットワークの学習を行う。学習においては、その時点でのニューラルネットワークが推定した領域と、正解領域との誤差が小さくなるように、ニューラルネットワークの内部のパラメーターの調整を行う。
【0003】
ニューラルネットワークの学習を行うにあたって、上記の誤差の計算は微分可能な関数によって行われる必要がある。即ち、推定領域と正解領域とを入力として誤差値を出力とする、微分可能な関数を用いる必要がある。これは、ニューラルネットワークの内部のパラメーターの調整を行う際にパラメーター値の多次元空間における誤差値の勾配を必要とするためである。
【0004】
ただし、実用上は、誤差算出の際に微分可能ではない関数を一部に含んでも問題がない場合もある。例えば、複数の入力値のうちの一部を選択する操作(一例として、複数の入力値のうちの最大値を選択する操作)は局所的に微分不可能であるが、このような操作を含んでいてもニューラルネットワークの学習が可能であることは広く知られている。複数の入力値のうちの一部を選択する操作の代表例は、マックスプーリング(Max Pooling)である。
【0005】
従来技術では、微分可能な誤差値関数を用いるためもあって、画像内の特定領域を検出する際には長方形の形状の領域を検出対象としていた。また、推定領域と正解領域と(どちらも長方形)の間の誤差の計算には、IoU(Intersection over Union)という誤差関数が適していることがわかっており、用いられている。
【0006】
また、従来技術では、特定領域の座標値を直接求めるようなニューラルネットワークを構成するのではなく、0以上且つ1以下の画素値からなるマスク画像をニューラルネットワークから出力するようにして、画素値が所定の閾値(例えば、0.5)を超えた領域を推定結果の特定領域として出力することも行われる場合もある。この場合には、長方形に限らず任意の形状が推定結果として求められる。
【0007】
非特許文献1には、回転した長方形に関して誤差を求めるための誤差関数として、PIoU誤差関数(PIoU loss)が記載されている。PIoU誤差関数は、回転した物体を検出するための損失関数であり、角度とIoUの両方を利用することによって正確な回転バウンディングボックス回帰を行うように定式化されている。非特許文献1に記載された手法は、回転した長方形の内部に存在するピクセルの個数の近似値を微分可能な関数で求めるものであり、IoUに似た誤差値を求めることのできる方法である。
【0008】
非特許文献2には、より一般的なポリゴン(多角形)形状での領域検出を可能とするための技術が記載されている。ただし、非特許文献2の技術では、ニューラルネットワークの学習のために用いる誤差関数として、ポリゴン頂点間の単純な距離尺度に基づく誤差を求める関数(具体的には、Smooth L1 Loss)を用いている。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】Zhiming Chen,Kean Chen,Weiyao Lin,John See,Hui Yu,Yan Ke,Cong Yang,"PIoU Loss: Towards Accurate Oriented Object Detection in ComplexEnvironments ",European Conference on Computer Vision(ECCV),2020年,https://arxiv.org/pdf/2007.09584.pdf
【非特許文献2】Xiang Zhang,Yongwen Su,Subarna Tripathi,Zhuowen Tu,"Text Spotting Transformers ",CVPR 2022,Computer Vision and Pattern Recognition (cs.CV),2022年4月,arXiv:2204.01918 [cs.CV],https://arxiv.org/pdf/2204.01918.pdf
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、従来技術には、次のような解決すべき課題が存在する。
【0011】
ポリゴン同士のIoU自体は数式等を用いて厳密に定義可能であり、ポリゴン形状の物体を検出する技術において精度等の評価尺度としてよく用いられる。しかしながら、ニューラルネットワークの学習に用いることのできるポリゴンIoUの計算方法は存在しないという問題がある。
【0012】
従来技術では、長方形の領域について誤差関数を用いて誤差を算出している。つまり、ニューラルネットワークによって推定される領域も、正解領域も、どちらも長方形に限定されている。このため、従来技術では、長方形以外の形状の領域の座標値を直接推定するようなニューラルネットワークを構成することができないという問題がある。
【0013】
従来技術として説明した手法の一つは、ニューラルネットワークからマスク画像を出力するようにして、任意の形状の推定を行えるようにする方法である。しかしながら、ニューラルネットワークで生成されたマスク画像を基に推定領域を特定するための座標値の集合を求める際に、誤差が生じ得る。例えば、生成したマスク画像の1画素分のサイズよりも小さな領域を推定結果とすることはできない。例えば正解座標値と推定座標値との間での最小二乗誤差を誤差として扱うなど、単純な回帰で計算する方法も考えられるが、一般に座標値の回帰は精度が高くない。また、正解領域の図形が持つ頂点の数と推定領域の図形が持つ頂点の数とが同じでなければならないという制約がある。つまり、例えば四角形の領域と五角形の領域との間で頂点の座標値に基づく誤差を算出することはできない。
【0014】
また、非特許文献1に記載されているPIoU誤差関数を用いる場合には回転した長方形を対象として領域間の誤差を求めることが可能であるが、入力される画像の画素のサイズよりも細かい形状を推定することが難しいという問題がある。また、非特許文献1に記載されている方法は、回転した長方形に対してのみ利用できるものであり、複雑な形状のポリゴンに適用することはできないという問題がある。
【0015】
また、非特許文献2に記載されている技術では、一般的なポリゴン間の誤差を算出しているものの、その誤差は2つのポリゴンの対応する頂点同士の位置の誤差である。このような非特許文献2に記載された頂点の誤差を用いる技術では、ポリゴンIoUを誤差として用いる場合に比べて精度が劣る(2つのポリゴン間の一致度(重なり度合い)を良好に表わさない)という問題がある。また、非特許文献2に記載された技術では、ポリゴンの頂点の数が固定でなければならないため、頂点の数を合わせるためのデータの前処理が必要となるなど、学習用のデータセットの作成コストが高いという問題がある。
【0016】
本発明は、上記の課題認識に基づいて行なわれたものであり、凸包ポリゴン(長方形等を含む)に限定されない任意の2つのポリゴン(多角形)間の誤差であって、モデルの機械学習に用いるための誤差を算出するためのIoU算出装置およびプログラムや、そういったIoU算出装置を利用して実現される領域検出装置および画像処理装置を提供しようとするものである。
【課題を解決するための手段】
【0017】
[1]上記課題を解決するための本発明のIoU算出装置の一態様は、与えられる画像内の1つのポリゴンを分割することによって1つ以上の分割後の凸包ポリゴンを得る凸包分割部と、分割後の前記凸包ポリゴンのそれぞれについて前記画像内の各々のピクセルが当該凸包ポリゴンの内側に存在するか否かを数値として表わす内側ピクセルマップ(IPM)を生成する凸包内側ピクセルマップ生成部と、前記凸包内側ピクセルマップ生成部が生成した分割後の前記凸包ポリゴンの内側ピクセルマップを合成することによって、前記凸包分割部によって分割される前の前記ポリゴンについて前記画像内の各々のピクセルが当該分割される前のポリゴンの内側に存在するか否かを数値として表わす内側ピクセルマップを生成するポリゴン内側ピクセルマップ生成部と、前記画像内の与えられる2つのポリゴンのそれぞれについて前記ポリゴン内側ピクセルマップ生成部が生成した前記内側ピクセルマップに基づいて、当該2つのポリゴンの積集合領域について前記画像内の各々のピクセルが当該積集合領域の内側に存在するか否かを数値として表わす内側ピクセルマップと、当該2つのポリゴンの和集合領域について前記画像内の各々のピクセルが当該和集合領域の内側に存在するか否かを数値として表わす内側ピクセルマップと、を生成し、当該積集合領域についての内側ピクセルマップを基に当該積集合領域の面積の近似値を求め、当該和集合領域についての内側ピクセルマップを基に当該和集合領域の面積の近似値を求め、前記積集合領域の面積の近似値を前記和集合領域の面積の近似値で除することにより、与えられた前記2つのポリゴンについてのIoU(Intersection over Union)値の近似値を算出するIoU近似値計算部と、を備え、前記凸包内側ピクセルマップ生成部が前記凸包ポリゴンについての内側ピクセルマップを生成する計算処理過程と、ポリゴン内側ピクセルマップ生成部が分割後の前記凸包ポリゴンについての内側ピクセルマップに基づいて分割前の前記ポリゴンについての内側ピクセルマップを生成する計算処理過程と、前記IoU近似値計算部が前記2つのポリゴンのそれぞれについての内側ピクセルマップに基づいて前記IoU値の近似値を算出するまでの計算処理過程とは、画像領域内において連続且つ微分可能な関数と、引数のうちの最大値を返す最大値関数と、引数のうちの最小値を返す最小値関数との範囲内のみで計算される、というものである。
【0018】
[2]また、本発明の一態様は、上記[1]のIoU算出装置において、前記凸包内側ピクセルマップ生成部は、処理対象とする前記凸包ポリゴンが持つ辺のそれぞれについて、前記画像内の各々のピクセルが、当該辺およびその辺の延長線を基準として、当該凸包ポリゴンの内側の所定のピクセルと同じ側にあるか反対の側にあるかを数値として表わす当該辺についての内側ピクセルマップを生成し、前記凸包ポリゴンが持つすべての辺についての前記内側ピクセルマップを合成することによって、前記画像内の各々のピクセルが当該凸包ポリゴンの内側に存在するか否かを数値として表わす内側ピクセルマップを生成する、というものである。
【0019】
[3]また、本発明の一態様は、上記[2]のIoU算出装置において、前記凸包内側ピクセルマップ生成部は、前記凸包ポリゴンが持つすべての辺についての前記内側ピクセルマップを合成する際に、それぞれの辺についての内側ピクセルマップ前記ピクセルごとの値についての最小値を選択することにより、前記ピクセルが当該凸包ポリゴンの内側に存在するか否かを数値として表わす内側ピクセルマップを生成する、というものである。
【0020】
[4]また、本発明の一態様は、機械学習モデルを内部に備えて、外部から渡される画像を前記機械学習モデルに入力することによって前記画像内において特定の特徴を有する領域を推定する領域推定部と、前記領域推定部が備える前記機械学習モデルの学習を行うための、学習用画像と当該学習用画像に対応する正解領域との対を供給する学習用データ供給部と、前記学習用データ供給部が供給する前記学習用画像に基づいて前記領域推定部が推定した結果である推定領域と、前記学習用画像に対応して前記学習用データ供給部が供給する前記正解領域と、の誤差を求める誤差算出部と、を備える領域検出装置であって、前記推定領域に対応する図形および前記正解領域に対応する図形は、いずれも、任意のポリゴンであって、前記誤差算出部は、上記[1]から[3]までのいずれか一項に記載のIoU算出装置を備え、前記IoU算出装置が前記推定領域に対応する図形であるポリゴンと、前記正解領域に対応する図形であるポリゴンとについて算出した前記IoU値の近似値、に基づく前記誤差を算出する、領域検出装置である。
【0021】
[5]また、本発明の一態様は、機械学習モデルを内部に備えて、外部から渡される画像を前記機械学習モデルに入力することによって前記画像内におけるポリゴンを推定した結果として推定ポリゴンを出力する推定部と、前記推定部が備える前記機械学習モデルの学習を行うための、学習用画像と当該学習用画像に対応する正解ポリゴンとの対を供給する学習用データ供給部と、前記学習用データ供給部が供給する前記学習用画像に基づいて前記推定部が推定した結果である前記推定ポリゴンと、前記学習用画像に対応して前記学習用データ供給部が供給する前記正解ポリゴンと、の誤差を求める誤差算出部と、を備える画像処理装置であって、前記誤差算出部は、上記[1]から[3]までのいずれか一項に記載のIoU算出装置を備え、前記IoU算出装置が前記推定ポリゴンと前記正解ポリゴンとについて算出した前記IoU値の近似値、に基づく前記誤差を算出する、画像処理装置である。
【0022】
[6]また、本発明の一態様は、与えられる画像内の1つのポリゴンを分割することによって1つ以上の分割後の凸包ポリゴンを得る凸包分割部と、分割後の前記凸包ポリゴンのそれぞれについて前記画像内の各々のピクセルが当該凸包ポリゴンの内側に存在するか否かを数値として表わす内側ピクセルマップ(IPM)を生成する凸包内側ピクセルマップ生成部と、前記凸包内側ピクセルマップ生成部が生成した分割後の前記凸包ポリゴンの内側ピクセルマップを合成することによって、前記凸包分割部によって分割される前の前記ポリゴンについて前記画像内の各々のピクセルが当該分割される前のポリゴンの内側に存在するか否かを数値として表わす内側ピクセルマップを生成するポリゴン内側ピクセルマップ生成部と、前記画像内の与えられる2つのポリゴンのそれぞれについて前記ポリゴン内側ピクセルマップ生成部が生成した前記内側ピクセルマップに基づいて、当該2つのポリゴンの積集合領域について前記画像内の各々のピクセルが当該積集合領域の内側に存在するか否かを数値として表わす内側ピクセルマップと、当該2つのポリゴンの和集合領域について前記画像内の各々のピクセルが当該和集合領域の内側に存在するか否かを数値として表わす内側ピクセルマップと、を生成し、当該積集合領域についての内側ピクセルマップを基に当該積集合領域の面積の近似値を求め、当該和集合領域についての内側ピクセルマップを基に当該和集合領域の面積の近似値を求め、前記積集合領域の面積の近似値を前記和集合領域の面積の近似値で除することにより、与えられた前記2つのポリゴンについてのIoU(Intersection over Union)値の近似値を算出するIoU近似値計算部と、を備え、前記凸包内側ピクセルマップ生成部が前記凸包ポリゴンについての内側ピクセルマップを生成する計算処理過程と、ポリゴン内側ピクセルマップ生成部が分割後の前記凸包ポリゴンについての内側ピクセルマップに基づいて分割前の前記ポリゴンについての内側ピクセルマップを生成する計算処理過程と、前記IoU近似値計算部が前記2つのポリゴンのそれぞれについての内側ピクセルマップに基づいて前記IoU値の近似値を算出するまでの計算処理過程とは、画像領域内において連続且つ微分可能な関数と、引数のうちの最大値を返す最大値関数と、引数のうちの最小値を返す最小値関数との範囲内のみで計算される、IoU算出装置、としてコンピューターを機能させるためのプログラムである。
【0023】
また、複数の参考形態は、下記の通りである。
【0024】
[参考態様1]上記の課題を解決するための一つの参考態様による領域検出装置は、機械学習モデルを内部に備えて、外部から渡される画像を前記機械学習モデルに入力することによって前記画像内において特定の特徴を有する領域を推定する領域推定部と、前記領域推定部が備える前記機械学習モデルの学習を行うための、学習用画像と当該学習用画像に対応する正解領域との対を供給する学習用データ供給部と、前記学習用データ供給部が供給する前記学習用画像に基づいて前記領域推定部が推定した結果である推定領域と、前記学習用画像に対応して前記学習用データ供給部が供給する前記正解領域と、の誤差を求める誤差算出部と、を備える領域検出装置であって、前記推定領域に対応する図形および前記正解領域に対応する図形は、いずれも、凸包多角形であって、前記誤差算出部は、前記画像内および前記学習用画像内のそれぞれにおいて共通する多数の仮想ピクセルを設定する仮想ピクセル生成部と、前記仮想ピクセルの各々について、前記推定領域に対応する図形についての内包判定値と前記正解領域に対応する図形についての内包判定値との和および積をそれぞれ求め、前記和から前記積を減じた値をユニオン値(union)として、前記積の値をインターセクション値(intersection)として、すべての前記仮想ピクセルについての前記インターセクション値の総和をすべての前記仮想ピクセルについての前記ユニオン値の総和で除して得られる値、を誤差として求める誤差関数値計算部と、を備え、前記推定領域に対応する図形についての内包判定値は、前記仮想ピクセルが当該図形の内側に存在して且つ当該図形のいずれの辺からも所定距離以上離れている場合には1またはほぼ1であり、前記仮想ピクセルが当該図形の外側に存在して且つ当該図形のいずれの辺からも所定距離以上離れている場合には0またはほぼ0であり、且つ前記推定領域に対応する図形についての内包判定値を求めるための関数は前記画像内の全領域において連続且つ微分可能であり、前記正解領域に対応する図形についての内包判定値は、前記仮想ピクセルが当該図形の内側に存在して且つ当該図形のいずれの辺からも所定距離以上離れている場合には1またはほぼ1であり、前記仮想ピクセルが当該図形の外側に存在して且つ当該図形のいずれの辺からも所定距離以上離れている場合には0またはほぼ0であり、且つ前記正解領域に対応する図形についての内包判定値を求めるための関数は前記学習用画像内の全領域において連続且つ微分可能であり、前記推定領域に対応する図形についての内包判定値および前記正解領域に対応する図形についての内包判定値は、それぞれ、前記画像および前記学習用画像の全領域において0以上且つ1以下である、というものである。
【0025】
[参考態様2]また、一つの参考態様は、上記[参考態様1]の領域検出装置において、前記誤差算出部は、さらに、前記仮想ピクセルのそれぞれについて、前記推定領域に対応する図形が有するそれぞれの辺および前記正解領域に対応する図形が有するそれぞれの辺について、下に記載の式(1)(ただし、eはネイピア数、kは所定の正定数、dpxは当該図形の内側に存在する所定の点を通って且つ当該辺と平行な基準線から当該仮想ピクセルまでの距離、dcenterは当該辺に関する前記基準線から当該辺までの距離である)によって当該仮想ピクセルの当該辺についての内包判定値を求める内包判定部と、前記内包判定部が求めた当該図形が有するすべての辺についての前記仮想ピクセルの内包判定値を掛け合わせることによって当該仮想ピクセルの当該図形についての前記内包判定値を求める内包判定統合部と、を備えるものである。
【0026】
[参考態様3]また、一つの参考態様は、機械学習モデルを内部に備えて、外部から渡される画像を前記機械学習モデルに入力することによって前記画像内において特定の特徴を有する領域を推定する領域推定部と、前記領域推定部が備える前記機械学習モデルの学習を行うための、学習用画像と当該学習用画像に対応する正解領域との対を供給する学習用データ供給部と、前記学習用データ供給部が供給する前記学習用画像に基づいて前記領域推定部が推定した結果である推定領域と、前記学習用画像に対応して前記学習用データ供給部が供給する前記正解領域と、の誤差を求める誤差算出部と、を備える領域検出装置であって、前記推定領域に対応する図形および前記正解領域に対応する図形は、いずれも、凸包多角形であって、前記誤差算出部は、前記画像内および前記学習用画像内のそれぞれにおいて共通する多数の仮想ピクセルを設定する仮想ピクセル生成部と、前記仮想ピクセルの各々について、前記推定領域に対応する図形についての内包判定値と前記正解領域に対応する図形についての内包判定値との和および積をそれぞれ求め、前記和から前記積を減じた値をユニオン値(union)として、前記積の値をインターセクション値(intersection)として、すべての前記仮想ピクセルについての前記インターセクション値の総和をすべての前記仮想ピクセルについての前記ユニオン値の総和で除して得られる値、を誤差として求める誤差関数値計算部と、を備え、前記推定領域に対応する図形についての内包判定値は、前記仮想ピクセルが当該図形の内側に存在して且つ当該図形のいずれの辺からも所定距離以上離れている場合には1またはほぼ1であり、前記仮想ピクセルが当該図形の外側に存在して且つ当該図形のいずれの辺からも所定距離以上離れている場合には0またはほぼ0であり、且つ前記推定領域に対応する図形についての内包判定値を求めるための関数は前記画像内の全領域において連続且つ微分可能であり、前記正解領域に対応する図形についての内包判定値は、前記仮想ピクセルが当該図形の内側に存在して且つ当該図形のいずれの辺からも所定距離以上離れている場合には1またはほぼ1であり、前記仮想ピクセルが当該図形の外側に存在して且つ当該図形のいずれの辺からも所定距離以上離れている場合には0またはほぼ0であり、且つ前記正解領域に対応する図形についての内包判定値を求めるための関数は前記学習用画像内の全領域において連続且つ微分可能であり、前記推定領域に対応する図形についての内包判定値および前記正解領域に対応する図形についての内包判定値は、それぞれ、前記画像および前記学習用画像の全領域において0以上且つ1以下である、領域検出装置、としてコンピューターを機能させるためのプログラムである。
【発明の効果】
【0027】
本発明によれば、2つの任意のポリゴンについてのIoUの近似値を、機械学習モデルの学習のための誤差として利用可能な形で算出することができる。対象とするポリゴンは、凸包ポリゴンには限定されない。また、対象とするポリゴンの頂点の数に関して制約を設ける必要もない。
【図面の簡単な説明】
【0028】
【
図1】本発明の第1実施形態による領域検出装置の概略機能構成を示すブロック図である。
【
図2】第1実施形態による誤差算出部の内部のさらに詳細な機能構成を示すブロック図である。
【
図3】第1実施形態における、画像内での実ピクセルおよび仮想ピクセルの配置例を示す概略図である。
【
図4】第1実施形態による内包判定部の処理を説明するための概略図の1つであり、誤差計算の対象となる図形の1つがxy平面上に存在する状態を示す。
【
図5】第1実施形態による内包判定部の処理を説明するための別の概略図であり、図形平面を回転させて1つの辺を水平にした状態を示す。
【
図6】第1実施形態による誤差関数値計算部が2つの図形の間の誤差の求める際の処理を説明するための概略図である。
【
図7】第1実施形態による領域検出装置を実現するための内部構成の例を示すブロック図である。
【
図8】第1実施形態の変形例による内包判定値の求め方を説明するための概略図である。
【
図9】第1実施形態の領域検出装置の応用例と、その検証のための実験に用いた画像の例とを説明するための概略図である。
【
図10】第2実施形態による領域検出装置の概略機能構成を示すブロック図である。
【
図11】第2実施形態による凸包分割部が、与えられたポリゴン(P
A)を複数の凸包に分割する例を示す概略図である。
【
図12】第2実施形態による凸包分割部が、与えられたポリゴン(P
B)を複数の凸包に分割する例を示す概略図である。
【
図13】第2実施形態による凸包IPM生成部が、IPM(内側ピクセルマップ)生成の処理の対象とする凸包ポリゴンの一例であるポリゴンP
A2を示す概略図である。
【
図14】第2実施形態による凸包IPM生成部が、凸包ポリゴンP
A2が持つ1つの辺についてのIPMを求める方法を説明するための概略図である。
【
図15】第2実施形態による凸包IPM生成部が、凸包ポリゴンP
A2の辺L
1について求めたIPMを表す概略図である。
【
図16】第2実施形態による凸包IPM生成部が、凸包ポリゴンP
A2の辺L
2について求めたIPMを表す概略図である。
【
図17】第2実施形態による凸包IPM生成部が、凸包ポリゴンP
A2の辺L
3について求めたIPMを表す概略図である。
【
図18】第2実施形態による凸包IPM生成部が、凸包ポリゴンP
A2の辺L
4について求めたIPMを表す概略図である。
【
図19】第2実施形態によるポリゴンIoU算出装置が、与えられた2つのポリゴンのIoUの近似値を求める処理の手順を示すフローチャートである。
【
図20】第3実施形態による領域検出装置(第2実施形態のポリゴンIoU算出装置を利用)の概略機能構成を示すブロック図である。
【
図21】第4実施形態による画像処理装置(第2実施形態のポリゴンIoU算出装置を利用)の概略機能構成を示すブロック図である。
【発明を実施するための形態】
【0029】
[第1実施形態]
次に、第1実施形態について、図面を参照しながら説明する。本実施形態では、領域検出装置1は、機械学習の手法を用いることによって、入力される画像内において特定の特徴を有する領域を自動的に検出する。本実施形態では、機械学習モデルの学習を行うにあたって、本実施形態に特有の誤差(ロス(loss)あるいはエラー(error)等とも呼ばれる)の算出方法を用いる。その誤差算出における特徴は、大きく、次の2点である。
【0030】
第1の特徴として、後で説明する誤差算出部105は、入力される画像を構成する実際のピクセルとは無関係に、計算上のみで便宜的に用いる仮想的なピクセルを定義して、その仮想的ピクセルに基づいた計算を行う。具体的には誤差算出部105は、画像内の領域を表す図形が内部に含む仮想的ピクセルの数を計算する。なお、ここでの図形を凸包図形に限定する。つまり、ここでの図形(多角形)を構成するいかなる頂点においても、その内角は180度未満である場合に限定する。なお、図形が内部に含む仮想的なピクセルの数として、誤差算出部105はその近似値を求めるものであってもよい。このように仮想的なピクセルに基づいた計算を行うことにより、誤差算出部105は、入力される画像の解像度が粗い場合であっても、高い精度で誤差を求めることができる。
【0031】
第2の特徴として、誤差算出部105は、対称の図形を構成する辺ごとに、それぞれの仮想的なピクセルが図形の内部に存在するか外部に存在するかを判定する。そして、誤差算出部105は、それぞれの辺についての判定結果(内部か外部か)を統合することによって、各仮想的ピクセルが対称の図形の内部に存在するか外部に存在するかを決定する。
この手順を用いて、誤差算出部105は、任意の形状を有する対称図形(ただし、凸包図形)の内部に存在する仮想的なピクセルの数を求める。その具体的な計算方法については、後で説明する。
【0032】
図1は、本実施形態による領域検出装置の概略機能構成を示すブロック図である。図示するように、領域検出装置1は、画像入力部101と、領域推定部102と、結果出力部103と、学習用データ供給部104と、誤差算出部105とを含んで構成される。これらの各機能部は、例えば、コンピューターと、プログラムとで実現することが可能である。また、各機能部は、必要に応じて、記憶手段を有する。記憶手段は、例えば、プログラム上の変数や、プログラムの実行によりアロケーションされるメモリーである。また、必要に応じて、磁気ハードディスク装置やソリッドステートドライブ(SSD)といった不揮発性の記憶手段を用いるようにしてもよい。また、各機能部の少なくとも一部の機能を、プログラムではなく専用の電子回路として実現してもよい。
【0033】
領域検出装置1は、学習モードあるいは推定実行モードのいずれかのモードで稼働する。学習モードにおいては、領域検出装置1は、学習用データを用いた処理を行うことによって、領域推定部102が持つ機械学習モデルのパラメーターの最適化を行う。推定実行モードにおいては、領域推定部102が、学習済みのパラメーターを用いて、未知の入力画像な中の特定の領域を推定する処理を行う。各部のそれぞれの機能について、次に説明する。
【0034】
画像入力部101は、外部から入力される画像を取得して、領域推定部102に渡す。
画像入力部101が領域推定部102に渡す画像は、推定実行モードでの動作における推定の対象となる画像である。
【0035】
領域推定部102は、機械学習モデルを内部に備えて、外部から渡される画像を前記機械学習モデルに入力することによって前記画像内において特定の特徴を有する領域を推定する。領域推定部102は、上記機械学習モデルとして、具体的には、ニューラルネットワークを内部に備える。領域推定部102は、推定結果である領域に対応する図形を出力する。本実施形態において、その図形は、凸包多角形である。つまり、その図形は、すべての内角180度未満であるような多角形である。より具体的には、領域推定部102は、推定結果である凸包多角形が有するそれぞれの頂点の座標値を出力するものであてよい。あるいは、領域推定部102は、その凸包多角形に関する同等の情報を出力するものであってよい。
【0036】
領域推定部102は、学習モードで動作する場合には、推定結果の領域の図形の情報を、誤差算出部105に渡す。これにより、誤差算出部105は、推定領域の図形と正解領域の図形他の間の誤差を算出することとなる。また、領域推定部102は、推定実行モードで動作する場合には、未知の画像を基に推定した結果である推定領域の図形の情報を、結果出力部103に渡す。
【0037】
結果出力部103は、推定実行モードにおいて領域推定部102が推定結果として出力した推定領域の情報(図形の情報)を、外部に出力する。この推定領域の情報は、特定の特徴を有する領域の情報として、様々な目的で利用可能な者である。
【0038】
学習用データ供給部104は、領域検出装置1が学習モードで動作する場合に、領域推定部102が持つニューラルネットワーク(機械学習モデル)の学習を行うための学習用データを供給する。学習用データは、学習用画像と、その学習用画像に対応する正解領域を表す図形(本実施形態では凸包多角形)との対の集合の情報である。学習用データ供給部104は、対に含まれる学習用画像を領域推定部102に渡す。また、学習用データ供給部104は、その対に含まれる正解領域の図形の情報を、誤差算出部105に渡す。これにより、誤差算出部105は、学習用画像に基づいて領域推定部102が出力した領域(推定領域)の図形と、学習用データ供給部104が供給した正解領域との図形との誤差を算出できるようになる。ニューラルネットワークの学習を行う際には、学習用データ供給部104は、学習のために、各対を順次供給する。
【0039】
誤差算出部105は、領域検出装置1が学習モードで動作する場合に、領域推定部102が推定結果として出力する領域の図形と、学習用データ供給部104が供給する正解領域の図形との間の誤差を算出する。本実施形態において、推定領域に対応する図形および正解領域に対応する図形は、いずれも、凸包多角形である。誤差算出部105が算出した誤差は、誤差逆伝播法により、領域推定部102が持つニューラルネットワークの内部パラメーターの調整(最適化の処理)に用いられる。誤差算出部105のさらに詳細な構成および処理内容については、後で
図2等を参照しながらさらに説明する。
【0040】
なお、誤差算出部105が算出する誤差とは、次のようなものである。後で
図2のブロック図を参照しながら説明する誤差算出部105の内部構成は、下記の誤差を具体的に実現するための手順の一例を実現するものである。
【0041】
誤差算出部105は、誤差を算出するための基礎的なデータとして、内包判定値を用いる。内包判定値は、後述する仮想ピクセルが、図形(推定領域の図形や、正解領域の図形)に内包されるか否かを表す数値である。ただし、本実施形態では、内包判定値は例えば0または1の二値ではなく、0以上且つ1以下の連続的な値を取り得るものである。
【0042】
推定領域に対応する図形についての内包判定値は、仮想ピクセルが当該図形の内側に存在して且つ当該図形のいずれの辺からも所定距離以上離れている場合には1またはほぼ1であり、仮想ピクセルが当該図形の外側に存在して且つ当該図形のいずれの辺からも所定距離以上離れている場合には0またはほぼ0であり、且つ前記推定領域に対応する図形についての内包判定値を求めるための関数は前記画像内の全領域において連続且つ微分可能である。つまり、図形(既に説明しているように、図形は多角形である)の辺の近傍(近傍とは、辺から上記所定距離以内の領域)においては、内包判定値は、0(またはほぼ0)から1(またはほぼ1)まで連続的に(且つ急激に)且つ滑らかに変化する。
【0043】
正解領域に関しても同様である。即ち、正解領域に対応する図形についての内包判定値は、仮想ピクセルが当該図形の内側に存在して且つ当該図形のいずれの辺からも所定距離以上離れている場合には1またはほぼ1であり、仮想ピクセルが当該図形の外側に存在して且つ当該図形のいずれの辺からも所定距離以上離れている場合には0またはほぼ0であり、且つ前記正解領域に対応する図形についての内包判定値を求めるための関数は前記学習用画像内の全領域において連続且つ微分可能である。つまり、図形(多角形である)の辺の近傍(近傍とは、辺から上記所定距離以内の領域)においては、内包判定値は、0(またはほぼ0)から1(またはほぼ1)まで連続的に(且つ急激に)且つ滑らかに変化する。
【0044】
なお、推定領域に対応する図形についての内包判定値および正解領域に対応する図形についての内包判定値は、それぞれ、画像および学習用画像の全領域において0以上且つ1以下である。
【0045】
本実施形態では、仮想ピクセルの、図形についての内包判定値を求めるために、誤差算出部105は、仮想ピクセルの、その図形の各辺についての内包判定値を求め、それらの内包判定値を掛け合わせることによって、その仮想ピクセルのその図形についての内包判定値を求める。
【0046】
図2は、本実施形態による誤差算出部105の内部のさらに詳細な機能構成を示すブロック図である。図示するように、誤差算出部105は、仮想ピクセル生成部1051と、内包判定部1052と、内包判定統合部1053と、誤差関数値計算部1054とを含んで構成される。各部の機能は、次の通りである。
【0047】
仮想ピクセル生成部1051は、画像内および学習用画像内のそれぞれにおいて共通する多数の仮想ピクセルを設定(生成)する。仮想ピクセルについては、後でさらに説明する。
【0048】
内包判定部1052は、仮想ピクセルのそれぞれについて、推定領域に対応する図形が有するそれぞれの辺および正解領域に対応する図形が有するそれぞれの辺について、後で記載する式(1)(ただし、eはネイピア数、kは所定の正定数、dpxは当該図形の内側に存在する所定の点を通って且つ当該辺と平行な基準線から当該仮想ピクセルまでの距離、dcenterは当該辺に関する前記基準線から当該辺までの距離である)によって当該仮想ピクセルの当該辺についての内包判定値を求める。
【0049】
内包判定統合部1053は、1つの仮想ピクセルについて内包判定部1052が求めた各辺についての内包判定値に基づいて、それらを統合し、その仮想ピクセルの図形(多角形)についての内包判定値を求める。具体的には、内包判定統合部1053は、内包判定部1052が求めた当該図形が有するすべての辺についての仮想ピクセルの内包判定値をすべて掛け合わせることによって、当該仮想ピクセルの当該図形についての内包判定値を求める。
【0050】
誤差関数値計算部1054は、内包判定値に基づいて、推定領域の図形と正解領域の図形との間の誤差を計算する。具体的には、誤差関数値計算部1054は、仮想ピクセルが各図形に内包されるか否かを表す値である内包判定値に基づいて誤差を算出する。さらに具体的には、誤差関数値計算部1054は、仮想ピクセルの各々について、推定領域に対応する図形についての内包判定値と正解領域に対応する図形についての内包判定値との和および積をそれぞれ求め、和から積を減じた値をユニオン値(union)として、積の値をインターセクション値(intersection)として、すべての仮想ピクセルについてのインターセクション値の総和をすべての仮想ピクセルについての前記ユニオン値の総和で除して得られる値、を誤差として求める。
【0051】
次に、誤差算出部105による処理の流れについて、実例とともに説明する。
【0052】
仮想ピクセル生成部1051は、誤差算出の対象の画像について仮想ピクセルを生成する。仮想ピクセルは、画像の面上に所定の間隔で仮想的に配置されたピクセルである。xy直交座標で表わす場合、例としてy座標が0.0から1.5まで、x座標が0.0から1.0まで、仮想ピクセルのx座標およびy座標のそれぞれの間隔を0.5とするとき、仮想ピクセルの座標値は、下記の12個である。
(x,y)=
(0.0,0.0),(0.0,0.5),(0.0,1.0),(0.0,1.5),(0.5,0.0),(0.5,0.5),(0.5,1.0),(0.5,1.5),(1.0,0.0),(1.0,0.5),(1.0,1.0),(1.0,1.5),
【0053】
仮想ピクセルの座標値は、画像が実際に持つピクセルの座標値とは異なっていてもよい。また、仮想ピクセルの配置間隔(上の例では、0.5)も実際のピクセル間の間隔とは無関係に適宜定めればよい。仮想ピクセルのxおよびyそれぞれの座標値は実数で表わされるものであり、整数である必要はない。このように、仮想ピクセルの座標値に関する自由度は高いため、例えばx軸およびy軸それぞれの方向のサイズが1ピクセル以下であるような小さい図形を扱うのにも適している。なお、仮想ピクセルの配置間隔を狭くするほど(つまい、所定の長さ当たりの仮想ピクセルの数を多くするほど)、誤差の計算のために必要な計算量は増えるが、計算精度は向上する。
【0054】
図3は、画像内における実ピクセルおよび仮想ピクセルの配置例を示す概略図である。
同図は、画像内の一部の領域のみを示している。同図において、実ピクセル1901は、四角形で示されている。また、仮想ピクセル1902は、黒丸で示されている。本例では、実ピクセル1901も仮想ピクセル1902も、それぞれ正方配列としている。本例では、1個の実ピクセル1901に対応して、16個の仮想ピクセル1902を配置している。つまり、仮想ピクセル1902の配置の密度は、縦および横のそれぞれの方向に、実ピクセル1901の配置の密度の4倍である。
図3に示す配置のパターンは、一例に過ぎない。仮想ピクセルは、正方配列ではなく、例えばデルタ配列となっていてもよい。また、仮想ピクセルは、規則性のない配列となっていてもよい。実ピクセルの配置密度と仮想ピクセルの配置密度との関係も、任意である。いずれの場合も、仮想ピクセルの配置密度は、画面内の位置によって大きく異なることがなくできるだけ一様であることが望ましい。
【0055】
内包判定部1052は、上で設定された仮想ピクセルのそれぞれについて、辺ごとの内包判定を行う。つまり、内包判定部1052は、各々の仮想ピクセルが各々の辺のどちら側に存在する。処理の手順として、内包判定部1052は、着目する辺が例えば水平方向となるように画像を回転させ、その状態においてそれぞれの仮想ピクセルがその辺よりも上に存在するか下に存在するかを判定するようにしてよい。
【0056】
図4は、内包判定部1052による処理を説明するための概略図の1つである。同図は、誤差を計算する対象となる図形の1つがxy平面上に存在する状態を示している。同図において、2001は、誤差算出の対象となる図形の一つである。図形2001は、領域推定部102によって推定された結果の領域を表す図形、または学習用データ供給部104によって供給された正解領域を表す図形のいずれかである。本例では、図形2001は、辺2011、2012、2013、および2014を有する四角形である。誤差算出の対象となる図形は、四角形に限らず、任意の多角形であってよい。ただし、対象となる図形は凸包多角形である。
【0057】
図5は、内包判定部1052による処理を説明するための別の概略図である。
図5に示す状態は、
図4において示した図形2001を含む平面(xy平面)を回転させた結果の状態である。内包判定部1052は、回転により、図形2001が持つ辺のうちの現在着目している辺(この例では、辺2011)が水平になるようにしている。図示する破線2021は、基準となる水平な線である。即ち、破線2021は、辺2011と平行な線である。破線2021は、図形2001の中心点を通る線としている。なお、中心点は、図形2001を構成する頂点のx座標およびy座標のそれぞれの平均値によって定めてよい。つまり、この図の垂直方向における位置関係を見たときに、破線2021は、辺2011よりも図形2001の内側に位置している。逆に、垂直方向の位置において、辺2011の、破線2021と反対の側が、図形2001の外側である。ここで、破線2021から辺2011までの距離を1.5とする。また、破線2021から仮想ピクセル2022までの距離を2.2とし、破線2021から仮想ピクセル2023までの距離を0.6とする。このとき、内包判定部1052は、下の式(1)により、内包判定値を算出する。
【0058】
【0059】
式(1)において、d
pxは、基準線(例における破線2021)から判定対象の仮想ピクセルまでの距離である。また、d
centerは、基準線から着目している辺(この例では、辺2011)までの距離である。また、kは所定の正の値をとるパラメーターであり、例えばk=10とする。なお、eはネイピア数である。d
pxがd
centerよりも小さい場合には、式(1)によって求められる内包判定値は1に近い値となる。d
pxがd
centerよりも大きい場合には、式(1)によって求められる内包判定値は0に近い値となる。d
pxがd
centerにちょうど等しい場合には、式(1)によって求められる内包判定値は0.5となる。つまり、
図5の例における垂直方向の位置で見たときに、仮想ピクセルが辺2011よりも下に位置していれば内包判定値は0に近づき、仮想ピクセルが辺2011よりも上に位置していれば内包判定値は1に近づく。なお、辺2011の近傍において内包判定値は滑らか且つ急な傾きで変化する。上記のパラメーターkの値は、その辺2011の近傍における内包判定値の変化の急激さの度合いをコントロールするための値である。ただし、式(1)で表わされる内包判定値を求めるための関数は、d
pxの全領域においてd
pxに関して微分可能である。
【0060】
図5に示す例において、仮想ピクセル2022の、辺2011に関する内包判定値は、式(1)によって求められ、約0.0009である(0に近い)。これは、仮想ピクセル2022が辺2011よりも上側に位置すること表す。また、仮想ピクセル2023の、辺2011に関する内包判定値は、式(1)によって求められ、約0.9999である(1に近い)。これは、仮想ピクセル2023が辺2011よりも下側に位置すること表す。
【0061】
内包判定統合部1053は、内包判定部1052による辺ごとの内包判定を統合し、図形全体の関する内包判定値を求める。具体的には、内包判定統合部1053は、各仮想ピクセルについて、それぞれの辺に関して算出された内包判定値をすべて掛け合わせることによって、その仮想ピクセルの統合された内包判定値を算出する。既に説明したように、
図5のように図形を回転させた状態において、即ち、辺が水平になるようにして且つ図形の中心点が辺の下側に位置するようにした状態において、辺の下側の仮想ピクセルの内包判定値は1に近く、辺の上側の仮想ピクセルの内包判定値は0に近い。また辺の近傍において内包判定値は急激に0と1との間で変化する。つまり、ある仮想ピクセルについて、それぞれの辺に関する内包判定値をすべて掛け合わせると、図形(例えば、四角形)の内部に存在する仮想ピクセルの統合された内包判定値は1に近い値となり、図形の外部に存在する仮想ピクセルの統合された内包判定値は0に近い値となる。
【0062】
内包判定統合部1053は、すべての仮想ピクセルについて、統合された内包判定値を求める。1枚の画像内のすべての仮想ピクセルについての統合された内包判定値の総和は、その図形が内包する仮想ピクセルの数の近似値であり、その値は図形の面積の近似値に比例するものである。つまり、内包判定統合部1053が求めた内包判定値の総和は、図形の面積を表す値であって、しかも式(1)の計算およびそれらの値の加算のみで求めることができる、微分可能な値である。
【0063】
誤差関数値計算部1054は、内包判定統合部1053の計算結果を用いて、誤差算出部105に入力される2つの図形の間の誤差を計算する。具体的には、誤差関数値計算部1054は、次に
図6を参照しながら説明する計算を行う。
【0064】
図6は、誤差関数値計算部1054が2つの図形の間の誤差の求める際の処理を説明するための概略図である。
図6(A)は、1つ目の図形である図形2002の領域を示す。
図6(B)は、2つ目の図形である図形2003の領域を示す。これら2つの図形が一致しているほど両者間の誤差は小さく、異なっているほど両者間の誤差は大きい。そのような誤差を求めるために、誤差関数値計算部1054は、下で説明するように、IoU(Intersection over Union)の代替となり得る計算を行う。
図6(C)は、図形2002の領域と図形2003の領域との間で、一部においてのみ重複が存在している状況を示す。
誤差関数値計算部1054が行う計算は、両者の和集合の部分の領域の広さと、両者の積集合の部分の領域の広さとに基づく計算である。
【0065】
IoUにおけるインターセクション(intersection)は、2つの図形の共通部分(積集合の部分)である。本実施形態では、IoUにおけるインターセクションに相当する値を得るための計算として、誤差関数値計算部1054は、各仮想ピクセルについて、2つの図形のそれぞれの統合された内包判定値の積を求める。1つの仮想ピクセルについて、2つの図形の少なくともいずれか一方の内包判定値が0に近い値の場合には、それら2つの内包判定値の積は0に近い値となる。2つの図形の両方の内包判定値が1に近い値の場合には、それら2つの内包判定値の積は1に近い値となる。しかも、2つの内包判定値の積は、微分可能である。すべての仮想ピクセルについての上記の積の総和が、本実施形態においてインターセクションに相当する値である。IoUにおけるユニオン(union)は、2つの図形の和集合の部分である。本実施形態では、IoUにおけるインターセクションに相当する値を得るための計算として、誤差関数値計算部1054は、各仮想ピクセルについて、2つの図形のそれぞれの統合された内包判定値の和を求め、その和から上記の積の値を減じた値を求める。2つの図形の共通部分については、それら内包判定値の和は2に近い値となる。したがって、その和から、2つの内包判定値の積(1に近い値)を減じることによって、求められる値は1に近い値となる。2つの図形の排他的和の部分については、それらの内包判定値の和は1に近い値となる。排他的和の部分についての2つの内包判定値の積は0に近い値であるので、結果として求められる値は1に近い値となる。その他の部分(2つの図形のどちらにも属さない部分)については、それらの内包判定値の和も積もともに0に近い値となる。したがって、その和からその積を減じた結果は、0に近い値となる。すべての仮想ピクセルについての上記の和から積を減じた結果の値の総和が、本実施形態においてユニオンに相当する値である。この値もまた微分可能である。
【0066】
つまり、誤差関数値計算部1054は、下の式に基づいて、2つの図形の間の誤差を算出する。
【0067】
式:sum(intersection) / sum(union)
【0068】
この式において、unionは、上記方法で誤差関数値計算部1054が求めた各仮想ピクセルのユニオンに相当する値である。また、この式におけるintersectionは、上記方法で誤差関数値計算部1054が求めた各仮想ピクセルのインターセクションに相当する値である。また、sum(・)は、画像内のすべての仮想ピクセルについての値の総和を取る操作(演算)を表す。
【0069】
これまでに説明した通り、上記の式におけるunionもintersectionも、微分可能である。また、それらそれぞれのすべての仮想ピクセルについての総和の値も微分可能である。さらに、上記の式(sum(intersection) / sum(union))によって表される値(誤差関数値計算部1054が算出する誤差)もまた、微分可能である。
【0070】
以上説明したように、誤差算出部105は、2つの図形(いずれも、凸包図形(凸包多角形))に関して式(1)の関数を用いることによって適切な誤差を求めることができる。また、その誤差は、微分可能であるため、領域推定部102が内部に持つニューラルネットワークについて、誤差逆伝播によるパラメーターの更新を行うことができる。つまり、十分な量の学習用データを用いて、十分な回数の誤差逆伝播を行うことによって、領域推定部102が持つニューラルネットワーク(機械学習モデル)は最適化される。
【0071】
以上説明したように、本実施形態の領域検出装置1では検出すべき領域を表す図形は、任意の向きの任意の凸包多角形であってよい(長方形等に限定されない)。また、上で説明した誤差算出の処理過程からも明らかなように、領域推定部102が推定結果として出力する領域の図形(凸包多角形)の頂点の数と、学習用データ供給部104が供給する正解領域の図形(凸包多角形)の頂点の数とは、異なっていてもよい。
即ち、本実施形態により、前述した課題は解決され、任意の凸包多角形同士の誤差を、微分可能な関数の値として求めることができる。これにより、機械学習モデルを用いて、長方形以外の図形に関する領域の検出を行うことが可能となる。これにより、画像内の特定の特徴を有する領域を検出するという問題において制約が取り払われ、より一般的な問題を解決するために領域検出装置1を利用することができる。
【0072】
図7は、実施形態として説明した領域検出装置1の内部構成の例を示すブロック図である。領域検出装置1は、コンピューターを用いて実現され得る。図示するように、そのコンピューターは、中央処理装置901と、RAM902と、入出力ポート903と、入出力デバイス904や905等と、バス906と、を含んで構成される。コンピューター自体は、既存技術を用いて実現可能である。中央処理装置901は、RAM902等から読み込んだプログラムに含まれる命令を実行する。中央処理装置901は、各命令にしたがって、RAM902にデータを書き込んだり、RAM902からデータを読み出したり、算術演算や論理演算を行ったりする。RAM902は、データやプログラムを記憶する。
RAM902に含まれる各要素は、アドレスを持ち、アドレスを用いてアクセスされ得るものである。なお、RAMは、「ランダムアクセスメモリー」の略である。入出力ポート903は、中央処理装置901が外部の入出力デバイス等とデータのやり取りを行うためのポートである。入出力デバイス904や905は、入出力デバイスである。入出力デバイス904や905は、入出力ポート903を介して中央処理装置901との間でデータをやりとりする。バス906は、コンピューター内部で使用される共通の通信路である。
例えば、中央処理装置901は、バス906を介してRAM902のデータを読んだり書いたりする。また、例えば、中央処理装置901は、バス906を介して入出力ポートにアクセスする。
【0073】
上述した実施形態における領域検出装置1の少なくとも一部の機能をコンピューターおよびプログラムで実現することができる。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。
なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM、DVD-ROM、USBメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。つまり、「コンピューター読み取り可能な記録媒体」とは、非一過性の(non-transitory)コンピューター読み取り可能な記録媒体であってよい。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、一時的に、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0074】
以上、実施形態を説明したが、本発明はさらに次のような変形例でも実施することが可能である。
【0075】
[第1実施形態の変形例]
実施形態においては、式(1)により1つの仮想ピクセル且つ1つの辺についての内包判定値を算出し、すべての辺についてのその内包判定値を掛け合わせることによってその仮想ピクセルの図形(凸包多角形)に関する内包判定値を求める手順を説明した。変形例として、ここでは、1つの仮想ピクセルの図形に関する内包判定値を求める方法を説明する。
【0076】
図8は、この変形例による内包判定値の求め方を説明するための概略図である。同図に示す例において、判定対象の図形は凸5角形である。その凸5角形は、辺2031、2032、2033、2034、および2035を持つ。この図では、境界線(破線)を用いて領域を3つに分割して示している。領域R1は、図形(5角形)の内側であり、且つ、いずれの辺からも所定距離以上離れている領域である。領域R3は、図形(5角形)の外側であり、且つ、いずれの辺からも所定距離以上離れている領域である。領域R2は、領域R1でもR3でもない領域である。即ち、領域R2は、辺2031、2032、2033、2034、および2035のうちのいずれかの辺の近傍の領域である。言い換えれば、領域R2は、これらの辺のうちの少なくともいずれかの辺から所定の距離内にある領域である。各辺とは垂直な方向における領域R2の幅は、十分に小さいものとする。この変形例においても、内包判定値は、0以上且つ1以下の値とする。この変形例においては、領域R1における内包判定値を1またはほぼ1(即ち、1-ε以上且つ1以下)とする。
ただし、εは、1に比べて十分に小さい正定数である。また、領域R3における内包判定値を0またはほぼ0(即ち、0以上且つε以下)とする。また、この画像内の仮想ピクセルにおける内包判定値を算出するための関数は、画像内の全領域において連続且つ微分可能とする。
【0077】
変形例の誤差算出部105は、このような内包判定値に基づいて、既に実施形態で説明した計算手順を用いて、2つの図形間の誤差を算出する。
【0078】
なお、
図8を参照しながら説明した内包判定値は、より一般的な形態に対応するものである。実施形態で説明した内包判定値の求め方は、この一般的形態における一つの特殊例である。
【0079】
以上説明したように、実施形態(変形例を含む)によれば、機械学習モデルを用いて、長方形以外の図形についても、領域の検出の対象とすることが可能となる。また、実施形態(変形例を含む)によれば、任意の解像度で仮想ピクセルを生成して(設けて)精細に領域を検出することが可能となる。
【0080】
以上、この発明の実施形態(変形例を含む)について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0081】
[第1実施形態の応用例と効果]
上記実施形態の領域検出装置1の応用例とその効果について説明する。応用例としては、領域検出装置1を用いて、画像内に含まれる文字の領域を検出する。
【0082】
図9は、この応用例において処理対象とした画像の例を示す概略図である。
図9(A)は、領域検出装置1への入力となる画像を示す。この画像内には例として「abc」という文字が含まれている。領域検出装置1は、文字領域を検出するように、学習用データを用いて予め機械学習を行っておく。学習済みの領域検出装置1を、推定実行モードで動作させて、
図9(A)の画像を入力する。
図9(B)は、その検出結果の例である。領域検出装置1は、「a」、「b」、「c」という文字をそれぞれ含んだ領域を検出する。検出された領域のそれぞれは、四角形である(長方形ではない)。ここで、領域検出装置1による検出結果に基づいて、検出された領域をそれぞれ独立の画像として分離するとともに、検出された領域以外については黒(画素値0)でマスクする。
図9(C)は、その結果を示す3つの画像である。
図9(C)においてハッチングされている領域は、黒(画素値0)でマスクされた領域である。このマスクは、次に行う文字認識の処理において不要なノイズ情報が入らないようにするためである。そして、これら3つの画像を対象として文字認識装置(本願発明対象外)を用いて文字認識を行った。その結果、「a」、「b」、および「c」という文字が正しく認識された。つまり、この応用例においては、文字認識の処理の前処理として、特定の特徴を有する領域(文字の領域)の検出を行った。この実証実験を行ったところ、文字認識精度(F値)は、領域検出を行わない場合の70%から、領域検出の前処理を行った場合の73%に、認識精度が向上した。つまり、上記実施形態の効果が得られていることが確認できた。
【0083】
[第2実施形態]
次に、第2実施形態について説明する。なお、前実施形態において既に説明した事項については以下において説明を省略する場合がある。ここでは、本実施形態に特有の事項を中心に説明する。なお、本実施形態が処理の対象とするポリゴンは、平面上の多角形である。
【0084】
[ポリゴンIoU算出装置の構成と処理外洋]
図10は、本実施形態によるポリゴンIoU算出装置の概略機能構成を示すブロック図である。図示するように、ポリゴンIoU算出装置3051は、ポリゴン情報取得部3052と、凸包分割部3053と、凸包IPM生成部3054と、ポリゴンIPM生成部3055と、ポリゴンIoU近似値計算部3056とを含んで構成される。第1実施形態と同様に、本実施形態のポリゴンIoU算出装置3051が有する各機能部もまた、例えば、コンピューターと、プログラムとで実現することが可能である。また、各機能部の少なくとも一部の機能を、プログラムではなく専用の電子回路として実現してもよい。それぞれの機能の概略について次に説明する。
【0085】
ポリゴン情報取得部3052は、IoUの算出対象である2つのポリゴンについての情報を外部から取得する。ポリゴンの情報は、そのポリゴンの形状、サイズ、位置、傾き(回転角)等を表す情報である。ポリゴン情報取得部3052が取得する1つのポリゴンの情報は、例えば、そのポリゴンが持つすべての頂点の座標の情報として表わされ得る。しかし、ポリゴンの情報の表現形態は、ここに提示した形態(すべての頂点の座標)以外のものであってもよい。ポリゴン情報取得部3052は、IoUの算出対象である2つのポリゴンについてのポリゴン情報を、凸包分割部3053に渡す。
【0086】
凸包分割部3053は、ポリゴン情報取得部3052から渡されたポリゴン情報に基づいて、それぞれのポリゴンを凸包ポリゴンに分割する。凸包ポリゴンは、言い換えれば、凸多角形である。凸包ポリゴンは、さらに言い換えれば、180度よりも大きい内角を1つも持たない多角形である。凸包分割部3053は、様々な方法を適宜用いて、渡されたポリゴンを複数の凸包ポリゴンに分割してよい。凸包分割部3053がポリゴンを凸包ポリゴンに分割する方法は微分可能でなくてもよく、あらゆる方法を利用してよい。凸包分割部3053は、一例としてドロネー三角形分割法(Delaunay triangulation)を用いて、与えられたポリゴンの凸包ポリゴンへの分割を行ってよい(三角形は常に凸包である)。凸包分割部3053は、別の例として、ルールベースの方法によって与えられたポリゴンの凸包ポリゴンへの分割を行ってよい。任意のポリゴンからの凸包ポリゴンへの分割自体は、既存技術を用いることによって実現可能である。
【0087】
つまり、凸包分割部3053は、与えられる画像内の1つのポリゴンを分割することによって1つ以上の分割後の凸包ポリゴンを得る。与えられる1つのポリゴンを分割する必要がない場合には、凸包分割部3053は、与えられた1つのポリゴンをそのまま分割後の1つの凸包ポリゴンとして出力してよい。
【0088】
なお、凸包分割部3053による分割の結果として凸包への分割数が多ければ多い程、後段の処理における計算量が増えてしまうという問題がある。つまり、凸包分割部3053は、可能な場合にはより少ない数の凸包に分割する処理を行うことが好ましい。また、ポリゴン情報取得部3052から渡されたポリゴンが最初から凸包である場合には、凸包分割部3053は、そのポリゴンに関して、凸包ポリゴンへの分割の処理を省略(スキップ)してもよい。凸包分割部3053による分割の例については、後で
図11および
図12を参照しながら説明する。
【0089】
後で説明する凸包IPM生成部3054は、凸包ポリゴンが持つ辺ごとについてのIPMを求め、それらすべての辺のIPMについての積集合操作(詳しくは、後述する)を行うことによって凸包ポリゴンのIPMを生成する。これが可能であるためには、凸包IPM生成部3054が処理対象とするポリゴンが凸包ポリゴンであることが必要である。仮に処理対象とするポリゴンが180度以上の内角を1つ以上含む場合には、上記の積集合操作をうまく適用することができない。しかしながら、凸包分割部3053が任意の形状のポリゴンを分割することによって、凸包ポリゴンのみからなる集合を、処理対象として凸包IPM生成部3054に渡す。これにより、本実施形態のポリゴンIoU算出装置3051は、正しくIoUの近似値を算出することができる。
【0090】
凸包IPM生成部3054は、凸包分割部3053によって分割された結果である凸包ポリゴンのそれぞれについて内包判定を行い、それぞれの凸包ポリゴンのIPM(Inner Pixel Map,内側ピクセルマップ)を生成する。内包判定とは、多数のピクセルから成る画像上に凸包ポリゴンが描写されているときに、その画像を構成する各ピクセルが、その凸包ポリゴンの内側あるいは外側のいずれに存在するかを判定する処理である。また、IPMとは、画像内のそれぞれのピクセルが特定のポリゴンの内側に存在するか否かを数値情報として表すデータである。本実施形態における凸包IPM生成部3054が生成する凸包IPMは、画像内の各ピクセルが、与えられた凸包ポリゴンの内側に存在しているか否かを表す数値をマップとして表わしたデータである。つまり、凸包IPM生成部3054が生成するIPMは、内包判定の結果に基づく値を各ピクセルに割り当てて成るマップである。なお、IPMにおけるピクセル値は、0.0以上且つ1.0以下である。凸包ポリゴンの内側に存在すると判定されたピクセルには、凸包IPMのピクセル値として、1.0に近い値が割り当てられる。また、凸包ポリゴンの外側に存在すると判定されたピクセルには、凸包IPMのピクセル値として、0.0に近い値が割り当てられる。ニューラルネットワークの学習においてこのIPMを利用できるようにするため、IPMのピクセル値を1または0の離散値を単純に割り当てるのではなく、微分可能な関数の値(連続値)をIPMのピクセル値とする。
【0091】
つまり、凸包IPM生成部3054は、凸包分割部3053による分割された後の凸包ポリゴンのそれぞれについて画像内の各々のピクセルが当該凸包ポリゴンの内側に存在するか否かを数値として表わす内側ピクセルマップ(IPM)を生成する。凸包IPM生成部3054は、「凸包内側ピクセルマップ生成部」とも呼ばれる。凸包IPM生成部3054が1つの凸包ポリゴンのIPMを作成する処理の詳細については、後で
図13から
図18までを参照しながら説明する。
【0092】
凸包IPM生成部3054は、より具体的な処理として、処理対象とする前記凸包ポリゴンが持つ辺のそれぞれについて、前記画像内の各々のピクセルが、当該辺およびその辺の延長線を基準として、当該凸包ポリゴンの内側の所定のピクセルと同じ側にあるか反対の側にあるかを数値として表わす当該辺についての内側ピクセルマップ(IPM)を生成し、前記凸包ポリゴンが持つすべての辺についての前記内側ピクセルマップ(IPM)を合成することによって、前記画像内の各々のピクセルが当該凸包ポリゴンの内側に存在するか否かを数値として表わす内側ピクセルマップ(IPM)を生成するものであってよい。
【0093】
さらに、凸包IPM生成部3054は、より具体的な処理として、前記凸包ポリゴンが持つすべての辺についての前記内側ピクセルマップを合成する際に、それぞれの辺についての内側ピクセルマップ前記ピクセルごとの値についての最小値を選択(後述する積集合操作)することにより、前記ピクセルが当該凸包ポリゴンの内側に存在するか否かを数値として表わす内側ピクセルマップ(IPM)を生成するものであってよい。
【0094】
ポリゴンIPM生成部3055は、凸包分割部3053によって分割されたそれぞれの凸包ポリゴンのIPMを合成することによって、凸包分割部3053による分割の前のポリゴンのIPMを生成する。つまり、ポリゴンIPM生成部3055は、凸包IPM生成部3054が生成した複数の凸包ポリゴンのIPM(凸包IPMと呼ぶ)を合成することによって、分割前のポリゴンのIPM(ポリゴンIPMと呼ぶ)を生成する。
【0095】
つまり、ポリゴンIPM生成部3055は、前記の凸包IPM生成部3054(凸包内側ピクセルマップ生成部)が生成した分割後の前記凸包ポリゴンの内側ピクセルマップ(IPM)を合成することによって、前記の凸包分割部3053によって分割される前の前記ポリゴンについて前記画像内の各々のピクセルが当該分割される前のポリゴンの内側に存在するか否かを数値として表わす内側ピクセルマップ(IPM)を生成する。ポリゴンIPM生成部3055は、「ポリゴン内側ピクセルマップ生成部」とも呼ばれる。ポリゴンIPM生成部3055がポリゴンIPMを生成する方法の詳細については、後で詳細に説明する。
【0096】
ポリゴンIoU近似値計算部3056は、2つのポリゴンのIoUを算出する。ポリゴンIoU近似値計算部3056は、厳密にいうと、2つのポリゴンのIoUの近似値を算出する。上記のポリゴンIPM生成部3055はそれら2つのポリゴンのそれぞれのIPM(ポリゴンIPM)を生成している。ポリゴンIoU近似値計算部3056は、ポリゴンIPM生成部3055が生成したそれら2つのポリゴンIPMを基に、2つのポリゴンのユニオンポリゴン(union polygon,和集合ポリゴン)に相当するIPMと、2つのポリゴンのインターセクションポリゴン(intersection polygon,積集合ポリゴン)に相当するIPMとを求める。ポリゴンIoU近似値計算部3056は、上記のインターセクションポリゴンのIPMおよびユニオンポリゴンのIPMを用いて、それらの2つのポリゴンのIoUの近似値を計算する。
【0097】
つまり、ポリゴンIoU近似値計算部3056は、前記画像内の与えられる2つのポリゴンのそれぞれについて前記のポリゴンIPM生成部3055(ポリゴン内側ピクセルマップ生成部)が生成した前記内側ピクセルマップ(IPM)に基づいて、当該2つのポリゴンの積集合領域について前記画像内の各々のピクセルが当該積集合領域の内側に存在するか否かを数値として表わす内側ピクセルマップ(IPM)と、当該2つのポリゴンの和集合領域について前記画像内の各々のピクセルが当該和集合領域の内側に存在するか否かを数値として表わす内側ピクセルマップ(IPM)と、を生成し、当該積集合領域についての内側ピクセルマップ(IPM)を基に当該積集合領域の面積の近似値を求め、当該和集合領域についての内側ピクセルマップ(IPM)を基に当該和集合領域の面積の近似値を求め、前記積集合領域の面積の近似値を前記和集合領域の面積の近似値で除することにより、与えられた前記2つのポリゴンについてのIoU(Intersection over Union)値の近似値を算出する。ポリゴンIoU近似値計算部3056は、単に「IoU近似値計算部」とも呼ばれる。なお、ポリゴンIoU近似値計算部3056がポリゴンIoUの近似値を算出する方法の詳細については、後で詳細に説明する。
【0098】
また、上記構成を有するポリゴンIoU算出装置3051の特徴として、次の事項が挙げられる。即ち、前記の凸包IPM生成部3054(凸包内側ピクセルマップ生成部)が前記凸包ポリゴンについての内側ピクセルマップを生成する計算処理過程と、ポリゴンIPM生成部3055(ポリゴン内側ピクセルマップ生成部)が分割後の前記凸包ポリゴンについての内側ピクセルマップ(IPM)に基づいて分割前の前記ポリゴンについての内側ピクセルマップ(IPM)を生成する計算処理過程と、前記のポリゴンIoU近似値計算部3056(IoU近似値計算部)が前記2つのポリゴンのそれぞれについての内側ピクセルマップに基づいて前記IoU値の近似値を算出するまでの計算処理過程とは、画像領域内において連続且つ微分可能な関数と、引数のうちの最大値を返す最大値関数と、引数のうちの最小値を返す最小値関数との範囲内のみで計算される。これにより、IoU値の近似値に基づいて算出される誤差を利用して、モデルの学習を行うことができる。
【0099】
[ポリゴンIoU算出装置3051内での処理の詳細]
次に、ポリゴンIoU算出装置3051の各部における処理のさらなる詳細について説明する。
【0100】
[与えられたポリゴンを複数の凸包ポリゴンに分割する方法]
図11および
図12は、与えられた2個のポリゴンP
AおよびP
Bのそれぞれを、凸包分割部3053が複数の凸包ポリゴンに分割する例を示す概略図である。
図11において、(A)は分割前のポリゴンP
Aを示す。ポリゴンP
Aは、8角形であるが、凸8角形ではない。また、
図11の(B)は、上記のポリゴンP
Aを複数の凸包ポリゴンに分割した例の一つである。具体的には、ポリゴンP
Aは、ポリゴンP
A1とポリゴンP
A2とポリゴンP
A3との3つの凸包ポリゴン(四角形)に分割され得る。また、
図12において、(A)は分割前のポリゴンP
Bを示す。ポリゴンP
Bは、5角形であるが、凸5角形ではない。また、
図12の(B)は、上記のポリゴンP
Bを複数の凸包ポリゴンに分割した例の一つである。具体的には、ポリゴンP
Bは、ポリゴンP
B1とポリゴンP
B2との2つの凸包ポリゴンに分割され得る。なお、ポリゴンP
B1は凸包四角形であり、ポリゴンP
B2は凸包三角形である。凸包分割部3053は、分割した結果として得られる凸包ポリゴンの情報(例えば、各凸包ポリゴンのすべての頂点の座標の情報等)を、凸包IPM生成部3054に渡す。
【0101】
[凸包IPMを生成する方法]
次に
図13から
図18までを参照しながら、凸包IPM生成部3054が凸包IPMを生成する方法の詳細について説明する。
【0102】
図13は、凸包IPM生成部3054が処理の対象とする凸包ポリゴンの一例であるポリゴンP
A2を示す概略図である。
図13に示すポリゴンP
A2は、
図11においてポリゴンP
Aを分割することによって得られた凸包ポリゴンの一つである。この凸包ポリゴンP
A2を構成する4本の辺(直線、線分)を、L
1,L
2,L
3,およびL
4とする。
【0103】
図14は、
図13に示した凸包ポリゴンP
A2のIPMを生成するための、凸包IPM生成部3054による処理の過程を説明するための概略図である。凸包IPM生成部3054は、凸包ポリゴンP
A2のIPMを生成するために、まず凸包ポリゴンP
A2が持つそれぞれの辺についてのIPMを求める。
図14は、例として辺(直線)L
2についてのIPMを求める過程を示している。
【0104】
図14において、画像3501は、凸包ポリゴンP
A2を含む。辺(直線)L
2に着目するとき、直線L
2Pは、辺(直線)L
2に並行で、且つ凸包ポリゴンP
A2の内部に存在する所定の点(ピクセル)を通る直線である。こでの「所定の点」とは、例えば、凸包ポリゴンP
A2の中心の点のピクセルであってよい。例えば、凸包ポリゴンP
A2のすべての頂点の座標の平均の位置を凸包ポリゴンP
A2の中心の点とすることができる。なお、凸包ポリゴンP
A2の中心点を通る直線L
2Pを「中心線」と呼んでもよい。ピクセルP
ij(iおよびjは、それぞれ、画像3501内における水平方向および垂直方向の座標値)におけるIPM値を求めるために、ピクセル(点)P
ijから上記の直線L
2Pにおろした垂線の足をピクセル(点)P
0とする。d
ijsは、ピクセル(点)P
ijからピクセル(点)P
0までの距離である。また、d
sは、辺(直線)L
2と直線L
2Pとの間の距離である。このとき、凸包IPM生成部3054は、画像3501内のピクセルP
ijにおけるIPM値IPM
ijを、下の式(2)によって算出する。なお、式(2)は、第1実施形態において用いた式(1)と同様の意味を持つ式である。なお、式(2)におけるkは、ハイパーパラメーターである。
【0105】
【0106】
凸包IPM生成部3054が算出するピクセルP
ijのIPM値IPM
ijは、次のような値である。即ち、IPM
ijは、0.0より大きく、且つ1.0より小さい値である。また、ピクセルP
ijが、着目している直線(
図14においては直線L
2)に関して、凸包ポリゴン(
図14においては凸包ポリゴンP
A2)内の所定の点(例えば中心点)と同じ側にある場合には、IPM
ijは1.0に近い値を取る。ピクセルP
ijが、着目している直線(
図14においては直線L
2)に関して、凸包ポリゴン(
図14においては凸包ポリゴンP
A2)内の所定の点(例えば中心点)と反対の側にある場合には、IPM
ijは0.0に近い値を取る。なお、画像3501内の全域において、IPM
ijの値は、離散的に変化するものではなく連続的に変化する。画像3501内の全域において、IPM
ijの値は、微分可能である。また、IPM
ijの値は、着目している直線(
図14においては直線L
2)の近傍において、0.0に近い値と1.0に近い値との間で、急激に変化する。この変化の急激さの度合いは、式(2)内のkの値に依る。つまり、IPM
ijの値は、着目している直線(
図14においては直線L
2)に関して、凸包ポリゴン(
図14においては凸包ポリゴンP
A2)内の前記所定の点と同じ側においては1.0に近い側であり、前記所定の点と反対の側においては0.0に近い側である。
【0107】
kの値が高ければ高い程、着目している辺の付近におけるIPMijの値は急激に変化する。言い換えれば、kの値が高ければ高い程、ポリゴンIoU算出装置3051はより正確なIoU値を求めることができる。しかしながら、kの値を高くしすぎると、IPMijの値の着目している辺の近傍における微分値が高くなりすぎ、場合によっては機械学習の過程において演算のオーバーフローを起こしてしまう可能性がある。なお、演算のオーバーフローが起こるか否かは、演算環境(演算素子のビット長等)にも依存する。本願発明者らの実験結果によると、一般的に広く用いられる32ビット幅の演算環境において計算を行う場合、30≦k≦50の範囲のkを用いることにより、ポリゴンIoU算出装置3051は、演算におけるオーバーフローを起こさず、且つより正確なIoUを求めることができる。
【0108】
凸包IPM生成部3054は、凸包ポリゴン(
図14においては凸包ポリゴンP
A2)が有する各辺について、上の式(2)を用いてIPM
ijの値を算出する。凸包IPM生成部3054が算出するIPM
ijの値は、凸包ポリゴンに関して各ピクセルの内包度合いを判定するための基となる値である。
【0109】
図15,
図16,
図17,および
図18のそれぞれは、
図13に示した凸包ポリゴンP
A2の辺L
1,L
2,L
3,およびL
4について凸包IPM生成部3054が求めたIPMを表す概略図である。辺L
1,L
2,L
3,およびL
4のそれぞれについてのピクセルP
ijのIPM値を、P
ij,L1,P
ij,L2,P
ij,L3,P
ij,L4と表すこととする。
図15において、辺L
1およびその延長線の上側のハッチングした領域において、IPM
ij,L1の値は1.0に近い。辺L
1およびその延長線の下側のハッチングしていない領域において、IPM
ij,L1の値は0.0に近い。
図16において、辺L
2およびその延長線の右上側のハッチングした領域において、IPM
ij,L2の値は1.0に近い。辺L
2およびその延長線の左下側のハッチングしていない領域において、IPM
ij,L2の値は0.0に近い。
図17において、辺L
3およびその延長線の下側のハッチングした領域において、IPM
ij,L3の値は1.0に近い。辺L
3およびその延長線の上側のハッチングしていない領域において、IPM
ij,L3の値は0.0に近い。
図18において、辺L
4およびその延長線の左上側のハッチングした領域において、IPM
ij,L4の値は1.0に近い。辺L
4およびその延長線の右下側のハッチングしていない領域において、IPM
ij,L4の値は0.0に近い。なお、画像3501内の全領域において、IPM
ij,L1,IPM
ij,L2,IPM
ij,L3,およびIPM
ij,L4のそれぞれの値は連続であり、且つ微分可能である。
【0110】
凸包IPM生成部3054は、凸包ポリゴンの各辺について求めたIPM値に基づき、画像3501内のピクセルPijの、凸包ポリゴンについてのIPM値であるIPMijを求める。対象とする凸包ポリゴンが持つ辺を一般的にL1,L2,・・・,LM(Mはその凸包ポリゴンの辺の数)としたとき、凸包IPM生成部3054は、IPMij,L1,IPMij,L2,・・・,IPMij,LMの積集合操作(intersection operation)を行うことにより、当該凸包ポリゴンのIPM値であるIPMijを求める。
【0111】
ここで、積集合操作とは、大半の領域において0.0に近い値または1.0に近い値のいずれかを持つIPMij,L1,IPMij,L2,・・・,IPMij,LMに関して、IPMij,L1,IPMij,L2,・・・,IPMij,LMのすべてが1.0に近い値である場合に操作結果の値として1.0に近い値を返し、その他の場合に操作結果の値として0.0に近い値を返す操作である。
【0112】
凸包IPM生成部3054は、例えば、下の式(3)の計算を行うことによって積集合操作を実現する。式(3)において、minimum()は、最小値を返す関数である。
【0113】
【0114】
あるいは、凸包IPM生成部3054は、例えば、第1実施形態の場合と同様に乗算を用いてもよい。つまり、凸包IPM生成部3054は、下の式(4)の計算を行うことによって積集合操作を実現してもよい。
【0115】
【0116】
なお、凸包IPM生成部3054は、式(3)あるいは式(4)以外の計算過程によって積集合操作を行うようにしてもよい。凸包IPM生成部3054が式(3)を用いて積集合操作を行う場合には、式(4)を用いる場合に比べて、積集合操作のための計算量を少なくすることができる。また、本願発明者らの実験結果によれば、式(3)を用いて積集合操作を行うほうが、式(4)を用いる場合に比べて、より精度の高いIoU値を算出できる。これは、IoU値を求めるための数値の誤差(凸包ポリゴンの内側に存在するピクセルに関してIPM値が1.0から下に乖離する度合いなど)が、複数の乗算を行うことによって増幅されるためであると考えられる。
【0117】
なお、式(3)に示す演算は、画像3501の全領域において微分可能なものではない。しかしながら、微分不可能な領域が画像3501内において局所的に存在していても、
ニューラルネットワーク等のモデルの機械学習には問題がないことが実験によって確認されている。
【0118】
つまり、凸包IPM生成部3054は、凸包ポリゴンの辺ごとに生成したIPMを、積集合操作を行うことによって合成し、凸包ポリゴンのIPMを作成する。凸包IPM生成部3054は、生成した凸包ポリゴンのIPMを、ポリゴンIPM生成部3055に渡す。
【0119】
[凸包ポリゴンIPMを基にポリゴンIPMを生成する方法]
ポリゴンIPM生成部3055は、凸包IPM生成部3054から凸包ポリゴンのIPMを受け取り、それらを合成することによって、凸包分割部3053が分割する前の元のポリゴンのIPMを生成する。具体的には、ポリゴンIPM生成部3055は、分割された結果である各々の凸包ポリゴンのIPMに対して、和集合操作(union operation)を行うことによって、元のポリゴンのIPMを生成する。元のポリゴンPを分割することによって得られたK個の凸包ポリゴンをP1,P2,・・・,PKとする。画像内のピクセルPijにおける凸包ポリゴンP1,P2,・・・,PKのIPM値を、それぞれ、IPMij,P1,IPMij,P2,・・・,IPMij,PKとする。ポリゴンIPM生成部3055は、IPMij,P1,IPMij,P2,・・・,IPMij,PKの和集合操作を行うことによって、元のポリゴンPのIPMijを求める。
【0120】
ここで、和集合操作とは、大半の領域において0.0に近い値または1.0に近い値のいずれかを持つIPMij,P1,IPMij,P2,・・・,IPMij,PKに関して、IPMij,P1,IPMij,P2,・・・,IPMij,PKのすべてが0.0に近い値である場合に操作結果の値として0.0に近い値を返し、その他の場合に操作結果の値として1.0に近い値を返す操作である。
【0121】
ポリゴンIPM生成部3055は、例えば、下の式(5)の計算を行うことによって和集合操作を実現する。式(5)において、maximum()は、最大値を返す関数である。
【0122】
【0123】
あるいは、ポリゴンIPM生成部3055は、算術演算(加算および乗算)を用いて和集合操作を実現してもよい。2つの凸包ポリゴン(例えば、P1とP2)についての和集合操作は、下の式(6)によって実現可能である。
【0124】
【0125】
上記の式(6)を用いて、任意のK(K≧2)について、K個の凸包ポリゴンの和集合演算を行える。つまり、下の式(7)の通りである。
【0126】
【0127】
つまり、ポリゴンIPM生成部3055は、凸包ポリゴンP1とP2について式(6)に基づいて和集合操作を行い、次に和集合ポリゴン(P1∪P2)と凸包ポリゴンP3について同様に和集合操作を行い、・・・、以下同様に続けることによって、最終的に和集合ポリゴン(P1∪P2∪・・・∪PK)についてIPMを得ることができる。この和集合ポリゴン(P1∪P2∪・・・∪PK)は、凸包分割部3053によって分割される前のポリゴンPである。
【0128】
ポリゴンIPM生成部3055は、式(5)を用いる方法、あるいは式(6)および式(7)を用いる方法のいずれか、あるいはその他の方法によって、ポリゴンPについてのIPMを生成できる。なお、式(5)に示す演算は、画像3501の全領域において微分可能なものではない。しかしながら、微分不可能な領域が画像3501内において局所的に存在していても、ニューラルネットワーク等のモデルの機械学習には問題がないことが実験によって確認されている。
【0129】
なお、式(5)を用いる方法のほうが、あるいは式(6)および式(7)を用いる方法よりも、計算量が少なくて済むこと、および最終的に算出されるIoUの近似値の精度がよいことが、実験によって確認されている。
【0130】
つまり、ポリゴンIPM生成部3055は、凸包分割部3053によって分割された結果の凸包ポリゴンそれぞれのIPMに基づいて、和集合操作を行うことにより、分割前のポリゴンのIPMを求めることができる。ポリゴンPAとポリゴンPBとの間の誤差を求める場合には、ポリゴンIPM生成部3055は、ポリゴンPAとポリゴンPBとのそれぞれについてIPMを求め、それら両方のポリゴンのIPMをポリゴンIoU近似値計算部3056に渡す。
【0131】
[2つのポリゴン間の誤差としてポリゴンIoUの近似値を算出する方法]
ポリゴンIoU近似値計算部3056は、誤差を算出する対象である2つのポリゴンそれぞれのIPMをポリゴンIPM生成部3055から受け取る。ポリゴンIoU近似値計算部3056は、これら2つのポリゴンのIoUを計算するために、まず、これら2つのポリゴンの和集合ポリゴン(union)のIPMおよび積集合ポリゴン(intersection)のIPMを求める。2つのポリゴンの和集合ポリゴンのIPMの求め方については、既に、ポリゴンIPM生成部3055の処理の一部として説明した通りである。また、2つのポリゴンの積集合ポリゴンのIPMの求め方については、凸包IPM生成部3054の処理の一部として説明した通りである。具体的には、2つのポリゴンの和集合ポリゴンのIPMは、式(5)あるいは式(6)等を用いて算出可能である。また、2つのポリゴンの積集合ポリゴンのIPMは、式(3)あるいは式(4)等を用いて算出可能である。
【0132】
IPMは、各ピクセルについてのIPM値の情報を持つものである。したがって、ポリゴンIoU近似値計算部3056は、2つのポリゴンの和集合ポリゴンの面積(の近似値)を、当該2つのポリゴンの和集合ポリゴンのIPMが持つ各ピクセルの値の総和として算出する。また、ポリゴンIoU近似値計算部3056は、2つのポリゴンの積集合ポリゴンの面積(の近似値)を、当該2つのポリゴンの積集合ポリゴンのIPMが持つ各ピクセルの値の総和として算出する。ここで算出される面積の単位は、ピクセル数である。そして、ポリゴンIoU近似値計算部3056は、下の式(8)によって与えられた2つのピクセルに関するIoU近似値を算出する。
【0133】
【0134】
[IoUの近似値を求める処理手順]
図19は、ポリゴンIoU算出装置3051が、与えられた2つのポリゴンのIoUの近似値を求める処理の手順を示すフローチャートである。この処理の前提として、ポリゴンIoU算出装置3051には、第1のポリゴンおよび第2のポリゴンの形状および位置の情報(例えば、すべての頂点の画像上での座標値)が与えられる。ポリゴン情報取得部3052は、これらのポリゴンの情報を取得している。以下ではこのフローチャートに沿って処理手順を説明する。
【0135】
まず、ステップS1において、凸包分割部3053は、第1のポリゴンを凸包ポリゴンに分割する。分割の処理の方法については既に説明した通りである。第1のポリゴンが既に凸包ポリゴンであることが判別できていて分割不要な場合には、与えられた第1の凸包ポリゴンそのものを、本ステップによる分割の結果の凸包ポリゴンとしてよい。
【0136】
次に、ステップS2において、凸包IPM生成部3054は、ステップS1での分割によって得られたそれぞれの凸包ポリゴンのIPMを求める。凸包IPM生成部3054が凸包ポリゴンのIPMを生成する方法については、既に説明した通りである。
【0137】
次に、ステップS3において、ポリゴンIPM生成部3055は、ステップS2で得られた凸包ポリゴンのIPMを合成することによって、分割前の元のポリゴン(第1のポリゴン)のIPMを求める。既に説明したように、ポリゴンIPM生成部3055は、和集合操作を用いることによって、複数の凸包ポリゴンのIPMの合成を行える。
【0138】
次に、ステップS4において、凸包分割部3053は、第2のポリゴンを凸包ポリゴンに分割する。第2のポリゴンが既に凸包ポリゴンであることが判別できていて分割不要な場合には、与えられた第2の凸包ポリゴンそのものを、本ステップによる分割の結果の凸包ポリゴンとしてよい。
【0139】
次に、ステップS5において、凸包IPM生成部3054は、ステップS4での分割によって得られたそれぞれの凸包ポリゴンのIPMを求める。
【0140】
次に、ステップS6において、ポリゴンIPM生成部3055は、ステップS5で得られた凸包ポリゴンのIPMを合成することによって、分割前の元のポリゴン(第2のポリゴン)のIPMを求める。
【0141】
次に、ステップS7において、ポリゴンIoU近似値計算部3056は、ステップS3で得られた第1のポリゴンのIPMと、ステップS6で得られた第2のポリゴンのIPMとを用いて、第1のポリゴンと第2のポリゴンとの和集合の領域のIPMを求める。和集合の領域のIPMを生成するために、ポリゴンIoU近似値計算部3056は、前述の和集合操作を用いる。
【0142】
次に、ステップS8において、ポリゴンIoU近似値計算部3056は、ステップS3で得られた第1のポリゴンのIPMと、ステップS6で得られた第2のポリゴンのIPMとを用いて、第1のポリゴンと第2のポリゴンとの積集合の領域のIPMを求める。積集合の領域のIPMを生成するために、ポリゴンIoU近似値計算部3056は、前述の積集合操作を用いる。
【0143】
次に、ステップS9において、ポリゴンIoU近似値計算部3056は、ステップS8で求められた積集合領域のIPMのピクセル値の総和(全ピクセルの総和)を、ステップS7で求められた和集合領域のIPMのピクセル値の総和(全ピクセルの総和)で、除算する。積集合領域のIPMのピクセル値の総和は、積集合領域の面積の近似値である。また、和集合領域のIPMのピクセル値の総和は、和集合領域の面積の近似値である。そして、本ステップでの上記の除算の結果が、与えられた2つのポリゴンのIoUの近似値である。
【0144】
[コンピュータープログラムを用いた実施]
本実施形態のポリゴンIoU算出装置3051の少なくとも一部の機能を、コンピューターとプログラムとを用いて実現することができる。なお、コンピューターとプログラムとを用いた実現については、第1実施形態において
図7を参照しながら説明した通りである。
【0145】
[ニューラルネットワークの学習におけるIoU値の利用]
上記の方法で求めたIoU値(IoU近似値)を、ニューラルネットワークの学習において利用することができる。具体的には、ニューラルネットワークの学習を行う際に、(1-IoU近似値)という誤差関数を用いることにより、ニューラルネットワークの学習を行える。ニューラルネットワークの学習自体は、上記の誤差をニューラルネットワークに逆伝播させる手法を用いて行える。既に説明したように、(1-IoU近似値)という誤差関数は、微分可能な関数、あるいは微分可能ではない(局所的に微分不可の箇所が存在する)がニューラルネットワークの学習には用いることのできる関数である。なお、学習を行う際には、学習データに含まれる入力データに基づいて推定された仮説ポリゴンと、学習データにおいて当該入力データに関連付けられている正解データとしての正解ポリゴンと、の間の誤差を算出する。
【0146】
本実施形態の方法で誤差を算出することにより、処理対象とするポリゴンに関して従来技術が持っていた制約を解消あるいは緩和することができる。例えば、本実施形態の方法では、処理対象とするポリゴンの頂点の数についての制約がなくなる(例えば長方形には限定されない)。また、本実施形態の方法では、処理対象とするポリゴンは、凸ポリゴン(凸包ポリゴン)には限定されない。また、本実施形態の方法では、誤差算出の対象となる2つのポリゴンの頂点数が互いに異なっていてもよい。したがって、例えば、4頂点ポリゴンとして正解が与えられるデータセットと、16頂点ポリゴンとして正解が与えられるデータセットとの、両方を正解データとして利用可能でありこれら両者を正解として混在させることもできる。つまり、学習のための正解データを準備する際に頂点数を合わせるための修正を行う等といった追加の作業を必要としない。
【0147】
また、本実施形態の方法で誤差を算出する場合には、学習データを拡張するためにランダムクロップ(random crop)の手法を使うことができるようになる。ランダムクロップは、学習データの量を擬似的に増やす手法であり、学習データに含まれる画像の一部をランダムに切り出すものである。つまり、ランダムクロップを行うことにより、画像の上・下・右・左のいずれか(1つまたは複数)が切り落とされる。ポリゴン形状物体検出タスクにおいて、学習データに含まれる正解画像のランダムクロップを行うと、正解ポリゴンの一部が切り落とされる(クロッピングする線が正解ポリゴンを分断する)場合がある。これによって正解ポリゴンの頂点の数が変わってしまう場合があるため、従来技術を用いる場合にはランダムクロップの使用には制約があった。しかしながら、本実施形態によってポリゴン間の誤差を算出する場合には、ポリゴンの頂点数に制約がないため、ランダムクロップの手法を制限なく利用することができる。つまり、本実施形態により、学習データに含まれるポリゴンの形状のバリエーションを自動的に増やすことができる。
【0148】
[実験による検証]
平面画像内に含まれる文字列領域(ポリゴン)を検出するタスクに関して、ニューラルネットワークの学習の際に本実施形態の誤差算出方法(IoU近似値算出方法)を用いる実験を行った。その結果、従来技術と比較して、約2%(約2ポイント)、文字列領域の検出の精度が向上したことを確認することができた。
【0149】
[第3実施形態]
次に、本発明の第3実施形態について説明する。なお、前実施形態までにおいて既に説明した事項については以下において説明を省略する場合がある。ここでは、本実施形態に特有の事項を中心に説明する。本実施形態は、第2実施形態のポリゴンIoU算出装置3051を利用した領域検出装置の発明である。
【0150】
図20は、本実施形態による領域検出装置の概略機能構成を示すブロック図である。図示するように、領域検出装置2は、画像入力部201と、領域推定部202と、結果出力部203と、学習用データ供給部204と、誤差算出部205とを含んで構成される。本実施形態の領域検出装置2が有する各機能部もまた、例えば、コンピューターと、プログラムとで実現することが可能である。また、各機能部の少なくとも一部の機能を、プログラムではなく専用の電子回路として実現してもよい。
【0151】
本実施形態における画像入力部201と、領域推定部202と、結果出力部203と、学習用データ供給部204とは、それぞれ、第1実施形態(
図1参照)における画像入力部101と、領域推定部102と、結果出力部103と、学習用データ供給部104と、同様の機能を持つものである。ただし本実施形態においては、検出対象の領域は、凸包ポリゴン(凸包多角形)には限定されず、任意のポリゴンであってよい。また、したがって、学習データに含まれる正解領域もまた、凸包ポリゴンには限定されず、任意のポリゴンであってよい。
【0152】
誤差算出部205は、領域検出装置2が学習モードで動作する場合に、領域推定部202が推定結果として出力する領域の図形と、学習用データ供給部204が供給する正解領域の図形との間の誤差を算出する。前述の通り、これらの領域は凸包ポリゴンに限定されるものではない。誤差算出部205が算出した誤差は、誤差逆伝播法により、領域推定部202が持つニューラルネットワークの内部パラメーターの調整(最適化の処理)に用いられる。
【0153】
図20に示すように、誤差算出部205は、内部にポリゴンIoU算出装置3051を備える。このポリゴンIoU算出装置3051については第2実施形態において詳細に説明した通りである。本実施形態では、ポリゴンIoU算出装置3051は、領域推定部202が推定結果として出力する領域の図形(ポリゴン)と、学習用データ供給部204が供給する正解領域の図形(ポリゴン)とについてのIoU(の近似値)を算出する。誤差算出部205は、ポリゴンIoU算出装置3051が算出するIoU(の近似値)を用いて、(1-IoU近似値)を、誤差の値として算出し、出力する。
【0154】
つまり、領域推定部202は、機械学習モデルを内部に備えて、外部から渡される画像を前記機械学習モデルに入力することによって前記画像内において特定の特徴を有する領域を推定する。学習用データ供給部204は、領域推定部202が備える前記機械学習モデルの学習を行うための、学習用画像と当該学習用画像に対応する正解領域との対を供給する。誤差算出部205は、学習用データ供給部204が供給する前記学習用画像に基づいて領域推定部202が推定した結果である推定領域と、前記学習用画像に対応して学習用データ供給部204が供給する前記正解領域と、の誤差を求める。また、前記推定領域に対応する図形および前記正解領域に対応する図形は、いずれも、任意のポリゴンである。また、誤差算出部205は、IoU算出装置3051を備え、IoU算出装置3051が前記推定領域に対応する図形であるポリゴンと、前記正解領域に対応する図形であるポリゴンとについて算出した前記IoU値の近似値、に基づく前記誤差(例えば、1-IoU)を算出する。
【0155】
[コンピュータープログラムを用いた実施]
本実施形態の領域検出装置2の少なくとも一部の機能を、コンピューターとプログラムとを用いて実現することができる。なお、コンピューターとプログラムとを用いた実現については、第1実施形態において
図7を参照しながら説明した通りである。
【0156】
以上説明した本実施形態の構成により、領域検出装置2は、誤差算出部205が算出する誤差の値に基づいて、領域推定部202が内部に持つ機械学習可能なモデル(例えば、ニューラルネットワーク)の学習を行うことができるようになる。つまり、本実施形態による領域検出装置2は、凸包ポリゴンに限定されず、任意の形状のポリゴンとして成る領域の検出を精度よく行うことができる。
【0157】
[第4実施形態]
次に、本発明の第4実施形態について説明する。なお、前実施形態までにおいて既に説明した事項については以下において説明を省略する場合がある。ここでは、本実施形態に特有の事項を中心に説明する。本実施形態は、第2実施形態のポリゴンIoU算出装置3051を利用した画像処理装置の発明である。
【0158】
図21は、本実施形態による画像処理装置の概略機能構成を示すブロック図である。図示するように、画像処理装置3は、画像入力部301と、推定部302と、結果出力部303と、学習用データ供給部304と、誤差算出部305と、を含んで構成される。本実施形態の画像処理装置3が有する各機能部もまた、例えば、コンピューターと、プログラムとで実現することが可能である。また、各機能部の少なくとも一部の機能を、プログラムではなく専用の電子回路として実現してもよい。
【0159】
画像入力部301と、推定部302と、結果出力部303と、学習用データ供給部304と、誤差算出部305との機能は、それぞれ、第3実施形態における画像入力部201と、領域推定部202と、結果出力部203と、学習用データ供給部204と、誤差算出部205との機能と類似である。以下では、第3実施形態と第4実施形態との違いを中心に説明する。
【0160】
第3実施形態の領域検出装置2が特定の特徴を有する領域(一例として文字列の領域)を検出するための装置であったのに対して、本実施形態による画像処理装置3は、領域検出のタスクに限られず、入力される図形に関して任意の推定を行うものである。つまり、本実施形態の推定部302は、特定の特徴を有する領域を検出するタスクに限らず、任意の推定の処理を行う。ただし、推定部302によって推定される結果は、画像内のポリゴンである。特定の特徴を有する領域を検出するタスク以外で、推定部302が実行することのできるタスクは、例えば、入力情報(例えば、テキスト情報や、数値情報や、画像情報や、テキストと数値と画像のうちの2つ以上の複合情報や、その他の一般の情報など)を基にその入力情報が表す条件を満たす図形(ポリゴン)を生成するタスクである。その一例は、地図(地形図)と、制約条件データとしてポリゴンの頂点数とを入力として、その地図に含まれる湖や池などの形状(平面視したときの形状)を指定された頂点数のポリゴンで近似して出力するタスクである。
【0161】
推定部302は、例えばニューラルネット等の機械学習可能なモデルを内部に備えることによって実現される。推定部302が内部に持つパラメーターは、誤差算出部305が算出する誤差に基づいて調整(最適化)可能である。
【0162】
図21に示すように、誤差算出部305は、内部にポリゴンIoU算出装置3051を備える。このポリゴンIoU算出装置3051については第2実施形態において詳細に説明した通りである。本実施形態では、ポリゴンIoU算出装置3051は、推定部302が推定結果として出力する領域の図形(ポリゴン)と、学習用データ供給部304が供給する正解領域の図形(ポリゴン)とについてのIoU(の近似値)を算出する。誤差算出部305は、ポリゴンIoU算出装置3051が算出するIoU(の近似値)を用いて、(1-IoU近似値)を、誤差の値として算出し、出力する。
【0163】
つまり、推定部302は、機械学習モデルを内部に備えて、外部から渡される画像を前記機械学習モデルに入力することによって前記画像内におけるポリゴンを推定した結果として推定ポリゴンを出力する。学習用データ供給部304は、推定部302が備える前記機械学習モデルの学習を行うための、学習用画像と当該学習用画像に対応する正解ポリゴンとの対を供給する。誤差算出部305は、学習用データ供給部304が供給する前記学習用画像に基づいて前記推定部が推定した結果である前記推定ポリゴンと、前記学習用画像に対応して学習用データ供給部304が供給する前記正解ポリゴンと、の誤差を求める。なお、誤差算出部305は、IoU算出装置3051を備え、IoU算出装置3051が前記推定ポリゴンと前記正解ポリゴンとについて算出した前記IoU値の近似値、に基づく前記誤差(例えば、1-IoU)を算出する。
【0164】
[コンピュータープログラムを用いた実施]
本実施形態の画像処理装置3の少なくとも一部の機能を、コンピューターとプログラムとを用いて実現することができる。なお、コンピューターとプログラムとを用いた実現については、第1実施形態において
図7を参照しながら説明した通りである。
【0165】
以上説明した本実施形態の構成により、画像処理装置3は、誤差算出部305が算出する誤差の値に基づいて、推定部302が内部に持つ機械学習可能なモデル(例えば、ニューラルネットワーク)の学習を行うことができるようになる。つまり、本実施形態による画像処理装置3は、凸包ポリゴンに限定されず、任意の形状のポリゴンを推定結果とするタスクを、精度よく行うことができる。
【0166】
以上説明した実施形態の少なくともいずれかによれば、与えられる2つのポリゴンに関して、IoUあるいはその近似値を算出することが可能になる。且つ、そのIoUあるいは近似値は、画像の領域の大部分に関して微分可能な関数の値として算出される。IoUあるいは近似値を算出する関数について、局所的に微分不可能な箇所が画像内に存在しても、最大値関数(maximum関数)あるいは最小値関数(minimum関数)の特性により、そのような誤差を用いてニューラルネットワーク等の学習を問題なく行なうことができる。つまり、所定のポリゴン(例えば、計上に関する限定のない任意のポリゴン。複雑な形状のポリゴンであってもよい。)を正解とするような機械学習モデルの学習を、行うことができる。これにより、画像内の領域の検出や、画像に関するその他の処理を高精度で行うことが可能となる。
【産業上の利用可能性】
【0167】
本発明は、例えば、画像処理を行うために利用することができる。具体的には、画像処理のためのモデルの機械学習に本発明を利用することができる。但し、本発明の利用範囲はここに例示したものには限られない。
【符号の説明】
【0168】
1,2 領域検出装置
3 画像処理装置
101 画像入力部
102 領域推定部
103 結果出力部
104 学習用データ供給部
105 誤差算出部
205 誤差算出部
301 画像入力部
302 推定部
303 結果出力部
304 学習用データ供給部
305 誤差算出部
901 中央処理装置
902 RAM
903 入出力ポート
904,905 入出力デバイス
906 バス
1051 仮想ピクセル生成部
1052 内包判定部
1053 内包判定統合部
1054 誤差関数値計算部
3051 ポリゴンIoU算出装置(IoU算出装置)
3052 ポリゴン情報取得部
3053 凸包分割部
3054 凸包IPM生成部(凸包内側ピクセルマップ生成部)
3055 ポリゴンIPM生成部(ポリゴン内側ピクセルマップ生成部)
3056 ポリゴンIoU近似値計算部(IoU近似値計算部)