(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-12
(45)【発行日】2022-12-20
(54)【発明の名称】動きボケ除去装置、プログラム及び学習方法
(51)【国際特許分類】
G06T 5/00 20060101AFI20221213BHJP
【FI】
G06T5/00 710
(21)【出願番号】P 2020002903
(22)【出願日】2020-01-10
【審査請求日】2022-01-07
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】徐 建鋒
(72)【発明者】
【氏名】田坂 和之
(72)【発明者】
【氏名】周 雅
【審査官】板垣 有紀
(56)【参考文献】
【文献】国際公開第2017/125980(WO,A1)
【文献】WANG, Xintao et al.,EDVR: Video Restoration With Enhanced Deformable Convolutional Networks,2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW),米国,2019年06月16日,https://ieeexplore.ieee.org/document/9025464
【文献】柏原 考爾,畳み込みニューラルネットワークによる静脈画像の超解像処理,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2016年08月18日,第116巻 第196号,pp.39~44
(58)【調査した分野】(Int.Cl.,DB名)
G06T 5/00
G06T 7/00
H04N 5/222 ー 5/257
(57)【特許請求の範囲】
【請求項1】
映像上の連続フレームを入力テンソルとして読み込み、当該連続フレーム内の1フレームについて動きボケを除去した出力テンソルを得る、畳込ニューラルネットワークを用いた動きボケ除去装置であって、
入力テンソルに対して時間相関及び空間相関を考慮して動きボケ除去した出力テンソルを得るように構成されているメインネット部と、
入力テンソルより少なくとも動き情報(T311)を含む特徴マップを抽出したうえで、当該特徴マップに畳込処理を適用することにより前記連続フレーム内の1フレームに対応する動きボケ関連情報(T30)を抽出するサブネット部と、を備え、
前記動きボケ関連情報が前記メインネット部において結合に用いられることを特徴とする動きボケ除去装置。
【請求項2】
前記サブネット部は、入力テンソルより、動き情報(T311)、コントラスト情報(T312)及び勾配情報(T313)を含むものとして前記特徴マップを抽出することを特徴とする請求項1に記載の動きボケ除去装置。
【請求項3】
前記メインネット部は、入力テンソルから出力テンソルを得る際に順番に、
時間アテンション及び空間アテンションを用いた特徴抽出を実行すること(5)と、
前記動きボケ関連情報(T30)の結合を行うこと(6)と、を実行することを特徴とする請求項1または2に記載の動きボケ除去装置。
【請求項4】
前記メインネット部は、入力テンソルから出力テンソルを得る際に順番に、
前記動きボケ関連情報(T30)の結合を行うこと(6)と、
前記動きボケ関連情報(T30)の結合で得たテンソルを画像空間へと再構成すること(7)と、を実行することを特徴とする請求項1ないし3のいずれかに記載の動きボケ除去装置。
【請求項5】
入力テンソルより動きボケ情報が反映された特徴マップを抽出したうえで、当該特徴マップより入力テンソルの時間軸に沿ったアテンション係数(T20)を抽出する調整部をさらに備え、
前記アテンション係数が前記メインネット部において積算に用いられることを特徴とする請求項1ないし4のいずれかに記載の動きボケ除去装置。
【請求項6】
映像上の連続フレームを入力テンソルとして読み込み、当該連続フレーム内の1フレームについて動きボケを除去した出力テンソルを得る、畳込ニューラルネットワークを用いた動きボケ除去装置であって、
入力テンソルに対して時間相関及び空間相関を考慮して動きボケ除去した出力テンソルを得るように構成されているメインネット部と、
入力テンソルより動きボケ情報が反映された特徴マップを抽出したうえで、当該特徴マップより入力テンソルの時間軸に沿ったアテンション係数(T20)を抽出する調整部と、を備え、
前記アテンション係数が前記メインネット部において積算に用いられることを特徴とする動きボケ除去装置。
【請求項7】
前記調整部は、入力テンソルに対してラプラス演算子を適用することで前記動きボケ情報が反映された特徴マップ(Lap(ft))を抽出し、当該特徴マップの分散として前記アテンション係数(T20)を抽出することを特徴とする請求項5または6に記載の動きボケ除去装置。
【請求項8】
前記メインネット部は、入力テンソルから出力テンソルを得る際に順番に、
マルチスケールの動きを考慮して特徴抽出すること(3)と、
前記アテンション係数(T20)による積算を行うこと(4)と、を実行することを特徴とする請求項5ないし7のいずれかに記載の動きボケ除去装置。
【請求項9】
前記メインネット部は、入力テンソルから出力テンソルを得る際に順番に、
前記アテンション係数(T20)による積算を行うこと(4)と、
時間アテンション及び空間アテンションを用いた特徴抽出を実行すること(5)と、を実行することを特徴とする請求項8に記載の動きボケ除去装置。
【請求項10】
前記メインネット部は、少なくとも1つの残差ネット構造(RN)を有しており、当該残差ネット構造に、チャネルアテンション機構(CA)が備わることを特徴とする請求項1ないし9のいずれかに記載の動きボケ除去装置。
【請求項11】
請求項1ないし5のいずれかに記載の動きボケ除去装置が用いる畳込ニューラルネットワークのモデルの、学習データを用いた学習方法であって、
学習の際の損失関数が、前記特徴マップにおける動き情報(watt)が大きいほど損失の値が大きくなるように構成されていることを特徴とする学習方法。
【請求項12】
前記損失関数は、前記特徴マップにおけるピクセル位置ごとに動き情報(watt)が大きいほど損失の値が大きくなるように定義されることで、空間アテンションを適用するものとして構成されていることを特徴とする請求項11に記載の学習方法。
【請求項13】
コンピュータを請求項1ないし10のいずれかに記載の動きボケ除去装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動きボケを効果的に除去することのできる動きボケ除去装置及びプログラムと、その学習方法に関する。
【背景技術】
【0002】
映像を対象にする動きボケ(モーションブラー)を除去する技術が近年開発された。例えば、非特許文献1は第1回の映像の動きボケ除去(deblurring)を含むチャレンジを実施し、関連技術開発が活発になされている。前記チャレンジでは非特許文献2の手法が優勝した。
【0003】
非特許文献2で提案された手法(動きボケ除去又は超解像)は、入力映像から連続の5フレームを用いて真ん中のフレームにモーションブラーを補償・除去しており、具体的に動きボケ除去に関して次のような手順が取られている。まず、ダウンサンプリング部(Downsampling)では、処理の計算量を低減させるため、入力の連続5フレームを1/4にダウンサンプリングする。次に、ボケ除去前処理モジュール(PreDeblur Module)では、アラインメントの準備のため、各フレームの予備処理を行う。次に、PCD位置合わせモジュール(PCD (pyramid, cascading, deformable;ピラミッドカスケーディング変形可能) Align Module)では、参考フレームに対して各フレームのアラインメントを行う。そして、TSA統合モジュール(TSA (Temporal and Spatial Attention;時間空間アテンション) Fusion Module)では、複数のフレームの特徴マップを一枚のフレームに統合する。そして、再構成モジュール(Reconstruction Module)では、統合した特徴マップから再構成する。最後に、アップサンプリング部(Upsampling)では、入力映像と同じサイズまでアップサンプリングする。
【先行技術文献】
【非特許文献】
【0004】
【文献】Seungjun Nah, et al. "NTIRE 2019 challenge on video deblurring: methods and results." (CVPRW 2019).
【文献】Wang, Xintao , et al. "EDVR: Video Restoration with Enhanced Deformable Convolutional Networks." (CVPR 2019)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献2の手法では次のような事情への考慮がなされていない点で、改良の余地が残っていた。動きボケに関して、発生要因となる動き情報(オプティカルフローなどで算出可能)が重要であるが、非特許文献2ではこの動き情報の利用がなされていなかった。また、また、空間上で動きボケの強さが変化しうることと、時間軸上でフレーム毎に動きボケの強さが変化しうることも、非特許文献2では考慮されていなかった。
【0006】
上記が考慮されていないことにより、非特許文献2の動きボケ除去では具体的に例えば次のような映像に関して、動きボケ除去の結果が不十分であったり不適切となったりすることがあった。例えば、木が風に揺れている映像において、木の葉の動きが強いことにより動きボケも強い箇所に関して、動きボケ除去の程度が不十分となることがあった。また例えば、建築物の柱が写っている映像に対して動きボケ除去を適用した結果として、本来は直線形状として構成されている柱が歪んで曲がった形状として再構成されてしまい、画像構造を変えてしまうという点で動きボケ除去の結果が不適切となることがあった。
【0007】
上記従来技術の課題に鑑み、本発明は、動きボケを効果的に除去することができる動きボケ除去装置及びプログラムを提供することを第1の目的とする。また、これに対応する効果的な学習方法を提供することを第2の目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明は、映像上の連続フレームを入力テンソルとして読み込み、当該連続フレーム内の1フレームについて動きボケを除去した出力テンソルを得る、畳込ニューラルネットワークを用いた動きボケ除去装置であって、入力テンソルに対して時間相関及び空間相関を考慮して動きボケ除去した出力テンソルを得るように構成されているメインネット部と、入力テンソルより少なくとも動き情報(T311)を含む特徴マップを抽出したうえで、当該特徴マップに畳込処理を適用することにより前記連続フレーム内の1フレームに対応する動きボケ関連情報(T30)を抽出するサブネット部と、を備え、前記動きボケ関連情報が前記メインネット部において結合に用いられること、または、コンピュータを前記動きボケ除去装置として機能させること、を第1の特徴とする。
【0009】
また、本発明は、映像上の連続フレームを入力テンソルとして読み込み、当該連続フレーム内の1フレームについて動きボケを除去した出力テンソルを得る、畳込ニューラルネットワークを用いた動きボケ除去装置であって、入力テンソルに対して時間相関及び空間相関を考慮して動きボケ除去した出力テンソルを得るように構成されているメインネット部と、入力テンソルより動きボケ情報が反映された特徴マップを抽出したうえで、当該特徴マップより入力テンソルの時間軸に沿ったアテンション係数(T20)を抽出する調整部と、を備え、前記アテンション係数が前記メインネット部において積算に用いられること、または、コンピュータを前記動きボケ除去装置として機能させること、を第2の特徴とする。
【0010】
さらに、本発明は、前記動きボケ除去装置が用いる畳込ニューラルネットワークのモデルの、学習データを用いた学習方法であって、学習の際の損失関数が、前記特徴マップにおける動き情報(watt)が大きいほど損失の値が大きくなるように構成されていることを第3の特徴とする。
【発明の効果】
【0011】
前記第1の特徴によれば動きボケ関連情報の利用により、前記第2の特徴によればアテンション係数の利用によりそれぞれ、動きボケを効果的に除去することができ、前記第1の目的が達成される。前記第3の特徴によれば、学習の際の損失関数として動き情報を考慮したものを用いることにより、効果的に学習を行うことができ、前記第2の目的が達成される。
【図面の簡単な説明】
【0012】
【
図1】一実施形態に係る動きボケ除去装置の機能ブロック図である。
【
図2】チャネルアテンションの機構を追加した残差ネットの構造図である。
【
図3】
図2のチャネルアテンション処理の構成を、処理されるテンソルの模式例と共に示す図である。
【
図4】
図3のチャネルアテンション処理において処理される各テンソルのサイズ(縦×横×チャネル数)を変数表記(及び定数表記)で列挙したものを表として示す。
【
図5】サブネット部における処理の構成を、処理されるテンソルの模式例と共に示す図である。
【
図6】動きボケ除去装置の種々の実施形態と対比例としての非特許文献2の手法とにおける動き除去の効果を示す図である。
【
図7】PCD位置整合部の処理の構成を、処理されるテンソルの模式例と共に示す図である
【
図8】TSA統合部の処理の構成を、処理されるテンソルの模式例と共に示す図である。
【
図9】一般的なコンピュータ装置におけるハードウェア構成を示す図である。
【発明を実施するための形態】
【0013】
図1は、一実施形態に係る動きボケ除去装置100の機能ブロック図であり、予め学習された畳込ニューラルネットワークモデルを用いて入力の複数フレームから動きボケ除去された1フレームを出力する際の、当該ネットワーク構造内におけるテンソル量の処理の流れを示す図である。
【0014】
その全体的な処理内容として、動きボケ除去装置100は、映像における2N+1枚(所定数N≧1)の時間的に連続したフレーム画像F(t)(フレーム時刻番号t=1,2,…,2N,2N+1)を入力テンソルT0として受け取り、この2N+1枚のフレームのうち時間軸上で真ん中の位置(時間進行順にN+1枚目の位置)にあるフレームF画像(N+1)について動きボケを除去した画像を出力テンソルT9として出力するものである。
【0015】
例えば、N=2であり入力テンソルT0が5枚の時間的に連続したフレーム画像で構成される場合、出力テンソルT9は5枚のうちの真ん中の3枚目のフレーム画像に対して動きボケ除去が適用された画像で構成されることとなる。(
図1では入力テンソルT0の模式例として5枚のフレーム画像である場合を示している。)
【0016】
図示するように、動きボケ除去装置100は、メインネット部10、調整部20及びサブネット部30を備え、メインネット部10は、ダウンサンプル部1、前処理部2、PCD位置整合部3、積算部4、TSA統合部5、結合部6、再構成部7、アップサンプル部8及び加算部9を備える。
【0017】
本実施形態の動きボケ除去装置100は、非特許文献2に開示される時間相関及び空間相関を考慮した動きボケ除去手法を改良したものに相当する。具体的に改良点を提供している構成として、調整部20及びこの調整部20の寄与を反映させる積算部4、サブネット部30及びこのサブネット部30の寄与を反映させる結合部6と、が挙げられる。すなわち、動きボケ除去装置100から調整部20及びサブネット部30を省略することによりメインネット部10のみを備える構成において、当該寄与を反映させる箇所としての結合部6と積算部4とを省略すると、基本的には非特許文献2と同一の処理の枠組み(ネットワーク構造)で動きボケ除去を行う構成とすることができる。
【0018】
ただし、メインネット部10内においても、前処理部2及び再構成部7の処理に関しては、非特許文献2に示される手法に対して本実施形態では改良点を提供した処理とすることができる。
【0019】
以下、動きボケ除去装置100の各部の処理内容の詳細に関して説明する。動きボケ除去装置100への入力データは既に説明した通り、2N+1枚の時間的に連続したフレーム画像で構成されるテンソルT0である。図示されるように、当該入力テンソルT0はダウンサンプル部1と、調整部20と、サブネット部30と、加算部9と、にそれぞれ入力される。メインネット部10において入力テンソルT0が加算部9に対してスキップ接続されることで、本実施形態の動きボケ除去装置100は、非特許文献2と同様に、残差ネット(ResNet)の構造を有している。なお、メインネット部10においては、非特許文献2と同様の枠組みにより、TSA統合部5が出力するテンソルT5以降のテンソルT5,T6,T7,T8,T9が2N+1枚の連続フレームのうちの真ん中の1枚のみに対応するテンソルとなり、これより前のテンソルT1,T2,T3,T4は、2N+1枚の連続フレームに対応するテンソルとなる。
【0020】
<ダウンサンプル部1>
ダウンサンプル部1は、入力テンソルT0を畳込によりダウンサンプリングして得られるテンソルT1を前処理部2へと出力する。入力テンソルT0を構成する各フレーム画像が縦Hピクセル、横Wピクセル(サイズH×W)であれば、例えば一定割合r(r>1)だけ縮小したサイズ(H/r)×(W/r)で各画像が構成されるものとしてテンソルT1を得るようにダウンサンプリングを行えばよい。
【0021】
なお、以下の説明でも適宜、処理対象となるテンソルのサイズに関して縦サイズH及び横サイズWに加え、チャネル数Cや割合r等について言及するが、これらH,W,C,r等の変数による説明は、当該説明している処理に関連するローカルな範囲でのサイズの関係(例えば後述する
図4)に関するものであり、H,W,C,r等の変数による説明を用いた際は、動きボケ除去装置100の全体に渡って共通なグローバルな変数を意味するものではないものとする。
【0022】
同様に、説明用の変数利用の簡素化の観点から「フレームF(t)」(フレーム時刻番号t=1,2,…,2N,2N+1)と称する場合は、当該説明している文脈で扱われているテンソルに応じたフレームを表すものとする。すなわち、通常の映像として構成されている入力テンソルT0における時刻tに対応するフレーム画像をフレームF(t)と称するのみでなく、中間データとしての各テンソルにおいて時刻tに該当するスライス(当該時刻tのチャネル成分に関して縦×横のサイズを有する空間分布マップ)を切り出したものについても、フレームF(t)と呼ぶこととする。
【0023】
<前処理部2>
前処理部2では、ダウンサンプル部1によりダウンサンプリングされたテンソルT1に対して効果的に動きボケ除去が可能となるようにするための前処理を適用し、得られたテンソルT2をPCD位置整合部3へと出力する。
【0024】
前処理部2では、基本的には非特許文献2の要素手法(Predeblur)と同様に、残差ネットを利用した特徴抽出によりテンソルT1からテンソルT2を得るが、本実施形態では動きボケ除去効果を向上すべく、チャネルアテンションの機構をさらに追加した残差ネットにより、特徴抽出を行う。
【0025】
図2は、チャネルアテンションの機構を追加した残差ネットの構造図である。図示されるように、残差ネット構造RNは、第1畳込処理CONV-1、第1活性化処理ReLU-1、第2畳込処理CONV-2、チャネルアテンション処理CA及び加算処理ADを行うものとして構成され、残差ネット構造RNによる全体的な処理として入力テンソルT100より出力テンソルT200を得るものである。入力テンソルT100は第1畳込処理CONV-1の入力となることに加え、スキップ接続により加算処理ADの入力となることにより、残差ネットが形成されている。前処理部2は、
図2に示す残差ネット構造RNによる処理を複数回(例えば5回)繰り返すことにより、テンソルT1からテンソルT2を得るものである。(換言すれば、前処理部2のネットワーク構造は、
図2に示す残差ネット構造RNを複数個(例えば5個)だけ直列に接続したものである。)
【0026】
図2に示されるように、残差ネット構造RNの各処理は次の通りである。第1畳込処理CONV-1は入力テンソルT100に畳込処理を適用して得られるテンソルT101を第1活性化処理ReLU-1への入力とする。第1活性化処理ReLU-1はテンソルT101に正規化線形ユニット(ReLU)等による活性化演算を施して得られるテンソルT102を第2畳込処理CONV-2への入力とする。第2畳込処理CONV-2はテンソルT102に畳込処理を適用して得られるテンソルT103をチャネルアテンション処理CAへの入力とする。チャネルアテンション処理CA(詳細は
図3を参照して後述する)は、テンソルT103にチャネルアテンション処理を適用して得られるテンソルT104を加算処理ADへの入力とする。加算処理ADは入力テンソルT100にチャネルアテンション処理CAの出力であるテンソルT104を加算することで、残差ネット構造RNにおける最終的な出力として出力テンソルT200を得る。
【0027】
図3は、
図2のチャネルアテンション処理CAの構成を、処理されるテンソルの模式例と共に示す図であり、チャネルアテンション処理CAは全体的な処理として入力テンソルT103よりテンソルT104を出力するものであり、図示される通りの処理P41~P45で構成される。図示されるように、各処理は次の通りである。
【0028】
処理P41では、入力テンソルT103に平均プーリングを適用して得られるテンソルT41を、次の処理P42への入力とする。処理P42ではテンソルT41に2次元畳込を適用して得られるテンソルT42を、次の処理P43への入力とする。処理P43では、テンソルT42に2次元畳込を適用して得られるテンソルT43を、次の処理P44への入力とする。処理P44では、テンソルT43にシグモイド関数等を適用することで活性化演算を施して得られるテンソルT44を、次の処理P45への入力とする。
【0029】
処理P45は、積算処理としてチャネルアテンションを適用する処理であり、入力テンソルT103に対してテンソルT44(積算の係数となっている)を乗じて得られるテンソルT104を、以上のチャネルアテンション処理CAにおける最終的な出力として得る。
【0030】
なお、
図4に、
図3のチャネルアテンション処理CAにおいて処理される各テンソルのサイズ(縦×横×チャネル数)を変数表記(及び定数表記)で列挙したものを表として示す。入力テンソルT103及び出力テンソルT104は共にサイズH×W×Cであり、チャネル数Cだけの係数(チャネルアテンションの係数)が列挙されたテンソルT44(サイズ1×1×C)がT103に対して対応チャネル(それぞれサイズH×W)に乗ぜられることで、同一サイズの出力テンソルT104が得られる。テンソルT42のチャネル数C/rにおいてr>1である。
【0031】
以上、
図2~4を参照して説明したように、前処理部2では、チャネルアテンション処理CAが追加された残差ネット構造RNの処理を複数回(例えば5回)繰り返すことにより、入力テンソルT1より出力テンソルT2を得る。
【0032】
<PCD位置整合部3>
PCD位置整合部3では、非特許文献2に開示されている要素手法(PCD Align Module)と同様の処理をテンソルT2に適用することで、得られたテンソルT3を積算部4への入力とする。PCD位置整合部3の処理は、非特許文献2で説明されているのと同様に、ピラミッド構造により低解像度(下位スケール)において粗い推定で特徴の位置合わせ(アラインメント)を行い、オフセット量と位置合わせされた特徴とを高解像度(上位スケール)へ進展させていき、正確な動き推定を実現する。さらに追加で、当該ピラミッド型位置合わせ演算の後に変形可能畳込(deformable convolution)をカスケード配置することにより、位置合わせのロバスト性を向上させる。
【0033】
こうして、入力テンソルT2に対してマルチスケールの動きを考慮してロバストに位置合わせがなされる形で特徴抽出されたものとして、出力テンソルT3が得られる。PCD位置整合部3の処理の詳細に関しては簡潔に後述する。
【0034】
<積算部4>
積算部4は、PCD位置整合部3が出力したテンソルT3に、調整部20(後述)が出力したチャネル係数として構成されているテンソルT20を積算(アテンション係数としての掛け算による積算)することによって、得られたテンソルT4をTSA統合部5への入力とする。第1積算部4による積算処理は、形式上は
図3の積算処理P45と同様であり、テンソルT3がサイズH×W×Cであるとすると、乗ぜられるチャネル係数(アテンション係数、重み)としてのテンソルT20はサイズ1×1×Cであり、テンソルT3の各フレーム(サイズH×W)においてチャネル毎(フレーム毎)に対応する係数が乗ぜられたものが出力されるテンソルT4となる。
【0035】
<TSA統合部5>
TSA統合部5では、非特許文献2に開示されている要素手法(TSA Fusion Module)と同様の処理をテンソルT4に適用することで、得られたテンソルT5を結合部6への入力とする。TSA統合部5は、非特許文献2で説明されているのと同様に、複数の特徴間の情報集約を補助する統合モジュールである。各フレームの可視情報量(visual informativeness)を効果的に考慮するために、要素ごとの時間相関(真ん中の参照フレームと別フレーム間)を時間アテンション係数として導入する。(例えば、別時間でも相関の高い同じような要素があれば、ノイズの影響を受けていない重要なものであると推定できる、ということを利用する。)当該相関係数を特徴に対する重みとして算出することで、参照フレームを再構成するのに足る情報をどれだけ有しているかを数値化する。全フレームからの重みづけ特徴に対して畳み込みを行い、統合する。当該時間アテンションを用いた統合の後にさらに、空間アテンションを適用することで、各チャネルの各位置に重みを割り当て、クロスチャネル情報と空間情報をさらに効率的に利用することを可能とする。
【0036】
こうして、入力テンソルT4に対して時間アテンション及び空間アテンションの両方を考慮して統合して特徴抽出されたものとして、出力テンソルT5が得られる。TSA統合部5の処理の詳細に関しては簡潔に後述する。
【0037】
<結合部6>
結合部6は、TSA統合部5が出力したテンソルT5に、サブネット部30(後述)が出力したテンソルT30を結合することによって、得られたテンソルT6を再構成部7への入力とする。結合対象となるテンソルT5とテンソルT30とは共通の空間サイズH×Wで構成されており、結合部6ではこれらをチャネル方向で結合することによって同空間サイズH×Wを有するテンソルT6を得ることができる。サブネット部30(後述)で得るテンソルT30は動きボケ関連情報が反映されたマップとなっているため、結合部6においてこのテンソルT30を結合することにより、動きボケ除去装置100は動きボケ関連情報を考慮して効果的に動きボケ除去を行うことが可能となる。
【0038】
<再構成部7>
再構成部7は、結合部6で得たテンソルT6に対して、後段側のアップサンプル部8の処理を経て加算部9で加算される対象として適切なテンソルとなるように特徴空間から画像空間へと再構成する処理を行い、当該再構成されたテンソルT7をアップサンプル部8へと出力する。当該再構成されたテンソルT7は、動きボケ除去装置100が加算部8においてスキップ接続される残差ネット構造であることから明らかなように、動きボケ除去の対象となる入力テンソルT0(2N+1枚の連続フレーム)の中央位置N+1番目のフレームF(N+1)に対して、(加算部9において)加算することで動きボケを除去できるような差分情報マップとして構成されるものとなる。
【0039】
再構成部7では、基本的には非特許文献2の要素手法(Reconstruction Module)と同様に、残差ネットを利用した特徴抽出によりテンソルT6からテンソルT7を得るが、本実施形態では動きボケ除去効果を向上すべく、チャネルアテンションの機構をさらに追加した残差ネットにより、特徴抽出を行う。
【0040】
すなわち、再構成部7も、前処理部2と同様のネットワーク構造を有するものであり、前処理部2に関して説明した
図2のチャネルアテンションの機構を追加した残差ネット構造RNを複数個(例えば5個)だけ直列に接続したものとして構成されるものである。(ただし、各処理のハイパーパラメータ(畳込カーネルサイズなど)は、前処理部2を構成する残差ネット構造と再構成部7を構成する残差ネット構造との間で異なっていてもよい。適用されるカーネルの係数等は学習によって定まるため、前処理部2と再構成部7とで一般に異なるものとなる。)
【0041】
<アップサンプル部8>
アップサンプル部8は、再構成部7より得られたテンソルT7を畳込によりアップサンプリングして得られるテンソルT8を加算部9への入力とする。アップサンプル部8の処理はダウンサンプル部1の処理の逆に相当し、ダウンサンプル部1で1/r(r>1)倍にダウンサンプリングしたのであれば、アップサンプル部8ではr倍にアップサンプリングする。
【0042】
<加算部9>
加算部9は、動きボケ除去装置100への入力である入力テンソルT0(2N+1枚の連続フレーム)の中央位置N+1番目のフレーム画像F(N+1)に対して、アップサンプル部8で得たテンソルT8を加算することにより、動きボケ除去装置100からの最終的な出力としてのテンソルT9(フレーム画像F(N+1)が動きボケ除去された画像)を得る。
【0043】
以上、動きボケ除去装置100のうち(前処理部2及び再構成部7にチャネルアテンション機構を導入したこと等を除いて)基本的に非特許文献2と同様の枠組みであるメインネット部10の各部を説明した。以下さらに、非特許文献2に対する改良点を提供するサブネット部30及び調整部20に関してそれぞれ説明する。
【0044】
<サブネット部30>
サブネット部30では、入力テンソルT0よりテンソルT30を得て、このテンソルT30を結合部6への入力とする。
図5は、サブネット部30における処理の構成を、処理されるテンソルの模式例と共に示す図であり、サブネット部30は処理P31~P37をこの順番に行うことで、入力テンソルT0よりテンソルT30を出力することができる。出力テンソルT30は、動きボケ除去装置100への入力である入力テンソルT0の真ん中のフレームF(N+1)に対応する動きボケ関連情報のマップとして構成されるものとなる。各処理は以下の通りである。
【0045】
処理P31は、以下の通りの4つの処理P311~P314(不図示)で構成されるものであり、入力テンソルT0よりテンソルT31を得て、このテンソルT31を次の処理P32の入力とする。
【0046】
処理P311では、入力テンソルT0(2N+1枚の連続フレームF(t)(t=1,2,…,2N+1))よりフレーム間の動き情報を反映した2N+1枚のマップ情報として、テンソルT311を算出する。一実施形態では処理P311において、真ん中のフレームF(N+1)に関してはオプティカルフローを算出し、真ん中以外の2N枚のフレームF(t)(t=1,2,…,N,N+2,…,2N+1)は単純なフレーム差分を算出することにより、精度と計算量とのバランスを取ったうえで、動き情報が反映されたテンソルT311を得ることができる。オプティカルフローの算出には任意の既存手法を用いてよく、例えば以下の非特許文献3に開示される手法(Gunner Farnebackアルゴリズム)で算出してもよい。
[非特許文献3] "Two-Frame Motion Estimation Based on Polynomial Expansion" by Gunner Farneback in 2003.
【0047】
処理P312では、入力テンソルT0(2N+1枚の連続フレームF(t)(t=1,2,…,2N+1))より各フレームにおいてコントラストを算出した2N+1枚のマップ情報として、テンソルT312を算出する。コントラスト算出に関して、各ピクセル位置(x,y)においてその近傍にある一定領域R(x,y)((x,y)を中心とする矩形領域など)でマイケルソンコントラスト等により当該領域R(x,y)のコントラストを算出することで、当該ピクセルに対応するコントラスト値CT(x,y)として割り当てることにより、フレーム画像領域内でのマップ情報としてのコントラストを算出することができる。周知のようにマイケルソンコントラストは当該領域の輝度最大値、最小値をLmax,Lminとするとこれらの和と差との比率として以下のように計算できる。
(Lmax-Lmin)/(Lmax+Lmin)
【0048】
処理P313では、入力テンソルT0(2N+1枚の連続フレームF(t)(t=1,2,…,2N+1))より各フレームにおいて勾配(gradient)を算出した2N+1枚のマップ情報として、テンソルT313を算出する。勾配の算出は空間上での1次微分を計算するソーベルフィルタなどを用いればよい。
【0049】
処理P314では、以上の処理P311,P312,P313で得られたテンソルT311,T312,T313を結合することで処理P31からの出力としてのテンソルT31を得る。結合の際は、時刻tの順番で当該時刻tの動き情報、コントラスト情報及び勾配情報がチャネル成分(フレームF(t))として並んでいるようなテンソルT31となるように結合してもよいし、このような並び替えを伴うことなくT31={T311,T312,T313}のように3つのテンソルをそのまま並べることで結合してもよい。
【0050】
このように、4つの処理P311~P314で構成される処理P31において、入力テンソルT0より抽出される情報として動き情報に相当するテンソルT311と、コントラスト情報に相当するテンソルT312と、勾配情報に相当するテンソルT313と、を結合することで、動きボケ関連情報としてのテンソルT31が得られ、以下に説明する後段側の一連の畳込処理等によって、入力テンソルT0の真ん中のフレームF(N+1)に対応する動きボケ関連情報としての出力フレームT30を得ることができる。
【0051】
処理P32では、処理P31の出力したテンソルT31に対して3次元畳込を適用して得られるテンソルT32を、次の処理P33への入力とする。処理P33では、処理P32の出力したテンソルT32に対してダウンサンプリングを適用して得られるテンソルT33を、次の処理P34への入力とする。処理P34では、処理P33の出力したテンソルT33に対して3次元畳込を適用して得られるテンソルT34を、次の処理P35への入力とする。処理P35では、処理P34の出力したテンソルT34に対してダウンサンプリングを適用して得られるテンソルT35を、次の処理P36への入力とする。処理P36では、処理P35の出力したテンソルT35に対して2次元畳込を適用して得られるテンソルT36を、次の処理P37への入力とする。処理P37では、処理P36の出力したテンソルT36(チャネル方向にサイズが大きい)を並び替えることで得られるテンソルT30(空間方向での一定サイズH×Wを有し、チャネル方向のサイズは1フレーム分のみのテンソル)を、サブネット部30からの最終的な出力とする。
【0052】
以上のように処理P32~P37では、処理P31で得たテンソルT31に対して順番に、(P32)3次元畳込、(P33)ダウンサンプリング、(P34)3次元畳込、(P35)ダウンサンプリング、(P36)2次元畳込、(P37)並び替えを適用することで、出力テンソルT30を得る。
【0053】
<調整部20>
調整部20は、入力テンソルT0(2N+1枚の連続フレームF(t)(t=1,2,…,2N+1))より各時刻tフレームF(t)における動きボケの強さをベクトルのt次元における要素の値v(t)とする事前(prior)ベクトルVembedding prior=(v(1),v(2),…,v(2N+1))として算出し、これを出力テンソルT20=Vembedding priorとする。すなわち、事前ベクトルVembedding priorは(2N+1)次元であり、これと同一対象である出力テンソルT20のサイズは1×1×(2N+1)である。一実施形態では、各t番目の要素v(t)を以下の式(1),(2)により算出することにより、事前ベクトルVembedding priorを求めるようにすればよい。
【0054】
【0055】
式(1),(2)においてftは入力テンソルT0の時刻tのフレームF(t)をグレースケール画像化したものであり、Lap()は2次微分を計算するラプラス演算子であり、var()は画像内分散を求める関数であり、Normは式(2)に示されるように事前ベクトルVembedding priorの各要素の和が1となるようにするための正規化項である。エッジ検出にも用いられるラプラス演算子を適用した画像Lap(ft)は動きボケが反映された画像(例えば、動きボケが発生している場合にはエッジは不明瞭になること等により、画像Lap(ft)には動きボケが反映される)であり、本実施形態においては、動きボケが大きいほど当該画像の(画素値の)分散var(Lap(ft))が大きくなるという知見に基づき、事前ベクトルVembedding priorを算出するようにしている。
【0056】
調整部20で事前ベクトルVembedding priorとして得たテンソルT20を積算部4においてPCD位置整合部3から得たテンソルT3に対して乗じる際は、テンソルT3よりスライスとして切り出される時刻tのフレームF(t)に対して、事前ベクトルVembedding priorのt番目の要素(スカラー)v(t)を乗じて、フレームv(t)*F(t)となるようにすればよい。(すなわち、積算部4が出力するテンソルT4の時刻tのフレームを切り出したものが当該乗算されたv(t)*F(t)となる。)
【0057】
以上、動きボケ除去装置100の各部を説明した。畳込ニューラルネットワークモデルで構成される動きボケ除去装置100は、学習データを用いて予めモデルパラメータを学習しておくことにより、以上の各部の処理が可能となる。ここで、本実施形態の動きボケ除去装置100の学習方法に関しても、基本的には非特許文献2に示される手法と同様とすればよいが、さらなる改良を施した学習を行うことが可能である。すなわち、非特許文献2で示されている学習の際の損失関数において、空間アテンションによりCharbonnier(シャルボニエ)損失を調整して、知覚損失(perceptual loss)を追加することにより改良できる。
【0058】
すなわち、非特許文献2では以下の式(3)のように、従来のCharbonnier損失Lcb
'を利用している。ここで、yは動きボケのない画像(ground truth、正解画像)であり、y^(yハット)は、ネットワーク処理を適用して動きボケのある画像から動きボケ除去した結果の画像であり、H及びWは画像の高さ及び幅である。cは定数であり、例えばc=1×10-3に設定する。
【0059】
【0060】
一方、本実施形態における学習では、式(4)により調整されたCharbonnier損失Lcbを利用し、且つ、式(5)の知覚損失Lps(以下の非特許文献4に開示)も利用する。式(4)にてwattはサブネット部30の処理P311で動き情報のテンソルT311として得たうち、真ん中の時刻において算出されているオプティカルフローを[0,1]の範囲に正規化したものである。すなわち、ネットワーク出力の誤差に相当する差分画像(y^-y)に対して各画素位置(u,v)において、画像範囲内で絶対値を正規化したオプティカルフロー絶対値watt(u,v)(2次元ベクトルであるオプティカルフローの大きさ)の分だけ、差分値(y^-y)による誤差への影響がより大きくなるように、式(4)の損失関数を定義する。式(4)の積*は画素位置(u,v)ごとの積であり、絶対値watt(u,v)による積算項を設けることで空間アテンションを適用した損失関数として定義されている。
[非特許文献4] Zhang, Richard , et al. "The Unreasonable Effectiveness of Deep Features as a Perceptual Metric." (CVPR 2018).
【0061】
【0062】
以上の調整されたCharbonnier損失Lcb及び知覚損失Lpsによる重みづけ和として、本実施形態での学習の際には以下の式(6)の損失関数Lを用いる。λは事前設定する重みである。
L=Lcb+λLps …(6)
【0063】
以上、本実施形態の動きボケ除去装置100によれば、非特許文献2の手法に対して種々の改良を施すことにより、動きボケ除去の精度を向上させ、効果的に動きボケ除去を行うことができる。既に説明した種々の改良箇所に関して、その全てを適用する実施形態も、一部分のみを適用する実施形態も可能である。例えば、動きボケ除去装置100がメインネット部10と、調整部20又はサブネット部30のいずれか片方のみと、を備える実施形態も可能である。例えば、調整部20を省略する場合、積算部4を省略する(換言すれば、積算部4では恒等演算を行い、入力テンソルT3の値をそのまま出力テンソルT4とするものとみなす)ようにすればよく、同様に、サブネット部30を省略する場合、結合部6を省略する(換言すれば、結合部6では恒等演算を行い、入力テンソルT5の値をそのまま出力テンソルT6とするものとみなす)ようにすればよい。同様に、前処理部2及び/又は再構成部7においてチャネルアテンション処理CAを省略する場合も、
図2の処理CAが恒等演算であるものとみなせばよい。
【0064】
図6は、動きボケ除去装置100の種々の実施形態と対比例としての非特許文献2の手法とにおける動き除去の効果を、GoProと呼ばれる公開データセットを用いて検証した結果を示す図である。なお、この公開データセットは以下のURLよりアクセス可能である。
https://github.com/SeungjunNah/DeepDeblur_release
【0065】
図6では、PSNR(ピーク信号対雑音比)及びSSIM(構造的類似性)の2つの指標で各手法を評価しており、いずれの指標も値が高いほど画像の劣化が少なく、動きボケが小さい、すなわち、動きボケ除去の精度が高いと推定されるものである。
図6にて、Fullは動きボケ除去装置100が
図1に備わる全ての構成を有する際の結果であり、Ab1,Ab2,Ab3はそれぞれ、Fullの構成からサブネット部30、調整部20、(前処理部2及び再構成部7の)チャネルアテンション処理CA、を省略した際の結果である。また、Ab4及びAb5はそれぞれ、Fullの構成の動きボケ除去装置100を用いるが、学習の際にFullの場合のようにコスト関数として式(6)を使うのではなく、非特許文献2と同様の損失関数(式(3)の従来のCharbonnier損失L
cb
')を使った場合と、式(6)で重みλ=0とすることで知覚損失L
psを利用しなかった場合と、の結果である。
【0066】
図6の結果Full,Ab1,Ab2,Ab3の対比(省略したことでFullの構成よりも劣化が増える程度の大きさの対比)により、動きボケ除去装置100の構成として動きボケの効果の大きい構成(すなわち、非特許文献2に対する改良の寄与の大きい構成)の順位は、(1位)前処理部2及び再構成部7のチャネルアテンション処理CA、(2位)サブネット部30、(3位)調整部20、であることを推測することができる。
【0067】
以下、種々の補足的事項を説明する。
【0068】
(1)
図7は、PCD位置整合部3の処理(非特許文献2におけるPCD Align Moduleと同様)の構成を、処理されるテンソルの模式例と共に示す図である。前述の通りPCD位置整合部3は、入力テンソルT2において隣接フレーム間でのマルチスケールの動きに関して特徴抽出したものとして出力テンソルT3を得る。
図7では、入力テンソルT2において真ん中のフレームをF(t)とし、これと照合する真ん中以外の任意の別フレームをF(t+i)(iは正負いずれでもよい)とし、これらを照合して特徴抽出されたものが位置整合特徴AL(i)として示されている。すなわち、PCD位置整合部3では、入力テンソルT2において、このような全てのペアF(t),F(t+i)に対して
図7の処理を行い、出力テンソルT3としてペアF(t),F(t+i)より得られた位置整合特徴AL(i)の集合T3={AL(i)}を得る、という処理を行う。
【0069】
図7の例では、PCD位置整合部3が入出力層L0と、解像度マルチスケール処理を行う2段のピラミッド層L1,L2とによって処理を行う場合の例が示されているが、3段以上のピラミッド層構造を用いて同様に処理を行うことも可能である。ペアフレームF(t)及びF(t+i)はそのまま第1層L1での処理対象F1(t)及びF1(t+i)として入力された後、図示される通り以下のような処理がなされる。
【0070】
処理C0,C1,C2は処理入力となるフレームペアを(単一テンソルとなるように)結合したうえで、複数の畳込を適用することで、当該フレームペアの照合結果として抽出されるオフセット及び変調スカラ(「オフセット等」と呼ぶ)を得るものである。層L0では処理C0よりペアF1(t),AL1(i)よりオフセット等O(i)を出力し、層L1では処理C1(及び処理u1)よりペアF1(t),F1(t+i)(及び処理u1でアップサンプリングされたオフセット等O2(i))よりオフセット等O1(i)を出力し(詳細を後述)、層L2では処理C2よりペアF2(t),F2(t+i)よりオフセット等O2(i)を出力する。
【0071】
処理d1,d2はダウンサンプリングであり、処理d1においてフレームF1(t)をフレームF2(t)へとダウンサンプリングし、処理d2においてフレームF1(t+i)をフレームF2(t+i)へとダウンサンプリングする。処理u1,u2はアップサンプリングであり、処理u1(及び処理C1)においてオフセット等O2(i)(及びペアF1(t),F1(t+i))を用いてアップサンプリングされたオフセット等O1(i)を出力(詳細を後述)し、処理u2(処理DC-1と共に詳細を後述)において位置整合特徴AL2(i)を位置整合特徴AL1(i)へとアップサンプリングする。
【0072】
なお、組み合わせの処理C1及び処理u1でオフセット等O1(i)を得る詳細は非特許文献2の式(2),(3)等と同様であり、以下の通りである。
オフセット等O2(i)が処理u1でアップサンプリングされたものを「O2(i)↑」(不図示の中間出力)とし、処理C1によるペアF1(t),F1(t+i)の結合{F1(t),F1(t+i)}(不図示の中間出力)とアップサンプリングされたオフセット等O2(i)↑との結合{F1(t),F1(t+i),O2(i)↑}に対して畳込を適用することで、図示されているアップサンプリングされたオフセット等O1(i)を得る。
【0073】
カスケード配置される処理DC-0,DC-1,DC-2は、入力される2テンソルを1テンソルに結合したうえで変形可能畳込処理を適用した結果のテンソルである位置整合特徴を出力するものであり、層L0では処理DC-0により2テンソルO(i),AL1(i)を入力として位置整合特徴AL(i)を出力し、層L1では処理DC-1(及び処理u2、詳細を後述)により2テンソルO1(i),F1(t+i)(及び位置整合特徴AL2(i))を入力として位置整合特徴AL1(i)を出力し、層L2では処理DC-2により2テンソルO2(i),F2(t+i)を入力として位置整合特徴AL2(i)を出力する。
【0074】
なお、組み合わせの処理DC-1及び処理u2で位置整合特徴AL1(i)を得る詳細は非特許文献2の式(4)等と同様であり、以下の通りである。
2テンソルO1(i),F1(t+i)の結合{ O1(i),F1(t+i)}に対して処理DC-1(変形可能畳込)を適用したテンソルDC-1(O1(i),F1(t+i))(不図示の中間出力)を得る。処理u2で位置整合特徴AL2(i)をアップサンプリングして位置整合特徴「AL2(i)↑」(不図示の中間出力)を得る。これら2つの不図示の中間出力である2テンソルの結合{DC-1(O1(i),F1(t+i)),AL2(i)↑}に対して畳込を適用して、組み合わせ処理DC-1及び処理u2の出力として、図示されているアップサンプリングされた位置整合特徴AL1(i)を得る。
【0075】
(2)
図8は、TSA統合部5の処理(非特許文献2におけるPCD Align Moduleと同様)の構成を、処理されるテンソルの模式例と共に示す図である。ここでは、テンソルの模式例として当初の入力テンソルT0が3フレーム(N=1により2N+1=3フレーム)の場合の例を示すが、N≧2でも同様の処理が可能である。図示される通り、TSA統合部5の処理は、時間アテンション処理群TAと空間アテンション処理群SAとに大別され、それぞれ以下の通りである。
【0076】
入力テンソルT4の各フレームF(t-1),F(t),F(t+1)に対してそれぞれ、時間アテンションA(t-1),A(t),A(t+1)を抽出する処理P70が適用されて、時間アテンションテンソルA4={A(t-1),A(t),A(t+1)}が得られる。処理P70では例えば、隣接フレームF(t),F(t+1)に関してそれぞれ、畳み込み処理を適用することで埋め込み(embedding)表現E(t),E(t+1)(不図示)を得て、これらのドット積にシグモイド関数等の活性化演算を適用した結果として時間アテンションA(t+1)を得ることができる。
【0077】
処理P71では入力テンソルT4と時間アテンションテンソルA4との要素ごとの積算を行うことで、テンソルT50を出力する。処理P72ではテンソルT50に畳込を適用して、テンソルT51を得る、以上、処理P71,P72が時間アテンション処理群TAとして、時間アテンションで変調された特徴を集約するものとなる。
【0078】
処理P51,P52では畳込を適用することによるダウンサンプリングが行われ、処理P51によりテンソルT51からテンソルT52を出力し、処理P52によりテンソルT52からテンソルT53を出力する。処理P53ではテンソルT53をアップサンプリングしてテンソルT530を得る。処理A52ではテンソルT52とテンソルT530とを加算してテンソルT54を得る。処理P55ではテンソルT54をアップサンプリングしてテンソルT55を得る。このテンソルT55は以下の処理P56及び処理A51の入力とされる。
【0079】
処理P56では、テンソルT51とテンソルT55との要素ごとの積算を行うことで、テンソルT510を得る。処理A51では、テンソルT510とテンソルT55とを加算することで、TSA統合部3からの最終的な出力としてのテンソルT5を得る。以上、処理P51~P56及びA51,A52が、空間アテンション処理群SAとして空間アテンションによる情報集約を行うものとなる。
【0080】
(3)
図9は、一般的なコンピュータ装置70におけるハードウェア構成を示す図であり、動きボケ除去装置100は、このような構成を有する1つ以上のコンピュータ装置70として実現可能である。コンピュータ装置70は、所定命令を実行するCPU(中央演算装置)71、CPU71の実行命令の一部又は全部をCPU71に代わって又はCPU71と連携して実行する専用プロセッサ72(GPU(グラフィック演算装置)や深層学習専用プロセッサ等)、CPU71や専用プロセッサ72にワークエリアを提供する主記憶装置としてのRAM73、補助記憶装置としてのROM74、通信インタフェース75、ディスプレイ76、マウス、キーボード、タッチパネル等によりユーザ入力を受け付ける入力インタフェース77と、これらの間でデータを授受するためのバスBSと、を備える。
【0081】
動きボケ除去装置100の各部は、各部の機能に対応する所定のプログラムをROM74から読み込んで実行するCPU71及び/又は専用プロセッサ72によって実現することができる。動きボケ除去装置100が用いる畳込ニューラルネットワークモデルの学習方法に関しても、コンピュータ装置70において当該学習方法を実行するプログラムを実行することによって実現することができる。
【符号の説明】
【0082】
100…動きボケ除去装置、10…メインネット部、20…調整部、30…サブネット部
1…ダウンサンプル部、2…前処理部、3…PCD位置整合部、4…積算部、5…TSA統合部、6…結合部、7…再構成部、8…アップサンプル部、9…加算部