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

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

Info

Publication number
JP6751663B2
JP6751663B2 JP2016251918A JP2016251918A JP6751663B2 JP 6751663 B2 JP6751663 B2 JP 6751663B2 JP 2016251918 A JP2016251918 A JP 2016251918A JP 2016251918 A JP2016251918 A JP 2016251918A JP 6751663 B2 JP6751663 B2 JP 6751663B2
Authority
JP
Japan
Prior art keywords
image
optical flow
resolution
interest
pixel
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
JP2016251918A
Other languages
English (en)
Other versions
JP2018107615A (ja
JP2018107615A5 (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 JP2016251918A priority Critical patent/JP6751663B2/ja
Priority to US15/818,006 priority patent/US10818018B2/en
Publication of JP2018107615A publication Critical patent/JP2018107615A/ja
Publication of JP2018107615A5 publication Critical patent/JP2018107615A5/ja
Application granted granted Critical
Publication of JP6751663B2 publication Critical patent/JP6751663B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Studio Devices (AREA)
  • Image Analysis (AREA)

Description

本発明は、画像間のオプティカルフローを求めるための技術に関するものである。
近年、2つの画像間の各画素の対応付けを行う技術の重要性は高まっている。対応とは、基準画像の画素と同一であるとみなす参照画像の画素との関係であり、二点の座標で表現できる。ステレオ画像を入力した場合、その二点の位置関係から画素の奥行きの位置を算出でき、3次元画像処理に応用できる。また、連続して撮像された画像(動画)を入力し、その対応関係を相対座標として表現すれば、それは動きベクトルとなる。この動きベクトルの集合であるオプティカルフローを利用することによって、動体の解析、ノイズ除去、手ぶれ補正などが可能となる。なお、撮像時のシャッタースピードが十分に速ければ、動画、ステレオ画像ともに、画素の対応付けを行っており、同一の手法で対応(動きベクトル)を算出することができる。画素の対応(動きベクトル)を得る方法には、テンプレートマッチング(ブロックマッチングとも呼ばれる)、勾配法、特徴量比較による探索などがある。
テンプレートマッチングでは、画素に対し、その画素および周辺画素の集合であるパッチを設定する。次に基準画像の着目画素ごとに、参照画像に設定する探索点をずらしながら、着目画素のパッチと探索点のパッチの相関を求め、もっとも相関が高い探索点と着目画素の対応を動きベクトルとする。着目画素を走査して処理することにより、画素ごとの複数の動きベクトルの集合、つまり、オプティカルフローを得る。
勾配法は、画素の時空間の輝度変化の方向と大きさから、動きベクトルを算出する方法である。ただし、画素一点の動きベクトルを算出することは難しいため、例えば着目画素の周辺の画素は同じ動きであると仮定して、着目画素を中心とするパッチを設定して、パッチ内の画素の平均的な時空間の輝度変化から動きベクトルを算出する。勾配法の手法には、例えば、Lucas Kanade法(以下、LK法と称する:非特許文献1)や、Horn&Schunck 法(以下、HK法と称する:非特許文献2)がある。
特徴量比較による探索とは、画素の特徴量を多次元ベクトルで表現し、基準画像の着目画素の特徴点と参照画像上の画素の特徴量のノルムが小さい画素を対応付ける方法である。具体的には、SIFT法やBRIEF法などがあり、非特許文献3に解説されている。
テンプレートマッチングや勾配法には、大きな動きを検出できない、あるいは、検出精度が低い、という問題がある。そこで、ピラミッド処理と呼ばれる手法を併用することが多い。ピラミッド処理は、入力画像に対して、複数の縮小率で縮小した縮小画像を用意し、最小の縮小画像から等倍の画像の順番で、縮小画像の処理結果をより解像度の高い画像の処理に入力として処理する方式の総称である。このピラミッド処理をLK法に適用した手法がピラミッドLK法(非特許文献4)である。また、ピラミッド処理には特許文献1などの手法もある。特許文献1では、多重解像度画像の各解像度(各階層)の画像毎に、信頼性を評価し、信頼性の低いデータについては解像度毎に修正する。この修正により、ある解像度で求められた対応について誤りがあった場合にも、それがその解像度の中で修正され、対応の誤りが次の高解像度画像の処理に伝搬されにくくなる。
大きな動きを検出したとき、動体が動くことによって隠れる領域(現れる領域)であるオクルージョンが発生する。このオクルージョンを考慮したオプティカルフロー取得方法には、非特許文献5がある。
特開2001−148012号公報
B. D. Lucas and T. Kanade (1981), An iterative image registration technique with an application to stereo vision.Proceedings of Imaging Understanding Workshop, pages 121−−130 B.K.P. Horn and B.G. Schunck, "Determining optical flow." Artificial Intelligence, vol 17, pp 185?203, 1981 局所勾配特徴抽出技術−SIFT以降のアプローチ−. 藤吉弘亘,安倍満,"局所勾配特徴抽出技術−SIFT以降のアプローチ−",精密工学会誌 77(12),pp1109−1116,2011. Pyramidal Implementation of the Lucas Kanade Feature TrackerDescription of the algorithmJean−Yves BouguetHttp://robots.stanford.edu/cs223b04/algo_tracking.pdf 動画像編集のための動き推定,鈴木裕一, 山口 泰 ,情報処理学会研究報告. グラフィクスとCAD研究会報告 2009−CG−135(1) 1−6 2009年7月
ピラミッド処理を利用してオプティカルフローを検出する方法において、解像度の低い階層の画像の画素には、異なる動きを持つ動被写体の境界が含まれることがあり、このとき画素の正しい動きを表現できない。そして、縮小画像の処理結果をより解像度の高い階層の入力として処理すると、この誤った動きが次の階層へ次々に伝播してしまう。結果として等倍画像の処理結果である最終的なオプティカルフローにおいて、動被写体の境界のオプティカルフローの正確性が低くなることがあった。
なお、特許文献1には、「信頼性の評価および修正を解像度毎に行わない場合には、低い階層の画像で誤った対応を求めてしまったときに、その後の解像度の高い階層では対応の修正を行うことが不可能であるため、対応点探索の精度が大幅に低下する。」とある。つまり、特許文献1に関する技術は、多重解像度画像の各解像度(各階層)の画像毎に、信頼性を評価し、信頼性の低いデータ(動きベクトル)については解像度毎に修正する技術である。同一階層内、つまり、解像度の低い画像で信頼度を判定しているため、「解像度の低い階層の画像の画素には異なる動きを持つ動被写体の境界が含まれる」ときにおこる問題を解決していない。
本発明はこのような問題に鑑みてなされたものであり、オプティカルフローの正確性を向上させるための技術を提供する。
本発明の一様態は、第1の画像及び該第1の画像を縮小することで得られる複数の縮小画像のそれぞれを含む第1の画像群と、第2の画像及び該第2の画像を縮小することで得られる複数の縮小画像のそれぞれを含む第2の画像群と、を用いた階層処理を実行することにより、前記第1の画像と前記第2の画像との間における動きベクトルを示すオプティカルフローを生成する画像処理装置であって、
前記第1の画像群および前記第2の画像群のそれぞれから、処理対象の階層に対応する解像度の画像を、第1の取得画像および第2の取得画像として取得する取得手段と、
前記処理対象の階層の解像度より低解像度の階層に対応するオプティカルフローを、前記処理対象の階層の解像度に変換した変換済みオプティカルフローを生成する変換手段と、
前記変換済みオプティカルフローと、前記第1の取得画像と、前記第2の取得画像と、に基づいて、前記処理対象の階層に対応する解像度の新オプティカルフローを生成する第1の生成手段と、
前記処理対象の階層より低解像度の階層から生成した前記新オプティカルフロー前記第1の取得画像と、前記第2の取得画像と、を用いて、前記処理対象の階層の解像度に対応するオプティカルフローを生成する第2の生成手段と、
前記取得手段、前記変換手段、前記第1の生成手段、および前記第2の生成手段の処理を低解像度の階層から順に繰り返す階層処理を実行することで得られる、前記第1の画像と前記第2の画像との間における前記オプティカルフローを出力する出力手段と
を備えることを特徴とする。
本発明の構成によれば、オプティカルフローの正確性を向上させることができる。
画像処理装置のハードウェア構成例を示すブロック図。 従来のオプティカルフローの算出方法のフローチャート。 第1の実施形態に係るオプティカルフローの算出処理のフローチャート。 複数の候補位置の配置パターンの一例を示す図。 n番目の差分SADに対応するiを求めるための処理のフローチャート。 第1の実施形態の効果を説明する図。 第2の実施形態に係るオプティカルフローの算出処理のフローチャート。
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の1つである。
[第1の実施形態]
本実施形態では、次のような構成を有する画像処理装置の一例について説明する。この画像処理装置は、第1の画像及び該第1の画像を縮小することで得られる複数の縮小画像のそれぞれを画像サイズが小さい順に第1の取得画像として取得する。また、画像処理装置は、第2の画像及び該第2の画像を縮小することで得られる複数の縮小画像のそれぞれを画像サイズが小さい順に第2の取得画像として取得する。また画像処理装置は、前回取得した第2の取得画像について生成済みのオプティカルフローを今回取得した第2の取得画像のサイズに応じて変換した変換済みオプティカルフローを生成する。そして画像処理装置は、変換済みオプティカルフローにおける着目座標位置を基準とした複数の位置に対応する動きベクトルのうち、今回取得した第2の取得画像内の該着目座標位置から該動きベクトルに応じて離間した画素位置の画素値と、今回取得した第2の取得画像と同画像サイズの第1の取得画像内の着目座標位置に対応する画素位置の画素値と、の差分が小さい順に1つ以上の動きベクトルを特定する。そして画像処理装置は、該1つ以上の動きベクトルに基づいて特定した1つの動きベクトルを着目座標位置における要素とする新オプティカルフローを生成し、該新オプティカルフローと、今回取得した第2の取得画像と同画像サイズの第1の取得画像と、今回取得した第2の取得画像と、を用いて、今回取得した第2の取得画像に対するオプティカルフローを生成する。そして画像処理装置は、第2の画像について生成したオプティカルフローを出力する。
先ず、本実施形態を含む以下の各実施形態において用いる様々な定義について説明する。以下の説明における「オプティカルフロー」(以下、OFと称する場合がある)とは、基準画像に対する対象画像の動きベクトルを画素毎に登録したマップ画像である。つまり、オプティカルフローは基準画像(対象画像)と同じ解像度(縦横の画素数)を有し、基準画像の各画素に対応するオプティカルフローの要素は二次元ベクトルとなっている。
以下では、画像をIと表記した場合、該画像I上の画素位置(x、y)における画素値はI(x,y)と表記する。オプティカルフローにおいて、画像I上の画素位置(x、y)に対応する要素は(u(x,y),v(x,y))と表記する。u(x,y)は、画像Iの画素位置(x、y)に対応する動きベクトルの水平方向成分(X成分)を表し、v(x,y)は、画像Iの画素位置(x、y)に対応する動きベクトルの垂直方向成分(Y成分)を表している。なお、画素位置(x、y)をベクトルXとして表す場合もあり、この場合、画像I上の画素位置(x、y)における画素値はI(X)と表記する。同様に、オプティカルフローにおいて、画像I上の画素位置(x、y)に対応する要素は(u(X),v(X))と表記する。また、以下では、ベクトル表記される変数Aに下付き文字xを付したAは、Aのx成分を表すものとし、変数Aに下付き文字yを付したAは、Aのy成分を表すものとする。
本実施形態では、単一の撮像装置において互いに異なる時刻に撮像された第1の画像(画像1)及び第2の画像(画像2)を取得し、第2の画像を基準とした第1の画像のオプティカルフローを生成する。なお、第1の画像及び第2の画像は単一の撮像装置において互いに異なる時刻に撮像された画像に限らず、複数台の撮像装置において同時刻に撮像された画像であっても良いし、複数台の撮像装置において互いに異なる時刻に撮像された画像であっても良い。また、本実施形態では、第1の画像及び第2の画像はモノクロ画像とし、画素値は0(黒)〜1(白)の実数値で表されるものとする。しかし、第1の画像及び第2の画像はカラー画像等であっても良いし、画素値が8ビットや16ビット等で表されるものであっても良い。また、本実施形態では、画素位置や動きベクトルの成分を実数として扱う。よって、前述の表記法において座標値を実数で渡した場合には、バイリニア補間によって算出された画素値、あるいは、動きベクトルを得るものとする。
また、以下に説明するフローチャートに示した全てのステップは上から順に実行されることに限らず、一部の処理ステップで順番を入れ替えても良いし、一部の処理ステップを並列に実行しても良い。
先ず、本実施形態に係る画像処理装置のハードウェア構成例について、図1(a)のブロック図を用いて説明する。なお、図1(a)に示した構成は、本実施形態に係る画像処理装置が行うものとして後述する各処理を実現可能な構成の一例であって、本実施形態に係る画像処理装置のハードウェア構成として適用可能な構成は、図1(a)に示した構成に限らない。
CPU102は、メモリ103に格納されているコンピュータプログラムやデータを用いて処理を実行する。これによりCPU102は、画像処理装置全体の動作制御を行うと共に、画像処理装置が行うものとして後述する各処理を実行若しくは制御する。
メモリ103は、HDD(ハードディスクドライブ)104からロードされたコンピュータプログラムやデータを格納するためのエリア、I/F(インターフェース)190を介して外部から受信したデータを格納するためのエリアを有する。更にメモリ103は、CPU102が各種の処理を実行する際に用いるワークエリアを有する。このようにメモリ103は、各種のエリアを適宜提供することができる。
HDD104には、OS(オペレーティングシステム)や、画像処理装置が行うものとして後述する各処理をCPU102に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。HDD104に保存されているデータには、以下の説明において既知の情報として説明するものが含まれている。HDD104に保存されているコンピュータプログラムやデータは、CPU102による制御に従って適宜メモリ103にロードされ、CPU102による処理対象となる。
I/F190は、画像処理装置が外部の機器とのデータ通信を行うための通信インターフェースとして機能するものであり、例えば、画像処理装置が以下の処理において用いる画像は、このI/F190を介して外部機器から取得される。CPU102、メモリ103、HDD104、I/F190は何れも、バス101に接続されている。
次に、従来のオプティカルフローの算出方法について、図2のフローチャートに沿って説明する。図2のフローチャートに従った処理は、ピラミッドLKを利用したオプティカルフロー算出処理である。図2に示したフローチャートに従った処理は、1枚の画像に対するオプティカルフローを求めるための処理である。然るに、例えば、複数枚の画像のそれぞれについてオプティカルフローを求める場合には、該複数の画像のそれぞれについて図2のフローチャートに従った処理を行えばよい。以下では、図1(a)の構成を有する画像処理装置が図2のフローチャートに従った処理を行うケースについて説明する。また、図2のフローチャートに従った処理を開始する段階では、既にメモリ103若しくはHDD104には、上記の第1の画像及び第2の画像が格納されているものとする。
ステップS2010では、CPU102は、第1の画像I及び第2の画像Iから生成する縮小画像の枚数である最大階層数(max_lv)を取得する。最大階層数max_lvは予め画像処理装置に設定されていたものであっても良いし、ユーザに入力させても良い。本実施形態では、I(I)を縮小率scale_factor(以下sfと呼称する:0<sf<1)に従ってmax_lv回縮小した縮小画像のサイズ(縦及び/又は横サイズ)がI(I)のサイズ(縦及び/又は横サイズ)の5%以下となるまで縮小を行うものとした。このとき、scale_factor=0.5とすると、以下の式1に示す如く、max_lv=5となる。
Figure 0006751663
以下では、Iを縮小率sfに従ってlv(lvは0〜max_lvを満たす整数)回縮小した縮小画像をI[lv]と表記する。また、Iを縮小率sfに従ってlv回縮小した縮小画像をI[lv]と表記する。つまり、I=I[0]、I=I[0]である。Iに対するI[lv]の縮小率scale(Iに対するI[lv]の縮小率scale)は以下の式2で表される。
Figure 0006751663
つまり、Iを縮小率scaleに従って縮小することでI[lv]が得られ、Iを縮小率scaleに従って縮小することでI[lv]が得られる。以下では一例として、sf=0.5であるものとするが、sfの値は0より大きく1未満であれば如何なる値であっても良い。なお、I[max_lv](I[max_lv])のサイズは、画像間の動き検出対象の動きが大きいほど小さく設定すべきであるが、処理時間など様々な要素によって応じて最適な設定をすることが望ましい。また、画像の縮小処理の際には、バイキュービック法を用いても良いし、Lanczos 3−lobed法などの方法を用いてもよい。
そしてCPU102は、変数lvの値にmax_lvを設定する。以下では、I[lv]及びI[lv]を階層lvにおける画像、I[0]及びI[0]は最小階層における画像、I[max_lv]及びI[max_lv]は最大階層における画像と称する場合がある。
ステップS2020では、CPU102は、lv=max_lvであるか否かを判断する。この判断の結果、lv=max_lvであれば、処理はステップS2025に進み、lv≠max_lvであれば、処理はステップS2030に進む。
ステップS2025では、CPU102は、階層(max_lv+1)におけるオプティカルフローの全ての要素の値を0に初期化する。以下では、階層lvにおけるオプティカルフローをflow[lv]と表記する。つまり、flow[max_lv+1]のサイズは、flow[max_lv]のsf倍である。flow[lv]の解像度はI[lv]、I[lv]の解像度と同じである。そして処理はステップS2050に進む。
一方、ステップS2030では、CPU102は、現在の変数lvの値を上記の式2に代入して、縮小率scaleを求める。そしてステップS2040でCPU102は、最近求めたオプティカルフロー(flow[lv+1])の各要素の値(動きベクトルの成分値)を1/sf倍してから、該オプティカルフローの縦横サイズを1/sf倍に拡大したflow’[lv+1]を生成する。拡大では、RGB画像の拡大においてR、G,Bそれぞれの成分を独立して処理するのと同様に、動きベクトルのX成分、Y成分を独立して処理する。この拡大には、バイリニア補間を用いても良いし、バイキュービック法等の他の方法を採用しても良い。
ステップS2050では、CPU102は、第1の画像IをステップS2030で求めた縮小率scaleで縮小した縮小画像I[lv]を生成する。更にCPU102は、第2の画像IをステップS2030で求めた縮小率scaleで縮小した縮小画像I[lv]を生成する。本実施形態では、エイリアシングが発生しにくい画像縮小方法として面積平均法を利用しているが、これに限定されず、例えばLanczos 3−lobed法などを用いてもよい。
ステップS2060では、CPU102は、I[lv]の各画素を水平・垂直に一次微分することで、I1x[lv],I1y[lv]を生成する。I1x[lv],I1y[lv]は、それぞれI[lv]に水平方向のSobelフィルタをかけた画像、垂直方向のSobelフィルタをかけた画像である。同様にCPU102は、I[lv]の各画素を水平・垂直に一次微分することで、I2x[lv],I2y[lv]を生成する。I2x[lv],I2y[lv]は、それぞれI[lv]に水平方向のSobelフィルタをかけた画像、垂直方向のSobelフィルタをかけた画像である。本実施形態では、一次微分はSobelフィルタによって実現されるものとするが、これに限らない。
ステップS2070では、CPU102は、I[lv],I[lv],I1x[lv],I1y[lv],I2x[lv],I2y[lv],flow’[lv+1]からLK法により、オプティカルフローflow[lv]を生成する。ここで、LK法について説明する。説明上、I=I[lv],I=I[lv],I1x=I1x[lv],I1y=I1y[lv],I2x=I2x[lv],I2y=I2y[lv]として説明する。
ここで、オプティカルフローflow’[lv+1]において着目画素位置C(=(Cx、Cy))に対応する要素である動きベクトルをu(C)と表記する(以下の式3を参照)。
Figure 0006751663
そして、上記の式3と以下の式4〜11を用いて、flow[lv]において着目画素位置Cに対応する要素である動きベクトルflow[lv](C)を求める。
Figure 0006751663
Figure 0006751663
Figure 0006751663
Figure 0006751663
Figure 0006751663
式中のΣは積分を示している。本実施形態では、着目画素位置を中心とすると7画素×7画素の領域内での積分を行うものとする。つまり、iは0から48の値をとり、Xiは、着目画素位置を中心とする49点の画素の相対座標である。
式4、式7はLK法における中間データであるA,bを算出する式である。Aやbを算出するには式4、式7で十分であるが、uを利用して画素をワーピングした画像I2xw、I2ywを事前に作っておき、式5,式8を適用しても処理としては同義である。
式6は、I(C)の定義である。式9は、A、bと動きベクトルの差分(du,dv)の関係を表す式である。式10は、(du,dv)を直接算出する式9の変形式である。式11は、最終的な動きベクトルを算出し、flow[lv](C)を生成する式である。I[lv](I[lv])の各画素位置を着目画素位置Cとして上記の処理を行うことで、オプティカルフローflow[lv]を得る。
ステップS2080では、CPU102は、変数lvの値を1つデクリメントする。そしてステップS2090では、CPU102は、変数lvの値が0以上であるか否かを判断する。この判断の結果、変数lvの値が0以上である場合には、処理はステップS2020に進み、変数lvの値が0未満であれば、CPU102は、以上の処理により生成されたflow[0]を出力する。そして図2のフローチャートに従った処理は終了する。flow[0]の出力先は特定の出力先に限らない。例えば、flow[0]をメモリ103やHDD104等のメモリに出力しても良いし、flow[0]をI/F190を介して外部の装置に対して送信しても良い。また、CPU102は、生成したflow[0]を用いて手ぶれ補正などの何らかの画像処理を行うようにしても良い。
本実施形態では、図3に示す如く、図2のフローチャートにおいてステップS2050とステップS2060との間でステップS3055の処理を行い、ステップS2070の代わりにステップS3070の処理を行う、所謂テンプレートマッチングを併用したオプティカルフローの算出処理を行う。本実施形態に係るオプティカルフローの算出処理について、図3のフローチャートを用いて説明する。図3のフローチャートにおいて図2と同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
ステップS3055ではCPU102は先ず、flow’[lv+1]における着目座標位置Cを基準とした複数の位置に対応する動きベクトルのうち、I[lv]内の着目座標位置Cに対応する画素位置から該動きベクトルに応じて離間した画素位置の画素値と、I[lv]内の着目座標位置Cに対応する画素位置の画素値と、の差分が小さい順に1つ以上の動きベクトルを特定する。そしてCPU102は、特定した1つ以上の動きベクトルから1つの動きベクトルを特定し、該特定した1つの動きベクトルを新オプティカルフローflow”[lv+1]における着目座標位置Cの要素とする。
以下にステップS3055における処理の詳細について説明する。ここで、複数の候補位置の配置パターンを図4のように規定する。図4では、候補位置Y0を原点とし、候補位置Y1〜Y12をY0に対する相対座標とする。つまり、候補位置Y0=(0,0)であり、候補位置Y1=(0、−3)、候補位置Y6=(3,3)となる。なお、候補位置の配置パターンは図4に示した配置パターンに限らないが、候補位置は充分に粗に配置することが望ましい。その理由については後述する。
先ずは、CPU102は、以下の式12〜14を用いて、上記の差分が小さい順に1つ以上の動きベクトルを特定する。
Figure 0006751663
Figure 0006751663
Figure 0006751663
式12は、画像Iaにおける着目座標位置Cを中心とする縦横サイズが(2r+1)のパッチと、画像Ibにおける着目座標位置Cを中心とする縦横サイズが(2r+1)のパッチと、で対応する画素位置の画素値の差の絶対値の総和SAD(Sum of Absolute Difference)を算出する式である。SADが低いほど画素の類似度が高いことになる。本実施形態ではr=2とするが、rの値は2に限らない。
式13は、ベクトルVが与えられた場合に、ベクトルVのx成分であるVx、y成分であるVyのそれぞれについて、四捨五入により整数値を得る式である。式13では、Vx(Vy)に0.5を足してfloor関数で計算することにより、四捨五入を行って数部を除去している。floor関数とは周知の通り、引数となる値の整数部を返す関数である。本実施形態では、sadの計算に際し、座標値をround関数を利用して整数化しているが、round関数を用いず次数として計算してもよい。この場合、前述のとおりバイリニア補間により画素値を得ることになる。
式14は、I[lv]内の着目位置Cにおける画素値と、I[lv]内の着目座標位置Cにflow’[lv+1]内の座標位置(C+Yi)における動きベクトル(式13により各成分の値は変換済み)を加えた画素位置の画素値と、の差分SADをi=0〜12について求め、求めたそれぞれの差分SADを小さい順にソートした場合に、先頭(最小の差分SADであり0番目)からn(nは0〜12の整数)番目の差分SADに対応するiをjとして返す関数である。ここでは、n=0として説明する。つまり、i=0〜12のうち、差分SADを最小にするiをjとして取得する。
つまり、上記の式12〜14により、差分SADを最小にするYjが求まるので、flow’[lv+1](C+Yj)、すなわち、ベクトルflow’[lv+1](C+Y0)〜flow’[lv+1](C+Y12)のうち差分SADを最小にするベクトルを特定することができる。そして以下の式15により、flow”[lv+1]において着目座標位置Cに対応する動きベクトルとして、flow’[lv+1](C+Yj)を設定する。
Figure 0006751663
以上説明した式12〜15を用いた処理を全ての着目座標位置Cについて行うことで、オプティカルフローflow”[lv+1]を完成させることができる。ここで、差分SADが小さい順にn番目の差分SADに対応するiを求めるための処理について、図5のフローチャートを用いて説明する。なお、rec[i]は、sとiを要素としてもつレコードの配列であり、その要素には、「.」を使って参照するものとして説明する。
ステップS5010では、CPU102は変数iを0に初期化する。ステップS5020では、CPU102は、上記の式に従って差分SADを算出し、該算出した差分SADをrec[i].sに代入する。ステップS5025では、CPU102は、rec[i].iに現在の変数iの値を代入する。ステップS5030では、CPU102は、変数iの値を1つインクリメントする。ステップS5035では、CPU102は、変数iの値が13未満であるか否かを判断する。この判断の結果、変数iの値が13未満であれば、処理はステップS5020に戻り、変数iの値が13以上であれば、処理はステップS5040に進む。ステップS5040では、CPU102は、recを昇順でソートする。その結果、rec[k].sには、最小の差分SADを0番目、最大の差分SADを12番目とすると、k番目の差分SADが格納されており、rec[k].iにはkの値が格納されている。そして図5のフローチャートによる処理の結果としてrec[n].iが返される。なお13個の差分SADのうち最小の差分に対応するiを返すのであれば、上記のソート処理は必須ではなく、単純に差分SADが最小となるときのiを探して返せばよい。
なお、変数lvの値がmax_lvである場合、ステップS3055では、上記の式15の代わりに以下の式16によってflow”[lv+1](C)を決定するようにしても良い。
Figure 0006751663
図3に戻って、ステップS3070では、CPU102は上記のステップS2070と同様の処理を行うが、その際、flow’[lv+1]の代わりにflow”[lv+1]を使用する。
次に、上記のステップS3055の追加と、ステップS2070をステップS3070に置き換えたことによる効果について、図6を用いて説明する。図6は被写体の境界を説明する図である。図6(a)では、バスが右から左に移動しているが、木は静止している状態を表している。この画像を縮小すると例えば太線の矩形が一画素になるように縮小される。図6(b)は、この矩形を拡大したもの表している。この矩形には静止した木の一部と動いているバスの一部が含まれており、等倍画像(I,I)に対応するオプティカルフローではこの矩形内に異なる複数の動きベクトルが存在する。そのため、縮小画像の画素(矩形)に対し割り当てる一つの動きベクトルと、より高解像度画像の階層や等倍画像の動きベクトルの関係は不定なものになる。図2のステップS2070の処理において入力となるflow’[lv+1]は縮小画像の階層のflow[lv+1]を単純に拡大したものであり、上記の問題を踏襲し、動被写体の境界の動きベクトルが不確かなものとなる。本実施形態では、ステップS3055においては、着目画素の周辺の画素に対応する複数の動きベクトルを参照し、着目画素に対しその動きベクトルが指す位置の画素との差分SADを計算し、差分SADが低い動きベクトルを選択している。これは、図6の例では、境界領域で不定であった動きベクトルでなく、その周辺の木、または、バスの領域に含まれる動きベクトルを選択していることになる。重要な点は、差分SADの算出にflow[lv+1]を算出した階層(lv+1)よりも高解像度の階層lvの画像I[lv],I[lv]を利用していることである。解像度が高いため、境界領域の動きベクトルの正確性が高まる。また、前述の配置パターンは、単純に着目画素の近傍とせず、着目画素から十分に遠く粗に配置している。これは、オプティカルフローの拡大処理により、オプティカルフローに一種のローパスフィルタがかかった状態にあり、境界だけでなく境界周辺の動きベクトルの正確度も低下している。本実施形態では、近傍4点を参照して拡大するバイリニア法を利用してオプティカルフローを2倍に拡大しているため、拡大後のオプティカルフローの動きベクトルは、半径2画素分以内の画素の動きベクトルの影響をうけてしまう。そのため、図4の配置パターンに設定される候補位置は互いに3画素以上離間している。仮に、拡大処理にタップ数の多いバイキュービック法や2倍以上の拡大を行う場合には、各候補位置は、図4の配置パターンよりも粗く配置することが好ましい。
本実施形態では、ステップS2070についてLK法を適用したが、それに限定されない。HK法など他の勾配法やテンプレートマッチングなど他の動き検出方法を用いることも可能である。
<変形例1>
第1の実施形態では、補間の演算量削減のために式12の関数が扱う画素位置を整数に限定したが、演算量削減不要であれば、画素位置を実数のまま扱い、補間した画素値で差分SADを算出してもよい。また、第1の実施形態では、対応の確からしさがより高い対応点を抽出するために、差分としてSADを求めているが、SADに限定せず、SSD(Sum of Squared Difference)や、重み付きSAD,SSDを用いてもよい。さらには、SIFT特徴量など画素の特徴量を多次元ベクトルで表現し、そのノルムを指標としてもよい。この場合もノルムが小さいほど、対応の確からしさは高いといえる。
<変形例2>
第1の実施形態では、13個の差分SADのうち最小の差分SADに対応する動きベクトルを用いてflow”[lv+1](C)を決定していた。しかし、13個の差分SADのうち最小の差分SAD及び最小から2番目の差分SADのそれぞれに対応する動きベクトルの平均をflow”[lv+1](C)としても良い。この場合、以下の式17〜19により、flow”[lv+1](C)を求めることができる。
Figure 0006751663
なお、13個の差分SADのうち最小の差分SADからp(pは3以上13未満の整数)番目の差分SADまでのそれぞれの差分SADに対応する動きベクトルの平均をflow”[lv+1](C)としても良い。
<変形例3>
第1の実施形態では、ステップS2040では、オプティカルフローflow[lv+1]を拡大してflow’[lv+1]を生成した。つまり、オプティカルフローをフレーム単位で拡大していたが、flow’[lv+1]を参照する個所で、画素ごとに画素値を計算する構成であっても同様の結果を得ることができる。
<変形例4>
第1の実施形態では、単一のカメラで撮像された連続する画像である第1の画像及び第2の画像を入力してオプティカルフローを算出するものとして説明した。しかし、入力はステレオ画像(一方の視点の画像を第1の画像、他方の視点の画像を第2の画像)であってもよい。連続する画像の動きは、ステレオ画像の場合には視差(両眼視差)にあたる。そのため、同じフローで、ステレオ画像から視差マップを生成することができる。
<変形例5>
第1の実施形態では、第1の画像及び第2の画像の階層lvに対応する縮小画像をステップS2020〜S2090のループを実行する度に逐一生成していた。しかし、第1の画像を縮小率sfで再帰的に縮小した(max_lv)枚の縮小画像、第2の画像を縮小率sfで再帰的に縮小した(max_lv)枚の縮小画像を一度に生成しておいても良い。この場合、ステップS2030の処理をステップS2020の前に行う。そして、ステップS2050では、第1の画像を縮小率sfで再帰的に縮小した(max_lv)枚の縮小画像、第2の画像を縮小率sfで再帰的に縮小した(max_lv)枚の縮小画像のうち、階層lvに対応する縮小画像を取得すればよい。また、各階層毎に縮小率を変えても良い。
[第2の実施形態]
本実施形態を含め、以下では第1の実施形態との差分について重点的に説明し、以下で特に触れない限りは第1の実施形態と同様であるものとする。本実施形態では、オブジェクト同士のオクルージョンを考慮してオプティカルフローの算出を行う。
本実施形態に係るオプティカルフローの算出処理について、図7のフローチャートを用いて説明する。図7のフローチャートにおいて図2,3と同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。図7では、図3のフローチャートにおいてステップS3055の処理の代わりにステップS7053及びステップS7055の処理を行う。
ステップS7035では、CPU102は、I[lv]中の各画素に対する「オクルージョンに含まれると推定される度合い(オクルージョン度)」が登録されたマップとしてオクルージョン度マップOを取得する。つまり、オクルージョン度マップOは第1の画像及び第2の画像と同一の解像度を持つ二次元データである。オクルージョン度マップOにおいて着目座標位置Cにおける値O(C)は、例えば、次のような方法でもって求めることができる。
先ず、以下の式20に従って、flow’[lv+1](C)のx成分(flow’[lv+1](C))にラプラシアンフィルタをかけることでgx(C)を生成する。Kは7x7のDoGフィルタのカーネルである。
Figure 0006751663
同様に、以下の式21に従って、flow’[lv+1](C)のy成分(flow’[lv+1](C))にラプラシアンフィルタをかけることでgy(C)を生成する。
Figure 0006751663
そして、以下の式22を用いて、式20で求めたgx(C)と式21で求めたgy(C)との二乗和の平方根の値を、オクルージョン度マップOの着目座標位置Cにおける値(オクルージョン度O(C))として求める。
Figure 0006751663
以上の式20〜22に従った処理をflow’[lv+1]上の全ての着目座標位置Cについて行うことで、オクルージョン度マップOを生成することができる。式20〜22の処理は、オプティカルフローを画像とみなした場合のエッジ量を算出することに相当する。
オクルージョン領域は、異なる動きを持つ被写体の境界に発生する。つまり、オプティカルフローを画像とみなした場合のエッジ部分に発生するといえる。本実施形態ではこの現象を考慮し、オプティカルフローのエッジの度合いが大きいほどオクルージョンの度合いが大きいものとしてオクルージョン度マップを生成している。そのためエッジ検出作用のある7x7のラプラシアンをかけた。しかし、フィルタのカーネルサイズは特定のサイズに限るものではなく、演算量の増加を容認するのであれば、大きなサイズのフィルタを用いてもよい。また、エッジ検出のアルゴリズムもラプラシアンフィルタに限定されず、DoG(Difference of Gaussian)処理によりオプティカルフローのエッジを検出してもよい。また、例えば非特許文献5にあるように、フィルタ処理によらないオクルージョン領域の検出を用いてもよい。
ステップS7055では、CPU102は、式14の代わりに以下の式23を用いて、i=0〜12のうち差分SADを最小にするiをjとして取得する。
Figure 0006751663
式14と式23とでは、I[lv]について参照する画素位置が異なる。式23によれば、式23のOの引数である座標が示すオクルージョン度が大きいほど、選択されにくくなる。なお、式23の代わりに以下の式24を用いて、i=0〜12のうち差分SADを最小にするiをjとして取得するようにしても良い。
Figure 0006751663
[lv]における画素位置(C+Yi)がオクルージョンであれば、それに対応するflow’[lv+1](C+Yi)の正確性も低いことが想定されるため、O(C+Yi)を加味するだけでも同等の効果をえることができる。
このように、オクルージョン度を考慮して、i=0〜12のうち差分SADを最小にするiをjとして取得する処理を行うことで、第1の実施形態よりもさらに精度の高い動きベクトルの抽出が可能となる。
[第3の実施形態]
第2の実施形態に係るオプティカルフロー算出処理を実行する画像処理装置のハードウェア構成例を図1(b)に示す。図1(b)において図1(a)に示した機能部と同じ機能部については同じ参照番号を付しており、該機能部に係る説明は省略する。
図1(b)の構成では、図7のフローチャートに従った処理をCPU102が制御し、その制御の元、各ステップにおける処理を、以下に説明する各機能部が分担して実行する。
上記の第1の画像及び第2の画像を含む処理対象の画像は、画像入力部113によってメモリ103や不揮発メモリ105に格納される。画像縮小部106は、第1の画像や第2の画像に対する縮小処理、すなわち、上記のステップS2050における処理を行う。オプティカルフロー拡大部107は、オプティカルフローの要素及びサイズの変換処理、すなわち、上記のステップS2040の処理を行う。
オクルージョン度マップ生成部108は、オクルージョン度マップOの生成処理、すなわち、上記のステップS7053の処理を行う。画像フィルタ部109は、例えばSobelフィルタ処理を行って、画像の各画素を水平・垂直に一次微分する処理、すなわち、上記のステップS2060の処理を行う。
対応抽出部110は、指標算出部111を制御して差分SADを算出させ、算出した差分SADのうち最小の差分SADに対応する動きベクトルを用いて上記のflow”[lv+1]を算出する処理、すなわち上記のステップS7055の処理を行う。
指標算出部111は、対応抽出部110による制御の元、差分SADを算出する処理、すなわち、図5の上記のステップS5020における処理を行う。なお、指標算出部111は差分SADの代わりに、SSDやSIFT特徴量の差分のノルムを算出してもよい。
対応算出部112は、画像縮小部106が生成した縮小画像、対応抽出部110が生成したオプティカルフロー、画像フィルタ部109が生成したフィルタ処理済みの画像を用いてLK法によりオプティカルフローの算出処理(ステップS3070)を行う。
本実施形態では、バスやメモリを介してデータをやりとりするがこれに限定されない。各処理部を直結してデータをやりとりする構成であってもよい。そのときは、フィルタ処理やワーピング処理用のラインバッファを各処理部がもち、画素単位で処理するパイプラインを構成することになる。また、各処理部が複数のインスタンスを持つ構成をとってもよい。
図1(b)において、CPU102、メモリ103、不揮発メモリ105、I/F190を除く機能部はハードウェアで実装しても良いし、ソフトウェア(コンピュータプログラム)で実装しても良い。後者の場合、このソフトウェアは不揮発メモリ105に保存されている。そしてCPU102がこのソフトウェアを不揮発メモリ105からメモリ103に読み出して実行することで、対応する機能部の機能を実現する。
また、以上説明した各実施形態や各変形例は、その一部若しくは全部を適宜組み合わせて若しくは選択的に使用しても構わない。まとめると、一般にピラミッド処理を利用して画素単位の動きベクトルの集合であるオプティカルフローを算出する方法では、解像度の低い階層のオプティカルフローを入力し、着目階層のオプティカルフローを算出する。上記の実施形態では、オプティカルフローを算出した階層よりも高解像度の階層の画像情報を用いて、動きベクトルを表現する2つの画素の対応の確からしさを現す指標を算出する工程が存在する。そして、解像度の低い階層のオプティカルフロー動きベクトルを、着目画素の周辺画素に対応する動きベクトルから、より対応の確からしさが高い動きベクトルを算出して置き換える。この動きベクトルがおきかえられたオプティカルフローを利用して着目階層のオプティカルフローを算出する。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
102:CPU 103:メモリ 104:HDD

Claims (11)

  1. 第1の画像及び該第1の画像を縮小することで得られる複数の縮小画像のそれぞれを含む第1の画像群と、第2の画像及び該第2の画像を縮小することで得られる複数の縮小画像のそれぞれを含む第2の画像群と、を用いた階層処理を実行することにより、前記第1の画像と前記第2の画像との間における動きベクトルを示すオプティカルフローを生成する画像処理装置であって、
    前記第1の画像群および前記第2の画像群のそれぞれから、処理対象の階層に対応する解像度の画像を、第1の取得画像および第2の取得画像として取得する取得手段と、
    前記処理対象の階層の解像度より低解像度の階層に対応するオプティカルフローを、前記処理対象の階層の解像度に変換した変換済みオプティカルフローを生成する変換手段と、
    前記変換済みオプティカルフローと、前記第1の取得画像と、前記第2の取得画像と、に基づいて、前記処理対象の階層に対応する解像度の新オプティカルフローを生成する第1の生成手段と、
    前記処理対象の階層より低解像度の階層から生成した前記新オプティカルフロー前記第1の取得画像と、前記第2の取得画像と、を用いて、前記処理対象の階層の解像度に対応するオプティカルフローを生成する第2の生成手段と、
    前記取得手段、前記変換手段、前記第1の生成手段、および前記第2の生成手段の処理を低解像度の階層から順に繰り返す階層処理を実行することで得られる、前記第1の画像と前記第2の画像との間における前記オプティカルフローを出力する出力手段と
    を備えることを特徴とする画像処理装置。
  2. 前記第1の生成手段は、前記新オプティカルフローにおける着目座標位置毎に、前記変換済みオプティカルフローにおける該着目座標位置の画素および該着目座標位置の周辺の複数の画素に対応する動きベクトルを抽出し、前記第2の取得画像内の該着目座標位置から該動きベクトルそれぞれに応じて離間した画素位置の画素値それぞれと、前記第1の取得画像内の該着目座標位置に対応する画素位置の画素値と、の差分に基づいて、前記抽出した動きベクトルから前記新オプティカルフローにおける前記着目座標位置の動きベクトルを特定することを特徴とする請求項1に記載の画像処理装置。
  3. 前記第1の生成手段は、前記差分が最小となる1つの動きベクトルを特定する
    ことを特徴とする請求項に記載の画像処理装置。
  4. 前記第1の生成手段は、前記差分が小さい順に複数の動きベクトルを特定し、特定した複数の動きベクトルの平均を前記着目座標位置における要素とする新オプティカルフローを生成することを特徴とする請求項に記載の画像処理装置。
  5. 前記第1の生成手段は、
    前記変換済みオプティカルフローの各座標位置におけるエッジ量を求め、
    前記変換済みオプティカルフローにおける着目座標位置を基準とした複数の位置に対応する動きベクトルのうち、前記着目座標位置から該動きベクトルに応じて離間した画素位置におけるエッジ量と前記差分との積が小さい順に1つの動きベクトルを特定する
    ことを特徴とする請求項に記載の画像処理装置。
  6. 前記第1の生成手段は、
    前記変換済みオプティカルフローの各座標位置におけるエッジ量を求め、
    前記変換済みオプティカルフローにおける着目座標位置を基準とした複数の位置に対応する動きベクトルのうち、該位置におけるエッジ量と前記差分との積が小さい順に1つの動きベクトルを特定する
    ことを特徴とする請求項に記載の画像処理装置。
  7. 前記第1の画像及び前記第2の画像のそれぞれは、複数台の撮像装置において同時刻、若しくは互いに異なる時刻に撮像された画像であることを特徴とする請求項1乃至の何れか1項に記載の画像処理装置。
  8. 前記第1の画像及び前記第2の画像のそれぞれは、単一の撮像装置において互いに異なる時刻に撮像された画像であることを特徴とする請求項1乃至の何れか1項に記載の画像処理装置。
  9. 前記第1の画像及び前記第2の画像のそれぞれは、ステレオ画像を構成する一方の視点の画像及び他方の視点の画像であることを特徴とする請求項1乃至の何れか1項に記載の画像処理装置。
  10. 第1の画像及び該第1の画像を縮小することで得られる複数の縮小画像のそれぞれを含む第1の画像群と、第2の画像及び該第2の画像を縮小することで得られる複数の縮小画像のそれぞれを含む第2の画像群と、を用いた階層処理を実行することにより、前記第1の画像と前記第2の画像との間における動きベクトルを示すオプティカルフローを生成する画像処理装置が行う画像処理方法であって、
    前記画像処理装置の取得手段が、前記第1の画像群および前記第2の画像群のそれぞれから、処理対象の階層に対応する解像度の画像を、第1の取得画像および第2の取得画像として取得する取得工程と、
    前記画像処理装置の変換手段が、前記処理対象の階層の解像度より低解像度の階層に対応するオプティカルフローを、前記処理対象の階層の解像度に変換した変換済みオプティカルフローを生成する変換工程と、
    前記画像処理装置の第1の生成手段が、前記変換済みオプティカルフローと、前記第1の取得画像と、前記第2の取得画像と、に基づいて、前記処理対象の階層に対応する解像度の新オプティカルフローを生成する第1の生成工程と、
    前記画像処理装置の第2の生成手段が、前記処理対象の階層より低解像度の階層から生成した前記新オプティカルフロー前記第1の取得画像と、前記第2の取得画像と、を用いて、前記処理対象の階層の解像度に対応するオプティカルフローを生成する第2の生成工程と、
    前記画像処理装置の出力手段が、前記取得工程、前記変換工程、前記第1の生成工程、および前記第2の生成工程を低解像度の階層から順に繰り返す階層処理を実行することで得られる、前記第1の画像と前記第2の画像との間における前記オプティカルフローを出力する出力工程と
    を備えることを特徴とする画像処理方法。
  11. コンピュータを、請求項1乃至の何れか1項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
JP2016251918A 2016-11-24 2016-12-26 画像処理装置、画像処理方法 Active JP6751663B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016251918A JP6751663B2 (ja) 2016-12-26 2016-12-26 画像処理装置、画像処理方法
US15/818,006 US10818018B2 (en) 2016-11-24 2017-11-20 Image processing apparatus, image processing method, and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016251918A JP6751663B2 (ja) 2016-12-26 2016-12-26 画像処理装置、画像処理方法

Publications (3)

Publication Number Publication Date
JP2018107615A JP2018107615A (ja) 2018-07-05
JP2018107615A5 JP2018107615A5 (ja) 2020-02-06
JP6751663B2 true JP6751663B2 (ja) 2020-09-09

Family

ID=62788179

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016251918A Active JP6751663B2 (ja) 2016-11-24 2016-12-26 画像処理装置、画像処理方法

Country Status (1)

Country Link
JP (1) JP6751663B2 (ja)

Also Published As

Publication number Publication date
JP2018107615A (ja) 2018-07-05

Similar Documents

Publication Publication Date Title
US10818018B2 (en) Image processing apparatus, image processing method, and non-transitory computer-readable storage medium
US10388018B2 (en) Image processing apparatus, image processing method, and storage medium
JP5555706B2 (ja) 高解像度映像獲得装置およびその方法
JP6554900B2 (ja) テンプレート作成装置及びテンプレート作成方法
JP6512100B2 (ja) 画像処理を実行する情報処理装置及び画像処理方法
JP2007000205A (ja) 画像処理装置及び画像処理方法並びに画像処理プログラム
US10692215B2 (en) Image processing apparatus, image processing method, and storage medium
JP2021060989A (ja) マルチモーダル密対応関係撮像システム
JP2019114103A (ja) 物体認識処理装置、物体認識処理方法及びプログラム
JP7312026B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP2018195084A (ja) 画像処理装置及び画像処理方法、プログラム、記憶媒体
CN111630569B (zh) 双目匹配的方法、视觉成像装置及具有存储功能的装置
JP5656768B2 (ja) 画像特徴量抽出装置およびそのプログラム
TW201436552A (zh) 用於使用至少一較高訊框率之影像流而增加影像流之訊框率之方法及裝置
JP6075294B2 (ja) 画像処理システム及び画像処理方法
JP6261199B2 (ja) 情報処理装置、情報処理方法、及び、コンピュータプログラム
JP2017130042A (ja) 映像処理装置、映像処理方法、及びプログラム
WO2014132754A1 (ja) 画像処理装置および画像処理方法
JP7364959B2 (ja) 被写体別特徴点分離装置、被写体別特徴点分離方法及びコンピュータプログラム
JP7589017B2 (ja) 画像処理装置、画像処理方法、およびプログラム
JP5737387B2 (ja) 画像処理装置
US11164286B2 (en) Image processing apparatus, image processing method, and storage medium
JP6751663B2 (ja) 画像処理装置、画像処理方法
JP2013164789A (ja) 類似画像領域探索装置、類似画像領域探索方法、及び類似画像領域探索プログラム
JPWO2014077024A1 (ja) 画像処理装置、画像処理方法および画像処理プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191217

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200709

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: 20200717

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200817

R151 Written notification of patent or utility model registration

Ref document number: 6751663

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151