(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024021654
(43)【公開日】2024-02-16
(54)【発明の名称】推論方法、推論装置、及びプログラム
(51)【国際特許分類】
G06T 7/11 20170101AFI20240208BHJP
G06T 7/00 20170101ALN20240208BHJP
G06V 10/82 20220101ALN20240208BHJP
【FI】
G06T7/11
G06T7/00 350C
G06V10/82
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022124645
(22)【出願日】2022-08-04
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】304021417
【氏名又は名称】国立大学法人東京工業大学
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】柴田 剛志
(72)【発明者】
【氏名】奥富 正敏
(72)【発明者】
【氏名】田中 正行
(72)【発明者】
【氏名】森安 宙
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096CA22
5L096FA02
5L096HA11
5L096JA16
(57)【要約】
【課題】入力データにおいて生じている未知の劣化に対して頑健性のある推論処理を行う。
【解決手段】1つ以上の変換パラメータを指定する変換パラメータ指定部と、入力データに対して、指定された前記変換パラメータの各々に基づく変換を行って変換データを生成する変換部と、前記変換データごとに、前記変換データの各々の特徴を示すデータである信頼度マップを生成する信頼度マップ生成部と、前記信頼度マップの各々に対して、各々に対応する前記変換データが生成された際に行われた変換に対する逆変換を、指定された前記変換パラメータの各々に基づいて行って逆変換データを生成する逆変換部と、前記逆変換データの各々を統合する統合処理を行い、前記入力データの前記信頼度マップと次元数が一致する統合データを生成する統合部と、前記統合データに対して分析処理を行う分析部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
1つ以上の変換パラメータを指定する変換パラメータ指定ステップと、
入力データに対して、指定された前記変換パラメータの各々に基づく変換を行って変換データを生成する変換ステップと、
前記変換データごとに、前記変換データの各々の特徴を示すデータである信頼度マップを生成する信頼度マップ生成ステップと、
前記信頼度マップの各々に対して、各々に対応する前記変換データが生成された際に行われた変換に対する逆変換を、指定された前記変換パラメータの各々に基づいて行って逆変換データを生成する逆変換ステップと、
前記逆変換データの各々を統合する統合処理を行い、前記入力データの前記信頼度マップと次元数が一致する統合データを生成する統合ステップと、
前記統合データに対して分析処理を行う分析ステップと、
を含む推論方法。
【請求項2】
前記分析ステップは、前記分析処理として、認識処理を行い、
前記統合ステップは、
正解データが付与された前記入力データから生成される前記統合データに対して行われる前記分析ステップの前記認識処理によって得られる認識結果と、当該統合データに対応する前記正解データとに基づいて複数の統合演算式の中から選択されるいずれか1つの最適な前記統合演算式を用いて前記統合処理を行う、
請求項1に記載の推論方法。
【請求項3】
前記統合演算式は、
統合する対象の前記逆変換データの各々における対応する位置の特徴値に基づいて、前記統合データの当該位置の特徴値を算出する演算を行う式である、
請求項2に記載の推論方法。
【請求項4】
前記統合演算式は、
統合する対象の前記逆変換データの各々における対応する位置、及び当該位置の近傍の位置の特徴値に基づいて、前記統合データの当該位置の特徴値を算出する演算を行う式である、
請求項2に記載の推論方法。
【請求項5】
前記入力データの品質を評価する品質評価ステップを更に含み、
前記統合ステップは、
前記統合処理において用いる前記統合演算式が、前記逆変換データの各々に適用される重みを用いる演算を含んでいる場合、前記逆変換データに対応する前記入力データを前記品質評価ステップによって評価して得られる前記品質を示すデータに基づいて、前記重みの値を定める、
請求項2に記載の推論方法。
【請求項6】
前記分析ステップは、前記分析処理として、認識処理を行い、
前記変換パラメータ指定ステップは、
正解データが付与された前記入力データから得られる前記逆変換データの各々に対して行われる前記分析ステップの前記認識処理によって得られる認識結果と、前記逆変換データに対応する前記正解データとに基づいて選択される前記変換パラメータを指定する、
請求項1から請求項5のいずれか一項に記載の推論方法。
【請求項7】
1つ以上の変換パラメータを指定する変換パラメータ指定部と、
入力データに対して、指定された前記変換パラメータの各々に基づく変換を行って変換データを生成する変換部と、
前記変換データごとに、前記変換データの各々の特徴を示すデータである信頼度マップを生成する信頼度マップ生成部と、
前記信頼度マップの各々に対して、各々に対応する前記変換データが生成された際に行われた変換に対する逆変換を、指定された前記変換パラメータの各々に基づいて行って逆変換データを生成する逆変換部と、
前記逆変換データの各々を統合する統合処理を行い、前記入力データの前記信頼度マップと次元数が一致する統合データを生成する統合部と、
前記統合データに対して分析処理を行う分析部と、
を備える推論装置。
【請求項8】
コンピュータに、
1つ以上の変換パラメータを指定する手順、
入力データに対して、指定された前記変換パラメータの各々に基づく変換を行って変換データを生成する手順、
前記変換データごとに、前記変換データの各々の特徴を示すデータである信頼度マップを生成する手順、
前記信頼度マップの各々に対して、各々に対応する前記変換データが生成された際に行われた変換に対する逆変換を、指定された前記変換パラメータの各々に基づいて行って逆変換データを生成する手順、
前記逆変換データの各々を統合する統合処理を行い、前記入力データの前記信頼度マップと次元数が一致する統合データを生成する手順、
前記統合データに対して分析処理を行う手順、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、推論方法、推論装置、及びプログラムに関する。
【背景技術】
【0002】
コンボリューショナル・ニューラルネットワーク(以下「CNN」(Convolutional Neural Network)という)を積層して形成されるディープ・コンボリューショナル・ニューラルネットワーク(以下「DCNN」(Deep Convolutional Neural Network)という)は、近年、コンピュータ・ビジョンや画像処理における主流の手法になっている。DCNNは、画像認識、物体検出、セマンティックセグメンテーションなどのコンピュータ・ビジョン・タスクの性能向上に大きく貢献している。特に、セマンティックセグメンテーションは、ビデオ監視、医用画像処理、自動運転など、多くのビジョン・アプリケーションにおいて重要な要素となっている。
【0003】
ところで、既存のセマンティックセグメンテーションのアルゴリズムは、クリーンな画像、すなわち画像劣化のない画像を認識対象とする場合、高い認識精度を発揮する。これに対して、ビデオ監視や自動運転などのアプリケーションから実際に得られる画像には、ノイズ、ぼかし、圧縮歪みなどの一般的な画像劣化が生じていることが多い。ただし、一般的な画像劣化といえども、このような画像劣化は、セマンティックセグメンテーションのアルゴリズムが予期しない画像劣化である。このような画像劣化が認識対象の画像に生じていると、例えば、非特許文献1に示されているように、訓練データの分布に対してドメインシフトが生じる。そのため、画像劣化を含む画像に対して、既存のセマンティックセグメンテーションのアルゴリズムをそのまま適用すると、認識精度は著しく低下する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Christoph Kamann and Carsten Rother, “Benchmarking the Robustness of Semantic Segmentation Models”, International Journal of Computer Vision, 2021.
【非特許文献2】Kazuki Endo, Masayuki Tanaka, and Masatoshi Okutomi, “CLASSIFYING DEGRADED IMAGES OVER VARIOUS LEVELS OF DEGRADATION”, in 2020 IEEE International Conference on Image Processing (ICIP), 2020.
【非特許文献3】Kai Zhang, Wangmeng Zuo, Yunjin Chen, Deyu Meng, and Lei Zhang, “Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising”, IEEE transactions on image processing, 2017.
【非特許文献4】Dazhou Guo, Yanting Pei, Kang Zheng, Hongkai Yu, Yuhang Lu, and SongWang, “Degraded Image Semantic Segmentation With Dense-Gram Networks”, IEEE Transactions on Image Processing, 2019.
【非特許文献5】Christoph Kamann and Carsten Rother, “Increasing the Robustness of Semantic Segmentation Models with Painting-by-Numbers”, in European Conference on Computer Vision, 2020.
【発明の概要】
【発明が解決しようとする課題】
【0005】
画像劣化に対処するための素朴なアプローチは、例えば、
図12に示すように、画像復元と、セマンティックセグメンテーションとを組み合わせるアプローチである。ただし、既存の画像復元のアルゴリズムの多くは、ガウスノイズ、圧縮歪み、ブラーなどの特定の劣化モデルの各々に対応して構築されたアルゴリズムである(例えば、非特許文献2,3参照)。言い換えると、既存の画像復元のアルゴリズムは、予め劣化モデルを想定して構築されたアルゴリズムであり、想定した劣化モデルの画像劣化を含む画像に対して有効であるが、想定した劣化モデル以外の画像劣化を含む画像を復元することができない。
【0006】
例えば、
図12に示すように、想定した画像劣化を含む画像データ300-1と、想定外の画像劣化を含む画像データ300-2とが存在しているとする。これらの画像データ300-1,300-2に対して、画像データ300-1に生じている想定した画像劣化に対応する画像復元のアルゴリズムを適用すると、画像データ300-1,300-2の各々に対応する復元画像データ310-1,310-2が得られる。復元画像データ310-1については、適切に復元された状態になる。これに対して、復元画像データ310-2については、適切に復元された状態にはならない。そのため、復元画像データ310-1,310-2の各々に対してセマンティックセグメンテーションを行ったとしても、以下のような結果になる。すなわち、復元画像データ310-1から得られる認識結果画像データ320-1では、正しく画素ごとのクラスが認識されるという結果になる。これに対して、復元画像データ310-2から得られる認識結果画像データ320-2では、正しく画素ごとのクラスが認識されないという結果になる。
【0007】
上記の素朴なアプローチに対して、非特許文献4では、画像劣化を含む画像に対してセマンティックセグメンテーションを行う新たなニューラルネットワークが提案されている。ただし、非特許文献4において提案されているニューラルネットワークは、劣化モデルごとに学習させる必要がある。そのため、未知の劣化モデルの劣化が生じている画像に対しては、上記の素朴なアプローチと同様に、非特許文献4に開示されている技術も、正しくセマンティックセグメンテーションを行うことができない。
【0008】
実用的な場面では、劣化モデルが未知であることが多い。非特許文献5では、様々な劣化に対して頑健である学習スキーマが提案されている。しかしながら、非特許文献5に開示されている技術において、ぼかし等の典型的な劣化に対して効果が得られるようにするためには、一度だけでも再学習を行う必要があるという問題がある。
【0009】
本発明は、上記問題を解決すべくなされたもので、その目的は、入力データにおいて生じている未知の劣化に対して頑健性のある推論処理を行う推論方法、推論装置、及びプログラムを提供することにある。
【課題を解決するための手段】
【0010】
上記問題を解決するために、本発明の一態様は、1つ以上の変換パラメータを指定する変換パラメータ指定ステップと、入力データに対して、指定された前記変換パラメータの各々に基づく変換を行って変換データを生成する変換ステップと、前記変換データごとに、前記変換データの各々の特徴を示すデータである信頼度マップを生成する信頼度マップ生成ステップと、前記信頼度マップの各々に対して、各々に対応する前記変換データが生成された際に行われた変換に対する逆変換を、指定された前記変換パラメータの各々に基づいて行って逆変換データを生成する逆変換ステップと、前記逆変換データの各々を統合する統合処理を行い、前記入力データの前記信頼度マップと次元数が一致する統合データを生成する統合ステップと、前記統合データに対して分析処理を行う分析ステップと、を含む推論方法である。
【0011】
本発明の一態様は、上記に記載の発明において、1つ以上の変換パラメータを指定する変換パラメータ指定部と、入力データに対して、指定された前記変換パラメータの各々に基づく変換を行って変換データを生成する変換部と、前記変換データごとに、前記変換データの各々の特徴を示すデータである信頼度マップを生成する信頼度マップ生成部と、前記信頼度マップの各々に対して、各々に対応する前記変換データが生成された際に行われた変換に対する逆変換を、指定された前記変換パラメータの各々に基づいて行って逆変換データを生成する逆変換部と、前記逆変換データの各々を統合する統合処理を行い、前記入力データの前記信頼度マップと次元数が一致する統合データを生成する統合部と、前記統合データに対して分析処理を行う分析部と、を備える推論装置である。
【0012】
本発明の一態様は、上記に記載の発明において、コンピュータに、1つ以上の変換パラメータを指定する手順、入力データに対して、指定された前記変換パラメータの各々に基づく変換を行って変換データを生成する手順、前記変換データごとに、前記変換データの各々の特徴を示すデータである信頼度マップを生成する手順、前記信頼度マップの各々に対して、各々に対応する前記変換データが生成された際に行われた変換に対する逆変換を、指定された前記変換パラメータの各々に基づいて行って逆変換データを生成する手順、前記逆変換データの各々を統合する統合処理を行い、前記入力データの前記信頼度マップと次元数が一致する統合データを生成する手順、前記統合データに対して分析処理を行う手順、を実行させるためのプログラムである。
【発明の効果】
【0013】
本発明により、入力データにおいて生じている未知の劣化に対して頑健性のある推論処理を行うことができる。
【図面の簡単な説明】
【0014】
【
図1】第1の実施形態の推論装置の構成を示すブロック図である。
【
図2】第1の実施形態の推論装置において採用されている手法の概要を示す図である。
【
図3】第1の実施形態の推論装置が行う処理の流れを示す図である。
【
図4】第1の実施形態の条件選定装置の構成を示すブロック図である。
【
図5】第1の実施形態の条件選定装置が行う処理の流れを示す図である。
【
図6】第1の実施形態の条件選定装置が備える処理結果記憶部に生成されるテーブルのデータ形式を示す図である。
【
図7】第2の実施形態の推論装置の構成を示すブロック図である。
【
図8】第2の実施形態の推論装置が行う処理の流れを示す図である。
【
図9】第3の実施形態の変換パラメータ選択装置の構成を示すブロック図である。
【
図10】第3の実施形態の変換パラメータ選択装置が行う処理の流れを示す図である。
【
図11】第3の実施形態の変換パラメータ選択装置が備える処理結果記憶部に生成されるテーブルのデータ形式を示す図である。
【
図12】画像劣化がある画像データに対するセマンティックセグメンテーションを適用するための素朴なアプローチの概要を示す図である。
【発明を実施するための形態】
【0015】
(第1の実施形態)
以下、本発明の実施形態について図面を参照して説明する。
図1は、第1の実施形態による推論装置1の構成を示すブロック図である。
図2は、
図1に示す第1の実施形態による推論装置1において採用する手法の概要を示す図である。
図2に示す画像データ100-1は、例えば、ビデオ監視や自動運転などのアプリケーションから得られるセマンティックセグメンテーションの認識対象となる画像データである。ここで、画像データ100-1には、未知の画像劣化が生じているとする。推論装置1において採用する手法は、以下の2つの観察に基づいている。すなわち、(1)画像データ100-1に対して、例えば、縮小の画像変換をすることにより得られる低解像度の画像データ100-2,…,100-Nは、細かいテクスチャなどのパターンが消失する代わりに、JPEG(Joint Photographic Experts Group)圧縮やボケなどの画像劣化も縮小される。そのため、低解像度の画像データ100-2,…,100-Nは、画像劣化が軽減された画像データになる。(2)セマンティックセグメンテーションのアルゴリズムは、低解像度の画像データ100-2,…,100-Nに対しても有効である。言い換えると、画像劣化のない低解像度の画像データと、画像劣化のない高解像度の画像データとにおいて、セマンティックセグメンテーションの精度は、それほど大きな違いがない。
【0016】
上記の(1),(2)の2つの観察に基づいて、推論装置1において採用する手法では、例えば、画像劣化を含む画像データ100-1に対するセマンティックセグメンテーションを以下のようにして行う。画像データ100-1に対して、任意に定める画像変換を行って、画像データ100-2,…,100-Nを得る。例えば、SegNetやU-Netなどのエンコーダ・デコーダ型のセマンティックセグメンテーションのニューラルネットワークであって学習済みのニューラルネットワークのエンコーダの部分と、デコーダの部分とを分離する。画像データ100-1,100-2,…,100-Nの各々を、エンコーダ部分のニューラルネットワークに与えることによりダウンサンプリングを行って、各々に対応する信頼度マップ110-1,110-2,…,110-Nを得る。ここで、信頼度マップとは、いわゆる特徴マップと呼ばれるデータであり、画像データ100-1,100-2,…,100-Nに含まれている特徴を示すデータである。信頼度マップの各要素の値、すなわち、特徴量を示す値は、ロジットとよばれており、ロジットの値に基づいて、元の画像データの画素ごとに最も信頼性が高いクラスが、その画素に該当するクラスとして割り当てられることになる。ここで、画素ごとの最も信頼性が高いクラスとは、例えば、画素の各々に対応するロジットの値が最大であるクラス、または、ロジットの値を正規化した値が最大であるクラスのことである。クラスとは、例えば、画像データ100-1,100-2,…,100-Nの各々に含まれている「人」、「車」などの物体の種類のことである。
【0017】
信頼度マップ110-2,…,110-Nの各々に対して、各々に対応する画像データ100-2,…,100-Nが得られた際に行われた画像変換に対応する逆変換を行う。信頼度マップ110-1と、逆変換された信頼度マップ110-2,…,110-Nとを統合して統合データを生成する。このように信頼度マップ110-1,…,110-Nを統合する手法は、いわゆる機械学習におけるアンサンブルと呼ばれる手法に相当する。デコーダ部分のニューラルネットワークに、生成した統合データを与えることによりアップサンプリングを行って、セマンティックセグメンテーションの結果である画像データ150を取得する。なお、分離したエンコーダ部分のニューラルネットワーク、及びデコーダ部分のニューラルネットワークは、ニューロンに適用される係数、すなわち、重みやバイアスの値が学習済みの状態で固定された状態で用いられる。以下、係数が学習済みの状態で固定されている状態を、「係数凍結」ともいう。
【0018】
推論装置1が備える各機能部について説明する前に、各機能部の説明において用いる変数や関数の意味について説明する。ビデオ監視や自動運転などのアプリケーションから得られる画像データであって推論装置1の入力となるデータ(以下「入力データ」という)を次式(1)の記号により表す。以下、本文において、次式(1)の記号を示す場合、ベクトルxと記載する。
【0019】
【0020】
入力データが、例えば、RGBのカラーの画像データである場合、画素ごとの赤色、緑色、青色の各々の画素値を示す3チャンネルのチャンネル方向が存在することになる。この場合、ベクトルxは、縦方向と、横方向と、チャンネル方向とを有する3次元のデータになる。ベクトルxから信頼度マップを算出するバックボーンのニューラルネットワークによる演算を次式(2)に示す関数S(・)で表す。
【0021】
【0022】
関数S(・)の演算を行うニューラルネットワークは、学習済みのニューラルネットワークであり、係数凍結の状態で用いられる。関数S(・)の演算を行うニューラルネットワークの具体例としては、例えば、上記したSegNet及びU-Netなどのエンコーダ・デコーダ型のセマンティックセグメンテーションのニューラルネットワークのエンコーダの部分のニューラルネットワークや、FCN(Fully Convolutional Network)などがある。
【0023】
ベクトルxに対して関数S(・)を適用することにより得られる信頼度マップを、次式(3)において示される左から1つめの記号であるベクトルp、または、左から2つ目の記号であるpchwとして表す。なお、pchwの添え字のcはチャンネル方向のインデックスであり、hは縦方向のインデックスであり、wは横方向のインデックスである。すなわち、信頼度マップを示すベクトルpは、3次元のデータである。したがって、1組のc,h,wの値を定めることにより、ベクトルpのc,h,wの位置の1つの特徴量が特定されることになる。
【0024】
【0025】
信頼度マップであるベクトルpからベクトルxの画素ごとのクラスを割り当てる演算を次式(4)に示す関数g(・)で表す。
【0026】
【0027】
関数g(・)の演算を行うニューラルネットワークは、関数S(・)のニューラルネットワークと同様に、学習済みのニューラルネットワークであり、係数凍結の状態で用いられる。関数g(・)の演算を行うニューラルネットワークの具体例としては、例えば、上記したSegNet及びU-Netなどのエンコーダ・デコーダ型のセマンティックセグメンテーションのニューラルネットワークのデコーダの部分のニューラルネットワークや、ベクトルpのサイズを、元の入力データであるベクトルxのサイズに戻すアップサンプリングを行うニューラルネットワークなどがある。
【0028】
セマンティックセグメンテーションの結果、すなわち、ベクトルxに対して関数S(・)を適用し、更に、関数S(・)の結果に対して関数g(・)を適用して得られる認識結果データを、次式(5)の左辺の記号により表す。以下、本文では、次式(5)の左辺のサーカムフレックス付きのベクトルyを「ベクトル^y」として記載する。
【0029】
【0030】
(第1の実施形態の推論装置の構成)
図1に示すように、推論装置1は、変換統合条件記憶部10、変換パラメータ指定部11、データ取込部12、変換部13、信頼度マップ生成部14、逆変換部15、統合部16、分析部17、及び出力部18を備える。変換統合条件記憶部10は、予め選定されるN個の変換パラメータと、予め選定される1つの統合演算式とを予め記憶する。ここで、Nは、2以上の整数である。変換統合条件記憶部10が記憶する変換パラメータの集合は、次式(6)によって表される。
【0031】
【0032】
式(6)のξ
1,…,ξ
n,…,ξ
Nの各々が、個々の変換パラメータを示す記号であり、「{・}」は集合を表す記号である。ここで、nは、1~Nの中の任意の整数である。以下、変換パラメータξ
nと記載する場合、いずれか1つの任意の変換パラメータを示すものとする。変換パラメータξ
1は、画像変換を行わない変換パラメータである。
図2に示したように、元の入力データである画像データ100-1は、画像変換が行われることなく、関数S(・)が適用され、関数S(・)を適用して得られる信頼度マップ110-1が統合の対象になる。そのため、変換統合条件記憶部10に記憶される変換パラメータξ
1,…,ξ
n,…,ξ
Nには、変換を行わない変換パラメータが1つ含まれている必要がある。そのため、ここでは、変換パラメータξ
1を、画像変換を行わない変換パラメータとしている。
【0033】
N=2以上の変換パラメータξ2~ξNは、画像変換を行う変換パラメータである。変換パラメータξ2~ξNは、例えば、上記した縮小の画像変換以外に、拡大、回転、アフィン変換、射影変換などの線形変換、Bスプライン補間を用いた非線形変換などの幾何学的な画像変換などを示す変換パラメータである。変換パラメータξ2~ξNは、色調や色温度の変換のような光学的な画像変換を示す変換パラメータであってもよい。変換パラメータξ2~ξNは、ノイズの除去や付与、ボケの除去や付与などの画像の品質(以下「画質」という)の向上や、画質の劣化に関する画像変換を示すパラメータであってもよい。ここで、ノイズとは、一般的な白色ノイズに限られるものではなく、圧縮ノイズ、誤った認識を引き起こすような敵対的ノイズなどであってもよい。なお、変換パラメータξ2~ξNの各々には、画像変換の種類を示すデータが含まれていると共に、変換の比率、例えば、縮小の画像変換であれば、縮小の比率を示す変数が含まれている。例えば、変換パラメータξnが、2次元の回転の画像変換を示す変換パラメータである場合、1変数が含まれることになる。変換パラメータξnが、アフィン変換を示す変換パラメータである場合、6変数が含まれることになる。
【0034】
なお、縮小の画像変換のように画像劣化の影響を軽減させる画像変換を示す変換パラメータ以外に、画像劣化を加えるような画像変換を示す変換パラメータが含まれてもよいとしている理由は、以下のようなことを想定しているためである。既存のセマンティックセグメンテーション、または、将来提案されるセマンティックセグメンテーションのニューラルネットワークが、画像劣化を増加させる画像変換に対して頑健であるとする。この場合、画像劣化を増加させる画像変換を付加する方が、結果的に、セマンティックセグメンテーションの認識結果として、精度の高い認識結果が得られることが想定されるためである。
【0035】
変換パラメータ指定部11は、変換部13と、逆変換部15とが用いる変換パラメータを指定する。より詳細には、変換パラメータ指定部11は、変換統合条件記憶部10に記憶されているN個の変換パラメータξ1~ξNを読み出し、読み出した変換パラメータξ1~ξNを1つずつ変換部13と、逆変換部15とに出力することにより、変換パラメータの指定を行う。データ取込部12は、外部から与えられる認識対象である画像データである入力データを取り込み、取り込んだ入力データを変換部13に出力する。
【0036】
変換部13は、データ取込部12が出力する入力データに対して、変換パラメータ指定部11が出力するN個の変換パラメータξ1~ξNの各々に基づいて次式(7)で表される画像変換を行う。
【0037】
【0038】
式(7)において、右辺のD(・;ξn)は、引数として与えられる画像データに対して、変換パラメータξnに基づく画像変換の演算を行う変換関数である。式(7)の左辺のチルダ付きのベクトルxn(以下、本文ではベクトル~xnと記載する)は、変換パラメータξnに基づく画像変換が行われたベクトルxを示している。以下、ベクトル~xnを変換データという。変換部13が画像変換により生成するN個の変換データの集合は、次式(8)で表される。
【0039】
【0040】
上記したように変換パラメータξ1は、画像変換を行わない変換パラメータであるため、式(8)において、ベクトル~x1と、ベクトルx1とは同一のデータである。信頼度マップ生成部14は、式(8)の変換データの集合に含まれているN個の変換データの各々に対して、式(2)に示す関数S(・)を適用して、次式(9)に示すようにN個の信頼度マップであるベクトル~p1,…,~pn,…~pNを生成する。
【0041】
【0042】
逆変換部15は、変換パラメータ指定部11が出力するN個の変換パラメータξ1~ξNの各々に基づいて、信頼度マップ生成部14が生成したN個の信頼度マップの各々に対して、各々に対応する変換データが生成された際に行われた画像変換に対応する逆変換を行う。例えば、n番目の変換パラメータξnによる画像変換が、θ°回転させる回転の画像変換である場合、逆変換部15は、n番目の信頼度マップに対して、-θ°回転させる画像変換を行うことにより逆変換を行う。逆変換部15が行う逆変換は、次式(10)で表される。
【0043】
【0044】
式(10)において、右辺のU(・;ξn)は、引数として与えられる信頼度マップに対して、変換パラメータξnに基づく画像変換に対応する逆変換の演算を行う変換関数である。式(10)の左辺のベクトルpnは、逆変換部15が、変換パラメータξnに基づいてn番目の信頼度マップであるベクトル~pnを逆変換して得られるデータである。以下、ベクトル~pnを逆変換データという。なお、以下で説明する統合部16がN個の逆変換データを統合する際に、統合部16がN個の逆変換データの各々において空間的に同一の位置の特徴量を比較できるようにする必要がある。ここで、「空間的に同一の位置」とは、以下のような位置である。N個の逆変換データは、ベクトルx1に基づいて生成されるデータである。そのため、例えば、ベクトルx1において(c,h,w)が(1,1,1)の位置に対応する位置が、N個の逆変換データの各々において存在することになる。言い換えると、N個の逆変換データの各々の位置は、ベクトルx1のいずれかの1点に対応していることになり、ベクトルx1において対応する位置が同一になるN個の逆変換データの位置が、空間的に同一の位置ということになる。
【0045】
したがって、逆変換部15は、統合部16がN個の逆変換データの各々において空間的に同一の位置の特徴量を比較できるようにするため、N個の逆変換後のデータの同一のc,h,wによって示される位置が、空間的に同一の位置になるように位置合わせの処理を行ってN個の逆変換データを生成する。逆変換部15が生成するN個の逆変換データの集合は、次式(11)で表される。
【0046】
【0047】
統合部16は、変換統合条件記憶部10に記憶されている予め選定された1つの統合演算式に基づいて、式(11)の逆変換データの集合に含まれているN個の逆変換データを統合する。統合部16が行う統合処理は、連結演算子([・])を用いて、次式(12)で表される。
【0048】
【0049】
式(12)の左辺は、統合部16がN個の逆変換データを統合することにより生成する統合データを示す記号であり、以下、本文では、統合データをベクトル^pと記載する。統合部16は、統合処理により生成する統合データ、すなわちベクトル^pの次元数が、入力データであるベクトルxに対して式(2)に示す関数S(・)を適用して得られる信頼度マップ、すなわち式(3)のベクトルpと同一次元数になるように統合処理を行う。ここで、同一次元数とは、c×h×wで示されるデータのサイズが一致していることをいい、より具体的には、式(3)のベクトルpが、例えば、8×256×256のサイズである場合、統合データであるベクトル^pのサイズも8×256×256になっていることをいう。
【0050】
式(12)の連結演算子は、単に、N個の逆変換データの各々におけるc,h,wが同一である位置のN個の特徴量を連結、すなわち、N個の特徴量を合計した値を、当該位置における統合データの特徴量とする統合処理の演算を行う統合演算式であってもよい。式(12)の連結演算子は、以下に示すような統合演算式のいずれかであってもよい。
【0051】
例えば、式(12)の連結演算子は、次式(13)~(17)で表される5個の統合演算式であってもよい。次式(13)で表される統合演算式は、N個の逆変換データの各々において、c,h,wが同一である位置のN個の特徴量の中で最大値である特徴量を、当該位置における統合データの特徴量とするように統合処理を行う統合演算式である。
【0052】
【0053】
次式(14)で表される統合演算式は、N個の逆変換データの各々において、c,h,wが同一である位置のN個の特徴量の平均値を、当該位置における統合データの特徴量とするように統合処理を行う統合演算式である。
【0054】
【0055】
次式(15)で表される統合演算式は、N個の逆変換データの各々において、c,h,wが同一である位置のN個の特徴量に対して、N個の逆変換データごとに予め値が定められている重みwnを乗算して得られた乗算値の中で最大の乗算値を、当該位置における統合データの特徴量とするように統合処理を行う統合演算式である。当該最大の乗算値は、重み付き最大値と呼ばれる値でもある。
【0056】
【0057】
次式(16)で表される統合演算式は、N個の逆変換データの各々において、c,h,wが同一である位置のN個の特徴量に対して、N個の逆変換データごとに予め定められる重みwnの値を乗算して得られた乗算値を、N個の重みwnの値の合計値で除算することにより得られる除算値を、当該位置における統合データの特徴量とするように統合処理を行う統合演算式である。当該除算値は、重み付き平均値、または、加重平均値と呼ばれる値でもある。
【0058】
【0059】
次式(17)で表される統合演算式は、N個の逆変換データの各々において、c,h,wが同一である位置のN個の特徴量を大きい方から順に並べた場合に、上位k個の平均値を、当該位置における統合データの特徴量とするように統合処理を行う統合演算式である。
【0060】
【0061】
式(17)の統合演算式は、より詳細には、次式(18)により表される。
【0062】
【0063】
式(18)におけるφ(k)
nchwは、次式(19)によって定義される。
【0064】
【0065】
式(19)において、関数R(・)は、引数として与えられた値の順位を返り値として出力する関数である。例えば、逆変換データであるベクトルp1~pNにおいて、n番目のベクトルpnのある1点の特徴量であるpnchwが、関数R(・)の引数として適用されたとする。この場合、関数R(・)は、引数のpnchwとc,h,wが同一であるN個のp1chw~pNchwの特徴量を大きい順に並べた場合に、引数のpnchwの順位を返り値として出力する。kの値は、1~Nの間の整数値であって、予め定められる整数値である。k=1の場合、式(17)は、式(13)、すなわち、最大値を選択する統合処理を行う統合演算式と同一の式になり、k=Nの場合、式(17)は、式(14)、すなわち、平均値を選択する統合処理を行う統合演算式と同一の式になる。
【0066】
式(12)の連結演算子は、以下のような統合演算式であってもよい。例えば、N個の逆変換データの各々において、c,h,wが同一である位置のN個の特徴量の中の中央値の特徴量を、当該位置における統合データの特徴量とするように統合処理を行う統合演算式であってもよい。N個の逆変換データの各々において、c,h,wが同一である位置のN個の特徴量に対して、N個の逆変換データごとに予め値が定められている重みwnの値を乗算して得られた乗算値の中の中央値の乗算値を、当該位置における統合データの特徴量とするように統合処理を行う統合演算式であってもよい。当該乗算値は、重み付き中央値と呼ばれる値でもある。
【0067】
式(12)の連結演算子は、以下のような統合演算式であってもよい。統合データのある1つの位置をc1,h1,w1とした場合、c1,h1,w1の位置の特徴量を統合演算式によって求める際に、N個の逆変換データの各々におけるc1,h1,w1の位置の特徴量のみを対象とするのではなく、c1,h1,w1の位置の近傍の位置の特徴量を含めて、上記の式(13)~式(16)に示す統合演算式を適用した統合処理を行うようにしてもよい。この場合において、近傍を考慮する変換パラメータの種類を予め定めておき、予め定めた変換パラメータの種類に対応する逆変換データについては、近傍の特徴量を含めるようにし、予め定めた変換パラメータの種類以外の種類に対応する逆変換データについては、近傍の特徴量を含めないようにしてもよい。式(15)、または、式(16)に示す統合演算式を適用する場合、予め定めた変換パラメータの種類に対応する逆変換データについては、近傍の特徴量を含めた上で、重みwnの値を大きくするようにし、予め定めた変換パラメータの種類以外の種類に対応する逆変換データについては、近傍の特徴量を含めた上で、重みwnの値を小さくするようにしてもよい。
【0068】
ここで、「近傍の位置」とは、例えば、c1,h1,w1の位置を基準とした場合に、c1,h1,w1の位置に対して上下左右前後、及び斜め方向において隣接する26個の位置であってもよいし、c1,h1,w1の位置に対して上下左右前後で隣接する6個の位置であってもよいし、c1,h1,w1の位置を含む任意の範囲であって予め定められる範囲に含まれる位置であってもよい。
【0069】
上記した統合演算式を複数組み合わせた演算式を統合演算式としてもよい。例えば、統合部16が、式(13)に基づいて生成した統合データと、式(14)に基づいて生成した統合データとを、更に、式(13)に基づいて統合した結果を、最終的な統合データとしてもよい。
【0070】
分析部17は、統合部16がN個の逆変換データを統合することにより生成する統合データであるベクトル^pに対して、式(4)の関数g(・)を適用する処理を行う。式(4)の関数g(・)を適用する処理とは、認識処理であり、具体的には、セマンティックセグメンテーションのアルゴリズムにおいて行われる画像の領域をクラスごとに分割する画像分割処理である。分析部17による認識処理は、次式(20)で表される。
【0071】
【0072】
式(20)に示されるように、分析部17による認識処理により、認識結果データ、すなわちセマンティックセグメンテーションの結果を示すデータであるベクトル^yが得られることになる。出力部18は、例えば、液晶ディスプレイなどの画面を備えた表示装置であってもよいし、半導体メモリやHDD(Hard Disk Drive)などの記憶装置であってもよい。出力部18が、表示装置である場合、分析部17が認識処理により生成した認識結果データであるベクトル^yを画面に表示する。出力部18が、記憶装置である場合、分析部17は、認識処理により生成した認識結果データであるベクトル^yを出力部18に書き込んで記憶させる。
【0073】
(第1の実施形態の推論装置による処理)
図3は、推論装置1による処理の流れを示すフローチャートである。推論装置1が起動すると、変換パラメータ指定部11は、変換統合条件記憶部10に予め記憶されているN個の変換パラメータξ
1~ξ
Nを読み出し、読み出した変換パラメータξ
1~ξ
Nを内部の記憶領域に書き込んで記憶させる(ステップSa1)。統合部16は、変換統合条件記憶部10に予め記憶されている1つの統合演算式を読み出し、読み出した統合演算式を内部の記憶領域に書き込んで記憶させる(ステップSa2)。データ取込部12は、外部から与えられる認識対象の画像データである入力データを取り込み、取り込んだ入力データを変換部13に出力する(ステップSa3)。
【0074】
変換パラメータ指定部11は、内部の記憶領域に記憶されている変換パラメータξ1~ξNの中からいずれか1つの変換パラメータξnを選択して読み出す。変換パラメータ指定部11は、読み出した変換パラメータξnを、変換部13と、逆変換部15とに出力する。これにより、ループLa1s~La1eの最初の処理が開始される。
【0075】
変換部13は、データ取込部12が出力する入力データと、変換パラメータ指定部11が出力する変換パラメータξnとを取り込む。変換部13は、取り込んだ入力データであるベクトルxに対して、取り込んだ変換パラメータξnに基づいて、式(7)で表される画像変換を行って変換データを生成する。変換部13は、生成した変換データ、すなわちベクトル~xnを信頼度マップ生成部14に出力する(ステップSa4)。
【0076】
信頼度マップ生成部14は、変換部13が出力する変換データであるベクトル~xnを取り込み、取り込んだベクトル~xnに対して、式(2)に示す関数S(・)を適用して信頼度マップを生成する。信頼度マップ生成部14は、生成した信頼度マップであるベクトル~pnを逆変換部15に出力する(ステップSa5)。
【0077】
逆変換部15は、信頼度マップ生成部14が出力する信頼度マップと、変換パラメータ指定部11が出力する変換パラメータξnとを取り込む。逆変換部15は、取り込んだ信頼度マップであるベクトル~pnに対して、取り込んだ変換パラメータξnに基づいて、式(10)で表される逆変換、すなわち、変換部13が変換パラメータξnに基づいて行った画像変換に対応する逆変換を行って逆変換データを生成する。逆変換部15は、生成した逆変換データ、すなわちベクトルpnを統合部16に出力する(ステップSa6)。
【0078】
変換パラメータ指定部11は、内部の記憶領域に記憶されている変換パラメータξ1~ξNの中から未選択のいずれか1つの変換パラメータξn、すなわち、変換部13及び逆変換部15に出力していない、いずれか1つの変換パラメータξnを選択することを繰り返し行う。これにより、変換パラメータξ1~ξNの各々に対応するステップSa4~Sa6の処理が繰り返し行われることになる(ループLa1s~La1e)。この場合において、変換パラメータ指定部11が変換部13に出力する変換パラメータξnが、画像変換を行わないことを示す変換パラメータξ1である場合、変換部13と、逆変換部15とは以下の処理を行うことになる。ステップSa4の処理において、変換部13は、データ取込部12から取り込んだ入力データであるベクトルxを、画像変換することなくベクトル~x1として信頼度マップ生成部14に出力する。ステップSa6の処理において、逆変換部15は、信頼度マップ生成部14が出力する信頼度マップであるベクトル~p1を、逆変換することなくベクトルp1として統合部16に出力する。
【0079】
統合部16は、変換統合条件記憶部10を参照して、変換パラメータξ1~ξNの個数である「N」を検出する。統合部16は、ループLa1s~La1eの処理の間に、逆変換部15が出力する逆変換データであるベクトルpnを繰り返し取り込む。統合部16は、取り込んだベクトルpnの個数がN個に一致しない間は、ベクトルpnの取り込みを継続する。一方、統合部16は、取り込んだベクトルpnの個数がN個に一致した場合、内部の記憶領域に記憶されている統合演算式に基づいて、N個のベクトルpnを統合して統合データを生成する。統合部16は、生成した統合データ、すなわちベクトル^pを分析部17に出力する(ステップSa7)。
【0080】
分析部17は、統合部16が出力する統合データであるベクトル^pを取り込み、取り込んだベクトル^pに対して、式(4)に示す関数g(・)を適用して、式(20)に示す認識処理を行って認識結果データを生成する。分析部17は、認識結果データであるベクトル^yを出力部18に出力する(ステップSa8)。出力部18は、分析部17が出力する認識結果データであるベクトル^yを取り込む。上記したように、出力部18が表示装置である場合、出力部18は、取り込んだ認識結果データであるベクトル^yを画面に表示する。出力部18が記憶装置である場合、出力部18は、取り込んだ認識結果データであるベクトル^yを記憶する(ステップSa9)。これにより、1つの入力データに対して推論装置1が行う推論処理が終了する。データ取込部12に次の入力データが与えられた場合、再び、ステップSa3~Sa9の処理が行われることになる。
【0081】
(第1の実施形態の条件選定装置の構成)
上記した推論装置1において、精度の高い認識結果が得られるようにするためには、変換統合条件記憶部10に予め記憶させておく複数の変換パラメータと、1つの統合演算式との組み合わせが、入力データに生じている画像劣化に対して最適な組み合わせになるように選定されている必要がある。
図4に示す条件選定装置2は、この最適な組み合わせを選定する装置である。
【0082】
上記した推論装置1のデータ取込部12に与える入力データは、例えば、ビデオ監視や自動運転などのアプリケーションであって特定のアプリケーションから得られる時系列に並んだ複数の画像データであることを想定している。当該特定のアプリケーションは、例えば、特定のカメラによって一定の時間間隔で撮影された複数の画像データを取得する。取得された複数の画像データは、同一のカメラによって撮影され、かつ同一のアプリケーションによって取得された画像データであることから、取得された複数の画像データの各々には、各々において共通する画像劣化が生じることになる。ここでは、複数の画像データの各々に生じている画像劣化は、未知の画像劣化であるものの、各々において共通する画像劣化であり、人が目視することにより、画像データの画素ごとのクラスを判別することができる程度の画像劣化であるとする。
【0083】
図4は、第1の実施形態による条件選定装置2の構成を示すブロック図である。
図4に示す条件選定装置2において、
図1に示す推論装置1と同一の構成については、同一の符号を付し、以下、異なる構成について説明する。条件選定装置2は、変換統合条件記憶部10、変換パラメータ指定部11a、変換部13、信頼度マップ生成部14、逆変換部15、統合部16a、分析部17、訓練データ記憶部21、データ読出部22、統合演算式選定部23、及び処理結果記憶部24を備える。
【0084】
訓練データ記憶部21は、複数の訓練データを予め記憶する。上記したように特定のアプリケーションから得られる時系列に並んだ複数の画像データの各々は、未知の画像劣化を含んでいるものの、当該画像劣化は、人が目視することにより、画像データの画素ごとのクラスを判別することができる程度の画像劣化である。そこで、特定のアプリケーションから得られた複数の画像データ、すなわち複数の入力データを全て推論装置1に与えるデータとせずに、一部の入力データを、条件選定装置2に適用するための訓練用のデータとして選択する。選択した複数の訓練用の入力データの各々に対応する画素ごとのクラスを示す正解データを生成する。生成した正解データの各々を、各々に対応する訓練用の入力データに関連付けて、複数の訓練データとする。すなわち、1つの訓練データは、1つの訓練用の入力データと、当該訓練用の入力データに対応する1つの正解データとを含むことになる。このようにして生成した複数の訓練データを、訓練データ記憶部21に予め記憶させておく。ここで、1つの訓練用の入力データであるベクトルxに対応する正解データを、次式(21)に示す記号で表し、以下、本文では、式(21)の記号をベクトルyと記載する。
【0085】
【0086】
データ読出部22は、開始指示信号、または、継続指示信号を受けるごとに、訓練データ記憶部21から訓練データを1つ読み出す。データ読出部22は、訓練データ記憶部21から訓練データを読み出すことができない場合、終了指示信号を統合演算式選定部23に出力する。データ読出部22は、訓練データ記憶部21から訓練データを読み出すことができた場合、変換パラメータ指定部11aに開始指示信号を出力する。データ読出部22は、読み出した1つの訓練データに含まれている訓練用の入力データを変換部13に出力し、当該訓練データに含まれている正解データを統合演算式選定部23に出力する。
【0087】
変換パラメータ指定部11aは、外部から与えられる画像変換を示すN個の変換パラメータξ1~ξNを取り込む。変換パラメータ指定部11aは、開始指示信号を受けると、取り込んだN個の変換パラメータξ1~ξNの中から1つの変換パラメータξnを選択する。変換パラメータ指定部11aは、選択した変換パラメータξnを変換部13と、逆変換部15とに出力して、変換部13と、逆変換部15とが用いる変換パラメータξnを指定する。
【0088】
統合部16aは、外部から与えられるM個の統合演算式を取り込み、取り込んだM個の統合演算式の各々に対応するM個の「統合演算式1」,…,「統合演算式M」のインデックスを生成する。ここで、Mは、2以上の整数である。統合部16aは、取り込んだM個の統合演算式の各々に基づいて、式(11)の逆変換データの集合に含まれているN個の逆変換データを統合して統合データを生成する統合処理を行う。統合部16aは、統合処理に用いた統合演算式に対応するインデックスを、用いた順に1つずつ統合演算式選定部23に出力する。統合部16aは、生成した順に1つずつ統合データを分析部17に出力する。言い換えると、統合部16aは、ある1つの統合演算式に基づいて統合処理を行って統合データを生成すると、当該ある1つの統合演算式に対応するインデックスを統合演算式選定部23に出力すると共に、当該ある1つの統合演算式に基づいて生成した統合データを分析部17に出力する。
【0089】
統合演算式選定部23は、ある1つの訓練データに対して、M個の認識結果データが得られた場合、継続指示信号をデータ読出部22に出力する。統合演算式選定部23は、終了指示信号を受けると、終了指示信号を受けるまでに得られた全ての認識結果データと、認識結果データの各々に対応する正解データとに基づいて、訓練データに含まれている入力データに生じている画像劣化に対する最適な1つの統合演算式を選定する。
【0090】
処理結果記憶部24は、データ読出部22が統合演算式選定部23に出力する正解データごとに、変換パラメータ指定部11aが統合演算式選定部23に出力するN個の変換パラメータと、分析部17が統合演算式選定部23に出力するM個の認識結果データとを関連付けて記憶する。条件選定装置2が備える変換統合条件記憶部10は、初期状態では、データを記憶しておらず、統合演算式選定部23による選定の処理が終了した際に、複数の変換パラメータと、1つの統合演算式とを記憶する。複数の変換パラメータと、1つの統合演算式とを記憶した変換統合条件記憶部10が、
図1の推論装置1の変換統合条件記憶部10として用いられることになる。
【0091】
(第1の実施形態の条件選定装置による処理)
図5は、第1の実施形態の条件選定装置2による処理の流れを示すフローチャートである。
図5に示すフローチャートが開始される前提として、条件選定装置2の訓練データ記憶部21には、複数の訓練データが予め書き込まれる。変換統合条件記憶部10と、処理結果記憶部24とは、初期化され、データを記憶していない状態にされる。
【0092】
条件選定装置2の変換パラメータ指定部11aは、外部から与えられるN個の変換パラメータξ
1~ξ
Nを取り込み、取り込んだN個の変換パラメータξ
1~ξ
Nを内部の記憶領域に書き込んで記憶させる(ステップSb1)。統合部16aは、外部から与えられるM個の統合演算式を取り込み、取り込んだM個の統合演算式の各々に対応するM個の「統合演算式1」,…,「統合演算式M」のインデックスを生成する。統合部16aは、取り込んだM個の統合演算式と、M個の統合演算式の各々に対応するM個の「統合演算式1」,…,「統合演算式M」のインデックスとを関連付けて内部の記憶領域に書き込んで記憶させる。統合部16aは、生成したM個の「統合演算式1」,…,「統合演算式M」のインデックスを統合演算式選定部23に出力する。統合演算式選定部23は、M個の「統合演算式1」,…,「統合演算式M」のインデックスを取り込む。統合演算式選定部23は、処理結果記憶部24に、
図6に示すデータ形式のテーブルであって、「正解データ」,「変換パラメータ」の項目と、取り込んだM個の「統合演算式1」,…,「統合演算式M」のインデックスの各々に対応するM個の「統合演算式1」,…,「統合演算式M」の項目とを有するテーブルを生成する(ステップSb2)。
【0093】
データ読出部22が、外部から開始指示信号を受けると(ステップSb3)、ループLb1s~Lb1eの最初の処理が開始される。データ読出部22は、訓練データ記憶部21からいずれか1つの訓練データを読み出す。データ読出部22は、訓練データを読み出すと、開始指示信号を変換パラメータ指定部11aに出力する。データ読出部22は、読み出した訓練データに含まれている入力データを変換部13に出力する。変換部13は、データ読出部22が出力する入力データを取り込む。データ読出部22は、読み出した訓練データに含まれている正解データを統合演算式選定部23に出力する(ステップSb4)。
【0094】
統合演算式選定部23は、データ読出部22が出力する正解データを取り込む。ここで、統合演算式選定部23が取り込んだ正解データであるベクトルyを、取り込んだ順番を示す番号を添え字に示してベクトルy1、ベクトルy2、…として記載する。統合演算式選定部23は、最初の正解データであるベクトルy1を取り込むと、処理結果記憶部24のテーブルにレコードを1つ生成し、生成したレコードの「正解データ」の項目に、取り込んだベクトルy1を書き込む。
【0095】
変換パラメータ指定部11aは、データ読出部22から開始指示信号を受けると、内部の記憶領域からN個の変換パラメータξ1~ξNを読み出し、読み出したN個の変換パラメータξ1~ξNを統合演算式選定部23に出力する。統合演算式選定部23は、変換パラメータ指定部11aが出力するN個の変換パラメータξ1~ξNを取り込む。統合演算式選定部23は、取り込んだN個の変換パラメータξ1~ξNを、処理結果記憶部24のテーブルにおいて、直近で生成したレコード、すなわち、「正解ラベル」の項目にベクトルy1が書き込まれているレコードの「変換パラメータ」の項目に書き込む。変換パラメータ指定部11aは、内部の記憶領域に記憶されているN個の変換パラメータξ1~ξNの個数である「N」の値を、統合部16aに出力する。統合部16aは、変換パラメータ指定部11aが出力する「N」の値を取り込む(ステップSb5)。
【0096】
変換パラメータ指定部11aは、データ読出部22から開始指示信号を受けると、内部の記憶領域に記憶されているN個の変換パラメータξ
1~ξ
Nの中から、いずれか1つである変換パラメータξ
nを読み出す。変換パラメータ指定部11aは、読み出した変換パラメータξ
nを変換部13と、逆変換部15とに出力する。これにより、ループLb2s~Lb2eの最初の処理が開始される。ループLb2s~Lb2eの処理は、
図3に示すループLa1s~La1eの処理と同一の処理が行われる。なお、ステップSb5の処理と、ループLb2s~Lb2eの処理とは、共に、ステップSb4の処理において、データ読出部22が入力データと、正解データとを出力することにより開始される処理であるため、並列に行われる。
【0097】
統合部16aは、ステップSb5の処理で取り込んだ「N」の値を参照する。統合部16aは、ループLb2s~Lb2eの処理の間に、逆変換部15が出力する逆変換データであるベクトルp1~pNを取り込む。統合部16aは、取り込んだベクトルpnの個数がN個になると、内部の記憶領域に記憶されている「統合演算式1」,…,「統合演算式M」のインデックスが付与されたM個の統合演算式の中からいずれか1つの統合演算式と、当該統合演算式に関連付けられている「統合演算式m」のインデックスを選択する。ここで、mは、1~Mの中の任意の整数である。統合部16aは、選択した「統合演算式m」のインデックスを統合演算式選定部23に出力する。統合部16aは、選択した統合演算式に基づいて、取り込んだベクトルp1~pNを統合して統合データを生成する。統合部16aは、生成した統合データを分析部17に出力する(ステップSb9)。
【0098】
分析部17は、
図3に示すステップSa8の処理と同一の認識処理を行って、認識結果データを生成する。分析部17は、生成した認識結果データを統合演算式選定部23に出力する(ステップSb10)。統合演算式選定部23は、ステップSb9の処理において、統合部16aが出力する「統合演算式m」のインデックスと、ステップSb10の処理において分析部17が出力する認識結果データとを取り込む。統合演算式選定部23は、処理結果記憶部24のテーブルにおいて、直近で生成したレコード、すなわち「正解ラベル」の項目にベクトルy
1が書き込まれているレコードを検出する。統合演算式選定部23は、検出したレコードにおいて、取り込んだ「統合演算式m」のインデックスに対応する「統合演算式m」の項目に、取り込んだ認識結果データを書き込む。ここで、m=2とした場合、
図6に示すように、正解データであるベクトルy
1と、m=2である「統合演算式2」のインデックスとに対応する認識結果データであるベクトル^y
1,2が「統合演算式2」の項目に書き込まれる(ステップSb11)。
【0099】
統合部16aは、未選択のいずれか1つの統合演算式を選択する。これにより、再び、ステップSb9~Sb11の処理が行われる(ループLb3s~Lb3e)。M個の統合演算式の各々に対応するステップSb9~Sb11の処理が終了すると、ループLb3s~Lb3eの処理が終了する。統合演算式選定部23は、処理結果記憶部24のテーブルのベクトルy1に対応するレコードの「統合演算式1」,…,「統合演算式M」の全ての項目に認識結果データを書き込むと、継続指示信号をデータ読出部22に出力する。
【0100】
データ読出部22は、統合演算式選定部23から継続指示信号を受けると、訓練データ記憶部21から、それまでに処理対象として読み出していない、いずれか1つの訓練データを読み出す。データ読出部22は、訓練データを読み出すと、開始指示信号を変換パラメータ指定部11aに出力する。これにより、データ読出部22が読み出した訓練データに対して、ステップSb4,Sb5、ループLb2s~Lb2e、ループLb3s~Lb3eの処理が行われる(ループLb1s~Lb1e)。データ読出部22は、訓練データ記憶部21に記憶されている全ての訓練データを処理対象として読み出した場合、それ以上、訓練データを読み出すことができないため、開始指示信号を変換パラメータ指定部11aに出力せず、終了指示信号を統合演算式選定部23に出力する。
【0101】
統合演算式選定部23は、データ読出部22から終了指示信号を受けると、処理結果記憶部24を参照する。統合演算式選定部23は、処理結果記憶部24に記憶されている全ての認識結果データと、認識結果データの各々に対応する正解データとに基づいて、例えば、認識結果データと、当該認識結果データに対応する正解データとが一致する度合いを算出する。統合演算式選定部23は、算出した一致度合いが最も大きい、正解データと、認識結果データとの組み合わせを検出する。統合演算式選定部23は、検出した認識結果データに基づいて、変換統合条件記憶部10に書き込む変換パラメータと、統合演算式とを検出する。統合演算式選定部23は、検出した変換パラメータと、統合演算式とを変換統合条件記憶部10に書き込んで記憶させる(ステップSb12)。
【0102】
例えば、統合演算式選定部23は、正解データであるベクトルy
2と、認識結果データであるベクトル^y
2,2とが一致する度合いが最も大きい正解データと、認識結果データの組み合わせとして検出したとする。この場合、統合演算式選定部23は、ベクトルy
2を含むレコードの「変換パラメータ」の項目に書き込まれている変換パラメータξ
1~ξ
Nと、ベクトル^y
2,2に対応する「統合演算式2」のインデックスに対応する統合演算式とを変換統合条件記憶部10に書き込むことになる。統合演算式選定部23による変換統合条件記憶部10への書き込み処理が終了すると、
図5の処理は終了する。
【0103】
変換統合条件記憶部10に書き込まれた変換パラメータξ1~ξNと、「統合演算式1」のインデックスに対応する統合演算式との組み合わせが、推論装置1に対して与える入力データに生じている画像劣化に対して最適な組み合わせになる。そのため、変換統合条件記憶部10を、推論装置1の変換統合条件記憶部10として用いることにより、推論装置1において精度の高い認識結果が得られることになる。
【0104】
なお、条件選定装置2によって選定する複数の変換パラメータと、1つの統合演算式との組み合わせは、共通する画像劣化を含んでいる複数の入力データに対して最適になっている。そのため、条件選定装置2の訓練データ記憶部21に記憶されている訓練データに含まれている入力データの画像劣化とは異なる画像劣化を含んでいる入力データを推論装置1に与える場合、条件選定装置2を用いて、改めて複数の変換パラメータと、1つの統合演算式との組み合わせを選定する必要がある。
【0105】
(第1の実施形態の条件選定装置の他の構成例)
上記した第1の実施形態の条件選定装置2において、変換パラメータ指定部11aは、外部から取り込んだN個の変換パラメータξ1~ξNの全てを用いてループLb2s~Lb2eの処理を行うようにしている。これに対して、訓練データごとに、変換パラメータ指定部11aが、変換部13と、逆変換部15とに対して指定する変換パラメータの組み合わせを変えるようにしてもよい。例えば、変換パラメータ指定部11aは、外部から与えられるN個より多い数の変換パラメータを取り込む。変換パラメータ指定部11aは、データ読出部22から開始指示信号を受けるごとに、画像変換を行わない変換パラメータξ1を含むN個の変換パラメータを取り込んだ変換パラメータからランダムに選択する。変換パラメータ指定部11aが、ランダムに選択したN個の変換パラメータの各々に基づいて、ループLb2s~Lb2eの処理が行われるというようにしてもよい。
【0106】
この場合において、変換パラメータ指定部11aに対して外部から与える変換パラメータの個数を、L個とする場合、例えば、Nの値を、Lの10%程度の値にするようにしてもよい。変換パラメータ指定部11aは、ランダムに選択する個数を、N個に固定するのではなく、選択ごとに、選択する変換パラメータの個数を、任意に変えるようにしてもよい。ところで、変換パラメータ指定部11aは、上記したように、ステップSb5の処理において、統合部16aに対して、内部の記憶領域に記憶されているN個の変換パラメータξ1~ξNの個数である「N」の値を出力するようにしている。これに対して、変換パラメータ指定部11aが、開始指示信号を受けるごとに、指定する変換パラメータの組み合わせを変更する場合、変換パラメータ指定部11aは、選択した変換パラメータの個数を、統合部16aに出力することになる。
【0107】
上記のように、訓練データごとに、変換パラメータの組み合わせが変わる場合、
図6の処理結果記憶部24のテーブルの「変換パラメータ」の項目に記憶される変換パラメータは、レコードごとに変わることになる。このようにすることで、共通の画像劣化を含んでいる複数の入力データに対する最適な変換パラメータと、統合演算式の組み合わせであって、かつ変換パラメータの個数が、外部から与えられる変換パラメータの個数よりも少なくなっている組み合わせを選定することが可能になる。そのため、推論装置1の処理の負荷を軽減することが可能になる。なお、条件選定装置2の統合部16aに対して外部から与える統合演算式の個数であるMは、2以上の整数であるとしているが、訓練データごとに、変換パラメータの組み合わせが変わる場合、M=1、すなわち、統合部16aに統合演算式の数を、1つにしてもよい。M=1とする場合、統合演算式の選定を行うことにはならないが、条件選定装置2は、共通の画像劣化を含んでいる複数の入力データに対する最適な変換パラメータを選定することになる。
【0108】
上記の第1の実施形態の推論装置1において、変換パラメータ指定部11は、変換パラメータを指定する。変換部13は、入力データに対して、指定された変換パラメータの各々に基づく変換を行って変換データを生成する。信頼度マップ生成部14は、変換データごとに、変換データの各々の特徴を示すデータである信頼度マップを生成する。逆変換部15は、信頼度マップの各々に対して、各々に対応する変換データが生成された際に行われた変換に対する逆変換を、指定された変換パラメータの各々に基づいて行って逆変換データを生成する。統合部16は、逆変換データの各々を統合する統合処理を行い、入力データの前記信頼度マップと次元数が一致する統合データを生成する。分析部17は、統合データに対して分析処理の一例としての認識処理を行う。このように、入力データから変換により生成した変換データの信頼度マップを生成し、生成した信頼度マップを逆変換して統合し、統合した統合データに認識処理を行うことにより、入力データにおいて生じている未知の劣化に対して頑健性のある推論処理を行うことが可能になる。
【0109】
すなわち、第1の実施形態による推論装置1は、認識処理を行う前に、入力データに対して、複数の画像変換を行うことにより、画像劣化を軽減させた上で、特徴抽出を行い、抽出した特徴を含む信頼度マップを逆変換して統合する構成を備えている。言い換えると、推論装置1に採用されている手法は、変換部13による画像変換と、逆変換部15による画像変換の逆変換と、統合部16によるアンサンブルと、信頼度マップ生成部14及び分析部17によるダウンサンプリングと、アップサンプリングとを含むセマンティックセグメンテーションのアルゴリズムという既存の手法を組み合わせた手法である。当該手法は、既存の手法を組み合わせた手法であるものの、未知の画像劣化による影響を軽減することができるという効果的な手法になっている。当該手法は、既存のセマンティックセグメンテーションのアルゴリズムを、再学習させることなく、そのまま利用することができる手法でもある。そのため、推論装置1は、学習済みのセマンティックセグメンテーションのニューラルネットワークに対して、微調整などの再学習を行うことなく、入力データにおいて生じている未知の劣化に対して頑健性のある推論処理を行うことを可能にしている。
【0110】
(第2の実施形態)
図7は、第2の実施形態による推論装置1aの構成を示すブロック図である。第2の実施形態の推論装置1aにおいて、第1の実施形態の推論装置1と同一の構成については、同一の符号を付し、以下、異なる構成について説明する。推論装置1aは、変換統合条件記憶部10、変換パラメータ指定部11、データ取込部12a、変換部13a、信頼度マップ生成部14、逆変換部15、統合部16b、分析部17、出力部18、及び品質評価部19を備える。
【0111】
データ取込部12aは、外部から与えられる入力データを取り込むと、取り込んだ入力データを変換部13aと、品質評価部19とに出力する。品質評価部19は、データ取込部12aが出力する入力データの品質を評価する。入力データが、例えば、画像データである場合、品質評価部19は、例えば、品質として、画像データの画素密度を示す画像解像度によって示される画質を評価する。品質評価部19は、評価した結果である品質を示すデータを統合部16bに出力する。
【0112】
変換部13aは、以下に示す構成以外の構成については、第1の実施形態の変換部13と同一の構成を備える。すなわち、第1の実施形態の変換部13は、画像変換して生成した変換データを信頼度マップ生成部14に出力する。これに対して、第2の実施形態の変換部13aは、画像変換して生成した変換データを信頼度マップ生成部14と、統合部16bとに出力する。
【0113】
統合部16bは、以下に示す構成以外の構成については、第1の実施形態の統合部16と同一の構成を備える。すなわち、第1の実施形態では、統合部16が、式(15)や式(16)などの重みwnを含む統合演算式を用いて統合処理を行う場合、重みwnの値が予め定められていた。これに対して、第2の実施形態では、統合部16bは、式(15)や式(16)などの重みwnを含む統合演算式を用いて統合処理を行う場合、品質評価部19が出力する品質を示すデータに基づいて、逆変換データであるベクトルpnごとの重みwnの値を定める。
【0114】
(第2の実施形態の推論装置による処理)
図8は、第2の実施形態の推論装置1aによる処理の流れを示すフローチャートである。
図8において、ステップSc1~ステップSc3の処理は、
図3のステップSa1~Sa3と同一の処理であって、データ取込部12をデータ取込部12aに読み替え、統合部16を統合部16bに読み替えた処理が行われる。ステップSc3の処理において、データ取込部12aは、外部から与えられる認識対象の画像データである入力データを取り込むと、取り込んだ入力データを変換部13aと、品質評価部19とに出力する。
【0115】
ループLc1s~Lc1eの処理は、
図3のループLa1s~La1eと同一の処理であって、変換部13を変換部13aに読み替えた処理が行われる。ループLc1s~Lc1eの処理に含まれるステップSc4の処理において、変換部13aは、画像変換して生成した変換データを信頼度マップ生成部14と、統合部16bとに出力する。統合部16bは、ループLc1s~Lc1eの処理の間に、変換部13aが出力する変換データを順次取り込む。
【0116】
ループLc1s~Lc1eの処理と並列に、品質評価部19は、データ取込部12aが出力する入力データを取り込み、取り込んだ入力データの品質を評価する。品質評価部19は、評価した品質を示すデータを統合部16bに出力する。統合部16bは、品質評価部19が出力する品質を示すデータを取り込む(ステップSc7)。
【0117】
統合部16bは、ループLc1s~Lc1eの1回分の処理が行われると、変換部13aが出力する1つの変換データであるベクトル~xnと、逆変換部15が出力する1つの逆変換データであるベクトルpnとを取り込む。ループLc1s~Lc1eの1回分の処理が行われる際に、統合部16bが取り込む1つのベクトル~xnと、1つのベクトルpnとは、当該ベクトルpnが、当該ベクトル~xnから生成された信頼度マップを逆変換したデータであるという対応関係がある。そのため、統合部16bは、取り込んだ変換データであるベクトル~xnと、取り込んだ逆変換データであるベクトルpnとの組み合わせを関連付けて内部の記憶領域に書き込んで記憶させる。
【0118】
統合部16bは、変換統合条件記憶部10に記憶されている変換パラメータξ1~ξNの個数である「N」を参照する。統合部16bは、取り込んだベクトルpnの個数がN個になると、ステップSc2において変換統合条件記憶部10から読み出した統合演算式に重みwnが含まれているか否かを判定する(ステップSc8)。統合部16bは、統合演算式に重みwnが含まれていないと判定した場合(ステップSc8、No)、処理を、ステップSc10に進める。
【0119】
一方、統合部16bは、統合演算式に重みwnが含まれていると判定した場合(ステップSc8、Yes)、取り込んだ品質を示すデータに基づいて、逆変換データであるベクトルpnごとの重みwnの値を定める。例えば、統合部16bは、変換統合条件記憶部10から読み出した統合演算式が、式(15)の重み付き最大値の統合演算式であり、品質を示すデータが、画像解像度を示すデータであるとする。統合部16bは、入力データの画像解像度が、予め定められる閾値以上であるか否かに基づいて、入力データの画像解像度が高いか、または、低いかを判定する。
【0120】
統合部16bは、入力データの画像解像度が、予め定められる閾値以上である場合、入力データの画質が高いと判定する。この場合、統合部16bは、内部の記憶領域に記憶されている変換データであるベクトル~xnの各々の画像解像度を検出する。統合部16bは、検出した画像解像度に基づいて、画像解像度が高いベクトル~xnの方が高い順位になるように、ベクトル~xnに順位を付与する。統合部16bは、高い順位のベクトル~xnに関連付けられているベクトルpnの重みwnの値が大きくなるように、ベクトルpnごとの重みwnの値を定める。
【0121】
これに対して、統合部16bは、入力データの画像解像度が、予め定められる閾値未満である場合、入力データの画質が低いと判定する。この場合、統合部16bは、内部の記憶領域に記憶されている変換データであるベクトル~x
nの各々の画像解像度を検出する。統合部16bは、検出した画像解像度に基づいて、画像解像度が低いベクトル~x
nの方が高い順位になるように、ベクトル~x
nに順位を付与する。統合部16bは、高い順位のベクトル~x
nに関連付けられているベクトルp
nの重みw
nの値が大きくなるように、ベクトルp
nごとの重みw
nの値を定める。上記のようにして、統合部16bは、品質を示すデータに基づいて、統合演算式に含まれている重みw
nの値を定める(ステップSc9)。ステップSc10~ステップSc12の処理は、
図3のステップSa7~ステップSa9の処理と同一の処理であって、統合部16を統合部16bに読み替えた処理が行われる。
【0122】
上記の第2の実施形態の構成により、統合演算式に重みwnが含まれている場合、入力データの品質に基づいて、統合演算式の重みwnの値を定めることができるため、より精度の高い認識処理の結果が得られることになる。なお、上記した、入力データの画像解像度の画質が高い場合に、画像解像度が高いベクトル~xnの方に関連付けられているベクトルpnの重みwnの値を大きくし、入力データの画像解像度の画質が低い場合に、画像解像度が低いベクトル~xnの方に関連付けられているベクトルpnの重みwnの値を大きくする理由は、以下の通りである。すなわち、入力データの画質が高い場合、画像解像度の高いベクトル~xnに関連付けられているベクトルpnに基づいて得られる認識結果がより正しくなることが期待される。なぜならば、画像解像度が低いベクトルpnは、ノイズやボケなどの画像の劣化に頑健であるものの、例えば、小さな物体については正しいセグメンテーション結果が得られない場合があるからである。そのため、入力データの画質が高い場合、画像解像度が高いベクトル~xnの方に関連付けられているベクトルpnの重みwnの値を大きくしている。これに対して、入力データの画質が低い場合、画像解像度の低いベクトル~xnに関連付けられているベクトルpnに基づいて得られる認識結果がより正しくなることが期待される。なぜならば、画像解像度の低いベクトル~xnに関連付けられているベクトルpnの方が、強いノイズやボケなどの画像の劣化に頑健であるからである。そのため、入力データの画質が低い場合、画像解像度が低いベクトル~xnの方に関連付けられているベクトルpnの重みwnの値を大きくしている。
【0123】
(第2の実施形態の推論装置の他の構成例(その1))
上記の第2の実施形態では、統合部16bは、予め定められる1つの閾値に基づいて、入力データの画像解像度が、高いか、低いかを判定するようにしている。これに対して、第1の閾値の方が、第2の閾値よりも大きな値となるように、第1の閾値と、第2の閾値という2つの閾値を予め定め、以下のような処理を行うようにしてもよい。統合部16bは、入力データの画像解像度が、予め定められる第1の閾値以上である場合、入力データの画質が高いと判定し、上記した入力データの画質が高いと判定した場合のベクトルpnごとの重みwnの値を定める処理を行う。統合部16bは、入力データの画像解像度が、予め定められる第2の閾値未満である場合、入力データの画質が低いと判定し、上記した入力データの画質が低いと判定した場合のベクトルpnごとの重みwnの値を定める処理を行う。統合部16は、入力データの画像解像度が、第1の閾値未満であって、かつ第2の閾値以上である場合、第1の実施形態と同様に、予め定めた重みwnを適用する。
【0124】
(第2の実施形態の推論装置の他の構成例(その2))
上記の第2の実施形態では、統合部16bは、品質評価部19が出力する入力データの品質を示すデータと、変換データであるベクトル~xnとに基づいて、重みwnの値を定めるようにしている。これに対して、統合部16は、品質評価部19が出力する入力データの品質を示すデータと、変換パラメータξnとに基づいて、重みwnの値を定めるようにしてもよい。変換パラメータξnの内容が分かれば、変換パラメータξnによる画像変換によって得られる変換データの相対的な画像解像度を算出することができるからである。この場合、推論装置1aを以下のような構成にする必要がある。
【0125】
推論装置1aにおいて、変換部13aを、第1の実施形態の変換部13に置き換える。変換パラメータ指定部11は、ループLc1s~Lc1eの処理において、変換部13と、逆変換部15とに変換パラメータを出力する際に、統合部16bにも変換パラメータξnを出力する。統合部16bは、ループLc1s~Lc1eの処理ごとに、変換パラメータ指定部11が出力する1つの変換パラメータξnと、逆変換部15が出力する1つの逆変換データであるベクトルpnとを取り込む。統合部16bは、取り込んだ1つの変換パラメータξnと、1つの逆変換データであるベクトルpnとを関連付けて内部の記憶領域に書き込んで記憶させる。
【0126】
統合部16bは、ステップSc9の処理において、内部の記憶領域に記憶されている変換パラメータξnの各々に基づいて、各々の変換パラメータξnを用いて変換部13が画像変換した際に得られる変換データの相対的な画像解像度を算出する。統合部16bは、入力データの画質が高いと判定した場合、算出した相対的な画像解像度に基づいて、相対的な画像解像度が高い変換パラメータξnの方が高い順位になるように、変換パラメータξnに順位を付与する。統合部16bは、高い順位の変換パラメータξnに関連付けられているベクトルpnの重みwnの値が大きくなるように、ベクトルpnごとの重みwnの値を定める。これに対して、統合部16bは、入力データの画質が低いと判定した場合、算出した相対的な画像解像度に基づいて、相対的な画像解像度が低い変換パラメータξnの方が高い順位になるように、変換パラメータξnに順位を付与する。統合部16bは、高い順位の変換パラメータξnに関連付けられているベクトルpnの重みwnの値が大きくなるように、ベクトルpnごとの重みwnの値を定める。
【0127】
(第2の実施形態におけるその他の補足的な構成)
上記の第2の実施形態の推論装置の他の構成例(その2)の構成に対して、第2の実施形態の推論装置の他の構成例(その1)の構成を適用するようにしてもよい。上記の第2の実施形態において、品質評価部19は、画像解像度以外の品質を評価するようにしてもよい。上記の第2の実施形態において、統合部16bは、重みwnを定める際に、変換データであるベクトル~xnから画像解像度以外の指標を算出し、算出した指標と、品質評価部19が出力する入力データの品質を示すデータとに基づいて、重みwnを定めるようにしてもよい。上記の第2の実施形態の他の構成例(その2)において、統合部16bは、変換パラメータξnから相対的な画像解像度以外の指標を算出し、算出した指標と、品質評価部19が出力する入力データの品質を示すデータとに基づいて、重みwnを定めるようにしてもよい。
【0128】
(第3の実施形態)
図9は、第3の実施形態による変換パラメータ選択装置3の構成を示すブロック図である。変換パラメータ選択装置3は、例えば、第1の実施形態の条件選定装置2と共に用いられる装置である。第1の実施形態の条件選定装置2の統合演算式選定部23が、変換統合条件記憶部10に書き込んだ複数の変換パラメータの中には、分析部17による認識処理における精度の向上に対して寄与の低い変換パラメータが存在する場合も想定される。このような寄与の低い変換パラメータを除外することで、推論装置1が行う処理の負荷を軽減することが可能になる。変換パラメータ選択装置3は、このような寄与の低い変換パラメータを検出し、検出した変換パラメータを変換統合条件記憶部10に記憶されている複数の変換パラメータから削除して、変換統合条件記憶部10に記憶させる複数の変換パラメータを選択する装置である。
【0129】
第3の実施形態の変換パラメータ選択装置3において、第1の実施形態の推論装置1、及び条件選定装置2と同一の構成については、同一の符号を付し、以下、異なる構成について説明する。変換パラメータ選択装置3は、変換統合条件記憶部10、変換パラメータ指定部11b、変換部13、信頼度マップ生成部14、逆変換部15、分析部17、訓練データ記憶部21a、データ読出部22、処理結果記憶部24a、及び変換パラメータ選択部25を備える。なお、第1の実施形態の条件選定装置2が備えるデータ読出部22は、訓練データ記憶部21と、変換パラメータ指定部11aと、変換部13と、統合演算式選定部23に接続している。これに対して、第3の実施形態の変換パラメータ選択装置3が備えるデータ読出部22は、変換部13に接続し、訓練データ記憶部21に替えて訓練データ記憶部21aに接続し、変換パラメータ指定部11aに替えて変換パラメータ指定部11bに接続し、統合演算式選定部23に替えて変換パラメータ選択部25に接続する。
【0130】
変換パラメータ選択装置3が備える変換統合条件記憶部10は、第1の実施形態の条件選定装置2において、統合演算式選定部23によって複数の変換パラメータと、1つの統合演算式とが書き込まれた変換統合条件記憶部10である。ここでは、変換統合条件記憶部10に記憶されている複数の変換パラメータは、一例として、N個の変換パラメータξ1~ξNであるとする。
【0131】
変換パラメータ指定部11bは、変換統合条件記憶部10に記憶されているN個の変換パラメータξ1~ξNを読み出す。変換パラメータ指定部11bは、読み出したN個の変換パラメータξ1~ξNの各々に対してN個の「変換パラメータ1」,…,「変換パラメータN」のインデックスを生成する。変換パラメータ指定部11bは、開始指示信号を受けると、N個の変換パラメータξ1~ξNの中から1つの変換パラメータξnを選択する。変換パラメータ指定部11bは、選択した変換パラメータξnを変換部13と、逆変換部15とに出力することにより、変換部13と、逆変換部15とが用いる変換パラメータξnを指定する。変換パラメータ指定部11bは、更に、選択した変換パラメータξnに対応する「変換パラメータn」のインデックスを変換パラメータ選択部25に出力する。
【0132】
訓練データ記憶部21aは、複数の訓練データを予め記憶する。第1の実施形態では、生成した複数の訓練データを全て条件選定装置2の訓練データ記憶部21に記憶させるようにしていた。これに対して、第3の実施形態では、生成した複数の訓練データの一部をバリデーションデータとして選択し、バリデーションデータとして選択した訓練データを、条件選定装置2の訓練データ記憶部21に記憶させずに、変換パラメータ選択装置3の訓練データ記憶部21aに記憶させる。処理結果記憶部24aは、データ読出部22が変換パラメータ選択部25に出力する正解データごとに、分析部17が変換パラメータ選択部25に出力するN個の認識結果データを記憶する。
【0133】
変換パラメータ選択部25は、ある1つの訓練データに対して、変換統合条件記憶部10に記憶されている変換パラメータξ
1~ξ
Nの個数であるNに一致するN個の認識結果データが得られた場合、継続指示信号をデータ読出部22に出力する。変換パラメータ選択部25は、終了指示信号を受けると、終了指示信号を受けるまでに得られた全ての認識結果データと、認識結果データの各々に対応する正解データとに基づいて、複数の変換パラメータから除外する変換パラメータを選択する。変換パラメータ選択部25は、選択した変換パラメータを変換統合条件記憶部10から削除する。変換パラメータ選択部25によって変換パラメータが削除された後の変換統合条件記憶部10が、
図1の推論装置1の変換統合条件記憶部10として用いられることになる。
【0134】
(第3の実施形態の変換パラメータ選択装置の処理)
図10は、第3の実施形態の変換パラメータ選択装置3による処理の流れを示すフローチャートである。
図10に示すフローチャートが開始される前提として、変換パラメータ選択装置3の訓練データ記憶部21には、バリデーションデータとして選択された複数の訓練データが予め書き込まれる。変換統合条件記憶部10には、条件選定装置2の統合演算式選定部23によって書き込まれたN個の変換パラメータξ
1~ξ
Nと、1つの統合演算式が書き込まれている。処理結果記憶部24aは、初期化され、データを記憶していない状態にされる。
【0135】
変換パラメータ選択装置3が起動すると、変換パラメータ指定部11bは、変換統合条件記憶部10に記憶されているN個の変換パラメータξ1~ξNを読み出す。変換パラメータ指定部11bは、読み出したN個の変換パラメータξ1~ξNの各々に対応するN個の「変換パラメータ1」,…,「変換パラメータN」のインデックスを生成する。変換パラメータ指定部11bは、読み出したN個の変換パラメータξ1~ξNと、N個の変換パラメータξ1~ξNの各々に対応するN個の「変換パラメータ1」,…,「変換パラメータN」のインデックスとを関連付けて内部の記憶領域に書き込んで記憶させる。変換パラメータ指定部11bは、生成したN個の「変換パラメータ1」,…,「変換パラメータN」のインデックスを変換パラメータ選択部25に出力する(ステップSd1)。
【0136】
変換パラメータ選択部25は、N個の「変換パラメータ1」,…,「変換パラメータN」のインデックスを取り込む。変換パラメータ選択部25は、処理結果記憶部24aに、
図11に示すデータ形式のテーブルであって、「正解データ」の項目と、取り込んだN個の「変換パラメータ1」,…,「変換パラメータN」のインデックスの各々に対応するN個の「変換パラメータ1」,…,「変換パラメータN」の項目とを有するテーブルを生成する(ステップSd2)。
【0137】
データ読出部22が、外部から開始指示信号を受けると(ステップSd3)、ループLd1s~Ld1eの最初の処理が開始される。データ読出部22は、訓練データ記憶部21aからいずれか1つの訓練データを読み出す。データ読出部22は、訓練データを読み出すと、開始指示信号を変換パラメータ指定部11bに出力する。データ読出部22は、読み出した訓練データに含まれている入力データを変換部13に出力する。変換部13は、データ読出部22が出力する入力データを取り込む。データ読出部22は、読み出した訓練データに含まれている正解データを変換パラメータ選択部25に出力する(ステップSd4)。
【0138】
変換パラメータ選択部25は、データ読出部22が出力する正解データを取り込む。ここで、変換パラメータ選択部25が取り込んだ正解データであるベクトルyを、取り込んだ順番を示す番号を添え字に示してベクトルy1、ベクトルy2、…として記載する。変換パラメータ選択部25は、最初の正解データであるベクトルy1を取り込むと、処理結果記憶部24aのテーブルにレコードを1つ生成し、生成したレコードの「正解データ」の項目に、取り込んだベクトルy1を書き込む(ステップSd5)。
【0139】
変換パラメータ指定部11bは、データ読出部22から開始指示信号を受けると、内部の記憶領域に記憶されているN個の変換パラメータξ
1~ξ
Nの中からいずれか1つの変換パラメータξ
nを選択して読み出す。変換パラメータ指定部11bは、更に、内部の記憶領域から、読み出した変換パラメータξ
nに関連付けられている「変換パラメータn」のインデックスを読み出す。変換パラメータ指定部11bは、読み出した変換パラメータξ
nを変換部13と、逆変換部15とに出力し、読み出した「変換パラメータn」のインデックスを変換パラメータ選択部25に出力する。これにより、ループLd2s~Ld2eの最初の処理が開始される。ループLd2s~Ld2eに含まれる処理において、ステップSd6~Sd8の処理は、
図3のステップSa4~Sa6の処理と同一の処理が行われる。
【0140】
ステップSd8の処理において、逆変換部15は、生成した逆変換データであるベクトルpnを分析部17に出力する。分析部17は、逆変換部15が出力する逆変換データであるベクトルpnを取り込み、取り込んだベクトルpnに対して、式(4)に示す関数g(・)を適用する認識処理を行って認識結果データを生成する。分析部17は、認識結果データであるベクトル^yを変換パラメータ選択部25に出力する(ステップSd9)。
【0141】
変換パラメータ選択部25は、変換パラメータ指定部11bが出力する「変換パラメータn」のインデックスと、分析部17が出力する認識結果データとを取り込む。変換パラメータ選択部25は、直近で生成したレコード、すなわち、処理結果記憶部24のテーブルの「正解データ」の項目がベクトルy
1であるレコードにおいて、取り込んだ「変換パラメータn」のインデックスに対応する「変換パラメータn」の項目に、取り込んだ認識結果データを書き込む。ここで、n=2とした場合、
図11に示すように、正解データであるベクトルy
1と、n=2である「変換パラメータ2」のインデックスとに対応する認識結果データであるベクトル^y
1,2が「変換パラメータ2」の項目に書き込まれる(ステップSd10)。
【0142】
変換パラメータ指定部11bは、内部の記憶領域に記憶されている変換パラメータξ1~ξNの中から未選択のいずれか1つの変換パラメータと、当該変換パラメータに対応するインデックスとを読み出す。これにより、再び、ステップSd6~Sd10の処理が行われる(ループLd2s~Ld2e)。なお、ステップSd5の処理と、ループLd2s~Ld2eの処理とは、共に、ステップSd4の処理において、データ読出部22が入力データと、正解データとを出力することにより開始される処理であるため、並列に行われる。
【0143】
N個の変換パラメータξ1~ξNの各々に対応するステップSd6~Sd10の処理が終了すると、ループLd2s~Ld2eの処理が終了する。変換パラメータ指定部11bは、処理結果記憶部24aのテーブルのベクトルy1に対応するレコードの「変換パラメータ1」,…,「変換パラメータN」の全ての項目に認識結果データを書き込むと、継続指示信号をデータ読出部22に出力する。
【0144】
データ読出部22は、変換パラメータ指定部11bから継続指示信号を受けると、訓練データ記憶部21aから、それまでに処理対象として読み出していない、いずれか1つの訓練データを読み出す。データ読出部22は、訓練データを読み出すと、開始指示信号を変換パラメータ指定部11bに出力する。これにより、データ読出部22が読み出した訓練データに対して、ステップSd4,Sd5、ループLd2s~Ld2eの処理が行われる(ループLd1s~Ld1e)。データ読出部22は、訓練データ記憶部21aに記憶されている全ての訓練データを処理対象として読み出した場合、それ以上、訓練データを読み出すことができないため、開始指示信号を変換パラメータ指定部11bに出力せず、終了指示信号を変換パラメータ選択部25に出力する。
【0145】
変換パラメータ選択部25は、データ読出部22から終了指示信号を受けると、処理結果記憶部24aを参照する。変換パラメータ選択部25は、処理結果記憶部24aに記憶されている全ての認識結果データと、認識結果データの各々に対応する正解データとに基づいて、例えば、認識結果データと、当該認識結果データに対応する正解データとが一致する度合いを算出する。変換パラメータ選択部25は、例えば、算出した一致度合いを示す数値を、変換パラメータξ1~ξNごとに合計し、合計した値を変換パラメータξ1~ξNごとの一致度合いを示す値とする。変換パラメータ選択部25は、一致度合いを示す値が、予め定められる閾値未満の変換パラメータを、分析部17による認識処理における精度の向上に対して寄与の低い変換パラメータとして選択する。変換パラメータ選択部25は、選択した変換パラメータを、変換統合条件記憶部10から削除して(ステップSd11)、処理を終了する。なお、変換パラメータ選択部25は、一致度合いを示す値が小さい方から順に、予め定められる個数の変換パラメータを、分析部17による認識処理における精度の向上に対して寄与の低い変換パラメータとして選択するようにしてもよい。
【0146】
これにより、分析部17による認識処理における精度の向上に対して寄与の低い変換パラメータを変換統合条件記憶部10から削除することができるので、変換統合条件記憶部10に記憶されている複数の変換パラメータに基づいて処理を行う推論装置1の処理の負荷を軽減することが可能になる。
【0147】
(その他の補足的な構成)
上記の第1及び第2の実施形態では、推論装置1,1a、及び条件選定装置2において、画像変換を行わない変換パラメータξ1を、変換部13,13aと、逆変換部15とに出力する変換パラメータに含めるようにしている。これに対して、画像変換を行わない変換パラメータξ1を変換部13,13aと、逆変換部15とに出力する変換パラメータに含めないようにしてもよい。言い換えると、推論装置1,1aの変換統合条件記憶部10に予め記憶させるN個の変換パラメータξ1~ξNの全てを、画像変換を行う変換パラメータとしてもよい。条件選定装置2に外部から与えるN個の変換パラメータξ1~ξNの全てを、画像変換を行う変換パラメータとしてもよい。N個の変換パラメータξ1~ξNの全てを、画像変換を行う変換パラメータとする場合、N=1としてもよい。すなわち、推論装置1,1aの変換統合条件記憶部10に予め記憶させる1つの変換パラメータを、画像変換を行う変換パラメータとしてもよい。条件選定装置2の変換パラメータ指定部11aに外部から与える変換パラメータを、1つの画像変換を行う変換パラメータとしてもよい。上記した第1の実施形態の他の構成例で示した変換パラメータ指定部11aが、ランダムに変換パラメータを選択する場合、変換パラメータ指定部11aは、画像変換を行う複数の変換パラメータを選択するようにしてもよいし、画像変換を行ういずれか1つの変換パラメータを選択するようにしてもよい。
【0148】
上記した訓練データ記憶部21,21aには、複数の訓練データを記憶させるとしているが、訓練データ記憶部21、21aに記憶させる訓練データの個数は、1つであってもよい。
【0149】
上記の第1及び第2の実施形態の推論装置1,1aでは、変換パラメータ指定部11は、
図3のループLa1s~La1e、及び
図8のループLc1s~Lc1eの処理において、変換統合条件記憶部10に記憶されている全ての変換パラメータを選択するようにしている。これに対して、変換パラメータ指定部11は、変換統合条件記憶部10に記憶されている変換パラメータの中からランダムに予め定められる個数の変換パラメータ、または、任意に定める個数の変換パラメータを選択して、
図3のループLa1s~La1e、及び
図8のループLc1s~Lc1eの処理を行うようにしてもよい。この場合、変換パラメータ指定部11は、ランダムに変換パラメータを選択した際に、選択した変換パラメータの個数を統合部16,16bに出力する必要がある。統合部16,16bは、変換統合条件記憶部10に記憶されている変換パラメータの個数ではなく、変換パラメータ指定部11が出力する変換パラメータの個数に基づいて、全ての逆変換データを取り込んだか否かを判定することになる。
【0150】
第2の実施形態の推論装置1aが備える品質評価部19を、第1の実施形態の条件選定装置2に適用するようにしてもよい。この場合、品質評価部19は、条件選定装置2のデータ読出部22と、統合部16aとに接続し、データ読出部22は、訓練データに含まれている入力データを変換部13に出力する際に、当該入力データを品質評価部19にも出力することになる。変換部13は、変換部13aに置き換えられ、変換部13aは、信頼度マップ生成部14と、統合部16aとに変換データを出力することになる。統合部16aは、第2の実施形態の統合部16bと同じく、重みwnを含む統合演算式により統合処理を行う場合、品質評価部19が出力する品質を示すデータに基づいて、重みwnの値を定めることになる。品質評価部19が適用された第1の実施形態の条件選定装置2に対して、上記した「第2の実施形態の推論装置1aの他の構成例」の(その1)及び(その2)、並びに「第2の実施形態におけるその他の補足的な構成」を適用するようにしてもよい。
【0151】
第1の実施形態の他の構成例の条件選定装置2と、第3の実施形態の変換パラメータ選択装置3とを共に用いるようにしてもよい。この場合、第1の実施形態の他の構成例の条件選定装置2は、変換パラメータをランダムに選択する処理を行い、ランダムに選択した変換パラメータの組み合わせの中から、入力データの画像劣化に対して最適な変換パラメータを選択することになる。そのため、ランダムに変換パラメータを選択することによる統計的な性質、すなわち、偏った変換パラメータの組み合わせになることを防ぎつつ、推論装置1,1aの処理の負荷の軽減を図っていることになる。これに対して、変換パラメータ選択装置3が行う変換パラメータの選択は、分析部17による認識処理における精度の向上に対して寄与の低い変換パラメータを削除することにより推論装置1,1aの処理の負荷の軽減を図っているという違いがある。
【0152】
上記の第1から第3の実施形態、及び他の構成例では、入力データを縦方向と、横方向と、チャネル方向を有する3次元のデータ、言い換えると、2次元の画像データとしている。これに対して、入力データとして、一般的に機械学習に適用するデータであれば、どのようなデータを適用してもよい。例えば、入力データを、音声、音響、振動のような1次元の時系列データとしてもよいし、3次元の画像データなどの4次元以上のデータとしてもよいし、自然言語のような記号データとしてもよい。
【0153】
上記した訓練データ記憶部21,21aに記憶させる訓練データに含まれている正解データとして、例えば、セマンティックセグメンテーションにおけるクラスを正解データとしている。これに対して、正解データとして、一般的に機械学習が適用される際の目的変数となるデータであれば、どのようなデータを適用してもよい。例えば、正解データを、属性、クラス名、人物ID(Identification)など、クラスやラベルに相当するデータを数値化したデータとしてもよいし、入力データと同一種類のデータとしてもよい。ここで、正解データを、入力データと同一種類のデータにするとは、入力データが画像の種類のデータである場合、正解データも画像の種類のデータにするということである。なお、一般的に機械学習では、クラスやラベルに相当するデータを目的変数とする場合、識別、または、認証が目的となり、入力データと同一種類のデータを目的変数とする場合、回帰が目的となる。
【0154】
上記した信頼度マップ生成部14、及び分析部17は、セマンティックセグメンテーションのアルゴリズムに基づく処理を行うようにしている。これに対して、信頼度マップ生成部14と、分析部17とが、セマンティックセグメンテーションのアルゴリズム以外の学習済みのニューラルネットワークを用いるアルゴリズムに基づく処理を行ってもよいし、セマンティックセグメンテーションのアルゴリズム以外のアルゴリズムであってニューラルネットワークを用いないアルゴリズムに基づく処理を行うようにしてもよい。
【0155】
上記した分析部17は、認識処理、例えば、セマンティックセグメンテーションのアルゴリズムにおいて行われる画像の領域をクラスごとに分割する画像分割処理を行うとしている。これに対して、分析部17は、セマンティックセグメンテーションのアルゴリズムにおいて行われる画像の領域をクラスごとに分割する画像分割処理以外の認識処理を行ってもよいし、認識という種類の分析処理以外の分析処理、例えば、検出、識別、認証、回帰などの任意の種類の分析処理を行うようにしてもよい。
【0156】
上記の第1の実施形態の推論装置1と、第1の実施形態の条件選定装置2とを一体化し、共通の機能部については、共用するようにした装置を推論装置としてもよい。上記の第1の実施形態の推論装置1と、第1の実施形態の条件選定装置2と、第3の実施形態の変換パラメータ選択装置3を一体化し、共通の機能部については、共用するようにした装置を推論装置としてもよい。これらの一体化において、第1の実施形態の推論装置1に替えて、第2の実施形態の推論装置1aなどの推論装置1の他の構成例のいずれかを一体化の対象としてもよい。これらの一体化において、第1の実施形態の条件選定装置2に替えて、第1の実施形態の他の構成例の条件選定装置2などの条件選定装置2の他の構成のいずれかを一体化の対象としてもよい。
【0157】
上記の第2及び第3の実施形態の構成では、統合部16bが行うステップSc9の処理、及び変換パラメータ選択部25が行うステップSd11の処理において、等号付き不等号を用いた判定処理を行っている。しかしながら、本発明は、当該実施の形態に限られるものではなく、「以上であるか否か」、「未満であるか否か」という判定処理は一例に過ぎず、閾値の定め方に応じて、ぞれぞれ「超過するか否か」、「以下であるか否か」という判定処理に置き換えられてもよい。
【0158】
上述した実施形態における推論装置1,1a、条件選定装置2、及び変換パラメータ選択装置3という3つの装置、並びに、上記した3つの装置の他の構成例や補足的に示した構成の各々をコンピュータで実現するようにしてもよい。この場合において、
図1及び
図7に示す推論装置1,1aにおいて、データ取込部12,12aは、外部から与えられる入力データを取り込むのではなく、複数の入力データを予め記憶する記憶部が、推論装置1の内部、または、外部に備えられており、当該記憶部からデータ取込部12,12aが、1つずつ入力データを読み出し、読み出した入力データを変換部13,13aに出力するようにしてもよい。出力部18は、推論装置1の外部に備えられていてもよい。
図4に示す条件選定装置2において、訓練データ記憶部21、及び処理結果記憶部24は、条件選定装置2の外部に備えられていてもよい。
図9に示す変換パラメータ選択装置3において、訓練データ記憶部21a、及び処理結果記憶部24aは、変換パラメータ選択装置3の外部に備えられていてもよい。
図1及び
図7に示す推論装置1,1a、
図4に示す条件選定装置2、及び
図9に示す変換パラメータ選択装置3において、変換統合条件記憶部10は、記憶装置として、各々の装置の外部に備えられていてもよく、外部に備えられた当該記憶装置を、共有するように、各々の装置が接続する構成であってもよい。推論装置1,1a、条件選定装置2、及び変換パラメータ選択装置3という3つの装置、並びに、上記した3つの装置の他の構成例や補足的に示した構成に備えられる機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。
【0159】
なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【0160】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0161】
1…推論装置、10…変換統合条件記憶部、12…データ取込部、13…変換部、14…信頼度マップ生成部、15…逆変換部、16…統合部、17…分析部、18…出力部