(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-07-07
(45)【発行日】2025-07-15
(54)【発明の名称】出力装置、出力方法およびプログラム
(51)【国際特許分類】
G06T 7/30 20170101AFI20250708BHJP
G06T 7/00 20170101ALI20250708BHJP
【FI】
G06T7/30
G06T7/00 350C
(21)【出願番号】P 2024510299
(86)(22)【出願日】2023-02-14
(86)【国際出願番号】 JP2023004934
(87)【国際公開番号】W WO2024171281
(87)【国際公開日】2024-08-22
【審査請求日】2024-02-19
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100139066
【氏名又は名称】伊藤 健太郎
(72)【発明者】
【氏名】蔡 永男
【審査官】橘 高志
(56)【参考文献】
【文献】米国特許第11481683(US,B1)
【文献】米国特許出願公開第2020/0336656(US,A1)
【文献】特開2020-027405(JP,A)
【文献】中国特許出願公開第112597887(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/30
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
検出対象が撮影された画像の入力を受け付ける受付部と、
前記画像を学習モデルに入力することで、
バウンディングボックスと前記検出対象の種別と前記検出対象の射影変換に関連する情報を判定する判定部と、
出力部と、
を有
し、
前記学習モデルは、入力された前記画像に写る物体の領域候補を抽出する第1ネットワークと、前記物体の領域候補から前記検出対象の前記射影変換に関連する情報を出力する第2ネットワークとを含むニューラルネットワークであり、
前記ニューラルネットワークは、さらに、前記第1ネットワークに接続され、前記物体の領域候補から前記検出対象を囲む前記バウンディングボックスを判定する第3ネットワークと、前記第1ネットワークに接続され、前記物体の領域候補から前記検出対象の種別を判定する第4ネットワークと、を含み、
前記判定部は、前記画像を前記ニューラルネットワークに入力することで、前記バウンディングボックスと前記検出対象の種別と前記射影変換に関連する情報とを判定し、
前記出力部は、前記判定部で判定された、前記バウンディングボックスと前記検出対象の種別と前記射影変換に関連する情報とを出力する、
出力装置。
【請求項2】
前記ニューラルネットワークは、前記画像を前記第1ネットワークに入力すると、前記第1ネットワークに接続された前記第2ネットワークから、前記射影変換に関する情報として、射影変換前の前記検出対象に適用されたと推定されるホモグラフィ行列の成分を出力する、
請求項
1に記載の出力装置。
【請求項3】
前記第2ネットワークは、回転に関するホモグラフィ行列の成分を出力するネットワークと、スケール変換に関するホモグラフィ行列の成分を出力するネットワークと、せん断に関するホモグラフィ行列の成分を出力するネットワークとのうち少なくとも1以上を含み、
前記ニューラルネットワークは、前記画像を前記第1ネットワークに入力すると、前記第1ネットワークに接続された前記第2ネットワークから、前記射影変換に関する情報として、射影変換前の前記検出対象に適用されたと推定される、回転、スケール変換及びせん断のうち少なくとも1以上に関するホモグラフィ行列の成分を出力する、
請求項
1に記載の出力装置。
【請求項4】
前記ニューラルネットワークは、前記画像を前記第1ネットワークに入力すると、前記第2ネットワークから、前記射影変換に関する情報として、前記射影変換された後の前記検出対象に存在する複数の特徴点の座標であって所定の基準点からの相対座標を出力する、
請求項
1に記載の出力装置。
【請求項5】
前記ニューラルネットワークは、前記第1ネットワークに接続され、前記物体の領域候補から前記検出対象を囲むバウンディングボックスを判定する第3ネットワークと、前記第1ネットワークに接続され、前記物体の領域候補から前記検出対象の種別を判定する第4ネットワークと、を含み、
前記第2ネットワークは、前記第3ネットワークに接続され、
前記判定部は、前記画像を前記ニューラルネットワークに入力することで、前記バウンディングボックスと前記検出対象の種別とを判定し、
前記出力部は、前記判定部で判定された、前記バウンディングボックスと前記検出対象の種別とを出力する、
請求項
4に記載の出力装置。
【請求項6】
検出対象が撮影された画像と前記検出対象の射影変換に関連する情報とを対応づけた教師データを用いて前記学習モデルを学習させる、学習部、を有する、
請求項1に記載の出力装置。
【請求項7】
前記判定部は、前記画像を入力することで、前記検出対象を囲むバウンディングボックスと前記検出対象の種別とを判定し、
前記出力部は、前記判定部で判定された、前記バウンディングボックスと前記検出対象の種別とを出力する、
請求項1に記載の出力装置。
【請求項8】
検出対象が撮影された画像の入力を受け付けるステップと、
前記画像を学習モデルに入力することで、
バウンディングボックスと前記検出対象の種別と前記検出対象の射影変換に関連する情報を判定するステップと、
出力するステップと、
を含
み、
前記学習モデルは、入力された前記画像に写る物体の領域候補を抽出する第1ネットワークと、前記物体の領域候補から前記検出対象の前記射影変換に関連する情報を出力する第2ネットワークとを含むニューラルネットワークであり、
前記ニューラルネットワークは、さらに、前記第1ネットワークに接続され、前記物体の領域候補から前記検出対象を囲む前記バウンディングボックスを判定する第3ネットワークと、前記第1ネットワークに接続され、前記物体の領域候補から前記検出対象の種別を判定する第4ネットワークと、を含み、
前記判定するステップは、前記画像を前記ニューラルネットワークに入力することで、前記バウンディングボックスと前記検出対象の種別と前記射影変換に関連する情報とを判定し、
前記出力するステップは、前記判定するステップで判定された、前記バウンディングボックスと前記検出対象の種別と前記射影変換に関連する情報とを出力する、
出力装置が行う出力方法。
【請求項9】
コンピュータに、
検出対象が撮影された画像の入力を受け付けるステップと、
前記画像を学習モデルに入力することで、
バウンディングボックスと前記検出対象の種別と前記検出対象の射影変換に関連する情報を判定するステップと、
出力するステップと、
を実行させ
、
前記学習モデルは、入力された前記画像に写る物体の領域候補を抽出する第1ネットワークと、前記物体の領域候補から前記検出対象の前記射影変換に関連する情報を出力する第2ネットワークとを含むニューラルネットワークであり、
前記ニューラルネットワークは、さらに、前記第1ネットワークに接続され、前記物体の領域候補から前記検出対象を囲む前記バウンディングボックスを判定する第3ネットワークと、前記第1ネットワークに接続され、前記物体の領域候補から前記検出対象の種別を判定する第4ネットワークと、を含み、
前記判定するステップは、前記画像を前記ニューラルネットワークに入力することで、前記バウンディングボックスと前記検出対象の種別と前記射影変換に関連する情報とを判定し、
前記出力するステップは、前記判定するステップで判定された、前記バウンディングボックスと前記検出対象の種別と前記射影変換に関連する情報とを出力する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、出力装置、出力方法およびプログラムに関する。
【背景技術】
【0002】
2つの画像から特徴点を抽出し、抽出した特徴点をマッチングさせることでホモグラフィ行列を計算可能であることが知られている。例えば、特許文献1には、二つの画像から特徴点ペアを抽出し、抽出した特徴点を用いてホモグラフィ行列を算出する画像処理装置が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば、撮影された画像に写っている検出対象が変形しているのか否かを調べるために、検出対象が写っている画像から検出対象の特徴点を抽出し、抽出した特徴点と、正しい形状である検出対象の特徴点とを比較することで、検出対象の変形の有無を検出することが考えられる。しかしながら、特許文献1に記載された技術のように、画像から特徴点を抽出する場合、画像の解像度が低い場合やノイズが多い画像である場合、特徴点のマッチングに失敗してしまい、変形の有無を適切に認識することができない可能性がある。
【0005】
そこで、本開示は、撮影された画像に写っている検出対象が変形しているのか否かを、より適切に判定することを可能にする出力装置、出力方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様に係る出力装置は、検出対象が撮影された画像の入力を受け付ける受付部と、前記画像を学習モデルに入力することで、前記検出対象の射影変換に関連する情報を判定する判定部と、前記判定部で判定された前記射影変換に関連する情報を出力する出力部と、を有する。
【発明の効果】
【0007】
本開示によれば、撮影された画像に写っている検出対象が変形しているのか否かを、より適切に判定することを可能にする出力装置、出力方法およびプログラムを提供することができる。
【図面の簡単な説明】
【0008】
【
図1】本実施形態に係る画像判定システムの一例を示す図である。
【
図3】情報処理装置のハードウェア構成例を示す図である。
【
図4】情報処理装置の機能ブロック構成例を示す図である。
【
図6】情報処理装置が学習モデルを学習させる際の処理手順の概要を示すフローチャートである。
【
図7】情報処理装置が、画像から射影変換情報を判定する際の処理手順の概要を示すフローチャートである。
【
図10】射影変換の4つのパターンを示す図である。
【
図13】射影変換後の特徴点の一例を示す図である。
【発明を実施するための形態】
【0009】
添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【0010】
<システム構成>
図1は、本実施形態に係る画像判定システムの一例を示す図である。画像判定システム1は、情報処理装置10と端末20とを含む。情報処理装置10と端末20とは、無線又は有線の通信ネットワークNを介して接続され、相互に通信を行うことができる。
【0011】
情報処理装置10は、画像に写っている検出対象が、当該検出対象の元の形状と比較してどのように射影変換されているのかを示す、射影変換(ホモグラフィ変換)に関連する情報を出力する装置である。検出対象は、予め定められた形状を有するものであり、例えば、ロゴ、マーク、シンボル、アイコン、記号、テキスト等が含まれる。検出対象の元の形状は、検出対象の正しい形状と呼んでもよい。以下の説明では、検出対象はロゴである場合を例に説明するが、本実施形態がこれに限定されるものではない。
【0012】
射影変換に関連する情報は、例えば、射影変換の方法を示す情報、若しくは、検出対象の形状が射影変換されているか否かを示す情報であってもよい。また、射影変換の方法を示す情報は、例えば、ホモグラフィ行列(射影変換行列)における各成分の値、射影変換の方法(例えば画像を時計方向に30度回転する等)を示す情報、若しくは、検出対象における複数の特徴点の座標を示す情報であってもよい。
【0013】
情報処理装置10は、1又は複数の物理的なサーバ等から構成されていてもよいし、ハイパーバイザー(hypervisor)上で動作する仮想的なサーバを用いて構成されていてもよいし、クラウドサーバを用いて構成されていてもよい。
【0014】
端末20は、画像判定システムを利用するユーザが操作する端末であり、例えば、パーソナルコンピュータ(PC)、ノートPC、スマートフォン、タブレット端末、携帯電話機等である。端末20の画面には、情報処理装置10から出力される各種のデータが表示される。また、ユーザは、端末20を介して情報処理装置10を操作することができる。
【0015】
情報処理装置10は、検出対象が写っている画像を入力すると、射影変換に関する情報を出力するように学習された学習モデルを用いて、射影変換に関する情報を判定する。
【0016】
図2は、ロゴの射影変換例を示す図である。ロゴL1は、ロゴの正しい形状を示している。ロゴL2は、ロゴL1をx軸方向に縮小した状態を示す。ロゴL3は、ロゴL1をy軸方向に縮小した状態を示す。ロゴL4は、ロゴL1に対しy軸方向にせん断(スキュー)した状態を示す。ロゴL5は、ロゴL1を回転させた状態を示す。
【0017】
画像判定システム1の用途は任意であるが、例えば、企業が、自社のロゴを他社が適切に利用しているのか否かを確認するために利用されてもよい。例えば、企業Aの取引先である企業Bが、企業AのサービスAを示すロゴAを店頭に掲示したり印刷物に掲載したりしているケースを想定する。また、ロゴAは、
図2のロゴL1と同一であるものとする。企業Aは、企業BがロゴAを利用する際、正しい形状でロゴAを使用することを望むが、企業Bによっては、印刷ミスなどの理由で、若干歪んだ状態(例えばロゴL2の状態など)でロゴAを利用することがある。このような場合、企業Aのユーザは、画像判定システム1を利用することで、ロゴAが変形した状態で使用されているケースを容易に発見することが可能になる。
【0018】
<ハードウェア構成>
図3は、情報処理装置10のハードウェア構成例を示す図である。情報処理装置10は、CPU(Central Processing Unit)、GPU(Graphical Processing Unit)等のプロセッサ11、メモリ(例えばRAM又はROM)、HDD(Hard Disk Drive)及び/又はSSD(Solid State Drive)等の記憶装置12、有線又は無線通信を行うネットワークIF(Network Interface)13、入力操作を受け付ける入力装置14、及び情報の出力を行う出力装置15を有する。入力装置14は、例えば、キーボード、タッチパネル、マウス及び/又はマイク等である。出力装置15は、例えば、ディスプレイ、タッチパネル及び/又はスピーカ等である。
【0019】
<機能ブロック構成>
図4は、情報処理装置10の機能ブロック構成例を示す図である。情報処理装置10は、記憶部100と、受付部101と、判定部102と、出力部103と、学習部104とを含む。記憶部100は、情報処理装置10が備える記憶装置12を用いて実現することができる。また、受付部101と、学習部104と、出力部103とは、情報処理装置10のプロセッサ11が、記憶装置12に記憶されたプログラムを実行することにより実現することができる。また、当該プログラムは、記憶媒体に格納することができる。当該プログラムを格納した記憶媒体は、コンピュータ読み取り可能な非一時的な記憶媒体(Non-transitory computer readable medium)であってもよい。非一時的な記憶媒体は特に限定されないが、例えば、USB(Universal Serial Bus)メモリ又はCD-ROM(Compact Disc Read-Only Memory)等の記憶媒体であってもよい。
【0020】
記憶部100は、学習モデルを記憶する。学習モデルには、モデル構造を決定する情報及び各種のパラメータ値が含まれる。
【0021】
受付部101は、検出対象が撮影された画像の入力を受け付ける。例えば、受付部101は、端末20を介して画像データの入力を受け付けるようにしてもよい。受付部101は、入力部と呼ばれてもよい。
【0022】
判定部102は、受付部101で受け付けた画像を学習モデルに入力することで、検出対象の射影変換に関連する情報を判定する。学習モデルは、ニューラルネットワークを用いたモデルであってもよい。また、判定部102は、画像を学習モデルに入力することで、画像上において検出対象が存在する位置を示すバウンディングボックス(以下、BBOX(Bounding Box)と言う。)の表示位置を判定するようにしてもよい。
【0023】
また、判定部102は、画像を学習モデルに入力することで、画像に写っている検出対象の種別を判定するようにしてもよい。検出対象の種別は、検出対象のクラスと呼ばれてもよい。学習モデルが1種類の検出対象を検出する能力を有している場合、判定部102は、検出対象の種別として、画像内に当該1種類の検出対象が写っているか否かを示す情報を判定するようにしてもよい。また、学習モデルが2種類以上の検出対象を検出する能力を有している場合、判定部102は、検出対象の種別として、画像内にどの検出対象が写っているのかを示す情報を判定するようにしてもよい。
【0024】
出力部103は、判定部102で判定された射影変換に関連する情報を出力する。出力部103は、端末20の画面に、射影変換に関連する情報を表示させるようにしてもよい。また、出力部103は、判定部102で判定された、BBOXの表示位置を出力するようにしてもよい。また、出力部103は、BBOXを、画像上に重畳表示させるようにしてもよい。また、出力部103は、判定部102で判定された検出対象の種別を出力するようにしてもよい。
【0025】
また、出力部103は、判定部102で判定された射影変換に関連する情報に基づいて、検出対象の形状が射影変換されているか否かを示す情報、又は、検出対象の形状が、元の形状から変形しているか否かを示す情報を出力するようにしてもよい。
【0026】
学習部104は、検出対象が撮影された画像と検出対象の射影変換に関連する情報とを対応づけた教師データを用いて学習モデルを学習させる。
【0027】
<処理手順>
続いて、情報処理装置10が行う処理手順を具体的に説明する。
【0028】
図5は、学習モデルの概要を示す図である。
図5において、検出対象はロゴL100であるものとする。学習モデルM100はニューラルネットワークを用いたモデルであり、モデルの構造は、ネットワークN100及びネットワークN200の2つのニューラルネットワークが接続された構造であってもよい。
【0029】
ここで、ネットワークN100は、入力された画像に写る物体の領域候補を抽出する能力を有するネットワークであってもよい。また、ネットワークN200は、ネットワークN100で抽出された領域候補から、検出対象の射影変換に関連する情報(以下、「射影変換情報」と言う。)を出力する能力を有するネットワークであってもよい。
【0030】
より具体的には、ネットワークN100は、画像全体の中で、何らかの物体が写っていると推定される領域(領域候補)を抽出する能力を有していてもよい。例えば、ロゴL100が写っている画像P100を入力した場合、ネットワークN100は、画像P100全体の中で、背景の領域と何らかの物体が写っている領域とを認識し、何らかの物体が写っている領域(ここではロゴL100が写っている領域)を、領域候補として抽出するようにしてもよい。また、ネットワークN200は、ネットワークN100で抽出された領域候補から、当該領域候補に写っているロゴL100が元の形状と比較してどのように射影変換されているのかを示す射影変換情報を出力するようにしてもよい。
【0031】
なお、ネットワークN200は、更に、ネットワークN100で抽出された領域候補にから、当該領域候補に写っている検出対象の種別を示す「クラス情報」を出力するようにしてもよい。例えば、ネットワークN200は、画像P100が入力された場合、画像P100に写っている検出対象はロゴL100であることを示す情報を出力するようにしてもよい。また、ネットワークN200は、更に、ネットワークN100で抽出された領域候補から、画像P100において検出対象が写っている領域を示す「BBOX情報」を出力するようにしてもよい。
【0032】
図6は、情報処理装置10が学習モデルを学習させる際の処理手順の概要を示すフローチャートである。なお、
図6及び
図7の説明では、学習モデルは、クラス情報と、BBOX情報と、射影変換情報との3つを出力するものとするが、これに限定されるものではない。例えば、学習モデルは、射影変換情報のみを出力するようにしてもよい。
【0033】
受付部101は、端末20を介して、学習データの入力を受け付ける(S10)。学習データ(教師データとも言う)は、検出対象が写っている画像の画像データと、検出対象のクラスとBBOXの表示位置と射影変換情報とが対応づけられたデータである。
【0034】
続いて、学習部104は、学習データを用いてモデルを学習させることで、学習モデルを生成する(S11)。モデルの学習が完了すると、学習部104は、学習結果である各種パラメータを記憶部100に格納する。
【0035】
図7は、情報処理装置10が、画像から射影変換情報を判定する際の処理手順の概要を示すフローチャートである。
【0036】
受付部101は、ユーザから、端末20を介して、画像データの入力を受け付ける(S20)。
【0037】
続いて、判定部102は、画像データを学習モデルに入力し、当該学習モデルからクラスを示す情報、BBOX情報及び射影変換情報を取得することで、クラス情報、BBOX情報及び射影変換情報を判定する。
【0038】
出力部103は、判定部102で判定された、クラス情報、BBOX情報及び射影変換情報を端末20の画面に出力する。なお、出力部103は、クラス情報、BBOX情報及び射影変換情報を取得を端末20に出力することに代えて、他の情報処理装置に送信するようにしてもよい。
【0039】
<具体例>
続いて、学習モデルの構成について複数の具体例を説明する。以下の具体例では、学習モデルは、Faster R-CNN(Regions with Convolutional Neural Networks)と呼ばれるニューラルネットワークに、射影変換情報を出力する能力を持たせたニューラルネットワークであるものとする。また、検出対象は、
図2に示すロゴであるものとする。
【0040】
<具体例1>
図8は、学習モデル(具体例1)を示す図である。FC層は、全結合層(Fully Connected Layer)を意味する。具体例1における学習モデルM100は、画像がネットワークN100に入力されると、ネットワークN100に接続されたネットワークN230から、射影変換情報として、射影変換前のロゴ(検出対象)に適用されたと推定されるホモグラフィ行列(射影変換行列)の各成分を出力するようにしてもよい。
【0041】
また、学習モデルM100は、ネットワークN100に接続され、物体の領域候補からロゴ(検出対象)を囲むBBOXを判定するネットワークN210と、ネットワークN100に接続され、物体の領域候補からロゴ(検出対象)の種別を判定するネットワークN220と、を含んでいてもよい。このとき、判定部102は、画像を学習モデルに入力することで、BBOXと検出対象の種別とを判定し、出力部103は、判定部102で判定された、BBOXと検出対象の種別とを出力するようにしてもよい(後述する具体例2も同様)。
【0042】
具体例1において、ネットワークN100及びネットワークN230は、それぞれ、第1ネットワーク及び第2ネットワークと呼ばれてもよい。また、ネットワークN210及びネットワークN220は、それぞれ、第3ネットワーク及び第4ネットワークと呼ばれてもよい。
【0043】
ここで、射影変換される前の画像上の座標を(x、y)とし、射影変換後の画像上の座標を(x′、y′)とし、ホモグラフィ行列をHとすると、座標(x′、y′)は数式(1)で表現することができる。また、ホモグラフィ行列は、数式(2)で表現することができる。なお、数式(1)より、s=h31×x+h32×y+h33になる。また、数式(2)におけるh33の値は1でもよいことが知られている。
【0044】
【0045】
【数2】
つまり、学習モデルM100は、ロゴに適用されたと推定されるホモグラフィ行列の9つの成分(h
11~h
33)を出力するモデルであってもよい。若しくは、h
33=1とすることで、学習モデルM100は、ホモグラフィ行列の8つの成分(h
11~h
32)を出力するモデルであってもよい。
【0046】
具体例1における学習モデルM100の学習は、以下の手順により行うようにしてもよい。まず、学習部104は、9つの成分をランダムに生成することでホモグラフィ行列を生成する。このとき、h33は必ず「1」とするようにしてもよい。続いて、学習部104は、生成したホモグラフィ行列を用いて射影変換したロゴ画像を、当該ロゴ画像が存在しない背景画像に合成した画像を生成する。続いて、学習部104は、生成した画像を入力データとし、ロゴ画像に対応するクラス情報と、画像内においてロゴ画像が存在する領域を示すBBOXの位置と、ロゴ画像を射影変換する際に用いたホモグラフィ行列の9つの成分とを出力データとする学習データを生成する。なお、クラス情報及びBBOXの位置は、学習モデルを生成するユーザにより指定されてもよい。学習部104は、学習データを生成する処理を繰り返すことで、多数の学習データを生成する。
【0047】
続いて、学習部104は、生成した多数の学習データを用いて、学習モデルM100を学習させる。学習に用いる損失関数は、例えば、平均二乗誤差を利用するRMSLE(Root Mean Squared Logarithmic Error)を利用するようにしてもよいが、これに限定されるものではない。
【0048】
以上説明した学習モデルM100の学習について、生成したホモグラフィ行列の成分によっては、射影変換した後のロゴ画像が点になるなど、適切ではない形状を表す可能性がある。また、ホモグラフィ行列の9つの成分を様々に変化させる必要があるため、学習データが膨大になる可能性がある。したがって、学習データには、射影変換した後のロゴ画像が適切ではない形状を表すような成分の値については含まれないようにしてもよい。
【0049】
なお、上述したように、企業が、自社のロゴを他社が適切に利用しているのか否かを確認するために情報処理装置10を利用する場合、ロゴが変形されるパターンは、例えば、回転、拡大、縮小及びせん断のように、線形変換で表現可能な変形に限られることが想定される。
【0050】
ここで、線形変換される前の画像上の座標を(x、y)とし、線形変換後の画像上の座標を(x′、y′)とし、線形変換を表す行列をLとすると、座標(x′、y′)は数式(3)で表現することができる。また、線形変換を表す行列は、数式(4)で表現することができる。
【0051】
【0052】
【数4】
なお、線形変換を表す行列は、数式(2)に示すホモグラフィ行列の9つの成分のうちh
13、h
23、h
31及びh
32の成分を0とし、h
33の成分を1とすることでも表現することができる。この場合、ホモグラフィ行列のh
11~h
22の成分は、それぞれ、数式(4)のl
11~l
22の成分に対応することになる。
【0053】
数式(4)に示すように、線形変換を表す行列の成分は4つであるから、9つの成分を推定する場合と比較して、学習モデルM100の学習に必要な学習データの量を大幅に削減することができる。
【0054】
そこで、判定部102は、画像を学習モデルに入力することで、検出対象の線形変換に関連する情報(以下、「線形変換情報」と言う。)を判定することとしてもよい。また、学習モデルM100は、画像に写る物体の領域候補を抽出するネットワークN100と、物体の領域候補からロゴ(検出対象)の線形変換情報を出力するネットワークN230とを含むニューラルネットワークであってもよい。また、学習モデルM100から出力される線形変換情報は、ロゴに適用された線形変換を表す行列の4つの成分(数式4のl11~l22、若しくは、数式2のh11~h22)であってもよい。
【0055】
この場合における学習モデルM100の学習は、以下の手順により行うようにしてもよい。まず、学習部104は、4つの成分(数式2のh11~h22、若しくは、数式4のl11~l22)をランダムに生成することでホモグラフィ行列(又は線形変換を表す行列)を生成する。続いて、学習部104は、生成したホモグラフィ行列(又は線形変換を表す行列)を用いて線形変換したロゴ画像を、当該ロゴ画像が存在しない背景画像に合成した画像を生成する。続いて、学習部104は、生成した画像を入力データとし、ロゴ画像に対応するクラス情報と、画像内においてロゴ画像が存在する領域を示すBBOXの位置と、ロゴ画像を線形変換する際に用いたホモグラフィ行列(又は線形変換を表す行列)の4つの成分とを出力データとする学習データを生成する。なお、クラス情報及びBBOXの位置は、学習モデルを生成するユーザにより指定されてもよい。学習部104は、学習データを生成する処理を繰り返すことで、複数の学習データを生成する。続いて、学習部104は、生成した複数の学習データを用いて、学習モデルM100を学習させる。
【0056】
線形変換に限定することで、学習モデルM100が出力する行列の要素は4つの成分に絞られることから、学習データの量を大幅に削減することができるとともに、学習モデルの学習に要する時間を大幅に短縮させることができる。
【0057】
<具体例2>
図9は、学習モデル(具体例2)を示す図である。具体例2における学習モデルM100は、画像がネットワークN100に入力されると、ネットワークN100に接続されたネットワークN231から、射影変換情報として、ホモグラフィ行列における回転を表す成分と、スケール変換(拡大又は縮小)を表す成分と、せん断を表す成分とを出力する。ネットワークN210及びネットワークN220については具体例1と同一である。具体例2において、ネットワークN100及びネットワークN231は、それぞれ、第1ネットワーク及び第2ネットワークと呼ばれてもよい。また、ネットワークN210及びネットワークN220は、それぞれ、第3ネットワーク及び第4ネットワークと呼ばれてもよい。
【0058】
つまり、具体例2におけるネットワークN231(第2ネットワーク)は、回転に関するホモグラフィ行列の成分を出力するネットワークと、スケール変換に関するホモグラフィ行列の成分を出力するネットワークと、せん断に関するホモグラフィ行列の成分を出力するネットワークとのうち少なくとも1以上を含んでもよい。また、学習モデルM100は、画像がネットワークN100に入力されると、ネットワークN100に接続されたネットワークN231から、射影変換に関する情報として、射影変換前のロゴ(検出対象)に適用されたと推定される、回転、スケール変換及びせん断のうち少なくとも1以上に関するホモグラフィ行列の成分を出力するようにしてもよい。
【0059】
図10は、射影変換の4つのパターンを示す図である。
図10のAは、ロゴを、時計回りにθ
rot度回転させる場合の例を示す。この場合のホモグラフィ行列は、数式5で表される。
【0060】
【数5】
図10のBは、ロゴを、y軸方向又はx軸方向に拡大又は縮小させる場合の例を示す。y方向にH/1倍に拡大し、x方向にW/1倍に拡大した場合のホモグラフィ行列は、数式6で表される。
【0061】
【数6】
図10のCは、ロゴを、y軸方向にθ
shear_y度せん断させる場合の例を示す。この場合のホモグラフィ行列は、数式7で表される。
【0062】
【数7】
図10のDは、ロゴを、x軸方向にθ
shear_x度せん断させる場合の例を示す。この場合のホモグラフィ行列は、数式8で表される。
【0063】
【数8】
学習モデルM100は、回転に関するホモグラフィ行列の成分としてθ
rotの値を出力し、スケール変換に関するホモグラフィ行列の成分としてW及びHの値を出力し、y方向のせん断に関するホモグラフィ行列の成分としてθ
shear_yの値を出力し、x方向のせん断に関するホモグラフィ行列の成分としてθ
shear_xの値を出力するようにしてもよい。また、学習モデルM100は、これらの出力値のうち、無関係である変形に対応する値については変形が無いことを示す値(具体的には、θ
rot=0度、W=1、H=1、θ
shear_y=0度、θ
shear_x=0度)を出力するようにしてもよい。例えば、ロゴの変形が回転のみである場合、学習モデルM100は、回転角度に対応するθ
rotの値(例えば10度や45度など)を出力し、W及びHの値についてはそれぞれ1を出力し、θ
shear_yの値については0を出力し、θ
shear_xの値については0を出力するようにしてもよい。同様に、ロゴの変形がy方向の拡大のみである場合、学習モデルM100は、θ
rotの値は0を出力し、Wの値は拡大後の値(例えば1.5や2など)を出力し、Hの値については1を出力し、θ
shear_yの値については0を出力し、θ
shear_xの値については0を出力するようにしてもよい。
【0064】
具体例2における学習モデルM100の学習は、以下の手順により行うようにしてもよい。まず、学習部104は、θrotの値、Wの値、Hの値、θshear_yの値及びθshear_xの値をランダムに生成する。続いて、学習部104は、数式(5)で表される行列と、数式(6)で表される行列と、数式(7)で表される行列と、数式(8)で表される行列とを乗算することでホモグラフィ行列を生成する。続いて、学習部104は、生成したホモグラフィ行列を用いて射影変換したロゴ画像を、当該ロゴ画像が存在しない背景画像に合成した画像を生成する。続いて、学習部104は、生成した画像を入力データとし、ロゴ画像に対応するクラス情報と、画像内においてロゴ画像が存在する領域を示すBBOXの位置と、ロゴ画像を射影変換する際に用いたθrotの値、Wの値、Hの値、θshear_yの値及びθshear_xの値とを出力データとする学習データを生成する。なお、クラス情報及びBBOXの位置は、学習モデルを生成するユーザにより指定されてもよい。学習部104は、学習データを生成する処理を繰り返すことで、多数の学習データを生成する。
【0065】
続いて、学習部104は、生成した多数の学習データを用いて、学習モデルM100を学習させる。学習に用いる損失関数は、例えば、平均二乗誤差を利用するRMSLEを利用するようにしてもよいが、これに限定されるものではない。
【0066】
なお、ロゴの変形パターンが、回転、y軸方向のスケール変換、x軸方向のスケール変換、y軸方向のせん断及びx軸方向のせん断のいずれか1つに限定される場合、学習部104は、θrotの値、Wの値、Hの値、θshear_yの値及びθshear_xの値をランダムに生成する際、これらの値のうちいずれか1つのみを変化させ、他の値については変形が無いことを示す値になるように学習データを生成するようにしてもよい。
【0067】
具体例2によれば、具体例1よりも学習データ量を大幅に削減することができるとともに、学習モデルの学習に要する時間を大幅に短縮させることができる。
【0068】
なお、以上説明した具体例2では、情報処理装置10は、射影変換の4つのパターンとして、回転、拡大、縮小及びせん断を判定していることから、線形変換の判定を行っていることと同義である。従って、具体例2の説明において、「射影変換」及び「射影変換情報」の文言を、それぞれ、「線形変換」及び「射影変換情報」の文言に置き換えるようにしてもよい。
【0069】
<具体例3>
図11は、学習モデル(具体例3)を示す図である。具体例3における学習モデルM100は、画像をネットワークN100に入力すると、ネットワークN232から、射影変換情報として、射影変換された後のロゴ(検出対象)に存在する複数の特徴点の座標であって所定の基準点からの相対座標を出力する。ネットワークN210及びネットワークN220については具体例1と同一である。
【0070】
また、学習モデルM100は、ネットワークN100に接続され、物体の領域候補からロゴ(検出対象)を囲むBBOXを判定するネットワークN210と、ネットワークN100に接続され、物体の領域候補からロゴ(検出対象)の種別を判定するネットワークN220と、を含んでいてもよい。また、ネットワークN232は、ネットワークN220に接続されてもよい。このとき、判定部102は、画像を学習モデルに入力することで、BBOXと検出対象の種別とを判定し、出力部103は、判定部102で判定された、BBOXと検出対象の種別とを出力するようにしてもよい。
【0071】
具体例3において、ネットワークN100及びネットワークN232は、それぞれ、第1ネットワーク及び第2ネットワークと呼ばれてもよい。また、ネットワークN210及びネットワークN220は、それぞれ、第3ネットワーク及び第4ネットワークと呼ばれてもよい。
【0072】
図12は、検出対象の特徴点を説明する図である。
図12に示すように、ロゴL1には、4つの特徴点P1~P4の相対座標(x、y)の位置が予め定められている。なお、x軸及びy軸が交わる点(0、0)を基準点してもよいが、これに限定されるものではない。任意の点を基準点とすることができる。また、特徴点の数は4つに限定されない。例えば、特徴点の数は3つであってもよいし、5以上であってもよい。特徴点の位置は任意であるが、ロゴの左上端、右上端、左下端、右下端のように、なるべく外側の位置にすることが好ましい。
【0073】
図13は、射影変換後の特徴点の一例を示す図である。
図13のAは、ロゴを回転した場合の特徴点(P1′~P4´)の相対座標を示している。
図13のBは、ロゴを拡大又は縮小した場合の特徴点(P1′~P4´)の相対座標を示している。
図13のCは、ロゴをy方向にせん断した場合の特徴点(P1′~P4´)の相対座標を示している。
図13のDは、ロゴをx方向にせん断した場合の特徴点(P1′~P4´)の相対座標を示している。
【0074】
例えば、学習モデルM100は、
図13のAに示すロゴが写っている画像が入力された場合、
図13のAに示す特徴点(P1′~P4´)の相対座標を出力する。同様に、学習モデルM100は、
図13のDに示すロゴが写っている画像が入力された場合、
図13のDに示す特徴点(P1′~P4´)の相対座標を出力する。
【0075】
具体例3における学習モデルM100の学習は、以下の手順により行うようにしてもよい。まず、学習部104は、数式2の9つの成分をランダムに生成することでホモグラフィ行列を生成する。続いて、学習部104は、生成したホモグラフィ行列を用いて射影変換したロゴ画像を、当該ロゴ画像が存在しない背景画像に合成した画像を生成する。続いて、学習部104は、射影変換後のロゴ画像における4つの特徴点の相対座標を算出する。続いて、学習部104は、生成した画像を入力データとし、ロゴ画像に対応するクラス情報と、画像内においてロゴ画像が存在する領域を示すBBOXの位置と、4つの特徴点の相対座標とを出力データとする学習データを生成する。なお、クラス情報及びBBOXの位置は、学習モデルを生成するユーザにより指定されてもよい。学習部104は、学習データを生成する処理を繰り返すことで、多数の学習データを生成する。
【0076】
続いて、学習部104は、生成した多数の学習データを用いて、学習モデルM100を学習させる。学習に用いる損失関数は、例えば、平均二乗誤差を利用するRMSLEを利用するようにしてもよいが、これに限定されるものではない。
【0077】
なお、具体例1で説明したように、判定部102は、線形変換である変形のみを判定するようにしてもよい。この場合、具体例3の説明において、「射影変換」及び「射影変換情報」の文言を、それぞれ、「線形変換」及び「射影変換情報」の文言に置き換えるようにしてもよい。また、学習モデルM100を学習させる際、学習部104は、4つの成分(数式2のh11~h22、若しくは、数式4のl11~l22)をランダムに生成することでホモグラフィ行列又は線形変換に関する行列を生成し、生成した行列を用いて線形変換したロゴ画像を生成するようにしてもよい。特に言及しない点は、上述した具体例3における学習手順の説明と同一でよい。
【0078】
図11に示すように、具体例3における学習モデルM100において、ネットワークN232は、ネットワークN100ではなくネットワークN220のFC層に接続されている。ネットワークN220は、BBOXを判定するネットワークであることから、ネットワークN220のFC層では、BBOXの位置を推定するための何らかの情報が抽出されている可能性が高い。したがって、ネットワークN232をネットワークN220のFC層に接続することで、画像内における検出対象の位置を推定する処理の一部を共通にすることができ、その結果、具体例1の学習モデルM100よりもネットワークの引数を削減することができ、学習時間を短縮することが可能になる。
【0079】
<まとめ>
以上説明した実施形態によれば、検出対象が撮影された画像から、射影変換情報を判定することで、検出対象が変形しているのか否かを、より適切に判定することが可能になる。
【0080】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態で説明したフローチャート、シーケンス、実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【0081】
また、線形変換は、射影変換の一例であることから、本実施形態における射影変換情報には、線形変換情報が含まれることとしてもよい。
【0082】
<付記>
本実施形態は、以下の通り表現されてもよい。
【0083】
<付記1>
検出対象が撮影された画像の入力を受け付ける受付部と、
前記画像を学習モデルに入力することで、前記検出対象の射影変換に関連する情報を判定する判定部と、
前記判定部で判定された前記射影変換に関連する情報を出力する出力部と、
を有する出力装置。
【0084】
<付記2>
前記学習モデルは、入力された前記画像に写る物体の領域候補を抽出する第1ネットワークと、前記物体の領域候補から前記検出対象の前記射影変換に関連する情報を出力する第2ネットワークとを含むニューラルネットワークであり、
前記判定部は、前記画像を前記ニューラルネットワークに入力することで、前記射影変換に関連する情報を判定する、
付記1に記載の出力装置。
【0085】
<付記3>
前記ニューラルネットワークは、前記画像を前記第1ネットワークに入力すると、前記第1ネットワークに接続された前記第2ネットワークから、前記射影変換に関する情報として、射影変換前の前記検出対象に適用されたと推定されるホモグラフィ行列の成分を出力する、
付記2に記載の出力装置。
【0086】
<付記4>
前記第2ネットワークは、回転に関するホモグラフィ行列の成分を出力するネットワークと、スケール変換に関するホモグラフィ行列の成分を出力するネットワークと、せん断に関するホモグラフィ行列の成分を出力するネットワークとのうち少なくとも1以上を含み、
前記ニューラルネットワークは、前記画像を前記第1ネットワークに入力すると、前記第1ネットワークに接続された前記第2ネットワークから、前記射影変換に関する情報として、射影変換前の前記検出対象に適用されたと推定される、回転、スケール変換及びせん断のうち少なくとも1以上に関するホモグラフィ行列の成分を出力する、
付記2に記載の出力装置。
【0087】
<付記5>
前記ニューラルネットワークは、前記第1ネットワークに接続され、前記物体の領域候補から前記検出対象を囲むバウンディングボックスを判定する第3ネットワークと、前記第1ネットワークに接続され、前記物体の領域候補から前記検出対象の種別を判定する第4ネットワークと、を含み、
前記判定部は、前記画像を前記ニューラルネットワークに入力することで、前記バウンディングボックスと前記検出対象の種別とを判定し、
前記出力部は、前記判定部で判定された、前記バウンディングボックスと前記検出対象の種別とを出力する、
付記3又は4に記載の出力装置。
【0088】
<付記6>
前記ニューラルネットワークは、前記画像を前記第1ネットワークに入力すると、前記第2ネットワークから、前記射影変換に関する情報として、前記射影変換された後の前記検出対象に存在する複数の特徴点の座標であって所定の基準点からの相対座標を出力する、
付記2に記載の出力装置。
【0089】
<付記7>
前記ニューラルネットワークは、前記第1ネットワークに接続され、前記物体の領域候補から前記検出対象を囲むバウンディングボックスを判定する第3ネットワークと、前記第1ネットワークに接続され、前記物体の領域候補から前記検出対象の種別を判定する第4ネットワークと、を含み、
前記第2ネットワークは、前記第3ネットワークに接続され、
前記判定部は、前記画像を前記ニューラルネットワークに入力することで、前記バウンディングボックスと前記検出対象の種別とを判定し、
前記出力部は、前記判定部で判定された、前記バウンディングボックスと前記検出対象の種別とを出力する、
付記6に記載の出力装置。
【0090】
<付記8>
検出対象が撮影された画像と前記検出対象の射影変換に関連する情報とを対応づけた教師データを用いて前記学習モデルを学習させる、学習部、を有する、
付記1~7のいずれか一項に記載の出力装置。
【0091】
<付記9>
前記判定部は、前記画像を入力することで、前記検出対象を囲むバウンディングボックスと前記検出対象の種別とを判定し、
前記出力部は、前記判定部で判定された、前記バウンディングボックスと前記検出対象の種別とを出力する、
付記1に記載の出力装置。
【0092】
<付記10>
検出対象が撮影された画像の入力を受け付けるステップと、
前記画像を学習モデルに入力することで、前記検出対象の射影変換に関連する情報を判定するステップと、
判定された前記射影変換に関連する情報を出力するステップと、
を含む、出力装置が行う出力方法。
【0093】
<付記11>
コンピュータに、
検出対象が撮影された画像の入力を受け付けるステップと、
前記画像を学習モデルに入力することで、前記検出対象の射影変換に関連する情報を判定するステップと、
判定された前記射影変換に関連する情報を出力するステップと、
を実行させるためのプログラム。
【符号の説明】
【0094】
1 画像判定システム、10 情報処理装置、11 プロセッサ、12 記憶装置、13 ネットワークIF、14 入力装置、15 出力装置、20 端末、100 記憶部、101 受付部、102 判定部、103 出力部、104 学習部、N 通信ネットワーク