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

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

▶ 株式会社アクセルの特許一覧

特開2024-166974情報処理装置、情報処理方法、及びプログラム
<>
  • 特開-情報処理装置、情報処理方法、及びプログラム 図1
  • 特開-情報処理装置、情報処理方法、及びプログラム 図2
  • 特開-情報処理装置、情報処理方法、及びプログラム 図3
  • 特開-情報処理装置、情報処理方法、及びプログラム 図4
  • 特開-情報処理装置、情報処理方法、及びプログラム 図5
  • 特開-情報処理装置、情報処理方法、及びプログラム 図6
  • 特開-情報処理装置、情報処理方法、及びプログラム 図7
  • 特開-情報処理装置、情報処理方法、及びプログラム 図8
  • 特開-情報処理装置、情報処理方法、及びプログラム 図9
  • 特開-情報処理装置、情報処理方法、及びプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024166974
(43)【公開日】2024-11-29
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
   G06N 3/0464 20230101AFI20241122BHJP
   G06N 3/0495 20230101ALI20241122BHJP
   G06T 1/40 20060101ALI20241122BHJP
【FI】
G06N3/0464
G06N3/0495
G06T1/40
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2023083430
(22)【出願日】2023-05-19
(71)【出願人】
【識別番号】398034168
【氏名又は名称】株式会社アクセル
(74)【代理人】
【識別番号】100104776
【弁理士】
【氏名又は名称】佐野 弘
(74)【代理人】
【識別番号】100119194
【弁理士】
【氏名又は名称】石井 明夫
(72)【発明者】
【氏名】奥野 修二
【テーマコード(参考)】
5B057
【Fターム(参考)】
5B057CE06
5B057DC40
(57)【要約】
【課題】CNNを用いた人工知能において、データ量や処理負荷が過大になるのを抑止しつつ高い精度で解析や認識を行える情報処理装置を提供する。
【解決手段】情報処理装置は、デジタルデータであって複数のピクセルの集合体である元の画像データ20に対して単一のフィルタを適用して演算を行う単一フィルタ処理を行う単一フィルタ処理手段、元の画像データ20に所定の処理を行うことで元の画像データ20からデータを抽出するプーリング処理を行うプーリング処理手段、又は、畳み込み処理を行う畳み込み処理手段と、単一フィルタ処理手段、プーリング処理手段、又は、畳み込み手段の出力した処理済みの元の画像データ20の前記ピクセルを再配置する処理としての逆ピクセルシャッフラー処理を行う逆ピクセルシャッフラー手段とを備える。
【選択図】図5
【特許請求の範囲】
【請求項1】
デジタルデータに対して畳み込みニューラルネットワークを用いたデータ処理を行う情報処理装置であって、
前記デジタルデータであって複数のピクセルの集合体である元データに対して単一のフィルタを適用して演算を行う単一フィルタ処理を行う単一フィルタ処理手段、前記元データに所定の処理を行うことで前記元データからデータを抽出するプーリング処理を行うプーリング処理手段、又は、畳み込み処理を行う畳み込み処理手段と、
前記単一フィルタ処理手段、プーリング処理手段、又は、畳み込み処理手段の出力した処理済みの前記元データの前記ピクセルを再配置する処理としての逆ピクセルシャッフラー処理を行う逆ピクセルシャッフラー手段とを備えたことを特徴とする情報処理装置。
【請求項2】
前記デジタルデータは画像データであることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
デジタルデータに対して畳み込みニューラルネットワークを用いたデータ処理を行う情報処理装置による情報処理方法であって、
前記デジタルデータであって複数のピクセルの集合体である元データに対して単一のフィルタを適用して演算を行う単一フィルタ処理が行われる単一フィルタ処理手順、前記元データに所定の処理を行うことで前記元データからデータを抽出するプーリング処理が行われるプーリング処理手順、又は、畳み込み処理が行われる畳み込み処理手順と、
前記単一フィルタ処理手順、プーリング処理手順、又は、畳み込み処理手順において出力された処理済みの前記元データの前記ピクセルを再配置する処理としての逆ピクセルシャッフラー処理が行われる逆ピクセルシャッフラー手順とを備えたことを特徴とする情報処理装置による情報処理方法。
【請求項4】
コンピュータを、請求項1又は2に記載の情報処理装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、畳み込みニューラルネットワーク(CNN)を用いてデータを処理する情報処理装置及び情報処理方法に関する。
【背景技術】
【0002】
近年、人工知能(AI)を用いてデータの解析や認識を行うために、畳み込みニューラルネットワーク(CNN。以下「CNN」と称する。)が多く用いられる。これらのCNNのうち、画像のセグメンテーションを推定するためのものとして、U-netと称されるネットワークが知られている。
【0003】
U-netの一般的な構成としては、非特許文献1に記載のように、エンコード側で畳み込み処理とプーリング処理とを順次行うことでダウンサンプルすると共に、エンコード側の各階層の畳み込み結果の一部を特徴マップとしてデコード側の階層に供給する。デコード側ではデータをアップサンプルすると共にエンコード側から供給された特徴マップのデータをクロップしてデータの畳み込みを行う。
【0004】
また、非特許文献2に記載されているように、pix2pixというモデルではU-netを利用し、画像の領域特定に利用されている。このpix2pixでは非特許文献1に開示されたU-netのプーリング処理に替えて、畳み込みを用いてダウンサンプルしている。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Olaf Ronneberger、Philipp Fischer、 andThomas Brox、“U-Net: Convolutional Networks for BiomedicalImageSegmentation”、「MICCAI2015.LNCS」、Springer,vol.9351、p.234-241,2015
【非特許文献2】Phillip Isola Jun-Yan Zhu Tinghui Zhou Alexei A. Efros、“Image-to-Image Translation with Conditional Adversarial Networks”、Berkeley AI Research (BAIR) Laboratory、University of California、 Berkeley、26 Nov 2018
【発明の概要】
【発明が解決しようとする課題】
【0006】
U-net等におけるダウンサンプルは、認識等の場合で利用される特徴抽出という機能以外に多重解像度処理という側面もある。したがって、プーリングでダウンサンプルした場合は特徴抽出という側面が強い半面、多重解像度処理には向かないデータが生成される可能性がある。また、通常の畳み込み処理によるダウンサンプルは計算量が多くなるという課題や、正確なダウンサンプルにならず、用途によっては機械学習の性能が下がるという課題がある。
【0007】
本発明はこのような課題に鑑みてなされたものであり、CNNを用いた人工知能において、抽出する情報量を落とさず、かつ少ない計算で正確なダウンサンプルを行うことのできる情報処理装置、情報処理方法、プログラムを提供することを課題としている。
【課題を解決するための手段】
【0008】
かかる課題を解決するため、請求項1に係る発明は、デジタルデータに対して畳み込みニューラルネットワークを用いたデータ処理を行う情報処理装置であって、前記デジタルデータであって複数のピクセルの集合体である元データに対して単一のフィルタを適用して演算を行う単一フィルタ処理を行う単一フィルタ処理手段、前記元データに所定の処理を行うことで前記元データからデータを抽出するプーリング処理を行うプーリング処理手段と、前記単一フィルタ処理手段、プーリング処理手段、又は、畳み込み処理手段の出力した処理済みの前記元データの前記ピクセルを再配置する処理としての逆ピクセルシャッフラー処理を行う逆ピクセルシャッフラー手段とを備えたことを特徴とする。
【0009】
請求項2に記載の発明は、請求項1に記載の構成に加え、前記デジタルデータは画像データであることを特徴とする。
【0010】
請求項3に記載の発明は、デジタルデータに対して畳み込みニューラルネットワークを用いたデータ処理を行う情報処理装置による情報処理方法であって、前記デジタルデータであって複数のピクセルの集合体である元データに対して単一のフィルタを適用して演算を行う単一フィルタ処理が行われる単一フィルタ処理手順、前記元データに所定の処理を行うことで前記元データからデータを抽出するプーリング処理が行われるプーリング処理手順、又は、畳み込み処理が行われる畳み込み処理手順と、前記単一フィルタ処理手順、プーリング処理手順、又は、畳み込み処理手順において出力された1の前記元データの前記ピクセルを再配置する処理としての逆ピクセルシャッフラー処理が行われる逆ピクセルシャッフラー手順とを備えたことを特徴とする。
【0011】
請求項4に記載の発明は、プログラムであって、コンピュータを、請求項1又は2に記載の情報処理装置として機能させることを特徴とする。
【発明の効果】
【0012】
本発明によれば、CNNを用いた人工知能において、データ量や処理負荷が過大になるのを抑止しつつ高い精度で解析や認識を行うことが可能となる。
【図面の簡単な説明】
【0013】
図1】この実施の形態の情報処理装置の一実施例を示す機能ブロック図である。
図2】この実施の形態のピクセルシフトダウンサンプル処理部の機能ブロック図である。
図3】同上情報処理装置におけるストライドの原理とピクセルシフトダウンサンプル(PSDS)の原理とを模式的に示す図である。
図4】同上情報処理装置における(a)ストライドの原理とピクセルシフトダウンサンプルの代替処理としてのフィルタ処理の原理を模式的に示す図、(b)フィルタ処理が行われた結果を模式的に示す図である。
図5】同上情報処理装置における、(a)フィルタ処理が行われた結果の一部を模式的に示す図、(b)逆ピクセルシャッフラー処理を模式的に示す図である。
図6】同上情報処理装置におけるダウンサンプル処理の処理手順を示すフローチャートである。
図7】同上情報処理装置におけるダウンサンプル処理、アップサンプル処理を模式的に示す図である。
図8】同上情報処理装置におけるアップサンプル処理の処理手順を示すフローチャートである。
図9】同上情報処理装置におけるフィルタ係数の設定の手順を示すフローチャートである。
図10】同上情報処理装置におけるフィルタ係数の設定を模式的に示す図である。
【発明を実施するための形態】
【0014】
図1乃至図10に、この実施の形態に係る情報処理装置及び情報処理装置における情報処理方法を示す。以下、この発明の実施の形態について図面を参照して説明する。
【0015】
[基本構成]
まず、この実施の形態の情報処理装置の及び構成について説明する。
【0016】
図1に示す、この実施の形態の情報処理装置1は、人工知能(AI、以下単に「AI」と記載する。)を備え、AIによる各種データの解析や認識や、解析や認識に用いたデータの復元を行う。情報処理装置1は、デジタルデータに対してCNNを用いたデータ処理を行う。
【0017】
例えば、この実施の形態の情報処理装置1は、ピクセルの集合体である画像データのダウンサンプル処理(処理後のピクセル数を処理前のピクセル数以下とする処理)やアップサンプル処理(処理後のピクセル数を処理前のピクセル数以上とする処理)を行う。ただし、情報処理装置1がこれ以外のいかなるデータのいかなる処理に用いられてもよい。
【0018】
以下、この実施の形態では、情報処理装置1がデジタルデータとしての画像データの解析や認識、そして復元を行うものとして説明する。ただし情報処理装置1が扱うデータは画像データに限らず、例えばデジタルデータとしての音声データや、音声以外の各種デジタルデータを扱うものでもよい。
【0019】
図1に示すとおり、この実施の形態の情報処理装置1は、機能手段として、入力データ取得部10と、ダウンサンプル部11と、アップサンプル部12と、クロップ処理部13と、フィルタ係数設定部14と、記憶部15と、出力部16とを備える。ダウンサンプル部11は、前述のダウンサンプル処理のための一連の処理を行う。ダウンサンプル部11は、「畳み込み処理手段」としての畳み込み処理部11aと、「プーリング処理手段」としてのプーリング処理部11bと、「単一フィルタ処理手段」としての単一フィルタ処理部11cと、ピクセルシフトダウンサンプル処理部11d、「逆ピクセルシャッフラー手段」としての逆ピクセルシャッフラー処理部11eを備える。アップサンプル部12は、前述のアップサンプル処理のための一連の処理を行う。アップサンプル部12は、「畳み込み処理手段」としての畳み込み処理部12aとアップサンプル処理部12bを備えている。これらの機能手段は、いずれもハードウェアやハードウェアとソフトウェア(コンピュータプログラム等)の協働によって構成されるが、これらの機能手段のうちの少なくとも何れか一つがソフトウェアのみによって構成されてもよい。なお、ピクセルシフトダウンサンプル処理部11dは以下本明細書においてPSDS処理部11dと記載する。
【0020】
入力データ取得部10は、情報処理装置1における各種の処理の対象となるデータである、入力データを取得する。図1は、入力データ取得部10が「元データ」としての入力画像101を取得する状態を示している。入力データ取得部10は、ネットワーク(図示せず)等を介してデータをダウンロードすることにより、当該データを入力データとして取得してもよい。
【0021】
畳み込み処理部11aは、画像データ処理において、元データに対して畳み込み処理を行う。具体的には、畳み込み処理部11aは、入力するデータの各チャンネルにそれぞれ別のフィルタをかけ、その結果を足し合わせる(バイアス値を含めることもある)。また出力チャンネル毎に入力データに掛け合わせるフィルタ係数は変更される。したがって、入力データが3チャンネル、出力を6チャンネルとする場合には、18種類のフィルタ及び6つのバイアス値が必要であり、各フィルタ処理では積和演算処理が行われる。
【0022】
プーリング処理部11bは、ストライドを設定した場合、データに対してデータ数を減少させ、ストライドを設定しない場合にはデータ数が減少せずにプーリング処理を行う。プーリング処理部11bはプーリングの種別を設定するプーリング処理設定機能を含んでおり、設定に応じて、任意の方法で、プーリング処理を実行することができる。プーリング処理設定機能は、例えば、maxプーリング(処理領域であるウインドウ(以下単に「ウインドウ」と称する。)の中にある最大値のデータのみを抽出して他のデータを削除する処理のこと。)や、avgプーリング(ウインドウの中に存在するデータの平均値を算出する処理のこと。)等を設定する。プーリング処理部11bは、プーリング処理設定機能の設定したプーリング処理を行うことでダウンサンプリングデータを生成することができる。
【0023】
単一フィルタ処理部11cは単一のフィルタを用いてデータをフィルタリングする。フィルタリングの方法としては、所定のフィルタ係数と画素データとを積和演算し、フィルタリング結果としてのデジタルデータを得る。上記畳み込み処理部11aとの違いは、畳み込み処理では係数が異なる複数のフィルタ係数を用いて、例えば、64chや128ch分のデータを生成するのに対し、単一フィルタ処理部11cでは単一のフィルタ係数を用いてフィルタリングする点で相違する。したがって、後述するPSDS処理部11dの機能を利用しない場合には、入力と同じチャンネル数のフィルタリングデータしか得られない。
【0024】
PSDS処理部11dはダウンサンプル処理におけるウインドウ枠の設定や、ストライド値の設定等を行うものであり、その詳細については後述する。また逆ピクセルシャッフラー処理部11eの説明も後述する。
【0025】
クロップ処理部13はU-netで利用されるクロップ処理を行うもので、畳み込み等が行われたデータの中央部分を切り出して特徴マップを生成する。
【0026】
アップサンプル部12の畳み込み処理部12aはダウンサンプル部11の畳み込み処理部11aと同様、入力データに対してフィルタを用いて畳み込み処理を行う。アップサンプル部12のアップサンプル処理部12bは逆畳み込み(Deconvolution)処理やピクセルシャッフラー処理等、ピクセル数を増加させる処理を行う。
【0027】
フィルタ係数設定部14は、機械学習の出力が所望の値となるようダウンサンプル部11の畳み込み処理部11a、アップサンプル部12の畳み込み処理部12a、単一フィルタ処理部11c、アップサンプル処理部12bなどで使用するフィルタ係数を設定する。
【0028】
記憶部15には、情報処理装置1により実現する機械学習のネットワークの設計情報等が記憶されていると共に、特徴マップの情報、あるいはダウンサンプル部11やアップサンプル部12の処理過程のデータ等が一時的に格納される。
【0029】
出力部16は、機械学習結果としての出力、例えば機械学習がセグメンテーションに関するものである場合には入力画像に含まれる特定の物体の場所情報が出力される。
【0030】
図2は、PSDS処理部11dの機能ブロックを示す図であり、ウインドウ枠設定部111、ストライド値設定部112、開始位置数設定部113、開始位置設定部114、処理内容設定部115を備える。
【0031】
ウインドウ枠設定部111はダウンサンプル処理に用いる各種フィルタのウインドウ枠の大きさを設定し、ストライド値設定部112はフィルタ処理におけるウインドウ枠のスライド量を設定する。また開始位置数設定部113はピクセルシフトダウンサンプル処理において、各種フィルタリング処理を開始する位置数を設定し、開始位置設定部114は各種フィルタリング処理を開始する位置を設定する。処理内容設定部115はピクセルシフトダウンサンプル処理において畳み込み処理、プーリング処理、単一フィルタ処理のいずれの処理を行うかを設定する。なお、開始位置数はストライド値と相関を持たせても良く、本実施の形態ではストライド値の二乗としている。すなわち、ストライド値が2の場合、開始位置数は4、ストライド値が3の場合には開始位置数は9となる。ただし、相関を持たせることを限定するものではない。
【0032】
[ピクセルシフトダウンサンプルの原理]
図3は、この実施の形態の情報処理装置におけるダウンサンプル部11で実行されるピクセルシフトダウンサンプル(PSDS)の原理を模式的に示す図である。なお、この実施の形態においては、PSDS処理部11dの各種設定が以下の状態になっている。
ウインドウ枠:2×2、ストライド値:2、開始位置数:4、処理内容設定:単一フィルタ処理。なお、開始位置設定については図3の実施形態にて説明する。
【0033】
例えば、画像データに対し、畳み込み処理に代表される各種のフィルタリング処理や、プーリング処理のようにウインドウを用いてピクセル数を減少させる、ダウンサンプルデータを得る場合を考える。
【0034】
フィルタやウインドウを画像データ上で異なる位置に複数回移動させて複数回の処理を行えば、複数の処理結果が得られる。
【0035】
また、画像データに対する処理の種類、ウインドウ枠の大きさの設定、処理の開始位置を複数用意しておくこともできる。このようにすることで、処理の開始位置ごとに、異なった情報を持つ複数の畳み込みデータや、異なった情報を持つ複数のプーリングデータ、異なった情報を持つ単一フィルタリング処理による複数のフィルタリングデータ等を生成できる。これにより、異なった情報を持つ複数のダウンサンプルデータを生成することが可能になる。
【0036】
このように、処理対象となる元データ上で処理の開始位置をずらし、所定の処理を行うことを「ピクセルシフトダウンサンプル(PSDS)」と称する(以下単に「PSDS」と称する。)。
【0037】
図3は、ウインドウ枠が2×2、ストライド値が2(ストライド値設定手順)、開始位置数を4に設定したPSDSの処理を模式的に示している。ここでは、処理内容としてローパスフィルタを用いた単一フィルタ処理が設定されているものとする。以下4つの開始位置ごとに[処理1]~[処理4]として説明する。
【0038】
[処理1:基準位置を開始位置とする処理]
例えば、先ず図3の(a-1)に示すように、「元データ」としての画像データ20のうちの2行×2列の4つの画素(以下単に「4画素」と称する。)に対して2行×2列のフィルタ処理のウインドウ枠21(以下単に「フィルタ21」と称する。)を乗算する行列演算を行い、処理結果としてのデータを得る。このフィルタ21の中心部分の最初の設置位置を符号30に示す「基準位置」と言い(以下単に「基準位置」と称する。)、また、このフィルタ21の設置位置を符号31に示す。PSDS処理部11dにおける開始位置設定部114の設定情報の一つとして、開始位置である符号31の位置情報(画素番号1、2、6、7がウインドウ枠(フィルタ21)の中に収まるという情報)が設定されている(開始位置設定手順)。
【0039】
次に、(a-2)に示すように、画像データ20のX方向(同図の左右方向。ここでは同図の右方向)にストライド値2(2データ分移動した位置)でフィルタ21をスライドさせ、次の4画素に対して同じフィルタ21で行列演算を行い、フィルタリング結果のデータを得る(処理内容設定手順、処理実行手順)。
【0040】
[処理2:右位置を開始位置とする処理]
一方、上記(a-1)の基準位置30におけるフィルタ処理と並行し、(b-1)に示すように、画像データ20の基準位置30に対してX方向に1画素ずれた位置を新たな開始位置32とし、4画素(2行×2列)に対して(a-1)と同じ係数のフィルタ21で行列演算を行い、畳み込みデータを得る。PSDS処理部11dにおける開始位置設定部114の設定情報の一つとして、前記処理1と同様に、開始位置である符号32の位置情報(画素番号2、3、7、8がウインドウ枠(フィルタ21)の中に収まるという情報)が設定されている。この(b-1)の開始位置32は、基準位置30に対して右位置となっている(以下この開始位置32を単に「右位置」と称する。開始位置設定手順)。
【0041】
次に、(b-2)に示すように、画像データ20の右位置からX方向にストライド値2でフィルタ21をスライドさせ、次の4画素に対してフィルタ21で行列演算を行い、フィルタリング結果のデータを得る(ストライド値設定手順、処理内容設定手順、処理実行手順)。
【0042】
[処理3:下位置を開始位置とする処理]
さらに、上記基準位置、右位置におけるフィルタ処理と並行し、(c-1)に示すように、画像データ20の基準位置30に対してY方向(同図の上下方向。ここでは同図の下方向)に1画素ずれた位置を新たな開始位置33とし、4画素(2行×2列)に対して(a-1)と同じ係数のフィルタ21で行列演算を行い、フィルタリング結果のデータを得る。この場合もPSDS処理部11dにおける開始位置設定部114の設定情報の一つとして、開始位置である符号33の位置情報(画素番号6、7、11、12がウインドウ枠(フィルタ21)の中に収まるという情報)が設定されている。この(c-1)の開始位置は、基準位置30に対して下位置となっている(以下この開始位置33を単に「下位置」と称する。)となっている(開始位置設定手順)。
【0043】
次に、(c-2)に示すように、画像データ20の下位置からX方向(右方向)にストライド値2でフィルタ21をスライドさせ、次の4画素に対してフィルタ21で行列演算を行い、フィルタリング結果のデータを得る(ストライド値設定手順、処理内容設定手順、処理実行手順)。
【0044】
[処理4:斜め位置を開始位置とする処理]
またさらに、上記基準位置、右位置、下位置におけるフィルタ処理と並行し、(d-1)に示すように、画像データ20の基準位置30に対して斜め右下方に1画素ずれた位置(X方向(右方向)とY方向(下方向)にそれぞれ1画素ずれた位置)を新たな開始位置34とする。そして、4画素(2行×2列)に対して(a-1)と同じ係数のフィルタ21で行列演算を行い、フィルタリング結果のデータを得る。PSDS処理部11dにおける開始位置設定部114の設定情報の一つとして、開始位置である符号34の位置情報(画素番号7、8、12、13がウインドウ枠(フィルタ21)の中に収まるという情報)が設定されている。この(d-1)の開始位置34は、基準位置30に対して斜め位置(以下単に「斜め位置」と称する。)となっている(開始位置設定手順)。
【0045】
次に、(d-2)に示すように、画像データ20の斜め位置からX方向(右方向)にストライド値2でフィルタをスライドさせ、次の4画素に対してフィルタ21で行列演算を行い、フィルタリング結果のデータを得る(ストライド値設定手順、処理内容設定手順、処理実行手順)。
【0046】
上記のように開始位置が4(つまり開始位置を4つ設定すること。)に設定されている場合には、4つの開始位置に関する情報が開始位置設定部114に設定されている。
【0047】
上記[処理1]~[処理4]においては、基準位置、右位置、下位置、斜め位置を開始位置31、32、33、34とする画像データ20のフィルタリング処理において、縮小として動作する単一のフィルタが用いられる。このように単一のフィルタを用いても、画素中心がずれた複数のフィルタリング結果を得ることができる。これにより、フィルタリング処理の位置の偏りをなくすことができる。
【0048】
また、上記[処理1]~[処理4]の後は、それぞれ下記[処理5]が行われる。
【0049】
[処理5:処理の繰り返し]
上記[処理1]~[処理4]の基準位置30、右位置32、下位置33、斜め位置34を開始位置とするフィルタリング処理を、それぞれ上記と同様にフィルタ21をX方向(右方向)にストライド値2でスライドさせながら画像データ20の右端まで処理を行う。その後、それぞれ最初の開始位置31、32、33、34から画像データ20のY方向(下方向)に2ピクセルシフトした位置を新たな開始位置(図示せず)として、上記と同様に、基準位置、右位置、下位置、斜め位置を開始位置とする、画像データ20に対するフィルタ21のフィルタリング処理が行われる。
【0050】
例えば、上記[処理1]の基準位置30を開始位置31とした演算は、ストライド値2で画像データ20のY方向(下方向)に2画素分シフトした、図3に示す画素No.11、12、16、17に重なる位置を新たな開始位置(図示せず)とする。このNo.11、12、16、17の4画素を対象にフィルタ21のフィルタリングが行われ、その後、上記と同様のフィルタ21によるフィルタリング処理が繰り返される。
【0051】
上記[処理2]の右位置、上記[処理3]の下位置、上記[処理4]の斜め位置のそれぞれの開始位置32、33、34とするフィルタリングも同様に、当初の開始位置32、33、34からY方向(下方向)に2画素分シフトした位置を新たな開始位置(図示せず)として、画像データ20に対するフィルタ21によるフィルタリング処理が繰り返される。
【0052】
なお、上記[処理5]は、上記[処理1]乃至[処理4]の少なくとも何れか一つと一連の処理として行ってもよい。また、[処理5]は同一の画像データ20に対して繰り返し行ってもよい。例えば、上記画像データ20に対する[処理1]の直後に[処理5]を繰り返し行うことで、一の画像データ20全体に対して(a-1)を開始位置とするフィルタリング処理を行うことができる。また例えば、画像データ20に対する、[処理1]の直後と、[処理2]乃至[処理4]のそれぞれの直後に[処理5]を繰り返し行うことで、一の画像データ20全体に対してPSDSを用いたフィルタリング処理を行うことができる。
【0053】
上記[処理1]~[処理5]に示すように基準位置30以外に右、下、斜めにそれぞれ一画素ずらした場所を基準に画素中心を設定して畳み込み処理を行うことで、固定された1の基準位置30のみを基準にフィルタリング処理やプーリング処理を行う場合に比べ、通常の4倍のデータを得ることができ、4倍のデータを用いて学習、推論を行うことができる。そのため、従来のように基準位置が固定的なフィルタリング処理やプーリング処理を行うものと比較し、学習効率や推論結果の質の向上を図ることができる。また、従来の畳み込み処理の場合には多数のフィルタ係数を用いて処理を行う必要があるが、本発明では単一のフィルタ係数を用いながら、多くのフィルタリング処理結果が得られ、ダウンサンプル処理の精度を上げることができる。
【0054】
通常、畳み込みに用いるフィルタ係数はその種類を増やすほど精度が向上するといわれるが、本発明では単一のフィルタ係数を用いているにも関わらず、精度を向上させることができる。なお、ダウンサンプルで用いるフィルタのフィルタ係数は階層毎に同じでも異なっていても良い。
【0055】
この実施の形態では、特定の開始位置から処理が始まるフィルタリング処理によって形成される、2次元方向に連続する一のデータ群を「チャンネル」と称する。例えば、上記[処理1]~[処理5]の場合は、基準位置30、右位置、下位置、斜め位置を開始位置31、32、33、34とする4つのデータ群が形成されるので、4チャンネルのフィルタリングデータが生成されることになる。
【0056】
なお、図3に示す事例では、基準位置30に対して1画素ずれた右位置、下位置、斜め位置をそれぞれ開始位置31、32、33、34とし、それぞれの開始位置31、32、33、34からX方向(右方向)へのストライド値を2としてフィルタリング処理を行った。しかしストライドの大きさや方向はこれに限定されず、処理されたデータによる学習、推論を適切に行えるものであれば、どのようなストライドの大きさや方向であってもよい。
【0057】
上記説明では2×2のフィルタを用い、ストライド値を2に設定し、1/2の縮小(ピクセル数の減少)とした例を挙げて説明したが、例えば、3×3のフィルタを用い、ストライド値を2に設定して1/2の縮小とすれば、基準位置、右位置、下位置、斜め位置のそれぞれの開始位置はNo.7、No.8、No.12、No.13の画素位置となる。これは2×2のフィルタを用いた場合の各開始位置と0.5ピクセルずれた位置でのフィルタリング結果となるので、このように単一フィルタを複数用意して、複数チャンネルのフィルタリングデータを生成することで、より多くのデータを入手するようにしても良い。また、単一フィルタの大きさを変更するのではなく、互いにフィルタ係数が異なり、フィルタ係数が偏ったフィルタを用いて複数チャンネルのフィルタリングデータを生成することで、より多くのデータを入手するようにしても良い。単一フィルタの種類としては、上記実施の形態で説明したように、画像の縮小成分を抽出するものとしてのローパスフィルタを用いても良く、また画像の高周波成分を抽出するためのハイパスフィルタ等を利用しても良い。
【0058】
なお、上記実施の形態では2×2のフィルタを用い、開始位置を画像内の画素が配置された位置に設定したが、開始位置を画像の外部に設定し、フィルタ枠内で画素が存在しない箇所についてはパディング等の処理(図4の(a)に示すパディング51,52参照)を行っても良い。またストライド値もX方向、Y方向で異なる値を設定しても良い。
【0059】
また、図3に示す事例では、縮小サイズを1/2にするため、ストライド値を2とし、その結果、4つのチャンネルデータを得たが、処理されたデータによる学習、推論を適切に行えるものであれば、チャンネル数は4に限定するものではない。例えば、開始位置を基準位置、右位置、下位置の3つとして、処理結果のチャンネル数を3としたり、開始位置を斜め位置のみとして処理結果のチャンネル数を1にしたりすることなども可能である。
【0060】
さらに、図3に示す事例では、用いるフィルタ21を2行×2列の正方行列としたが、これに限定されない。即ち、処理されたデータによる学習、推論を適切に行えるものであれば、フィルタ21を構成する行や列の数が3以上でもよいし、正方行列でなくてもよい。
【0061】
そして、上記[処理1]~[処理5]に示す原理は、単一のフィルタ係数を用いたフィルタリング処理だけでなく、畳み込み処理やプーリング処理にも適用することができる。畳み込み処理にPSDSを適用した場合、すなわち、PSDS処理部11dの処理内容設定部115に「畳み込み」を設定した場合、元来、畳み込み自体、処理計算量が大きく、PSDSを利用することでより一層の処理計算に必要な資源が必要となるが、情報量が多くなる分、より高精度な機械学習を期待することができる。また処理内容設定部115に「プーリング」を設定した場合も開始位置が異なる複数チャンネル(上記実施の形態においては4チャンネル)のプーリング結果が得られにおける。なお、畳み込み処理、プーリング処理、単一フィルタ処理のいずれにおいても、ウインドウ枠の大きさ、ストライド値、開始位置数、開始位置設定等の情報は図3の(a-1)~(d-2)に例示するもののみには限定されない。
【0062】
[逆ピクセルシャッフラー処理]
この実施の情報処理装置1は、図1に示すPSDS処理部11dの処理に替えて、図1に示す逆ピクセルシャッフラー処理部11eによる処理を行うこともできる。
【0063】
この実施の形態の逆ピクセルシャッフラー処理部11eは、元の1のチャンネルを新たな複数のチャンネルに分割し、元の1のチャンネルに存在する複数のピクセルデータを、新たな複数のチャンネルに再配置する処理を行う。この処理を「逆ピクセルシャッフラー処理(space-to-depth)」と称し、本明細書においてもこの処理を「逆ピクセルシャッフラー処理」と記載する。
【0064】
[逆ピクセルシャッフラー処理部の構成]
この実施の形態の逆ピクセルシャッフラー処理部11eは、図2に示すPSDS処理部11dと同様の構成を備える。すなわち、逆ピクセルシャッフラー処理部11eは、ウインドウ枠設定部111、ストライド値設定部112、開始位置数設定部113、開始位置設定部114、処理内容設定部115と同様の構成を備える。なお、これらの構成はいずれも図1には図示していない。
【0065】
逆ピクセルシャッフラー処理部11eのウインドウ枠設定部111に相当する構成は、元データである画像データ20に単一のフィルタ処理等を行うフィルタ枠(フィルタサイズ)を設定するサイズ設定手段として機能する。
【0066】
逆ピクセルシャッフラー処理部11eにおいて、ストライド値設定部112に相当する構成は、フィルタ処理を行うウインドウ枠を元データである画像データ20上で移動させる(ストライドさせる)大きさを設定する機能を有する。ただし、逆ピクセルシャッフラー処理を用いる場合にはストライド値は1に設定して処理を行うのが好ましい。
【0067】
逆ピクセルシャッフラー処理部11eにおいて、開始位置設定部114に相当する構成は、元データである画像データ20の少なくとも一部の領域に、フィルタ枠を最初に設定する位置としての開始位置として設定する機能を有する。
【0068】
逆ピクセルシャッフラー処理部11eにおいて、開始位置数設定部113に相当する構成は、単一フィルタ処理等が行われた処理済みの元データである画像データ20を新たな画像データ57,58,59,60に再配置する際の、開始位置数に相当する値を設定する。ここでの開始位置数に相当する値とは、例えば、枠53の中に存在するピクセルの数であり、このピクセルの数が新たな画像データ57,58,59,60のチャンネル数となり、このチャンネル数が開始位置数に相当する(詳細は後述する。)。
【0069】
逆ピクセルシャッフラー処理部11eにおいて、処理内容設定部115に相当する構成は、逆ピクセルシャッフラー処理における、処理内容設定部115の場合と同様の具体的な処理内容を設定する機能を有する。
【0070】
また、この実施の形態の逆ピクセルシャッフラー処理部11eは、畳み込み処理部11a、プーリング処理部11b、単一フィルタ処理部11cのうち少なくとも何れか一つの構成による処理結果を用いることができる。つまり、PSDS処理では抽出するデータの位置をずらし、その後、単一フィルタ処理等を行うのに対し、逆ピクセルシャッフラー処理では予め単一フィルタ処理等を行ったピクセルのデータから抽出するデータを再配置することで同様の結果を得ている。畳み込み処理、プーリング処理、単一フィルタ処理部11cによる処理は上記の「畳み込み処理部11a」「プーリング処理部11b」「単一フィルタ処理部11c」の説明に記載済みなので、ここでは記載を省略する。
【0071】
逆ピクセルシャッフラー処理部11eにはPSDS処理部11dと同様に処理内容設定部115と同様の構成(図示せず)を含んでいる。そのため、逆ピクセルシャッフラー処理を行う前の所望のデータ処理を適宜選択し、その処理されたデータに対して逆ピクセルシャッフラー処理を行うことができる。
【0072】
[逆ピクセルシャッフラー処理の手順(前処理手順も含む)]
以下、この実施の形態の逆ピクセルシャッフラー処理について、図4及び図5を用いて説明する。
【0073】
図4の(a)(b)は、逆ピクセルシャッフラー処理の前に行われる処理の一例としてのフィルタリング処理を模式的に示す図である。ここでは、この処理は単一フィルタ処理部11cが単一のフィルタを用いてデータをフィルタリングすることで行う(単一フィルタ処理手順)。
【0074】
図4の(a)には、画像データ20に対する、ウインドウ枠が3×3、ストライド値を1に設定したフィルタリング処理を模式的に示している。図4の(a)には、元の画像データ20の1行目の上にパディング51、1列目の左にパディング52が追加されている。このパディング51,52は、単一フィルタ処理等の処理後に元の画像データ20と同数のピクセルデータを得るために追加されたものである。そのため、もしフィルタリング処理前とフィルタリング処理後のデータ数を揃える等特段の必要がなければ、パディング51,52の一方乃至双方を追加する必要はない。
【0075】
図4の(a)に示すとおり、まず、単一フィルタ処理部11cは、画像データ20の、パディング51,52を追加する前の1行1列目を基準位置30とする。単一フィルタ処理部11cは、基準位置30に3×3のフィルタ21の中央(つまり2行2列目のピクセル)が来るようにフィルタ枠21aを設置する。このとき、フィルタ枠21aはパディング51,52を含む状態で設置される。この状態で、単一フィルタ処理部11cはフィルタ枠21aが設置された画像データのピクセルに対してフィルタリング処理を行う。フィルタリング処理の結果は、図4の(b)に示す画像データ20の1行1列目のピクセル54(マル数字1で示したピクセル)に設定される。
【0076】
次に、図4の(a)に示すように、単一フィルタ処理部11cは、フィルタ枠21aをX方向(図4の左右方向。ここでは右方向。)に1つシフトさせる。単一フィルタ処理部11cは、フィルタ枠21aが設置された画像データ20のピクセルに対してフィルタリング処理を行う。フィルタリング処理の結果は、図4の(b)に示す画像データ20の1行2列目のピクセル55(マル数字2で示したピクセル)に設定される。
【0077】
次に、図4の(a)に示すように、単一フィルタ処理部11cは、フィルタ枠21aをさらにX方向(右方向)に1つシフトさせる。単一フィルタ処理部11cは、フィルタ枠21aが設置された画像データ20のピクセルに対してフィルタリング処理を行う。フィルタリング処理の結果は、図4の(b)に示す画像データ20の1行3列目のピクセル56(マル数字3で示したピクセル)に設定される。
【0078】
単一フィルタ処理部11cは、フィルタ処理対象のフィルタ枠21aをストライド値(本実施形態ではストライド値=1)に基づいて移動させながら、同様の処理を画像データ20の全てのピクセルに対して繰り返し行う。なお、フィルタ枠21aが画像データ20のX方向の右端まで移動した後は、単一フィルタ処理部11cは、Y方向(図4の上下方向。ここでは下方向。)にフィルタ枠21aを移動させる。これにより、フィルタ枠21aは画像データ20の1つ下の行の左端(右端でもよい)に移動される。そして、単一フィルタ処理部11cは、フィルタ枠21aを左から右へ(右から左でもよい)に1ずつ移動させながら単一フィルタ処理部11cにフィルタリング処理を繰り返し行わせる。そして、単一フィルタ処理部11cは画像データ20の全てのピクセルにフィルタリング処理を行う。
【0079】
図5の(a)は、図4に示すフィルタリング処理が行われた画像データ20の一部を模式的に示す図である。図5の(a)では、一例として、8×8の64ピクセルの画像データ20に対し、逆ピクセルシャッフラー処理が行われる場合を示している。ただし、逆ピクセルシャッフラー処理が行われる画像データ20はどのような大きさでもよい。すなわち、画像データ20のサイズは8×8より大きくても小さくてもよい。また、画像データ20はX方向(同図の左右方向)とY方向(同図の上下方向)の長さが同一でなくてもよい。例えば画像データ20はX方向の長さがY方向の長さより大きくてもよい。
【0080】
逆ピクセルシャッフラー処理部11eは、この、フィルタリング処理が行われた画像データ20に逆ピクセルシャッフラー処理を行う(逆ピクセルシャッフラー手順)。
【0081】
図5では、一例として、元の画像データ20のピクセルを取り出して画像データ57,58,59,60に再構成する処理を模式的に示している。この例では、元の画像データ20からピクセルを取り出す間隔を所定の値、たとえば2(X方向に2、Y方向に2)に設定されている。したがって、便宜上、枠53として示している範囲のX方向とY方向の長さがそれぞれ2に設定されている。また、新たな画像データ57,58,59,60のX方向長さ、Y方向長さは、元の画像データ20のX方向長さ、Y方向長さの1/2(X方向4、Y方向4)に設定されている。また、この例では、逆ピクセルシャッフラー処理は、元の画像データ20の左上から処理が開始され、X方向、次いでY方向に順次処理が行われる。
【0082】
ここで、フィルタ処理等が行われた元の画像データを4チャンネルのデータとして取り出す場合、枠53は2行2列に設定される。
【0083】
図5の(a)においては、元の画像データ20の一番左上の2行2列の範囲、つまりマル数字1,2,9,10の4ピクセルに、最初に枠53が設定される。そして、このマル数字1,2,9,10の4ピクセルが枠53の範囲として設定される。つまり、再配置により得るチャンネル数により枠53のサイズ(例えば2×2の4ピクセル)も決まる。
【0084】
なお、再配置(シャッフル)により得られるチャンネル数は4以外の任意の値に設定できる。例えば枠53を3行3列にすることで9チャンネルのデータを得ることができる。また、シャッフルされる対象の画素の範囲、つまり枠53のサイズは、X方向とY方向が同一である必要はなく、元の画像データ20の状態やサイズ(縦横比など)に応じて任意に設定できる。例えば、元の画像データ20のサイズが縦1、横3の場合に枠53のサイズを3行1列にすることなども考えられる。
【0085】
シャッフルされる対象の画素の範囲のサイズは、画像データ57,58,59,60を用いた機械学習における学習効率や推論結果の質を良好にできる程度が望ましい。ただし、再配置されるチャンネル数を、機械学習の効率や効果に直接影響を及ぼさないサイズに設定することもできる。
【0086】
図5の(a)(b)において、マル数字1~マル数字32は、処理前の画像データ20のピクセルと処理後の画像データ57,58,59,60の対応関係を示す。なお、同図においてマル数字32より後のマル数字33~64は図の簡略化のため省略してある。
【0087】
図5の(a)(b)の対応関係に示すように、逆ピクセルシャッフラー処理部11eは、元の画像データ20に設定された枠53内に存在するピクセルを、新たな画像データ57,58,59,60の同一位置に再配置する。
【0088】
たとえば、図5の(a)では、再配置されるチャンネル数が4チャンネルなので、枠53を基準とした場合に、X方向及びY方向にそれぞれ1ピクセル飛ばした箇所(2ピクセル目)の各ピクセルデータが再配置後の新たな画像データ57,58,59,60としてまとめられる。
【0089】
なお、逆ピクセルシャッフラー処理部11eは、下記(設定A)(設定B)に示すように逆ピクセルシャッフラー処理の設定を行う。そのため、画一的で負荷の小さい処理を実現できる。
【0090】
(設定A)ピクセルを取り出す間隔は画像データ20のXY方向の長さの縮小倍率となる。たとえば図5では、ピクセルを取り出す間隔は2なので、画像データ20のXY方向の長さ8に対し、画像データ57,58,59,60のXY方向の長さは8×1/2=4となる。
【0091】
(設定B)ピクセルを取り出す間隔の二乗がチャンネル数になる。たとえば図5ではピクセルを取り出す間隔が2である。そのため、画像データ57,58,59,60のチャンネル数は2の二乗の4となる。この場合のチャンネル数は、上記(処理1)-(処理4)における開始位置31、32、33、34の数(図3の(a-1)(b-1)(c-1)(d-1)参照)と同価であり、元の画像データ20を処理して生成されるデータの数となる。つまり、ピクセルを取り出す間隔が決定すれば、処理後の画像データ57,58,59,60のチャンネル数が決定する。また、1の画像データ20よりも多い複数の画像データ57,58,59,60に基づいた機械学習による学習、推論を行うことができる。そのため、機械学習における学習効率や推論結果の質の向上を図ることができる。
【0092】
このような逆ピクセルシャッフラー処理により得られた画像データ57,58,59,60の総データ量、つまり総ピクセル数は、元の画像データ20の総ピクセル数と同じである。しかし、逆ピクセルシャッフラー処理により、データの基準位置(図5の(a)で、画像データ20の左上の2行2列中に存在する4つのピクセル(マル数字1,2,9,10のピクセル)毎の4つのチャンネルの画像データ57,58,59,60を得ることができる。
【0093】
なお、上記の事例では、図4において、画像データ20に単一フィルタ処理部11cによるフィルタリング処理が行われる事例を記載したが、この場合、このフィルタリング処理にはどのようなフィルタを用いられてもよい。
【0094】
例えば、単一フィルタ処理部11cは、PSDS処理部11dと同じ単一のフィルタ21でも、異なる単一のフィルタ21でも、フィルタリング処理に設定できる。また、単一フィルタ処理部11cは、複数種類のフィルタ21を1の画像データ20のフィルタリングに適用し、複数チャンネルのフィルタリングデータを生成することで、より多くのデータを入手するようにしても良い。また、単一のフィルタ21の大きさを変更するのではなく、互いにフィルタ係数が異なり、フィルタ係数が偏ったフィルタ21を用いて複数チャンネルのフィルタリングデータを生成することでもよい。これにより、より多くのデータを入手することができる。
【0095】
また、ここで用いられるフィルタ21は、ローパスフィルタ、ハイパスフィルタ、エッジ強調フィルタ、エッジ膨出フィルタ等、どのようなものでもよい。
さらに、図4に示すフィルタ21によるフィルタリング処理に替えて、畳み込み処理、プーリング処理が、逆ピクセルシャッフラー処理の前に行われるように構成されてもよい。
【0096】
[逆ピクセルシャッフラー処理の作用効果]
逆ピクセルシャッフラー処理部11eによる処理結果は、PSDS処理部11dによって、ピクセルシフトしてデータ処理された状態と等価である。そのため、逆ピクセルシャッフラー処理により、処理前の1の画像データ20の総ピクセル数と同じ総ピクセル数で、枠53に含まれるピクセルの数に依存した数の画像データ57,58,59,60を得ることができる。
【0097】
また、処理前の画像データ20と処理後の画像データ57,58,59,60のピクセル数やピクセルの状態を同一に保持できるので、処理後の画像データ57,58,59,60に処理前の画像データ20の特徴を保持させることが容易になる。そのため、処理後のデータ量が小さく元の画像データ20の特徴を多く含む画像データ57,58,59,60を用いて機械学習を行わせ、機械学習の精度を高めることができる。
【0098】
また、処理後の画像データ57,58,59,60に処理前の画像データ20のピクセル数やピクセルの状態を同一に保持させることができるので、処理後の画像データ57,58,59,60から処理前の画像データ20を容易に復元できる。
【0099】
[逆ピクセルシャッフラー処理の他の実施形態]
更に、単一フィルタリング処理、畳み込み処理、逆ピクセルシャッフラー処理を組み合わせて利用したり、単一フィルタリング処理、プーリング処理(プーリング処理手順)、逆ピクセルシャッフラー処理を組み合わせて利用したり、畳み込み処理、プーリング処理、逆ピクセルシャッフラー処理を組み合わせて利用するようにしても良い。
【0100】
例えば、上述のフィルタリング処理に替えてプーリング処理部11bによるプーリング処理が行われた画像データ20に対して、逆ピクセルシャッフラー処理部11eによる逆ピクセルシャッフラー処理が行われる構成としてもよい。また、上述のフィルタリング処理に替えて畳み込み処理部11aによる畳み込み処理が行われた画像データ20に対して、逆ピクセルシャッフラー処理部11eによる逆ピクセルシャッフラー処理が行われる構成としてもよい。
【0101】
また例えば、畳み込み処理部11a、プーリング処理部11b、単一フィルタ処理部11cのうち何れか2つ以上による処理が行われた画像データ20に対して、逆ピクセルシャッフラー処理部11eによる逆ピクセルシャッフラー処理が行われる構成としてもよい。
【0102】
また例えば、単一フィルタ処理部11cによる単一のフィルタに替えて、複数のフィルタによるフィルタリング処理が行われた画像データ20に対して、逆ピクセルシャッフラー処理部11eによる逆ピクセルシャッフラー処理が行われる構成としてもよい。また例えば、フィルタリング処理、畳み込み処理、プーリング処理以外の各種処理が行われた画像データ20に対して逆ピクセルシャッフラー処理部11eによる逆ピクセルシャッフラー処理が行われる構成としてもよい。
【0103】
[処理手順]
図6は、この実施の形態の情報処理装置1のダウンサンプル処理の処理手順を示すフローチャートである。また、図7は、この実施の形態の情報処理装置におけるダウンサンプル処理、アップサンプル処理を模式的に示す図である。なお、この処理手順に示すダウンサンプル処理に、上述の逆ピクセルシャッフラー処理を適用することも可能である。さらに、この処理手順に示すアップサンプル処理に、上述の逆ピクセルシャッフラー処理の逆処理を適用することも可能である。
【0104】
図7は、この実施の形態の情報処理装置を、CNNを用いた機械学習モデルの一例としての「U-net」に適用して処理を行う状態を示したものである。このモデルでは、複数の階層化された処理階層においてデータの処理が行われる。各階層のエンコーダー側ではダウンサンプリングが行われ、デコーダー側ではアップサンプリングが行われる。また、エンコーダー側では各層41~45において畳み込み処理が行われ、第2階層42~第5階層45では畳み込み処理に加えて前述したPSDSによるフィルタリング処理が行われる。階層が深くなるほど(図6では下方の階層になるほど)データの空間的な広がりが小さくなるが、データのチャンネル数は多くなる。図7では、第一階層41~第五階層45が形成されている。ただし階層数はこれより多くても少なくてもよい。
【0105】
以下、同図に基づいてこの実施の形態の処理手順を説明する。なお、図7に示す事例は、従来のU-netにおけるプーリング処理や畳み込み処理に代えてPSDSを用いるものとする。従来のU-netの畳み込み処理に代えてPSDSを利用した単一フィルタ処理を用いることで、より高速な演算で処理を行うことができ、またプーリング処理に代えてPSDSを利用した単一フィルタ処理を用いることで、通常のプーリング処理結果より多いチャンネル数のデータを入手することができる。
【0106】
[1.ダウンサンプル処理の手順]
[ステップS1:入力画像取得]まず、入力データ取得部10が、デジタルデータの「画像データ」としての入力画像101を取得する。この入力画像101の大きさ(ピクセル数)はどのようなものであってもよいが、一例として、この入力画像101は251×251ピクセルであるとする。なお、ここでは説明の簡単のため、入力画像101はグレースケールのデータ(ピクセル毎に1のパラメータ(白黒の濃淡)の値を有するデータ)として説明する。もし入力画像101がカラーのデータ(例えばピクセル毎に3のパラメータ(RGB)の値を有するデータ)である場合は、入力が3チャンネルとなる。
【0107】
[ステップS2:ダウンサンプル部11による畳み込み処理]
[手順2-1]畳み込み処理部11aは、入力画像101に畳み込み処理を行う。図7において畳み込み処理は出力チャンネル数に応じた数のフィルタ係数を用いて行われ、本実施の形態では64chの出力を得るため、64種類のフィルタ係数22、22、・・・2264が利用される。また、フィルタ係数22、22、・・・2264を用いて畳み込み処理(プーリング処理の場合も含む)を行うウインドウの位置を便宜的にフィルタ位置と称する。
【0108】
まず、畳み込み処理部11aは、251×251ピクセルの矩形マトリクス状の入力画像101に対し畳み込み処理を行う。畳み込み処理は、例えば3行×3列のフィルタ係数を用い、ピクセル毎の値とフィルタ係数で3行×3列の正方行列同士の積和演算を行い、その演算結果を算出する。
【0109】
この畳み込み処理を入力画像101の右上隅まで行う。ただし3行×3列のフィルタを用いているのでX方向のフィルタ出力は249となる。
【0110】
次に、畳み込み処理部11aは、フィルタ位置をY方向に1ピクセルずらして畳み込み処理を行い、その後、フィルタ位置を左から右に1ピクセル分ずつスライドさせながら順次畳み込み処理結果を得る。
【0111】
入力画像101の画素データに対して順次畳み込み処理を行い、以降、同様の畳み込み処理を入力画像101の右下隅まで繰り返す。
【0112】
ただし上述したX方向と同様、Y方向のフィルタ出力も249となる。したがって、251×251ピクセルの入力画像に対して3×3のフィルタを用いて畳み込み処理を行うと、249×249の畳み込みデータ201が得られる。
【0113】
[手順2-2]次に、畳み込み処理部11aは2つめのフィルタ係数を用いて入力画像101に上記[手順2-1]と同じ処理を行う。これにより、249×249ピクセルの畳み込みデータ202が生成される。その後、畳み込み処理に用いるフィルタ係数を順次変更し、合計64チャンネルの、249×249ピクセルの畳み込みデータ201、202、・・・264が生成される。
【0114】
なお、以下は説明を簡略化するため、特に区別の必要がある場合を除いてフィルタ係数22、22、・・・2264をフィルタ係数22100と、フィルタ係数22100を用いたフィルタ処理のための構成をフィルタ22aと、畳み込みデータ201、202、・・・264を畳み込みデータ200と、それぞれ記載する。また、以降の記載では、同一の手順にて生成された複数チャンネルのデータは、特に区別の必要がある場合を除いては上記「畳み込みデータ200」と同様に同一の符号を記載して説明する。
【0115】
[手順2-4]畳み込み処理部11aは、上記[手順2-3]で得られた249×249×64chのデータを再び畳み込み処理し、これにより、合計64チャンネルの、247×247ピクセルの畳み込みデータ200aが生成される。畳み込み処理のため、642個のフィルタ係数及び64個のバイアス値が用いられ、64個の演算結果をチャンネル毎に加算することで、出力として64chの畳み込みデータ200aを得る。
【0116】
[手順2-5]手順2-4で得られた畳み込み処理結果は記憶部15に格納され、クロップ処理部13によりそのデータの略中央部分の56×56ピクセルのデータを特徴マップ35として抽出し、64チャンネル分の特徴マップを生成し、記憶部15に格納する。
【0117】
以上[手順2-1]~[手順2-5]により、第一階層41の処理が完了する。
【0118】
[ステップS3:PSDS処理]
[手順3-1]ダウンサンプル部11のPSDS処理部11dは、[手順2-1]~[手順2-4]で生成された、合計64チャンネルの畳み込みデータ200aに対してダウンサンプリング用のフィルタ22aを用いPSDS処理を行う。この実施の形態ではPSDS処理は基準位置を含めN個の開始位置がずれたウインドウを利用し、例えば、2×2のウインドウでストライド値を2に設定することにより、第一階層41の畳み込み処理結果である247×247のデータを1/2の大きさである123×123×N(開始位置数)のデータとして生成する。
【0119】
[手順3-2]次に、PSDS処理部11dは、他の畳み込みデータに対しても上記[手順3-1]と同様の処理を行う。これにより、123×123×N×64チャンネル分のダウンサンプリングデータ300が生成される。
【0120】
[ステップS4:畳み込み処理]
[手順4-1]次に、畳み込み処理部11aは、[手順3-1][手順3-2]にて生成されたダウンサンプリングデータ300のそれぞれを畳み込み処理し、121×121×64ch×Nの畳み込みデータ371を生成する。なお、この畳み込み処理も3×3のウインドウのフィルタ22aを用いて畳み込み処理を行うため、X、Yの2辺のデータが2個ずつ削減されている。
【0121】
[手順4-2]さらに、畳み込み処理部11aは、再度畳み込み処理を実施し、119×119×64ch×N個の畳み込みデータ372が生成される。
【0122】
[手順4-3]手順4-2で得られた畳み込み処理結果は記憶部15に格納されているので、クロップ処理部13により、そのデータの略中央部分の32×32のデータを特徴マップ35として抽出し、64×Nチャンネル分の特徴マップを生成し、記憶部15に格納する。
【0123】
以上[手順3-1][手順3-2]、[手順4-1]~[手順4-3]により、第二階層42の処理が完了する。
【0124】
以後、畳み込み処理部11a、PSDS処理部11dは、[手順3-1][手順3-2]、[手順4-1]~[手順4-3]の処理を繰り返すことで、図7に示す第三階層43、第四階層44、第五階層45の処理を順次行う。
【0125】
[2.アップサンプル処理の手順]
図8は、この実施の形態のアップサンプル処理の処理手順を示すフローチャートである。以下、図7図8に基づいてアップサンプル処理の手順を説明する。
【0126】
[ステップS11:特徴マップ取得]
[手順6-1]クロップ処理部13により抽出された各階層の特徴マップが記憶部15に格納されているので、エンコーダー側からデコーダー側へのスキップコネクト(太矢印)を用いて階層毎の特徴マップを取得する。
【0127】
[ステップS12:アップサンプル部]
[手順6-2]例えば、アップサンプル部12は第五階層の畳み込み処理381の出力(7×7×64ch×Nのデータ)をアップサンプリングすることで14×14×64ch×Nのデータを得、このデータとクロップ処理部13が抽出した14×14×64ch×Nの特徴マップのデータとをマージする。アップサンプリングはアップサンプル部12のアップサンプル処理部12bで実行され、本実施の形態では2×2の逆畳み込み処理を行うことでピクセル数を2倍にしている。なお、逆畳み込み処理に代えて、ピクセルシャッフラー処理を用いてピクセル数を増やしても良い。
【0128】
[ステップS13:畳み込み処理]
[手順6-3]アップサンプル部12の畳み込み処理部12aは、クロップ&アップサンプルデータ382(14×14ピクセル、64×N+14×14ピクセル、64ch×N)のそれぞれに畳み込み処理を行い、データ383を生成する。
【0129】
[手順6-4]また、アップサンプル部12の畳み込み処理部12aは、畳み込みデータ383のそれぞれに対して、上記[手順2-1]~[手順2-4]と同様の畳み込み処理を行い、10×10ピクセル、64ch×Nの畳み込みデータ384を生成する。
【0130】
以上により、第五階層45から第四階層44までの処理が完了する。
【0131】
[ステップS11~S13:繰り返し]
[手順7]第三階層43~第一階層41のアップサンプル処理も、上記[手順6-1]~[手順6-4]と同様の手順で順次行われる。すなわち、エンコーダー側の畳み込みデータの略中央部から切り出された特徴マップを取得し、デコーダー側の畳み込みデータをアップサンプルしたものとマージし、そのマージしたデータに対して畳み込み処理を2回実施することで第三階層~第一階層のエンコーダー側のデータを生成する。
【0132】
各階層における詳細な説明は省略するが、第三階層43から第一階層41までデコードすると、52×52ピクセル、64chの畳み込みデータ393が得られる。
【0133】
[ステップS14:畳み込み処理]
[手順8]第一階層のエンコーダー側の畳み込みデータ393をアップサンプル部12の畳み込み処理部12aで1×1の畳み込みを行うことで、出力画像102を得る。本実施の形態では入力画像としてグレースケールのものを用いたため、52×52ピクセル、1chの出力画像を得るが、入力画像としてRGBのものを用いた場合には畳み込み出力は3chとなる。
【0134】
[3.フィルタ係数の設定]
[手順9]図9は、この実施の形態の情報処理装置1におけるフィルタ係数の設定の手順を示すフローチャートである。図10は、この実施の形態の情報処理装置1におけるフィルタ係数の設定を模式的に示した図である。この実施の形態では、フィルタ係数設定部14がダウンサンプル部11の各処理に用いられるフィルタ係数や、アップサンプル部12の各処理に用いられるフィルタ係数の設定を行う。なお、以下は便宜的にフィルタ係数に上記[手順2-2]の説明及び図7の説明と同じ符号を付してフィルタ係数22100と記載する。ただし、以下の説明に示すフィルタ係数22100の具体的な構成(個々の係数の値やマトリクスの大きさなど)は任意であり、上記[手順2-2]の説明及び図7の説明に示すものと同一である必要はない。
【0135】
フィルタ係数設定部14は、例えば下記に示す方法でフィルタ係数22100を設定する。
【0136】
[ステップS21:教師データとの比較]
図10の(比較1)、すなわち、出力画像102と教師データ104との比較により、エンコード側及びデコード側の各畳み込み処理に用いるフィルタ係数22100を調整する。本実施形態では、出力画像は52×52ピクセルの大きさであるので、元データ103(入力画像101に対応するデータ)の略中央部分のデータをクロップし、それを教師データとして比較する例を記載している。これにより、情報処理装置1全体として最適となるように各処理におけるフィルタ係数22100が設定される。
【0137】
なお、本実施の形態では単一フィルタ処理に用いるフィルタ係数を学習せず、フィルタ係数は固定のものとしているが、単一フィルタ処理のフィルタ係数を学習するよう構成しても良い。
【0138】
[ステップS22:生成されたデータとの比較]
図10の(比較2A)に示すように、元データ103をダウンサンプル部11でダウンサンプルし、元データ(251×251ピクセル)を1/2サイズ(ピクセル数が1/2、以下同じ。)に縮小し、そのデータの略中心部をクロップして教師データ105を生成する。なお、ダウンサンプルするにあたっては、ピクセルシフトダウンサンプル処理及び処理内容として単一フィルタ処理を選択することでピクセルシフトの開始位置数に応じたチャンネルデータが得られ、これを教師データとすることにより、より精細な比較を行うことができる。
【0139】
一方、U-netの第二階層42のクロップ&アップサンプルデータ388、畳み込みデータ389及び390のいずれかのデータを、PSDS処理にて得られた教師データのチャンネル数と合致するよう畳み込み処理を行う。畳み込み処理の結果は、前記教師データ105と比較し、各畳み込みに用いる係数や単一フィルタ処理に用いるフィルタ係数22100を調整したり、PSDS処理のウインドウ枠、ストライド値、開始位置数、開始位置などを調整したりする。なお、データ388、389、390のいずれを畳み込み処理するかは設計次第であり、生成された教師データと比較するために最適なデータを利用すればよい。
【0140】
また、第三階層43のエンコーダー側の出力(385、386、387)のいずれかを学習に用いる場合には、元データを1/4サイズ(ピクセル数1/4、以下同じ。)にPSDS処理で縮小し、縮小されたデータの略中央部をクロップして教師データ106とし、この教師データ106とエンコーダー側の出力(385、386、387)のいずれかを畳み込み処理したデータとを比較することで、より高精度な学習を行うことができる。
【0141】
元データを1/4サイズに縮小するには図示したように元データからPSDS処理で直接1/4サイズのデータを得る方法があり、この場合、PSDS処理で用いるウインドウ枠は4×4、ストライド値を4、開始位置数を16に設定する。また、PSDS処理で1/2サイズに縮小したデータをさらに、1/2サイズ縮小のPSDS処理で1/4サイズのデータを得るようにしても良い。いずれの場合であっても、元データを1/4サイズにPSDS処理で縮小した場合には16チャンネルのデータが生成され、それを教師データとして比較することで各畳み込み処理のフィルタ係数22100や、プーリング処理に用いるウインドウ枠の大きさやウインドウ枠の中で行われる演算が最適化されるように調整される。
【0142】
[処理手順の変形例]
上記処理手順は、U-netの第二階層以降の最初の処理として用いられるプーリング処理や畳み込み処理に代えてPSDS処理を用いる構成としたが、プーリング処理にPSDS処理を適用したり、畳み込み処理にPSDS処理を適用したりすることも可能である。
【0143】
[作用効果]
以上、この実施の形態においては、プーリング処理やフィルタリング処理が行われた画像データ20を新たな画像データ57,58,59,60にするにあたり、逆ピクセルシャッフラー処理を行う。すなわち、1の元の画像データ20のピクセルデータを複数の新たな画像データ57,58,59,60に再配置する。例えば、図5に示すように、画像データ20のマル数字1,2,9,10のピクセルを、画像データ57,58,59,60の1行1列目のピクセル59として再配置する。
【0144】
これにより、元の画像データ20より小さい画像データ57,58,59,60を容易に得ることができる。
【0145】
また、処理前の画像データ20と処理後の画像データ57,58,59,60のピクセル数やピクセルの状態を同一に保持できる。そのため、処理後のデータ量が小さく元の画像データ20の特徴を多く含む画像データ57,58,59,60を用いて機械学習を行わせ、機械学習の精度を高めることができる。これにより、CNNを用いた人工知能において、データ量や処理負荷が過大になるのを抑止しつつ高い精度で解析や認識を行うことが可能となる。
【0146】
また、処理後の画像データ57,58,59,60に処理前の画像データ20のピクセル数やピクセルの状態を同一に保持させることができるので、処理後の画像データ57,58,59,60から処理前の画像データ20を容易に復元できる。
【0147】
この実施の形態においては、元の画像データ20から逆ピクセルシャッフラー処理を行い、新たな画像データ57,58,59,60上に再配置を行える。そして、逆ピクセルシャッフラー処理によるピクセルの再配置を、少ないデータ量の、元データの特徴を保持できる範囲のデータごとに行うことができる。これにより、CNNを用いた人工知能において、データ量や処理負荷が過大になるのを抑止しつつ高い精度で解析や認識を行うことがより容易になる。
この実施の形態においては、画像データ20に基づいて精度の高い各種機械学習を行うことが可能となる。
【0148】
なお、上記実施の形態は本発明の例示であり、本発明がこの実施の形態のみに限定されるものではないことは、いうまでもない。
【符号の説明】
【0149】
1・・・情報処理装置
11b・・・プーリング処理部(プーリング処理手段)
11c・・・単一フィルタ処理部(単一フィルタ処理手段)
11e・・・逆ピクセルシャッフラー処理部(逆ピクセルシャッフラー手段)
20・・・画像データ(元データ)
53・・・取出範囲
57,58,59,60・・・画像データ(新たなデータ)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10