JP2016139176A - 画像処理装置、画像処理システム、画像処理方法、およびその画像処理プログラム - Google Patents

画像処理装置、画像処理システム、画像処理方法、およびその画像処理プログラム Download PDF

Info

Publication number
JP2016139176A
JP2016139176A JP2015012157A JP2015012157A JP2016139176A JP 2016139176 A JP2016139176 A JP 2016139176A JP 2015012157 A JP2015012157 A JP 2015012157A JP 2015012157 A JP2015012157 A JP 2015012157A JP 2016139176 A JP2016139176 A JP 2016139176A
Authority
JP
Japan
Prior art keywords
layer
image processing
value
image
learning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015012157A
Other languages
English (en)
Inventor
克樹 今井
Katsuki Imai
克樹 今井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2015012157A priority Critical patent/JP2016139176A/ja
Publication of JP2016139176A publication Critical patent/JP2016139176A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

【課題】登録されているカテゴリーが更新されたときにかかる多層ニューラルネットワークの学習時間を従来よりも短縮することができる画像処理装置を提供する。
【解決手段】ニューラルネットワーク100は、入力画像101に対してそれぞれ異なる空間フィルタ103,105を作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行ない、最終的に複数の特徴量のそれぞれを生成する前層110と、当該複数の特徴量に対してそれぞれ異なる重み係数w1A〜w3Nを作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に入力画像101を複数のカテゴリーのいずれかに分類する後層とを含む。画像処理装置は、カテゴリーが更新された場合に、前層110におけるフィルタ103,105の値を修正せずに、後層150における重み係数w1A〜w3Nの値を修正する。
【選択図】図2

Description

本開示は、画像処理装置の制御に関し、特に、入力画像を予め登録されている複数のカテゴリーのいずれかに分類するための自動学習機能を備える画像処理装置の制御に関する。
従来、カメラなどで対象物を撮影して得られた入力画像を予め登録されているカテゴリーのいずれかに自動的に分類するための画像処理装置が開発されている。画像処理装置は、顔や静脈などの生体画像を用いたセキュリティ装置、手書き文字の認識、工業製品の欠陥検査など、様々な分野に応用されている。画像処理装置は、所謂機械学習により、分類対象物の特徴的な部分の画像情報(以下、「特徴量」ともいう。)を画像から自動的に抽出する。画像処理装置は、機械学習処理によって予め抽出された特徴量を入力画像から抽出された特徴量と比較することにより、分類対象物が入力画像に含まれているか否かを判断する。
機械学習に関する先行技術文献として、たとえば、特開2005−352900号公報(特許文献1)がある。当該公報は、機械学習の一例である多層ニューラルネットワークを用いた画像分類方法を開示している。多層ニューラルネットワークは、従来の機械学習とは異なり、特徴量の値や組み合わせだけでなく分類に必要な特徴量自体を学習することができる。
特開2005−352900号公報
多層ニューラルネットワークによる学習は、大量の学習画像と膨大な計算処理とを必要とする。そのため、多層ニューラルネットワークには、学習処理において非常に時間がかかるという問題がある。したがって、登録されているカテゴリーが更新される度に多層ニューラルネットワークを再学習することは困難である。
本開示は上述のような問題点を解決するためになされたものであって、その目的は、登録されているカテゴリーが更新されたときにかかる多層ニューラルネットワークの学習時間を従来よりも短縮することが可能な画像処理装置を提供することである。他の局面における目的は、登録されているカテゴリーが更新されたときにかかる多層ニューラルネットワークの学習時間を従来よりも短縮することが可能な画像処理システムを提供することである。さらに他の局面における目的は、登録されているカテゴリーが更新されたときにかかる多層ニューラルネットワークの学習時間を従来よりも短縮することが可能な画像処理方法を提供することである。さらに他の局面における目的は、登録されているカテゴリーが更新されたときにかかる多層ニューラルネットワークの学習時間を従来よりも短縮することが可能な画像処理プログラムを提供することである。
ある局面に従うと、各層に配置された複数の処理ユニットが多段接続された多層ニューラルネットワークを用いて、入力画像を登録されている複数のカテゴリーのいずれかに分類する、自動学習機能を備えた画像処理装置が提供される。多層ニューラルネットワークは、入力画像を最初の層の入力値である特徴量マップとして、各層における各処理ユニットが入力値である特徴量マップに対してそれぞれ異なる空間フィルタを作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に複数の特徴量のそれぞれを生成するための前層と、複数の特徴量を最初の層の入力値である特徴量として、各層における各処理ユニットが入力値である特徴量に対してそれぞれ異なる係数を作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に入力画像を複数のカテゴリーのいずれかに分類するための後層とを含む。後層において作用させる係数は、複数のカテゴリーのそれぞれに関連付けられている画像を学習することによって予め得られたものである。画像処理装置は、複数のカテゴリーの更新を受け付けるための更新部と、複数のカテゴリーが更新された場合に、前層において作用させる空間フィルタのそれぞれの値を更新せずに、後層における係数のそれぞれの値を更新するための学習部とを備える。
好ましくは、前層において空間フィルタを作用させる処理は、入力値である特徴量マップに対して空間フィルタにより畳みこみ演算処理を行なうことによりなされる。
好ましくは、後層において係数を作用させる処理は、入力値である特徴量に対して係数を積算する演算処理を行なうことによりなされる。
好ましくは、画像処理装置は、前層において作用させる空間フィルタのそれぞれの値と、後層における係数のそれぞれの値とを他の装置に更新させる命令を、当該他の装置に送信するための送信部をさらに備える。
好ましくは、送信部は、現在時刻が予め定められた時刻になったことに基づいて、命令を他の装置に送信する。
好ましくは、学習部は、後層における係数のそれぞれの値を最終層から順に更新し、更新後の係数を用いた分類結果が予め定められた基準を満たした時点で学習処理を終了する。
好ましくは、前層は、複数の層を含む。前層の各層における各処理ユニットは、前の層における各処理ユニットから出力される特徴量マップに対してそれぞれ異なる空間フィルタを作用させた結果を次段の層における各処理ユニットに出力する。
他の局面に従うと、各層に配置された複数の処理ユニットが多段接続された多層ニューラルネットワークを用いて、入力画像を登録されている複数のカテゴリーのいずれかに分類する、自動学習機能を備えた画像処理システムが提供される。多層ニューラルネットワークは、入力画像を最初の層の入力値である特徴量マップとして、各層における各処理ユニットが入力値である特徴量マップに対してそれぞれ異なる空間フィルタを作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に複数の特徴量のそれぞれを生成するための前層と、複数の特徴量を最初の層の入力値である特徴量として、各層における各処理ユニットが入力値である特徴量に対してそれぞれ異なる係数を作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に入力画像を複数のカテゴリーのいずれかに分類するための後層とを含む。後層において作用させる係数は、複数のカテゴリーのそれぞれに関連付けられている画像を学習することによって予め得られたものである。画像処理システムは、第1画像処理装置と、第2画像処理装置とを備える。第1画像処理装置は、複数のカテゴリーの更新を受け付けるための更新部と、複数のカテゴリーが更新された場合に、前層において作用させる空間フィルタのそれぞれの値を更新せずに、後層における係数のそれぞれの値を更新するための第1学習部とを含む。第2画像処理装置は、予め定められたタイミングで、前層において作用させる空間フィルタのそれぞれの値と、後層における係数のそれぞれの値とを更新するための第2学習部とを含む。
さらに他の局面に従うと、各層に配置された複数の処理ユニットが多段接続された多層ニューラルネットワークを用いて、入力画像を登録されている複数のカテゴリーのいずれかに分類する、自動学習機能を備えた画像処理方法が提供される。多層ニューラルネットワークは、入力画像を最初の層の入力値である特徴量マップとして、各層における各処理ユニットが入力値である特徴量マップに対してそれぞれ異なる空間フィルタを作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に複数の特徴量のそれぞれを生成するための前層と、複数の特徴量を最初の層の入力値である特徴量として、各層における各処理ユニットが入力値である特徴量に対してそれぞれ異なる係数を作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に入力画像を複数のカテゴリーのいずれかに分類するための後層とを含む。後層において作用させる係数は、複数のカテゴリーのそれぞれに関連付けられている画像を学習することによって予め得られたものである。画像処理方法は、複数のカテゴリーの更新を受け付けるステップと、複数のカテゴリーが更新された場合に、前層において作用させる空間フィルタのそれぞれの値を更新せずに、後層における係数のそれぞれの値を更新するステップとを備える。
さらに他の局面に従うと、各層に配置された複数の処理ユニットが多段接続された多層ニューラルネットワークを用いて、入力画像を登録されている複数のカテゴリーのいずれかに分類する、自動学習機能を備えた画像処理プログラムが提供される。多層ニューラルネットワークは、入力画像を最初の層の入力値である特徴量マップとして、各層における各処理ユニットが入力値である特徴量マップに対してそれぞれ異なる空間フィルタを作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に複数の特徴量のそれぞれを生成するための前層と、複数の特徴量を最初の層の入力値である特徴量として、各層における各処理ユニットが入力値である特徴量に対してそれぞれ異なる係数を作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に入力画像を複数のカテゴリーのいずれかに分類するための後層とを含む。後層において作用させる係数は、複数のカテゴリーのそれぞれに関連付けられている画像を学習することによって予め得られたものである。画像処理プログラムは、コンピュータに、複数のカテゴリーの更新を受け付けるステップと、複数のカテゴリーが更新された場合に、前層において作用させる空間フィルタのそれぞれの値を更新せずに、後層における係数のそれぞれの値を更新するステップとを実行させる。
ある局面において、登録されているカテゴリーが更新されたときにかかる多層ニューラルネットワークの学習時間を従来よりも短縮することができる。
本発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
第1の実施の形態における画像処理装置における分類処理を概略的に示す図である。 第1の実施の形態におけるニューラルネットワークの構成を示した図である。 第1の実施の形態におけるニューラルネットワークの後層における処理を概略的に示した図である。 第1の実施の形態における画像処理装置が実行する部分学習処理を示すフローチャートである。 図2に示される状態から新たなカテゴリーが登録された場合のニューラルネットワークの構成を示した図である。 図2に示される状態からカテゴリーが削除された場合のニューラルネットワークの構成を示した図である。 第1の実施の形態における部分学習処理における誤差逆伝播法を示すフローチャートである。 第1の実施の形態におけるニューラルネットワークの後層の一部分を示す図である。 第1の実施の形態における画像処理装置が実行する全学習処理を示すフローチャートである。 第1の実施の形態における全学習処理における誤差逆伝播法を示すフローチャートである。 第1の実施の形態における画像処理装置の機能構成を示すブロック図である。 第1の実施の形態における画像処理装置の主要なハードウェア構成を示すブロック図である。 第2の実施の形態における画像処理システムの機能構成を示すブロック図である。 第2の実施の形態におけるサーバの主要なハードウェア構成を示すブロック図である。 第3の実施の形態におけるニューラルネットワークの後層を概略的に示した図である。 第3の実施の形態におけるニューラルネットワークの構成を示した図である。 第3の実施の形態における画像処理装置が実行する部分学習処理を示すフローチャートである。 第3の実施の形態における部分学習処理の誤差逆伝播法を示すフローチャートである。
以下、図面を参照しつつ、本実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。また、以下で説明される各実施の形態は、選択的に組み合わされてもよい。
<第1の実施の形態>
[画像処理装置200]
図1を参照して、第1の実施の形態に従う画像処理装置200について説明する。図1は、画像処理装置200における分類処理を概略的に示した図である。
画像処理装置200は、たとえば、顔認証システムなどに応用される。画像処理装置200は、カメラ230によってゲートを通過する人物の顔を撮影して得られた照合画像を予め登録されている顔画像と照合し、当該人物が登録されている人物であるか否かを判断する。画像処理装置200は、当該人物が登録されている人物であると判断した場合に、当該人物がゲートを通過することを許可する。
以下では、顔認証システムとしての画像処理装置200について説明を行なうが、画像処理装置200は、顔認証システムに限定されない。たとえば、画像処理装置200は、文字認識装置、工業製品の欠陥検査装置、またはその他の画像分類装置であってもよい。
[ニューラルネットワーク100の概要]
登録対象の人物が写っている顔画像から特徴的な部分(すなわち、特徴量)を自動的に学習する方法として、ニューラルネットワークがある。以下では、図2および図3を参照して、ニューラルネットワーク100について説明する。図2は、ニューラルネットワーク100の構成を示した図である。図3は、ニューラルネットワーク100の後層150における処理を概略的に示した図である。
ニューラルネットワーク100は、たとえば、多層ニューラルネットワークの一種であるコンボリューショナルニューラルネットワーク(CNN:Convolutional Neural Networks)として構成される。あるいは、ニューラルネットワーク100は、制限ボルツマンマシン(Restricted Boltzmann Machine)として構成されてもよい。
図2に示されるように、ニューラルネットワーク100は、前層110と、後層150とを含む。前層110は、フィルタ103,105などを用いたフィルタリング処理により入力画像101を顔画像の分類に適するように抽象化する。後層150は、入力画像101を抽象化した結果に対して重み係数w1A〜w3Nを積算して得られた結果に基づいて、入力画像101が属するカテゴリーを決定する。このように、後層150は、入力画像101が属するカテゴリーの決定に直接的に関わるため、カテゴリーが更新されたときの分類精度に対する影響は、前層110よりも後層150の方が大きい。
この点に着目して、画像処理装置200は、カテゴリーが更新された場合に、前層110におけるフィルタ103,105のそれぞれの値を更新せずに、後層150における重み係数w1A〜w3Nのそれぞれの値のみを更新する。画像処理装置200は、ニューラルネットワーク100の全部ではなく一部のみを更新することにより、再学習にかかる時間を大幅に短縮することができる。
[画像処理装置200の主要機能]
画像処理装置200は、ニューラルネットワーク100を構築するための学習機能と、ニューラルネットワーク100に基づいて入力画像101が属するカテゴリーを特定するための分類機能とを有する。以下では、画像処理装置200の分類機能と学習機能とについて説明する。
(画像処理装置200の分類機能)
まず、図2および図3を再び参照して、画像処理装置200の分類機能について説明する。上述したように、画像処理装置200は、前層110と後層150とを含む。
前層110は、畳み込み層とサブサンプリング層とを有する。畳み込み層は、入力画像に対してフィルタ(空間フィルタ)を作用させるための処理ユニットを含む。処理ユニットのそれぞれは、分類対象物を含む入力画像101に対して互いに異なる複数のフィルタのそれぞれを作用させることで特徴量マップをそれぞれ生成する。フィルタを作用させる処理は、たとえば、入力画像にフィルタを畳み込む演算処理を行なうことでなされる。図2の例においては、畳み込み層は、入力画像101に対してフィルタ103を畳み込むことで特徴量マップ121を生成している。また、畳み込み層は、入力画像101に対してフィルタ105を畳み込むことで特徴量マップ122を生成している。特徴量マップ121,122は、二次元のデータである。より具体的には、特徴量マップ121,122において、座標情報(空間情報)と画素値とが互いに対応付けられている。フィルタ103,105の値は、後述する学習処理により予め決定されている。
次に、前層110は、特徴量マップ121,122に対してサンプリング処理を行なう。サンプリング処理の一例として、前層110は、特徴量マップ121,122を局所領域に分割し、各局所領域の平均値または最大値を算出する。図2の例では、前層110は、特徴量マップ121に対してサンプリング処理を実行することにより特徴量マップ123を生成し、特徴量マップ122に対してサンプリング処理を実行することにより特徴量マップ124を生成している。
後層150は、前層110から出力される特徴量マップ123,124のそれぞれから特徴量を抽出し、抽出した特徴量に対して重み係数w1A〜w3Nを積算した結果に基づいて、入力画像101を予め登録されている複数のカテゴリーのいずれかに分類する。重み係数w1A〜w3Nは、カテゴリーのそれぞれに関連付けられている画像(以下、「学習画像」ともいう。)を学習することによって予め得られたデータである。各カテゴリーは、たとえば人物の名前やID(Identification)などの個人の識別情報で示される。
図3を参照して、後層150における分類機能についてさらに詳細に説明する。図3には、前層110から出力される特徴量マップ123,124が示されている。後層150は、生物の神経回路を模したニューロン素子151〜154、161〜163(処理ユニット)を有する。ニューロン素子161〜163は、照合スコアを出力する層(出力層)であり、登録されているカテゴリー数に合わせて予め準備されている。ニューロン素子151〜154の数は、任意である。
ニューロン素子151〜154のそれぞれには互いに異なる行列を特徴量マップ123に積算して得られた値と、互いに異なる行列を特徴量マップ124に積算して得られた値とがニューロン素子151〜154のそれぞれに入力されている。ニューロン素子151は、自身に入力された値を加算した上で重み係数w2Aを積算し、積算した結果xを活性化関数f(x)に代入した値を出力層のニューロン素子163に出力する。ニューロン素子152は、自身に入力された値を加算した上で重み係数w2Bを積算し、積算した結果xを活性化関数f(x)に代入した値を出力層のニューロン素子163に出力する。ニューロン素子154は、自身に入力された値を加算した上で重み係数w2Nを積算し、積算した結果を出力層のニューロン素子163に出力する。
ニューロン素子163は、自身に入力された値を加算した結果xを活性化関数f(x)に代入する。これにより、照合スコアyが出力される。活性化関数f(x)は、任意の関数である。たとえば、活性化関数f(x)は、以下の式(2)〜(4)のいずれかで示される。なお、式(3)に示される活性化関数f(x)は、シグモナイド関数と呼ばれる。また、式(4)に示される活性化関数f(x)は、双曲線正接関数と呼ばれる。
y=f(x)・・・(1)
f(x)=x・・・(2)
f(x)=1/(1+exp(−x))・・・(3)
f(x)=tanh(x)・・・(4)
後層150は、出力層に含まれる全てのニューロン素子について上記の処理を実行する。これにより、画像処理装置200は、各カテゴリーに対する入力画像101の照合スコアを算出する。後層150は、算出した照合スコアの中で最も高い照合スコアに対応するカテゴリーを入力画像101が属するカテゴリーとして特定する。このとき、後層150は、当該照合スコアが予め定められた値を超えない場合には、入力画像が属するカテゴリーが存在しないと判断してもよい。
(画像処理装置200の学習機能)
次に、画像処理装置200の学習機能について説明する。画像処理装置200は、後述の記憶装置220(図12参照)に格納されている学習画像群222(図12参照)を学習する。学習画像群222に含まれる学習画像のそれぞれには、登録されているカテゴリーのうちのいずれかのカテゴリーが関連付けられている。すなわち、学習画像には、正解のカテゴリーが関連付けられている。画像処理装置200は、各学習画像を正解のカテゴリーに分類されるように、前層110(図2参照)におけるフィルタの値と後層150(図2参照)における重み係数の値とを更新する。
画像処理装置200は、学習機能として、ニューラルネットワーク100の後層150のみを更新する部分学習機能と、ニューラルネットワーク100の前層110および後層150の両方を更新する全学習機能とを有する。以下では、図4〜図9を参照して、画像処理装置200の部分学習機能および全学習機能について説明する。
なお、図4〜図9に示される処理は、画像処理装置200における後述のCPU(Central Processing Unit)202(図12参照)がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子、その他のハードウェアによって実行されてもよい。
(a)部分学習機能
まず、図4を参照して、部分学習処理について説明する。図4は、画像処理装置200が実行する部分学習処理を示すフローチャートである。部分学習処理は、要するに、前層110におけるフィルタの値を更新せずに、後層150における重み係数の値のみを更新する処理である。
より具体的には、ステップS12において、CPU202は、上述の後層150における重み係数(たとえば、図2の重み係数w1A〜w3N)の値を初期化する。一例として、CPU202は、初期値として重み係数に乱数を設定する。
ステップS14において、CPU202は、後述の記憶装置220(図12参照)に格納されている学習画像群222から1枚の学習画像をランダムに取得する。再度ステップS14が実行される場合には、CPU202は、学習画像群222のうちから前回とは異なる学習画像を取得する。
ステップS16において、CPU202は、ニューラルネットワーク100に学習画像を入力し、上述の分類処理を実行する(図2参照)。ステップS12で重み係数が初期化されているため、学習初期の時点における分類性能は、望ましいものではない。
ステップS18において、CPU202は、学習画像を正しいカテゴリーに分類するように後層150における重み係数の値を誤差逆伝播法により更新する。誤差逆伝播法の詳細については後述する。
ステップS20において、CPU202は、学習画像群222の全てをニューラルネットワーク100に入力したか否かを判断する。CPU202は、学習画像群222の全てをニューラルネットワーク100に入力したと判断した場合(ステップS20においてYES)、制御をステップS22に切り替える。そうでない場合には(ステップS20においてNO)、CPU202は、ステップS14の処理を再び実行する。
ステップS22において、CPU202は、入力画像に対するニューラルネットワーク100の出力値(照合スコア)と、予め定められた望ましい出力値との間の誤差の平均値が予め定められた閾値以下になっているか否かを判断する。ステップS22において、CPU202は、当該平均値が予め定められた閾値以下であると判断した場合(ステップS22においてYES)、部分学習処理を終了する。そうでない場合には(ステップS22においてNO)、CPU202は、制御をステップS24に切り替える。
ステップS24において、CPU202は、学習回数が予め定められた回数以上になったか否かを判断する。ここでいう学習回数は、ステップS14〜S20の処理を繰り返した回数に相当する。CPU202は、学習回数が予め定められた回数以上になったと判断した場合(ステップS24においてYES)、部分学習処理を終了する。そうでない場合には(ステップS24においてNO)、CPU202は、ステップS14の処理を再び実行する。
(a−1)部分学習処理の具体例1
図5を参照して、部分学習処理の具体例1について説明する。図5は、図2に示される状態から新たなカテゴリーが登録された場合のニューラルネットワーク100の構成を示した図である。図5には、カテゴリー「人物F」が新たに登録された例が示されている。
画像処理装置200は、カテゴリー「人物F」が新たに登録されたことに基づいて、カテゴリー「人物F」に対応するニューロン素子164を後層150の出力層に新たに追加する。ニューロン素子164は、前の層であるコネクト層のニューロン素子151〜154に接続される。その後、画像処理装置200は、図4に示される部分学習処理を開始する。このとき、図4のステップS12において、画像処理装置200は、既存のニューロン素子161〜163に対する重みw1A〜w3Nと同様に、ニューロン素子164に対する重みw4A〜w4Nも初期化する。その後の処理(すなわち、ステップS14〜S24の処理)は、上述の通りであるので説明を繰り返さない。
(a−2)部分学習処理の具体例2
図6を参照して、部分学習処理の具体例2について説明する。図6は、図2に示される状態からカテゴリーが削除された場合のニューラルネットワーク100の構成を示した図である。図6には、カテゴリー「人物B」が削除された例が示されている。
画像処理装置200は、カテゴリー「人物B」が削除されたことに基づいて、カテゴリー「人物B」に対応するニューロン素子162を削除する。その後、画像処理装置200は、前の層であるコネクト層のニューロン素子151〜154からニューロン素子162への接続を全て取り除いた状態で、図4に示される部分学習処理を開始する。
(a−3)誤差逆伝播法
図7および図8を参照して、図4のステップS18における誤差逆伝播法について説明する。図7は、部分学習処理における誤差逆伝播法を示すフローチャートである。図8は、ニューラルネットワーク100の後層150の一部分を示す図である。なお、以下では、後層150が複数の層で構成されているという前提で誤差逆伝播法について説明する。
誤差逆伝播法は、要するに、後層150の出力層(図2参照)からの出力値(照合スコア)と予め定められた望ましい出力値との間の誤差を算出し、重み係数の値に応じて当該誤差を前の層に繰り返し伝播し、伝播された誤差に応じて重み係数の値を更新する処理である。
より具体的な処理として、ステップS42において、CPU202は、注目する層番号bを後層150の出力層である第L層に設定する。
ステップS44において、CPU202は、b層目の各ニューロン素子の局所誤差δを計算する。CPU202は、出力層のi番目におけるニューロン素子の局所誤差δLiを以下の式(5)によって計算する。
δLi = E’(yLi)・f’(x)・・・(5)
式(5)におけるE’(yLi)は、各ニューロン素子の出力値と望ましい出力値との間の誤差を評価する関数である。当該関数には、たとえば、ユークリッド距離や交差エントロピーなどの尺度が用いられる。式(5)におけるf’(x)は、出力層における活性化関数f(x)(上記式(2)〜(4)参照)の微分値である。
ステップS46において、CPU202は、後層150のb層目と(b−1)層目の間における重み係数の修正量Δwを計算する。修正量Δwliは、以下の式(6)で算出される。なお、図8に示されるように、出力層の前の層である第(L−1)層目におけるi番目のニューロン素子からの出力値をyi、第(L−1)層目と第L層目との間におけるl番目の重みをwliとする。
Δwli = αΔwli(t-1)−ε(δl・yi)・・・(6)
式(6)におけるΔwli(t-1)は、前回の修正量である。式(6)におけるαおよびεは、それぞれ、学習速度を調整するための任意のパラメータである。
ステップS48において、CPU202は、注目する層番号bを前の層であるb−1に設定する。すなわち、CPU202は、注目する層を現在注目している層から前の層に移す。
ステップS50において、CPU202は、層番号bが後層150の第1層目であるか否かを判断する。CPU202は、層番号bが後層150の第1層目であると判断した場合(ステップS50においてYES)、制御をステップS52に切り替える。そうでない場合には(ステップS50においてNO)、CPU202は、ステップS44の処理を再び実行する。
なお、CPU202は、ステップS44〜S48の処理を再び実行する場合において、ステップS44で出力層以外について局所誤差δbiを算出するときには、以下の式(7)により局所誤差δbiを算出する。また、CPU202は、ステップS44〜S48の処理を再び実行する場合において、ステップS46における修正量Δwliを算出するときには、上記式(6)を用いる。
δbi = f’(x)・Σll・yi)・・・(7)
ステップS52において、CPU202は、ステップS46で算出した修正量で重み係数の値を更新し、1回の更新処理を終了する。CPU202は、図7に示される処理を繰り返すことで、入力画像に対して特徴抽出を行なうことなく、入力画像を正しいカテゴリーに分類する方法を学習できる。
(b)全学習機能
次に、図9および図10を参照して、画像処理装置200のCPU202によって実行される全学習処理について説明する。全学習処理は、要するに、前層110におけるフィルタの値と、後層150における重み係数の値との両方を更新する処理である。図9は、画像処理装置200が実行する全学習処理を示すフローチャートである。図10は、全学習処理における誤差逆伝播法を示すフローチャートである。なお、図9のステップS12A,S18A以外の処理は、図4に示される各ステップの処理と同じであるので、説明を繰り返さない。
ステップS12Aにおいて、CPU202は、上述の前層110におけるフィルタ(たとえば、図2のフィルタ103,105)の値と、上述の後層150における重み係数(たとえば、図2の重み係数w1A〜w3N)における値を初期化する。一例として、CPU202、初期値として、フィルタおよび重み係数に乱数を設定する。
ステップS18Aにおいて、CPU202は、ニューラルネットワーク100が学習画像を正しいカテゴリーに分類するように、フィルタの値と重み係数の値とを誤差逆伝播法により更新する。
ここで、図10を参照して、ステップS18Aにおける誤差逆伝搬法についてさらに詳細に説明する。なお、図10のステップS50A,S52A以外の処理は、図7に示される各ステップの処理と同じであるので、説明を繰り返さない。
ステップS50Aにおいて、CPU202は、層番号bが前層110の第1層目であるか否かを判断する。CPU202は、層番号bが前層110の第1層目であると判断した場合(ステップS50AにおいてYES)、制御をステップS52Aに切り替える。そうでない場合には(ステップS50AにおいてNO)、CPU202は、ステップS44の処理を再び実行する。ステップS50Aの処理により、ステップS44〜S48の処理が前層110および後層150の層数の分だけ繰り返される。その結果、CPU202は、後層150の重み係数の値の修正量だけでなく、前層110のフィルタの値の修正量を算出できる。
ステップS52Aにおいて、CPU202は、ステップS46で算出した修正量に基づいて、前層110のフィルタの値と後層150の重み係数の値とを更新する。
[画像処理装置200の機能構成]
図11を参照して、第1の実施の形態に従う画像処理装置200の機能について説明する。図11は、画像処理装置200の機能構成を示すブロック図である。図11に示されるように、画像処理装置200は、その機能構成として、全学習部250と、更新部255と、部分学習部260と、入力部270と、出力部275とを含む。これらの機能は、たとえば、後述するCPU202(図12参照)によって実現される。
全学習部250は、上述の全学習処理を実行する。すなわち、全学習部250は、ニューラルネットワーク100の前層110におけるフィルタのそれぞれの値と、ニューラルネットワーク100の後層150における重み係数の値との両方を更新する。ある局面において、全学習処理は、現在時刻が予め設定されている時刻になったとき、画像処理装置200の操作者から全学習処理を実行するための操作を受け付けたときに実行される。他の局面において、全学習処理は、任意のタイミングで一度だけ実行される。すなわち、全学習処理は、一度実行された後には再度実行されない。
更新部255は、予め定め登録されているカテゴリーの更新を受け付ける。カテゴリーの更新は、たとえば、画像処理装置200の操作者から新たな学習画像の登録を受け付けた場合に実行される。更新部255は、新たな学習画像の登録を受け付けると、当該学習画像を記憶装置220に格納し、部分学習処理を実行するための命令を部分学習部260に出力する。また、更新部255は、新たな学習画像の登録を受け付けると、現在のカテゴリーに、当該学習画像に関連付けられているカテゴリーを追加する。
部分学習部260は、上述の部分学習処理を実行する。すなわち、部分学習部260は、ニューラルネットワーク100の前層110におけるフィルタの値を更新せずに、ニューラルネットワーク100の後層150における重み係数の値のみを更新する。部分学習処理は、たとえば、画像処理装置200の操作者によって新たな学習画像が登録される度に実行される。
入力部270は、上述のカメラ230(図1参照)から、分類処理を実行する対象となる照合画像の入力を受け付ける。入力部270は、照合画像の入力を受け付けたことに基づいて、分類処理を実行するための命令を出力部275に出力する。
出力部275は、ニューラルネットワーク100を参照して、照合画像に対する分類処理を実行し、照合画像がカテゴリーに属する可能性を示す照合スコアを登録されているカテゴリーごとに出力する。出力部275は、最大の照合スコアに関連付けられているカテゴリーを照合画像が属するカテゴリーとして特定し、当該カテゴリーを照合結果として出力する。
[画像処理装置200のハードウェア構成]
図12を参照して、第1の実施の形態に従う画像処理装置200のハードウェア構成の一例について説明する。図12は、画像処理装置200の主要なハードウェア構成を示すブロック図である。
図12に示されるように、画像処理装置200は、ROM(Read Only Memory)201と、CPU202と、RAM(Random Access Memory)203と、ネットワークI/F(インタフェース)204と、カメラI/F205と、ディスプレイI/F206と、記憶装置220とを含む。
ROM201は、オペレーティングシステム(OS:Operating System)、画像処理装置200で実行される制御プログラムなどを格納する。CPU202は、オペレーティングシステムや画像処理装置200の制御プログラムなどの各種プログラムを実行することで、画像処理装置200の動作を制御する。RAM203は、ワーキングメモリとして機能し、プログラムの実行に必要な各種データを一時的に格納する。
ネットワークI/F204は、アンテナ204Aを介して、他の通信機器との間でデータを送受信する。他の通信機器は、たとえば、後述するサーバ300、その他の通信機能を有する装置などを含む。画像処理装置200は、アンテナ204Aを介して、本実施の形態に従う各種の処理を実現するための画像処理プログラム224をダウンロードできるように構成されてもよい。
カメラI/F205は、たとえば、画像処理装置200とカメラ230とを接続するための端子である。CPU202は、カメラI/F205を介してカメラ230とデータ通信を行なう。カメラ230、たとえば、監視カメラ、デジタルカメラ、またはその他の被写体を撮影することが可能な撮像装置である。カメラ230は、被写体を撮像して生成した画像をROM201、RAM203、記憶装置220などにカメラI/F205を介して順次転送する。なお、カメラ230および画像処理装置200は、一体として構成されてもよいし、図12に示されるように別個に構成されてもよい。
ディスプレイI/F206は、たとえば、画像処理装置200とディスプレイ232とを接続するための端子である。ディスプレイ232は、たとえば、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、またはその他の表示機器などを含む。ディスプレイ232は、ニューラルネットワーク100における分類結果や学習結果を表示する。また、ディスプレイ232は、タッチセンサ(図示しない)と組み合わされてタッチパネルとして構成されてもよい。これにより、画像処理装置200の操作者は、学習画像を登録するための操作や学習処理を実行するための操作をタッチ操作で行なうことが可能になる。
記憶装置220は、たとえば、ハードディスクや外付けの記憶装置などの記憶媒体である。一例として、記憶装置220は、学習対象の学習画像群222と、本実施の形態に従う各種の処理を実現するための画像処理プログラム224とを保持する。学習画像群222に含まれる学習画像は、たとえば、顔画像である。各学習画像には、個人の識別情報を示すカテゴリーが関連付けられている。
画像処理プログラム224は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う画像処理が実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う画像処理装置200の趣旨を逸脱するものではない。さらに、本実施の形態に従う画像処理プログラム224によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、画像処理装置200と後述のサーバ300とが協働して、本実施の形態に従う画像処理を実現するようにしてもよい。さらに、少なくとも1つのサーバが本実施の形態に従う画像処理を実現する、所謂クラウドサービスの形態で画像処理装置200が構成されてもよい。
[小括]
以上のようにして、本実施の形態に従う画像処理装置200は、カテゴリーが更新された場合に、ニューラルネットワーク100の一部である後層150のみを学習する。その結果、画像処理装置200は、ニューラルネットワーク100の全部を再学習する場合に比べて、学習時間を短縮することができる。
<第2の実施の形態>
[概要]
第1の実施の形態に従う画像処理装置200は、ニューラルネットワーク100の全体を再学習する全学習処理を自身で行なっていた。ニューラルネットワーク100の全体を再学習するためには、非常に大きな演算能力が必要となる。一般的に、セキュリティーシステムの末端のコンピュータは、それほど大きな演算能力を有していない可能性が高いため、全学習処理を実行することが困難である。そこで、第2の実施の形態に従う画像処理装置200Aは、サーバやワークステーションなどの演算能力の高い他の装置に全学習処理を実行させる。
[画像処理システム500の機能構成]
図13を参照して、画像処理システム500の機能構成について説明する。図13は、画像処理システム500の機能構成を示すブロック図である。図13に示されるように、画像処理システム500は、画像処理装置200Aと、画像処理装置としてのサーバ300とを備える。
画像処理装置200Aは、その機能構成として、更新部255と、部分学習部260と、入力部270と、送信部280と、受信部285とを含む。サーバ300は、その機能構成として、受信部350と、全学習部355と、送信部360とを含む。更新部255と、部分学習部260と、入力部270と、出力部275とについては、図11で説明した通りであるので説明を繰り返さない。
画像処理装置200Aの送信部280は、ニューラルネットワーク100の前層110におけるフィルタの値とニューラルネットワーク100の後層における重み係数の値とをサーバ300に学習させる命令を、当該サーバ300に送信する。ある局面において、当該命令は、現在時刻が予め定められた登録されている時刻になったことに基づいてサーバ300に送信される。これにより、ニューラルネットワーク100の全学習処理が定期的に実行される。予め定められた時刻は、たとえば、夜間の時刻である。他の局面において、上記命令は、画像処理装置200Aの操作者から全学習処理を実行するための操作を受け付けたときに送信される。
サーバ300の全学習部355は、受信部350が学習命令を受信したことに基づいて、記憶装置320に格納されている学習画像群322を用いて上述の全学習処理を実行する。すなわち、全学習部355は、ニューラルネットワーク330の前層におけるフィルタのそれぞれの値と、ニューラルネットワーク330の後層における重み係数の値との両方を学習する。
サーバ300の送信部360は、全学習部355による全学習処理が終了したことに基づいて、ニューラルネットワーク330を画像処理装置200Aの受信部285に送信する。受信部285がニューラルネットワーク330を受信すると、画像処理装置200Aは、既存のニューラルネットワーク100を新たなニューラルネットワーク330に置き換える。
[サーバ300のハードウェア構成]
上述したように、画像処理システム500は、画像処理装置200Aとサーバ300とを含む。以下では、図14を参照して、サーバ300のハードウェア構成の一例について説明する。図14は、サーバ300の主要なハードウェア構成を示すブロック図である。なお、画像処理装置200Aのハードウェア構成は、第1の実施の形態に従う画像処理装置200と同じであるので、その説明については繰り返さない。
サーバ300は、ROM301と、CPU302と、RAM303と、ネットワークI/F304と、記憶装置320とを含む。
ROM301は、オペレーティングシステム、サーバ300で実行される制御プログラムなどを格納する。CPU302は、オペレーティングシステムやサーバ300の制御プログラムなどの各種プログラムを実行することで、サーバ300の動作を制御する。RAM303は、ワーキングメモリとして機能し、プログラムの実行に必要な各種データを一時的に格納する。
ネットワークI/F304は、ネットワーク400を介して、他の通信機器との間でデータを送受信する。他の通信機器は、たとえば、画像処理装置200A、その他の通信機能を有する装置などを含む。サーバ300は、ネットワーク400を介して、本実施の形態に従う各種の処理を実現するための画像処理プログラム324をダウンロードできるように構成されてもよい。
記憶装置320は、たとえば、ハードディスクや外付けの記憶装置などの記憶媒体である。一例として、記憶装置320は、学習対象の学習画像群322と、本実施の形態に従う各種の処理を実現するための画像処理プログラム324とを保持する。学習画像群322に含まれる学習画像は、たとえば、顔画像である。学習画像には、個人の識別情報を示すカテゴリーが関連付けられている。
画像処理プログラム324は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う画像処理が実現される。さらに、画像処理プログラム324によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、サーバ300と他の装置とが協働して、本実施の形態に従う画像処理を実現するようにしてもよい。
[小括]
以上のようにして、本実施の形態においては、画像処理装置200Aは、全学習処理をサーバ300などの高性能なコンピュータに実行させる。そのため、画像処理装置200Aは、演算コストが低い部分学習処理を実行できる程度の性能を備えればよい。結果として、画像処理装置200Aの価格を下げることができる。
また、画像処理装置200Aは、ニューラルネットワークの一部を再学習(部分学習)する。その結果、画像処理装置200Aは、新たに顔画像が登録された場合に、ニューラルネットワークを短時間で更新することができる。一方で、画像処理装置200Aは、ニューラルネットワークの全体をサーバ300に再学習(全学習)させる。これにより、画像処理装置200Aは、分類精度を改善することができる。
<第3の実施の形態>
[概要]
第1の実施の形態に従う画像処理装置200は、ニューラルネットワーク100の後層150における重み係数を全て再学習していた。これに対して、第3の実施の形態に従う画像処理装置200Bは、ニューラルネットワーク100の後層150の最終層から順に重み係数を再学習し、当該学習結果が予め定められた基準を満たした場合に学習処理を終了する。これにより、画像処理装置200Bは、部分学習処理にかかる時間を短縮することができる。
以下では、図15を参照して、第3の実施の形態に従う画像処理装置200Bについて説明する。図15は、第3の実施の形態における後層150を概略的に示した図である。まず、画像処理装置200Bにおける後層150の分類機能について説明する。次に、後層150を構築するための学習機能について説明する。なお、画像処理装置200Bのハードウェア構成などその他の点については第1の実施の形態に画像処理装置200と同じであるので、それらの説明は繰り返さない。
(画像処理装置200Bの分類機能)
ニューラルネットワーク100の後層は、第1層目の層157と第2層目の層177と出力層とを含む。層157は、ニューロン素子151〜154を含む。ニューロン素子151〜154の数は、任意である。層177は、ニューロン素子172〜174を含む。ニューロン素子172〜174の数は、任意である。出力層は、照合スコアを出力する層であり、ニューロン素子162〜164を含む。ニューロン素子162〜164は、登録されているカテゴリー数に合わせて予め準備されている。
層157のニューロン素子151〜154のそれぞれには、互いに異なる行列を特徴量マップ127に積算して得られた値と、互いに異なる行列を特徴量マップ128に積算して得られた値とが入力される。ニューロン素子151は、自身に入力された値を加算した上で重み係数w4Aを積算し、積算した結果を特徴量として次段のニューロン素子173に出力する。ニューロン素子152は、自身に入力された値を加算した上で重み係数w4Bを積算し、積算した結果を特徴量として次段のニューロン素子173に出力する。ニューロン素子154は、自身に入力された値を加算した上で重み係数w4Nを積算し、積算した結果を特徴量として次段のニューロン素子173に出力する。重み係数w4A〜w4Nは、上述の学習処理により予め決定されている。
ニューロン素子172は、自身に入力された値を加算した上で重み係数w5Aを積算し、積算した結果を特徴量として出力層のニューロン素子163に出力する。ニューロン素子173は、自身に入力された値を加算した上で重み係数w5Bを積算し、積算した結果を特徴量として出力層のニューロン素子163に出力する。ニューロン素子154は、自身に入力された値を加算した上で重み係数w4Nを積算し、積算した結果を特徴量として出力層のニューロン素子163に出力する。重み係数w5A〜w5Nは、上述の学習処理により予め決定されている。
このように、後層150は、前層110から出力される特徴量を最初の層の入力値である特徴量として、各層における各処理ユニットが入力値である特徴量に対してそれぞれ異なる重み係数を作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なう。後層150は、当該出力値に基づいて、最終的に入力画像101を複数のカテゴリーのいずれかに分類する。
なお、上述のように、後層150において係数を作用させる処理は、入力値である特徴量に対して係数を積算する演算処理を行なうことによりなされる。
(画像処理装置200Bの学習機能)
次に、後層150を構築するための画像処理装置200Bの学習機能について説明する。画像処理装置200Bは、登録カテゴリーが更新された場合に、層177における重み係数w5A〜w5Nの値を再学習し、更新後の重み係数w5A〜w5Nを用いた分類結果が予め定められた基準を満たさないときに、層157における重み係数w4A〜w4Nの値をさらに更新する。すなわち、層177における重み係数w5A〜w5Nの値を更新した結果が予め定められた基準を満たした場合には、画像処理装置200Bは、層157における重み係数w4A〜w4Nの値を再学習しない。予め定められた基準は、たとえば、入力画像に対するニューラルネットワーク100の出力値と、望ましい出力値との間の誤差の平均値が予め定められた閾値以下であるときに満たされる。
なお、後層150は、図15に示されるよりも多くの層で構成されてもよい。この場合、画像処理装置200Bは、後層150における重み係数のそれぞれの値を最終層から順に更新し、更新後の係数を用いた分類結果が予め定められた基準を満たした時点で学習処理を終了する。
また、画像処理装置200Bは、後層150の重み係数の学習を終えた時点で、分類結果が予め定められた基準を満たさないときには、前層110のフィルタの値をさらに再学習してもよい。このとき、画像処理装置200Bは、前層110の最終層から前の層に向かって順にフィルタの値を再学習し、当該学習結果が予め定められた基準を満たした時点で学習処理を終了する。
(前層110の変形例)
次に、前層110の変形例の変形例について説明する。前層110の層数は、任意である。たとえば、畳み込み層とサブサンプリング層とを含む層を1層として数えた場合に、前層110は、図2に示されるように1層で構成されてもよいし、図16に示されるように2層で構成されてもよいし、3層以上で構成されてもよい。
以下、図16を参照して、前層110が2層で構成されている場合における前層110の処理ついて説明する。前層110は、第1層と第2層とを含む。前層110の各層における各処理ユニットは、前の層における各処理ユニットから出力される特徴量マップに対してそれぞれ異なる空間フィルタを作用させた結果を次段の層における各処理ユニットに出力する。
より具体的には、第1層および第2層のそれぞれは、畳み込み層と、サブサンプリング層とを含む。第1層の畳み込み層は、入力画像101に対してフィルタ103を畳み込むことで特徴量マップ121を生成し、入力画像101に対してフィルタ105を畳み込むことで特徴量マップ122を生成する。
次に、第1層のサブサンプリング層は、特徴量マップ121,122に対してサンプリング処理を行なう。一例として、サンプリング処理は、特徴量マップ121,122を局所領域に分割し、各局所領域の平均値または最大値を算出する処理を含む。図16の例では、第1層のサブサンプリング層は、特徴量マップ121に対してサンプリング処理を実行することにより特徴量マップ123を生成し、特徴量マップ122に対してサンプリング処理を実行することにより特徴量マップ124を生成する。
第2層の畳み込み層は、特徴量マップ123に対してフィルタ131を畳み込んだ結果と、特徴量マップ124に対してフィルタ133を畳み込んだ結果とを足し合わせた結果を新たな特徴量マップ125として生成する。同様に、第2層の畳み込み層は、特徴量マップ123に対してフィルタ132を畳み込んだ結果と、特徴量マップ124に対してフィルタ134を畳み込んだ結果とを足し合わせた結果を新たな特徴量マップ126として生成する。フィルタ131〜134の値は、上述の学習処理により予め決定されている。
次に、第2層のサブサンプリング層は、特徴量マップ125,126に対してサンプリング処理を行なう。図16の例では、第2層のサブサンプリング層は、特徴量マップ125に対してサンプリング処理を実行することにより特徴量マップ127を生成し、特徴量マップ126に対してサンプリング処理を実行することにより特徴量マップ128を生成している。
以上のようにして、前層110は、入力画像101を最初の層の入力値である特徴量マップとして、各層における各処理ユニットが入力値である特徴量マップに対してそれぞれ異なるフィルタを作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なう。前層110は、最終的に複数の特徴量のそれぞれを生成し、生成した特徴量を後層150に出力する。
[画像処理装置200Bの制御構造]
図17および図18を参照して、第3の実施の形態に従う画像処理装置200Bの制御構造について説明する。図17は、画像処理装置200Bが実行する部分学習処理を示すフローチャートである。図18は、第3の実施の形態における部分学習処理の誤差逆伝播法を示すフローチャートである。図17および図18の処理は、画像処理装置200BのCPU202(図12参照)がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子、その他のハードウェアによって実行されてもよい。なお、図17のステップS12B,S18B,S26以外の処理は、図4に示される各ステップの処理と同じであるので、説明を繰り返さない。
ステップS12Bにおいて、CPU202は、後層150における第(n+1)層目から最終層までの重み係数を初期化する。変数nの初期値としては、たとえば、0が設定される。
ステップS18Bにおいて、CPU202は、後層150における第(n+1)層目から最終層までの重み係数の値を誤差逆伝播法により更新する。
ここで、図18を参照して、ステップS18Bにおける誤差逆伝搬法についてさらに詳細に説明する。なお、図18のステップS50B,S52B以外の処理は、図7に示される各ステップの処理と同じであるので、説明を繰り返さない。
ステップS50Bにおいて、CPU202は、層番号bが後層150の第n層目であるか否かを判断する。CPU202は、層番号bが後層150の第n層目であると判断した場合(ステップS50BにおいてYES)、制御をステップS52Bに切り替える。そうでない場合には(ステップS50BにおいてNO)、CPU202は、ステップS44の処理を再び実行する。ステップS50Bの処理により、CPU202は、後層150のn層目から最終層までの重み係数の値の修正量を算出できる。
ステップS52Bにおいて、CPU202は、ステップS46で算出した修正量に基づいて、後層150のn層目から最終層までの重み係数の値の修正量を更新する。
再び図17を参照して、ステップS26において、CPU202は、現在のnの値から1を減算する。すなわち、CPU202は、後層150において部分学習の対象となる層を1層増加する。
上記のような部分学習処理が成立する原理を説明する。図3および上記式(1)に示されるように、ニューラルネットワーク100を構成する各ニューロン素子は、式(1)に示される活性化関数f(x)によって与えられた入力x1〜xNを新たな変数yに変換している。したがって、第m層にN個のニューロン素子が存在し、第(m+1)層にNm+1個のニューロン素子が存在する場合には、第(m+1)層は、第m層からのNm個の出力値をNm+1個の出力値に写像していることになる。その結果、画像処理装置200Bは、後層150における出力層の1つ前の第(L−1)層までは、分類対象の画像の画素値を分類に適した特徴量を得るために、上記の演算により異なる特徴空間に繰り返し写像している。したがって、後層150における前方の層ほど、分類対象の画像と同種のデータを分類するのに適した特徴量への写像が形成される。
一方、画像処理装置200Bは、後層150の出力層である第L層においては、出力層からの出力値が最大となるニューロン素子に対応するカテゴリーに入力画像を分類する。そのため、出力層の各ニューロン素子は、1つ前の層の各ニューロン素子からの出力値を写像するのではなく、前の層の各ニューロン素子によって形成される特徴量に対して、入力画像を正確に分類するように閾値を設定していると解釈できる。したがって、分類精度に対する影響は、後層150における前方の層よりも後層150における後方の層の方が大きい。そのため、画像処理装置200Bは、後層150の後方の層のみを更新すれば、十分な分類精度が得られる。
[小括]
以上のようにして、本実施の形態に従う画像処理装置200Bは、ニューラルネットワーク100の後層150の最終層から順に重み係数を再学習し、当該学習結果が予め定められた基準を満たした場合に学習処理を終了する。これにより、画像処理装置200Bは、意図する分類精度を実現しながら、部分学習処理にかかる時間を短縮することができる。
<第4の実施の形態>
[概要]
再び図13を参照して、第4の実施の形態に従う画像処理装置200Cについて説明する。第2の実施の形態に従う画像処理装置200Aは、画像処理装置200Aの学習画像群222と、サーバ300の学習画像群322とを互いに同期していなかった。これに対して、第4の実施の形態に従う画像処理装置200Cは、サーバ300が全学習処理を実行する前に、サーバ300の学習画像群322を画像処理装置200Cの学習画像群222に同期させる。これにより、画像処理装置200Cは、新たに登録された学習画像をサーバ300の学習画像群322に反映することが可能になり、分類精度をさらに向上することができる。
より具体的には、画像処理装置200Cの送信部280は、全学習処理を実行するための命令を受け付けたときに、画像処理装置200Cの学習画像群222と、当該学習命令とをサーバ300に送信する。このとき、送信部280は、学習画像群222の全部をサーバ300に送信してもよいし、新たに登録された学習画像のみをサーバ300に送信してもよい。
受信部350が画像処理装置200Cの学習画像群222と学習命令とを受信したことに基づいて、全学習部355は、サーバ300の学習画像群322を画像処理装置200Cの学習画像群222で更新する。これにより、サーバ300の学習画像群322と、画像処理装置200Cの学習画像群222とが同期される。全学習部355は、更新された学習画像群322を用いて上述の全学習処理を実行し、新たなニューラルネットワーク330を生成する。
送信部360は、新たに生成されたニューラルネットワーク330を画像処理装置200Cに送信する。受信部285がニューラルネットワーク330を受信すると、画像処理装置200Cは、既存のニューラルネットワーク100を新たなニューラルネットワーク330に置き換える。
なお、第4の実施の形態に従う画像処理装置200Cのハードウェア構成などその他の点については第1の実施の形態に画像処理装置200と同じであるので、それらの説明は繰り返さない。
[小括]
以上のようにして、本実施の形態に従う画像処理装置200Cは、全学習処理を実行する前に、サーバ300の学習画像群322と画像処理装置200Cの学習画像群222とを同期する。これにより、画像処理装置200Cは、新たに登録された学習画像をサーバ300の学習画像群322に反映することが可能になり、全学習処理における学習精度をさらに向上することができる。結果として、分類精度がさらに改善される。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
100,330 ニューラルネットワーク、101 入力画像、103,105 フィルタ、110 前層、121〜124 特徴量マップ、150 後層、151〜154,161〜164,172〜174 ニューロン素子、157,177 層、200,200A〜200C 画像処理装置、201,301 ROM、202,302 CPU、203,303 RAM、204,304 ネットワークI/F、204A アンテナ、205 カメラI/F、206 ディスプレイI/F、220,320 記憶装置、222,322 学習画像群、224,324 画像処理プログラム、230 カメラ、232 ディスプレイ、250,355 全学習部、255 更新部、260 部分学習部、270 入力部、275 出力部、280,360 送信部、285,350 受信部、300 サーバ、400 ネットワーク、500 画像処理システム。

Claims (10)

  1. 各層に配置された複数の処理ユニットが多段接続された多層ニューラルネットワークを用いて、入力画像を登録されている複数のカテゴリーのいずれかに分類する、自動学習機能を備えた画像処理装置であって、
    前記多層ニューラルネットワークは、
    前記入力画像を最初の層の入力値である特徴量マップとして、各層における各処理ユニットが入力値である特徴量マップに対してそれぞれ異なる空間フィルタを作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に複数の特徴量のそれぞれを生成するための前層と、
    前記複数の特徴量を最初の層の入力値である特徴量として、各層における各処理ユニットが入力値である特徴量に対してそれぞれ異なる係数を作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に前記入力画像を前記複数のカテゴリーのいずれかに分類するための後層とを含み、
    前記後層において作用させる係数は、複数のカテゴリーのそれぞれに関連付けられている画像を学習することによって予め得られたものであって、
    前記画像処理装置は、
    前記複数のカテゴリーの更新を受け付けるための更新部と、
    前記複数のカテゴリーが更新された場合に、前記前層において作用させる空間フィルタのそれぞれの値を更新せずに、前記後層における係数のそれぞれの値を更新するための学習部とを備える、画像処理装置。
  2. 前記前層において空間フィルタを作用させる処理は、入力値である特徴量マップに対して空間フィルタにより畳みこみ演算処理を行なうことによりなされる、請求項1に記載の画像処理装置。
  3. 前記後層において係数を作用させる処理は、入力値である特徴量に対して係数を積算する演算処理を行なうことによりなされる、請求項1または2に記載の画像処理装置。
  4. 前記画像処理装置は、前記前層において作用させる空間フィルタのそれぞれの値と、前記後層における係数のそれぞれの値とを他の装置に更新させる命令を、当該他の装置に送信するための送信部をさらに備える、請求項1〜3のいずれか1項に記載の画像処理装置。
  5. 前記送信部は、現在時刻が予め定められた時刻になったことに基づいて、前記命令を前記他の装置に送信する、請求項4に記載の画像処理装置。
  6. 前記学習部は、前記後層における係数のそれぞれの値を最終層から順に更新し、更新後の係数を用いた分類結果が予め定められた基準を満たした時点で学習処理を終了する、請求項1〜5のいずれか1項に記載の画像処理装置。
  7. 前記前層は、複数の層を含み、
    前記前層の各層における各処理ユニットは、前の層における各処理ユニットから出力される特徴量マップに対してそれぞれ異なる空間フィルタを作用させた結果を次段の層における各処理ユニットに出力する、請求項1〜6のいずれか1項に記載の画像処理装置。
  8. 各層に配置された複数の処理ユニットが多段接続された多層ニューラルネットワークを用いて、入力画像を登録されている複数のカテゴリーのいずれかに分類する、自動学習機能を備えた画像処理システムであって、
    前記多層ニューラルネットワークは、
    前記入力画像を最初の層の入力値である特徴量マップとして、各層における各処理ユニットが入力値である特徴量マップに対してそれぞれ異なる空間フィルタを作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に複数の特徴量のそれぞれを生成するための前層と、
    前記複数の特徴量を最初の層の入力値である特徴量として、各層における各処理ユニットが入力値である特徴量に対してそれぞれ異なる係数を作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に前記入力画像を前記複数のカテゴリーのいずれかに分類するための後層とを含み、
    前記後層において作用させる係数は、複数のカテゴリーのそれぞれに関連付けられている画像を学習することによって予め得られたものであって、
    前記画像処理システムは、第1画像処理装置と、第2画像処理装置とを備え、
    前記第1画像処理装置は、
    前記複数のカテゴリーの更新を受け付けるための更新部と、
    前記複数のカテゴリーが更新された場合に、前記前層において作用させる空間フィルタのそれぞれの値を更新せずに、前記後層における係数のそれぞれの値を更新するための第1学習部とを含み、
    前記第2画像処理装置は、
    予め定められたタイミングで、前記前層において作用させる空間フィルタのそれぞれの値と、前記後層における係数のそれぞれの値とを更新するための第2学習部とを含む、画像処理システム。
  9. 各層に配置された複数の処理ユニットが多段接続された多層ニューラルネットワークを用いて、入力画像を登録されている複数のカテゴリーのいずれかに分類する、自動学習機能を備えた画像処理方法であって、
    前記多層ニューラルネットワークは、
    前記入力画像を最初の層の入力値である特徴量マップとして、各層における各処理ユニットが入力値である特徴量マップに対してそれぞれ異なる空間フィルタを作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に複数の特徴量のそれぞれを生成するための前層と、
    前記複数の特徴量を最初の層の入力値である特徴量として、各層における各処理ユニットが入力値である特徴量に対してそれぞれ異なる係数を作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に前記入力画像を前記複数のカテゴリーのいずれかに分類するための後層とを含み、
    前記後層において作用させる係数は、複数のカテゴリーのそれぞれに関連付けられている画像を学習することによって予め得られたものであって、
    前記画像処理方法は、
    前記複数のカテゴリーの更新を受け付けるステップと、
    前記複数のカテゴリーが更新された場合に、前記前層において作用させる空間フィルタのそれぞれの値を更新せずに、前記後層における係数のそれぞれの値を更新するステップとを備える、画像処理方法。
  10. 各層に配置された複数の処理ユニットが多段接続された多層ニューラルネットワークを用いて、入力画像を登録されている複数のカテゴリーのいずれかに分類する、自動学習機能を備えた画像処理プログラムであって、
    前記多層ニューラルネットワークは、
    前記入力画像を最初の層の入力値である特徴量マップとして、各層における各処理ユニットが入力値である特徴量マップに対してそれぞれ異なる空間フィルタを作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に複数の特徴量のそれぞれを生成するための前層と、
    前記複数の特徴量を最初の層の入力値である特徴量として、各層における各処理ユニットが入力値である特徴量に対してそれぞれ異なる係数を作用させた結果に基づいて次段の層の処理ユニットに対して出力値を出力する処理を行なうことにより、最終的に前記入力画像を前記複数のカテゴリーのいずれかに分類するための後層とを含み、
    前記後層において作用させる係数は、複数のカテゴリーのそれぞれに関連付けられている画像を学習することによって予め得られたものであって、
    前記画像処理プログラムは、コンピュータに、
    前記複数のカテゴリーの更新を受け付けるステップと、
    前記複数のカテゴリーが更新された場合に、前記前層において作用させる空間フィルタのそれぞれの値を更新せずに、前記後層における係数のそれぞれの値を更新するステップとを実行させる、画像処理プログラム。
JP2015012157A 2015-01-26 2015-01-26 画像処理装置、画像処理システム、画像処理方法、およびその画像処理プログラム Pending JP2016139176A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015012157A JP2016139176A (ja) 2015-01-26 2015-01-26 画像処理装置、画像処理システム、画像処理方法、およびその画像処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015012157A JP2016139176A (ja) 2015-01-26 2015-01-26 画像処理装置、画像処理システム、画像処理方法、およびその画像処理プログラム

Publications (1)

Publication Number Publication Date
JP2016139176A true JP2016139176A (ja) 2016-08-04

Family

ID=56559192

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015012157A Pending JP2016139176A (ja) 2015-01-26 2015-01-26 画像処理装置、画像処理システム、画像処理方法、およびその画像処理プログラム

Country Status (1)

Country Link
JP (1) JP2016139176A (ja)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018073024A (ja) * 2016-10-27 2018-05-10 ホーチキ株式会社 監視システム
JP2018081452A (ja) * 2016-11-15 2018-05-24 キヤノン株式会社 画像処理装置、画像処理方法
JP2018195097A (ja) * 2017-05-18 2018-12-06 株式会社デンソーアイティーラボラトリ 認識システム、共通特徴量抽出ユニット、及び認識システム構成方法
JP2018201117A (ja) * 2017-05-26 2018-12-20 日本電気株式会社 映像符号化装置、映像符号化方法およびプログラム
CN109272027A (zh) * 2018-08-30 2019-01-25 昆明理工大学 一种基于人工神经网络集成的脉冲星候选体识别方法
JP2019020820A (ja) * 2017-07-12 2019-02-07 株式会社日立製作所 映像認識システム
WO2019146057A1 (ja) * 2018-01-26 2019-08-01 株式会社ソニー・インタラクティブエンタテインメント 学習装置、実写画像分類装置の生成システム、実写画像分類装置の生成装置、学習方法及びプログラム
JP2019530119A (ja) * 2016-11-29 2019-10-17 アイフライテック カンパニー,リミテッド エンドツーエンドモデリング方法及びシステム
JP2020514840A (ja) * 2017-02-26 2020-05-21 ユーゲットアイティーバック リミティッド モバイル・デバイス障害状態の検出のためのシステムおよび方法
JP2020520509A (ja) * 2017-05-11 2020-07-09 ヴェリディウム アイピー リミテッド バイオメトリック識別システムおよび方法
JP2020119508A (ja) * 2019-01-24 2020-08-06 カシオ計算機株式会社 画像検索装置、分類器学習方法及びプログラム
JP2020534604A (ja) * 2017-09-19 2020-11-26 ラモット・アット・テル・アビブ・ユニバーシテイ・リミテッドRamot At Tel Aviv University Ltd. 画像コンテンツ認識のための方法およびシステム
JP2020535861A (ja) * 2017-10-06 2020-12-10 テルース ユー ケア インコーポレーションTellus You Care, Inc. 高齢者介護のための非接触活動検出ネットワークによるバイタルサイン
JP2022500783A (ja) * 2018-09-21 2022-01-04 ポジション イメージング, インコーポレイテッドPosition Imaging, Inc. 機械学習支援による自己改善型オブジェクト識別システム及び方法
US11556780B2 (en) 2017-01-19 2023-01-17 Nec Corporation Neural network learning device, neural network learning method, and recording medium on which neural network learning program is stored
US11580194B2 (en) 2017-11-01 2023-02-14 Nec Corporation Information processing apparatus, information processing method, and program
US11853182B2 (en) 2016-04-28 2023-12-26 Blancco Technology Group IP Oy Systems and methods for detection of mobile device fault conditions
US12013346B2 (en) 2018-02-19 2024-06-18 Blancco Technology Group IP Oy System and method for detection of mobile device fault conditions

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11853182B2 (en) 2016-04-28 2023-12-26 Blancco Technology Group IP Oy Systems and methods for detection of mobile device fault conditions
JP2018073024A (ja) * 2016-10-27 2018-05-10 ホーチキ株式会社 監視システム
JP2018081452A (ja) * 2016-11-15 2018-05-24 キヤノン株式会社 画像処理装置、画像処理方法
US11651578B2 (en) 2016-11-29 2023-05-16 Iflytek Co., Ltd. End-to-end modelling method and system
JP2019530119A (ja) * 2016-11-29 2019-10-17 アイフライテック カンパニー,リミテッド エンドツーエンドモデリング方法及びシステム
US11556780B2 (en) 2017-01-19 2023-01-17 Nec Corporation Neural network learning device, neural network learning method, and recording medium on which neural network learning program is stored
JP7253503B2 (ja) 2017-02-26 2023-04-06 ユーゲットアイティーバック リミティッド モバイル・デバイス障害状態の検出のためのシステムおよび方法
JP2020514840A (ja) * 2017-02-26 2020-05-21 ユーゲットアイティーバック リミティッド モバイル・デバイス障害状態の検出のためのシステムおよび方法
JP2020520509A (ja) * 2017-05-11 2020-07-09 ヴェリディウム アイピー リミテッド バイオメトリック識別システムおよび方法
JP7060619B2 (ja) 2017-05-11 2022-04-26 ヴェリディウム アイピー リミテッド バイオメトリック識別システムおよび方法
CN108960405A (zh) * 2017-05-18 2018-12-07 电装It研究所 识别系统、通用特征值提取单元以及识别系统构成方法
JP2018195097A (ja) * 2017-05-18 2018-12-06 株式会社デンソーアイティーラボラトリ 認識システム、共通特徴量抽出ユニット、及び認識システム構成方法
JP2018201117A (ja) * 2017-05-26 2018-12-20 日本電気株式会社 映像符号化装置、映像符号化方法およびプログラム
JP2019020820A (ja) * 2017-07-12 2019-02-07 株式会社日立製作所 映像認識システム
JP7457647B2 (ja) 2017-09-19 2024-03-28 ラモット・アット・テル・アビブ・ユニバーシテイ・リミテッド 画像コンテンツ認識のための方法およびシステム
JP2020534604A (ja) * 2017-09-19 2020-11-26 ラモット・アット・テル・アビブ・ユニバーシテイ・リミテッドRamot At Tel Aviv University Ltd. 画像コンテンツ認識のための方法およびシステム
JP2020535861A (ja) * 2017-10-06 2020-12-10 テルース ユー ケア インコーポレーションTellus You Care, Inc. 高齢者介護のための非接触活動検出ネットワークによるバイタルサイン
JP7281457B2 (ja) 2017-10-06 2023-05-25 テルース ユー ケア インコーポレーション 高齢者介護のための非接触活動検出ネットワークによるバイタルサイン
US11580194B2 (en) 2017-11-01 2023-02-14 Nec Corporation Information processing apparatus, information processing method, and program
WO2019146057A1 (ja) * 2018-01-26 2019-08-01 株式会社ソニー・インタラクティブエンタテインメント 学習装置、実写画像分類装置の生成システム、実写画像分類装置の生成装置、学習方法及びプログラム
JP7013489B2 (ja) 2018-01-26 2022-02-15 株式会社ソニー・インタラクティブエンタテインメント 学習装置、実写画像分類装置の生成システム、実写画像分類装置の生成装置、学習方法及びプログラム
JPWO2019146057A1 (ja) * 2018-01-26 2020-10-01 株式会社ソニー・インタラクティブエンタテインメント 学習装置、実写画像分類装置の生成システム、実写画像分類装置の生成装置、学習方法及びプログラム
US11308367B2 (en) 2018-01-26 2022-04-19 Sony Interactive Entertainment Inc. Learning apparatus, system for generating captured image classification apparatus, apparatus for generating captured image classification apparatus, learning method, and program
US12013346B2 (en) 2018-02-19 2024-06-18 Blancco Technology Group IP Oy System and method for detection of mobile device fault conditions
CN109272027A (zh) * 2018-08-30 2019-01-25 昆明理工大学 一种基于人工神经网络集成的脉冲星候选体识别方法
JP2022500783A (ja) * 2018-09-21 2022-01-04 ポジション イメージング, インコーポレイテッドPosition Imaging, Inc. 機械学習支援による自己改善型オブジェクト識別システム及び方法
US11961279B2 (en) 2018-09-21 2024-04-16 Position Imaging, Inc. Machine-learning-assisted self-improving object-identification system and method
JP7111088B2 (ja) 2019-01-24 2022-08-02 カシオ計算機株式会社 画像検索装置、学習方法及びプログラム
JP2020119508A (ja) * 2019-01-24 2020-08-06 カシオ計算機株式会社 画像検索装置、分類器学習方法及びプログラム
US11250295B2 (en) 2019-01-24 2022-02-15 Casio Computer Co., Ltd. Image searching apparatus, classifier training method, and recording medium

Similar Documents

Publication Publication Date Title
JP2016139176A (ja) 画像処理装置、画像処理システム、画像処理方法、およびその画像処理プログラム
CN107704857B (zh) 一种端到端的轻量级车牌识别方法及装置
WO2022083536A1 (zh) 一种神经网络构建方法以及装置
WO2021238366A1 (zh) 一种神经网络构建方法以及装置
JP6620439B2 (ja) 学習方法、プログラム及び学習装置
US20220215227A1 (en) Neural Architecture Search Method, Image Processing Method And Apparatus, And Storage Medium
US10354185B2 (en) Learning apparatus, learning program, and learning method
CN112639828A (zh) 数据处理的方法、训练神经网络模型的方法及设备
US20170004353A1 (en) Method and system for exacting face features from data of face images
CN113159300B (zh) 图像检测神经网络模型及其训练方法、图像检测方法
US20220237917A1 (en) Video comparison method and apparatus, computer device, and storage medium
CN112053327B (zh) 视频目标物检测方法、系统及存储介质和服务器
WO2023273668A1 (zh) 图像分类方法、装置、设备、存储介质及程序产品
US20200311527A1 (en) Residual semi-recurrent neural networks
CN110298394A (zh) 一种图像识别方法和相关装置
WO2021036397A1 (zh) 目标神经网络模型的生成方法和装置
CN109214515A (zh) 一种深度神经网络推理方法及计算设备
WO2023087063A1 (en) Method and system for analysing medical images to generate a medical report
WO2022063076A1 (zh) 对抗样本的识别方法及装置
CN110135428A (zh) 图像分割处理方法和装置
CN111507396B (zh) 缓解神经网络对未知类样本产生错误分类的方法及装置
CN116485796B (zh) 害虫检测方法、装置、电子设备及存储介质
JP6985997B2 (ja) 機械学習システムおよびボルツマンマシンの計算方法
CN111461228B (zh) 图像推荐方法和装置及存储介质
CN112465117A (zh) 合约生成模型构建方法、装置、设备及存储介质