JP7316130B2 - 画像処理装置、画像処理装置の制御方法、プログラム - Google Patents

画像処理装置、画像処理装置の制御方法、プログラム Download PDF

Info

Publication number
JP7316130B2
JP7316130B2 JP2019131395A JP2019131395A JP7316130B2 JP 7316130 B2 JP7316130 B2 JP 7316130B2 JP 2019131395 A JP2019131395 A JP 2019131395A JP 2019131395 A JP2019131395 A JP 2019131395A JP 7316130 B2 JP7316130 B2 JP 7316130B2
Authority
JP
Japan
Prior art keywords
image
processing
memory
size
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019131395A
Other languages
English (en)
Other versions
JP2021015569A (ja
JP2021015569A5 (ja
Inventor
政博 有泉
ソクイ チン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2019131395A priority Critical patent/JP7316130B2/ja
Priority to US16/925,801 priority patent/US11514614B2/en
Publication of JP2021015569A publication Critical patent/JP2021015569A/ja
Publication of JP2021015569A5 publication Critical patent/JP2021015569A5/ja
Application granted granted Critical
Publication of JP7316130B2 publication Critical patent/JP7316130B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/174Segmentation; Edge detection involving the use of two or more images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Processing (AREA)
  • Complex Calculations (AREA)
  • Image Analysis (AREA)

Description

本発明は、画像処理装置、画像処理装置の制御方法、プログラムに関する。
近年、深層学習の進歩により、画像認識の精度が上がった。畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)は深層学習に用いられる手法として知られている。CNNの中に複数のレイヤがカスケードに接続されている。各レイヤの中に複数枚の特徴画像があり、学習したフィルタ係数と特徴画像の画素を用いてフィルタ処理の結果を計算する。フィルタ処理は積和演算であり、複数の乗算と累積加算を含んでいる。
レイヤの中の特徴画像(O(.))は前レイヤの中の特徴画像(I(.))と前レイヤに対応するフィルタ係数を用いて計算する。レイヤの中の1枚の特徴画像を計算するためには、前レイヤの中の複数枚の特徴画像の情報が必要である。畳み込み演算の計算式は以下の通りである。
Figure 0007316130000001
前レイヤの中の特徴画像がM枚あり、第m枚目の特徴画像はI(m)である。フィルタ係数(C1,1(m,n)~CX,Y(m,n))がX×Y個あり、特徴画像によって異なる。レイヤ2の出力画素Oi,j(n)を算出するための積和演算回数はM×X×Yである。畳み込み演算をした後に、出力画素Oi,j(n)を用いて活性化処理やプーリング等の処理を行う。CNNは積和演算の回数が多いため、携帯端末や車載機器等の組み込みシステムに適用した場合、効率的なデータ処理装置が求められている。特許文献1では、CNNの各レイヤの積和演算を共通の演算器で処理する構成が提案されている。
画像認識の精度を上げるため、CNNネットワークの中間レイヤの特徴画像を利用する手法が提案されている。非特許文献1と非特許文献2では、各レイヤの特徴画像を用いて、サイドアウトプット(Side-Output)レイヤを生成する。サイドアウトプットレイヤの中の特徴画像はレイヤによってサイズが異なることが多いため、特徴画像をサンプリングすることにより、特徴画像のサイズを出力結果に合わせる。
CNNは各レイヤの中に多数の特徴画像が存在し、この特徴画像を格納するための大きなメモリが必要となる。携帯端末や車載機器等の組み込みシステムに適用する場合、メモリサイズの削減が求められる。
特開2016-99707号公報
Saining Xie, Zhuowen Tu, "Holistically-Nested Edge Detection," in Proceedings of ICCV 2015. Hariharan B, Arbelaez P, Girshick R, Malik J.,"Object Instance Segmentation and Fine-Grained Localization Using Hypercolumns," IEEE Transactions on Pattern Analysis and Machine Intelligence (Volume: 39,Issue: 4, April 1 2017)
特許文献1に記載の手法を従来のCNNに適用した場合、共通の並列演算器を使用することにより、処理装置のコストを抑え、高速に処理することができる。ただし、複数の特徴画像を計算するためには、特徴画像をメモリに保存しておき、同じ特徴画像を何度も並列演算器に入力する必要がある。
また、非特許文献1及び2に記載のサイドアウト型のネットワークを適用しようとした場合、各レイヤの特徴画像とサイドアウトレイヤの特徴画像のサイズが異なる。よって、各レイヤの特徴画像サイズをサイドアウトレイヤの特徴画像サイズに合わせるようにサイズ変換を行う必要がある。また、サイズ変換後の特徴画像をメモリに保存しておき、並列演算器に複数回入力する場合、サイズ変換後の最大サイズの特徴画像を保存するメモリが必要となる。また、サイズ変換前の特徴画像をメモリに保存しておき、サイズ変換しながら並列演算器に複数回入力する場合、変換前の最大サイズの特徴画像を保存する必要がある。
更に、サイドアウト型ネットワークでは、サイズの拡大縮小のどちらもが発生し得る。したがって、サイズ変換前の特徴画像を保存する場合は縮小する前の最大サイズの特徴画像を、サイズ変換後の特徴画像を保存する場合は拡大した後の最大サイズの特徴画像を保存するための大きなメモリが必要になる。
そこで本発明は、画像サイズの変換を伴う画像処理において、画像を格納するためのメモリサイズの削減を可能とする技術を提供する。
上記課題を解決するための発明は、画像処理装置であって、
入力された画像の画像サイズを判定し、前記判定した画像サイズ第1のサイズより大きい場合に当該入力された画像第1のサイズに縮小処理をてから第1のメモリに記憶するよう制御し、前記判定した画像サイズが前記第1のサイズ以下の場合には、当該入力された画像を前記縮小処理をせずに第1のメモリに記憶するよう制御する制御手段と、
記第1のメモリに記憶された画像が前記第1のサイズより小さい場合には、拡大処理をしてから画像処理をし、前記第1のメモリに記憶された画像が前記第1のサイズの場合には、前記拡大処理をせずに前記画像処理をする第1の処理手段を有することを特徴とする。
本発明によれば、画像サイズの変換を伴う画像処理において、画像を格納するためのメモリサイズを削減できる。
実施形態に対応するデータ処理装置100の構成の一例を示すブロック図。 実施形態に対応するデータ処理部105の機能構成の一例を示すブロック図。 実施形態に対応する画像処理の流れを説明するための図。 実施形態に対応する処理の一例を示すフローチャート。 実施形態に対応する処理対象レイヤの構造の一例を示す図。 他の実施形態に対応するデータ処理部105の機能構成の一例を示す図。 他の実施形態に対応する処理の一例を示すフローチャート。 他の実施形態における処理順序を説明するための図。
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[実施形態1]
以下では図面を参照しながら本発明の実施形態について詳細に説明する。
<データ処理装置の構成例>
図1は、実施形態に対応するデータ処理装置100の一構成例を示すブロック図である。以下では、データ処理装置100として入力画像を処理する画像処理装置について説明するが、処理対象は画像に限らず、音声であってもよいし、その他の任意のセンサにより取得されたデータであってもよい。
入力部101は、ユーザーからの指示や、データを入力する装置で、キーボード、マウス、ポインタ装置、ボタン等を含む。データ保存部102は画像データを保存し、例えば、ハードディスク、フレキシブルディスク、CD-ROM、CD-RやDVD、メモリーカード、CFカード、スマートメディア、SDカード、メモリスティック、xDピクチャーカード、USBメモリ等で構成される。データ保存部102には画像データの他にも、プログラムやその他のデータを保存することも可能である。あるいは、後述するRAM108の一部をデータ保存部102として用いても良い。また、後述する通信部103により接続した外部機器の記憶装置を、通信部103を介して利用するように仮想的に構成しても良い。
通信部103は、機器間通信用のインタフェース(I/F)である。なお、図1では入力部101、データ保存部102、表示部104が全て1つの装置内に含まれるように示しているが、これらの部分が公知の通信方式による通信路で接続されて構成されてもよい。表示部104は、画像処理前、画像処理後の画像を表示、あるいはGUI等の画像を表示する。表示部104は、CRTや液晶ディスプレイ等で構成され、ケーブル等で接続された外部装置のディスプレイ装置を利用してもよい。更に、公知のタッチスクリーン装置のように、表示部104と入力部101が同一装置であっても良い。その場合には、タッチスクリーンによる入力を入力部101の入力として扱う。
データ処理部105は、後述する図4のフローチャートに従い、RAM108に保存された画像処理の結果を用い、後述のデータ処理(S301-S326)を実施し、データ処理された結果をデータ保存部102(またはRAM108)に出力する。データ処理された結果に基づき、CPU106が動画像(複数フレーム)についての画像処理または画像認識を行う。CPU106により処理された画像処理または画像認識の結果は、RAM108に保存される。データ処理部105は、例えば、専用ロジック回路やメモリを用いてハードウェア的に構成されてもよい。或いは、メモリに記憶されている処理プログラムをCPU等のコンピュータが実行することにより、ソフトウェア的に構成されてもよい。
CPU106は本装置全体の動作を制御する制御部として機能する。ROM107とRAM108は、CPU106が実行する処理に必要なプログラム、データ、作業領域などをCPU106に提供する。後述する処理に必要なプログラムがデータ保存部102に格納されている場合や、ROM107に格納されている場合、一旦RAM108に書き込んでから実行する。また通信部103を経由してプログラムを受信する場合、データ保存部102に一旦記録した後にRAM108に書き込むか、通信部103からRAM108に直接に書き込んでから実行される。
画像処理部109は、CPU106からのコマンドを受け、データ保存部102に書き込まれた画像データを読み出して画素値のレンジ調整を行い、その結果を再びRAM108に書き込む。
図1においては、CPUが1つ(CPU106)だけである構成だが、これを複数設けるような構成にしても良い。また、データ処理部105をCPUで構成しても良い。装置のシステム構成については、上記以外にも様々な構成要素が存在するが、本発明の主眼ではないのでその説明は省略する。
次に、図2を参照してデータ処理部105の機能構成を説明する。図2は、実施形態に対応するデータ処理部105の機能構成の一例を示す図である。データ処理部105は、第1のメモリ201、第1の積和演算部202、分岐処理部203、サンプリング処理部204、第2のメモリ205、第2の積和演算部206、サンプリングデータ制御部207、第3のメモリ208を有するように構成される。
第1のメモリ201は第1種類のデータ(画像)を保存するためのメモリであり、第2のメモリ205は第2種類のデータ(画像)を保存するためのメモリである。第1の積和演算部202は第1種類のデータに基づいて第1の積和演算結果を計算し、第2の積和演算部206は第1種類のデータと第2種類のデータに基づいて第2の積和演算結果を計算する。分岐処理部203は第1の積和演算結果をコピーし、2つに分けて出力する。サンプリング処理部204は第1の積和演算結果をサンプリングし、サンプリング結果を出力する。サンプリングデータ転送部207はサンプリング処理部204のサンプリング倍率に応じて第1の積和演算結果とサンプリング結果のデータ転送を制御する。第3のメモリは第1の積和演算結果またはサンプリング結果の一方を保存するためのメモリである。また、各処理部を制御するための図示しないデータ処理部105の全体制御部があり、各処理部は全体制御部のコマンドに基づいて動作する。
次に、図3を参照して処理対象ネットワークの構造について説明する。図3は、処理対象ネットワークの構造の例を示す図である。ネットワーク構造は、積和演算の計算量、特徴画像のサイズ、枚数、ビット数等の情報を含んでいる。図3(A)は、一般的なサイドアウトネットワークの構造の一例を示す。ここでのレイヤ数は4(レイヤ0-3)であり、それぞれのレイヤ中に複数枚の特徴画像がある。
まず、レイヤ0-3の計算について説明する。レイヤ0では、特徴画像301とフィルタ係数を用いて積和演算を行い、レイヤ1の特徴画像302を生成する。特徴画像301は入力画像である。レイヤ1では、特徴画像302とフィルタ係数を用いて積和演算をし、レイヤ2の特徴画像303を生成する。レイヤ2では、特徴画像303とフィルタ係数を用いて積和演算をし、レイヤ3の特徴画像304を生成する。
ここで、サイドアウトレイヤの計算について説明する。サイドアウトレイヤでは、レイヤ1-3の特徴画像302-304をサンプリングし、出力結果308と同じサイズのサイドアウトレイヤの特徴画像305-307を生成し、メモリに保存する。その後に、サイドアウトレイヤの特徴画像305-307とフィルタ係数を用いて積和演算をし、出力結果308を計算する。
図3(B)は本実施形態に対応するデータ処理装置100で処理する場合のサイドアウトネットワークの構造の一例を示す。図3(B)に示す構造においても、図3(A)のサイドアウトネットワークと同等レベルの結果が得られる。
レイヤ0-3の計算について説明する。レイヤ0では、特徴画像301とフィルタ係数を用いて第1の積和演算部202が第1の積和演算をし、レイヤ1の特徴画像302を生成する。特徴画像301は入力画像である。レイヤ1では、特徴画像302とフィルタ係数を用いて第1の積和演算部202が第1の積和演算をし、レイヤ2の特徴画像303を生成する。特徴画像302をサンプリング処理部204がサンプリングし、出力結果308と同じサイズの特徴画像305を生成する。特徴画像305とフィルタ係数を用いて第2の積和演算部206が第2の積和演算をし、出力結果308を計算するための中間結果309を生成する。中間結果309は、レイヤ2の特徴画像として扱われ、第2のメモリ205に保存される。
レイヤ2では、特徴画像303とフィルタ係数を用いて第1の積和演算部202が第1の積和演算をし、レイヤ3の特徴画像304を生成する。特徴画像303をサンプリング処理部204がサンプリングし、出力結果308と同じサイズの特徴画像306を生成する。特徴画像306とフィルタ係数を用いて第2の積和演算部206が第2の積和演算をし、中間結果309に基づいて出力結果308を計算するための中間結果310を生成する。中間結果310は、レイヤ3の特徴画像として扱われ、第2のメモリ205に保存される。
レイヤ3では、特徴画像304をサンプリングし、出力結果308と同じサイズの特徴画像307を生成する。特徴画像307とフィルタ係数を用いて第2の積和演算部206が第2の積和演算をし、中間結果310に基づいて出力結果308を生成する。
このように中間結果309、310を計算することによって、出力結果308の計算を分割している。サイドアウトレイヤの特徴画像305、306は、中間結果309、310を計算した後にそれぞれ破棄することができ、一般的なサイドアウトネットワークを処理する場合よりもメモリコストが小さいので組み込みシステムでの実装に向いている。
本実施形態では、積和演算と並列に動作するサンプリングの処理機構を設けており、異なるレイヤのデータを並列に処理することができる。図3(B)の例では、最初にレイヤ1の特徴画像302とレイヤ2の中間結果309を並列に計算する。次にレイヤ2の特徴画像303とレイヤ3の中間結果310を並列に計算する。最後にレイヤ3の特徴画像304と出力結果308を並列に計算する。
本実施形態では、第2の積和演算部206によって、中間結果309を部分的に順次計算する。そのため、中間結果309を計算するためにはサンプリングした特徴画像305を複数回転送する必要がある。中間結果310、出力画像308の計算においても同様である。サンプリングした特徴画像を複数回転送する必要があるため、なんらかの形で特徴画像を保存しておく必要がある。本実施形態では、サンプリング倍率に応じて、サンプリング前、サンプリング後のどちらの特徴画像をメモリに保存するか切り替えることで、メモリコストを削減する。
次に、図4を参照して、データ処理装置100が実行するデータ処理の流れを説明する。図4は、実施形態に対応するデータ処理の一例を示すフローチャートである。当該フローチャートに対応する処理はデータ処理部105により実行される。以下では、図2に示したデータ処理部105の構成と、図5に示した3つのレイヤ(レイヤ1-レイヤ3)で構成したネットワークの例に基づき、図4のフローチャートの各ステップにおける処理を説明する。
まず、S401では、データ処理部105内の全体制御部は第1種類のデータ(特徴画像)と第2種類のデータ(中間結果)の初期値をそれぞれ第1のメモリ201と第2のメモリ205とに保存する。図5の例では、第1種類のデータの解像度が120×120であり、第2種類のデータの解像度が60×60である。RAM108に保存した画像データを初期値として使用しても良い。続くS402では、全体制御部はレイヤのループを開始し、最初のレイヤを処理する。続くS403では、全体制御部は第1のメモリ201から第1種類のデータを読み出し、第1の積和演算部202に入力する。続くS404では、第1種類のデータとフィルタ係数を用いて、第1の積和演算結果を第1の積和演算部202で計算し、分岐処理部203で1つの第1の積和演算結果を2つにコピーして出力する。続くS405では、全体制御部は分岐処理部203でコピーした第1の積和演算結果を第1種類のデータとして第1のメモリ201に保存する。
続くS406では、サンプリングデータ制御部207はサンプリング処理部204のサンプリング倍率を判定し、サンプリング倍率に応じて処理を分岐する。サンプリング倍率は、第1の積和演算結果、或いは、第1種類のデータの第1のサイズと、第2の種類のデータの第2のサイズとの関係で定まる。第1のサイズは、レイヤに応じて120×120、60×60、30×30のいずれかとなる一方、第2のサイズは60×60で一定である。レイヤ1は第1種類のデータサイズが120×120であるため、第2のサイズに変換するためのサンプリング倍率は0.5となる。レイヤ2は第1種類のデータサイズが60×60であるため、サンプリング倍率は1.0となる。レイヤ3は第1種類のデータサイズが30×30であるため、第2のサイズに変換するためのサンプリング倍率は2.0となる。
サンプリング倍率が1.0未満、すなわちダウンサンプリングである場合はS407―S414の処理を行う。サンプリング倍率が1.0未満の場合はサンプリングによってサイズが縮小されるため、サンプリング後のデータを第3のメモリ208に保存する。サンプリング倍率が1.0以上の場合、すなわちアップサンプリングである場合はS415-S422の処理を行う。サンプリング倍率が1.0以上の場合はサンプリングによって画像サイズが拡大されるか、あるいは同じサイズが維持されるため、サンプリング前のデータを第3のメモリ208に保存する。
本実施形態では、第1種類のデータのサイズが第2のサイズ以下の場合に、サンプリング倍率は1.0以上となり第1の積和演算結果はそのまま第3のメモリ208に記憶される。また、第1種類のデータのサイズが第2のサイズより大きい場合、サンプリング倍率は1.0未満となり第1の積和演算結果は第2のサイズに縮小されて第3のメモリ208に記憶されることになる。
このようにサンプリング倍率に応じて第3のメモリ208に保存するデータを変更することで、第3のメモリ208の容量を削減することができる。サンプリング前、あるいはサンプリング後、どちらか一方のデータを保存する場合、サンプリング前後の最大データサイズである120×120のデータを格納する必要がある。しかし、本実施形態では、サンプリング倍率に応じて、サンプリング前後で小さい方のデータを選択して保存するため、第3のメモリ208のメモリサイズは60×60のデータを格納するだけの容量で良い。
本実施形態では、レイヤ1はサンプリング倍率は0.5となり、S407-S414の処理を行う。レイヤ2はサンプリング倍率は1.0となり、S415-S422の処理を行う。レイヤ3はサンプリング倍率は2.0となり、S415-S422の処理を行う。
本実施形態の第2の積和演算部206では、サンプリングした特徴画像1枚の入力に対して中間結果(出力結果)1枚分の積和演算を並列に行う。図5のレイヤ1を処理する場合、特徴画像の1枚を第2の積和演算部に2回入力することになる。レイヤ2、レイヤ3においても同じ特徴画像を2回ずつ入力することになる。したがって、後述する第2の積和演算ループ、S409―S414、S416-S422では、レイヤ1、レイヤ2、レイヤ3いずれも2回ループすることになる。
次に、サンプリング処理部204のサンプリング倍率が1.0未満、すなわちダウンサンプリング(画像サイズの縮小)である場合のS407-S414の処理について説明する。まず、S407では、サンプリングデータ制御部207は分岐処理部203の出力である第1の積和演算結果をサンプリング処理部204に入力してダウンサンプリングする。S408では、サンプリングデータ制御部207はサンプリング処理部204でダウンサンプリングしたデータを第3のメモリ208に保存する。続くS409では、全体制御部およびサンプリングデータ制御部207は第2の積和演算ループを開始する。続くS410では、サンプリングデータ制御部207は第3のメモリ208からダウンサンプリングした後の第1の積和演算結果を読み出し、第2の積和演算部206に入力する。続くS411では、全体制御部は第2のメモリ205から第2種類のデータを読み出し、第2の積和演算部206に入力する。
続くS412では、第2の積和演算部206で第2の積和演算結果を計算する。ここでは、ダウンサンプリングした後の第1の積和演算結果とフィルタ係数とを用いて計算した積和演算結果と、第2種類のデータとの和を計算する。続くS413では、全体制御部は第2の積和演算結果を第2種類のデータとして第2のメモリ205に保存する。続くS414では、全体制御部およびサンプリングデータ制御部207は第2の積和演算ループの終了判定を行う。現ループにおけるレイヤの、第2の積和演算が全て終了した場合、第2の積和演算を終了する。そうでない場合、S410に戻り、第2の積和演算を継続する。
次に、サンプリング処理部204のサンプリング倍率が1.0以上、すなわちアップサンプリング(画像サイズの拡大)である場合のS415-S422の処理について説明する。まず、S415では、サンプリングデータ制御部207は分岐処理部203の出力である第1の積和演算結果を第3のメモリ208に保存する。続くS416は、全体制御部およびサンプリングデータ制御部207は第2の積和演算ループを開始する。続くS417では、サンプリングデータ制御部207は第3のメモリ208から第1の積和演算結果を読み出し、サンプリング処理部204に入力する。
続くS418では、サンプリング処理部204は第1の積和演算結果をアップサンプリングし、サンプリングデータ制御部207はアップサンプリングしたデータを第2の積和演算部206に入力する。続くS419では、全体制御部は第2のメモリ205から第2種類のデータを読み出し、第2の積和演算部206に入力する。続くS420では、第2の積和演算部206で第2の積和演算結果を計算する。第2の積和演算結果は、アップサンプリングした後の第1の積和演算結果とフィルタ係数を用いて計算した積和演算結果と、第2種類のデータとの和である。続くS421では、全体制御部は第2の積和演算結果を第2種類のデータとして第2のメモリ205に保存する。続くS422では、全体制御部およびサンプリングデータ制御部207は第2の積和演算ループの終了判定を行う。現ループにおけるレイヤの、第2の積和演算が全て完了した場合、第2の積和演算を終了する。そうでない場合、S417に戻り、第2の積和演算を継続する。
以上により、第2の積和演算が終了すると、処理はS423に進む。S423では、全体制御部は第1種類のデータを第1のメモリ201から、第2種類のデータを第2のメモリ205からそれぞれ読み出し、RAM108に保存する。続くS424では、CPU106は、RAM108から第1種類のデータと第2種類のデータを読み出し、活性化処理とプーリング処理との後処理を行う。続くS425では、CPU106は活性化処理及びプーリング処理の後処理結果をデータ処理部105に転送し、データ処理部105の全体制御部は第1と第2種類のデータの処理結果をそれぞれ第1のメモリ201と第2のメモリ205に保存する。S426では、全体制御部はレイヤのループの終了判定をする。処理レイヤが最後のレイヤになった場合、データ並列処理を終了する。そうでない場合、S403に戻り、次のレイヤの処理を開始する。
次に、サンプリング処理部204における処理について説明する。本実施形態では式2に基づいてアップサンプリングを行う。
i,j =B[i/r],[j/r] ・・・(式2)
サンプリング前の特徴画像をB、サンプリング後の特徴画像をAとする。Bi,jはサンプリング前の特徴画像の水平位置i、垂直位置jの画素値を示す。Ai,jはサンプリング後の特徴画像の水平位置i、垂直位置jの画素値を示す。rはサンプリング倍率を示す整数であり、アップサンプリング時はr>=1.0である。[x]はxの小数点以下の値を切り捨てた整数値を示す。式2によれば、サンプリング後の特徴画像は、サンプリング前の特徴画像の画素を水平・垂直方向にr×r回繰り返した特徴画像となる。
本実施形態では式3に基づいてダウンサンプリングを行う。
i,j =Br'i+k,r'j+l ・・・(式3)
ここで、k、lはサンプリング位置の水平・垂直方向のオフセットを示す。r'はサンプリング倍率の逆数を示す整数であり、r'=(1/r)で計算される。式3によれば、サンプリング後の特徴画像は、サンプリング前の特徴画像の位置(k,l)を始点として間隔r'で水平・垂直方向にサンプリングした特徴画像となる。
式2、式3に基づくサンプリング処理方法の場合、サンプリング処理のためにメモリを使用する必要は無く、サンプリング前の特徴画像、またはサンプリング後の特徴画像を保存する第3のメモリだけで良い。
以上のように、本実施形態によれば、各レイヤにおいて繰り返し行われる第2の積和演算処理のためにデータを記憶するメモリにつき、メモリコストを削減が可能となる。
[実施形態2]
上記の実施形態1ではダウンサンプリング時に補間処理を行うことなく単純にサンプリングする例を示したが、サンプリング時に補間処理を行っても良い。そこで本実施形態ではダウンサンプリング時に水平方向に平均値補間を施す例を示す。本実施形態では下記の式4に基づいてダウンサンプリングを行う。ダウンサンプリング以外の処理、および構成は実施例1と同様である。
Figure 0007316130000002
式4によれば、サンプリング後の特徴画像は、サンプリング前の特徴画像に対して水平方向にタップ数r'の平均値補間を施し、垂直位置lを始点として垂直方向に間隔r'でサンプリングした特徴画像となる。サンプリング処理部への入力がラスタ順である場合、本実施形態のように水平方向の平均値補間を伴うダウンサンプリングを行ったとしても、入力されるデータの累積加算を取れば良いので、サンプリング処理自体にメモリを使う必要は無い。
よって、本実施形態においては、実施形態1におけるメモリコスト削減の効果を維持しつつ、ダウンサンプリングにおいて補間処理を行うことで処理精度を高めることができる。
[実施形態3]
実施形態2ではダウンサンプリング処理において水平方向に平均値補間する例を示したが、本実施形態では水平・垂直方向に平均値補間を施すダウンサンプリング処理を用いた例を示す。データ処理装置100の構成は実施形態1と同一であるので記載を省略する。
図6は、本実施形態に対応するデータ処理部105の構成例を示す。本実施形態では、ダウンサンプリング処理時に垂直方向に平均値補間を施すため、ダウンサンプリング後の水平方向サイズ×補間タップ数r'のサイズの第4のメモリ601を使用する。図5に示すレイヤ1,2,3を処理する場合、幅60の特徴画像を、補間タップ数2のライン数だけ持てば良いので、第4のメモリのサイズは60×2=120となる。その他の構成は図2に示したものと同様であるので、対応するブロックには同一の参照番号を付している。
図7を参照して、本実施形態におけるデータ処理装置100におけるダウンサンプリング処理の流れを説明する。当該処理は、実施形態1の図4のフローチャートにおけるS407とS408を、S701からS708で置き換えたものとして実施することができる。
まず、S701において、サンプリングデータ制御部207は第1の積和演算結果のサンプリングのラインのループを開始する。続くS702では、サンプリングデータ制御部207は第1の積和演算結果をサンプリング処理部204に入力し、サンプリング処理部204は第1の積和演算結果を水平方向に平均値補間してサンプリングする。続くS703では、サンプリングデータ制御部207は水平方向の平均値補間結果を第4のメモリ601に保存する。第4のメモリ601にr'ライン分の平均値補間結果が保存されている場合、最も古いラインのデータを上書きする。
続くS704では、サンプリングデータ制御部207は第4のメモリにr'ライン分のデータが格納されているかどうかを判定する。r'ライン分のデータが格納されている場合は、後述するS705-S707を実行する。r'ライン分のデータが格納されていない場合は、S708を実行する。S705では、サンプリングデータ制御部207は水平方向の平均補間結果r'ライン分を第4のメモリから読み出し、サンプリング処理部204に入力する。続くS706では、サンプリング処理部204は水平方向にサンプリングされたデータを、垂直方向に平均値補間してサンプリングする。続くS707では、サンプリングデータ制御部207は水平・垂直方向に平均値補間しサンプリングしたデータを、第3のメモリ208に保存する。続くS708では、サンプリングデータ制御部207は全てのラインのサンプリングの終了判定を行う。終了していた場合は、第1の積和演算結果をサンプリングし第3のメモリ208に保存する処理を終了する。そうでない場合は、S702に戻り処理を継続する。
S702では、式5に基づいて水平方向のダウンサンプリングを行う。A'は水平方向にサンプリングした特徴画像を示している。
Figure 0007316130000003
S706では、式6に基づいて垂直方向のダウンサンプリングを行う。
Figure 0007316130000004
式5、式6によれば、サンプリング後の特徴画像は、サンプリング前の特徴画像をr'×r'画素ずつ平均した特徴画像となる。
本実施形態では水平方向にダウンサンプリングしたデータを第4のメモリ601に保存したが、第3のメモリに保存しても良い。第4のメモリの代わりに第3のメモリを使用する場合、データ処理部105の構成は実施形態1、実施形態2と同様に図2で示した構成となる。このとき、第3のメモリのサイズは、実施形態1で示した第3のメモリのサイズに、本実施形態の第4のメモリのサイズを加えたものとなる。
上述の実施形態では、アップサンプリング時のサンプリング倍率rを整数、ダウンサンプリング時のサンプリング倍率の逆数r'を整数としていたが、整数倍率のサンプリングに限られるものではない。下記の式7のように任意の正数倍率rでサンプリングすることも可能である。式7によれば、サンプリング後の特徴画像は、サンプリング前の特徴画像を正数倍率rで最近傍補間した特徴画像となる。
i,j =B[i/r+0.5],[j/r+0.5] ・・・(式7)
また、上述の実施形態において、サンプリング方法は限定されるものではない。ダウンサンプリング・アップサンプリング処理時にバイリニア補間、バイキュービック補間、Lanczos補間など、種々の補間処理を施しても良い。
以上の本実施形態においては、実施形態1におけるメモリコスト削減の効果を維持しつつ、ダウンサンプリングにおいて水平、垂直方向に平均値補間処理を行うことで処理精度を更に高めることができる。
また、上述の実施形態では各レイヤの特徴画像全体を一度に処理する例を示したが、特徴画像を分割して処理しても良い。図5のネットワークを処理する際に、各レイヤの特徴画像を30×30を1つの処理単位として分割し、図8に示す部分特徴画像801~821の順番に処理することも可能である。図8の処理順序によれば、部分特徴画像805を計算した後は、部分特徴画像801~804を保持する必要が無いため、特徴画像を保存するメモリサイズを、特徴画像全体を一度に処理する場合よりも少なくすることができる。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101:入力部、102:データ保存部、103:通信部、104:表示部、105:データ処理部、106:CPU、107:ROM、108:RAM、109:画像処理部

Claims (13)

  1. 画像処理装置であって、
    入力された画像の画像サイズを判定し、前記判定した画像サイズ第1のサイズより大きい場合に当該入力された画像第1のサイズに縮小処理をてから第1のメモリに記憶するよう制御し、前記判定した画像サイズが前記第1のサイズ以下の場合には、当該入力された画像を前記縮小処理をせずに第1のメモリに記憶するよう制御する制御手段と、
    記第1のメモリに記憶された画像が前記第1のサイズより小さい場合には、拡大処理をしてから画像処理をし、前記第1のメモリに記憶された画像が前記第1のサイズの場合には、前記拡大処理をせずに前記画像処理をする第1の処理手段を有することを特徴とする画像処理装置。
  2. 前記第1の処理手段は、前記第1のメモリに記憶された画像と、第2のメモリに記憶された画像とを処理して、処理結果を前記第2のメモリに記憶し、
    前記第2のメモリに記憶された画像は、前記第1のサイズを有することを特徴とする請求項1に記載の画像処理装置。
  3. 前記第1の処理手段は、前記第1のメモリに記憶された画像に対する処理を、前記第1のメモリから該画像を繰り返し読み出して行うことを特徴とする請求項に記載の画像処理装置。
  4. 第3のメモリに記憶された画像を処理する第2の処理手段を更に備え、
    前記入力された画像は、第2の処理手段により処理された画像であることを特徴とする請求項2または3に記載の画像処理装置。
  5. 前記第2の処理手段は処理結果を前記第3のメモリに記憶し、
    前記画像処理装置は、
    前記第2のメモリに記憶された前記第1の処理手段の処理結果と、前記第3のメモリに記憶された前記第2の処理手段の処理結果とに対し、活性化処理及びプーリング処理を行う後処理手段を更に備え、
    前記後処理手段によるそれぞれの後処理結果が、前記第2のメモリ及び前記第3のメモリのうちの対応するメモリに記憶され、
    前記第2の処理手段は、前記第3のメモリに記憶された後処理結果を処理し、
    前記制御手段は、前記第2の処理手段により処理された前記後処理結果を前記入力された画像とする、ことを特徴とする請求項に記載の画像処理装置。
  6. 前記第1の処理手段、及び、前記第2の処理手段は、積和演算を実行することを特徴とする請求項に記載の画像処理装置。
  7. 前記積和演算は、畳み込みニューラルネットワークの畳み込み演算であることを特徴とする請求項に記載の画像処理装置。
  8. 画像サイズを変換する変換手段を更に備え、
    前記制御手段は、
    前記入力された画像の前記画像サイズが前記第1のサイズより大きい場合に、前記変換手段に前記入力された画像を前記第1のサイズに縮小させ、
    前記第1のメモリに記憶された画像が前記第1のサイズより小さい場合、前記第1のメモリに記憶された画像を前記第1のサイズに拡大させて、前記第1の処理手段に提供する
    ことを特徴とする、請求項1からのいずれか1項に記載の画像処理装置。
  9. 前記変換手段は、ダウンサンプリングにより前記画像サイズを縮小することを特徴とする請求項に記載の画像処理装置。
  10. 前記変換手段は、水平方向の補間処理を伴うダウンサンプリングにより前記画像サイズを縮小することを特徴とする請求項に記載の画像処理装置。
  11. 前記変換手段は、水平方向及び垂直方向の平均値補間処理を伴うダウンサンプリングにより画像サイズを縮小することを特徴とする請求項に記載の画像処理装置。
  12. 画像処理装置の制御方法であって、
    制御手段が、入力された画像の画像サイズを判定し、前記判定した画像サイズ第1のサイズより大きい場合当該入力された画像第1のサイズに縮小処理をてから第1のメモリに記憶するよう制御し、前記判定した画像サイズが前記第1のサイズ以下の場合には、当該入力された画像を前記縮小処理をせずに第1のメモリに記憶するよう制御する制御工程と、
    第1の処理手段が、前記第1のメモリに記憶された画像が前記第1のサイズより小さい場合には、拡大処理をしてから画像処理をし、前記第1のメモリに記憶された画像が前記第1のサイズの場合には、前記拡大処理をせずに前記画像処理をする第1の処理工程と、
    を含むことを特徴とする画像処理装置の制御方法。
  13. コンピュータを請求項1から11のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
JP2019131395A 2019-07-16 2019-07-16 画像処理装置、画像処理装置の制御方法、プログラム Active JP7316130B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019131395A JP7316130B2 (ja) 2019-07-16 2019-07-16 画像処理装置、画像処理装置の制御方法、プログラム
US16/925,801 US11514614B2 (en) 2019-07-16 2020-07-10 Image processing apparatus, method of controlling image processing apparatus, and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019131395A JP7316130B2 (ja) 2019-07-16 2019-07-16 画像処理装置、画像処理装置の制御方法、プログラム

Publications (3)

Publication Number Publication Date
JP2021015569A JP2021015569A (ja) 2021-02-12
JP2021015569A5 JP2021015569A5 (ja) 2022-07-27
JP7316130B2 true JP7316130B2 (ja) 2023-07-27

Family

ID=74341002

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019131395A Active JP7316130B2 (ja) 2019-07-16 2019-07-16 画像処理装置、画像処理装置の制御方法、プログラム

Country Status (2)

Country Link
US (1) US11514614B2 (ja)
JP (1) JP7316130B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005242675A (ja) 2004-02-26 2005-09-08 Seiko Epson Corp 画像サイズ縮小処理方法及び画像サイズ拡大処理方法
JP2007109204A (ja) 2005-09-15 2007-04-26 Fujitsu Ltd 画像処理装置及び画像処理方法
WO2016039167A1 (ja) 2014-09-12 2016-03-17 ソニー株式会社 画像処理装置、画像処理方法、及び、プログラム
JP7302331B2 (ja) 2019-06-26 2023-07-04 味の素株式会社 樹脂組成物

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3397670B2 (ja) * 1998-01-09 2003-04-21 キヤノン株式会社 記録装置および方法
JP2001146010A (ja) * 1999-11-18 2001-05-29 Nec Corp インクジェット記録ヘッド
US7400779B2 (en) * 2004-01-08 2008-07-15 Sharp Laboratories Of America, Inc. Enhancing the quality of decoded quantized images
JP4605715B2 (ja) * 2006-06-14 2011-01-05 Kddi株式会社 多視点画像圧縮符号化方法、装置及びプログラム
US8509565B2 (en) * 2008-12-15 2013-08-13 National Tsing Hua University Optimal multi-resolution blending of confocal microscope images
JP6365258B2 (ja) 2014-11-19 2018-08-01 株式会社デンソー 演算処理装置
US10102664B1 (en) * 2014-12-03 2018-10-16 Charles Schwab & Co., Inc. System and method for causing graphical information to be rendered
JP6777993B2 (ja) * 2016-01-29 2020-10-28 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
JP6856999B2 (ja) * 2016-09-23 2021-04-14 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
JP7016712B2 (ja) * 2018-02-02 2022-02-07 キヤノン株式会社 撮像装置、撮像装置の制御方法、およびプログラム
JP7249766B2 (ja) * 2018-12-14 2023-03-31 キヤノン株式会社 情報処理装置、システム、情報処理装置の制御方法、及び、プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005242675A (ja) 2004-02-26 2005-09-08 Seiko Epson Corp 画像サイズ縮小処理方法及び画像サイズ拡大処理方法
JP2007109204A (ja) 2005-09-15 2007-04-26 Fujitsu Ltd 画像処理装置及び画像処理方法
WO2016039167A1 (ja) 2014-09-12 2016-03-17 ソニー株式会社 画像処理装置、画像処理方法、及び、プログラム
JP7302331B2 (ja) 2019-06-26 2023-07-04 味の素株式会社 樹脂組成物

Also Published As

Publication number Publication date
JP2021015569A (ja) 2021-02-12
US20210019917A1 (en) 2021-01-21
US11514614B2 (en) 2022-11-29

Similar Documents

Publication Publication Date Title
Dai et al. Softcuts: a soft edge smoothness prior for color image super-resolution
US9652830B2 (en) Method and apparatus for performing hierarchical super-resolution of an input image
JP4162610B2 (ja) 複数の低解像度の画像を使用して解像度が向上された画像を生成するための方法
US20180253641A1 (en) Arithmetic processing apparatus and control method therefor
JP5517954B2 (ja) 変換の高速でメモリ効率の良い実施のための方法
Chen VLSI implementation of an adaptive edge-enhanced image scalar for real-time multimedia applications
JP2013518336A (ja) 入力画像から増加される画素解像度の出力画像を生成する方法及びシステム
Singh et al. Survey on single image based super-resolution—implementation challenges and solutions
WO2014114635A1 (en) Method and apparatus for performing super-resolution of single images
JP7165018B2 (ja) 情報処理装置、情報処理方法
CN108876716A (zh) 超分辨率重建方法及装置
JP7402623B2 (ja) フィルタ処理装置及びその制御方法
JP7316130B2 (ja) 画像処理装置、画像処理装置の制御方法、プログラム
WO2019090876A1 (zh) 一种基于直线扩展收缩模式的图像缩放方法
JP2005326977A (ja) 画像拡大装置、及びプログラム
CN116341630A (zh) 神经网络处理
Siva et al. A low cost high performance VLSI architecture for image scaling in multimedia applications
CN110619668B (zh) 一种图像抽象方法、装置及终端设备
KR20200143274A (ko) 데이터 처리장치 및 그 제어 방법
JP7114321B2 (ja) データ処理装置及びその方法
CN112241740A (zh) 一种特征提取方法及装置
JP2019197324A (ja) 画像処理装置、画像処理方法
CN113780300B (zh) 图像反池化方法、装置、计算机设备和存储介质
CN111626935B (zh) 像素图缩放方法、游戏内容生成方法及装置
CN112017113B (zh) 图像处理方法及装置、模型训练方法及装置、设备及介质

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220719

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220719

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230616

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230714

R151 Written notification of patent or utility model registration

Ref document number: 7316130

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151