(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-21
(45)【発行日】2024-07-01
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
H04N 5/208 20060101AFI20240624BHJP
G06T 1/40 20060101ALI20240624BHJP
【FI】
H04N5/208
G06T1/40
(21)【出願番号】P 2022169200
(22)【出願日】2022-10-21
【審査請求日】2023-06-06
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】高田 洋佑
【審査官】佐田 宏史
(56)【参考文献】
【文献】特表2021-531588(JP,A)
【文献】国際公開第2022/011571(WO,A1)
【文献】中国特許出願公開第110706155(CN,A)
【文献】特許第7007000(JP,B1)
【文献】特開2021-072615(JP,A)
【文献】特開2022-114440(JP,A)
【文献】特開2022-121382(JP,A)
【文献】国際公開第2021/163844(WO,A1)
【文献】米国特許出願公開第2021/0112261(US,A1)
【文献】渡邊 駿、外4名,“MCNNとSOMを用いた動画像の記銘と動的想起”,電気学会論文誌C,日本,一般社団法人電気学会,2015年04月01日,Vol.135, No.4,pp.414-422
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/387,5/20-5/213,7/01
G06T 1/00,1/40、3/40,5/00
(57)【特許請求の範囲】
【請求項1】
相関の高い複数の入力画像データを取得する第1の取得手段と、
前記複数の入力画像データのうちのN枚(Nは2以上の整数)の入力画像データに基づいて、ニューラルネットワークを用いて劣化復元した、該N枚の入力画像データに対応するN枚の第1の復元画像データを出力する復元手段と
、
前記復元手段により出力された同じ時刻における複数の前記第1の復元画像データに基づいて、該時刻における1枚の第2の復元画像データを出力する抑制手段とを有することを特徴とする情報処理装置。
【請求項2】
前記復元手段は、前記N枚の入力画像データを組として連結し、前記組毎に前記N枚の第1の復元画像データを出力することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
複数の前記N枚の入力画像データの組を、前記複数の入力画像データを1枚からN枚の範囲で時間方向にずらして選択し作成することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記復元手段は、同じ座標にある各画素を重ね合わせて前記N枚の入力画像データを連結することを特徴とする請求項2に記載の情報処理装置。
【請求項5】
前記相関の高い複数の入力画像データは、時系列的に連続する複数の入力画像データであることを特徴とする請求項1~4の何れか1項に記載の情報処理装置。
【請求項6】
前記ニューラルネットワークの学習済モデルを取得する第2の取得手段を有することを特徴とする請求項1~4の何れか1項に記載の情報処理装置。
【請求項7】
前記抑制手段は、同じ時刻における複数の前記第1の復元画像データを合成して1枚の前記第2の復元画像データを出力することを特徴とする請求項
1~4の何れか1項に記載の情報処理装置。
【請求項8】
前記抑制手段は、同じ時刻における複数の前記第1の復元画像データをニューラルネットワークを用いて合成して1枚の前記第2の復元画像データを出力することを特徴とする請求項
1~4の何れか1項に記載の情報処理装置。
【請求項9】
前記N枚の入力画像データに対して、前記復元手段による処理及び前記抑制手段による処理を反復して実行することを特徴とする請求項
1~4の何れか1項に記載の情報処理装置。
【請求項10】
相関の高い複数の入力画像データを取得する第1の取得手段と、
前記複数の入力画像データのうちのN枚(Nは2以上の整数)の入力画像データの劣化量を推定する推定手段
と、
前記N枚の入力画像データ及び前記推定手段により推定された劣化量に基づいて、
ニューラルネットワークを用いて劣化復元した、該N枚の入力画像データに対応するN枚
の第1の復元画像データを出力する
復元手段とを有することを特徴とす
る情報処理装置。
【請求項11】
前記劣化復元される劣化は、ノイズ、圧縮、低解像、ぼけ、収差、欠損、撮影時の天候の影響によるコントラスト低下のうちの少なくとも1つを含むことを特徴とする請求項1~4の何れか1項に記載の情報処理装置。
【請求項12】
情報処理装置が実行する情報処理方法であって、
相関の高い複数の入力画像データを取得する取得工程と、
前記複数の入力画像データのうちのN枚(Nは2以上の整数)の入力画像データに基づいて、ニューラルネットワークを用いて劣化復元した、該N枚の入力画像データに対応するN枚の
第1の復元画像データを出力する復元工程と
、
前記復元工程で出力された同じ時刻における複数の前記第1の復元画像データに基づいて、該時刻における1枚の第2の復元画像データを出力する抑制工程とを有することを特徴とする情報処理方法。
【請求項13】
情報処理装置のコンピュータに、
相関の高い複数の入力画像データを取得する取得ステップと、
前記複数の入力画像データのうちのN枚(Nは2以上の整数)の入力画像データに基づいて、ニューラルネットワークを用いて劣化復元した、該N枚の入力画像データに対応するN枚の
第1の復元画像データを出力する復元ステップと
、
前記復元ステップで出力された同じ時刻における複数の前記第1の復元画像データに基づいて、該時刻における1枚の第2の復元画像データを出力する抑制ステップとを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、劣化した動画を復元する情報処理技術に関する。
【背景技術】
【0002】
近年、ディープニューラルネットワーク(Deep Neural Network:DNN)が、画像や動画の劣化を復元するアプリケーションに応用されてきている。DNNとは、2層以上の隠れ層を有するニューラルネットワークを指し、隠れ層の数を多くすることで性能が向上してきている。動画の劣化を復元する場合、時間的一貫性が知覚的な品質において重要な要素となる。そのため、時系列的に隣接する画像の情報を利用する必要がある。
【0003】
一般に、DNNを用いて動画の劣化を復元する際、時系列的に連続する複数枚の画像を入力し、1枚の劣化復元画像を出力する。非特許文献1には、時系列的に連続するN(Nは自然数)枚の画像に対し、それぞれ空間方向のノイズ低減を行い、それらの結果を位置合わせした後に時間方向のノイズ低減処理を行い、N枚のうち中央1枚のノイズ低減結果を出力する方法が開示されている。また、非特許文献2には、位置合わせを行うための動き補償の仕組みをDNNに組み込むことで、非特許文献1の空間方向のノイズ低減後に行う位置合わせを省く方法が開示されている。
【先行技術文献】
【非特許文献】
【0004】
【文献】Matis Tassano,Julie Delon, Thomas Veit,“DVDnet:A Fast Network for Deep Video Denoising”,2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR)
【文献】Matis Tassano,Julie Delon, Thomas Veit,“FastDVDnet:Towards Real-Time Deep Video Denoising Without Flow Estimation”,2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1、2に開示された動画の劣化復元方法では、計算コストがかかるという課題がある。これは、時系列的に連続するN枚の画像を入力し、N枚のうち中央1枚のノイズ低減結果を出力する処理を、時間方向に1枚ずつシフトして行うためである。本発明は、動画の劣化復元処理を高速に行うことができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る情報処理装置は、相関の高い複数の入力画像データを取得する第1の取得手段と、前記複数の入力画像データのうちのN枚(Nは2以上の整数)の入力画像データに基づいて、ニューラルネットワークを用いて劣化復元した、該N枚の入力画像データに対応するN枚の第1の復元画像データを出力する復元手段と、前記復元手段により出力された同じ時刻における複数の前記第1の復元画像データに基づいて、該時刻における1枚の第2の復元画像データを出力する抑制手段とを有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、動画の劣化復元処理を高速に行うことが可能になる。
【図面の簡単な説明】
【0008】
【
図2】実施形態1に係る情報処理システムの機能構成例を示す図である。
【
図3】実施形態1に係る劣化復元推論処理を説明する図である。
【
図4】CNNの構造と、推論及び学習の流れを説明する図である。
【
図5】画像データに対する劣化付与の処理を説明する図である。
【
図7】実施形態1に係る情報処理システムにおける処理例を示すフローチャートである。
【
図9】実施形態2に係る情報処理システムの機能構成例を示す図である。
【
図10】実施形態2に係る劣化復元推論処理を説明する図である。
【
図11】実施形態2に係る情報処理システムにおける処理例を示すフローチャートである。
【
図12】実施形態3に係る情報処理システムの機能構成例を示す図である。
【
図13】実施形態3に係る劣化復元推論処理を説明する図である。
【
図14】実施形態3に係る情報処理システムにおける処理例を示すフローチャートである。
【
図15】実施形態4に係る情報処理システムの機能構成例を示す図である。
【
図16】実施形態4に係る情報処理システムにおける処理例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態は本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせのすべてが本発明の解決手段に必須のものとは限らない。実施形態の構成は、適用される装置の仕様や各種条件(使用条件、使用環境等)によって適宜修正又は変更され得る。また、後述する各実施形態の一部を適宜組み合わせて構成してもよい。以下の各実施形態において、同一の構成については、同じ符号を付している。
【0010】
<CNNについて>
まず、以下の実施形態において用いる、深層学習を応用した情報処理技術全般で用いられている畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)について説明する。CNNは、学習(training又はlearning)により生成したフィルタを画像データに対して畳み込んだ(convolution)後、非線形演算することを繰り返す技術である。フィルタは、局所受容野(Local Receptive Field)とも呼ばれる。画像データに対してフィルタを畳み込んだ後、非線形演算して得られる画像データは、特徴マップ(feature map)と呼ばれる。また、学習は入力画像データと出力画像データのペアからなる学習データ(training images又はdata sets)を用いて行われる。簡単には、入力画像データから対応する出力画像データへ高精度に変換可能なフィルタの値を、学習データから生成することが学習である。この詳細については後述する。
【0011】
画像データがRGBカラーチャネルを有する場合や、特徴マップが複数枚の画像データから構成されている場合、畳み込みに用いるフィルタも、それに応じて複数のチャネルを有する。すなわち、畳み込みフィルタは、縦横サイズと枚数の他に、チャネル数を加えた、4次元配列で表現される。画像データ(又は特徴マップ)にフィルタを畳み込んだ後、非線形演算する処理は、層(layer)という単位で表され、例えば、n層目の特徴マップやn層目のフィルタなどと表現される。また、例えば、フィルタの畳み込みと非線形演算を3回繰り返すようなCNNは、3層のネットワーク構造を有する。このような非線形演算処理は、以下の式(1)のように定式化することができる。
【0012】
【0013】
式(1)において、Wnはn層目のフィルタ、bnはn層目のバイアス、fは非線形演算子、Xnはn層目の特徴マップ、*は畳み込み演算子である。なお、右肩の(l)はl番目のフィルタ又は特徴マップであることを表している。フィルタ及びバイアスは、後述する学習により生成され、まとめて「ネットワークパラメータ」とも呼ばれる。非線形演算としては、例えばシグモイド関数(sigmoid function)やReLU(Rectified Linear Unit)が用いられる。ReLUの場合は、以下の式(2)で与えられる。
【0014】
【0015】
式(2)が示すように、入力したベクトルXの要素のうち負のものはゼロ、正のものはそのままとなる。
【0016】
CNNを用いたネットワークとしては、画像認識分野のResNetや超解像分野におけるその応用SRCNNが有名である。いずれもCNNを多層にして、フィルタの畳み込みを何度も行うことで、処理の高精度化を図っている。例えば、ResNetは、畳み込み層をショートカットする経路を設けたネットワーク構造を特徴とし、これにより152層もの多層ネットワークを実現し、人間の認識率に迫る高精度な認識を実現している。なお、多層CNNにより処理が高精度化する理由は、簡単には非線形演算を何度も繰り返すことで、入出力間の非線形な関係を表現できるためである。
【0017】
<CNNの学習>
次に、CNNの学習について説明する。CNNの学習は、入力学習画像(生徒画像)データと対応する出力学習画像(教師画像)データの組からなる学習データに対して、一般に以下の式(3)で表される目的関数を最小化することで行われる。
【0018】
【0019】
式(3)において、Lは正解とその推定との誤差を測る損失関数(loss function)である。また、Yiはi番目の出力学習画像データ、Xiはi番目の入力学習画像データである。また、FはCNNの各層で行う演算(式(1))を、まとめて表した関数である。また、θはネットワークパラメータ(フィルタ及びバイアス)である。また、||Z||2はL2ノルムであり、簡単にはベクトルZの要素の2乗和の平方根である。また、nは学習に用いる学習データの全枚数である。一般に学習データの全枚数は多いため、確率的勾配降下法(Stochastic Gradient Descent:SGD)では、学習画像データの一部をランダムに選び学習に用いている。これにより、多くの学習データを用いた学習における計算負荷が低減できる。また、目的関数の最小化(=最適化)法として、モーメンタム(momentum)法やAdaGrad法、AdaDelta法、Adam法など、様々な方法が知られている。Adam法は、以下の式(4)で与えられる。
【0020】
【0021】
式(4)において、θi
tは反復t回目におけるi番目のネットワークパラメータ、gはθi
tに関する損失関数Lの勾配である。また、m、vはモーメントベクトル、αは基本学習率(base learning rate)、β1、β2はハイパーパラメータ、εは小さい定数である。なお、学習における最適化法の選択指針は存在しないため、基本的に何を用いてもよいが、方法毎の収束性には違いがあるため、学習時間の違いが生じることが知られている。
【0022】
以下に説明する各実施形態では、前述したCNNを用いて動画の劣化を画像単位で低減する情報処理(画像処理)を行うものとする。画像の劣化要素としては、例えばノイズ、ボケ、収差、圧縮、低解像、欠損等の劣化、撮影時の霧・霞・雪・雨等の天候の影響によるコントラスト低下のような劣化などが挙げられる。画像における劣化を低減する画像処理としては、ノイズ低減、ボケ除去、収差補正、欠損補完、圧縮による劣化の補正、低解像画像に対する超解像処理、撮影時の天候等に起因するコントラスト低下を補正する処理などが挙げられる。以下に説明する各実施形態における画像劣化の低減処理は、劣化のある画像から、劣化のない(或いは非常に少ない)画像を生成もしくは復元する処理であり、以下の説明では劣化復元処理とも呼ぶ。すなわち、劣化復元とは、例えば、画像自体には劣化が無い(少ない)画像であったものが、その後の増幅や圧縮伸長、他の画像処理等で劣化したものを復元する場合だけでなく、元々の画像そのものに含まれる劣化をも低減可能にすることを含む。
【0023】
〔実施形態1〕
実施形態1では、相関の高いN枚(Nは2以上の整数)の劣化画像データを入力しN枚の劣化復元画像データを出力するニューラルネットワークを用いて、動画の劣化を高速に復元する方法について説明する。本実施形態では、画像の劣化要素としてノイズを例に挙げ、劣化復元処理としてノイズ低減処理を行う例を用いて説明する。
【0024】
<システム構成>
図1は、本実施形態に係る情報処理システムの構成例を示すブロック図である。
図1に示す情報処理システムでは、学習データの生成及び劣化の復元を行う学習(以後、劣化復元学習とも称す)を担うクラウドサーバ200と、劣化復元(以後、劣化復元推論とも称す)を担うエッジデバイス100とがネットワークを介して接続されている。
【0025】
<エッジデバイスのハードウェア構成>
本実施形態のエッジデバイス100は、撮像装置10から入力されるRAW画像データ(Bayer配列)を劣化復元処理の対象となる入力画像として取得する。そして、エッジデバイス100は、劣化復元処理対象の入力画像に対し、クラウドサーバ200から提供される学習済ネットワークパラメータを適用して劣化復元推論を行う。すなわち、エッジデバイス100は、クラウドサーバ200から提供されたニューラルネットワークを用い、予めインストールされた情報処理アプリケーションプログラムを実行することによって、RAW画像データのノイズを低減する情報処理装置である。エッジデバイス100は、CPU101、RAM102、ROM103、大容量記憶装置104、汎用インタフェース(I/F)105、ネットワークI/F106を有し、各構成要素がシステムバス107によって相互に接続されている。また、エッジデバイス100は、汎用I/F105を介して、撮像装置10、入力装置20、外部記憶装置30及び表示装置40にも接続されている。
【0026】
CPU101は、RAM102をワークメモリとして、ROM103に格納されたプログラムを実行し、システムバス107を介してエッジデバイス100の各構成要素を統括的に制御する。また、大容量記憶装置104は、例えばHDDやSSDであり、エッジデバイス100で取り扱われる種々のデータを記憶する。CPU101は、システムバス107を介して、大容量記憶装置104へのデータの書き込み及び大容量記憶装置104に記憶されたデータの読み出しを行う。汎用I/F105は、例えば、USB、IEEE1394、HDMI(登録商標)等のシリアルバスインタフェースである。エッジデバイス100は、汎用I/F105を介して、外部記憶装置30(例えば、メモリカード、CFカード、SDカード、USBメモリ等の各種記憶媒体)からデータを取得する。また、エッジデバイス100は、汎用I/F105を介して、マウスやキーボード等の入力装置20からのユーザ指示を受け付ける。また、エッジデバイス100は、汎用I/F105を介して、表示装置40(例えば、液晶ディスプレイ等の各種画像表示デバイス)に、CPU101によって処理された画像データ等を出力する。また、エッジデバイス100は、汎用I/F105を介して、撮像装置10から劣化復元処理(本例ではノイズ低減処理)の対象となる撮像画像(RAW画像)のデータを取得する。ネットワークI/F106は、インターネット等のネットワークに接続するためのインタフェースである。エッジデバイス100は、インストールされたウェブブラウザによってクラウドサーバ200にアクセスして、劣化復元推論のためのネットワークパラメータを取得する。
【0027】
<クラウドサーバのハードウェア構成>
本実施形態のクラウドサーバ200は、インターネット等のネットワーク上でクラウドサービスを提供する情報処理装置である。クラウドサーバ200は、学習データの生成及び劣化復元学習を行い、その学習結果のネットワークパラメータとネットワーク構造を格納した学習済モデルを生成する。そして、クラウドサーバ200は、学習済モデルをエッジデバイス100からのリクエストに応じて提供する。クラウドサーバ200は、CPU201、ROM202、RAM203、大容量記憶装置204及びネットワークI/F205を有し、各構成要素がシステムバス206によって相互に接続されている。
【0028】
CPU201は、ROM202に記憶された制御プログラムを読み出して各種処理を実行することで、全体の動作を制御する。RAM203は、CPU201の主メモリ、ワークエリア等の一時記憶領域として用いられる。大容量記憶装置204は、画像データや各種プログラムを記憶するHDDやSSD等の大容量の二次記憶装置である。ネットワークI/F205は、インターネット等のネットワークに接続するためのインタフェースであり、エッジデバイス100のウェブブラウザからのリクエストに応じて前述のネットワークパラメータを提供する。
【0029】
なお、エッジデバイス100及びクラウドサーバ200の構成要素は、前述した構成以外にも存在するが、ここではそれらの説明を省略する。本実施形態では、クラウドサーバ200が学習データの生成及び劣化復元学習を行った結果である学習済モデルをエッジデバイス100にダウンロードし、エッジデバイス100が処理対象の入力画像データに劣化復元推論を行うことを想定している。なお、前述したシステム構成は一例であって、これに限定されない。例えば、クラウドサーバ200が担う機能を細分化し、学習データの生成と劣化復元学習とを別々の装置で実行するような構成でもよい。あるいは、エッジデバイス100の機能とクラウドサーバ200の機能とを兼ね備えた撮像装置10において、学習データの生成・劣化復元学習・劣化復元推論のすべてを行うような構成であってもよい。
【0030】
<システムの機能構成>
次に、
図2を参照して、実施形態1に係る情報処理システムの機能構成について説明する。
図2は、実施形態1に係る情報処理システムの機能構成例を示すブロック図である。
図2に示すように、エッジデバイス100は、取得部111及び第1の復元部112を有する。また、クラウドサーバ200は、付与部211及び学習部212を有する。学習部212は、第2の復元部213、誤差算出部214、及びモデル更新部215を有する。
図2に示す各機能部は、例えば、各機能を実現するためのコンピュータプログラムをCPU101又はCPU201が実行することで実現される。なお、
図2に示した機能部の全部あるいは一部をハードウェアで実装されてもよい。
【0031】
なお、
図2に示した構成は、適宜変形又は変更することが可能である。例えば、1つの機能部を複数の機能部に分割してもよいし、2つ以上の機能部を1つの機能部に統合してもよい。また、
図2に示した構成は、2以上の装置によって実現されてもよい。この場合、各装置は、回路又は有線若しくは無線のネットワークを介して接続され、互いにデータ通信を行って協調動作を行うことで、本実施形態に係る各処理を実現する。
【0032】
エッジデバイス100の各機能部について説明する。
取得部111は、処理対象となる入力動画データを取得し、相関の高いN枚(Nは2以上の整数)の入力画像データを選択する。取得部111は、第1の取得手段及び第2の取得手段の一例である。ここで相関の高いとは、時系列的に連続するものとして説明を行う。Nの値は予め設定された値でもよいし、ユーザが任意に設定した値を用いてもよい。本実施形態では、N=3とし、入力画像データとしては各画素がRGBのいずれかの色に対応する画素値を有するRAW画像データを用いるとする。RAW画像データは、各画素が一色分の情報を有するBayer配列(ベイヤ配列)のカラーフィルタを用いて撮像された画像データであるとする。
【0033】
第1の復元部112は、推論用劣化復元部であり、クラウドサーバ200から取得した学習済モデルを用いて、N枚の入力画像データ毎に劣化復元推論を行い、出力動画データを出力する。
図3は、本実施形態に係る第1の復元部112が行う劣化復元処理の概要を説明する図である。
【0034】
第1の復元部112は、時刻t=0、1、2における入力画像データ301をチャネル方向に連結して、入力連結画像データ302を生成する。ここで、チャネル方向とは、複数の入力画像データの同じ座標にある画素を重ね合わせる(スタックする)方向を指し、この方向は入力画像データの高さ、幅にそれぞれ直交する。RAW画像データのチャネル数は1であるため、入力画像データの高さをH、幅をWとすると、3枚の入力画像データ301を連結して得られた入力連結画像データ302は、H×W×3のデータ構造となる。
【0035】
続いて、第1の復元部112は、入力連結画像データ302をCNN303に入力し、式(1)及び式(2)により示されるフィルタの畳み込み演算と非線形演算とを繰り返し、劣化が復元された出力連結画像データ304を出力する。出力連結画像データ304は、入力連結画像データ302と同形状であり、両データにおいて対応するチャネルは同じ時刻である。チャネルの順番は順不同であり、入力連結画像データ302と出力連結画像データ304とで、時刻の対応関係が取れていれば問題ない。
【0036】
CNN303は、
図3に示すように、入力層311、複数の層からなる隠れ層312、及び出力層313を有する。前述したとおり、入力層311と出力層313は同形状になる。本実施形態において、隠れ層312は入出力層(入力層311及び出力層313)よりもサイズ(高さと幅)を小さくし、チャネル数を多くしている。これは、一般に画像内の情報を広範囲に取得することと、表現力を高めるための技法である。
【0037】
図4は、CNNの構造と、推論及び学習の流れを説明する図である。以下、
図4を参照して、CNNについて説明する。CNNは、前述の式(1)に示した演算を行う複数のフィルタ401で構成されている。まず、第1の復元部112は、このCNNに対して、入力連結画像データ302を入力する。次に、第1の復元部112は、入力連結画像データ302に対してフィルタ401を順次適用して、特徴マップ(図示は省略する)を算出する。そして、第1の復元部112は、最後のフィルタ401を適用して得られた復元結果を、出力連結画像データ304とする。
【0038】
第1の復元部112は、出力連結画像データ304に対して、入力画像データ301の連結とは逆の操作を行うことで、時刻t=0、1、2における劣化復元後の画像データを得る。最終的には、第1の復元部112は、これらの画像データを連番とする出力動画データ305を出力する。
【0039】
次に、クラウドサーバ200の各機能部について説明する。
付与部211は、劣化のない教師画像群から取り出した教師画像データに対し、少なくとも1種類以上の劣化要素を付与して生徒画像データを生成する。本例では劣化要素としてノイズを例に挙げているため、付与部211は、劣化要素としてのノイズを教師画像データに対して付与して生徒画像データを生成する。本実施形態では、付与部211は、撮像装置の物理特性を解析し、解析結果に基づいて撮像装置で発生し得る劣化量よりも広い範囲の劣化量に相当するノイズを、劣化要素として教師画像データに対して付与することで生徒画像データを生成する。解析結果よりも広い範囲の劣化量を付与する理由は、撮像装置の個体差により劣化量の範囲が異なるため、マージンを持たせてロバスト性を高めるためである。
【0040】
すなわち、付与部211は、
図5に示すように、教師画像群501から取り出した教師画像データ502に対し、撮像装置の物理特性解析結果に基づくノイズを劣化要素503として付与504することで生徒画像データ505を生成する。そして、付与部211は、教師画像データ502と生徒画像データ505のペアを学習データとする。付与部211では、教師画像群501の教師画像データ毎に劣化要素を付与することで複数の生徒画像データからなる生徒画像群が生成され、これによって学習データ506が生成される。なお、本例では劣化要素としてノイズを例に挙げたが、付与部211は、前述したボケ、収差、圧縮、低解像、欠損、撮影時の天候等に起因するコントラスト低下などの複数種類の劣化要素の何れか又はそれらを複数組み合わせて教師画像データに付与してもよい。
【0041】
教師画像群には、例えば、風景又は動物を含む自然写真、ポートレート又はスポーツ写真のような人物写真、建築や商品といった人工物写真など、様々な種類の画像データが格納されている。本実施形態では、教師画像データは、入力画像データと同じく、各画素がRGBのいずれかの色に対応する画素値を有するRAW画像データであるとする。また、撮像装置の物理特性解析結果は、例えば、カメラ(撮像装置)に内蔵されている撮像センサで発生する感度毎のノイズ量や、レンズにより発生する収差量等が含まれる。これらを用いることで、撮影条件毎にどの程度の画質劣化が発生するかを見積もることができる。つまり、ある撮影条件において見積もった劣化を教師画像データに対して付与することで、撮影時に得られる画像と同等の画像を生成することができる。
【0042】
学習部212は、劣化復元学習のCNNに適用するネットワークパラメータを取得し、取得したネットワークパラメータを用いてCNNの重みを初期化した後、付与部211により生成された学習データを用いて劣化復元学習を行う。ネットワークパラメータは、ニューラルネットワークのパラメータの初期値、ニューラルネットワークの構造及び最適化方法を示すハイパーパラメータを含む。学習部212における劣化復元学習は、第2の復元部213、誤差算出部214、及びモデル更新部215で行われる。
【0043】
図6は、学習部212における劣化復元学習の処理を説明する図である。
第2の復元部213は、学習用劣化復元部であり、付与部211から学習データ506を受け取り、生徒画像データ505の劣化を復元する。具体的には、第2の復元部213は、生徒画像データ505をCNN601に入力し、式(1)及び式(2)により示されるフィルタの畳み込み演算と非線形演算とを複数繰り返し、劣化復元画像データ602を出力する。
【0044】
誤差算出部214は、教師画像データ502と劣化復元画像データ602をLoss603に入力し、それらの誤差を算出する。ここで、教師画像データ502と劣化復元画像データ602は同じ画素数を持つ。モデル更新部215は、誤差算出部214が算出した誤差を更新処理604に入力し、誤差が小さくなるようにCNN601に関するネットワークパラメータを更新する。なお、学習部212で用いるCNNは、第1の復元部112で用いるCNNと同じニューラルネットワークである。
【0045】
<システム全体の処理の流れ>
次に、実施形態1に係る情報処理システムで行われる各種処理について説明する。
図7(A)及び
図7(B)は、実施形態1に係る情報処理システムにおける処理例を示すフローチャートである。以下、
図7(A)及び
図7(B)のフローチャートに沿って説明する。
【0046】
図7(A)のフローチャートを参照して、クラウドサーバ200で行われる劣化復元学習の一例の流れについて説明する。
ステップS701では、クラウドサーバ200が、予め用意された教師画像群と、撮像センサの特性や撮影時の感度、被写体距離、レンズの焦点距離やf値、露出値などの撮像装置における物理特性解析結果とを取得する。教師画像群の教師画像データは、ベイヤ(Bayer)配列のRAW画像データであり、例えば、撮像装置10で撮像することにより得られる。これに限らず、クラウドサーバ200には、撮像装置10で撮像して得られたものをそのまま教師画像データとしてアップロードしてもよいし、撮り溜めたものをHDD等に記憶しておきそれを教師画像データとしてアップロードしてもよい。クラウドサーバ200が取得した教師画像群のデータと、撮像装置の物理特性解析結果とは、付与部211に送られる。
【0047】
ステップS702では、付与部211が、学習データ生成処理を行い、ステップS701で取得された教師画像群の教師画像データに対し、撮像装置の物理特性解析結果に基づいてノイズを付与して生徒画像データを生成する。付与部211は、教師画像群の教師画像データ毎に劣化要素を付与することで複数の生徒画像データを生成し、教師画像データと生徒画像データとをペアにして学習データを生成する。なお、付与部211は、撮像装置の物理特性解析結果を基に予め測定した量のノイズを、予め設定した順或いはランダムな順に付与する。
【0048】
ステップS703では、クラウドサーバ200が、劣化復元学習のCNNに適用するネットワークパラメータを取得する。ここでのネットワークパラメータは、前述したようにニューラルネットワークのパラメータの初期値、ニューラルネットワークの構造及び最適化方法を示すハイパーパラメータを含む。クラウドサーバ200が取得したネットワークパラメータは、学習部212に送られる。
【0049】
ステップS704では、学習部212の第2の復元部213が、ステップS703で取得されたネットワークパラメータを用いてCNNの重みを初期化した後、ステップS702で生成された生徒画像データの劣化復元を行う。第2の復元部213は、前述したように、生徒画像データをCNNに入力し、式(1)及び式(2)により示されるフィルタの畳み込み演算と非線形演算とを複数繰り返すことで生徒画像データの劣化復元を行い、劣化復元画像データを出力する。
【0050】
ステップS705では、学習部212の誤差算出部214が、教師画像データと、ステップS704で劣化復元して得られた劣化復元画像データとの誤差を、式(3)に示した損失関数に従って算出する。
【0051】
ステップS706では、学習部212のモデル更新部215が、前述のように、ステップS705で得られた誤差が小さくなる(最小になる)ように、CNNに関するネットワークパラメータを更新する。
【0052】
ステップS707では、学習部212が、学習を終了するか否かを判定する。学習部212は、例えば、ネットワークパラメータの更新回数が所定の回数に達した場合に、学習を終了すると判定する。学習を終了すると学習部212が判定した場合(ステップS707でYES)、
図7(A)に示す劣化復元学習を終了する。学習を終了しないと学習部212が判定した場合(ステップS707でNO)、クラウドサーバ200の処理はステップS704へ戻り、ステップS704以降の処理によって別の生徒画像データ及び教師画像データを用いた学習が行われる。
【0053】
次に、
図7(B)のフローチャートを参照して、エッジデバイス100で行われる劣化復元推論の一例の流れについて説明する。
ステップS711では、エッジデバイス100が、クラウドサーバ200での劣化復元学習の学習結果である学習済モデルと、劣化復元処理の対象となる入力動画データとを取得する。入力動画データは、例えば、撮像装置10で撮像したものを直接入力してもよいし、事前に撮像して大容量記憶装置104に記憶しておいたものを読み出してもよい。エッジデバイス100が取得した入力動画データと学習済モデルとは、取得部111に送られる。
【0054】
ステップS712では、取得部111が、ステップS711で取得された入力動画データからN枚の入力画像データを選択し、チャネル方向に連結した入力連結画像データを生成する。本実施形態では、取得部111は、入力動画データから時系列的に連続するN枚の入力画像データを選択し取得する。
【0055】
ステップS713では、第1の復元部112が、学習部212の学習で用いたのと同じCNNを構築して、入力連結画像データの劣化復元を行う。この際、既存のネットワークパラメータが、ステップS711でクラウドサーバ200から取得した更新後のネットワークパラメータによって初期化される。このように第1の復元部112では、更新後のネットワークパラメータを適用したCNNに対して入力連結画像データを入力し、学習部212で行ったのと同じ方法で劣化復元を行い、出力連結画像データを得る。
【0056】
ステップS714では、第2の復元部112が、ステップS713で得られた出力連結画像データをN枚に分割し、入力画像データの時刻に対応する劣化復元画像データを得て、出力動画として出力する。
以上が、実施形態1に係る情報処理システムで行われる処理の全体の流れである。
【0057】
従来の動画における劣化復元処理では、時系列的に連続するN枚の劣化画像を入力して1枚の劣化復元画像を出力する処理を、時間方向に1枚ずつシフトしながら適用していた。このとき、入力動画データを構成する入力画像データの総数をK(ただし、KはN≦Kを満たす整数)、シフトする量をM(ただし、Mは1≦M≦Nを満たす整数)とすると、劣化復元処理の回数Fは、F=K-2×(N/2)(※除算は切り捨て)となる。すなわち、K=90、N=3、M=1の場合、F=88となる。
【0058】
一方、本実施形態のように、N枚の劣化画像を入力してN枚の劣化復元画像を出力する処理を時間方向にN枚ずつシフトしながら行うことで、劣化復元処理の回数をF=K/Nに削減することができる。すなわち、本実施形態では、K=90、N=3の場合、F=30となる。つまり、劣化復元処理にかかるトータルの時間が凡そ1/(N-1)~1/Nになり、1枚の劣化復元画像あたりの劣化復元の処理時間を短縮し、動画の劣化復元処理の高速化が実現できる。
【0059】
なお、
図7(A)のステップS702で学習データを生成したが、学習データは後で生成してもよい。例えば、後続の劣化復元学習の中で教師画像データに対応する生徒画像データを生成するように構成してもよい。また、本実施形態では、予め用意された教師画像群のデータを用いて一から学習を行ったが、学習済のネットワークパラメータをベースにして、本実施形態における劣化復元学習の処理を行ってもよい。
【0060】
本実施形態では、ベイヤ(Bayer)配列のカラーフィルタで撮像されたRAW画像データを例に説明したが、その他のカラーフィルタ配列で撮像されたRAW画像データであってもよい。また、RAW画像データは1チャネルを持つが、カラーフィルタ配列のR、G1、G2、Bの順に画素を並び替えてもよい。このとき、データ構造はH×W×4となり、N=3の場合にはRAW画像データを連結することでH×W×12のデータ構造となる。また、画像のデータ形式はRAW画像に限定されず、例えば、デモザイクされたRGB画像や、YUV変換後の画像であってもよい。
【0061】
なお、本実施形態では、
図3に示したような入出力層に比べて隠れ層の高さと幅が小さくなるようなCNNについて説明したが、CNNの構造はこれに限定されない。例えば、
図8(A)に示すように、入力層801及び出力層803と、隠れ層802との高さ及び幅が等しくてもよい。
【0062】
なお、本実施形態では、劣化要素としてノイズを例に説明したが、劣化要素は、これに限定されない。劣化要素には、前述したような、ボケ、収差、圧縮、低解像、欠損、撮影時の霧・霞・雪・雨の影響によるコントラスト低下などの何れか若しくはそれらの組み合わせによる劣化が含まれていてもよい。その場合、劣化要素に応じてCNNの入出力層のサイズとチャネル数が異なる。例えば、超解像の場合、入力画像データと出力画像データのチャネル数は等しいが、高さと幅は入力画像データよりも出力画像データの方が大きくなる。この場合のCNNの一例を
図8(B)に示す。
図8(B)に示すように、入力層811及び出力層813との間に複数の隠れ層812を有し、出力層813の高さ及び幅は入力層811の高さ及び幅より大きい。また、カラー情報が消失した画像からカラー画像を生成する場合、入力画像データと出力画像データのサイズは等しいが、チャネル数は入力画像データよりも出力画像データの方が大きくなる。
【0063】
〔実施形態2〕
実施形態1では、N枚の劣化画像データを入力しN枚の劣化復元画像データを出力するニューラルネットワークを用いることで、動画の劣化復元処理を高速に行う例を説明した。実施形態1では、動画の劣化復元処理の高速化を実現できるものの、劣化復元された動画データは、時間方向の揺らぎ(或いはちらつき)が残存する。これはN枚の画像を組とし、組単位での処理を時間方向にN枚ずつシフトしながら実施することにより、組の切り替わりにおいて時間方向の連続性が低下あるいは消失するためである。この揺らぎは、劣化の程度が大きい場合に顕著となる。
【0064】
実施形態2では、N枚の各組が重複するようにシフトしてN枚の劣化画像データを入力しN枚の劣化復元画像データを出力する劣化復元処理を実施し、複数得られた同時刻の復元結果を合成することで時間方向の不連続性を解消する方法について説明する。なお、情報処理システムの基本構成などで実施形態1と共通する内容については説明を省略し、以下では差異点を中心に説明するものとする。
【0065】
図9は、実施形態2に係る情報処理システムの機能構成例を示すブロック図である。
図9において、
図2に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
図9に示すように、実施形態2に係るエッジデバイス910は、取得部911、第1の復元部912、及び第1の抑制部913を有する。なお、実施形態2に係るクラウドサーバ200は、実施形態1に係るクラウドサーバ200と同様である。
図9に示す各機能部は、例えば、各機能を実現するためのコンピュータプログラムをCPU101又はCPU201が実行することで実現される。なお、
図9に示した機能部の全部あるいは一部をハードウェアで実装されてもよい。
【0066】
エッジデバイス910について説明する。
取得部911は、処理対象となる入力動画データから時系列的に連続するN枚の入力画像データを取得する。本実施形態では、実施形態1と同様に、N枚の入力画像データを組として組毎に劣化復元処理を行うが、各組間で一部重複を持たせるようにしてN枚の入力画像データを選択する点が異なる。時間方向にシフトする量をMとすると、実施形態1では重複させないためにM=Nとなるが、本実施形態では1枚からN枚の範囲で時間方向にずらして選択するようにするため1≦M<Nとなる。
【0067】
第1の復元部912は、推論用劣化復元部であり、取得部911で選択したN枚の入力画像データに対して、実施形態1と同様の劣化復元処理を行う。すなわち、第1の復元部112は、クラウドサーバ200から取得した学習済モデルを用いて、N枚の入力画像データに対して劣化復元推論を行う。各組はN枚の入力画像データを一部重複を持たせて選択しているため、第1の復元部912からは同時刻の劣化復元画像データが複数出力されることとなる。
【0068】
図10は、実施形態2に係る劣化復元処理の概要を説明する図である。
図10には、N=3、M=1の場合、すなわち3枚の劣化画像データを入力し3枚の劣化復元画像データを出力する劣化復元処理を、時間方向に1枚ずつシフトさせて行う場合の例を示している。
【0069】
入力動画データ1001から時系列順に選択した時刻t=0、1、2における入力画像データを組Aとし、時刻t=1、2、3における入力画像データを組Bとし、時刻t=2、3、4における入力画像データを組Cとする。次に、第1の復元部912は、組毎に入力画像データをチャネル方向に連結し、得られた入力画像連結データA、B、CをCNN1002に入力して劣化復元処理を行う。その結果、劣化が復元された出力画像連結データが得られる。そして、第1の復元部912は、出力画像連結データを時刻毎に分割して組A、組B、組Cの劣化復元画像データ1003を出力する。N=3である場合、時刻t=0における劣化復元画像データ1003は1枚、時刻t=1における劣化復元画像データ1003は2枚、時刻t=2以降は毎時刻3枚の劣化復元画像データ1003が得られる。
【0070】
第1の抑制部913は、同時刻における複数の劣化復元画像データ1004を合成し、時刻毎に単一の劣化復元画像データを出力する(以後、弊害抑制処理とも称す)。例えば、N=3である場合、第1の抑制部913は、
図10に示すように同時刻の劣化復元画像データ1004毎に弊害抑制処理1005を行い、弊害(時間方向の不連続性)が抑制された結果が出力動画データ1006として出力される。なお、同時刻における劣化復元画像は最大でN枚になり、第1の抑制部913は、弊害抑制処理1005においてN枚を合成することになる。合成の方法としては、N枚の劣化復元画像における画素毎の平均あるいは加重平均などがある。
【0071】
<システム全体の処理の流れ>
次に、実施形態2に係る情報処理システムで行われる各種処理について説明する。
図11は、実施形態2に係る情報処理システムにおける処理例を示すフローチャートである。実施形態2において、クラウドサーバ200で行われる劣化復元学習は、実施形態1と同様である。
【0072】
図11のフローチャートを参照して、エッジデバイス910で行われる劣化復元推論の一例の流れについて説明する。
ステップS1101では、エッジデバイス910が、クラウドサーバ200での劣化復元学習の学習結果である学習済モデルと、劣化復元処理の対象となる入力動画データとを取得する。エッジデバイス910が取得した入力動画データと学習済モデルとは、取得部911に送られる。
【0073】
ステップS1102では、取得部911が、ステップS1101で取得された入力動画データからN枚の入力画像データを選択し、チャネル方向に連結した入力連結画像データを生成する。本実施形態では、取得部911は、入力動画データから時系列的に連続するN枚の入力画像データを、各組間で一部重複を持たせるようにして選択する。
【0074】
ステップS1103では、第1の復元部912が、学習部212の学習で用いたのと同じCNNを構築して、入力連結画像データの劣化復元処理を行う。この際、既存のネットワークパラメータが、ステップS1101でクラウドサーバ200から取得した更新後のネットワークパラメータによって初期化される。このように第1の復元部912では、更新後のネットワークパラメータを適用したCNNに対して入力連結画像データを入力し、学習部212で行ったのと同じ方法で劣化復元処理を行い、出力連結画像データを得る。そして、第1の復元部912は、得られた出力連結画像データを時刻毎の劣化復元画像データに分割する。
【0075】
ステップS1104では、第1の抑制部913が、ステップS1103で第1の復元部912により得られた同じ時刻における劣化復元画像データを合成し、弊害が抑制された単一の劣化復元画像データを得て、出力動画データを出力する。
以上が、実施形態2に係る情報処理システムで行われる処理の流れである。
【0076】
実施形態2では、N枚の各組が重複するようにシフトしてN枚の劣化画像データを入力しN枚の劣化復元画像データを出力する劣化復元処理を実施し、複数得られた同時刻の劣化復元結果を合成することで時間方向の不連続性を解消する。これにより、劣化復元された動画データにおける時間方向の揺らぎを軽減することができる。本実施形態は、N枚の各組の内、少なくとも1枚以上の画像を重複させる場合に揺らぎを軽減できる効果を得ることができ、重複する画像数が多いほど揺らぎの軽減効果が大きくなる。ただし、揺らぎの軽減効果と処理速度はトレードオフの関係にあり、揺らぎの軽減効果が大きいほど処理速度は低下する。このトレードオフはシフト量Mによって調整することが可能であり、従来のN枚入力1枚出力よりも高速に処理しつつ揺らぎを低減するには、シフト量Mを1<Mに設定する必要がある。
【0077】
なお、本実施形態では、第1の抑制部913で行う画像データの合成方法として平均値を代表値として用いたが、これに限定されない。例えば、N枚の画素ごとに中央値や最頻値を代表値としてもよい。あるいは、ルールベースの合成方法ではなく、ニューラルネットワークを用いた合成方法でもよい。
【0078】
〔実施形態3〕
実施形態2では、N枚の各組が重複するようにシフトしながらN枚の劣化画像データを入力しN枚の劣化復元画像データを出力する劣化復元処理を実施し、複数得られた同時刻の復元画像を合成することで時間方向の不連続性を解消する例を説明した。実施形態2では、入力動画の劣化の程度が大きい(例えば、ノイズが極端に多い)場合、劣化復元画像に対して弊害抑制処理を実施したとしても、揺らぎが残存することがある。この揺らぎの残存は、Nが小さい場合、すなわち合成する劣化復元画像の枚数が少ないほど顕著となる。
【0079】
実施形態3では、劣化復元処理と弊害抑制処理を1セットとし、このセットを多段階で実施することで、さらに揺らぎの残存を低減する方法について説明する。なお、情報処理システムの基本構成など実施形態1、実施形態2と共通する内容については説明を省略し、以下では差異点を中心に説明するものとする。
【0080】
図12は、実施形態3に係る情報処理システムの機能構成例を示すブロック図である。
図12において、
図2、
図9に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
図12に示すように、実施形態3に係るエッジデバイス1210は、構成決定部1211、取得部911、第1の復元部1212、及び第1の抑制部1213を有する。また、実施形態3に係るクラウドサーバ1220は、付与部211及び学習部1221を有する。学習部1221は、第2の復元部213、第2の抑制部1222、誤差算出部214、及びモデル更新部215を有する。
図12に示す各機能部は、例えば、各機能を実現するためのコンピュータプログラムをCPU101又はCPU201が実行することで実現される。なお、
図12に示した機能部の全部あるいは一部をハードウェアで実装されてもよい。
【0081】
エッジデバイス100の各機能部について説明する。
構成決定部1211は、劣化復元処理と弊害抑制処理を1セットとした時に、このセットの反復回数I(ただし、Iは1≦Iを満たす整数)を決定する。本実施形態では、一例としてI=2とする。なお、I=1の場合には、実施形態2と同様の処理を行うこととなる。
【0082】
第1の復元部1212は、推論用劣化復元部であり、実施形態2における第1の復元部912で行う劣化復元処理と同様の処理をI回数分実施する。第1の抑制部1213は、推論用弊害抑制部であり、第1の復元部1212から出力される同時刻の劣化復元画像データのすべてを入力とし、単一の弊害抑制結果を出力する処理をI回数分実施する。
【0083】
図13は、実施形態3に係る劣化復元処理の概要を説明する図である。
図13には、N=3、M=1、I=2の場合、すなわち3枚の劣化画像データを入力し3枚の劣化復元画像データを出力する劣化復元処理を時間方向に1枚ずつシフトさせて行い、かつ劣化復元処理と弊害抑制処理とのセットを2回実施する場合の例を示している。
【0084】
1セット目は、入力動画データ1301から時系列順に選択したN枚の入力画像データに対してCNN<1>1302を用いて劣化復元処理を行い、劣化復元処理の結果1303に対して、CNN<2>1304を用いて弊害抑制処理を行う。2セット目は、1セット目の出力結果1305を基に、再びN枚ずつ組A、B、Cをつくり、1セット目で用いたCNN<1>1302とCNN<2>1304を用いて劣化復元処理と弊害抑制処理を行い、結果を出力動画データ1309として出力する。すなわち、出力結果1305から選択したN枚の入力画像データに対してCNN<1>1302を用いて劣化復元処理を行い、劣化復元処理の結果1307に対して、CNN<2>1304を用いて弊害抑制処理を行う。
【0085】
次に、クラウドサーバ1220の各機能部について説明する。
第2の抑制部1222は、学習用弊害抑制部であり、CNNを用いて同時刻における劣化復元画像データを合成して単一の劣化復元画像データを出力する。第2の抑制部1222におけるCNNの構造は、N枚の劣化復元画像データを入力して1枚の劣化復元画像データを出力するものとする。
【0086】
<システム全体の処理の流れ>
次に、実施形態3に係る情報処理システムで行われる各種処理について説明する。
図14(A)及び
図14(B)は、実施形態3に係る情報処理システムにおける処理例を示すフローチャートである。以下、
図14(A)及び
図14(B)のフローチャートに沿って説明する。
【0087】
図14(A)のフローチャートを参照して、クラウドサーバ1220で行われる劣化復元学習の一例の流れについて説明する。
ステップS1401では、クラウドサーバ1220が、実施形態1におけるステップS701と同様にして、予め用意された教師画像群と、撮像装置の物理特性解析結果とを取得する。クラウドサーバ1220が取得した教師画像群のデータと、撮像装置の物理特性解析結果とは、付与部211に送られる。
【0088】
ステップS1402では、付与部211が、実施形態1におけるステップS702と同様にして、学習データ生成処理を行う。
ステップS1403では、クラウドサーバ1220が、劣化復元学習及び弊害抑制学習のCNNに適用するネットワークパラメータを取得する。クラウドサーバ1220が取得したネットワークパラメータは、学習部1221に送られる。
【0089】
ステップS1404では、学習部1221の第2の復元部213が、実施形態1におけるステップS704と同様にして、生徒画像データの劣化復元を行い、劣化復元画像データを出力する。第2の復元部213は、ステップS1403で取得されたネットワークパラメータを用いてCNNの重みを初期化した後、ステップS1402で生成された生徒画像データの劣化復元を行い、劣化復元画像データを出力する。
【0090】
ステップS1405では、学習部1221の第2の抑制部1222が、ステップS1403で取得されたネットワークパラメータを用いてCNNの重みを初期化した後、ステップS1404で劣化復元された劣化復元画像データの弊害抑制を行う。
【0091】
ステップS1406では、学習部1221の誤差算出部214が、実施形態1におけるステップS705と同様にして、教師画像データと、ステップS1405で弊害抑制された劣化復元画像データとの誤差を損失関数に従って算出する。
ステップS1407では、学習部1221のモデル更新部215が、実施形態1におけるステップS706と同様にして、ステップS1406で得られた誤差が小さくなる(最小になる)ように、CNNに関するネットワークパラメータを更新する。
【0092】
ステップS1408では、学習部1221が、学習を終了するか否かを判定する。学習部1221は、例えば、ネットワークパラメータの更新回数が所定の回数に達した場合に、学習を終了すると判定する。学習を終了すると学習部1221が判定した場合(ステップS1408でYES)、
図14(A)に示す劣化復元学習を終了する。学習を終了しないと学習部1221が判定した場合(ステップS1408でNO)、クラウドサーバ1220の処理はステップS1404へ戻り、ステップS1404以降の処理によって別の生徒画像データ及び教師画像データを用いた学習が行われる。
【0093】
次に、
図14(B)のフローチャートを参照して、エッジデバイス1210で行われる劣化復元処理の流れについて説明する。
ステップS1411では、構成決定部1211が、劣化復元処理と弊害抑制処理とのセットの反復回数Iを決定する。反復回数Iは予め設定された値を使用してもよいし、ユーザが任意に設定してもよい。
【0094】
ステップS1412では、エッジデバイス1210が、実施形態2におけるステップS1101と同様にして、クラウドサーバ1220での劣化復元学習の学習結果である学習済モデルと、劣化復元処理の対象となる入力動画データとを取得する。エッジデバイス1210が取得した入力動画データと学習済モデルとは、取得部911に送られる。
【0095】
ステップS1413では、取得部911が、実施形態2におけるステップS1102と同様にして、ステップS1412で取得された入力動画データからN枚の入力画像データを選択し、チャネル方向に連結した入力連結画像データを生成する。本実施形態では、取得部911は、入力動画データから時系列的に連続するN枚の入力画像データを、各組間で一部重複を持たせるようにして選択する。
【0096】
ステップS1414では、第1の復元部1212が、実施形態2におけるステップS1103と同様にして、学習部1221の学習で用いたのと同じCNNを構築して、入力連結画像データの劣化復元処理を行い、出力連結画像データを得る。そして、第1の復元部1212は、得られた出力連結画像データを時刻毎の劣化復元画像データに分割する。
【0097】
ステップS1415では、第1の抑制部1213が、学習部1221の学習で用いたのと同じCNNを構築して、同時刻における劣化復元画像データを入力し弊害抑制を行う。これにより、弊害が抑制された単一の劣化復元画像データが得られる。
【0098】
ステップS1416では、エッジデバイス1200が、劣化復元処理と弊害抑制処理との反復回数がI回に到達したか否かを判定する。反復回数がI回に到達したエッジデバイス1200が判定した場合(ステップS1416でYES)、
図14(B)に示す劣化復元処理を終了する。反復回数がI回に到達していないとエッジデバイス1200が判定した場合(ステップS1416でNO)、エッジデバイス1200の処理はステップS1415へ戻り、ステップS1415以降の処理を行う。
以上が、実施形態3に係る情報処理システムで行われる処理の全体の流れである。
【0099】
実施形態3では、劣化復元処理と弊害抑制処理を1セットとし、このセットを多段階で実施することで、さらに揺らぎの残存を低減する。これにより、入力動画データの劣化の程度が大きい場合、劣化復元結果の時間方向の揺らぎの残存を低減することができる。劣化の程度が大きくなるのは主に悪条件下で撮影された場合であり、例えば星明かりよりも暗い低照度環境下において高感度設定で撮影した映像のノイズや、望遠レンズを用いて数km先にある被写体を撮影した映像の解像度低下などがある。本実施形態では、特に劣化復元処理と弊害抑制処理とのセットの反復回数Iが多いほど揺らぎの残存を低減する効果が大きくなる。揺らぎの残存の軽減効果と処理速度はトレードオフの関係にあり、揺らぎの軽減効果が大きいほど処理速度は低下する。このトレードオフは、入力画像データの総数K、処理単位の枚数N、シフト量M、反復回数Iによって調整することが可能である。従来のN枚入力1枚出力よりも高速に処理する効果を保持しつつ揺らぎの残存を低減するには、K-2・(N/2)>I(K/M)(※除算は切り捨て)を満たすようにN、M、I(ただし、N≦K、1≦M≦N、1≦Iを満たす整数)を設定する必要がある。例えば、K=90、N=3、M=3、I=2の場合、左辺は88、右辺は60となり、N枚入力1枚出力より約1.5倍高速に処理できる。
【0100】
なお、本実施形態では、弊害抑制処理としてCNNを用いたが、同時刻における劣化復元画像データの平均を取り単一の劣化復元画像データを出力するようなルールベースの処理を行ってもよい。
【0101】
〔実施形態4〕
実施形態2では、N枚の各組が重複するようにシフトしながらN枚の劣化画像データを入力しN枚の劣化復元画像データを出力する劣化復元処理を行い、複数得られた同時刻の復元画像を合成することにより、揺らぎを低減する例を説明した。また、実施形態3では、実施形態2で実施した劣化復元処理と弊害抑制処理を1セットとし、これを多段階で行うことにより、揺らぎの残存を低減する例を説明した。実施形態3では、入力動画の劣化の程度によっては、多段階による弊害抑制処理は過剰補正になる場合や、逆に補正不足になる場合がある。
【0102】
実施形態4では、入力動画データの劣化量を推定する機能部を追加することで、適切に劣化を復元する例について説明する。なお、情報処理システムの基本構成など前述した実施形態と共通する内容については説明を省略し、以下では差異点を中心に説明するものとする。
【0103】
図15は、実施形態4に係る情報処理システムの機能構成例を示すブロック図である。
図15において、
図2、
図9に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
図15に示すように、実施形態4に係るエッジデバイス1510は、取得部911、第1の推定部1511、第1の復元部1512、及び第1の抑制部913を有する。また、実施形態4に係るクラウドサーバ1520は、付与部211及び学習部1521を有する。学習部1521は、第2の推定部1522、第2の復元部1523、誤差算出部1524、及びモデル更新部1525を有する。
図15に示す各機能部は、例えば、各機能を実現するためのコンピュータプログラムをCPU101又はCPU201が実行することで実現される。なお、
図15に示した機能部の全部あるいは一部をハードウェアで実装されてもよい。
【0104】
エッジデバイス1510の各機能部について説明する。
第1の推定部1511は、推論用劣化推定部であり、クラウドサーバ1520から取得した学習済モデルを用いて、N枚の入力画像データの劣化の程度を表す劣化量を推定する。劣化量の推定には、ニューラルネットワークが用いられる。第1の推定部1511は、入力画像データをCNNに入力し、式(1)と式(2)により示されるフィルタによる畳み込み演算と非線形演算を複数回繰り返して、劣化推定結果を出力する。ここで用いるCNNは、N枚の画像データを入力してN枚の画像データを出力する構造を持つ。
【0105】
第1の復元部1512は、推論用劣化復元部であり、クラウドサーバ1520から取得した学習済モデルとN枚の劣化推定結果とを用いて、N枚の入力画像データ毎に劣化復元推論を行い、N枚の劣化復元画像データを得る。劣化量すなわちノイズ量が多い場合には、ノイズを低減した後の揺らぎが残存しやすいため、シフト量Mを小さく設定する。例えば、予めノイズ量毎にシフト量Mの値を対応付けたルックアップテーブル(LUT)を保持しておき、ノイズ量に応じてLUTを参照することで適切なシフト量Mの値を設定することができる。
【0106】
劣化復元には、ニューラルネットワークが用いられる。第1の復元部1512は、N枚の入力画像データとN枚の劣化推定結果をチャネル方向に連結する。そして、第1の復元部1512は、第1の推定部1511で用いたCNNとは別のCNNに入力し、式(1)と式(2)により示されるフィルタによる畳み込み演算と非線形演算を繰り返して、劣化復元結果を出力する。
【0107】
次に、クラウドサーバ1520の各機能部について説明する。
第2の推定部1522は、学習用劣化推定部であり、付与部211から学習データを受け取り、生徒画像データに付与された劣化量を推定する。第2の推定部1522は、まず生徒画像データを第1のCNNに入力し、式(1)と式(2)により示されるフィルタによる畳み込み演算と非線形演算を複数回繰り返し、劣化推定結果を出力する。
【0108】
第2の復元部1523は、学習用劣化復元部であり、生徒画像データと、第2の推定部1522で推定された劣化推定結果とを受け取り、生徒画像データに対して復元処理を行う。第2の復元部1523は、まず生徒画像データと劣化推定結果を第2のCNNに入力し、式(1)と式(2)により示されるフィルタによる畳み込み演算と非線形演算を複数回繰り返し、劣化復元画像データを出力する。
【0109】
誤差算出部1524は、生徒画像データに付与された劣化量と第2の推定部1522により得られた劣化推定結果の誤差を算出する。ここで、付与された劣化量、生徒画像データ及び劣化推定結果は、どれも同じ画素数を持つ。また、誤差算出部1524は、教師画像データと第2の復元部1523により得られた復元結果の誤差を算出する。ここで、教師画像データと復元結果は同じ画素数を持つ。
【0110】
モデル更新部1525は、誤差算出部1524が算出した、付与された劣化量と劣化推定結果の誤差が小さくなる(最小になる)ように第1のCNNに関するネットワークパラメータを更新する。また、モデル更新部1525は、誤差算出部1524が算出した、教師画像データと復元結果の誤差が小さくなる(最小になる)ように第2のCNNに関するネットワークパラメータを更新する。なお、第2の推定部1522と第2の復元部1523とで、誤差が算出されるタイミングは異なるが、ネットワークパラメータが更新されるタイミングは同じである。
【0111】
<システム全体の処理の流れ>
次に、実施形態4に係る情報処理システムで行われる各種処理について説明する。
図16(A)及び
図16(B)は、実施形態4に係る情報処理システムにおける処理例を示すフローチャートである。以下、
図16(A)及び
図16(B)のフローチャートに沿って説明する。
【0112】
図16(A)のフローチャートを参照して、クラウドサーバ1520で行われる劣化復元学習の一例の流れについて説明する。
ステップS1601では、クラウドサーバ1520が、実施形態1におけるステップS701と同様にして、予め用意された教師画像群と、撮像装置の物理特性解析結果とを取得する。クラウドサーバ1520が取得した教師画像群のデータと、撮像装置の物理特性解析結果とは、付与部211に送られる。
【0113】
ステップS1602では、付与部211が、実施形態1におけるステップS702と同様にして、学習データ生成処理を行う。
ステップS1603では、クラウドサーバ1520が、劣化推定学習及び劣化復元学習のCNNに適用するネットワークパラメータを取得する。クラウドサーバ1520が取得したネットワークパラメータは、学習部1521に送られる。
【0114】
ステップS1604では、第1の推定部1522が、ステップS1603で取得されたネットワークパラメータを用いてCNNの重みを初期化した後、ステップS1602で生成された生徒画像データの劣化を推定する。そして、第2の復元部1523が、その推定結果を基に生徒画像データの復元を行う。
【0115】
ステップS1605では、誤差算出部1524が、付与された劣化量と劣化推定結果の誤差、及び復元結果と教師画像データとの誤差を、それぞれ損失関数に従って算出する。
ステップS1606では、モデル更新部1525が、ステップS1605で得られた誤差が小さくなる(最小になる)ように、劣化推定学習及び劣化復元学習のそれぞれのCNNのネットワークパラメータを更新する。
【0116】
ステップS1607では、学習部1521が、学習を終了するか否かを判定する。学習部1521は、例えば、ネットワークパラメータの更新回数が所定の回数に達した場合に、学習を終了すると判定する。学習を終了すると学習部1521が判定した場合(ステップS1607でYES)、
図16(A)に示す劣化復元学習を終了する。学習を終了しないと学習部1521が判定した場合(ステップS1607でNO)、クラウドサーバ1520の処理はステップS1604へ戻り、ステップS1604以降の処理によって別の生徒画像データ及び教師画像データを用いた学習が行われる。
【0117】
次に、
図16(B)のフローチャートを参照して、エッジデバイス1510で行われる劣化復元推論の一例の流れについて説明する。
ステップS1611では、エッジデバイス1510が、実施形態1におけるステップS711と同様にして、クラウドサーバ1520での劣化復元学習の学習結果である学習済モデルと、劣化復元処理の対象となる入力動画データとを取得する。エッジデバイス1510が取得した入力動画データと学習済モデルとは、取得部911に送られる。
【0118】
ステップS1612では、取得部911が、実施形態1におけるステップS712と同様にして、ステップS1611で取得された入力動画データからN枚の入力画像データを選択し、チャネル方向に連結した入力連結画像データを生成する。
ステップS1613では、第1の推定部1511が、学習部1521の劣化推定学習で用いたのと同じCNNを構築して、入力画像データの劣化推定を行う。第1の推定部1511では、更新後のネットワークパラメータを適用したCNNに対して入力画像データを入力し、学習部1521で行ったのと同じ方法で劣化推定を行って劣化推定結果を得る。
【0119】
ステップS1614では、第1の復元部1511が、学習部1521の劣化復元学習で用いたのと同じCNNを構築して、劣化推定結果からLUTを参照してシフト量Mを設定し、入力画像データの劣化復元を行う。
ステップS1615では、第1の抑制部913が、ステップS1614で得られた同時刻における劣化復元画像データを合成し、弊害が抑制された単一の劣化復元画像データを得る。そして、劣化復元がなされた後の画像データが、出力動画データとして出力される。
以上が、実施形態4に係る情報処理システムで行われる処理の全体の流れである。
【0120】
実施形態4では、入力動画データの劣化量を推定する機能部を追加することで、劣化推定結果に基づいて劣化を復元する。これにより、カメラの感度や露出値の変更や、シーンの切り替わり、あるいは被写体がフレームインした場合でも、適応的に入力動画データの劣化量を推定し、その結果に応じて適切な劣化復元処理及び弊害抑制処理を行うことができる。本実施形態では、劣化量(ノイズ量)を基にLUTを参照してシフト量Mを設定する例について説明したが、処理の高速化を優先、あるいは揺らぎの低減を優先するようにシフト量Mを設定するLUTを持たせてもよい。このとき、従来のN枚入力1枚出力よりも高速に処理する効果を保持しつつ揺らぎを低減するには、シフト量Mが1<MとなるようにLUTを作成する必要がある。
【0121】
なお、本実施形態では、第1の復元部1512で、劣化量に基づいてシフト量Mを設定したが、劣化画像の枚数Nや反復回数IについてもLUTに載せておき、劣化量に応じて枚数Nの変更及び反復回数Iの設定を行うようにしても構わない。例えば、劣化量が多いほどNを大きく設定、あるいは反復回数Iを大きく設定してもよい。
【0122】
(本発明の他の実施形態)
本発明は、前述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0123】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0124】
本実施形態の開示は、以下の構成及び方法等を含む。
(構成1)
相関の高い複数の入力画像データを取得する第1の取得手段と、
前記複数の入力画像データのうちのN枚(Nは2以上の整数)の入力画像データに基づいて、ニューラルネットワークを用いて劣化復元した、該N枚の入力画像データに対応するN枚の第1の復元画像データを出力する復元手段とを有することを特徴とする情報処理装置。
(構成2)
前記復元手段は、前記N枚の入力画像データを組として連結し、前記組毎に前記N枚の第1の復元画像データを出力することを特徴とする構成1に記載の情報処理装置。
(構成3)
複数の前記N枚の入力画像データの組を、前記複数の入力画像データを1枚からN枚の範囲で時間方向にずらして選択し作成することを特徴とする構成2に記載の情報処理装置。
(構成4)
前記復元手段は、同じ座標にある各画素を重ね合わせて前記N枚の入力画像データを連結することを特徴とする構成2又は3記載の情報処理装置。
(構成5)
前記相関の高い複数の入力画像データは、時系列的に連続する複数の入力画像データであることを特徴とする構成1~4の何れか1項に記載の情報処理装置。
(構成6)
前記ニューラルネットワークの学習済モデルを取得する第2の取得手段を有することを特徴とする構成1~5の何れか1項に記載の情報処理装置。
(構成7)
前記復元手段により出力された同じ時刻における複数の前記第1の復元画像データに基づいて、該時刻における1枚の第2の復元画像データを出力する抑制手段を有することを特徴とする構成1~6の何れか1項に記載の情報処理装置。
(構成8)
前記抑制手段は、同じ時刻における複数の前記第1の復元画像データを合成して1枚の前記第2の復元画像データを出力することを特徴とする構成7に記載の情報処理装置。
(構成9)
前記抑制手段は、同じ時刻における複数の前記第1の復元画像データをニューラルネットワークを用いて合成して1枚の前記第2の復元画像データを出力することを特徴とする構成7に記載の情報処理装置。
(構成10)
前記N枚の入力画像データに対して、前記復元手段による処理及び前記抑制手段による処理を反復して実行することを特徴とする構成7~9の何れか1項に記載の情報処理装置。
(構成11)
前記N枚の入力画像データの劣化量を推定する推定手段を有し、
前記復元手段は、前記N枚の入力画像データ及び前記推定手段により推定された劣化量に基づいて、N枚の前記第1の復元画像データを出力することを特徴とする構成1~10の何れか1項に記載の情報処理装置。
(構成12)
前記劣化復元される劣化は、ノイズ、圧縮、低解像、ぼけ、収差、欠損、撮影時の天候の影響によるコントラスト低下のうちの少なくとも1つを含むことを特徴とする構成1~11の何れか1項に記載の情報処理装置。
(構成13)
教師画像データに画質の劣化要素を付与して生徒画像データを生成する付与手段と、
複数の前記教師画像データからなる教師画像群と複数の前記生徒画像データからなる生徒画像群とで構成された学習データを用いて、N枚(Nは2以上の整数)の入力画像データに基づいて、劣化復元したN枚の復元画像データを出力するニューラルネットワークの学習を行う学習手段と、
前記学習手段により得られた前記ニューラルネットワークの学習済モデルを提供する提供手段とを有することを特徴とする情報処理装置。
(方法1)
相関の高い複数の入力画像データを取得する取得工程と、
前記複数の入力画像データのうちのN枚(Nは2以上の整数)の入力画像データに基づいて、ニューラルネットワークを用いて劣化復元した、該N枚の入力画像データに対応するN枚の復元画像データを出力する復元工程とを有することを特徴とする情報処理方法。
(方法2)
教師画像データに画質の劣化要素を付与して生徒画像データを生成する付与工程と、
複数の前記教師画像データからなる教師画像群と複数の前記生徒画像データからなる生徒画像群とで構成された学習データを用いて、N枚(Nは2以上の整数)の入力画像データに基づいて、劣化復元したN枚の復元画像データを出力するニューラルネットワークの学習を行う学習工程と、
前記学習工程で得られた前記ニューラルネットワークの学習済モデルを提供する提供工程とを有することを特徴とする情報処理方法。
(プログラム1)
情報処理装置のコンピュータに、
相関の高い複数の入力画像データを取得する取得ステップと、
前記複数の入力画像データのうちのN枚(Nは2以上の整数)の入力画像データに基づいて、ニューラルネットワークを用いて劣化復元した、該N枚の入力画像データに対応するN枚の復元画像データを出力する復元ステップとを実行させるためのプログラム。
(プログラム2)
情報処理装置のコンピュータに、
教師画像データに画質の劣化要素を付与して生徒画像データを生成する付与ステップと、
複数の前記教師画像データからなる教師画像群と複数の前記生徒画像データからなる生徒画像群とで構成された学習データを用いて、N枚(Nは2以上の整数)の入力画像データに基づいて、劣化復元したN枚の復元画像データを出力するニューラルネットワークの学習を行う学習ステップと、
前記学習ステップで得られた前記ニューラルネットワークの学習済モデルを提供する提供ステップとを実行させるためのプログラム。
【符号の説明】
【0125】
111、911:取得部 112、912、1212、1512:第1の復元部 211:付与部 212、1221、1521:学習部 213、1523:第2の復元部 214、1524:誤差算出部 215、1525:モデル更新部 913、1213:第1の抑制部 1211:構成決定部 1222:第2の抑制部 1511:第1の推定部 1522:第2の推定部