JP2023156864A - 画像処理装置、画像処理方法 - Google Patents

画像処理装置、画像処理方法 Download PDF

Info

Publication number
JP2023156864A
JP2023156864A JP2022066493A JP2022066493A JP2023156864A JP 2023156864 A JP2023156864 A JP 2023156864A JP 2022066493 A JP2022066493 A JP 2022066493A JP 2022066493 A JP2022066493 A JP 2022066493A JP 2023156864 A JP2023156864 A JP 2023156864A
Authority
JP
Japan
Prior art keywords
feature
image
image processing
feature map
template
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.)
Pending
Application number
JP2022066493A
Other languages
English (en)
Inventor
政美 加藤
Masami Kato
ソクイ チン
Tsewei Chen
しおり 脇野
Shiori Wakino
幹 吉永
Motoki Yoshinaga
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 JP2022066493A priority Critical patent/JP2023156864A/ja
Priority to US18/192,201 priority patent/US20230334820A1/en
Priority to CN202310391442.2A priority patent/CN116916143A/zh
Publication of JP2023156864A publication Critical patent/JP2023156864A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/61Control of cameras or camera modules based on recognised objects
    • H04N23/611Control of cameras or camera modules based on recognised objects where the recognised objects include parts of the human body
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • 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/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • 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/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Signal Processing (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)

Abstract

Figure 2023156864000001
【課題】 撮影姿勢の変動に効率的に対応可能な相関演算を可能にするための技術を提供すること。
【解決手段】 第1撮影画像の撮影姿勢を示す第1姿勢情報に基づく第1配列で設定されたフィルタ係数を該第1撮影画像に適用して第1特徴マップを生成し、前記第1特徴マップに基づいて対象物に対応するテンプレート特徴を取得し、該テンプレート特徴を前記第1姿勢情報に基づく配列で登録する。第2撮影画像の撮影姿勢を示す第2姿勢情報に基づく第2配列で設定されたフィルタ係数を該第2撮影画像に適用して第2特徴マップを生成し、前記第2特徴マップと、前記登録されたテンプレート特徴を前記第2姿勢情報に基づく配列で設定されたテンプレート特徴と、の相関演算を行い、前記相関演算の結果に基づいて前記第2撮影画像から前記対象物を検出する。
【選択図】 図1

Description

本発明は、画像処理技術に関するものである。
コンボリューショナルニューラルネットワーク(以下CNNと略記する)に代表される階層的な演算手法(深層学習技術に基づくパターン認識手法)が認識対象の変動に対して頑健なパターン認識手法として注目されている。例えば、非特許文献1では様々な応用例・実装例が開示されている。
CNNの応用例として、CNNにより算出した特徴量間の相互相関を利用した物体追尾処理方法が提案されている(非特許文献2など)。一方、高い演算コストを要するCNNを高速に処理するための専用処理装置が提案されている(特許文献1など)。
特開2019-74967号公報
Yann LeCun, Koray Kavukvuoglu and Clement Farabet: Convolutional Networks and Applications in Vision, Proc. International Symposium on Circuits and Systems (ISCAS’10), IEEE, 2010, Luca Bertinetto, Jack Valmadre, Joao F. Henriques, Andrea Vedaldi, Philip H. S. Torr:Fully-Convolutional Siamese Networks for Object Tracking、ECCV 2016 Workshops
非特許文献2に開示の追尾処理方法では、CNNの係数の代わりに対象物のCNN特徴量を与えて畳み込み演算処理を実行することで、CNN特徴量間の高精度な相互相関値を算出する。画像における異なるフレーム間の局所的な相互相関値を利用することで、動画像において特定の物体を追尾する等の応用に適用することが可能である。
一方、追尾処理においては、撮影装置の姿勢(正立撮影、縦撮り撮影、逆撮り撮影)に応じて、対象物の画角内の向きが大きく変わる場合がある。このような場合、撮影装置の姿勢に応じて入力画像を回転して処理することで、撮影装置の姿勢によらず追尾処理を継続することができる。
しかしながら、入力画像の回転処理を装置で実行させると、処理時間が増加する・処理のための大きなバッファメモリが必要となる等、廉価なシステムにおいては処理コストの増加が問題となる。本発明では、撮影姿勢の変動に効率的に対応可能な相関演算を可能にするための技術を提供する。
本発明の一様態は、第1撮影画像の撮影姿勢を示す第1姿勢情報に基づく第1配列で設定されたフィルタ係数を該第1撮影画像に適用して第1特徴マップを生成する第1生成手段と、前記第1特徴マップに基づいて対象物に対応するテンプレート特徴を取得し、該テンプレート特徴を前記第1姿勢情報に基づく配列で登録する登録手段と、第2撮影画像の撮影姿勢を示す第2姿勢情報に基づく第2配列で設定されたフィルタ係数を該第2撮影画像に適用して第2特徴マップを生成する第2生成手段と、前記第2特徴マップと、前記登録されたテンプレート特徴を前記第2姿勢情報に基づく配列で設定されたテンプレート特徴と、の相関演算を行う演算手段と、前記相関演算の結果に基づいて前記第2撮影画像から前記対象物を検出する検出手段とを備えることを特徴とする。
本発明の構成によれば、撮影姿勢の変動に効率的に対応可能な相関演算を可能にする。
相関演算部201のハードウェア構成例を示すブロック図。 画像処理装置のハードウェア構成例を示すブロック図。 演算処理部102の動作を示すブロック図。 演算処理部102および変換処理部105が処理するCNNの動作を示す図。 特徴マップからのテンプレート特徴の取得を示す図。 撮影姿勢が変わる場合における従来のテンプレート特徴の抽出及び相関演算を示す図。 撮影姿勢が変わる場合における第1の実施形態に係るテンプレート特徴の抽出及び相関演算を示す図。 回転処理部107の構成例を示すブロック図。 バッファ103におけるメモリ領域の構成例を示す図。 画像処理装置の動作を示すフローチャート。 ラインバッファを利用して処理する場合のCNNの特徴面の例を模式的に説明する図。
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[第1の実施形態]
本実施形態に係る画像処理装置は、第1撮影画像の撮影姿勢を示す第1姿勢情報に基づく第1配列で設定されたフィルタ係数を該第1撮影画像に適用して第1特徴マップを生成し、前記第1特徴マップに基づいて対象物に対応するテンプレート特徴を取得し、該テンプレート特徴を前記第1姿勢情報に基づく配列で登録する。そして画像処理装置は、第2撮影画像の撮影姿勢を示す第2姿勢情報に基づく第2配列で設定されたフィルタ係数を該第2撮影画像に適用して第2特徴マップを生成し、前記第2特徴マップと、前記登録されたテンプレート特徴を前記第2姿勢情報に基づく配列で設定されたテンプレート特徴と、の相関演算を行い、前記相関演算の結果に基づいて前記第2撮影画像から前記対象物を検出する。以下では、このような画像処理装置の一例について説明する。
先ず、本実施形態に係る画像処理装置のハードウェア構成例について、図2のブロック図を用いて説明する。本実施形態に係る画像処理装置には、静止画像や動画像を撮像可能な撮像装置、スマートフォン、該撮像装置が搭載されたタブレット端末装置やパーソナルコンピュータ、などのデバイスが適用可能である。
画像入力部202は、光学系、CCD(Charge-Coupled Devices)又はCMOS(Complimentary Metal Oxide Semiconductor)センサ等の光電変換デバイス、該光学系や該光電変換デバイスの動作制御を行うドライバー回路、A/Dコンバータ、画像処理回路等を有する撮影部である。外界の光は光学系を透過して光電変換デバイスに入光し、該光電変換デバイスは該入光した光に応じてアナログ画像信号を出力し、該アナログ画像信号はA/Dコンバータによってディジタル画像信号に変換される。該ディジタル画像信号は画像処理回路にてデモザイク処理、色処理などの処理を経て撮影画像に変換される。つまり画像入力部202は、撮影画像を入力画像として取得する。
取得部210は、自身の姿勢を画像処理装置の姿勢として計測する姿勢センサを有し、該姿勢センサにより計測された姿勢を示す姿勢情報を出力する。本実施形態では一例として、取得部210は、姿勢センサにより計測された姿勢が、撮影部の光軸に直交する4方向のうち何れの方向であるかを示す姿勢情報を取得して出力する。つまり、取得部210は、対象物に対する撮影部の向き(正立、縦持ち、逆持ち)に関する情報を取得する。つまり、撮影部の向きとは、ユーザの該画像処理装置の保持方向に対応し、正立撮影、縦撮り撮影、逆撮り撮影のいずれかに対応する。
相関演算部201は、画像入力部202が取得した入力画像に基づいてテンプレート特徴を取得して登録するための登録処理、画像入力部202が取得した入力画像と該登録されたテンプレート特徴とに基づく相関演算処理、などの各種の処理を行う。
CPU(Central Prosessing Unit)203は、ROM(Read Only Memory)204やRAM(Random Access Memory)205に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりCPU203は、画像処理装置全体の動作制御を行うと共に、画像処理装置が行うものとして説明する各種の処理を実行もしくは制御する。
ROM204には、画像処理装置の設定データ、画像処理装置の起動に係るコンピュータプログラムやデータ、画像処理装置の基本動作に係るコンピュータプログラムやデータ、などが格納されている。またROM204には、画像処理装置が行うものとして説明する各種の処理をCPU203に実行もしくは制御させるためのコンピュータプログラムやデータも格納されている。
RAM205は、画像入力部202から入力された入力画像を格納するためのエリア、取得部210が取得した姿勢情報を格納するためのエリア、相関演算部201から出力されたデータを格納するためのエリア、を有する。さらにRAM205は、ROM204からロードされたコンピュータプログラムやデータを格納するためのエリア、CPU203が各種の処理を実行する際に用いるワークエリア、を有する。このようにRAM205は、各種のエリアを適宜提供することができる。RAM205は、たとえば、大容量なDRAM(Dynamic Access Memory)等で構成する。
DMAC(Direct Memory Access Controller)206は、画像入力部202またはRAM205と相関演算部201との間のデータ転送を制御する。
ユーザインターフェース部208は、ボタン、スイッチ、タッチパネルなどのユーザインターフェースを有し、ユーザが操作することで各種の指示(例えば追尾対象の指示)をCPU203に対して入力することができる。また、ユーザインターフェース部208は、本装置による処理結果(例えば追尾処理の結果)を表示するための表示画面(液晶画面やタッチパネル画面など)を有する。
画像入力部202、取得部210、相関演算部201、CPU203、ROM204、RAM205、DMAC206、ユーザインターフェース部208、は何れもシステムバス207に接続されている。
相関演算部201は、CPU203からの指示に従って上記の相関演算処理を行って、入力画像における物体(ここでは説明上、追尾対象物体とする)の位置の尤度を示す検出マップを生成する。該検出マップはCPU203によってRAM205に格納される。CPU203は、RAM205に格納された検出マップに基づく該追尾対象物体の追尾処理結果を利用して様々なアプリケーションを提供する。例えば、追尾処理結果を画像入力部202にフィードバックして、追尾対象物体の追尾のための光学系のフォーカスの制御等に利用する。なお、相関演算部201による相関演算に基づいて生成される検出マップの利用方法は特定の利用方法に限らない。また、以下の説明で登場する様々なマップについて、その利用方法は以下に説明する特定の利用方法に限らない。
次に、相関演算部201のハードウェア構成例について、図1のブロック図を用いて説明する。I/F部101は、システムバス207を介してCPU203やDMAC206がアクセス可能なインターフェースであり、相関演算部201はI/F部101を介して外部とのデータの送受信を行う。
バッファ103には、CNNの各層(各階層)について、該層における重み係数(CNN係数)の二次元配列(係数パターン)が格納されており、バッファ103は、該係数パターンを低遅延で供給可能なバッファ(メモリ装置)である。
またバッファ103には、変換処理部105により得られる「CNNの最終層のCNN特徴の二次元配列(特徴マップ)」における局所的な領域内のCNN特徴群がテンプレート特徴として格納される。CPU203は、変換処理部105が求めてバッファ104に格納した「CNNの最終層の特徴マップ」をI/F部101を介して読み出し、該読み出した特徴マップにおける局所的な領域内のCNN特徴群をテンプレート特徴として抽出する。そしてCPU203は、該抽出したテンプレート特徴を、取得部210が取得した姿勢情報に応じて回転させ、該回転させたテンプレート特徴をI/F部101を介してバッファ103に格納する。
バッファ104は、変換処理部105により得られる特徴マップを低遅延で格納可能なバッファ(メモリ装置)である。バッファ103やバッファ104は、例えば高速なメモリやレジスタなどで実装可能である。なお、図1ではバッファ103およびバッファ104はそれぞれ別個のバッファとしているが、1つのバッファにおいてそれぞれ別個のメモリ領域としてもよい。
回転処理部107は、CPU203からI/F部101を介して係数パターンおよび姿勢情報を取得した場合には、該取得した係数パターンを、該取得した姿勢情報に応じて回転させてから演算処理部102に供給する。例えば、姿勢情報が「縦持ち」であることを示している場合(つまり画像入力部202が取得した入力画像が縦取りの場合)、回転処理部107は、係数パターンを時計回りに90度回転させてから演算処理部102に供給する。
一方、回転処理部107は、CPU203からI/F部101を介してテンプレート特徴および姿勢情報を取得した場合には、該取得したテンプレート特徴を、該取得した姿勢情報に応じて回転させてから演算処理部102に供給する。例えば、姿勢情報が「縦持ち」であることを示している場合(つまり画像入力部202が取得した入力画像が縦取りの場合)、回転処理部107は、テンプレート特徴を時計回りに90度回転させてから演算処理部102に供給する。
演算処理部102は畳み込み演算を行い、変換処理部105は、演算処理部102による畳み込み演算の結果を非線形変換する。なお、変換処理部105における非線形変換には周知の活性化処理であるReLU(Rectified Linear Unit)やシグモイド関数等を利用する。ReLUを利用する場合、閾値処理で実現可能であり、シグモイド関数を利用する場合、ルックアップテーブル等により値を変換する。制御部106は、相関演算部201における各種の動作制御を行う。
次に、演算処理部102および変換処理部105が処理するCNNの動作(特徴マップを生成するための処理)について、図4(a)を用いて説明する。CNNでは、入力画像401と係数パターン402との畳み込み演算403が行われ、該畳み込み演算403の結果に対して非線形変換404が行われて特徴マップ405が生成される。
ここで、畳み込み演算のカーネル(フィルタ係数マトリクス)サイズがcolumnSize×rowSize、CNNにおいて処理する対象の層の前の層の特徴マップの数がLの場合、以下に示すような畳み込み演算に基づいて1つの特徴マップが算出される。
Figure 2023156864000002
input(x,y): 2次元座標(x、y)での参照画素値
output(x,y): 2次元座標(x、y)での演算結果
weight(column, row): 座標(x+column、y+row)でのCNN係数
L:前の層の特徴マップ数
columnSize、rowSize: 2次元コンボリューションカーネルの水平・垂直方向サイズ
一般的にCNNにおける演算処理では、上記の式に従って複数のコンボリューションカーネルを入力画像の画素単位で走査しながら積和演算を繰り返し、最終的な積和演算結果を非線形変換(活性化処理)することで特徴マップを算出する。即ち、複数の空間フィルタ演算とその総和に対する非線形演算とにより、1つの特徴マップの画素データが生成される。本実施形態では、CNN係数が空間フィルタ係数に相当する。また、実際には層毎に複数の特徴マップが生成される。
演算処理部102は乗算器と累積加算器とを有し、該乗算器と該累積加算器とにより、上記の式で示した畳み込み演算を実行する。そして変換処理部105は、該畳み込み演算の結果を非線形変換して特徴マップを生成する。通常のCNNでは、以上の処理を、生成する特徴マップの数分繰り返して処理する。
次に、特徴マップからのテンプレート特徴の取得について、図5を用いて説明する。図5ではCNNの最終層から3つの特徴マップ501が得られたケースについて示している。この場合、CPU203は、3つの特徴マップ501のそれぞれから、3画素x3画素のサイズを有する領域(空間的な小領域)内の特徴群(CNN特徴群)をテンプレート特徴502として抽出する。この場合、テンプレート特徴502のデータサイズは9となる。「空間的な小領域」の位置は、予め指定された対象物の位置である。例えば、物体追尾処理の場合、テンプレート特徴は追尾対象物の特徴量となる。このようなテンプレート特徴と特徴マップとの相関(相関マップ)を利用することで、追尾対象物の位置を知ることができる。即ち、入力画像中の高い相関を示す位置を該入力画像中における追尾対象物の位置と判定することができる。
次に、演算処理部102および変換処理部105が処理するCNNの動作(テンプレート特徴を用いた相関演算を含む各種の演算処理)について、図4(b)を用いて説明する。CNNでは、入力画像406と係数パターン407との畳み込み演算408が行われ、該畳み込み演算408の結果に対して非線形変換409が行われて特徴マップ410が生成される。ここでは、特徴マップ410は3つの特徴マップであるものとし、登録済みのテンプレート特徴411は図5の3つのテンプレート特徴502であるものとする。次に、CNNでは、特徴マップ410(3つの特徴マップ)と、テンプレート特徴411(3つのテンプレート特徴502)と、の畳み込み演算412を行うことで、特徴マップ410とテンプレート特徴411との相関を演算する。畳み込み演算412を特徴マップ内で繰り返して行うことで、図5の場合、3つの特徴マップから3種類の相関マップが相関マップ413として算出される。ここでの相関演算は入力の特徴マップに対する出力マップの結合が1対1である所謂depth wise型のCNN演算処理と動作は同じである(上記の式においてL=1)。該処理の内容は非特許文献2等に記載のsiam相関演算手法である。次に、CNNでは、相関マップ413と係数パターン414との畳み込み演算415が行われ、該畳み込み演算415の結果に対して非線形変換416が行われて特徴マップ(検出マップ)417が生成される。特徴マップ417は一枚の特徴マップである。相関マップ413に対してCNN処理(畳み込み演算および非線形変換)を行うことで、相関関係を明確化し、対象物をより安定的に検出することを可能にする検出マップを得ることができる。検出マップにおける各要素の値(要素値)は、該要素がテンプレート特徴に対応する対象物を構成する要素である尤度(確からしさ)を表している。よって、検出マップにおける要素値がピークとなる位置を、該テンプレート特徴に対応する対象物の位置と判定することができる。
図4(b)に示した動作を、例えば、動画像に含まれる各フレームや、定期的若しくは不定期的に撮像される複数の静止画像のそれぞれについて行うことで、テンプレート特徴に対応する対象物の位置を画像毎に検出可能にするマップを生成することができる。つまり特定の対象物を複数の画像において追尾することを可能にするマップを生成することが可能になる。
次に、本実施形態に係る画像処理装置の動作について、図10のフローチャートに従って説明する。ステップS1001では、CPU203は、相関演算部201の動作に必要な各種の初期化処理を行う。
ステップS1002では、CPU203は、相関演算部201の動作に必要な各種の動作パラメータをROM204から読み出してRAM205に格納する。なお、動作パラメータの取得元はROM204に限らない。
ステップS1003では、CPU203は、テンプレート特徴を生成してバッファ103に格納するか否かを判断する。例えば、テンプレート特徴を新規にバッファ103に登録する場合には、「テンプレート特徴を生成してバッファ103に格納する」と判断する。また例えば、バッファ103に格納されているテンプレート特徴を新たなテンプレート特徴に更新する場合にも、「テンプレート特徴を生成してバッファ103に格納する」と判断する。
このような判断の結果、「テンプレート特徴を生成してバッファ103に格納する」と判断した場合には、処理はステップS1004に進む。一方、「テンプレート特徴を生成してバッファ103に格納する」と判断しない場合には、処理はステップS1008に進む。ステップS1004では、CPU203は、取得部210が取得した撮影部の向きを示す姿勢情報を取得する。
ステップS1005では、CPU203は、バッファ103に格納されている係数パターンをI/F部101を介して取得する。そしてCPU203はDMAC206を制御して、該取得した係数パターンと、ステップS1004で取得した姿勢情報と、画像入力部202が取得した入力画像(該姿勢情報が示す撮影姿勢で撮影された撮影画像)と、を相関演算部201に対して出力する。I/F部101を介して相関演算部201に入力された入力画像はバッファ104に格納される。回転処理部107は、I/F部101を介してCPU203から取得した係数パターンを、I/F部101を介してCPU203から取得した姿勢情報に応じて回転させる。例えば、姿勢情報が、撮影部が「縦持ち」であることを示している場合(つまり画像入力部202が取得した入力画像が縦取りの場合)、係数パターンを時計回りに90度回転させる。演算処理部102は、バッファ104に格納された入力画像と、回転処理部107によって回転させた係数パターンと、の畳み込み演算を行う。変換処理部105は、演算処理部102による畳み込み演算の結果を非線形変換して特徴マップを生成する(第1生成)。該生成した特徴マップをバッファ104に格納する。以降、演算処理部102による「バッファ104に格納された特徴マップ(前の層に対応する特徴マップ)と、回転処理部107によって回転させた係数パターンと、の畳み込み演算」および変換処理部105による「演算処理部102による畳み込み演算の結果を非線形変換して特徴マップを生成し、該生成した特徴マップをバッファ104に格納する処理」、をCNNの最終層に向けて各層について行うことで、CNNの各層における特徴マップをバッファ104に格納する。そしてCPU203は、バッファ104に格納されている「CNNの最終層における特徴マップ」をI/F部101を介して取得する。そして、該取得した特徴マップにおいて対象物に対応する局所的な領域内のCNN特徴群をテンプレート特徴として取得する。
ステップS1006では、CPU203は、ステップS1005で取得したテンプレート特徴を、ステップS1004で取得した姿勢情報に応じて回転させる(回転処理部107による係数パターンの回転に対する逆回転をテンプレート特徴に対して行う)。例えば、姿勢情報が「縦持ち」であることを示している場合(つまり画像入力部202が取得した入力画像が縦取りの場合)、ステップS1005で取得したテンプレート特徴を反時計回りに90度回転させる。ステップS1007では、CPU203は、ステップS1006において逆回転させたテンプレート特徴を、I/F部101を介してバッファ103に格納する。
ステップS1008では、CPU203は、取得部210が取得した姿勢情報を取得する。ここで、ステップS1008で取得する姿勢情報は、ステップS1004で取得した姿勢情報に対応する計測タイミングとは異なる計測タイミングで姿勢センサによって計測された撮影部の姿勢を示す情報である。
ステップS1009では、CPU203は、バッファ103に格納されている係数パターンおよびテンプレート特徴をI/F部101を介して取得する。そしてCPU203はDMAC206を制御して、該取得した係数パターンおよびテンプレート特徴と、ステップS1008で取得した姿勢情報と、画像入力部202が取得した入力画像(該姿勢情報が示す撮影姿勢で撮影された撮影画像)と、を相関演算部201に対して出力する。I/F部101を介して相関演算部201に入力された入力画像はバッファ104に格納される。回転処理部107は、I/F部101を介してCPU203から取得した係数パターンを、I/F部101を介してCPU203から取得した姿勢情報に応じて回転させる。演算処理部102は、バッファ104に格納された入力画像と、回転処理部107によって回転させた係数パターンと、の畳み込み演算を行う。変換処理部105は、演算処理部102による畳み込み演算の結果を非線形変換して特徴マップを生成(第2生成)し、該生成した特徴マップをバッファ104に格納する。以降、演算処理部102による「バッファ104に格納された特徴マップ(前の層に対応する特徴マップ)と、回転処理部107によって回転させた係数パターンと、の畳み込み演算」および変換処理部105による「演算処理部102による畳み込み演算の結果を非線形変換して特徴マップを生成し、該生成した特徴マップをバッファ104に格納する処理」、をCNNの最終層に向けて各層について行うことで、CNNの各層における特徴マップをバッファ104に格納する。また、回転処理部107は、I/F部101を介してCPU203から取得したテンプレート特徴を、I/F部101を介してCPU203から取得した姿勢情報に応じて回転させる。例えば、姿勢情報が「縦持ち」であることを示している場合(つまり画像入力部202が取得した入力画像が縦取りの場合)、回転処理部107は、テンプレート特徴を時計回りに90度回転させる。そして演算処理部102は、回転させたテンプレート特徴と、バッファ104に格納されている「CNNの最終層における特徴マップ」と、の畳み込み演算を行うことで、該特徴マップと該テンプレート特徴との相関を示す相関マップを求める。次に、上記の「演算処理部102および変換処理部105による、入力画像に対する階層的な畳み込み演算および非線形変換」と同様の処理を相関マップに対して行うことでCNNの最終層から得られるマップを検出マップとして求める。
ステップS1010では、CPU203は、相関演算部201にて求めた検出マップをI/F部101を介して該相関演算部201から取得し、該取得した検出マップをRAM205に格納する。
ステップS1011では、CPU203は、処理の終了条件が満たされたか否かを判断する。例えば、ユーザがユーザインターフェース部208を操作して処理の終了指示を入力した場合には、処理の終了条件が満たされたと判断する。また例えば、図10のフローチャートに従った処理を開始してからの経過時間が規定時間に達した場合や、ステップS1003~S1010の処理の繰返し回数が規定回数に達した場合には、処理の終了条件が満たされたと判断する。このように、処理の終了条件は特定の条件に限らない。
このような判断の結果、処理の終了条件が満たされた場合には、図10のフローチャートに従った処理は終了する。一方、処理の終了条件が満たされていない場合には、処理はステップS1003に進む。
次に、本実施形態の特徴について説明する。先ず、撮影姿勢が変わる場合における従来のテンプレート特徴の抽出及び相関演算について、図6を用いて説明する。入力画像601は、対象物602を縦撮りで撮影した撮影画像である。以下では、このような入力画像601からテンプレート特徴を生成して登録するケースについて説明する。なお、縦撮りの場合も画像入力部202が出力する入力画像は横長のラスタ画像であるものとする(入力画像内で対象物が回転して撮像されている)。
この場合、先ず撮影姿勢(この場合は縦撮り)に応じて入力画像601を回転させ、該回転させた入力画像603に対して係数パターン604を用いたCNN処理を行って特徴マップを取得する。係数パターン604は正立の対象物に対する学習によって得られるものであるため、撮影姿勢が正立の場合と同様の特徴マップの抽出を行うためには入力画像601を回転させる必要がある。そして、取得した特徴マップから対象物606の位置における領域の特徴をテンプレート特徴605として抽出する(図6では説明上意図的にずらしているが、テンプレート特徴605の実際の位置は対象物606の位置である)。そしてこの場合、テンプレート特徴605が、後段の相関演算のために登録される。
テンプレート特徴605の登録後に、新たな縦撮りの入力画像607が入力されると、該入力画像607の撮影姿勢に応じて該入力画像607を回転させ、該回転させた入力画像608に対して係数パターンを用いたCNN処理を行って特徴マップを取得する。そして、取得した特徴マップと、先に登録したテンプレート特徴605と、から相関マップ609を生成し、該相関マップ609から検出マップ610を生成する。
対象物606に対して撮影姿勢が正立である入力画像612の場合、画像の回転は不要である。この場合、該入力画像612に対して係数パターンを用いてCNN処理を行って特徴マップを取得し、該特徴マップと、先に登録したテンプレート特徴605と、から相関マップ614を生成し、該相関マップ614から検出マップ615を生成する。
従来ではこのように、撮影姿勢に応じて入力画像を回転させて処理していた。しかし、一般に入力画像の画素数は多いため、入力画像の回転処理に要する処理時間が増大する・入力画像の回転処理のためのバッファメモリが増大する等、処理コストが増大する。一般的に縦横画像変換にはフレームメモリが必要であり、例えば、廉価な撮影装置では大きな課題となる。
これに対し、本実施形態において、撮影姿勢が変わる場合でのテンプレート特徴の抽出及び相関演算について、図7を用いて説明する。対象物を縦撮りで撮影した入力画像701の場合、入力画像701を回転する代わりに係数パターン702を時計回りに90度回転させ、該回転させた係数マップ702と入力画像701とを用いたCNN処理を行うことで特徴マップを生成する。そして特徴マップにおける対象物の領域内のCNN特徴群をテンプレート特徴704aとして取得する。そしてこのテンプレート特徴704aを、登録時の撮影姿勢に応じて回転させて登録する。具体的には、テンプレート特徴704aを反時計回りに90度回転(係数マップ702の回転方向とは逆の回転方向に90度回転)させたテンプレート特徴704bを登録する。この場合、以下に説明するように、相関演算時には、撮影姿勢によらずに常に登録したテンプレート704bを用いて相関演算を実行することが可能になる。
相関演算時における撮影姿勢が縦撮りである新たな入力画像705が得られたとする。この場合、係数マップ706を時計回りに90度回転させ、該回転させた係数マップ706と入力画像705とを用いたCNN処理を行うことで特徴マップ709を取得する。そして、該取得した特徴マップ709と、先の登録したテンプレート特徴704bを時計回りに90度回転させたテンプレート特徴708と、の相関演算を行って相関マップ711を生成する。そして、相関マップ711に対して(時計回りに90度回転させた係数マップ710を用いて)CNN処理を行って、検出マップを生成する。
一方、相関演算時における撮影姿勢が正立の姿勢である入力画像712が得られたとする。この場合、回転させない係数パターン713と入力画像712とを用いたCNN処理を行うことで特徴マップ716を取得する。そして、該取得した特徴マップ716と、先の登録したテンプレート特徴704bと、の相関演算を行って相関マップ718を生成する。そして、相関マップ718に対して(回転させない係数パターン717を用いて)CNN処理を行って、検出マップを生成する。
また、相関演算時における撮影姿勢が入力画像701とは逆方向の縦撮りである入力画像719が得られたとする。この場合、反時計回りに90度回転させた係数パターン720と入力画像719とを用いたCNN処理を行うことで特徴マップ723を取得する。そして、該取得した特徴マップ723と、先の登録したテンプレート特徴704bを反時計回りに90度回転させたテンプレート特徴722と、の相関演算を行って相関マップ725を生成する。そして、相関マップ725に対してCNN処理(反時計回りに90度回転させた係数パターン724を用いて)を行って、検出マップを生成する。
このように、テンプレート特徴の登録時における撮影姿勢に応じてテンプレート特徴を回転させて登録することで、ハードウェアによる係数回転の仕組みを利用して、撮影姿勢によらず適切な相関マップを算出することができる。
次に、回転処理部107が行う係数パターンやテンプレート特徴の回転について説明する。回転処理部107が行う回転処理とは、係数パターンやテンプレート特徴といった二次元配列の回転処理であり、これは、二次元配列からの要素の読み出し順を変更することでなされる。
図3に示す如く、I/F部101を介してCPU203から取得した3x3の係数パターンはバッファ303に格納され、バッファ104から読み出した3x3単位の特徴マップはバッファ304に格納される。
係数パターンを格納するバッファ303は9個のレジスタ(C0,0、C0,1、C0,2、C1,0、C1,1、C1,2、C2,0、C2,1、C2,2)を有する。9個のレジスタのそれぞれには、3x3の係数パターンにおいて対応する位置のCNN係数が格納される。つまり、レジスタC0,0には係数パターンにおいて最上行の左端のCNN係数が格納される。C0,1には係数パターンにおいて最上行の中央のCNN係数が格納される。C0,2には係数パターンにおいて最上行の右端のCNN係数が格納される。また、レジスタC1,0には係数パターンにおいて中央行の左端のCNN係数が格納される。C1,1には係数パターンにおいて中央行の中央のCNN係数が格納される。C1,2には係数パターンにおいて中央行の右端のCNN係数が格納される。また、レジスタC2,0には係数パターンにおいて最下行の左端のCNN係数が格納される。C2,1には係数パターンにおいて最下行の中央のCNN係数が格納される。C2,2には係数パターンにおいて最下行の右端のCNN係数が格納される。
特徴マップを格納するバッファ304は9個のレジスタ(F0,0、F0,1、F0,2、F1,0、F1,1、F1,2、F2,0、F2,1、F2,2)を有する。9個のレジスタのそれぞれには、3x3の特徴マップにおいて対応する位置のCNN特徴が格納される。つまり、レジスタF0,0には特徴マップにおいて最上行の左端のCNN特徴が格納される。F0,1には特徴マップにおいて最上行の中央のCNN特徴が格納される。F0,2には特徴マップにおいて最上行の右端のCNN特徴が格納される。また、レジスタF1,0には特徴マップにおいて中央行の左端のCNN特徴が格納される。F1,1には特徴マップにおいて中央行の中央のCNN特徴が格納される。F1,2には特徴マップにおいて中央行の右端のCNN特徴が格納される。また、レジスタF2,0には特徴マップにおいて最下行の左端のCNN特徴が格納される。F2,1には特徴マップにおいて最下行の中央のCNN特徴が格納される。F2,2には特徴マップにおいて最下行の右端のCNN特徴が格納される。
演算処理部102(乗算器301)は、バッファ303に格納されている係数パターンに基づいて回転処理部107から出力されるCNN係数データ列と、バッファ304に格納されている特徴マップと、の積和演算を行う。また、演算処理部102(累積加算器302)は、該積和演算の結果の累積加算を行うことで上記の式に従った畳み込み演算を実現する。
後述するように、回転処理部107は、バッファ303に格納されている係数パターンの各CNN係数を、姿勢情報に応じて決まる順序で読み出し、該読み出したCNN係数を、該読み出した順番で並べた一次元のデータ列(CNN係数データ列)を出力する。つまり、CNN係数データ列における先頭からn(1≦n≦9)番目のCNN係数は、バッファ303に格納されている係数パターンからn番目に読み出されたCNN係数である。
また乗算器301は、バッファ304における9個のレジスタをラスターデータ順(F0,0、F0,1、F0,2、F1,0、F1,1、F1,2、F2,0、F2,1、F2,2の順)で参照し、該参照したレジスタに登録されているCNN特徴を読み出す。
そして乗算器301は、CNN係数データ列におけるn(1≦n≦9)番目のCNN係数と、バッファ304からn番目に読み出されたCNN特徴と、の乗算結果を求め、求めた9個の乗算結果を累積加算することで、一つの空間フィルタ演算を完了する。実際にはCNNの結合関係に応じて、複数の係数と複数の特徴面に対応するデータの累積和を算出する。即ち、前階層の複数の特徴面に対する空間フィルタ演算を特徴面に対して実行する。従って空間フィルタの数は全階層の特徴面数×処理対象の特徴面数となる。
このような場合に、回転処理部107によって係数パターンを回転させる場合について説明する。なお、上記の通り、係数パターンもテンプレート特徴も同じ二次元配列であるから、以下の説明はテンプレート特徴の回転にも同様に適用可能である。
回転処理部107の構成例について、図8のブロック図を用いて説明する。係数選択部802は、CPU203からI/F部101を介して取得した姿勢情報と対応付けて係数選択テーブル803に登録されている読み出し順を取得する。係数選択テーブル803には、例えば、撮影姿勢に応じて4種類の読み出し順が格納されている。例えば、姿勢情報が「縦持ち」であることを示している場合、係数パターン801を時計回りに90度回転させる。然るに、係数選択テーブル803には、「縦持ち」を示す姿勢情報と、読み出し順「C2,0、C1,0、C0,0、C2,1、C1,1、C0,1、C2,2、C1,2、C0,2」と、が対応付けて登録されている。
そして係数選択部802は、バッファ303が有する9個のレジスタを、該取得した読み出し順で参照する。例えば、姿勢情報が「縦持ち」であることを示している場合、係数パターン801を時計回りに90度回転させる。然るに、バッファ303が有する9個のレジスタを「C2,0、C1,0、C0,0、C2,1、C1,1、C0,1、C2,2、C1,2、C0,2」の順で参照する。そして係数選択部802は、参照した順にレジスタに格納されているCNN係数を読み出し、該読み出したCNN係数を、該読み出した順番で並べた一次元のデータ列(CNN係数データ列)を出力する。なお、レジスタを「C2,0、C1,0、C0,0、C2,1、C1,1、C0,1、C2,2、C1,2、C0,2」の順で参照し、該参照したレジスタに格納されているCNN係数を読み出し、該読み出したCNN係数を該読み出した順番でラスターデータ順に並べた3x3のパターンは、バッファ303が保持している係数パターン801を時計回りに90度回転させた係数パターンとなっている。然るに、レジスタを「C2,0、C1,0、C0,0、C2,1、C1,1、C0,1、C2,2、C1,2、C0,2」の順で参照し、該参照したレジスタに格納されているCNN係数を読み出し、該読み出したCNN係数を、該読み出した順番で並べた一次元のデータ列(CNN係数データ列)は、バッファ303が保持している係数パターン801を時計回りに90度回転させた係数パターンとなっている。つまり、データ配列の次元数が違うだけである。
そして係数選択テーブル803は、このようにして取得したCNN係数データ列を乗算器301に対して出力する。なお、CNN係数データ列の生成は乗算器301が行うようにしても良い。
なお、係数選択部802は、バッファ303をレジスタで構成する場合には、その出力を順番に選択するセレクタで構成することができる。このように、回転処理部107は、比較的小さいデータ量の係数選択テーブル803と係数選択のセレクタと、を用いて構成することができ、回転処理部107に必要なコストの上昇は僅かである。また、複数種類のカーネルサイズに対応する場合、カーネルの種類に応じて、係数選択テーブル803に格納する情報と係数選択部802の構成を変更するだけで良い。
次に、バッファ103におけるメモリ領域の構成例について、図9を用いて説明する。図9は、図4の例におけるバッファ103のメモリ領域の構成例を示しており、メモリ領域901には係数パターン402/係数パターン407が格納されており、メモリ領域902には係数パターン414が格納されている。また、メモリ領域903には、テンプレート特徴411が格納されている。
メモリ領域901やメモリ領域902に格納されている係数パターンは、制御部106による制御に基づいて、規定の単位(図8の例では3x3の単位)でバッファ303に転送される。また、メモリ領域903に格納されているテンプレート特徴は、制御部106による制御に基づいて、規定の単位(図8の例では3x3の単位)でバッファ303に転送される。
このような構成により、係数パターンやテンプレート特徴の回転を実現させることができる。例えば、図7においてテンプレート特徴704aを回転させたテンプレート特徴704bをバッファ103に格納する場合、テンプレート特徴704aにおいてラスターデータ順に並んでいる要素6,3,0,7,4,1,8,5,2を、要素0,1,2,3,4,5,6,7,8の順に読み出して、ラスターデータ順に要素0,1,2,3,4,5,6,7,8が並んでいる3x3のテンプレート特徴704bを形成し、該テンプレート特徴704bをバッファ103に格納する。連続する画像に対して相関演算を実行する場合、撮影姿勢に変動があった場合にも、姿勢情報の設定だけで撮影姿勢に対応した処理を実行することができる。
このように、本実施形態によれば、テンプレート特徴の生成時における撮影姿勢に応じてテンプレート特徴を正立方向に回転して格納するので、相関演算時は撮影姿勢に応じて相関演算を効率的に実行することができる。つまり、相関演算時は撮影姿勢にかかわらず、撮影画像の回転を要さず、係数マップの回転機構を利用してテンプレート特徴を処理することができる。即ち共通のハードウェアでCNN処理と相関演算を姿勢変動に対応して処理することができる。
これにより、本実施形態に係る画像処理装置を対象物の追尾処理に適用した場合、撮影姿勢が変わる場合(例えば、画像処理装置の持ち方を変えながら撮影する場合)であっても、特別な処理無く対象物をスムーズに追尾することができる。
なお、本実施形態では、画像処理装置は画像入力部202を有するものとして説明したが、これに限らず、画像入力部202は外付けの装置であっても良い。例えば、画像処理装置は、外部の画像入力部202から有線もしくは無線のネットワークを介して受信した入力画像を元に上記の各種の処理を実行するようにしても良い。
同様に、画像処理装置は姿勢情報を取得する取得部210を有するものとして説明したが、これに限らず、取得部210は外付けの装置であっても良い。例えば、画像処理装置は、外部の取得部210から有線もしくは無線のネットワークを介して受信した姿勢情報を用いて上記の各種の処理を実行するようにしても良い。
また、本実施形態では、撮影姿勢の計測に姿勢センサを用いたが、撮影姿勢を取得するための方法は特定の方法に限らない。例えば、複数枚の撮影画像から撮影姿勢を推定しても良いし、他の種類のセンサを用いて撮影姿勢を計測しても良いし、幾つかの手法を組み合わせて撮影姿勢を取得するようにしても良い。また、ユーザがユーザインターフェース部208を操作して姿勢情報を入力するようにしても良い。
また、本実施形態では、階層的な空間フィルタ演算のためにCNNを用いたが、階層的な空間フィルタ演算は特定の手法に限らず、例えば、他の種類の階層型ニューラルネットワークを用いて実施しても構わない。
また、相関演算部201が行うものとして説明した各種の処理を、CPU203、GPU(Graphics Processing Unit)、DSP(Digital Signal Processing Unit)等のプロセッサが実行しても良い。
[第2の実施形態]
本実施形態では、第1の実施形態との差分について説明し、以下で特に触れない限りは、第1の実施形態と同様であるものとする。第1の実施形態では、各層における特徴マップをバッファ104に格納していたが、その場合、バッファ104に要求される容量が増大する。特に各層の特徴マップの枚数が多い場合には容量の増大が問題となる。そこで、階層毎の処理ではなく小領域毎に複数の階層を跨いで処理する構成でも良い。この場合、各層の処理を規定の単位(例えばライン単位)で処理する。これにより、例えば、図4に例示した階層的な処理の中間結果である特徴マップ410や相関マップ413を格納することを考える。すると、(バッファ104に格納する場合)は、(空間フィルタ演算に必要なライン数×マップの数)に対応するメモリ領域をバッファ104に確保して処理可能である。すなわち、バッファ104をライン単位の循環バッファとして利用して階層的なネットワークを処理する。
図11は、ラインバッファを利用して処理する場合のCNNの特徴面の例を模式的に説明する図である。1101は入力画像406に対する循環ラインバッファ、1102は特徴マップ410に対する循環ラインバッファ、1103は相関マップ413に対する循環ラインバッファを示している。なお、図11は空間フィルタのサイズが3×3の場合の例を示している。最終層の検出マップ417を保持するためのメモリは全ての結果を保持するフレームバッファで構成する。例えば特徴マップ410については、入力画像406のラインバッファ1101にフィルタ処理可能な参照データが蓄積されたのちに1ライン分の畳み込み演算を実行する。循環ラインバッファ1101~1103をそれぞれライン単位で循環しながら特徴マップや相関マップを算出する。演算処理部102はライン単位で処理する特徴面を切り替えながら階層を跨いでネットワークを処理することになる。
ラインバッファで処理するための制御は、例えば制御部106が司り、入力画像のライン毎に畳み込み演算408、412,415をステップS1009で順次行う。このような処理は例えば特許第5184824号に開示されている構成で実現することができる。
なお、畳み込み演算時は姿勢情報に従って、回転処理部107にCNN係数の回転方向を指定する。本実施形態では、テンプレート特徴は登録時の撮影姿勢にかかわらず常に正立の状態で登録するため、相関演算時は撮影姿勢に応じてすべての層で同じ回転を指定して良い。つまり、複数の層を跨いで相関演算を処理する場合も撮影姿勢の変動に対応して層間で特別な処理を行うことなく効率的に処理することができる。
[第3の実施形態]
第1,2の実施形態では、二次元配列の回転を該二次元配列の要素の読み出し順を変更することで実施していたが、二次元配列の回転は他の方法でもって実施しても良い。例えば、ハードウェアによる回転機構により二次元配列を回転させるようにしても良い。
また、複数角度に回転させた二次元配列を予め作成してRAM205に保持しておき、該予め作成した複数の二次元配列のうち姿勢情報に応じた1つを選択して使用するようにしても良い。例えば、時計回りに90度回転させた二次元配列、反時計回りに90度回転させた二次元配列、時計回り/反時計回りに180度回転させた二次元配列、を予め作成しておく。そして、例えば姿勢情報が時計回りの縦撮りを示す場合には、時計回りに90度回転させた二次元配列を選択し、姿勢情報が反時計回りの縦撮りを示す場合には、反時計回りに90度回転させた二次元配列を選択する。
また、第1,2の実施形態では、テンプレート特徴は、特徴マップにおける局所的な領域から抽出されたCNN特徴のマップであるものとしたが、これに限らず、特徴マップに基づいて得られるCNN特徴のマップであれば良い。たとえば、テンプレート特徴は、特徴マップにおける一部の領域から抽出されたCNN特徴を加工したマップであっても良い。
また、第1,2の実施形態では、テンプレート特徴の登録では、撮影姿勢に応じて正立したテンプレート特徴に変換して登録するものとして説明したが、撮影姿勢にかかわらず、予め定める特定の向きに変換して登録するようにしても良い。但しこの場合、例えば相関マップ413を算出する場合のテンプレート特徴の回転が、他の畳み込み演算と異なるように制御する必要がある。
また、第1,2の実施形態では、テンプレート特徴の取得時の画像と相関演算対象の画像が異なる場合について説明したが、テンプレート特徴の取得時の画像と相関演算対象の画像とが同じであっても良い。
また、図1に示した回転処理部107、演算処理部102、変換処理部105やそれらに含まれる1以上の機能部はハードウェアで実装しても良いし、ソフトウェアで実装しても良い。後者の場合、このソフトウェアは制御部106やCPU203によって実行され、これにより、対応する機能部の機能が実現される。
また、上記の各実施形態で使用した数値、処理タイミング、処理順、処理の主体、データ(情報)の送信先/送信元/格納場所などは、具体的な説明を行うために一例として挙げたもので、このような一例に限定することを意図したものではない。
また、以上説明した各実施形態の一部若しくは全部を適宜組み合わせて使用しても構わない。また、以上説明した各実施形態の一部若しくは全部を選択的に使用しても構わない。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本明細書の開示は、以下の画像処理装置、画像処理方法、及びコンピュータプログラムを含む。
(項目1)
第1撮影画像の撮影姿勢を示す第1姿勢情報に基づく第1配列で設定されたフィルタ係数を該第1撮影画像に適用して第1特徴マップを生成する第1生成手段と、
前記第1特徴マップに基づいて対象物に対応するテンプレート特徴を取得し、該テンプレート特徴を前記第1姿勢情報に基づく配列で登録する登録手段と、
第2撮影画像の撮影姿勢を示す第2姿勢情報に基づく第2配列で設定されたフィルタ係数を該第2撮影画像に適用して第2特徴マップを生成する第2生成手段と、
前記第2特徴マップと、前記登録されたテンプレート特徴を前記第2姿勢情報に基づく配列で設定されたテンプレート特徴と、の相関演算を行う演算手段と、
前記相関演算の結果に基づいて前記第2撮影画像から前記対象物を検出する検出手段と
を備えることを特徴とする画像処理装置。
(項目2)
前記第1生成手段は、前記フィルタ係数を前記第1姿勢情報に応じて回転させて設定し、
前記登録手段は、前記取得したテンプレート特徴を、前記第1生成手段による前記フィルタ係数の回転とは逆に回転させて登録することを特徴とする項目1に記載の画像処理装置。
(項目3)
前記第2生成手段は、前記フィルタ係数を前記第2姿勢情報に応じて回転させて設定し、
前記演算手段は、前記第2特徴マップと、前記登録されたテンプレート特徴を前記第2生成手段による前記フィルタ係数の回転に合わせて回転させたテンプレート特徴と、の相関演算を行うことを特徴とする項目2に記載の画像処理装置。
(項目4)
前記登録手段は、前記第1特徴マップにおける前記対象物の領域内の特徴をテンプレート特徴として取得することを特徴とする項目1乃至3の何れか1項目に記載の画像処理装置。
(項目5)
前記第1生成手段は、前記第1配列で設定されたフィルタ係数と前記第1撮影画像との畳み込み演算に基づいて前記第1特徴マップを生成し、
前記第2生成手段は、前記第2配列で設定されたフィルタ係数と前記第2撮影画像との畳み込み演算に基づいて前記第2特徴マップを生成することを特徴とする項目1乃至4の何れか1項目に記載の画像処理装置。
(項目6)
前記演算手段は、前記第2特徴マップと、前記第2姿勢情報に基づく配列で設定されたテンプレート特徴と、の畳み込み演算により前記相関演算を行うことを特徴とする項目1乃至5の何れか1項目に記載の画像処理装置。
(項目7)
前記畳み込み演算は、階層型ニューラルネットワークを用いて実行されることを特徴とする項目5または6に記載の画像処理装置。
(項目8)
前記畳み込み演算は、前記階層型ニューラルネットワークの層ごとに規定の単位で行われることを特徴とする項目7に記載の画像処理装置。
(項目9)
前記検出手段は、前記相関演算の結果に基づいて、前記第2撮影画像における前記対象物の位置の尤度を示す検出マップを生成することを特徴とする項目1乃至8の何れか1項目に記載の画像処理装置。
(項目10)
さらに、
前記検出マップに応じて撮影に係る制御を行う手段を備えることを特徴とする項目9に記載の画像処理装置。
(項目11)
さらに、
前記第1撮影画像及び前記第2撮影画像として撮影した画像を取得する手段を備えることを特徴とする項目1乃至10の何れか1項目に記載の画像処理装置。
(項目12)
さらに、
前記第1姿勢情報及び前記第2姿勢情報を取得する手段を備えることを特徴とする項目1乃至11の何れか1項目に記載の画像処理装置。
(項目13)
画像処理装置が行う画像処理方法であって、
前記画像処理装置の第1生成手段が、第1撮影画像の撮影姿勢を示す第1姿勢情報に基づく第1配列で設定されたフィルタ係数を該第1撮影画像に適用して第1特徴マップを生成する第1生成工程と、
前記画像処理装置の登録手段が、前記第1特徴マップに基づいて対象物に対応するテンプレート特徴を取得し、該テンプレート特徴を前記第1姿勢情報に基づく配列で登録する登録工程と、
前記画像処理装置の第2生成手段が、第2撮影画像の撮影姿勢を示す第2姿勢情報に基づく第2配列で設定されたフィルタ係数を該第2撮影画像に適用して第2特徴マップを生成する第2生成工程と、
前記画像処理装置の演算手段が、前記第2特徴マップと、前記登録されたテンプレート特徴を前記第2姿勢情報に基づく配列で設定されたテンプレート特徴と、の相関演算を行う演算工程と、
前記画像処理装置の検出手段が、前記相関演算の結果に基づいて前記第2撮影画像から前記対象物を検出する検出工程と
を備えることを特徴とする画像処理方法。
(項目14)
コンピュータを、項目1乃至12の何れか1項目に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
101:I/F部 102:演算処理部 103:バッファ 104:バッファ 105:変換処理部 106:制御部 107:回転処理部

Claims (14)

  1. 第1撮影画像の撮影姿勢を示す第1姿勢情報に基づく第1配列で設定されたフィルタ係数を該第1撮影画像に適用して第1特徴マップを生成する第1生成手段と、
    前記第1特徴マップに基づいて対象物に対応するテンプレート特徴を取得し、該テンプレート特徴を前記第1姿勢情報に基づく配列で登録する登録手段と、
    第2撮影画像の撮影姿勢を示す第2姿勢情報に基づく第2配列で設定されたフィルタ係数を該第2撮影画像に適用して第2特徴マップを生成する第2生成手段と、
    前記第2特徴マップと、前記登録されたテンプレート特徴を前記第2姿勢情報に基づく配列で設定されたテンプレート特徴と、の相関演算を行う演算手段と、
    前記相関演算の結果に基づいて前記第2撮影画像から前記対象物を検出する検出手段と
    を備えることを特徴とする画像処理装置。
  2. 前記第1生成手段は、前記フィルタ係数を前記第1姿勢情報に応じて回転させて設定し、
    前記登録手段は、前記取得したテンプレート特徴を、前記第1生成手段による前記フィルタ係数の回転とは逆に回転させて登録することを特徴とする請求項1に記載の画像処理装置。
  3. 前記第2生成手段は、前記フィルタ係数を前記第2姿勢情報に応じて回転させて設定し、
    前記演算手段は、前記第2特徴マップと、前記登録されたテンプレート特徴を前記第2生成手段による前記フィルタ係数の回転に合わせて回転させたテンプレート特徴と、の相関演算を行うことを特徴とする請求項2に記載の画像処理装置。
  4. 前記登録手段は、前記第1特徴マップにおける前記対象物の領域内の特徴をテンプレート特徴として取得することを特徴とする請求項1に記載の画像処理装置。
  5. 前記第1生成手段は、前記第1配列で設定されたフィルタ係数と前記第1撮影画像との畳み込み演算に基づいて前記第1特徴マップを生成し、
    前記第2生成手段は、前記第2配列で設定されたフィルタ係数と前記第2撮影画像との畳み込み演算に基づいて前記第2特徴マップを生成することを特徴とする請求項1に記載の画像処理装置。
  6. 前記演算手段は、前記第2特徴マップと、前記第2姿勢情報に基づく配列で設定されたテンプレート特徴と、の畳み込み演算により前記相関演算を行うことを特徴とする請求項1に記載の画像処理装置。
  7. 前記畳み込み演算は、階層型ニューラルネットワークを用いて実行されることを特徴とする請求項5に記載の画像処理装置。
  8. 前記畳み込み演算は、前記階層型ニューラルネットワークの層ごとに規定の単位で行われることを特徴とする請求項7に記載の画像処理装置。
  9. 前記検出手段は、前記相関演算の結果に基づいて、前記第2撮影画像における前記対象物の位置の尤度を示す検出マップを生成することを特徴とする請求項1に記載の画像処理装置。
  10. さらに、
    前記検出マップに応じて撮影に係る制御を行う手段を備えることを特徴とする請求項9に記載の画像処理装置。
  11. さらに、
    前記第1撮影画像及び前記第2撮影画像として撮影した画像を取得する手段を備えることを特徴とする請求項1に記載の画像処理装置。
  12. さらに、
    前記第1姿勢情報及び前記第2姿勢情報を取得する手段を備えることを特徴とする請求項1に記載の画像処理装置。
  13. 画像処理装置が行う画像処理方法であって、
    前記画像処理装置の第1生成手段が、第1撮影画像の撮影姿勢を示す第1姿勢情報に基づく第1配列で設定されたフィルタ係数を該第1撮影画像に適用して第1特徴マップを生成する第1生成工程と、
    前記画像処理装置の登録手段が、前記第1特徴マップに基づいて対象物に対応するテンプレート特徴を取得し、該テンプレート特徴を前記第1姿勢情報に基づく配列で登録する登録工程と、
    前記画像処理装置の第2生成手段が、第2撮影画像の撮影姿勢を示す第2姿勢情報に基づく第2配列で設定されたフィルタ係数を該第2撮影画像に適用して第2特徴マップを生成する第2生成工程と、
    前記画像処理装置の演算手段が、前記第2特徴マップと、前記登録されたテンプレート特徴を前記第2姿勢情報に基づく配列で設定されたテンプレート特徴と、の相関演算を行う演算工程と、
    前記画像処理装置の検出手段が、前記相関演算の結果に基づいて前記第2撮影画像から前記対象物を検出する検出工程と
    を備えることを特徴とする画像処理方法。
  14. コンピュータを、請求項1に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
JP2022066493A 2022-04-13 2022-04-13 画像処理装置、画像処理方法 Pending JP2023156864A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2022066493A JP2023156864A (ja) 2022-04-13 2022-04-13 画像処理装置、画像処理方法
US18/192,201 US20230334820A1 (en) 2022-04-13 2023-03-29 Image processing apparatus, image processing method, and non-transitory computer-readable storage medium
CN202310391442.2A CN116916143A (zh) 2022-04-13 2023-04-13 图像处理设备、图像处理方法和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022066493A JP2023156864A (ja) 2022-04-13 2022-04-13 画像処理装置、画像処理方法

Publications (1)

Publication Number Publication Date
JP2023156864A true JP2023156864A (ja) 2023-10-25

Family

ID=88308162

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022066493A Pending JP2023156864A (ja) 2022-04-13 2022-04-13 画像処理装置、画像処理方法

Country Status (3)

Country Link
US (1) US20230334820A1 (ja)
JP (1) JP2023156864A (ja)
CN (1) CN116916143A (ja)

Also Published As

Publication number Publication date
US20230334820A1 (en) 2023-10-19
CN116916143A (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
JP6022734B2 (ja) 動き推定の方法及び装置
KR102471595B1 (ko) 장면의 초해상도 이미지를 생성하기 위한 광학 이미지 안정화 움직임
US10621446B2 (en) Handling perspective magnification in optical flow processing
WO2016144578A1 (en) Methods and systems for generating enhanced images using multi-frame processing
JP6619034B2 (ja) ホモグラフィの修正
US9542732B2 (en) Efficient image transformation
EP2795575B1 (fr) Capteur de vision tridimensionnelle integre
US11704546B2 (en) Operation processing apparatus that calculates addresses of feature planes in layers of a neutral network and operation processing method
JP7398938B2 (ja) 情報処理装置およびその学習方法
KR20220078283A (ko) 뉴럴 네트워크 프로세서를 구비하는 이미지 처리 장치 및 이의 동작 방법
JP2023156864A (ja) 画像処理装置、画像処理方法
US11948316B2 (en) Camera module, imaging device, and image processing method using fixed geometric characteristics
CN108875733B (zh) 一种红外小目标快速提取系统
JP2021012596A (ja) 演算処理装置及び演算処理方法
JP7025237B2 (ja) 画像処理装置およびその制御方法ならびにプログラム
JP2011055084A (ja) 撮像装置及び電子機器
JP7444585B2 (ja) 認識装置、認識方法
JP7321213B2 (ja) 情報処理装置、情報処理方法
van der Walt et al. A polygon-based interpolation operator for super-resolution imaging
US11494880B2 (en) Image pyramid generation for image keypoint detection and descriptor generation
CN115239815B (zh) 一种相机标定方法及装置
TWI820541B (zh) 影像扭曲校正的方法
KR20210114846A (ko) 고정된 기하학적 특성을 이용한 카메라 모듈, 촬상 장치 및 이미지 처리 방법
JP2001268431A (ja) 補正画像生成装置,補正画像生成方法,補正画像生成用プログラム記録媒体および補正画像生成用プログラム
KR20220147412A (ko) 이미지 센서 모듈, 이미지 처리 시스템 및 이미지 센서 모듈의 동작 방법