IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧 ▶ 国立大学法人鳥取大学の特許一覧

特許7425445特徴学習装置、特徴抽出装置、特徴学習方法及びプログラム
<>
  • 特許-特徴学習装置、特徴抽出装置、特徴学習方法及びプログラム 図1
  • 特許-特徴学習装置、特徴抽出装置、特徴学習方法及びプログラム 図2
  • 特許-特徴学習装置、特徴抽出装置、特徴学習方法及びプログラム 図3
  • 特許-特徴学習装置、特徴抽出装置、特徴学習方法及びプログラム 図4
  • 特許-特徴学習装置、特徴抽出装置、特徴学習方法及びプログラム 図5
  • 特許-特徴学習装置、特徴抽出装置、特徴学習方法及びプログラム 図6
  • 特許-特徴学習装置、特徴抽出装置、特徴学習方法及びプログラム 図7
  • 特許-特徴学習装置、特徴抽出装置、特徴学習方法及びプログラム 図8
  • 特許-特徴学習装置、特徴抽出装置、特徴学習方法及びプログラム 図9
  • 特許-特徴学習装置、特徴抽出装置、特徴学習方法及びプログラム 図10
  • 特許-特徴学習装置、特徴抽出装置、特徴学習方法及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-23
(45)【発行日】2024-01-31
(54)【発明の名称】特徴学習装置、特徴抽出装置、特徴学習方法及びプログラム
(51)【国際特許分類】
   G06N 3/08 20230101AFI20240124BHJP
   G06N 20/00 20190101ALI20240124BHJP
【FI】
G06N3/08
G06N20/00
【請求項の数】 8
(21)【出願番号】P 2020122703
(22)【出願日】2020-07-17
(65)【公開番号】P2022019108
(43)【公開日】2022-01-27
【審査請求日】2023-01-11
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】504150461
【氏名又は名称】国立大学法人鳥取大学
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】入江 豪
(72)【発明者】
【氏名】西山 正志
(72)【発明者】
【氏名】岩井 儀雄
(72)【発明者】
【氏名】上野 高貴
(72)【発明者】
【氏名】米田 駿介
【審査官】円子 英紀
(56)【参考文献】
【文献】国際公開第2020/059545(WO,A1)
【文献】米国特許出願公開第2019/0080204(US,A1)
【文献】特表2019-509551(JP,A)
【文献】韓国公開特許第10-2019-0117584(KR,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/08
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
入力されたデータの特徴を出力する関数である特徴抽出器の学習において基準となるアンカーデータの候補の集合であるアンカーデータ候補群に含まれる一つ以上のデータそれぞれの特徴と、前記アンカーデータ候補群に含まれる前記データとは異なる比較データの特徴とを抽出する特徴抽出部と、
前記特徴抽出部が抽出した前記特徴に基づいて、前記アンカーデータ候補群に含まれるデータのうち一つのデータをアンカーデータとして選択する選択部と、
前記特徴抽出器を用いて前記アンカーデータから得られた特徴と、前記特徴抽出器を用いて前記比較データから得られた特徴との近さを、特徴間の遠近を算出するための損失関数により算出し、算出された結果に基づいて前記特徴抽出器を学習する学習部と、
を備えることを特徴とする特徴学習装置。
【請求項2】
前記選択部は、前記比較データの特徴と、前記アンカーデータ候補群に含まれる前記データそれぞれの特徴との比較に基づいて前記アンカーデータを選択する、
請求項1に記載の特徴学習装置。
【請求項3】
前記比較データは、第一比較データ及び第二比較データを含み、
前記選択部は、前記特徴抽出部が抽出した前記特徴に基づいて、前記アンカーデータ候補群に含まれる前記データのうち、前記第一比較データの特徴と近く、かつ、前記第二比較データの特徴と遠い特徴のデータを選択する、
請求項1又は請求項2に記載の特徴学習装置。
【請求項4】
前記損失関数は、特徴間が近い場合に小さい値を取り、
前記学習部は、前記損失関数により算出された値が小さくなるように前記特徴抽出器に用いられているパラメータの値を更新する、
請求項1から請求項3のいずれか一項に記載の特徴学習装置。
【請求項5】
データを入力する入力部と、
請求項1から請求項4のいずれか一項に記載の特徴学習装置により学習された特徴抽出器を用いて、前記入力部により入力された前記データの特徴を抽出する演算部と、
を備える特徴抽出装置。
【請求項6】
入力されたデータの特徴を出力する関数である特徴抽出器の学習において基準となるアンカーデータの候補の集合であるアンカーデータ候補群に含まれる一つ以上のデータそれぞれの特徴と、前記アンカーデータ候補群に含まれる前記データとは異なる比較データの特徴とを抽出する特徴抽出ステップと、
前記特徴抽出ステップにおいて抽出された前記特徴に基づいて、前記アンカーデータ候補群に含まれるデータのうち一つのデータをアンカーデータとして選択する選択ステップと、
前記特徴抽出器を用いて前記アンカーデータから得られた特徴と、前記特徴抽出器を用いて前記比較データから得られた特徴との近さを、特徴間の遠近を算出するための損失関数により算出し、算出された結果に基づいて前記特徴抽出器を学習する学習ステップと、
を有する特徴学習方法。
【請求項7】
コンピュータを、
請求項1から請求項4のいずれか一項に記載の特徴学習装置として機能させるためのプログラム。
【請求項8】
コンピュータを、
請求項5に記載の特徴抽出装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特徴学習装置、特徴抽出装置、特徴学習方法及びプログラムに関する。
【背景技術】
【0002】
AI(人工知能)技術の進展が目覚ましい。画像認識分野では、既に人間の精度を上回る画像認識技術が発明され、音声認識分野では、自然雑音環境下でも安定した音声認識を実現する技術が多く実用化されている。今や、これらの技術をスマートフォンのような小型端末から気軽に利用できるようになっている。機械翻訳も日常生活でオンライン利用が可能になり、国際コミュニケーションの障壁が飛躍的に低下した。
【0003】
近年のこのようなAI技術の進展を支えているのは、深層学習と呼ばれる深いニューラルネットワーク(深層ニューラルネットワーク)を学習する技術であることは言うまでもない。特に、深層学習が優れている特長の一つは、画像・音・言語など、多様なデータの意味や内容を的確に表現する特徴(特徴量や、特徴ベクトルとも呼ばれる)を学習することができる高い特徴学習能力にあるといえる。
【0004】
深層学習の隆盛以前から、特徴表現は多くの情報処理タスクにおいて中心的な役割を担ってきた。例えば、画像認識は、画像から抽出した特徴を元に識別器を学習し、画像を意味カテゴリに分類することによってなされてきた。音声の認識も同様に、音声波形から特徴を抽出し、これを音素クラスに分類する音響モデルを学習することによってなされてきた。深層学習以前は、このような特徴、または特徴抽出器を人手により設計してきたのであり、いかに低容量かつ適切な特徴を抽出できるかが、情報処理の性能を決める重要な要素であった。深層学習がもたらしたブレークスルーは、このしばしば困難な特徴/特徴抽出器の設計を、データから自動的に学習することができるようになったことであると言えよう。
【0005】
しかしながら、例え深層学習を用いる場合であっても、良い特徴/特徴抽出器を学習するためには効果的な学習手段の設計が不可欠である。特に、情報処理においては、互いにデータの内容が近しいものほど特徴としても似たものになり、反対に、内容が異なるものほど特徴も離れたものになることが好ましい場合が多い。
【0006】
例えば、画像認識や音声認識のような分類問題においては、同一クラス内のデータの特徴は特徴空間上近くに、反対に異なるクラスの特徴は離れて配置されている方が分類しやすくなる。あるいは検索、つまり、大量のデータ(例えば画像)の中から、クエリとして与えたデータに内容が近いものを探すようなタスクであっても、互いに内容が近しいデータ同士の特徴は特徴空間上近くに、そうでないものは遠くに配置される方がよい。このような要件を満たす特徴を学習可能な学習技術の実現に向け、さまざまな技術が開示されてきている(例えば、特許文献1、非特許文献1~4参照)。
【0007】
非特許文献1には、上記の要件を満たす特徴を学習するための損失関数として、Contrastive Lossと呼ばれる関数が開示されている。Contrastive Lossは、内容が近しい一組のデータの特徴は近しく、そうでない場合は遠くになることを要請する損失関数である。より具体的には、二つのデータIとデータI(i≠j)に対して、これらの内容が近しいか否かを表すラベルyijが付与されており、近しい場合はyij=1、そうでない場合はyij=0であるとする。このとき、Contrastive Lossは式(1)のように定義される。
【0008】
【数1】
【0009】
ここで、xはデータIの特徴であり、xはデータIの特徴である。mはマージンと呼ばれるパラメータであり、例えば0.2などの値に事前に設定される。d(x,x)はxとxの距離を表す距離関数であり、任意の距離関数を用いることができるが、例えばユークリッド距離とすればよい。
【0010】
非特許文献2には、Contrastive Lossによく似た着想に基づく損失関数としてTriplet Lossが開示されている。Contrastive Lossとの違いは、Contrastive Lossがペアによる比較を行うのに対し、Triplet Lossはその名の通り三つ組みによる比較を行う点である。より具体的には、あるデータIに対して、これと内容の近しいデータIと、反対に遠いデータI(I≠I≠I)の三つ組みを用意する。このとき、Triplet Lossは、式(2)のように定義される。
【0011】
【数2】
【0012】
はデータIの特徴であり、xはデータIの特徴であり、xはIの特徴である。なお、Triplet Lossにおいて、x/Iをアンカー、x/Iをポジティブ、x/Iをネガティブと呼称する場合がある。以下では、これに倣って呼称する。
【0013】
特許文献1には、Triplet Lossを活用することで、画像の一部領域にしかラベルが与えられていないような場合であっても、正確に画像の一部領域に対する分類を実行可能な学習法が開示されている。
【0014】
非特許文献3には、やはりTriplet Lossを用いることで、物体の姿勢に対する正解データが無い場合でも、画像中に写っている物体の姿勢推定器を学習可能にする技術が開示されている。基準となる姿勢である物体を撮影した画像であるアンカー画像があるとする。任意の姿勢の物体が写った画像が入力された場合、当該入力画像に対して、非特許文献4に開示されているSpatial Transformer Network(STN)を導入した幾何変換層を用い、入力画像がアンカー画像に一致するように幾何変換(位置合わせ)を施す。この幾何変換に用いられた姿勢パラメータに基づき、当該画像のアンカー画像からのずれを推定する。
【先行技術文献】
【特許文献】
【0015】
【文献】特開2020-47055号公報
【非特許文献】
【0016】
【文献】Sumit Chopra,Raia Hadsell,Yann LeCun,"Learning a Similarity Metric Discriminatively, with Application to Face Verification",in Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR),pp.539-546,2005.
【文献】Florian Schroff,Dmitry Kalenichenko,James Philbin,"FaceNet: A Unified Embedding for Face Recognition and Clustering",in Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR),pp. 815-823,2015.
【文献】Kouki Ueno,Go Irie,Masashi Nishiyama,Yoshio Iwai,"Weakly Supervised Triplet Learning of Canonical Plane Transformation for Joint Object Recognition and Pose Estimation",Proceedings of 2019 IEEE International Conference on Image Processing (ICIP),pp.2476-2480,2019.
【文献】Max Jaderberg,Karen Simonyan,Andrew Zisserman,Koray Kavukcuoglu,"Spatial Transformer Networks",Proceedings of Neural Information Processing Systems,2015.
【発明の概要】
【発明が解決しようとする課題】
【0017】
大局的にみれば、既存の発明はいずれも、近い内容を持つデータ同士は特徴が近くなるように、遠い内容を持つデータ同士は特徴が遠くなるように学習することを要請している。しかしながら、いずれの技術も必ず、データの対、または三つ組みに対して、それらの内容が近いか遠いかを判断できるようなラベルが与えられている必要があるという、利用上の制限が存在している。非特許文献1に記載のContrastive Lossを用いる場合には、二つの異なるデータIとデータIに対してその内容の類似性を表すyijが必要になる。また、非特許文献2、特許文献1、非特許文献3に記載のTriplet Lossを用いる場合には、データIに近い内容を持つデータI、遠い内容を持つデータIを選定する必要がある。
【0018】
しかしながら、現実的には、データの対や三つ組みに対する内容の類似性を与えるラベルを得ることが困難な場合も多く存在する。このような場合には上記のいずれの先行技術も利用することができない。一例として、映像から特定の物体が写っている映像フレームのみを検索するタスクを考えよう。このとき、仮にTriplet Lossでフレームの特徴を学習しようとすると、あるフレームIをアンカーとして選び、これと同一の物体が写っている別のフレームIをポジティブ、フレームIとは別の物体が写っているフレームIをネガティブとして選び、三つ組みを構成する必要がある。すなわち、フレーム単位で写っている物体が分かっていなければ、Triplet Lossを用いて学習することはできない。しかしながら、フレームごとに写っている物体をラベルとして与えるには大きな労力を要するため、しばしばこのようなラベルを得ることはできない。
【0019】
別のより高度な例として、非特許文献3で考えられている、画像中に移る物体の姿勢を推定するタスクを考えよう。非特許文献3に記載の方法では、基準姿勢となる物体を写した画像Iをアンカーとして選び、これと同一の物体が別姿勢で写っている画像Iをポジティブ、異なる物体が写っている画像Iをネガティブとして三つ組みを構成し、Triplet Lossによる学習を行う。
【0020】
加えて、非特許文献3に記載の技術は、姿勢推定器を学習するために、ポジティブ画像Iがアンカー画像Iに一致するように、STNを用いて位置合わせをすることによって、元のアンカー画像Iとポジティブ画像Iの間の物体の姿勢のずれを学習している。アンカー画像Iに写る物体と、ポジティブ画像Iに写る物体との姿勢のずれが小さい場合には、比較的位置合わせが容易なため、うまく学習することができる。しかしながら、これが大きい場合には位置合わせ自体がうまくいかず、結果として学習に失敗するという問題が起こる。
【0021】
シンプルには、複数の基準姿勢、すなわち、複数のアンカー画像を用意することによって、どのような姿勢のポジティブ画像が入力された場合であっても、いずれかのアンカー画像は近い姿勢を持つ状態を作り出すことが可能であろう。しかしながら、上記のTriplet Lossでは、複数のアンカー画像を用いて学習することは想定されていないため、このようなアプローチを採ることはできない。
【0022】
以上論じた通り、現在に至るまで、データの対または三つ組みに対して、それらの内容が近いか遠いかを判断できるようなラベルが得られないような場合において、有効な特徴を学習可能な学習技術は発明されていなかった。
【0023】
上記事情に鑑み、本発明は、内容の類似性に応じたデータの対や三つ組みを学習用データとして用意できないような場合であっても、データから有効な特徴の抽出を可能とする特徴学習装置、特徴抽出装置、特徴学習方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【0024】
本発明の一態様は、入力されたデータの特徴を出力する関数である特徴抽出器の学習において基準となるアンカーデータの候補の集合であるアンカーデータ候補群に含まれる一つ以上のデータそれぞれの特徴と、前記アンカーデータ候補群に含まれる前記データとは異なる比較データの特徴とを抽出する特徴抽出部と、前記特徴抽出部が抽出した前記特徴に基づいて、前記アンカーデータ候補群に含まれるデータのうち一つのデータをアンカーデータとして選択する選択部と、前記特徴抽出器を用いて前記アンカーデータから得られた特徴と、前記特徴抽出器を用いて前記比較データから得られた特徴との近さを、特徴間の遠近を算出するための損失関数により算出し、算出された結果に基づいて前記特徴抽出器を学習する学習部と、を備えることを特徴とする特徴学習装置である。
【0025】
本発明の一態様は、データを入力する入力部と、上述の特徴学習装置により学習された特徴抽出器を用いて、前記入力部により入力された前記データの特徴を抽出する演算部と、を備える特徴抽出装置である。
【0026】
本発明の一態様は、入力されたデータの特徴を出力する関数である特徴抽出器の学習において基準となるアンカーデータの候補の集合であるアンカーデータ候補群に含まれる一つ以上のデータそれぞれの特徴と、前記アンカーデータ候補群に含まれる前記データとは異なる比較データの特徴とを抽出する特徴抽出ステップと、前記特徴抽出ステップにおいて抽出された前記特徴に基づいて、前記アンカーデータ候補群に含まれるデータのうち一つのデータをアンカーデータとして選択する選択ステップと、前記特徴抽出器を用いて前記アンカーデータから得られた特徴と、前記特徴抽出器を用いて前記比較データから得られた特徴との近さを、特徴間の遠近を算出するための損失関数により算出し、算出された結果に基づいて前記特徴抽出器を学習する学習ステップと、を有する特徴学習方法である。
【0027】
本発明の一態様は、コンピュータを、上述の特徴学習装置として機能させるためのプログラムである。
【0028】
本発明の一態様は、コンピュータを、上述の特徴抽出装置として機能させるためのプログラムである。
【発明の効果】
【0029】
本発明により、内容の類似性に応じたデータの対や三つ組みを学習用データとして用意できないような場合であっても、データから有効な特徴の抽出を可能とする。
【図面の簡単な説明】
【0030】
図1】本発明の第1の実施形態による特徴学習装置の構成を示すブロック図である。
図2】同実施形態による特徴抽出装置の構成を示すブロック図である。
図3】同実施形態による特徴抽出器の構成の一例を示す図である。
図4】同実施形態による特徴学習装置の学習処理の一例を示す図である。
図5】第2の実施形態による特徴学習装置の構成を示すブロック図である。
図6】同実施形態による特徴抽出装置の構成を示すブロック図である。
図7】同実施形態による特徴学習装置又は特徴抽出装置として用いられるコンピュータのハードウェア構成を示す図である。
図8】同実施形態による特徴抽出器の構成の一例を示す図である。
図9】同実施形態による変換層の構成を示す図である。
図10】同実施形態による特徴抽出器の構成の一例を示す図である。
図11】同実施形態による特徴学習装置の学習処理の一例を示す図である。
【発明を実施するための形態】
【0031】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【0032】
<第1の実施形態>
第1の実施形態においては、本発明の基本となる実施形態の一例を説明する。
<<装置構成>>
図1は、第1の実施形態による特徴学習装置10の構成を示す図である。特徴学習装置10は、入力部11と、記憶部12と、演算部13とを有する。入力部11は、学習用データを入力する。学習用データは、特徴抽出器の学習において基準となるアンカーデータの候補の集合であるアンカーデータ候補群と、アンカーデータ候補群に含まれるデータとは異なる比較データとを含むデータ群である。特徴抽出器は、入力されたデータの特徴を出力する関数である。特徴抽出器は、例えば、ニューラルネットワークである。記憶部12は、特徴抽出器を記憶する。演算部13は、特徴抽出器を学習するための演算を行う。
【0033】
演算部13は、特徴抽出部14と、選択部15と、学習部16とを備える。特徴抽出部14は、アンカーデータ候補群に含まれる各データの特徴と、比較データの特徴を抽出する。選択部15は、特徴抽出部14が抽出した特徴に基づいて、アンカーデータ候補群に含まれるデータのうち一つのデータをアンカーデータとして選択する。例えば、比較データは、第一比較データ及び第二比較データを含む場合、選択部15は、特徴抽出部14が抽出した特徴に基づいて、アンカーデータ候補群に含まれるデータのうち、第一比較データの特徴と近く、かつ、第二比較データの特徴と遠い特徴のデータを選択する。学習部16は、特徴抽出器を用いてアンカーデータから得られた特徴と、特徴抽出器を用いて比較データから得られた特徴との近さを、特徴間の遠近を算出するための損失関数により算出する。学習部16は、算出された結果に基づいて特徴抽出器を学習する。例えば、学習部16は、損失関数により算出された結果を最小化または最大化するように、特徴抽出器のパラメータの値を更新する。
【0034】
図2は、第1の実施形態による特徴抽出装置20の構成を示す図である。特徴抽出装置20は、記憶部21と、入力部22と、演算部23と、出力部24とを有する。記憶部21は、特徴学習装置10により学習された特徴抽出器を記憶する。入力部22は、特徴抽出対象のデータを入力する。演算部23は、記憶部21に記憶される特徴抽出器を用いて、入力部22により入力されたデータの特徴を抽出する特徴抽出処理を行う。出力部24は、演算部23が抽出した特徴を出力する。
【0035】
特徴学習装置10は、バスで接続されたCPU(Central Processing Unit)やメモリや補助記憶装置などを備え、プログラムを実行することによって入力部11、記憶部12及び演算部13を備える装置として機能する。また、特徴抽出装置20は、バスで接続されたCPUやメモリや補助記憶装置などを備え、プログラムを実行することによって記憶部21、入力部22、演算部23及び出力部24を備える装置として機能する。なお、特徴学習装置10及び特徴抽出装置20の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるHDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
【0036】
<<処理概要>>
本実施形態における特徴学習装置10の演算部13が実行する特徴学習方法は、学習用のデータ群を入力として受け付けると、特徴抽出器を学習して出力する。また、本実施形態における特徴抽出装置20の演算部23が実行する情報処理方法は、データを入力として受け付けると、学習された特徴抽出器を用いてそのデータの特徴を抽出して出力する。
【0037】
<<<特徴抽出器の構成>>>
特徴抽出器は、データを入力として受け付けると、当該データの特徴を出力する関数である。特徴抽出器の構成は、このような入出力関係を実現できるものであれば任意の構成を採ることができる。ここでは、特徴抽出器に入力されるデータとして画像を想定した場合の構成の一例を説明する。もちろん本実施形態の用途において、入力されるデータが画像であることは必須の要件ではない。例えば、音や言語など、上記の入出力関係を実現する特徴抽出器が構成可能な限り、任意のデータを対象としてよい。
【0038】
図3は、特徴抽出器30の構成の一例を示す図である。この構成は畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)に基づいており、畳み込み層、プーリング層、全結合層、幾何変換層の4種類の層の組み合わせにより構成することができる。例えば、図3に示す特徴抽出器30は、畳み込み層31、プーリング層32、畳み込み層33、プーリング層34、全結合層35及び全結合層36を含んで構成されている。畳み込み層、プーリング層、全結合層については広く知られた公知の層であり、例えば参考文献1に記載のものを用いればよい。
【0039】
[参考文献1]Alex Krizhevsky,Ilya Sutskever,Geoffrey E. Hinton,"ImageNet Classification with Deep Convolutional Neural Networks",Proceedings of Neural Information Processing Systems,2012.
【0040】
このように構成された特徴抽出器30は、入力された画像から、固定長のベクトルの特徴である画像特徴量を出力することができる。もちろん、特徴抽出器30のニューラルネットワークの構成はこれに限られるものではなく、先の入出力要件を満たす限りどんな構成を採っても構わない。好ましくは、最終層にL2正規化層を加える。こうすることによって、特徴を頑健化できるため、好適である。
【0041】
また、例えば、図3に示した特徴抽出器30の構成は、畳み込み層及びプーリング層の組み合わせを2回繰り返し、その後に全結合層を2層積んだ構造となっているが、この2層の全結合層の代わりに、参考文献2、あるいは、参考文献3などに開示されている大域的プーリング層を用いても構わない。
【0042】
[参考文献2]Kaiming He,Xiangyu Zhang,Shaoqing Ren,Jian Sun,"Deep Residual Learning for Image Recognition",Proceedings of Conference on Computer Vision and Pattern Recognition,2016.
【0043】
[参考文献3]Giorgos Tolias,Ronan Sicre,Herve Jegou,"Particular Object Retrieval with Integral Max-Pooling of CNN Activations",ArXiv Preprint,インターネット<URL:https://arxiv.org/abs/1511.05879>,2015.
【0044】
このように、特徴抽出器30を、全結合が無い構成にすることにより、入力画像のサイズに依らず、常に同じ次元数の特徴を求めることができるため好適である。
【0045】
以降、特に断りのない限り、特徴抽出器に入力されるデータとしては画像を想定するものとし、特徴抽出器の構成としては図3に示すものを用いた場合を例に説明する。
【0046】
<<<学習処理>>>
特徴学習装置10が特徴抽出器を学習する学習処理について説明する。
学習処理は、特徴抽出装置20が特徴抽出器を用いて入力データから特徴を抽出する特徴抽出処理を行う前に、少なくとも一度実施される必要がある処理である。より具体的には、学習処理は、特徴抽出器30のパラメータであるニューラルネットワークの重みを学習用データに基づいて適切に決定するための処理である。
【0047】
本実施形態における学習処理を実行するには、予め学習用データを準備しておく必要がある。M個のデータの集合{Ia1,Ia2,…,IaM}により構成されたアンカーデータ候補群をS、アンカーデータ候補群Sに含まれるM個のデータのうち、少なくとも一つに対して類似した内容を持つポジティブデータをI、アンカーデータ候補群Sに含まれるM個のデータのうち、少なくとも一つに対して異なる内容を持つネガティブデータをIと表す。このとき、学習用データは、(S,I,I)をひとまとまりとした三つ組みの集合によって構成される。ポジティブデータIは第一比較データの一例であり、ネガティブデータIは第二比較データの一例である。
【0048】
この条件を満たす限り、学習用データを構成するための手段は本実施形態の要点とは無関係であり、どのような手段で準備しても構わない。人手によって準備しても構わないし、自動的に準備しても構わない。
【0049】
上記のような学習用データが存在するもとで、本実施形態における学習処理は、次の工程により実行される。すなわち、入力部11が上記の学習用データを入力した後、特徴学習装置10の演算部13は、以下に示す学習処理を実行する。
【0050】
図4は、本実施形態における特徴学習装置10の演算部13が実行する学習処理の概要を示すフロー図である。まず、ステップS101において、特徴抽出部14は、アンカーデータ候補群S中の全てのデータと、ポジティブデータI及びネガティブデータIとに対して特徴抽出器30を適用する。これにより、特徴抽出部14は、アンカーデータ候補群Sに含まれる全データそれぞれの特徴の集合X、ポジティブデータIの特徴x、及び、ネガティブデータIの特徴xを抽出する。特徴の集合Xに含まれるxai(i=1,2,…,M)は、アンカーデータ候補群Sに含まれるデータIaiの特徴である。
【0051】
続いて、ステップS102において、選択部15は、抽出された特徴の集合X、特徴x及び特徴xを基に、アンカーデータ候補群SからアンカーデータI及びその特徴xを選択する。続いて、ステップS103において、学習部16は、特徴x、特徴x及び特徴xを基に、損失関数の値を求める。続いて、ステップS104において、学習部16は、損失関数の値を小さくするように特徴抽出器30のパラメータの値を更新する。
【0052】
ステップS105において、学習部16は、所定の終了条件が満たされか否かを判定する。学習部16が所定の終了条件が満たすと判定するまで、演算部13は、上記のステップS101~S104を繰り返す。演算部13は、学習部16が終了条件を満たしたと判定した場合に学習処理を終了する。
【0053】
<<<各処理の処理詳細>>>
特徴抽出部14は、先に説明した特徴抽出器30を各データに対して適用することにより、ステップS101の処理を直ちに実行することができる。以降、ステップS102~S104の各処理の詳細処理について、本実施形態における一例を説明する。
【0054】
[ステップS102:アンカー選択処理]
この処理では、選択部15は、アンカーデータ候補群S及び特徴の集合Xから、アンカーデータI及びその特徴xを選択する。ステップS101において、特徴抽出器30により、アンカーデータ候補群S内の全てのデータの特徴の集合X、ポジティブデータIの特徴x、ネガティブデータIの特徴xが得られている。アンカーデータ候補群Sに含まれるデータのうち少なくとも一つは、ポジティブデータIと類似した内容を持つデータであるとし、また、アンカーデータ候補群Sに含まれるデータのうち少なくとも一つは、ネガティブデータIと異なる内容を持つデータであるとする。
【0055】
本アンカー選択処理の目的は、アンカーデータ候補群Sに含まれるデータの中から、ポジティブデータIと類似した内容を持ち、かつ、ネガティブデータIとは異なる内容を持つ見込みの高いデータをアンカーデータIとして選択することである。これを実現するために、本実施形態の一例では、選択部15は、下記の式(3)が示す基準に基づいてアンカーデータの特徴xを選択する。
【0056】
【数3】
【0057】
選択部15は、アンカーデータ候補群Sに含まれるデータIa1,Ia2,・・・,IaMのうち、式(3)により選ばれた特徴xに対応するデータをアンカーデータIとして選択する。ここで、argminは、最小値のインデックスを取得する関数である。mはマージンと呼ばれるパラメータであり、例えば0.2などの値に事前に設定される。d(x,x)は、xとxの距離を表す距離関数であり、任意の距離関数を用いることができるが、例えばユークリッド距離とすればよい。
【0058】
selは、式(2)のTriplet Lossと同様の形式を持つ関数である。すなわち、式(3)は、特徴Xに含まれる特徴xa1,…,xaMのうち、最小のTriplet Lossを与える特徴をアンカーデータの特徴xとして選び出すという処理をしている。Lselは、特徴xと特徴xとの距離が小さいほど、また、特徴xと特徴xとの距離が大きいほど小さい値を取る関数である。Lselが小さい値の特徴xaiを選び出すことにより、ポジティブデータIと類似した内容を持ち、かつ、ネガティブデータIとは異なる内容を持つ見込みの高いデータを選び出すことが期待できる。
【0059】
なお、Lselは必ずしも上記の数式の形でなくとも構わず、望ましいアンカーデータを選択可能なものであれば任意の形態をとって構わない。例えば、ポジティブデータIと類似した内容を持つかどうかのみを重視し、ネガティブデータIと異なる内容を持つかどうかについては問わないような場合には、式(3)に代えて、下記の式(4)に示す選択基準を用いることもできる。
【0060】
【数4】
【0061】
あるいは、選択部15は、アンカーデータ候補群Sに含まれるデータ同士の相対比較によって選択を行うこともあり得る。
【0062】
また、本実施形態においては、選択部15は、特徴抽出器30を用いて抽出した特徴の集合X、特徴x及び特徴xを元に、アンカーデータ候補群Sに含まれる各データIai(i=1,2,…,M)と、ポジティブデータI及びネガティブデータIとの内容の類似性を判断している。しかし、特徴抽出器30を用いて抽出した特徴を用いることも必須の要件ではなく、選択部15は、別の特徴抽出器を用いて抽出した特徴を利用することも可能である。
以上がステップS102において選択部15が行う処理である。
【0063】
[ステップS103:損失計算処理]
この処理では、学習部16は、ステップS102において選択されたアンカーデータI/xと、ポジティブデータI/x及びネガティブデータI/xとに基づいて、特徴の良しあしを評価する損失を求める。ステップS102の後は、ポジティブデータIと内容が近く、また、ネガティブデータIとは内容が遠いことが期待できるアンカーデータIが選択されている。したがって、式(2)に示す通常のTriplet Lossを損失として採用することが可能である。以降、本実施形態では、Triplet Loss(Ltri)を損失関数として用いる場合を例に説明を続ける。
【0064】
なお、必ずしもTriplet Lossを用いる必要はなく、少なくとも特徴xと特徴xが近いほど小さい値を取る関数であれば、任意の損失関数を用いて構わない。さらに、特徴xと特徴xが遠いほど小さい値を取る関数を用いる方が好ましい。例えば、式(1)に示すContrastive Lossを利用することも可能である。
以上がステップS103において学習部16が行う処理である。
【0065】
[ステップS104:モデルパラメータ更新]
この処理では、学習部16は、ステップS103において求めた損失Ltriの値を小さくするように特徴抽出器30のパラメータの値を更新する。損失Ltriは、特徴抽出器30のパラメータに対して区分的に微分可能であることを鑑みれば、勾配法により損失Ltriの値が小さくなるようにパラメータの値を更新可能である。例えば、確率的勾配降下法に基づいて学習する場合、特徴抽出器30のあるパラメータをwとおくと、1ステップあたり、以下の式(5)に基づいてパラメータwの値を更新すればよい。
【0066】
【数5】
【0067】
通常のニューラルネットワークの構成層については、任意のパラメータwに対する損失Ltriの微分値を、誤差逆伝搬法により計算することが可能である。このように構成することにより、任意のパラメータwに対するLtriの微分値を式(5)により計算することができる。もちろん、モーメンタム項を利用する、重み減衰を利用するなど、一般的な確率的勾配降下法の改善法を導入しても構わないし、あるいは別の勾配降下法を利用しても構わない。
【0068】
なお、損失関数が特徴xと特徴xが近いほど大きい値を取り、かつ、特徴xと特徴xが近いほど小さい値を取る関数である場合、学習部16は、損失関数の値を最大化するようにパラメータの値を更新する。
以上がステップS104において学習部16が行う処理である。
【0069】
演算部13は、上記のステップS101~ステップS104の処理を、終了条件を満たすまで繰り返す。終了条件は任意のものを定めて構わない。例えば、「所定の回数(例えば100回など)繰り返したら終了」、「誤差の現象が一定の繰り返し回数の間、一定の範囲内に収まっていたら終了」などとすればよい。
以上、本実施形態の一例における学習処理の詳細を説明した。
【0070】
<<<特徴抽出処理>>>
本実施形態の一例における特徴抽出処理の詳細を説明する。
特徴抽出装置20は、上記の学習処理により更新された特徴抽出器を記憶部7に記憶する。入力部22は、特徴抽出対象のデータの入力を受け付ける。演算部23は、記憶部21に記憶される特徴抽出器に、入力部22が受け付けたデータを入力して、特徴を得る。出力部24は、演算部23が得た特徴を出力する。
【0071】
<第2の実施形態>
第2の実施形態は、物体の種類・姿勢を推定する問題へ適用した場合の本発明の実施形態の一例である。ここでは、非特許文献3で取り扱っている、画像中に写る物体の名称と、その物体の姿勢パラメータ(位置・大きさ・角度)とを同時に推定する問題に対して、本発明を利用した場合の実施形態の一例について説明する。
【0072】
<<概要>>
本実施形態における情報処理方法では、画像を入力として受け付けると、姿勢パラメータ、変換画像及び特徴を出力するニューラルネットワークを特徴抽出器として用いる。ここでいう姿勢パラメータとは、画像中に写る物体の姿勢を表す値であり、より具体的には、例えば、物体の位置・大きさ・角度を与える行列であるアフィン変換行列や射影変換行列の要素である。また、姿勢とは、基準となる姿勢から、物体にどのような剛体運動が与えられたかを示す値である。変換画像は、姿勢パラメータによる姿勢変換を入力画像に適用した場合に得られる変換後の画像を意味する。また、特徴は、入力画像に写る物体の特徴をベクトル表現したものであり、物体の名称を特定するために用いられるものである。特徴抽出器の構成は、上記のような入出力関係を実現できるものであれば任意の構成を採ることができる。
【0073】
<<装置構成>>
本実施形態による特徴学習装置及び特徴抽出装置について説明する。
図5は、特徴学習装置40の構成を示すブロック図である。図5に示す特徴学習装置40は、学習処理を行って、特徴抽出器を学習する。特徴学習装置40は、入力部41と、演算部42とを備える。演算部42は、モデル記憶部421と、推定部422と、学習部423とを備える。なお、モデル記憶部421は、特徴学習装置40の内部にあっても外部にあっても構わないが、本実施形態においては内部に配する構成を採る。
【0074】
入力部41は、所定の被写体を基準姿勢で撮影した画像である1枚以上の第一の画像、所定の被写体を任意の姿勢で撮影した画像である1枚以上の第二の画像、及び所定の被写体とは異なる被写体を任意の姿勢で撮影した画像である1枚以上の第三の画像の入力を受け付ける。モデル記憶部421は、後述する図8に示す特徴抽出器70と、後述する図10に示す特徴抽出器70Aの各々のパラメータの値を記憶する。特徴抽出器70は、画像の入力を受け、姿勢パラメータ、変換画像及び特徴を出力するニューラルネットワークである。特徴抽出器70Aは、特徴抽出器70から姿勢パラメータ及び変換画像を出力する変換層を除いた構成であり、画像の入力を受け、特徴を出力するニューラルネットワークである。
【0075】
推定部422は、特徴抽出器70により、第二の画像に撮像された所定の被写体の基準姿勢に対する相対的な姿勢を表す姿勢パラメータを推定する。推定部422は、推定された姿勢パラメータを用いて、第二の画像を変換することにより、基準姿勢の所定の被写体が撮像されている第四の画像を求めると共に、第四の画像の特徴を抽出する。また、推定部422は、第一の画像に対して特徴抽出器70Aにより当該画像の特徴を抽出する。また、推定部422は、特徴抽出器70Aにより、第三の画像の特徴を抽出する。推定部422は、抽出した特徴に基づいて、第一の画像の中からアンカーデータとなる画像(アンカー画像)を選択する。このように、推定部422は、第一の画像と、第三の画像と、第二の画像から変換された第四の画像とのそれぞれから特徴を抽出する特徴抽出部としての機能と、抽出された特徴に基づいて第一の画像の中からアンカーデータとなる画像を選択する選択部との機能を含む。
【0076】
学習部423は、第四の画像の画素値とアンカー画像の画素値との距離の総和が最小となり、かつ、アンカー画像と第三の画像の特徴との距離が遠くなり、かつ、アンカー画像の特徴と第四の画像の特徴との距離が近くなるように、特徴抽出器70及び特徴抽出器70Aのパラメータの値を学習し、モデル記憶部421を更新する。
【0077】
演算部42は、上記の推定部422、及び学習部423の各処理を、予め定められた終了条件を満たすまで繰り返し行う。
【0078】
図6は、特徴抽出装置50の構成を示すブロック図である。同図に示す特徴抽出装置50は、後述の特徴抽出・姿勢推定処理に従って、入力された推定対象の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を表す姿勢パラメータを推定すると共に、入力された推定対象の画像の被写体を認識する。特徴抽出装置50は、入力部51と、演算部52と、出力部53とを備える。演算部52は、モデル記憶部521と、推定部522と、参照画像データベース(DB)523と、照合部524とを備える。なお、モデル記憶部521及び参照画像データベース523は、特徴抽出装置50の内部にあっても外部にあっても構わないが、本実施形態においては内部に配する構成を採る。
【0079】
入力部51は、所定の被写体が撮影された推定対象の画像である第一の画像の入力を受け付ける。モデル記憶部521は、特徴学習装置40によって学習された、特徴抽出器70のパラメータの値を記憶する。
【0080】
推定部522は、特徴抽出器70により、入力部51が入力した第一の画像に撮像された所定の被写体の、基準姿勢に対する相対的な姿勢を表す姿勢パラメータを推定し、推定された姿勢パラメータを用いて、その第一の画像を幾何変換することにより、基準姿勢の所定の被写体が撮像されている第二の画像を求めると共に、第二の画像の特徴を抽出する。
【0081】
参照画像データベース523は、被写体情報が既知の各参照画像の特徴を記憶している。被写体情報は、例えば、被写体の名称である。参照画像の特徴は、予め特徴抽出器70又は特徴抽出器70Aによって抽出しておくものとする。照合部524は、推定部522によって抽出された特徴と、参照画像の特徴とを照合することにより、第一の画像の被写体の名称を認識する。
【0082】
出力部53は、演算部52により推定された姿勢パラメータ、第二の画像、及び第一の画像の被写体の名称を出力する。
【0083】
特徴学習装置40及び特徴抽出装置50の各々は、一例として、図7に示すコンピュータ60によって実現される。図7は、コンピュータ60のハードウェア構成を示す図である。コンピュータ60は、CPU61と、メモリ62と、プログラム63を記憶した記憶部64と、モニタを含む表示部65と、キーボードやマウスを含む入力部66とを有する。CPU61、メモリ62、記憶部64、表示部65及び入力部66は、バス67を介して互いに接続されている。
【0084】
記憶部64はHDD、SSD、フラッシュメモリ等によって実現される。記憶部64には、コンピュータ60を特徴学習装置40又は特徴抽出装置50として機能させるためのプログラム63が記憶されている。CPU61は、プログラム63を記憶部64から読み出してメモリ62に展開し、プログラム63を実行する。なお、プログラム63をコンピュータ可読媒体に格納して提供してもよい。
【0085】
<<特徴抽出器の構成>>
図8は、特徴抽出器70の構成の一例を示す図である。この構成はCNNに基づいており、畳み込み層、プーリング層、全結合層、変換層の4種類の層の組み合わせで構成される。例えば、図8に示す特徴抽出器70は、変換層71、畳み込み層72、プーリング層73、畳み込み層74、プーリング層75、全結合層76及び全結合層77を含んで構成されている。
【0086】
変換層71は、画像を入力として受け付けると、その姿勢パラメータ、並びに、姿勢パラメータに基づく画像変換を入力画像に適用して得られる姿勢変換画像を出力できるような層であればどんなものでも構わない。例えば、変換層71として、非特許文献4に記載のSTNを用いることができる。
【0087】
図9は、変換層71の構成例を示す図である。例えば、図9に示すように、変換層71は、姿勢パラメータ推定層711と、画像変換層712とにより構成される。姿勢パラメータ推定層711は、変換層71に入力された画像Uから、アフィン変換行列、又は、射影変換行列により表現される姿勢パラメータθを推定する。姿勢パラメータ推定層711は、画像Uを入力として受け付け、当該画像Uに写る物体のアフィン変換行列、又は、射影変換行列の要素を出力するニューラルネットワークにより構成される。画像変換層712は、姿勢パラメータ推定層711により推定された姿勢パラメータθを画像Uに適用することによって姿勢変換画像Vを求め、求めた姿勢変換画像Vを出力する。このように構成される変換層71は、入力画像に写る物体が、基準姿勢に対して位置・大きさ・角度の観点でどの程度ずれているかを直接推定することができるため、好適である。姿勢変換画像Vは、畳み込み層72に入力される。
【0088】
もちろん、本実施形態における特徴抽出器70のニューラルネットワークの構成はこれに限られるものではなく、先の入出力要件を満たす限りどんな構成を採っても構わない。好ましくは、最終層にL2正規化層を加える。こうすることによって、特徴量を頑健化できるため、好適である。
【0089】
また、例えば、図8に示した特徴抽出器70の構成は、畳み込み層及びプーリング層の組み合わせを2回繰り返し、その後全結合層を2層積んだ構造となっているが、この2層の全結合層の代わりに、参考文献2、あるいは、参考文献3などに開示されている大域的プーリング層を用いても構わない。
【0090】
このように、特徴抽出器70を、全結合が無い構成にすることにより、入力画像のサイズに依らず、常に同じ次元数の特徴量を求めることができるため好適である。
【0091】
以降、簡単のため、図8に示す特徴抽出器70を用いる場合を例にとり、説明を続ける。
【0092】
<<処理概要>>
本実施形態による特徴抽出装置50の演算部52が実行する情報処理方法は、特徴抽出器70を用いて特徴及び姿勢を求める特徴抽出・姿勢推定処理を実施する。また、本実施形態の特徴学習装置40の演算部42が実行する学習方法は、特徴抽出・姿勢推定処理に用いられる特徴抽出器70を学習する学習処理を実施する。以降、まず学習処理について詳述し、その後、特徴抽出・姿勢推定処理について詳細に述べる。
【0093】
<<<学習処理>>>
学習処理は、特徴抽出装置50が特徴抽出・姿勢推定処理を行う前に、特徴学習装置40によって少なくとも一度実施される必要のある処理である。より具体的には、学習処理は、特徴抽出器70のパラメータの値であるニューラルネットワークの重みを学習用データに基づいて適切に決定するための処理である。なお、本学習処理を実行する上では、先に説明した特徴抽出器70(ニューラルネットワーク)において、変換層を除いた特徴抽出器70Aも用いる。
【0094】
図10は、特徴抽出器70Aの構成の一例を示す図である。特徴抽出器70Aは、図8に示す特徴抽出器70から変換層71を除いたニューラルネットワークの構成である。以降、変換層71を有するニューラルネットワークにより構成された特徴抽出器70を変換層付きモデル70、変換層71を持たない特徴抽出器70Aを変換層無しモデル70Aと呼称する。ここで、変換層71以外のパラメータは、変換層付きモデル70と変換層無しモデル70Aとの両モデルで共通のものを利用する。すなわち、図8図10の例では、対応する同じ符号の畳み込み層、全結合層のパラメータは全て同じ値を持つ。
【0095】
本実施形態における学習処理を実行するには、予め学習用画像データを準備しておく必要がある。この学習用画像データは、画像の三つ組みの集合により構成される。この三つ組みとは、ある物体を複数の基準姿勢で写した画像群S={Ia1,Ia2,…,IaM}、画像Iと同一の被写体を別姿勢で写した画像I、画像Iとは異なる被写体を写した画像Iの三つからなり、異なる画像の組み合わせからなる三つ組みの集合により学習用画像データが構成されるとする。
【0096】
このような三つ組みの学習用画像データは、次の(a)~(d)の要件を満たす画像集合があれば自動的に構成することが可能である。
【0097】
(a)1枚以上の画像を含み、各画像は少なくとも一つの物体を写したものであること。
(b)学習用画像データ全体を通して2種類以上の物体を含み、同一種類の物体を写した画像が少なくとも2枚以上存在すること。
(c)全種類の物体に対して、それぞれ基準姿勢となる物体画像が存在・特定可能であり、当該画像は背景が無いこと。
(d)同一種類の物体を写した画像同士が互いに識別可能であること。
【0098】
上記(a)~(d)の要件が揃ったものであれば、例えば、以下の(1)~(3)の処理により、上記三つ組みを一組構成することができる。
【0099】
(1)基準姿勢となる画像をランダムに複数枚選び、これらを画像群Sとする。
(2)Sと同一の被写体を写した基準姿勢でない画像をランダムに選び、これを画像Iとする。
(3)画像群S及び画像Iと別の被写体を写した画像をランダムに選び、これを画像Iとする。
【0100】
(1)~(3)の処理を、所望の組数が揃うまで繰り返せば、学習用画像データを構成可能である。なお、実際には、上記要件を満たすような学習用画像データを準備する手段は本発明の要点とは無関係であり、どのような手段で準備しても構わない。人手によって準備しても構わないし、自動的に準備しても構わない。
【0101】
上記のような学習用画像データが存在するもとで、本実施形態における学習処理は、次の工程により実行される。すなわち、入力部41が上記の学習用画像データを入力した後、特徴学習装置40の演算部42は、以下に示す学習処理を実行する。
【0102】
図11は、本実施形態における特徴学習装置40の学習処理の概要を示すフロー図である。まず、ステップS201において推定部422は、画像Iに対して変換層付きモデル70を適用し、変換層71により画像Iを変換して得られた画像Iptと、画像Iptの画像特徴量である特徴xptを求める。
【0103】
続いてステップS202において、推定部422は、画像群S、画像Iのそれぞれに対して変換層無しモデル70Aを適用し、アンカーデータ候補群Sに含まれる全データそれぞれの画像特徴量の集合Xと、画像Iの画像特徴量である特徴xを求める。集合Xに含まれる特徴xai(i=1,2,…,M)は、アンカーデータ候補群Sに含まれるデータIaiの画像特徴量である。ステップS203において、推定部422は、画像Ipt及び画像群Sを基に、アンカーデータIと、その特徴xを選択する。
【0104】
続いてステップS204において、学習部423は、特徴xptと特徴xに基づき、アピアランス損失を求める。続いてステップS205において、学習部423は、特徴x、特徴xpt及び特徴xを基に、特徴損失を求める。続いてステップS206において、学習部423は、アピアランス損失と特徴損失の重み付き和を小さくするように変換層付きモデル70のパラメータの値を更新し、変換層無しモデル70Aにパラメータの値をコピーする。
【0105】
ステップS207において、学習部423は、所定の終了条件が満たされか否かを判定する。学習部423が所定の終了条件を満たすと判定するまで、演算部42は、上記ステップS201~S206の処理を繰り返す。演算部42は、学習部423が終了条件を満たしたと判定した場合に学習処理を終了する。
【0106】
<<<各処理の処理詳細>>>
推定部422は、先に説明した変換層付きモデル70、変換層無しモデル70Aを各画像に対して適用することにより、ステップS201及びステップS202の処理を直ちに実行することができる。以降、ステップS203~S206の各処理の詳細処理について、本実施形態における一例を説明する。
【0107】
[ステップS203:アンカー選択処理]
この処理では、推定部422は、画像群Sからアンカー画像Iを選択し、さらにその特徴xを選択する。本アンカー選択処理の目的は、画像群Sに含まれる画像Iai(i=1,2,…,M)の中から、画像Iに近い見た目を持つ画像をアンカーデータIとして選択することである。これを実現するために、本実施形態では、推定部422は、下記の式(6)が示す基準に基づいてアンカー画像Iを選択する。
【0108】
【数6】
【0109】
推定部422は、画像Ia1,Ia2,・・・,IaMのうち、式(6)により選ばれた画像をアンカー画像Iとして選択する。d(I,I)は、画像Iと画像Iの距離を表す距離関数であり、任意の距離関数を用いることができるが、例えばL1距離とすればよい。
【0110】
appは、画像の画素値の距離を求める関数であり、本実施形態の一例ではアピアランス損失と呼ぶものである。すなわち、式(6)は、画像群Sに含まれる画像Iai(i=1,2,…,M)のうち、変換後の画像Iptに最も見た目が近い画像をアンカー画像Iとして選び出すという処理をしている。
【0111】
変換層付きモデル70による姿勢推定の精度は、アンカー画像Iと画像Iとの姿勢ずれが小さいほど良好な傾向がある。同様の着想を提案している非特許文献3は、このような選択処理を経ずに、常に単一のアンカー画像Iを用いる構成を採っている。それがゆえに、アンカー画像Iとの姿勢ずれが大きい画像Iが入力された場合に、姿勢推定誤差が大きくなるという問題があった。本実施形態によれば、複数の姿勢を持つ画像群Sから、画像Iに最も近い画像をアンカー画像Iとして選ぶことができるようになり、アンカー画像Iと画像Iとの姿勢ずれを小さくすることができるようになる。結果として、非特許文献3に開示されている技術に比べ、本実施形態は、姿勢推定精度を改善することが可能になる。
【0112】
アピアランス損失Lappは必ずしも上式の形でなくとも構わず、画像Iとアンカー画像Iが同じ見えになっているほど小さい値を取り、I=Iの場合に0となるようなものであれば任意の形態をとって構わない。例えば、利用する距離関数dはL1距離でなくともよく、例えばL2距離などを用いても構わない。また、必ずしも画像中の全画素の距離を求めずともよく、一部領域についてのみ求めても構わない。
以上がステップS203において推定部422が行う処理である。
【0113】
[ステップS204:アピアランス損失計算処理]
この処理では、学習部423は、同一の被写体を含むアンカー画像I、並びに、画像Iptに基づいて、その画像としての見え方の差異であるところのアピアランス損失を求める。本実施形態の一例においては、既にステップS203においてアピアランス損失Lappの値を求めているので、この値をそのまま利用すればよい。
【0114】
アピアランス損失Lappは、変換後の画像Iptとアンカー画像Iが同じ見えになっているほど小さい値を取り、Ipt=Iの場合に0となる。すなわち、様々な画像Iに対してこの値が小さくするように変換層71のパラメータを学習することによって、どんな姿勢で撮影された被写体であっても、常に基準姿勢時の被写体を撮影したアンカー画像Iに近づけるような姿勢変換を行うことができるようになる。結果として、背景画素を除いた後の姿勢パラメータは、基準姿勢との差異を推定することができるようになる。
以上がステップS204において学習部423が行う処理である。
【0115】
[ステップS205:特徴損失計算処理]
この処理では、学習部423は、特徴を学習するために必要な特徴損失を求める。画像認識の観点から言えば、同一の被写体を含むアンカー画像I、画像Iptの特徴x、特徴xptはベクトルとして互いに近く、また、逆に、異なる被写体を含むアンカー画像I、画像Iの特徴x、特徴xはベクトルとして互いに遠くなっている方が好ましい。このような特徴を得ることにより、特徴の近さに基づいて同一被写体を検索したり、あるいは、例えばK近傍法などの識別法により被写体の名称を推定したりすることもできるようになる。
【0116】
このような特徴を学習するための損失は様々な形態のものが有り得るが、例えば下記の式(7)に示すような特徴損失Lfeatを用いることができる。
【0117】
【数7】
【0118】
特徴損失Lfeatは、式(2)に示すTriplet Lossと同様の形式を持つ関数である。この特徴損失Lfeatは、特徴xptが特徴xよりもL2距離の意味で特徴xにm以上近ければ最小値である0を取り、そうでなければ、0よりも大きな値を取る。したがって、様々な三つ組みに対してこの値を小さくするように変換層付きモデル70のパラメータを学習することによって、同一の被写体を撮影した画像ほど近い特徴を出力できるようになるのである。
以上がステップS205において学習部423が行う処理である。
【0119】
[ステップS206:モデルパラメータ更新]
この処理では、学習部423は、ステップS204で求めたアピアランス損失LappとステップS205で求めた特徴損失Lfeatの重み付き和Lを小さくするように、変換層付きモデル70のパラメータの値を更新する。具体的には、重み付き和Lは下記のように定義される。
【0120】
【数8】
【0121】
λは、アピアランス損失Lapp及び特徴損失Lfeatの二つの損失のバランスを取るパラメータであり、任意の実数値を設定してよい。例えば、λ=100などとすればよい。
【0122】
アピアランス損失Lapp、及び特徴損失Lfeat共に、ニューラルネットワークのパラメータに対して区分的に微分可能であることを鑑みれば、勾配法により学習可能である。例えば、確率的勾配降下法に基づいて学習する場合、変換層付きモデルのあるパラメータをwとおくと、学習部423は、1ステップあたり、以下の式(9)に基づいてパラメータwの値を更新すればよい。
【0123】
【数9】
【0124】
通常のニューラルネットワークの構成層については、任意のパラメータwに対する重み付き和Lの微分値を、誤差逆伝搬法により計算することが可能である。もちろん、モーメンタム項を利用する、重み減衰を利用するなど、一般的な確率的勾配降下法の改善法を導入しても構わないし、あるいは別の勾配降下法を利用しても構わない。
【0125】
学習部423は、上記に基づいて全てのパラメータの値を更新した後、変換層71を除く全てのパラメータの値を変換層無しモデル70Aへとコピーする。
以上がステップS106において学習部423が行う処理である。
【0126】
演算部42は、ステップS101~ステップS106までの処理を、終了条件を満たすまで繰り返す。終了条件は任意のものを定めて構わない。例えば、「所定の回数(例えば100回など)繰り返したら終了」、「誤差の現象が一定の繰り返し回数の間、一定の範囲内に収まっていたら終了」などとすればよい。
以上、本実施形態の一例における学習処理の詳細を説明した。
【0127】
<<<特徴抽出・姿勢推定処理>>>
続いて、本実施形態の一例における特徴抽出装置50が行う情報処理方法の特徴抽出・姿勢推定処理について説明する。
【0128】
学習処理が済んだ変換層付きモデル70を用いれば、特徴抽出・姿勢推定処理は非常に単純である。具体的には、特徴抽出装置50の入力部51は、推定対象の画像の入力を受け付ける。推定部522は、特徴学習装置40が更新したパラメータ値を用いた変換層付きモデル70に、入力部51が受け付けた推定対象の画像を入力し、変換層71が出力した姿勢パラメータ及び背景除去後の画像と、全結合層77が出力した画像特徴量を得る。その後、推定部522は、全てのアンカー候補画像群Sの集合から、画像特徴量、または、画像として、画像Iに最も近いアンカー画像Iを特定する。変換層71が出力した姿勢パラメータは、このアンカー画像Iからのずれ(相対的な姿勢)を推定したものである。そこで、推定部522は、推定対象の画像の姿勢パラメータとしてさらにこのアンカー画像Iを得ればよい。なお、本実施形態の一例において、姿勢パラメータはアフィン変換行列、あるいは、射影変換行列を想定しているが、両者ともに、当該行列から物体の大きさ、位置(平行移動)、及び角度は容易に求めることが可能である。
【0129】
照合部524は、推定部522が得た推定対象の画像の画像特徴量と、参照画像データベース523に記憶されている参照画像の画像特徴量とを照合し、照合により選択した参照画像に対応付けられた被写体の名称を取得する。出力部53は、推定対象の画像の姿勢パラメータ、背景除去後の画像、及び、被写体の名称を出力する。
以上が、本実施形態の一例における情報処理方法の特徴抽出・姿勢推定処理である。
【0130】
以上の通り、本発明の実施形態により、データの対または三つ組みに対して、それらの内容が近いか遠いかを判断できるようなラベルが得られないような場合においても、データから有効な特徴を抽出することのできる特徴抽出器を学習可能である、という効果が得られる。また、上述した実施形態によれば、その学習された特徴抽出器を用いて、データの特徴を抽出可能である、という効果が得られる。
【0131】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。上述した実施形態においては、特徴学習装置と特徴抽出装置とを別々の装置として構成する場合を例に説明したが、一つの装置として構成してもよい。
【0132】
また、上述した実施形態における情報処理方法及び特徴学習方法を、汎用演算処理装置、記憶装置等を備えたコンピュータやサーバ等により構成して、各処理がプログラムによって実行されるものとしてもよい。このプログラムは記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。もちろん、その他いかなる構成要素についても、単一のコンピュータやサーバによって実現しなければならないものではなく、ネットワークによって接続された複数のコンピュータに分散して実現しても構わない。
【0133】
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。
【符号の説明】
【0134】
10…特徴学習装置、11…入力部、12…記憶部、13…演算部、14…特徴抽出部、15…選択部、16…学習部、20…特徴抽出装置、21…記憶部、22…入力部、23…演算部、24…出力部、30…特徴抽出器、40…特徴学習装置、41…入力部、42…演算部、50…特徴抽出装置、51…入力部、52…演算部、53…出力部、60…コンピュータ、61…CPU、62…メモリ、63…プログラム、64…記憶部、65…表示部、66…入力部、67…バス、70…特徴抽出器、70A…特徴抽出器、421…モデル記憶部、422…推定部、423…学習部、521…モデル記憶部、522…推定部、523…参照画像データベース、524…照合部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11