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

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

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

特開2023-71029情報処理装置、情報処理方法、及びプログラム
<>
  • 特開-情報処理装置、情報処理方法、及びプログラム 図1
  • 特開-情報処理装置、情報処理方法、及びプログラム 図2
  • 特開-情報処理装置、情報処理方法、及びプログラム 図3
  • 特開-情報処理装置、情報処理方法、及びプログラム 図4
  • 特開-情報処理装置、情報処理方法、及びプログラム 図5
  • 特開-情報処理装置、情報処理方法、及びプログラム 図6
  • 特開-情報処理装置、情報処理方法、及びプログラム 図7
  • 特開-情報処理装置、情報処理方法、及びプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023071029
(43)【公開日】2023-05-22
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20230515BHJP
   G06N 20/00 20190101ALI20230515BHJP
   G06N 3/04 20230101ALI20230515BHJP
   G06N 3/08 20230101ALI20230515BHJP
【FI】
G06T7/00 350C
G06N20/00
G06N3/04
G06N3/08
【審査請求】有
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021183600
(22)【出願日】2021-11-10
(71)【出願人】
【識別番号】398034168
【氏名又は名称】株式会社アクセル
(74)【代理人】
【識別番号】100104776
【弁理士】
【氏名又は名称】佐野 弘
(74)【代理人】
【識別番号】100119194
【弁理士】
【氏名又は名称】石井 明夫
(72)【発明者】
【氏名】奥野 修二
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096DA02
5L096EA03
5L096EA35
5L096FA16
5L096FA62
5L096FA66
5L096FA69
5L096GA55
5L096HA11
5L096KA04
(57)【要約】
【課題】CNNを用いた人工知能において、データ量や処理負荷が過大になるのを抑止しつつ高い精度で解析や認識を行える情報処理装置を提供する。
【解決手段】情報処理装置は、元データのうちの少なくとも一部の領域に、元データに対する所定の処理を行う領域としてのフィルタやウインドウを、元データ上における最初に処理を行う位置としての開始位置として設定する開始位置設定部114と、元データ上のフィルタやウインドウの設定位置を移動させるストライド値を設定するストライド値設定部112と、フィルタやウインドウを用いた所定の処理の内容を設定する処理内容設定部115と、所定の処理を行うピクセルシフトダウンサンプル処理部11dを備え、ピクセルシフトダウンサンプル処理部11dは、開始位置を処理の始点とし、ストライド値で処理領域を移動させて複数回行う所定の処理を開始位置ごとに行う。
【選択図】図2
【特許請求の範囲】
【請求項1】
デジタルデータに対して畳み込みニューラルネットワークを用いたデータ処理を行う情報処理装置であって、
前記デジタルデータとしての元データのうちの少なくとも一部の領域に、該元データに対する所定の処理を行う領域としての処理領域を、前記元データ上における前記所定の処理を最初に行う位置としての開始位置として設定する開始位置設定手段と、
前記デジタルデータ上の前記処理領域を移動させる距離としてのストライドの大きさであるストライド値を設定するストライド値設定手段と、
前記所定の処理の内容を設定する処理内容設定手段と、
前記処理領域に対して前記処理内容設定手段で設定された前記所定の処理を行う処理実行手段とを備え、
前記開始位置設定手段は、同一の前記元データの異なる複数の位置に同一の前記処理領域を設定することで複数の前記開始位置を設定し、
前記処理実行手段は、前記開始位置を前記所定の処理の始点とし、前記ストライド値設定手段によって設定された前記ストライド値で前記元データ上の前記処理領域の位置を移動させて複数回行う前記所定の処理を、前記複数の前記開始位置ごとに行うことを特徴とする情報処理装置。
【請求項2】
前記開始位置設定手段は、前記元データ上の一の開始位置を基準位置としたときに、該基準位置に対して所定の距離だけ離れた前記元データ上の一又は複数の位置を他の開始位置として設定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記ストライド値は、前記元データが連続する次元方向の所定の移動距離として設定されることを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記処理実行手段は、処理後のデータのデータ量を前記元データのデータ量以下とするダウンサンプル処理を行うことを特徴とする請求項1乃至3の何れか一つに記載の情報処理装置。
【請求項5】
前記ダウンサンプル処理は、フィルタとしての前記処理領域に対して所定のフィルタ係数を適用して演算するフィルタリング処理を有することを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記処理実行手段は、同一の前記元データに複数の前記フィルタを用いたフィルタリング処理を行う畳み込み処理手段、及び/又は、同一の前記元データに一の前記フィルタを用いたフィルタリング処理を行う単一フィルタ処理手段、を備えたことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
機械学習の機能を有し、該機械学習によって、前記フィルタのフィルタ係数を設定するフィルタ係数設定手段を備えたことを特徴とする請求項5又は6に記載の情報処理装置。
【請求項8】
前記処理実行手段は、前記ダウンサンプル処理において、ウインドウ枠としての前記処理領域において所定の演算を行うことで前記処理領域のデータ量を減少させるプーリング処理を行うプーリング処理手段を備えたことを特徴とする請求項4乃至7の何れか一つに記載の情報処理装置。
【請求項9】
前記デジタルデータは画像データであることを特徴とする請求項1乃至8の何れか一つに記載の情報処理装置。
【請求項10】
デジタルデータに対して畳み込みニューラルネットワークを用いたデータ処理を行う情報処理装置による情報処理方法であって、
前記デジタルデータとしての元データのうちの少なくとも一部の領域に、該元データに対する所定の処理を行う領域としての処理領域を、前記元データ上における前記所定の処理を最初に行う位置としての開始位置として設定する開始位置設定手順と、
前記デジタルデータ上の前記処理領域を移動させる距離としてのストライドの大きさであるストライド値を設定させるストライド値設定手順と、
前記所定の処理の内容を設定させる処理内容設定手順と、
前記処理領域に対して前記処理内容設定手順において設定された前記所定の処理を行う処理実行手順とを備え、
前記開始位置設定手順においては、同一の前記元データの異なる複数の位置に同一の前記処理領域を設定することで複数の前記開始位置を設定し、
前記処理実行手順においては、前記開始位置を前記所定の処理の始点とし、前記ストライド値設定手順において設定された前記ストライド値で前記元データ上の前記処理領域の位置を移動させて複数回行う前記所定の処理を、前記複数の前記開始位置ごとに行うことを特徴とする情報処理装置による情報処理方法。
【請求項11】
コンピュータを、請求項1乃至9の何れか一つに記載の情報処理装置として機能させることを特徴とするプログラム。
【請求項12】
デジタルデータに対して畳み込みニューラルネットワークを用いたデータ処理を行う情報処理装置であって、
前記デジタルデータに対して単一フィルタ処理を行う単一フィルタ処理手段又はプーリング処理を行うプーリング処理手段と、
前記単一フィルタ処理手段又はプーリング処理手段の出力に対して逆ピクセルシャッフラー処理を行う逆ピクセルシャッフラー手段とを備えたことを特徴とする情報処理装置。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、畳み込みニューラルネットワーク(CNN)を用いてデータを処理する情報処理装置及び情報処理方法に関する。
【背景技術】
【0002】
近年、人工知能(AI)を用いてデータの解析や認識を行うために、畳み込みニューラルネットワーク(CNN。以下「CNN」と称する。)が多く用いられる。これらのCNNのうち、画像のセグメンテーションを推定するためのものとして、U-netと称されるネットワークが知られている。
【0003】
U-netの一般的な構成としては、非特許文献1に記載のように、エンコード側で畳み込み処理とプーリング処理とを順次行うことでダウンサンプルすると共に、エンコード側の各階層の畳み込み結果の一部を特徴マップとしてデコード側の階層に供給し、デコード側ではデータをアップサンプルすると共にエンコード側から供給された特徴マップのデータをクロップしてデータを畳み込みすることで処理が行われる。
【0004】
また、非特許文献2に記載されているように、pix2pixというモデルではU-netを利用し、画像の領域特定に利用されている。このpix2pixでは非特許文献1に開示されたU-netのプーリング処理に替えて、畳み込みを用いてダウンサンプルしている。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】OlafRonneberger、 Philipp Fischer、 andThomas Brox、“U-Net: ConvolutionalNetworks for BiomedicalImage Segmentation”、「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又は2に記載の構成に加え、前記ストライド値は、前記元データが連続する次元方向の所定の移動距離として設定されることを特徴とする。
【0011】
請求項4に記載の発明は、請求項1乃至3の何れか一つに記載の構成に加え、前記処理実行手段は、処理後のデータのデータ量を前記元データのデータ量以下とするダウンサンプル処理を行うことを特徴とする。
【0012】
請求項5に記載の発明は、請求項4に記載の構成に加え、前記ダウンサンプル処理は、フィルタとしての前記処理領域に対して所定のフィルタ係数を適用して演算するフィルタリング処理を有することを特徴とする。
【0013】
請求項6に記載の発明は、請求項5に記載の構成に加え、前記処理実行手段は、同一の前記元データに複数の前記フィルタを用いたフィルタリング処理を行う畳み込み処理手段、及び/又は、同一の前記元データに一の前記フィルタを用いたフィルタリング処理を行う単一フィルタ処理手段、を備えたことを特徴とする。
【0014】
請求項7に記載の発明は、請求項5又は6に記載の構成に加え、機械学習の機能を有し、該機械学習によって、前記フィルタのフィルタ係数を設定するフィルタ係数設定手段を備えたことを特徴とする。
【0015】
請求項8に記載の発明は、請求項4乃至7の何れか一つに記載の構成に加え、前記ダウンサンプル処理において、ウインドウ枠としての前記処理領域において所定の演算を行うことで前記処理領域のデータ量を減少させるプーリング処理を行うプーリング処理手段を備えたことを特徴とする。
【0016】
請求項9に記載の発明は、請求項1乃至8の何れか一つに記載の構成に加え、前記デジタルデータは画像データであることを特徴とする。
【0017】
請求項10に記載の発明は、デジタルデータに対して畳み込みニューラルネットワークを用いたデータ処理を行う情報処理装置による情報処理方法であって、前記デジタルデータとしての元データのうちの少なくとも一部の領域に、該元データに対する所定の処理を行う領域としての処理領域を、前記元データ上における前記所定の処理を最初に行う位置としての開始位置として設定する開始位置設定手順と、前記デジタルデータ上の前記処理領域を移動させる距離としてのストライドの大きさであるストライド値を設定させるストライド値設定手順と、前記所定の処理の内容を設定させる処理内容設定手順と、前記処理領域に対して前記処理内容設定手順において設定された前記所定の処理を行う処理実行手順とを備え、前記開始位置設定手順においては、同一の前記元データの異なる複数の位置に同一の前記処理領域を設定することで複数の前記開始位置を設定し、前記処理実行手順においては、前記開始位置を前記所定の処理の始点とし、前記ストライド値設定手順において設定された前記ストライド値で前記元データ上の前記処理領域の位置を移動させて複数回行う前記所定の処理を、前記複数の前記開始位置ごとに行うことを特徴とする。
【0018】
請求項11に記載の発明は、プログラムであって、コンピュータを、請求項1乃至8の何れか一つに記載の情報処理装置として機能させることを特徴とする。
【0019】
請求項12に記載の発明は、デジタルデータに対して畳み込みニューラルネットワークを用いたデータ処理を行う情報処理装置であって、前記デジタルデータに対して単一フィルタ処理を行う単一フィルタ処理手段又はプーリング処理を行うプーリング処理手段と、前記単一フィルタ処理手段又はプーリング処理手段の出力に対して逆ピクセルシャッフラー処理を行う逆ピクセルシャッフラー手段とを備えたことを特徴とする。
【発明の効果】
【0020】
本発明によれば、CNNを用いた人工知能において、データ量や処理負荷が過大になるのを抑止しつつ高い精度で解析や認識を行うことが可能となる。
【図面の簡単な説明】
【0021】
図1】この実施の形態の情報処理装置の一実施例を示す機能ブロック図である。
図2】この実施の形態のピクセルシフトダウンサンプル処理部の機能ブロック図である。
図3】同上情報処理装置におけるストライドの原理とピクセルシフトダウンサンプル(PSDS)の原理とを模式的に示す図である。
図4】同上情報処理装置におけるダウンサンプル処理の処理手順を示すフローチャートである。
図5】同上情報処理装置におけるダウンサンプル処理、アップサンプル処理を模式的に示す図である。
図6】同上情報処理装置におけるアップサンプル処理の処理手順を示すフローチャートである。
図7】同上情報処理装置におけるフィルタ係数の設定の手順を示すフローチャートである。
図8】同上情報処理装置におけるフィルタ係数の設定を模式的に示す図である。
【発明を実施するための形態】
【0022】
図1乃至図8に、この実施の形態に係る情報処理装置及び情報処理装置における情報処理方法を示す。以下、この発明の実施の形態について図面を参照して説明する。
【0023】
[基本構成]
まず、この実施の形態の情報処理装置の及び構成について説明する。
【0024】
図1に示す、この実施の形態の情報処理装置1は、人工知能(AI、以下単に「AI」と記載する。)を備え、AIによる各種データの解析や認識や、解析や認識に用いたデータの復元を行う。情報処理装置1は、デジタルデータに対してCNNを用いたデータ処理を行う。
【0025】
例えば、この実施の形態の情報処理装置1は、画像データのダウンサンプル処理(処理後のピクセル数を処理前のピクセル数以下とする処理)やアップサンプル処理(処理後のピクセル数を処理前のピクセル数以上とする処理)を行う。ただし、情報処理装置1がこれ以外のいかなるデータのいかなる処理に用いられてもよい。
【0026】
以下、この実施の形態では、情報処理装置1がデジタルデータとしての画像データの解析や認識、そして復元を行うものとして説明する。ただし情報処理装置1が扱うデータは画像データに限らず、例えばデジタルデータとしての音声データや、音声以外の各種デジタルデータを扱うものでもよい。
【0027】
図1に示すとおり、この実施の形態の情報処理装置1は、機能手段として、入力データ取得部10と、ダウンサンプル部11と、アップサンプル部12と、クロップ処理部13と、「フィルタ係数設定手段」としてのフィルタ係数設定部14と、記憶部15と、出力部16とを備える。ダウンサンプル部11は、前述のダウンサンプル処理のための一連の処理を行う。ダウンサンプル部11は、「畳み込み処理手段」としての畳み込み処理部11aと、「プーリング処理手段」としてのプーリング処理部11bと、「単一フィルタ処理手段」としての単一フィルタ処理部11cと、「処理実行手段」としてのピクセルシフトダウンサンプル処理部11d、「逆ピクセルシャッフラー手段」としての逆ピクセルシャッフラー処理部11eを備え、アップサンプル部12は、前述のアップサンプル処理のための一連の処理を行う。アップサンプル部12は、「畳み込み処理手段」としての畳み込み処理部12aとアップサンプル処理部12bを備えている。これらの機能手段は、いずれもハードウェアやハードウェアとソフトウェア(コンピュータプログラム等)の協働によって構成されるが、これらの機能手段のうちの少なくとも何れか一つがソフトウェアのみによって構成されてもよい。
【0028】
入力データ取得部10は、情報処理装置1における各種の処理の対象となるデータである、入力データを取得する。図1は、入力データ取得部10が「元データ」としての入力画像101を取得する状態を示している。入力データ取得部10は、ネットワーク(図示せず)等を介してデータをダウンロードすることにより、当該データを入力データとして取得してもよい。
【0029】
畳み込み処理部11aは、画像データ処理において、元データに対して畳み込み処理を行う。具体的には、畳み込み処理部11aは、入力するデータの各チャンネルにそれぞれ別のフィルタをかけ、その結果を足し合わせる(バイアス値を含めることもある)。また出力チャンネル毎に入力データに掛け合わせるフィルタ係数は変更される。したがって、入力データが3チャンネル、出力を6チャンネルとする場合には、18種類のフィルタ及び6つのバイアス値が必要であり、各フィルタ処理では積和演算処理が行われる。
【0030】
プーリング処理部11bは、データに対してデータ数を減少させるプーリング処理を行う。プーリング処理部11bはプーリングの種別を設定するプーリング処理設定機能を含んでおり、設定に応じて、任意の方法で、プーリング処理を実行することができる。プーリング処理設定機能は、例えば、maxプーリング(処理領域であるウインドウ(以下単に「ウインドウ」と称する。)の中にある最大値のデータのみを抽出して他のデータを削除する処理のこと。)や、avgプーリング(ウインドウの中に存在するデータの平均値を算出する処理のこと。)等を設定し、プーリング処理を行うことでダウンサンプリングデータを生成する。
【0031】
単一フィルタ処理部11cは単一のフィルタを用いてデータをフィルタリングする。フィルタリングの方法としては、所定のフィルタ係数と画素データとを積和演算し、フィルタリング結果としてのデジタルデータを得る。上記畳み込み処理部11aとの違いは、畳み込み処理では係数が異なる複数のフィルタ係数を用いて、例えば、64chや128ch分のデータを生成するのに対し、単一フィルタ処理部11cでは単一のフィルタ係数を用いてフィルタリングする点で相違する。したがって、後述するピクセルシフトダウンサンプル処理部11dの機能を利用しない場合には、入力と同じチャンネル数のフィルタリングデータしか得られない。
【0032】
ピクセルシフトダウンサンプル処理部11dはダウンサンプル処理におけるウインドウ枠の設定や、ストライド値の設定等を行うものであり、その詳細については後述する。また逆ピクセルシャッフラー処理部11eの説明も後述する。
【0033】
クロップ処理部13はU-netで利用されるクロップ処理を行うもので、畳み込み等が行われたデータの中央部分を切り出して特徴マップを生成する。
【0034】
アップサンプル部12の畳み込み処理部12aはダウンサンプル部11の畳み込み処理部11aと同様、入力データに対してフィルタを用いて畳み込み処理を行う。アップサンプル部12のアップサンプル処理部12bは逆畳み込み(Deconvolution)処理やピクセルシャッフラー処理等、ピクセル数を増加させる処理を行う。
【0035】
フィルタ係数設定部14は、機械学習の出力が所望の値となるようダウンサンプル部11の畳み込み処理部11a、アップサンプル部12の畳み込み処理部12a、単一フィルタ処理部11c、アップサンプル処理部12bなどで使用するフィルタ係数を設定する。
【0036】
記憶部15には、情報処理装置1により実現する機械学習のネットワークの設計情報等が記憶されていると共に、特徴マップの情報、あるいはダウンサンプル部11やアップサンプル部12の処理過程のデータ等が一時的に格納される。
【0037】
出力部16は、機械学習結果としての出力、例えば機械学習がセグメンテーションに関するものである場合には入力画像に含まれる特定の物体の場所情報が出力される。
【0038】
図2は、ピクセルシフトダウンサンプル処理部11dの機能ブロックを示す図であり、ウインドウ枠設定部111、ストライド値設定部112、開始位置数設定部113、開始位置設定部114、処理内容設定部115を備える。
【0039】
ウインドウ枠設定部111はダウンサンプル処理に用いる各種フィルタのウインドウ枠の大きさを設定し、ストライド値設定部112はフィルタ処理におけるウインドウ枠のスライド量を設定する。また開始位置数設定部113はピクセルシフトダウンサンプル処理において、各種フィルタリング処理を開始する位置数を設定し、開始位置設定部114は各種フィルタリング処理を開始する位置を設定する。処理内容設定部115はピクセルシフトダウンサンプル処理において畳み込み処理、プーリング処理、単一フィルタ処理のいずれの処理を行うかを設定する。なお、開始位置数はストライド値と相関を持たせても良く、本実施の形態ではストライド値の二乗としている。すなわち、ストライド値が2の場合、開始位置数は4、ストライド値が3の場合には開始位置数は9となる。ただし、相関を持たせることを限定するものではない。
【0040】
[ピクセルシフトダウンサンプルの原理]
図3は、この実施の形態の情報処理装置におけるダウンサンプル部11で実行されるピクセルシフトダウンサンプル(PSDS)の原理を模式的に示す図である。なお、この実施の形態においては、ピクセルシフトダウンサンプル処理部11dの各種設定が以下の状態になっている。
ウインドウ枠:2×2、ストライド値:2、開始位置数:4、処理内容設定:単一フィルタ処理。なお、開始位置設定については図3の実施形態にて説明する。
【0041】
例えば、画像データに対し、畳み込み処理に代表される各種のフィルタリング処理や、プーリング処理のようにウインドウを用いてピクセル数を減少させる、ダウンサンプルデータを得る場合を考える。
【0042】
フィルタやウインドウを画像データ上で異なる位置に複数回移動させて複数回の処理を行えば、複数の処理結果が得られる。
【0043】
また、画像データに対する処理の種類、ウインドウ枠の大きさの設定、処理の開始位置を複数用意しておけば、処理の開始位置ごとに、異なった情報を持つ複数の畳み込みデータや、異なった情報を持つ複数のプーリングデータ、異なった情報を持つ単一フィルタリング処理による複数のフィルタリングデータ等、異なった情報を持つ複数のダウンサンプルデータを生成することが可能になる。
【0044】
このように、処理対象となる元データ上で処理の開始位置をずらし、所定の処理を行うことを「ピクセルシフトダウンサンプル(PSDS)」と称する(以下単に「PSDS」と称する。)。
【0045】
図3は、ウインドウ枠が2×2、ストライド値が2(ストライド値設定手順)、開始位置数を4に設定したPSDSの処理を模式的に示している。ここでは、処理内容としてローパスフィルタを用いた単一フィルタ処理が設定されているものとする。以下4つの開始位置ごとに[処理1]~[処理4]として説明する。
【0046】
[処理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)の中に収まるという情報)が設定されている(開始位置設定手順)。
【0047】
次に、(a-2)に示すように、画像データ20のX方向(同図の左右方向。ここでは同図の右方向)にストライド値2(2データ分移動した位置)でフィルタ21をスライドさせ、次の4画素に対して同じフィルタ21で行列演算を行い、フィルタリング結果のデータを得る(処理内容設定手順、処理実行手順)。
【0048】
[処理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を単に「右位置」と称する。開始位置設定手順)。
【0049】
次に、(b-2)に示すように、画像データ20の右位置からX方向にストライド値2でフィルタ21をスライドさせ、次の4画素に対してフィルタ21で行列演算を行い、フィルタリング結果のデータを得る(ストライド値設定手順、処理内容設定手順、処理実行手順)。
【0050】
[処理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を単に「下位置」と称する。)となっている(開始位置設定手順)。
【0051】
次に、(c-2)に示すように、画像データ20の下位置からX方向(右方向)にストライド値2でフィルタ21をスライドさせ、次の4画素に対してフィルタ21で行列演算を行い、フィルタリング結果のデータを得る(ストライド値設定手順、処理内容設定手順、処理実行手順)。
【0052】
[処理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は、基準位置40に対して斜め位置(以下単に「斜め位置」と称する。)となっている(開始位置設定手順)。
【0053】
次に、(d-2)に示すように、画像データ20の斜め位置からX方向(右方向)にストライド値2でフィルタをスライドさせ、次の4画素に対してフィルタ21で行列演算を行い、フィルタリング結果のデータを得る(ストライド値設定手順、処理内容設定手順、処理実行手順)。
【0054】
上記のように開始位置が4(つまり開始位置を4つ設定すること。)に設定されている場合には、4つの開始位置に関する情報が開始位置設定部114に設定されている。
【0055】
上記[処理1]~[処理4]においては、基準位置、右位置、下位置、斜め位置を開始位置31、32、33、34とする画像データ20のフィルタリング処理において、縮小として動作する単一のフィルタが用いられる。このように単一のフィルタを用いても、画素中心がずれた複数のフィルタリング結果を得ることができる。これにより、フィルタリング処理の位置の偏りをなくすことができる。
【0056】
また、上記[処理1]~[処理4]の後は、それぞれ下記[処理5]が行われる。
【0057】
[処理5:処理の繰り返し]
上記[処理1]~[処理4]の基準位置30、右位置32、下位置33、斜め位置34を開始位置とするフィルタリング処理を、それぞれ上記と同様にフィルタ21をX方向(右方向)にストライド値2でスライドさせながら画像データ20の右端まで処理を行い、その後、それぞれ最初の開始位置31、32、33、34から画像データ20のY方向(下方向)に2ピクセルシフトした位置を新たな開始位置(図示せず)として、上記と同様に、基準位置、右位置、下位置、斜め位置を開始位置とする、画像データ20に対するフィルタ21のフィルタリング処理が行われる。
【0058】
例えば、上記[処理1]の基準位置30を開始位置31とした演算は、ストライド値2で画像データ20のY方向(下方向)に2画素分シフトした、図3に示す画素No.11、12、16、17に重なる位置を新たな開始位置(図示せず)とし、このNo.11、12、16、17の4画素を対象にフィルタ21のフィルタリングが行われ、その後、上記と同様のフィルタ21によるフィルタリング処理が繰り返される。
【0059】
上記[処理2]の右位置、上記[処理3]の下位置、上記[処理4]の斜め位置のそれぞれの開始位置32、33、34とするフィルタリングも同様に、当初の開始位置32、33、34からY方向(下方向)に2画素分シフトした位置を新たな開始位置(図示せず)として、画像データ20に対するフィルタ21によるフィルタリング処理が繰り返される。
【0060】
なお、上記[処理5]は、上記[処理1]乃至[処理4]の少なくとも何れか一つと一連の処理として行ってもよい。また、[処理5]は同一の画像データ20に対して繰り返し行ってもよい。例えば、上記画像データ20に対する[処理1]の直後に[処理5]を繰り返し行うことで、一の画像データ20全体に対して(a-1)を開始位置とするフィルタリング処理を行うことができる。また例えば、画像データ20に対する、[処理1]の直後と、[処理2]乃至[処理4]のそれぞれの直後に[処理5]を繰り返し行うことで、一の画像データ20全体に対してPSDSを用いたフィルタリング処理を行うことができる。
【0061】
上記[処理1]~[処理5]に示すように基準位置30以外に右、下、斜めにそれぞれ一画素ずらした場所を基準に画素中心を設定して畳み込み処理を行うことで、固定された1の基準位置30のみを基準にフィルタリング処理やプーリング処理を行う場合に比べ、通常の4倍のデータを得ることができ、4倍のデータを用いて学習、推論を行うことができる。そのため、従来のように基準位置が固定的なフィルタリング処理やプーリング処理を行うものと比較し、学習効率や推論結果の質の向上を図ることができる。また、従来の畳み込み処理の場合には多数のフィルタ係数を用いて処理を行う必要があるが、本発明では単一のフィルタ係数を用いながら、多くのフィルタリング処理結果が得られ、ダウンサンプル処理の精度を上げることができる。
【0062】
通常、畳み込みに用いるフィルタ係数はその種類を増やすほど精度が向上するといわれるが、本発明では単一のフィルタ係数を用いているにも関わらず、精度を向上させることができる。なお、ダウンサンプルで用いるフィルタのフィルタ係数は階層毎に同じでも異なっていても良い。
【0063】
この実施の形態では、特定の開始位置から処理が始まるフィルタリング処理によって形成される、2次元方向に連続する一のデータ群を「チャンネル」と称する。例えば、上記[処理1]~[処理5]の場合は、基準位置30、右位置、下位置、斜め位置を開始位置31、32、33、34とする4つのデータ群が形成されるので、4チャンネルのフィルタリングデータが生成されることになる。
【0064】
なお、図3に示す事例では、基準位置30に対して1画素ずれた右位置、下位置、斜め位置をそれぞれ開始位置31、32、33、34とし、それぞれの開始位置31、32、33、34からX方向(右方向)へのストライド値を2としてフィルタリング処理を行ったが、ストライドの大きさや方向はこれに限定されず、処理されたデータによる学習、推論を適切に行えるものであれば、どのようなストライドの大きさや方向であってもよい。
【0065】
上記説明では2×2のフィルタを用い、ストライド値を2に設定し、1/2の縮小(ピクセル数の減少)とした例を挙げて説明したが、例えば、3×3のフィルタを用い、ストライド値を2に設定して1/2の縮小とすれば、基準位置、右位置、下位置、斜め位置のそれぞれの開始位置はNo.7、No.8、No.12、No.13の画素位置となる。これは2×2のフィルタを用いた場合の各開始位置と0.5ピクセルずれた位置でのフィルタリング結果となるので、このように単一フィルタを複数用意して、複数チャンネルのフィルタリングデータを生成することで、より多くのデータを入手するようにしても良い。また、単一フィルタの大きさを変更するのではなく、互いにフィルタ係数が異なり、フィルタ係数が偏ったフィルタを用いて複数チャンネルのフィルタリングデータを生成することで、より多くのデータを入手するようにしても良い。単一フィルタの種類としては、上記実施の形態で説明したように、画像の縮小成分を抽出するものとしてのローパスフィルタを用いても良く、また画像の高周波成分を抽出するためのハイパスフィルタ等を利用しても良い。
【0066】
なお、上記実施の形態では2×2のフィルタを用い、開始位置を画像内の画素が配置された位置に設定したが、開始位置を画像の外部に設定し、フィルタ枠内で画素が存在しない箇所についてはパディング等の処理を行っても良い。またストライド値もX方向、Y方向で異なる値を設定しても良い。
【0067】
また、図3に示す事例では、縮小サイズを1/2にするため、ストライド値を2とし、その結果、4つのチャンネルデータを得たが、処理されたデータによる学習、推論を適切に行えるものであれば、チャンネル数は4に限定するものではない(例えば、開始位置を基準位置、右位置、下位置の3つとして、処理結果のチャンネル数を3としたり、開始位置を斜め位置のみとして処理結果のチャンネル数を1にしたりするなど。)。
【0068】
さらに、図3に示す事例では、用いるフィルタ21を2行×2列の正方行列としたが、これに限定されない。即ち、処理されたデータによる学習、推論を適切に行えるものであれば、フィルタ21を構成する行や列の数が3以上でもよいし、正方行列でなくてもよい。
【0069】
そして、上記[処理1]~[処理5]に示す原理は、単一のフィルタ係数を用いたフィルタリング処理だけでなく、畳み込み処理やプーリング処理にも適用することができる。畳み込み処理にPSDSを適用した場合、すなわち、PSDS処理部11dの処理内容設定部115に「畳み込み」を設定した場合、元来、畳み込み自体、処理計算量が大きく、PSDSを利用することでより一層の処理計算に必要な資源が必要となるが、情報量が多くなる分、より高精度な機械学習を期待することができる。また処理内容設定部115に「プーリング」を設定した場合も開始位置が異なる複数チャンネル(上記実施の形態においては4チャンネル)のプーリング結果が得られにおける。なお、畳み込み処理、プーリング処理、単一フィルタ処理のいずれにおいても、ウインドウ枠の大きさ、ストライド値、開始位置数、開始位置設定等の情報は図3の(a-1)~(d-2)に例示するもののみには限定されない。
【0070】
また、逆ピクセルシャッフラー処理(space-to-depth)による処理結果はピクセルシフトしてデータ処理した状態と等価であるため、逆ピクセルシャッフラー処理を行う前に所望のデータ処理(例えば、単一フィルタリング処理や畳み込み処理、プーリング処理)を画像の全てのピクセルに対して実施し、その後、逆ピクセルシャッフラー処理を行うことで、データ量は逆ピクセルシャッフラー処理の前後で同一であるが、データの基準位置毎のチャンネルデータを得るようにしても良い。この場合、図1に示したピクセルシフトダウンサンプル処理部11dに代えて逆ピクセルシャッフラー処理部11e(逆ピクセルシャッフラー手段)を利用することとなる。また、逆ピクセルシャッフラー処理部11eにはPSDS処理部と同様に処理内容設定部を含んでいるので、逆ピクセルシャッフラー処理を行う前の所望のデータ処理を適宜選択し、その処理されたデータを逆ピクセルシャッフラー処理することができる。更に、単一フィルタリング処理、畳み込み処理、逆ピクセルシャッフラー処理を組み合わせて利用したり、単一フィルタリング処理、プーリング処理、逆ピクセルシャッフラー処理を組み合わせて利用したり、畳み込み処理、プーリング処理、逆ピクセルシャッフラー処理を組み合わせて利用するようにしても良い。
【0071】
[処理手順]
図4は、この実施の形態の情報処理装置1のダウンサンプル処理の処理手順を示すフローチャートである。また、図5は、この実施の形態の情報処理装置におけるダウンサンプル処理、アップサンプル処理を模式的に示す図である。
【0072】
図5は、この実施の形態の情報処理装置を、CNNを用いた機械学習モデルの一例としての「U-net」に適用して処理を行う状態を示したものである。このモデルでは、複数の階層化された処理階層においてデータの処理が行われる。各階層のエンコーダー側ではダウンサンプリングが行われ、デコーダー側ではアップサンプリングが行われる。また、エンコーダー側では各層41~45において畳み込み処理が行われ、第2階層42~第5階層45では畳み込み処理に加えて前述したPSDSによるフィルタリング処理が行われる。階層が深くなるほど(図4では下方の階層になるほど)データの空間的な広がりが小さくなるが、データのチャンネル数は多くなる。図5では、第一階層41~第五階層45が形成されている。ただし階層数はこれより多くても少なくてもよい。
【0073】
以下、同図に基づいてこの実施の形態の処理手順を説明する。なお、図5に示す事例は、従来のU-netにおけるプーリング処理や畳み込み処理に代えてPSDSを用いるものとする。従来のU-netの畳み込み処理に代えてPSDSを利用した単一フィルタ処理を用いることで、より高速な演算で処理を行うことができ、またプーリング処理に代えてPSDSを利用した単一フィルタ処理を用いることで、通常のプーリング処理結果より多いチャンネル数のデータを入手することができる。
【0074】
[1.ダウンサンプル処理の手順]
[ステップS1:入力画像取得]まず、入力データ取得部10が、デジタルデータの「画像データ」としての入力画像101を取得する。この入力画像101の大きさ(ピクセル数)はどのようなものであってもよいが、一例として、この入力画像101は251×251ピクセルであるとする。なお、ここでは説明の簡単のため、入力画像101はグレースケールのデータ(ピクセル毎に1のパラメータ(白黒の濃淡)の値を有するデータ)として説明する。もし入力画像101がカラーのデータ(例えばピクセル毎に3のパラメータ(RGB)の値を有するデータ)である場合は、入力が3チャンネルとなる。
【0075】
[ステップS2:ダウンサンプル部11による畳み込み処理]
[手順2-1]畳み込み処理部11aは、入力画像101に畳み込み処理を行う。図5において畳み込み処理は出力チャンネル数に応じた数のフィルタ係数を用いて行われ、本実施の形態では64chの出力を得るため、64種類のフィルタ係数22、22、・・・2264が利用される。また、フィルタ係数22、22、・・・2264を用いて畳み込み処理(プーリング処理の場合も含む)を行うウインドウの位置を便宜的にフィルタ位置と称する。
【0076】
まず、畳み込み処理部11aは、251×251ピクセルの矩形マトリクス状の入力画像101に対し畳み込み処理を行う。畳み込み処理は、例えば3行×3列のフィルタ係数を用い、ピクセル毎の値とフィルタ係数で3行×3列の正方行列同士の積和演算を行い、その演算結果を算出する。
【0077】
この畳み込み処理を入力画像101の右上隅まで行う。ただし3行×3列のフィルタを用いているのでX方向のフィルタ出力は249となる。
【0078】
次に、畳み込み処理部11aは、フィルタ位置をY方向に1ピクセルずらして畳み込み処理を行い、その後、フィルタ位置を左から右に1ピクセル分ずつスライドさせながら順次畳み込み処理結果を得る。
【0079】
入力画像101の画素データに対して順次畳み込み処理を行い、以降、同様の畳み込み処理を入力画像101の右下隅まで繰り返す。
【0080】
ただし上述したX方向と同様、Y方向のフィルタ出力も249となる。したがって、251×251ピクセルの入力画像に対して3×3のフィルタを用いて畳み込み処理を行うと、249×249の畳み込みデータ201が得られる。
【0081】
[手順2-2]次に、畳み込み処理部11aは2つめのフィルタ係数を用いて入力画像101に上記[手順2-1]と同じ処理を行う。これにより、249×249ピクセルの畳み込みデータ202が生成される。その後、畳み込み処理に用いるフィルタ係数を順次変更し、合計64チャンネルの、249×249ピクセルの畳み込みデータ201、202、・・・264が生成される。
【0082】
なお、以下は説明を簡略化するため、特に区別の必要がある場合を除いてフィルタ係数22、22、・・・2264をフィルタ係数22100と、フィルタ係数22100を用いたフィルタ処理のための構成をフィルタ22aと、畳み込みデータ201、202、・・・264を畳み込みデータ200と、それぞれ記載する。また、以降の記載では、同一の手順にて生成された複数チャンネルのデータは、特に区別の必要がある場合を除いては上記「畳み込みデータ200」と同様に同一の符号を記載して説明する。
【0083】
[手順2-4]畳み込み処理部11aは、上記[手順2-3]で得られた249×249×64chのデータを再び畳み込み処理し、これにより、合計64チャンネルの、247×247ピクセルの畳み込みデータ200aが生成される。畳み込み処理のため、642個のフィルタ係数及び64個のバイアス値が用いられ、64個の演算結果をチャンネル毎に加算することで、出力として64chの畳み込みデータ200aを得る。
【0084】
[手順2-5]手順2-4で得られた畳み込み処理結果は記憶部15に格納され、クロップ処理部13によりそのデータの略中央部分の56×56ピクセルのデータを特徴マップ35として抽出し、64チャンネル分の特徴マップを生成し、記憶部15に格納する。
【0085】
以上[手順2-1]~[手順2-5]により、第一階層41の処理が完了する。
【0086】
[ステップS3:PSDS処理]
[手順3-1]ダウンサンプル部11のピクセルシフトダウンサンプル処理部11dは、[手順2-1]~[手順2-4]で生成された、合計64チャンネルの畳み込みデータ200aに対してダウンサンプリング用のフィルタ22aを用いPSDS処理を行う。この実施の形態ではPSDS処理は基準位置を含めN個の開始位置がずれたウインドウを利用し、例えば、2×2のウインドウでストライド値を2に設定することにより、第一階層41の畳み込み処理結果である247×247のデータを1/2の大きさである123×123×N(開始位置数)のデータとして生成する。
【0087】
[手順3-2]次に、ピクセルシフトダウンサンプル処理部11dは、他の畳み込みデータに対しても上記[手順3-1]と同様の処理を行う。これにより、123×123×N×64チャンネル分のダウンサンプリングデータ300が生成される。
【0088】
[ステップS4:畳み込み処理]
[手順4-1]次に、畳み込み処理部11aは、[手順3-1][手順3-2]にて生成されたダウンサンプリングデータ300のそれぞれを畳み込み処理し、121×121×64ch×Nの畳み込みデータ371を生成する。なお、この畳み込み処理も3×3のウインドウのフィルタ22aを用いて畳み込み処理を行うため、X、Yの2辺のデータが2個ずつ削減されている。
【0089】
[手順4-2]さらに、畳み込み処理部11aは、再度畳み込み処理を実施し、119×119×64ch×N個の畳み込みデータ372が生成される。
【0090】
[手順4-3]手順4-2で得られた畳み込み処理結果は記憶部15に格納されているので、クロップ処理部13により、そのデータの略中央部分の32×32のデータを特徴マップ35として抽出し、64×Nチャンネル分の特徴マップを生成し、記憶部15に格納する。
【0091】
以上[手順3-1][手順3-2]、[手順4-1]~[手順4-3]により、第二階層42の処理が完了する。
【0092】
以後、畳み込み処理部11a、ピクセルシフトダウンサンプル処理部11dは、[手順3-1][手順3-2]、[手順4-1]~[手順4-3]の処理を繰り返すことで、図5に示す第三階層43、第四階層44、第五階層45の処理を順次行う。
【0093】
[2.アップサンプル処理の手順]
図6は、この実施の形態のアップサンプル処理の処理手順を示すフローチャートである。以下、図5図6に基づいてアップサンプル処理の手順を説明する。
【0094】
[ステップS11:特徴マップ取得]
[手順6-1]クロップ処理部13により抽出された各階層の特徴マップが記憶部15に格納されているので、エンコーダー側からデコーダー側へのスキップコネクト(太矢印)を用いて階層毎の特徴マップを取得する。
【0095】
[ステップS12:アップサンプル部]
[手順6-2]例えば、アップサンプル部12は第五階層の畳み込み処理381の出力(7×7×64ch×Nのデータ)をアップサンプリングすることで14×14×64ch×Nのデータを得、このデータとクロップ処理部13が抽出した14×14×64ch×Nの特徴マップのデータとをマージする。アップサンプリングはアップサンプル部12のアップサンプル処理部12bで実行され、本実施の形態では2×2の逆畳み込み処理を行うことでピクセル数を2倍にしている。なお、逆畳み込み処理に代えて、ピクセルシャッフラー処理を用いてピクセル数を増やしても良い。
【0096】
[ステップS13:畳み込み処理]
[手順6-3]アップサンプル部12の畳み込み処理部12aは、クロップ&アップサンプルデータ382(14×14ピクセル、64×N+14×14ピクセル、64ch×N)のそれぞれに畳み込み処理を行い、データ383を生成する。
【0097】
[手順6-4]また、アップサンプル部12の畳み込み処理部12aは、畳み込みデータ383のそれぞれに対して、上記[手順2-1]~[手順2-4]と同様の畳み込み処理を行い、10×10ピクセル、64ch×Nの畳み込みデータ384を生成する。
【0098】
以上により、第五階層45から第四階層44までの処理が完了する。
【0099】
[ステップS11~S13:繰り返し]
[手順7]第三階層43~第一階層41のアップサンプル処理も、上記[手順6-1]~[手順6-4]と同様の手順で順次行われる。すなわち、エンコーダー側の畳み込みデータの略中央部から切り出された特徴マップを取得し、デコーダー側の畳み込みデータをアップサンプルしたものとマージし、そのマージしたデータに対して畳み込み処理を2回実施することで第三階層~第一階層のエンコーダー側のデータを生成する。
【0100】
各階層における詳細な説明は省略するが、第三階層43から第一階層41までデコードすると、52×52ピクセル、64chの畳み込みデータ393が得られる。
【0101】
[ステップS14:畳み込み処理]
[手順8]第一階層のエンコーダー側の畳み込みデータ393をアップサンプル部12の畳み込み処理部12aで1×1の畳み込みを行うことで、出力画像102を得る。本実施の形態では入力画像としてグレースケールのものを用いたため、52×52ピクセル、1chの出力画像を得るが、入力画像としてRGBのものを用いた場合には畳み込み出力は3chとなる。
【0102】
[3.フィルタ係数の設定]
[手順9]図7は、この実施の形態の情報処理装置1におけるフィルタ係数の設定の手順を示すフローチャートである。図8は、この実施の形態の情報処理装置1におけるフィルタ係数の設定を模式的に示した図である。この実施の形態では、フィルタ係数設定部14がダウンサンプル部11の各処理に用いられるフィルタ係数や、アップサンプル部12の各処理に用いられるフィルタ係数の設定を行う。なお、以下は便宜的にフィルタ係数に上記[手順2-2]の説明及び図5の説明と同じ符号を付してフィルタ係数22100と記載するが、以下の説明に示すフィルタ係数22100の具体的な構成(個々の係数の値やマトリクスの大きさなど)は任意であり、上記[手順2-2]の説明及び図5の説明に示すものと同一である必要はない。
【0103】
フィルタ係数設定部14は、例えば下記に示す方法でフィルタ係数22100を設定する。
【0104】
[ステップS21:教師データとの比較]
図8の(比較1)、すなわち、出力画像102と教師データ104との比較により、エンコード側及びデコード側の各畳み込み処理に用いるフィルタ係数22100を調整する。本実施形態では、出力画像は52×52ピクセルの大きさであるので、元データ103(入力画像101に対応するデータ)の略中央部分のデータをクロップし、それを教師データとして比較する例を記載している。これにより、情報処理装置1全体として最適となるように各処理におけるフィルタ係数22100が設定される。
【0105】
なお、本実施の形態では単一フィルタ処理に用いるフィルタ係数を学習せず、フィルタ係数は固定のものとしているが、単一フィルタ処理のフィルタ係数を学習するよう構成しても良い。
【0106】
[ステップS22:生成されたデータとの比較]
図8の(比較2A)に示すように、元データ103をダウンサンプル部11でダウンサンプルし、元データ(251×251ピクセル)を1/2サイズ(ピクセル数が1/2、以下同じ。)に縮小し、そのデータの略中心部をクロップして教師データ105を生成する。なお、ダウンサンプルするにあたっては、ピクセルシフトダウンサンプル処理及び処理内容として単一フィルタ処理を選択することでピクセルシフトの開始位置数に応じたチャンネルデータが得られ、これを教師データとすることにより、より精細な比較を行うことができる。
【0107】
一方、U-netの第二階層42のクロップ&アップサンプルデータ388、畳み込みデータ389及び390のいずれかのデータを、PSDS処理にて得られた教師データのチャンネル数と合致するよう畳み込み処理し、それを前記教師データ105と比較し、各畳み込みに用いる係数や単一フィルタ処理に用いるフィルタ係数22100を調整したり、PSDS処理のウインドウ枠、ストライド値、開始位置数、開始位置などを調整したりする。なお、データ388、389、390のいずれを畳み込み処理するかは設計次第であり、生成された教師データと比較するために最適なデータを利用すればよい。
【0108】
また、第三階層43のエンコーダー側の出力(385、386、387)のいずれかを学習に用いる場合には、元データを1/4サイズ(ピクセル数1/4、以下同じ。)にPSDS処理で縮小し、縮小されたデータの略中央部をクロップして教師データ106とし、この教師データ106とエンコーダー側の出力(385、386、387)のいずれかを畳み込み処理したデータとを比較することで、より高精度な学習を行うことができる。
【0109】
元データを1/4サイズに縮小するには図示したように元データからPSDS処理で直接1/4サイズのデータを得る方法があり、この場合、PSDS処理で用いるウインドウ枠は4×4、ストライド値を4、開始位置数を16に設定する。また、PSDS処理で1/2サイズに縮小したデータをさらに、1/2サイズ縮小のPSDS処理で1/4サイズのデータを得るようにしても良い。いずれの場合であっても、元データを1/4サイズにPSDS処理で縮小した場合には16チャンネルのデータが生成され、それを教師データとして比較することで各畳み込み処理のフィルタ係数22100や、プーリング処理に用いるウインドウ枠の大きさやウインドウ枠の中で行われる演算が最適化されるように調整される。
【0110】
[処理手順の変形例]
上記処理手順は、U-netの第二階層以降の最初の処理として用いられるプーリング処理や畳み込み処理に代えてPSDS処理を用いる構成としたが、プーリング処理にPSDS処理を適用したり、畳み込み処理にPSDS処理を適用したりすることも可能である。
【0111】
[作用効果]
以上、この実施の形態においては、元データ上の一の開始位置31を基準位置30としたときに、基準位置30に対して所定の距離(たとえば1ピクセル)だけ離れた元データ上の位置(例えば右位置、下位置、斜め位置)を他の開始位置32、33、34として設定することにより、単一又は少ない数のフィルタ21,22aを用いても、画素中心がずれた複数のフィルタリング処理の結果や、プーリング処理の結果を得ることができる。これにより、畳み込み処理や、プーリング処理の位置の偏りをなくすことができ、機械学習の精度を高めることができる。
【0112】
この実施の形態においては、基準位置30に対して所定の距離だけ離れた元データ上の複数の位置を他の開始位置32、33、34として設定することにより、画素中心がずれた複数のフィルタリング処理の結果や、プーリング処理の結果を、簡易な処理で的確に偏りのない状態で行うことができる。これにより、ダウンサンプル処理やアップサンプル処理を機械学習を用いて行う際に、高い精度で処理を行うことが可能となる。
【0113】
この実施の形態においては、フィルタ21,22aを、ストライド処理によって、元データ上を移動させながら、畳み込み処理やプーリング処理を行う処理領域を設定することにより、フィルタ21,22aを用いた元データに対する処理を、元データの広い範囲にわたって、処理領域の偏在を抑止しながら適切に行うことができ、機械学習の精度を高めることができる。
【0114】
この実施の形態においては、ダウンサンプル処理やフィルタリング処理等の処理を、元データの広い範囲にわたって、処理領域の偏在を抑止しながら適切に行うことができる。これにより、CNNを用いた人工知能において、抽出する情報量を落とさず、かつ少ない計算で正確なダウンサンプルを行うことができる。そして、CNNを用いた人工知能において、データ量や処理負荷が過大になるのを抑止しつつ高い精度で解析や認識を行うことが可能となる。
【0115】
この実施の形態においては、フィルタ21,22aを用いた畳み込み処理や、ウインドウ23を用いたプーリング処理の位置の偏りをなくすことができ、機械学習の精度を高めることができる。
【0116】
この実施の形態においては、同一の前記元データに複数の前記フィルタを用いたフィルタリング処理を行う場合、及び/又は、同一の前記元データに一の前記フィルタを用いたフィルタリング処理を行う場合において、元データの広い範囲にわたって、処理領域の偏在を抑止しながら適切に行うことができる。これにより、CNNを用いた人工知能において、抽出する情報量を落とさず、かつ少ない計算で正確なダウンサンプルを行うことができる。
【0117】
この実施の形態においては、元データ上の広い範囲から取得位置の偏在のないデータを取得し、取得されたデータに基づいて精度の高い機械学習を行い、処理精度の高いフィルタ係数22100を設定することができる。
【0118】
この実施の形態においては、機械学習に基づいてアップサンプル処理を行う構成において、簡易な構成によって高い精度のアップサンプル処理を実現できる。
【0119】
この実施の形態においては、画像データに基づいて精度の高い各種機械学習を行うことが可能となる。
【0120】
なお、上記実施の形態は本発明の例示であり、本発明がこの実施の形態のみに限定されるものではないことは、いうまでもない。
【符号の説明】
【0121】
1・・・情報処理装置
11・・・ダウンサンプル部
11a・・・畳み込み処理部(畳み込み処理手段)
11b・・・プーリング処理部(プーリング処理手段)
11c・・・単一フィルタ処理部(単一フィルタ処理手段)
11d・・・ピクセルシフトダウンサンプル処理部、PSDS処理部(処理実行手段)
11e・・・逆ピクセルシャッフラー処理部(逆ピクセルシャッフラー手段)
12・・・アップサンプル部
12a・・・畳み込み処理部(畳み込み処理手段)
12b・・・アップサンプル処理部
13・・・クロップ処理部
14・・・フィルタ係数設定部(フィルタ係数設定手段)
20・・・画像データ(元データ)
21,22a・・・フィルタ(ウインドウ枠)
22,22,・・・,2264,22100・・・フィルタ係数
30・・・基準位置
31、32、33、34・・・開始位置
101・・・入力画像
111・・・ウインドウ枠設定部
112・・・ストライド値設定部(ストライド値設定手段)
113・・・開始位置数設定部
114・・・開始位置設定部(開始位置設定手段)
115・・・処理内容設定部(処理内容設定手段)
図1
図2
図3
図4
図5
図6
図7
図8