【解決手段】画像データを分類する画像分類器は、画像データが入力される入力層、及び複数のニューロンを含む多層の中間層を備え、入力層に画像データが入力された場合、画像データと所定の関連性を有する関連データを出力することが可能な学習済みニューラルネットワークと、分類対象の画像データを入力層に入力させる入力部と、分類対象の画像データが入力層に入力されたときの複数のニューロンの活動パターンに基づいて、画像データを分類する分類処理部とを備える。
【発明を実施するための形態】
【0013】
[本開示の実施形態の説明]
最初に本開示の実施態様を列記して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0014】
(1)本態様に係る画像分類器は、画像データを分類する画像分類器であって、前記画像データが入力される入力層、及び複数のニューロンを含む多層の中間層を備え、前記入力層に前記画像データが入力された場合、該画像データと所定の関連性を有する関連データを出力することが可能な学習済みニューラルネットワークと、分類対象の前記画像データを前記入力層に入力させる入力部と、分類対象の前記画像データが前記入力層に入力されたときの前記複数のニューロンの活動パターンに基づいて、前記画像データを分類する分類処理部とを備える。
【0015】
本態様にあっては、分類処理部は、学習済みニューラルネットワークの出力層から出力されるデータでは無く、学習済みニューラルネットワークを構成する複数のニューロンの活動パターンに基づいて、画像データを分類する。
学習済みニューラルネットワークは、入力層に画像データが入力された場合、当該画像データと所定の関連性を有する関連データを出力する機能を潜在的に有する。しかし、本態様においては、学習済みニューラルネットワークから出力される関連データを、基本的に画像分類に利用しない。また、学習済みニューラルネットワークは、必ずしも画像データの分類を目的にして教師あり学習されたものではない。とは言え、学習済みニューラルネットワークは、入力された画像データと所定の関連性を有する関連データを出力するように学習されているため、学習済みニューラルネットワークの中間層は、画像の何らかの特徴を認識する機能を獲得していると予想される。
本態様に係る分類処理部は、画像データが学習済みニューラルネットワークに入力されたときの中間層の活動パターンに基づいて、画像データを分類する。上記学習済みニューラルネットワークは教師なしで様々な画像データの特徴を学習することができ、従来の畳み込みニューラルネットワークに比べ、より柔軟に対象物を認識し、画像データを分類することができる。
【0016】
(2)前記学習済みニューラルネットワークは、動画の時系列フレーム画像に基づいて次フレーム画像を予測する学習済みPredNet(DeepPredictiveCodingNetwork)を構成する少なくとも一つのニューラルネットワークの全部又は一部を含む構成が好ましい。
【0017】
学習済みPredNetは、動画の特徴を教師なしで学習することができる。学習済みPredNetは、動画により、画像データの様々な特徴を認識する機能を獲得している。本態様に係る画像分類器は、学習済みPredNetを構成するニューラルネットワークを用いることにより、従来の畳み込みニューラルネットワークに比べ、より柔軟に対象物を認識し、画像データを分類することができる。
【0018】
(3)前記学習済みニューラルネットワークは階層構造を有し、前記学習済みPredNetの最下層よりも上位層のニューラルネットワークを含む構成が好ましい。
【0019】
本態様にあっては、学習済みニューラルネットワークとして、学習済みPredNetを構成する上位層のニューラルネットワークを利用する。上位層のニューラルネットワークは、画像データのより本質的な特徴を認識し得るものである。本態様に係る画像分類器は、学習済みPredNetを構成する上位層のニューラルネットワークを用いることにより、より柔軟に対象物を認識し、画像データを分類することができる。
【0020】
(4)前記学習済みニューラルネットワークは、前記学習済みPredNetを構成する複数のニューラルネットワークを含み、前記分類処理部は、分類対象の前記画像データが第1の前記ニューラルネットワークの前記入力層に入力されたときの前記複数のニューロンの活動パターンと、前記画像データが第2の前記ニューラルネットワークの前記入力層に入力されたときの前記複数のニューロンの活動パターンとに基づいて、前記画像データを分類する構成が好ましい。
【0021】
本態様にあっては、学習済みニューラルネットワークとして、学習済みPredNetを構成する複数のニューラルネットワークを利用する。本態様に係る画像分類器は、学習済みPredNetを構成する複数のニューラルネットワークを用いることにより、より柔軟に対象物を認識し、画像データを分類することができる。
【0022】
(5)前記学習済みニューラルネットワークは学習済みオートエンコーダを構成するニューラルネットワークの一部又は全部を含む構成が好ましい。
【0023】
オートエンコーダは、動画の特徴を教師なしで学習することができる。本態様に係る画像分類器は、学習済みオートエンコーダを構成するニューラルネットワークを用いることにより、従来の畳み込みニューラルネットワークに比べ、より柔軟に対象物を認識し、画像データを分類することができる。
【0024】
(6)前記複数のニューロンの活動パターンと、前記画像データの分類を示す分類情報との対応関係を記憶する記憶部を備え、前記分類処理部は、分類対象の前記画像データが前記入力層に入力されたときの前記複数のニューロンの活動パターンと、前記記憶部が記憶する前記対応関係とに基づいて、前記画像データを分類する構成が好ましい。
【0025】
本態様によれば、学習済みニューラルネットワークを構成する複数のニューロンの活動パターンと、記憶部が記憶する対応関係とに基づいて、画像データを分類することができる。
【0026】
(7)前記画像データが入力された場合、該画像データの分類を示す分類情報を出力する学習済み畳み込みニューラルネットワークと、分類対象の前記画像データが前記入力層に入力されたときの前記複数のニューロンの活動パターンと、前記画像データを前記学習済み畳み込みニューラルネットワークに入力して得られる分類情報との対応関係を前記記憶部に記憶させる追加処理部とを備える構成が好ましい。
【0027】
本態様によれば、学習済み畳み込みニューラルネットワークを利用することにより、学習済みニューラルネットワークを構成する複数のニューロンの活動パターン、画像データの分類情報とを自動的に対応付け、記憶部に追加することができる。
【0028】
(8)本態様に係る画像分類方法は、画像データを分類する画像分類方法であって、前記画像データが入力される入力層、及び複数のニューロンを含む多層の中間層を備え、前記入力層に前記画像データが入力された場合、該画像データと所定の関連性を有する関連データを出力することが可能な学習済みニューラルネットワークを用意し、分類対象の前記画像データを前記入力層に入力させ、分類対象の前記画像データが前記入力層に入力されたときの前記複数のニューロンの活動パターンに基づいて、前記画像データを分類する。
【0029】
本態様によれば、態様(1)同様、従来の畳み込みニューラルネットワークに比べ、より柔軟に対象物を認識し、画像データを分類することができる。
【0030】
(9)本態様に係るコンピュータプログラムは、コンピュータに、画像データを分類させる処理を実行させるためのコンピュータプログラムであって、前記コンピュータに、前記画像データが入力される入力層、及び複数のニューロンを含む多層の中間層を備え、前記入力層に前記画像データが入力された場合、該画像データと所定の関連性を有する関連データを出力することが可能な学習済みニューラルネットワークの前記入力層に、分類対象の前記画像データを入力させ、分類対象の前記画像データが前記入力層に入力されたときの前記複数のニューロンの活動パターンに基づいて、前記画像データを分類する処理を実行させる。
【0031】
本態様によれば、態様(1)同様、従来の畳み込みニューラルネットワークに比べ、より柔軟に対象物を認識し、画像データを分類することができる。
【0032】
[本発明の実施形態の詳細]
本発明の実施形態に係る画像分類器、画像分類方法及びコンピュータプログラムの具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【0033】
以下、本発明をその実施形態を示す図面に基づいて具体的に説明する。
(実施形態1)
図1は実施形態1に係る画像分類器1の構成例を示すブロック図である。実施形態1に係る画像分類器1は、入力部11と、学習済みニューラルネットワーク12と、分類処理部13と、認識データベース14と、学習済みCNN(Convolutional Neural Network)15と、出力部16とを備える。
【0034】
入力部11は、分類対象である画像データを外部から取り込むインタフェースである。入力部11は、入力された画像データを学習済みニューラルネットワーク12と、学習済みCNN15とに与える。
【0035】
学習済みニューラルネットワーク12は、入力層12aと、中間層(隠れ層)12bと、出力層12cとを備える。中間層12bは、例えば、一又は複数の畳み込み層及びプーリング層を含む。なお中間層12bの一部にドロップアウト層を設けても良い。また、中間層12bは、プーリング層を備えない構成であっても良い。出力層12cは必須の構成では無い。
当該学習済みニューラルネットワーク12は、動画の時系列フレーム画像に基づいて次フレーム画像を予測する学習済みPredNet3を構成しているニューラルネットワークの一部を抜き出して画像分類器1に適用したものである。詳細は後述する。
【0036】
分類処理部13は、分類対象の画像データが入力層12aに入力されたときの中間層12bの活動パターンに基づいて、画像データを分類する処理を行う。以下、中間層12bを構成する複数のニューロンの活動パターンを特徴コードと呼ぶ。
【0037】
認識データベース14は、DB14a及び追加処理部14bを備える。
DB14aは、IDと、画像データの特徴を表した特徴コードと、画像データの分類を示す分類ラベル(分類情報)とを対応付けて記憶する。
追加処理部14bは、画像データの特徴コードと、当該特徴コードに対応する分類ラベルとをDB14aに登録する処理を行う。例えば、追加処理部14bは、画像データが学習済みニューラルネットワーク12の入力層12aに入力されたときの中間層12bの活動パターンを表した特徴コードと、当該画像データを学習済みCNN15に入力して得られる分類ラベルとを対応付けてDB14aに記憶させる。
【0038】
学習済みCNN15は、公知の畳み込みニューラルネットワークを、学習用画像データを用いて深層学習させたものである。学習済みCNN15は、入力層15aと、一又は複数の畳み込み層15b及びプーリング層15cと、一又は複数の全結合層15dと、出力層15eとを備える。
入力層15aには画像データが入力される。入力層15aに入力された画像データは畳み込み層15bへ出力される。
一又は複数の畳み込み層15b及びプーリング層15cは、入力層15aに入力された画像データに対して、各層のフィル値又は重み係数に基づく演算を行う。畳み込み層15bは、画像データに対するフィルタリング処理によって、画像データの特徴を抽出する。プーリング層15cは、例えばマックスプーリング処理によってダウンサンプリングする。最後段のプーリング層15cは、ダウンサンプリングされた画像データの各画素に対応するデータを全結合層15dへ出力する。
一又は複数の全結合層15dは、入力されたデータに対して、各層の重み係数に基づく演算を行うことによって、画像データの特徴量の分類を行う。最後段の全結合層15dは、演算処理されたデータを出力層15eへ出力する。
出力層15eは、複数の分類ラベルに対応するニューロン(ノード)を有する。出力層15eのニューロンの活性化関数は、例えばソフトマックス関数である。出力層15eは、全結合層15dから出力されたデータに基づいて、当該画像データが複数の各分類ラベルに該当する確率を示すデータを出力する。
【0039】
このように構成された学習済みCNN15の入力層15aに画像データが入力された場合、入力された画像データが、各分類ラベルに該当する確率を示したデータが出力層15eから出力される。学習済みCNN15は、出力層15eから出力されたデータに基づいて、入力された画像データの分類ラベルを特定し、特定された分類ラベルを示すデータを認識データベース14の追加処理部14bへ出力する。なお、学習済みCNN15は、出力層15eから出力されたデータをそのまま追加処理部14bへ出力しても良い。
【0040】
出力部16は、分類処理部13による画像データの分類結果を出力するインタフェースである。分類結果は、画像データに対応する分類ラベルを示す情報である。例えば、分類結果は、入力された画像データの特徴コードと、DB14aに登録されている分類ラベルの特徴コードとの類似度の情報を出力する。また、分類結果は、両者の特徴コードの類似度が最も高い分類ラベルの情報であっても良い。出力部16は、例えばディスプレイである。
【0041】
図2は実施形態1に係る画像分類器1のハードウェア構成を示すブロック図である。画像分類器1はコンピュータである。画像分類器1はコンピュータの各構成部の動作を制御する制御部1aを備える。制御部1aには、記憶部1b、入力部11及び出力部16が接続されている。
【0042】
記憶部1bは、ハードディスク、EEPROM(Electrically Erasable Programmable ROM)、フラッシュメモリ等の不揮発性メモリである。記憶部1bは、本実施形態1に係る画像分類方法をコンピュータに実施し、画像データを分類するためのコンピュータプログラム1cを記憶している。記憶部1bは、学習済みニューラルネットワーク12及び学習済みCNN15のフィルタ値ないし重み係数、DB14aのレコードを記憶する。
本実施形態1に係るコンピュータプログラム1cは、記録媒体にコンピュータ読み取り可能に記録されている態様でも良い。記憶部1bは、図示しない読出装置によって記録媒体から読み出されたコンピュータプログラム1cを記憶する。記録媒体はフラッシュメモリ等の半導体メモリである。また、記録媒体はCD(Compact Disc)−ROM、DVD(Digital Versatile Disc)−ROM、BD(Blu-ray(登録商標)Disc)等の光ディスクでも良い。更に、記録媒体は、フレキシブルディスク、ハードディスク等の磁気ディスク、磁気光ディスク等であっても良い。更にまた、図示しない通信網に接続されている図示しない外部サーバから本実施形態1に係るコンピュータプログラム1cをダウンロードし、記憶部1bに記憶させても良い。
【0043】
制御部1aは、CPU(Central Processing Unit)、マルチコアCPU、GPU(Graphics Processing Unit)、GPGPU(General-purpose computing on graphics processing units)、TPU(Tensor Processing Unit)等のプロセッサ、ROM(Read Only Memory)、RAM(Random Access Memory)等の内部記憶装置、入出力インタフェース等を有し、インタフェースには、記憶部1b、入力部11及び出力部16が接続されている。制御部1aは、記憶部1bが記憶するコンピュータプログラム1cを実行することにより、実施形態1に係る画像分類方法を実施し、画像分類器1として動作する。
【0044】
図3は学習済みPredNet3の構成例を示すブロック図、
図4は学習済みPredNet3のモジュール31を示すブロック図である。学習済みPredNet3は、大脳皮質における予測符号化の処理を模倣して構成された深層ニューラルネットワークである。学習済みPredNet3は、動画を構成する時系列のフレーム画像が入力された場合、動画の特徴を認識し、次に入力されるであろうフレーム画像を予測して出力することができる。学習済みPredNet3は、複数のモジュール31を下位層(低次)から上位層(高次)へスタックした階層構造を有する。最下層(第0層)よりも上層の各モジュール31は、動画の特徴を表現したデータ、すなわち将来のフレーム画像を予測するために必要なデータを生成する。生成されたデータは上位層から下位層へ伝播する。最下層のモジュール31は、上位層の各モジュール31から伝播されたデータを用いて、次のフレーム画像を予測する。最下層のモジュール31は、予測した動画のフレーム画像と、実際に入力されたフレーム画像との誤差を表したデータを上層へフィードバックする。同様にして、各モジュール31は予測した動画の特徴と、実際に入力された動画の特徴との誤差を示したデータを下位層から上位層へ伝播させる。上位層の各モジュール31はフィードバックされた誤差のデータを用いて、次のフレーム画像の特徴を表したデータを生成する。PerdNetは、高次層での動画の特徴予測と誤差のフィードバックという一連の処理により、動画のフレーム画像を予測する。
【0045】
学習済みPredNet3を構成する各モジュール31は、入力画像処理部31aと、予測画像生成部31bと、誤差算出部31cと、特徴表現部31dと、を備える。
【0046】
入力画像処理部31aは、例えば畳み込み層及びプーリング層を有する。最下層の入力画像処理部31aには、動画のフレーム画像データが入力される。最下層よりも上位層の入力画像処理部31aには、一つ下の階層の誤差算出部31cから出力される誤差画像データが入力される。入力画像処理部31aは、畳み込み層でフレーム画像データ又は誤差画像データの特徴を抽出し、プーリング層でダウンサンプリングする。入力画像処理部31aは画像処理されたフレーム画像データ又は誤差画像データを誤差算出部31cへ出力する。
【0047】
予測画像生成部31bは畳み込み層を有する。予測画像生成部31bには動画特徴データが入力される。動画特徴データは、特徴表現部31dによって生成されるデータであり、動画の特徴を表したものである。予測画像生成部31b、入力された動画特徴データに基づいて、次に、入力画像処理部31aに入力されるフレーム画像データ又は誤差画像データを予測した予測画像データを生成する。予測画像生成部31bで生成された予測画像データは、誤差算出部31cに出力される。
【0048】
誤差算出部31cには、減算部及びReLU関数処理部を有する。誤差算出部31cには、入力画像処理部31aから出力されたフレーム画像データ又は誤差画像データと、予測画像生成部31bから出力された予測画像データとが入力される。減算部は、入力されたフレーム画像データ又は誤差画像データと、予測画像データとの差分を算出する。詳細には、減算部は、フレーム画像データ又は誤差画像データから予測画像データを減算して得られる差分と、予測画像データからフレーム画像データ又は誤差画像データを減算して得られる差分とを算出する。算出された差分は引数としてReLU関数に与えられる。誤差算出部31cは、ReLU関数の戻り値である誤差画像データを特徴表現部31dへ出力する。また、誤差算出部31cは、誤差画像データを上位層の入力画像処理部31aへ出力する。
【0049】
特徴表現部31dは、例えば畳み込みLSTMである。畳み込みLSTMは、画像の特徴を掴むのに適した畳み込みニューラルネットワークと、時系列データを扱うのに適したリカレントニューラルネットワークの一種であるLSTM(Long-Short Term Memory)とを組み合わせた結合したモデルである。特徴表現部31dには、誤差算出部31cから出力された誤差画像データと、上位層の特徴表現部31dから出力された動画特徴データとが入力される。特徴表現部31dは、上位層から得られた現時点の動画特徴データと、自身が算出した過去の動画特徴データと、誤差算出部31cにて算出された過去の誤差画像データとに基づいて、動画の特徴を表現した動画特徴データを生成する。特徴表現部31dは生成した動画特徴データを、同層の予測画像生成部31bへ出力する。
【0050】
このように構成された学習済みPredNet3は、動画を構成する時系列のフレーム画像が入力されると、動画の特徴を教師なしで学習することができ、将来のフレーム画像を予測できるようになる。
【0051】
本実施形態1に係る学習済みニューラルネットワーク12は、当該学習済みPredNet3を構成するニューラルネットワークの一部を抜き出したものである。言い換えると、本実施形態1に係る学習済みニューラルネットワーク12は、動画予測を行う学習済みPredNet3から、画像分類という異なる目的を有する画像分類器1へ移植されたニューラルネットワークと言える。従って、画像分類器1の学習済みニューラルネットワーク12を構成している中間層12bの重み係数は、学習済みPredNet3を構成するニューラルネットのフィルタ値及び重み係数と同じである。
【0052】
学習済みニューラルネットワーク12として利用する学習済みPredNet3の部位は特に限定されるものでは無いが、例えば、入力画像処理部31aを構成するニューラルネットワークを利用すれば良い。また、学習済みニューラルネットワーク12としては、最下層よりも上位層のモジュール31を構成するニューラルネットを用いることが好ましい。より好ましくは、第2層、第3層、又は第4層のモジュール31を構成するニューラルネットを用いると良い。
【0053】
図5は分類器の学習手順を示すフローチャートである。制御部1aは、入力部11に入力した複数の画像データを学習済みニューラルネットワーク12の入力層12aに入力させる(ステップS11)。制御部1aは、複数の画像データそれぞれに対して、学習済みニューラルネットワーク12の中間層12bによる演算処理を実行する(ステップS12)。制御部1aは、中間層12bを構成するニューロンの活動パターンを表した複数の画像データそれぞれの特徴コードを取得する(ステップS13)。
【0054】
図6は特徴コードの一例を示す概念図である。
図6A及び
図6Bは、中間層12bの任意の一層を構成している複数のニューロンの活動パターンを概念的に示したものである。例えば
図6A及び
図6Bは最後段の複数のニューロンの活動パターンを示したものである。黒丸は発火しているニューロンを示し、白丸は発火していないニューロンを示している。特徴コードは、
図6A及び
図6Bに示すように複数のニューロンそれぞれの発火、非発火の状態を一次元配列で示した情報である。なお、
図6においては、各ニューロンの活動パターンを「1」(発火)、「0」(非発火)の2値で示しているが、これに限定されるものでは無い。例えば、各ニューロンの活性化関数がReLU関数である場合、特徴コードは、当該活性化関数の出力値を成分として有するものであっても良い。
【0055】
図7は特徴コードの他の例を示す概念図である。
図7A及び
図7Bは、複数層のニューロンの活動パターンを概念的に示したものである。特徴コードは、
図7A及び
図7Bに示すように複数のニューロンそれぞれの発火、非発火の状態を二次元配列で示したものである。例えば、
図7A及び
図7Bは、中間層12bが複数層である場合、各層を構成する複数のニューロンそれぞれの活動パターンを示したものである。特徴コードは、
図7A及び
図7Bに示すように複数のニューロンそれぞれの発火、非発火の状態を二次元配列で示した情報である。
【0056】
ステップS13の処理を終えた制御部1aは、複数の画像データの特徴コードをクラスタリングする(ステップS14)。特徴コードのクラスタリングは、公知の手法を用いれば良い。例えば制御部1aは、主成分分析(PCA:Principal Component Analysis)及びk平均(k-means)法を用いて、特徴コードを複数のクラスタにクラスタリングする。クラスタリングによって、各クラスタの重心の特徴コードが求められる。
【0057】
一方で、制御部1aは、入力部11に入力した上記複数の画像データを学習済みCNN15の入力層15aに入力させ、各画像データの分類ラベルを特定する(ステップS15)。なお、必ずしも全ての画像データの分類ラベルを特定する必要は無い。
【0058】
次いで、制御部1aは、ステップS14でクラスタリングされた各クラスタの特徴コードと、当該クラスタに対応する分類ラベルとの対応関係を特定し、各クラスタの特徴コードと、分類ラベルとを対応付けてDB14aに登録する(ステップS16)。各クラスタの特徴コードに対応する分類ラベルは、例えばk近傍(k-Nearest Neighbor)法にて特定すると良い。当該クラスタに属する特徴コードに、分類ラベルが特定されているものと、特定されていないものが混在している場合、分類が特定されている特徴コードと、その分類ラベルとを用いて、当該クラスタの分類コードを決定すれば良い。
【0059】
図8は特徴コードと分類コードとの対応付け方法を示す概念図である。星印、三角印、四角印、丸印は、異なるクラスタにクラスタリングされた画像データの特徴量を表している。黒塗り印は、分類ラベルが特定されたものを示し、白抜き印は分類ラベルが特定されなかったものを示している。各クラスタの分類ラベルは、黒塗り印で示された特徴コードに対応付けられている分類ラベルによって特定される。
【0060】
このようにして、画像分類器1は、画像データの特徴コードと、分類ラベルとの対応関係をDB14aに記憶することができる。
【0061】
なお、上記した特徴コードと、分類ラベルとを対応付け方法は一例である。例えば、分類ラベルが付された学習用の画像データを用いて特徴コードと、分類ラベルとの対応関係を学習させるようにしても良い。この場合、学習済みニューラルネットワーク12に複数の画像データを入力することによって、各学習データの特徴コードが得られる。そして、学習用の画像データには分類ラベルが付されているため、当該特徴コードの分類ラベルも一意に定まる。次いで、複数の特徴コードと、各特徴コードの分類ラベルとに基づいて、各分類ラベルと特徴コードとの対応関係を算出する。例えば、SVM(support vector machine)等の分類器を用いて、特徴コードと分類ラベルとの対応関係を学習させれば良い。当該分類器に特徴コードが入力されると、当該特徴コードが属する分類ラベルが出力されるようになる。
【0062】
図9は実施形態1に係る画像分類処理の手順を示すフローチャート、
図10は画像分類方法を示す概念図である。
図10中、黒丸は、入力された画像データの特徴コードを示している。制御部1aは、入力部11に入力された画像データを、学習済みニューラルネットワーク12の入力層12aに入力させる(ステップS31)。制御部1aは、複数の画像データそれぞれに対して、学習済みニューラルネットワーク12の中間層12bによる演算処理を実行する(ステップS32)。制御部1aは、中間層12bを構成するニューロンの活動パターンを表した複数の画像データそれぞれの特徴コードを取得する(ステップS33)。
【0063】
次いで、制御部1aは、画像データの特徴コードと、DB14aに登録された情報とに基づいて、当該特徴コードに対応する分類ラベルを特定し、特定された分類ラベルを出力する(ステップS34)。例えば、制御部1aは、DB14aに登録されている各分類ラベルの特徴コード(クラスタの重心)と、入力画像データの特徴コードとの統計距離を比較し、最も近い特徴コードの分類ラベルを入力画像データの分類ラベルとして特定すれば良い。また、制御部1aは、SVMを用いて、画像データに対応する分類ラベルを特定しても良い。
なお、上記説明では、分類器の学習と、画像分類処理とを分けて説明したが、未知の画像データが入力され、分類不能であった場合、制御部1aは、分類ラベルを受け付け、当該未知の画像データの特徴コードと、分類ラベルとを対応付けてDB1aに記憶させると良い。また、この際、画像分類器1は、新規登録された当該分類ラベルを出力すると良い。
【0064】
このように構成された実施形態1に係る学習分類器によれば、畳み込みニューラルネットワークに比べ、より柔軟に対象物を認識し、画像データを分類することができる。
【0065】
特に、学習済みPredNet3は、動画の特徴を教師なしで学習することができる。本実施形態1に係る画像分類器1は、学習済みPredNet3を構成するニューラルネットワークを用いることにより、従来の畳み込みニューラルネットワークに比べ、より柔軟に対象物を認識し、画像データを分類することができる。
【0066】
学習済みPredNet3を構成する上位層のニューラルネットワークは、学習済みニューラルネットワーク12として利用することにより、より柔軟に対象物を認識し、画像データを分類することができる。
【0067】
本実施形態1によれば、画像分類器1は、入力される画像データを分類し、DB14aが記憶する情報に基づいて、当該画像データの分類ラベルを特定することができる。
【0068】
本実施形態1によれば、学習済みCNN15を利用することにより、特徴コードと、分類ラベルとの関係を自動的に学習し、DB14aに登録することができる。
【0069】
なお、本実施形態1では、主に、学習済みニューラルネットワーク12を用いて、画像データを分類する例を説明したが、学習済みニューラルネットワーク12の分類結果と、学習済みCNN15の分類結果とに基づいて、画像データの分類を特定するように構成しても良い。
例えば、学習済みニューラルネットワーク12が画像データの分類に失敗し、学習済みCNN15が画像データの分類に成功した場合、学習済みCNN15の分類結果を出力するように構成しても良い。逆に学習済みCNN15が画像データの分類に失敗し、学習済みニューラルネットワーク12が画像データの分類に成功した場合、学習済みニューラルネットワーク12の分類結果を出力する。また、学習済みニューラルネットワーク12及び学習済みCNN15双方の分類結果に基づいて、画像データのより確からしい分類ラベルを決定し、決定した分類ラベルを出力するように構成しても良い。
【0070】
(実施形態2)
実施形態2に係る画像分類器201は、学習済みニューラルネットワーク212の構成が実施形態1と異なるため、以下では主に上記相違点を説明する。その他の構成及び作用効果は実施形態1と同様であるため、対応する箇所には同様の符号を付して詳細な説明を省略する。
【0071】
図11は実施形態2に係る画像分類器201の構成例を示すブロック図である。実施形態2に係る学習済みニューラルネットワーク212は、学習済みPredNet3を構成する複数のニューラルネットワークを含む。
図11では、学習済みニューラルネットワーク212が、第1のニューラルネットワーク212aと、第2のニューラルネットワーク212bとを含む例を示している。第1のニューラルネットワーク212a及び第2のニューラルネットワーク212bは、最下層よりも上位層にある異なる階層のモジュール31をそれぞれ構成しているニューラルネットワークである。
【0072】
例えば、第1のニューラルネットワーク212aは、学習済みPredNet3の第2層のモジュール31を構成する入力画像処理部31a又は特徴表現部31dを構成するニューラルネットワークである。第2のニューラルネットワーク212bは、学習済みPredNet3の第3層のモジュール31を構成する入力画像処理部31a又は特徴表現部31dを構成するニューラルネットワークである。
他の例では、第1のニューラルネットワーク212aは、学習済みPredNet3の第3層のモジュール31を構成する入力画像処理部31a又は特徴表現部31dを構成するニューラルネットワークである。第2のニューラルネットワーク212bは、学習済みPredNet3の第4層のモジュール31を構成する入力画像処理部31a又は特徴表現部31dを構成するニューラルネットワークである。
【0073】
分類処理部13は、分類対象の前記画像データが第1の前記ニューラルネットワークの前記入力層に入力されたときの前記複数のニューロンの第1活動パターンと、前記画像データが第2の前記ニューラルネットワークの前記入力層に入力されたときの前記複数のニューロンの第2活動パターンとに基づいて、前記画像データを分類する。
【0074】
実施形態2に係る画像分類器201によれば、学習済みニューラルネットワーク212として、学習済みPredNet3を構成する複数のニューラルネットワーク212a、212bを利用する。本態様に係る画像分類器201は、学習済みPredNet3を構成する複数のニューラルネットワーク212a、212bを用いることにより、より柔軟に対象物を認識し、画像データを分類することができる。
【0075】
(実施形態3)
実施形態3に係る画像分類器1は、学習済みニューラルネットワーク312の構成が実施形態1と異なるため、以下では主に上記相違点を説明する。その他の構成及び作用効果は実施形態1と同様であるため、対応する箇所には同様の符号を付して詳細な説明を省略する。
【0076】
実施形態3に係る学習済みニューラルネットワーク312は、学習済みオートエンコーダ4の一部を含む。
【0077】
図12は実施形態3に係る学習済みニューラルネットワーク312を示す概念図である。実施形態3に係る学習済みニューラルネットワーク312は、学習済みオートエンコーダ4を構成するニューラルネットワークの一部を抜き出したものである。
【0078】
学習済みオートエンコーダ4は、入力層4a、畳み込み層4b、中央隠れ層4c、逆畳み込み層4d及び出力層4eを備える。畳み込み層4b、中央隠れ層4c及び逆畳み込み層4dは中間層又は隠れ層である。中央隠れ層4cは、複数のニューロン(ノード)を有する。畳み込み層4b及び逆畳み込み層4dはコンボリューション層及びデコンボリューション層とも呼ばれる。
【0079】
入力層4aには画像データが入力される。畳み込み層4bは、画像データを次元圧縮する層である。例えば、畳み込み層4bは、畳み込み処理を行うことにより、次元圧縮を行う。次元圧縮により、検査対象物の特徴量が抽出される。逆畳み込み層4dは、畳み込み層4bで次元圧縮されたデータを元の次元に復元する層である。次元圧縮されたデータは中央隠れ層4cを通じて逆畳み込み層4dに入力される。逆畳み込み層4dは、逆畳み込み処理を行い、元の次元に復元する。当該復元によって、入力された画像データの特徴を表した画像データが復元される。出力層4eは、畳み込み層4b及び逆畳み込み層4dにて特徴抽出が行われた画像データを出力する。
【0080】
オートエンコーダは、動画の特徴を教師なしで学習することができる。例えば、オートエンコーダは、入力された画像データと、出力された画像データとが同じになるように、オートエンコーダのニューラルネットワークを機械学習させる。
【0081】
実施形態3に係る画像分類器1においては、学習済みオートエンコーダ4を構成する入力層4a、畳み込み層4b及び中央隠れ層4cを抜き出して学習済みニューラルネットワーク312として利用する。
【0082】
分類処理部13は、画像データが学習済みニューラルネットワーク312に入力された場合、当該学習済みニューラルネットワーク312の中央隠れ層4cを構成する複数のニューロンの活動パターンを特徴コードとして取得する。分類処理部13は、取得した特徴コードと、DB14aの情報とに基づいて、入力された画像データの分類ラベルを特定し、分類結果を外部へ出力する。
なお、ここでは、分類処理部13は、中央隠れ層4cを構成する複数のニューロンの活動パターンを特徴コードとして取得する例を説明したが、畳み込み層4bを構成する複数のニューロンの活動パターンを特徴コードとして取得しても良い。また、分類処理部13は、畳み込み層4b及び中央隠れ層4cを構成する複数のニューロンの活動パターンを特徴コードとして取得するように構成しても良い。更に、分類処理部13は、畳み込み層4b、中央隠れ層4c及び逆畳み込み層4dの少なくとも一つを構成する複数のニューロンの活動パターンを特徴コードとして取得するように構成しても良い。なお、中央隠れ層4cは、説明の便宜上のものであり、必須の構成では無い。
【0083】
実施形態3に係る画像分類器1によれば、本態様に係る画像分類器1は、学習済みオートエンコーダ4を構成するニューラルネットワークを用いることにより、従来の畳み込みニューラルネットワークに比べ、より柔軟に対象物を認識し、画像データを分類することができる。
【0084】
なお、実施形態1及び実施形態2を異なる実施形態として説明したが、学習済みPredNet3を構成するニューラルネットワークと、学習済みオートエンコーダ4を構成するニューラルネットワークとの双方を、学習済みニューラルネットワークとして組み込むように構成しても良い。分類処理部13は、各ニューラルネットワークから特徴コードを取得し、それぞれから取得した特徴コードに基づいて、画像データを分類することができる。異なる方法で学習される学習済みPredNet3及び学習済みオートエンコーダ4のニューラルネットワークを利用することによって、より柔軟に画像データの特徴を分類することが可能になる。
【0085】
また、本実施形態1−3では、学習済みPredNet3又は学習済みオートエンコーダ4を構成する一部のニューラルネットワークを取り出して画像分類器1に適用する例を説明したが、これらの構成に限定されるものでは無い。学習済みPredNet3又は学習済みオートエンコーダ4全体を学習済みニューラルネットワーク12、312に組み込むように構成しても良い。動作中の学習済みPredNet3又は学習済みオートエンコーダ4の所定の部位から、特徴コードを読み出すことによって、実施形態1−3と同様の画像分類を行うことが可能である。