(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-01
(45)【発行日】2024-04-09
(54)【発明の名称】画像処理方法、装置、機器及びコンピュータプログラム
(51)【国際特許分類】
G06T 1/00 20060101AFI20240402BHJP
【FI】
G06T1/00 500A
(21)【出願番号】P 2022566432
(86)(22)【出願日】2021-05-17
(86)【国際出願番号】 CN2021094049
(87)【国際公開番号】W WO2021244270
(87)【国際公開日】2021-12-09
【審査請求日】2022-10-31
(31)【優先権主張番号】202010495781.1
(32)【優先日】2020-06-03
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
【氏名又は名称原語表記】TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
【住所又は居所原語表記】35/F,Tencent Building,Kejizhongyi Road,Midwest District of Hi-tech Park,Nanshan District, Shenzhen,Guangdong 518057,CHINA
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】▲陳▼ 法▲聖▼
【審査官】渡部 幸和
(56)【参考文献】
【文献】特開2010-093650(JP,A)
【文献】Yinggan Tang; Xiaoning Zhu; Mingyong Cui,Convolutional neural network with gradient information for image super-resolution,2016 IEEE International Conference on Information and Automation (ICIA),2016年08月01日,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7832094
【文献】Zejiang Hou; Sun-Yuan Kung,Efficient Image Super Resolution Via Channel Discriminative Deep Neural Network Pruning,ICASSP 2020 - 2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP),2020年05月04日,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9054019
【文献】眞邉 泰斗,他,動画像超解像システムのFPGA実装,電子情報通信学会技術研究報告,日本,2016年05月12日,Vol.116 No.53
【文献】Jingxu Chen; Xiaohai He; Honggang Chen; Qizhi Teng; Linbo Qing,Single image super-resolution based on deep learning and gradient transformation,2016 IEEE 13th International Conference on Signal Processing (ICSP),2016年11月06日,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7877915
【文献】Christian Ledig,他,Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network,2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2017年07月21日,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8099502
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00-7/90
(57)【特許請求の範囲】
【請求項1】
画像処理機器が実行する画像処理方法であって、
処理対象画像を取得するステップと、
前記処理対象画像がグレースケール画像である場合、前記処理対象画像における各画素点の特徴ベクトルを抽出
するステップであって、
前記処理対象画像に対応する第1方向勾配図と第2方向勾配図を決定するステップと、
前記処理対象画像における各画素点の、第1方向勾配図における第1勾配近傍ブロックと第2方向勾配図における第2勾配近傍ブロックを決定するステップであって、
前記各画素点の第1勾配近傍ブロックと第2勾配近傍ブロックに基づいて、前記各画素点の共分散行列を決定するステップと、
各共分散行列に対応する各第1特徴値と各第2特徴値を決定するステップと、
前記各画素点の近傍画像ブロックに対応する各分散値を決定するステップと、
前記各第1特徴値、各第2特徴値及び各分散値に基づいて、前記各画素点の特徴ベクトルを決定するステップと、
を含む、ステップと、
前記各画素点の第1勾配近傍ブロックと第2勾配近傍ブロックに基づいて、前記各画素点の特徴ベクトルを決定するステップと、
を含む、ステップと、
前記各画素点に対応する近傍画像ブロックを決定するステップと、
軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得るステップであって、前記軽量化モデルは、訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである、ステップと、
前記ターゲット画像を出力するステップと、を含む、画像処理方法。
【請求項2】
前記処理対象画像がカラー画像である場合、前記処理対象画像を輝度クロマ(YUV)色域に変換し、輝度(Y)チャンネル処理対象画像とクロマ(UV)チャンネル処理対象画像を得るステップと、
前記Yチャンネル処理対象画像における各Yチャンネル画素点の特徴ベクトルを抽出し、前記各Yチャンネル画素点に対応する近傍画像ブロックを決定するステップと、
前記軽量化モデルを利用して、前記各Yチャンネル画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のYチャンネルターゲット画像を得るステップと、
所定の画像処理アルゴリズムを利用して、前記UVチャンネル処理対象画像に対して処理を行い、UVチャンネルターゲット画像を得るステップと、
前記Yチャンネルターゲット画像とUVチャンネルターゲット画像に基づいて、ターゲット画像を決定するステップであって、前記ターゲット画像の色域は、処理対象画像の色域と同じである、ステップと、を更に含む、
請求項1に記載の方法。
【請求項3】
処理対象画像を取得する前記ステップは、
処理対象ビデオファイルを取得するステップと、
前記処理対象ビデオファイルに対して復号を行い、前記処理対象ビデオファイルにおけ
る各ビデオフレーム画像を得るステップと、
前記各ビデオフレーム画像を前記処理対象画像として決定するステップと、を含む、
請求項1に記載の方法。
【請求項4】
訓練データと所定のニューラルネットワークモデルを取得するステップであって、前記訓練データは、第1訓練画像と第2訓練画像を含み、前記第2訓練画像は、前記第1訓練画像に対してダウンサンプリングを行うことで得られたものであり、前記ニューラルネットワークモデルは、生成モデルと識別モデルを含む、ステップと、
前記ニューラルネットワークモデルを利用して、前記第2訓練画像に対して処理を行い、予測画像を得るステップと、
前記予測画像、前記第1訓練画像及び所定の目的関数に基づいて、前記ニューラルネットワークモデルに対して逆伝播訓練を行い、訓練されたニューラルネットワークモデルを得るステップと、を更に含む、
請求項1から
3のいずれか一項に記載の方法。
【請求項5】
画像処理機器が実行する画像処理方法であって、
訓練データと所定のニューラルネットワークモデルを取得するステップであって、前記訓練データは、第1訓練画像と第2訓練画像を含み、前記第2訓練画像は、前記第1訓練画像に対してダウンサンプリングを行うことで得られたものであり、前記ニューラルネットワークモデルは、生成モデルと識別モデルを含む、ステップと、
前記ニューラルネットワークモデルを利用して、前記第2訓練画像に対して処理を行い、予測画像を得るステップと、
前記予測画像、前記第1訓練画像、ならびに生成目的関数と識別目的関数に基づいて、前記ニューラルネットワークモデルに対して逆伝播訓練を行い、訓練されたニューラルネットワークモデルを得るステップであって、
前記予測画像と前記第1訓練画像との画素レベル誤差値とコンテンツ誤差値を決定するステップと、
前記予測画像と前記識別モデルに基づいて、前記予測画像の第1画素識別誤差値と第1グローバル識別誤差値を決定するステップと、
所定の生成重み値、前記画素レベル誤差値、前記コンテンツ誤差値、前記第1画素識別誤差値及び前記第1グローバル識別誤差値に基づいて、前記生成目的関数を決定するステップと、
を含む、ステップと、
処理対象画像を取得するステップと、
前記処理対象画像がグレースケール画像である場合、前記処理対象画像における各画素点の特徴ベクトルを抽出し、前記各画素点に対応する近傍画像ブロックを決定するステップと、
軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得るステップであって、前記軽量化モデルは、前記訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである、ステップと、
前記ターゲット画像を出力するステップと、
を含む、画像処理方法。
【請求項6】
前記予測画像、前記第1訓練画像及び所定の目的関数に基づいて、前記ニューラルネットワークモデルに対して逆伝播訓練を行い、訓練されたニューラルネットワークモデルを得る前記ステップは、
所定の訓練完了条件に達して、訓練されたニューラルネットワークモデルを得るまで、
前記識別モデルの識別パラメータを固定し、前記予測画像、前記第1訓練画像及び生成目的関数に基づいて、前記生成モデルに対して逆伝播訓練を行い、前記生成モデルの生成パラメータに対して調整を行い、
前記生成モデルの生成パラメータを固定し、前記予測画像、前記第1訓練画像及び識別目的関数に基づいて、前記識別モデルに対して逆伝播訓練を行い、前記識別モデルの識別パラメータに対して調整を行う、ステップを含む、
請求項
5に記載の方法。
【請求項7】
画像処理機器が実行する画像処理方法であって、
訓練データと所定のニューラルネットワークモデルを取得するステップであって、前記訓練データは、第1訓練画像と第2訓練画像を含み、前記第2訓練画像は、前記第1訓練画像に対してダウンサンプリングを行うことで得られたものであり、前記ニューラルネットワークモデルは、生成モデルと識別モデルを含む、ステップと、
前記ニューラルネットワークモデルを利用して、前記第2訓練画像に対して処理を行い、予測画像を得るステップと、
前記予測画像、前記第1訓練画像、ならびに生成目的関数と識別目的関数に基づいて、前記ニューラルネットワークモデルに対して逆伝播訓練を行い、訓練されたニューラルネットワークモデルを得るステップであって、
前記予測画像と前記第1訓練画像との画素レベル誤差値とコンテンツ誤差値を決定するステップと、
前記予測画像と前記識別モデルに基づいて、前記予測画像の第2画素識別誤差値と第2グローバル識別誤差値を決定するステップと、
前記第1訓練画像と前記識別モデルに基づいて、前記第1訓練画像の第3画素識別誤差値と第3グローバル識別誤差値を決定するステップと、
所定の識別重み値、前記第2画素識別誤差値、前記第2グローバル識別誤差値、前記第3画素識別誤差値及び前記第3グローバル識別誤差値に基づいて、
前記識別目的関数を決定するステップと、
処理対象画像を取得するステップと、
前記処理対象画像がグレースケール画像である場合、前記処理対象画像における各画素点の特徴ベクトルを抽出し、前記各画素点に対応する近傍画像ブロックを決定するステップと、
軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得るステップであって、前記軽量化モデルは、前記訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである、ステップと、
前記ターゲット画像を出力するステップと、を含む、画像処理方法。
【請求項8】
画像処理機器が実行する画像処理方法であって、
処理対象画像を取得するステップと、
前記処理対象画像がグレースケール画像である場合、前記処理対象画像における各画素点の特徴ベクトルを抽出し、前記各画素点に対応する近傍画像ブロックを決定するステップと、
軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得るステップであって、前記軽量化モデルは、訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである、ステップと、
前記ターゲット画像を出力するステップと、
を含み、
前記軽量化モデルは、
前記処理対象画像における各画素点に対応する特徴ベクトルに基づいて、特徴空間を決定するステップと、
前記特徴空間を所定の分割ルールに応じてN個の特徴部分空間に分割し、前記N個の特徴部分空間に対応するN個の中心座標をそれぞれ決定するステップであって、Nは、2よりも大きい整数である、ステップと、
前記N個の中心座標を前記訓練されたニューラルネットワークモデルにそれぞれ入力し、N個の特徴部分空間のN個の畳み込みカーネルを得るステップと、
前記N個の特徴部分空間と前記N個の畳み込みカーネルを前記軽量化モデルとして決定するステップと、
によって決定される、画像処理方法。
【請求項9】
画像処理機器が実行する画像処理方法であって、
処理対象画像を取得するステップと、
前記処理対象画像がグレースケール画像である場合、前記処理対象画像における各画素点の特徴ベクトルを抽出し、前記各画素点に対応する近傍画像ブロックを決定するステップと、
軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得るステップであって、前記軽量化モデルは、訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである、ステップと、
前記ターゲット画像を出力するステップと、
を含み、
前記軽量化モデルは、
前記処理対象画像における各画素点に対応する特徴ベクトルに基づいて、決定木を構築するステップと、
前記決定木における各リーフノードを前記訓練されたニューラルネットワークモデルにそれぞれ入力し、各リーフノードに対応する畳み込みカーネルを得るステップと、
前記各リーフノード、及び前記各リーフノードに対応する畳み込みカーネルを前記軽量化モデルとして決定するステップと、
によって決定される、画像処理方法。
【請求項10】
軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得る前記ステップは、
前記各画素点の特徴ベクトルと前記軽量化モデルに基づいて、各画素点に対応する各畳み込みカーネルを決定するステップと、
前記各画素点の近傍画像ブロック、及び前記各画素点に対応する各畳み込みカーネルに対して畳み込み演算を行い、前記各画素点の処理後の画素値を得るステップと、
各画素点の処理後の画素値に基づいて、処理後のターゲット画像を決定するステップと、を含む、
請求項
8または
9に記載の方法。
【請求項11】
画像処理装置であって、
処理対象画像を取得するように構成される第1取得モジュールと、
第1抽出モジュールであって、
前記処理対象画像がグレースケール画像である場合、前記処理対象画像における各画素点の特徴ベクトルを抽出
することであって、
前記処理対象画像に対応する第1方向勾配図と第2方向勾配図を決定することと、
前記処理対象画像における各画素点の、第1方向勾配図における第1勾配近傍ブロックと第2方向勾配図における第2勾配近傍ブロックを決定することであって、
前記各画素点の第1勾配近傍ブロックと第2勾配近傍ブロックに基づいて、前記各画素点の共分散行列を決定することと、
各共分散行列に対応する各第1特徴値と各第2特徴値を決定することと、
前記各画素点の近傍画像ブロックに対応する各分散値を決定することと、
前記各第1特徴値、各第2特徴値及び各分散値に基づいて、前記各画素点の特徴ベクトルを決定することと、
を含む、ことと、
前記各画素点の第1勾配近傍ブロックと第2勾配近傍ブロックに基づいて、前記各画素点の特徴ベクトルを決定することと、
前記各画素点に対応する近傍画像ブロックを決定する
ことと
を行うように構成される第1抽出モジュールと、
軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得るように構成される第1処理モジュールであって、前記軽量化モデルは、訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである、第1処理モジュールと、
前記ターゲット画像を出力するように構成される出力モジュールと、
を備える、画像処理装置。
【請求項12】
画像処理装置であって、
第2取得モジュールであって、
訓練データと所定のニューラルネットワークモデルを取得することであって、前記訓練データは、第1訓練画像と第2訓練画像を含み、前記第2訓練画像は、前記第1訓練画像に対してダウンサンプリングを行うことで得られたものであり、前記ニューラルネットワークモデルは、生成モデルと識別モデルを含む、
ことを行うように構成される、第2取得モジュールと、
前記ニューラルネットワークモデルを利用して、前記第2訓練画像に対して処理を行い、予測画像を得るように構成される、第4処理モジュールと、
前記予測画像、前記第1訓練画像、ならびに生成目的関数と識別目的関数に基づいて、前記ニューラルネットワークモデルに対して逆伝播訓練を行い、訓練されたニューラルネットワークモデルを得るように構成される、モデル訓練モジュールと、
前記予測画像と前記第1訓練画像との画素レベル誤差値とコンテンツ誤差値を決定するように構成される、第2決定モジュールと、
前記予測画像と前記識別モデルに基づいて、前記予測画像の第1画素識別誤差値と第1グローバル識別誤差値を決定するように構成される第3決定モジュールと、
所定の生成重み値、前記画素レベル誤差値、前記コンテンツ誤差値、前記第1画素識別誤差値及び前記第1グローバル識別誤差値に基づいて、前記生成目的関数を決定するように構成される第4決定モジュールと、
処理対象画像を取得するように構成される第1取得モジュールと、
前記処理対象画像がグレースケール画像である場合、前記処理対象画像における各画素点の特徴ベクトルを抽出し、前記各画素点に対応する近傍画像ブロックを決定するように構成される第1抽出モジュールと、
軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得るように構成される第1処理モジュールであって、前記軽量化モデルは、訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである、第1処理モジュールと、
前記ターゲット画像を出力するように構成される出力モジュールと、
を備える、画像処理装置。
【請求項13】
画像処理装置であって、
第2取得モジュールであって、
訓練データと所定のニューラルネットワークモデルを取得することであって、前記訓練データは、第1訓練画像と第2訓練画像を含み、前記第2訓練画像は、前記第1訓練画像に対してダウンサンプリングを行うことで得られたものであり、前記ニューラルネットワークモデルは、生成モデルと識別モデルを含む、
ことを行うように構成される、第2取得モジュールと、
前記ニューラルネットワークモデルを利用して、前記第2訓練画像に対して処理を行い、予測画像を得るように構成される、第4処理モジュールと、
前記予測画像、前記第1訓練画像、ならびに生成目的関数と識別目的関数に基づいて、前記ニューラルネットワークモデルに対して逆伝播訓練を行い、訓練されたニューラルネットワークモデルを得るように構成されるモデル訓練モジュールと、
前記予測画像と前記第1訓練画像との画素レベル誤差値とコンテンツ誤差値を決定するように構成される第2決定モジュールと、
前記予測画像と前記識別モデルに基づいて、前記予測画像の第2画素識別誤差値と第2グローバル識別誤差値を決定するように構成される第3決定モジュールと、
前記第1訓練画像と前記識別モデルに基づいて、前記第1訓練画像の第3画素識別誤差値と第3グローバル識別誤差値を決定するように構成される第6決定モジュールと、
所定の識別重み値、前記第2画素識別誤差値、前記第2グローバル識別誤差値、前記第3画素識別誤差値及び前記第3グローバル識別誤差値に基づいて、前記識別目的関数を決定するように構成される第7決定モジュールと、
処理対象画像を取得するように構成される第1取得モジュールと、
前記処理対象画像がグレースケール画像である場合、前記処理対象画像における各画素点の特徴ベクトルを抽出し、前記各画素点に対応する近傍画像ブロックを決定するように構成される第1抽出モジュールと、
軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得るように構成される第1処理モジュールであって、前記軽量化モデルは、訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである、第1処理モジュールと、
前記ターゲット画像を出力するように構成される出力モジュールと、
を備える、画像処理装置。
【請求項14】
画像処理装置であって、
処理対象画像を取得するように構成される第1取得モジュールと、
前記処理対象画像がグレースケール画像である場合、前記処理対象画像における各画素点の特徴ベクトルを抽出し、前記各画素点に対応する近傍画像ブロックを決定するように構成される第1抽出モジュールと、
軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得るように構成される第1処理モジュールであって、前記軽量化モデルは、訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである、第1処理モジュールと、
前記ターゲット画像を出力するように構成される出力モジュールと、
前記処理対象画像における各画素点に対応する特徴ベクトルに基づいて、特徴空間を決定するように構成される第8決定モジュールと、
前記特徴空間を所定の分割ルールに応じてN個の特徴部分空間に分割し、前記N個の特徴部分空間に対応するN個の中心座標をそれぞれ決定するように構成される部分空間分割モジュールと、
該N個の中心座標を該訓練されたニューラルネットワークモデルにそれぞれ入力し、N個の特徴部分空間のN個の畳み込みカーネルを得るように構成され、Nは、2よりも大きい整数である、第1入力モジュールと、
該N個の特徴部分空間と該N個の畳み込みカーネルを前記軽量化モデルとして決定するように構成される第9決定モジュールと、
を備える、画像処理装置。
【請求項15】
画像処理装置であって、
処理対象画像を取得するように構成される第1取得モジュールと、
前記処理対象画像がグレースケール画像である場合、前記処理対象画像における各画素点の特徴ベクトルを抽出し、前記各画素点に対応する近傍画像ブロックを決定するように構成される第1抽出モジュールと、
軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得るように構成される第1処理モジュールであって、前記軽量化モデルは、訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである、第1処理モジュールと、
前記ターゲット画像を出力するように構成される出力モジュールと、
前記処理対象画像における各画素点に対応する特徴ベクトルに基づいて、決定木を構築するように構成される決定木構築モジュールと、
前記決定木における各リーフノードを前記訓練されたニューラルネットワークモデルにそれぞれ入力し、各リーフノードに対応する畳み込みカーネルを得るように構成される第2入力モジュールと、
前記各リーフノード、及び前記各リーフノードに対応する畳み込みカーネルを前記軽量化モデルとして決定するように構成される第10決定モジュールと、
を備える、画像処理装置。
【請求項16】
画像処理機器であって、
実行可能な命令を記憶するためのメモリと、
前記メモリに記憶されている実行可能な命令を実行して、請求項1から
10のいずれか一項に記載の方法を実現するためのプロセッサと、を備える、画像処理機器。
【請求項17】
コンピュータに、請求項1から
10のいずれか一項に記載の方法を実現させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2020年06月03日に提出された、出願番号が202010495781.1である中国特許出願に基づく優先権を主張し、該中国特許出願の全内容が参照として本願に組み込まれる。
【0002】
本願の実施例は、画像処理技術分野に関し、画像処理方法、装置、機器及びコンピュータ可読記憶媒体に関するが、それらに限らない。
【背景技術】
【0003】
画像処理は、コンピュータによって、画像に対して雑音除去、強調、復元、解像度向上などの処理を行う方法及び技術である。コンピュータ科学技術及びデジタル化技術の絶え間ない発展に伴い、画像処理は、仕事、生活、軍事、医学などの各分野に広く用いられてきた。人工知能技術の発展に伴い、画像処理は、実現時、機械学習によって、より高い処理効果を達することができる。
【0004】
現在では、機械学習によって画像処理を行う時、使用されるニューラルネットワークモデルの層数が十分に深いことを確保する必要があることが多いため、ネットワーク構造が非常に複雑であり、演算量が大きく、リアルタイム処理を実現できない。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本願の実施例は、ターゲット画像の画素の連続性を確保できるだけでなく、リアルタイムな画像処理を行い、画像処理効率を向上させることができる画像処理方法、装置、機器及びコンピュータ可読記憶媒体を提供する。
【課題を解決するための手段】
【0006】
本願の実施例の技術的解決手段は、以下のように実現する。
【0007】
本願の実施例は、画像処理方法を提供する。該方法は、画像処理機器によって実行され、
処理対象画像を取得するステップと、
該処理対象画像がグレースケール画像である場合、該処理対象画像における各画素点の特徴ベクトルを抽出し、該各画素点に対応する近傍画像ブロックを決定するステップと、
軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得るステップであって、該軽量化モデルは、訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである、ステップと、
該ターゲット画像を出力するステップと、を含む。
【0008】
本願の実施例は、画像処理装置を提供する。該装置は、
処理対象画像を取得するように構成される第1取得モジュールと、
該処理対象画像がグレースケール画像である場合、該処理対象画像における各画素点の特徴ベクトルを抽出し、該各画素点に対応する近傍画像ブロックを決定するように構成される第1抽出モジュールと、
軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得るように構成される第1処理モジュールであって、該軽量化モデルは、訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである、第1処理モジュールと、
該ターゲット画像を出力するように構成される出力モジュールと、を備える。
【0009】
本願の実施例は、画像処理機器を提供する。該機器は、
実行可能な命令を記憶するためのメモリと、
該メモリに記憶されている実行可能な命令を実行して、上記方法を実現するためのプロセッサと、を備える。
【0010】
本願の実施例は、コンピュータ可読記憶媒体を提供する。前記コンピュータ可読記憶媒体に実行可能な命令が記憶されており、該実行可能な命令は、プロセッサにより実行されると、プロセッサに上記方法を実現させる。
【発明の効果】
【0011】
本願の実施例は、以下の有益な効果を有する。
【0012】
処理対象画像を取得した後、該処理対象画像における各画素点に対応する近傍画像ブロックを決定し、該処理対象画像がグレースケール画像である場合、該処理対象画像における各画素点の特徴ベクトルを抽出し、軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得る。ここで、該軽量化モデルは、訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである。訓練時に用いられるものがニューラルネットワーク構造であるため、種々の特殊損失を用いる時、画素が連続したターゲット画像を出力することを確保することができ、そして、画像処理を行う時に用いられるものが、モデル変換によって得られた軽量モデル(例えば、部分空間モデル又は決定木)であるため、リアルタイムに実行してターゲット画像を出力することができ、それによって処理効果を確保すると同時に、画像処理効率を向上させる。
【図面の簡単な説明】
【0013】
【
図1A】本願の実施例による画像処理システムのネットワークアーキテクチャ概略図である。
【
図1B】本願の実施例による画像処理システムの別のネットワークアーキテクチャ概略図である。
【
図2】本願の実施例による第1端末100の構成概略図である。
【
図3】本願の実施例による画像処理方法の実現フロー概略図である。
【
図4】本願の実施例による軽量化モデルを得る実現フロー概略図である。
【
図5】本ネア着の実施例による画像処理方法のまた1つの実現フロー概略図である。
【
図6】本願の実施例による画像処理方法の実現フロー概略図である。
【
図7A】本願の実施例によるデータ集合の構築の実現フロー概略図である。
【
図7B】本願の実施例による低解像度画像特徴の抽出の実現フロー概略図である。
【
図8A】本願の実施例による深層学習モデル及びその訓練の実現フロー概略図である。
【
図8B】本願の実施例による超解像ネットワーク構造とネットワークの使用方法の実現フロー概略図である。
【
図8C】本願の実施例による識別器のネットワーク構造概略図である。
【
図8D】本願の実施例による生成目的関数の構築の実現フロー概略図である。
【
図8E】本願の実施例による識別目的関数の構築の実現フロー概略図である。
【
図8F】本願の実施例によるモデル訓練の実現フロー概略図である。
【
図9】本願の実施例によるモデル変換の実現フロー概略図である。
【
図10】本願の実施例によるリアルタイム推論の実現フロー概略図である。
【
図11】本願の実施例によるカラー画像に対する超解像処理の実現フロー概略図である。
【
図12】本願の実施例によるビデオに対する超解像処理の実現フロー概略図である。
【
図13】本願の実施例による画像処理装置の構成概略図である。
【発明を実施するための形態】
【0014】
本願の目的、技術的解決手段、及び利点をより明確にするために、以下、図面を参照しながら、本願の実施例を説明する。記述される実施例は、本願を限定するものと見なされるべきではない。当業者が創造的な労力なしに得られる全ての他の実施例は、いずれも本願の保護範囲に含まれる。
【0015】
下記の記述において、「いくつかの実施例」に係る。これは、全ての可能な実施例のサブ集合を記述する。しかしながら、「いくつかの実施例」は、全ての可能な実施例の同一のサブ集合又は異なるサブ集合であってもよく、また、矛盾しない限り、互いに組み合わせられてもよいと理解されるべきである。
【0016】
下記の記述において、係る用語「第1/第2/第3」は、類似した対象を区別するためのものだけであり、対象の特定の順番を代表するためのものではない。ここで説明した本願の実施例をここで図示した又は説明した順番以外の順番で実施可能なものにするために、「第1/第2/第3」は、許された場合であれば特定の順番又は前後順序を互いに取り替えることができることは、理解されるべきである。
【0017】
別途定義しない限り、本明細書に用いられる全ての技術的用語及び科学的用語は、本願が属する分野における当業者が一般的に理解する意味と同じである。本明細書に用いられる用語は、本願の実施例の目的を説明するためのものだけであり、本願の実施例を限定するものではない。
【0018】
本願の実施例を説明する前に、本願の実施例に係る名詞及び用語を説明する。本願の実施例に係る名詞及び用語には、下記解釈が適用可能である。
【0019】
1)画像処理は、画像に対する処理であり、即ち、画素マップから画素マップへの処理であり、例えば、超解像、画像の雑音除去強調などの処理である。
【0020】
2)超解像度(SR:Super Resolution)アルゴリズムは、画像の解像度を向上させることができるアルゴリズムであり、超解像アルゴリズムと略称されてもよく、画像処理方法に属する。超解像アルゴリズムは、マルチフレーム超解像とシングルフレーム超解像の2つに分けられてもよい。シングルフレーム超解像は、1枚の画像を処理することで、該画像に対応する超解像度画像を得る。マルチフレーム超解像アルゴリズムは、複数枚の画像を処理することで、複数枚の画像に対応する超解像度画像を得る。本出願が注目するキーポイントは、シングルフレーム超解像アルゴリズムである。シングルフレーム超解像アルゴリズムのうち、特に、深層学習に基づく方法の効果が最も高い(従来の方法よりも明らかに好ましい)。
【0021】
3)コンピュータの中央演算処理装置(CPU:Central Processing Unit)は、コンピュータシステムの演算と制御の中核であり、情報処理、プログラム実行のための最終的実行ユニットであり、種々のコンピューティングシーンに用いることができる。
【0022】
4)グラフィックスプロセッサ(GPU:Graphics Processing Unit)は、表示コア、ビジョンプロセッサ、表示チップとも呼ばれ、パソコン、ワークステーション、ゲーム機及びいくつかの移動機器(例えば、タブレット、スマートフォンなど)で画像と図形に関連する演算動作を専ら行うマイクロプロセッサである。GPUは、コンピューティング能力が強く、CPUを遥かに上回ることができることが多いため、深層学習のモデル推論に広く用いられている。GPUリソースは、希少なリソースであるため、配置時に、遅延性を有する。
【0023】
5)深層学習(DL:Deep Learning)は、ニューラルネットワークを用いる機械学習である。
【0024】
6)モデル変換アルゴリズムは、モデルのタイプを変換するアルゴリズムであり、例えば、深層学習ネットワークを決定木モデル又は部分空間モデルなどに変換する。モデル変換アルゴリズムによって、複雑なモデルを簡単なモデルに変換し、その演算速度を大幅に向上させることができる(欠点は、精度の低下を引き起こす可能性があることである)。
【0025】
7)畳み込みカーネルについて、画像処理時、入力画像が与えられており、入力画像における1つの小さな領域における画素が加重平均処理された後に、出力画像における各対応画素となり、重み値は、1つの関数によって定義され、この関数は、畳み込みカーネルと呼ばれる。
【0026】
8)目的関数は、損失関数(Loss Function)又はコスト関数(cost function)とも呼ばれ、ランダムイベント又はこれに関連するランダム変数の値を非負の実数にマッピングして、該ランダムイベントの「リスク」又は「損失」を表す関数である。応用において、目的関数は、一般的には、学習の基準として最適化の問題に関連付けられ(即ち、目的関数を最小化することで、モデルを解いて評価する)、例えば、統計学及び機械学習において、モデルのパラメータ推定に用いられ、機械学習モデルの最適化目標である。
【0027】
9)色域は、色空間とも呼ばれ、カラーイメージの表示可能な色範囲を代表する。現在では、一般的な色域は、輝度クロマ(YUV:Luminance Chrominance)色域、赤緑青(RGB:Red Green Blue)色域、シアンマゼンタイエローブラック(CMYK:Cyan Magenta Yellow Black)色域などを含む。
【0028】
本願の実施例による画像処理方法をよりよく理解するために、まず、関連技術における、解像度を向上させるための画像処理方法及び存在する欠点を説明する。
【0029】
関連技術において、解像度を向上させるための画像処理方法は、少なくとも以下の2つを含む。
【0030】
第1:迅速で正確な画像超解像方法(RAISR:Rapid and Accurate Super Image Resolution)。
【0031】
RAISRは、フィルタ索引付けに基づく超解像方法である。簡単に言えば、RAISRでは、推論を行う時、以下のステップに応じて処理を行う。
【0032】
ステップS001において、まず、画像をターゲットサイズまで拡大する。
【0033】
ステップS002において、拡大した画像で、各画素の勾配特徴を算出する。
【0034】
ステップS003において、画素毎に、勾配特徴によって、該画素に使用するフィルタ(畳み込みカーネル)を索引付けする。
【0035】
ステップS004において、各画素とその索引付けされたフィルタに対して畳み込みを行い、超解像後の画素を得る。
【0036】
実現時、RAISRでは、勾配に基づいて算出された3つの特徴を使用し、各特徴を異なるパラグラフに分けることで、特徴空間を多くの小ブロックに分ける。各特徴部分空間(小ブロック)において、最小二乗法を直接的に用いてターゲット値をフィッティングし、畳み込みカーネルパラメータを得ることができる。このように、高解像度-低解像度アップサンプリング画像対を人工的に構築することができ、更に、アップサンプリング画像における画素の勾配特徴に応じて、各画像ブロックを異なる部分空間に割り当てる。各部分空間において、最小二乗法を用いて、画像ブロックからターゲット画素(高解像度画素)へのフィッティングを行い、モデルの訓練を行う。
【0037】
関連技術において、RAISRに基づく最適化バージョンもある。それは、アップサンプリングの方法を使用することなく、深層学習のupscaleを使用する。即ち、最小二乗の時、M2個の畳み込みカーネル(Mは、拡大倍率である)をフィッティングし、1つの画像をM2個のチャンネルに変換し、続いて、画素シャッフル(pixelshuffle)の方法によって、1枚の大きな画像として組み合わせる。このように、畳み込みカーネルの受容野がより大きく、効果がより高い。
【0038】
RAISR型方法は、深層学習方法に比べて、効果が僅かに低下するが、コンピューティング速度が大幅に向上できる(論文において、RAISRは、深層学習に基づく超解像に比べて、速度が後者の100倍以上である)。
【0039】
第2:敵対的生成ネットワークに基づく画像超解像方法(SRGAN:Super Resolution Generative Adversarial Network)。
【0040】
SRGANは、敵対的生成ネットワークに基づく超解像技術である。概して言えば、敵対的生成ネットワークの特性を利用して、2つのネットワークを同時に訓練し、1つは、よりリアルな高解像度画像を構築するための生成ネットワークであり、1つは、入力された高解像度画像がアルゴリズムで構築されたものであるかどうかを判断するための識別ネットワークである。2つのネットワークに対して、2つの目的関数を用いて訓練を行う。これら2つのネットワークを絶え間なく交互に訓練することで、これら2つのネットワークの性能をますます高くする。最後に、生成ネットワークを取り出し、推論時に使用する。なお、生成ネットワークの目的関数において、コンテンツ損失を更に加え、超解像後の画像とリアルな高解像度画像の、特徴レベルでの距離損失を算出する(特徴は、VGGなどの物体認識ネットワークの上位のN層から構成されるネットワークによって抽出されたものである)。コンテンツ損失によって訓練された生成ネットワークは、構築された超解像度画像に、より多くのランダムな細部を持たせることができ、画面をより良くすることができる。
【0041】
RAISR型アルゴリズムの欠点は、異なる部分空間で、フィルタ(畳み込みカーネル)を別々に訓練する必要があるため、深層学習における種々の特殊な損失(例えば、コンテンツ損失)を加えると、隣接する画素の連続性の確保が非常に困難であることによって、ノイズを引き起こすことである。
【0042】
SRGAN型アルゴリズムの欠点は、ネットワークが十分に深いことを確保する必要があるため、ネットワーク構造が一般的には非常に複雑であり、RAISRのようなリアルタイム実行を行うことが困難であることである。
【0043】
これによれば、本願の実施例は、画像処理の深層学習方式と関連のモデル加速(モデル変換)を組み合わせる方法を提供する。訓練時に、ニューラルネットワーク構造を使用し、種々の特殊な損失を使用する時に、出力された画素が連続したものであることを確保し、且つ余分なノイズを引き入れない。そして、モデル変換方法によって、モデルを軽量モデル(例えば、部分空間モデル又は決定木)に簡略化し、リアルタイム実行を実現させる。
【0044】
以下では、本願の実施例による画像処理機器の例示的な応用を説明する。本願の実施例による画像処理機器は、ノートパソコン、タブレット、デスクトップコンピュータ、移動機器(例えば、携帯電話、携帯型音楽プレイヤー、パーソナルデジタルアシスタント、専用メッセージング機器、携帯型ゲーム機器)、スマートテレビ、スマートロボットなどの、スクリーン表示機能を有する任意の端末として実施してもよく、サーバとして実施してもよい。サーバは、独立した物理サーバであってもよく、複数の物理サーバからなるサーバクラスタ又は分散型システムであってもよく、更に、クラウドサービス、クラウドデータベース、クラウドコンピューティング、クラウド関数、クラウドストレージ、ネットワークサービス、クライド通信、ミドルウェアサービス、ドメイン名サービス、セキュリティサービス、CDN、及びビッグデータと人工知能プラットフォームなどの基礎クラウドコンピューティングサービスを提供するクラウドサーバであってもよい。
【0045】
図1Aを参照すると、
図1Aは、本願の実施例による画像処理システムのネットワークアーキテクチャ概略図である。
図1Aに示すように、画像処理システムに、第1端末100と、サーバ200と、ネットワーク300とが含まれる。1つの例示的な応用をサポートすることを実現させるために、第1端末100は、ネットワーク300を介してサーバ200に接続され、第1端末100は、スマート端末であってもよい。スマート端末に、様々なアプリケーションプログラム(App:Application)がインストールされてもよく、例えば、ビデオ視聴App、インスタントメッセージングApp、ショッピングApp、画像収集Appなどであってもよく、ネットワーク300は、ワイドエリアネットワーク又はローカルエリアネットワーク、あるいは、両者の組み合わせであってもよく、無線リンクを用いてデータ伝送を実現させる。
【0046】
ユーザが、第1端末100によってビデオを視聴するか、又は、ウェブページでピクチャを閲覧する時、第1端末100は、サーバ200からのビデオ又はピクチャの取得を要求してもよい(本実施例において、画像101の取得を例として説明する)。本願の実施例による画像処理方法は、1つの機能プラグインとして端末のギャラリAppに組み込まれてもよい。第1端末100が該画像処理機能を起動すると、第1端末100は、本願の実施例による画像処理方法を利用して、サーバ200から取得された画像101に対してリアルタイム処理を行い、処理後の画像102を得て、第1端末100の表示インタフェースに表示することができる。
図1Aにおいて、画像に対して超解像処理を行うことを例として説明する。
図1Aにおける101と102を比較することによって、処理後の画像102の解像度がより高く、これによりデータレートが不変のままである場合に、ユーザの画質体験を改善できることが明らかである。
【0047】
図1Bを参照すると、
図1Bは、本願の実施例による画像処理システムの別のネットワークアーキテクチャ概略図である。
図1Bに示すように、画像処理システムに、第1端末400と、第2端末700と、サーバ500と、ネットワーク600とが含まれる。1つの例示的な応用をサポートすることを実現させるために、第1端末400は、ネットワーク600を介してサーバ500に接続され、第1端末400は、スマート端末であってもよい。スマート端末に、様々なアプリケーションプログラムAppがインストールされてもよく、例えば、ビデオ視聴App、インスタントメッセージングApp、ショッピングApp、画像収集Appなどであってもよく、ネットワーク600は、ワイドエリアネットワーク又はローカルエリアネットワーク、あるいは、両者の組み合わせであってもよく、無線リンクを用いてデータ伝送を実現させる。
【0048】
第2端末700は、ノートパソコン、タブレット、デスクトップコンピュータ、移動機器(例えば、携帯電話、携帯型音楽プレイヤー、パーソナルデジタルアシスタント、専用メッセージング機器、携帯型ゲーム機器)、スマートテレビ、スマートロボットなどの、スクリーン表示機能を有する任意の端末であってもよい。第2端末700は、ピクチャ又はビデオファイルをサーバ500にアップロードしてもよく、サーバ500は、第2端末700からアップロードされたピクチャ又はビデオを受信した後、該ピクチャ又はビデオを本願の実施例による画像処理方法で処理し、処理後のピクチャ又はビデオを得ることができる。第1端末400がサーバ500に対して該ピクチャ又はビデオを要求する時、サーバ500は、第1端末400に、処理後のピクチャ又はビデオを返信することができる。第1端末400は、自己の表示インタフェースに、処理後のピクチャ又はビデオを表示し、ユーザの画質体験を改善できる。
図1Bにおいて、画像に対して雑音除去を行うことを例として説明する。
図1Bにおける画像201は、オリジナル画像であり、
図1Bにおける画像202は、処理後の画像である。画像201と画像202を比較することによって、処理後の画像にノイズがほとんどなく、これによりユーザの画質体験を改善できることが明らかである。
【0049】
図2を参照すると、
図2は、本願の実施例による第1端末100の構成概略図である。
図2に示される第1端末100は、少なくとも1つのプロセッサ110と、メモリ150と、少なくとも1つのネットワークインタフェース120と、ユーザインタフェース130と、を備える。第1端末100における各コンポーネントは、バスシステム140を介して結合される。バスシステム140は、これらのコンポーネントの間の接続と通信を実現させるように構成されることが理解されるべきである。バスシステム140は、データバスに加えて、電源バス、制御バス及び状態信号バスを更に含む。しかしながら、明確に説明するために、
図2において、種々のバスをバスシステム140と記す。
【0050】
プロセッサ110は、信号処理能力を持つ集積回路チップであってもよく、例えば、汎用プロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、あるいは、他のプログラマブルロジックデバイス、ディスクリートゲート又はトランジスタロジックデバイス、ディスクリートハードウェアコンポーネントなどであってもよい。汎用プロセッサは、マイクロプロセッサ又は如何なる一般的なプロセッサなどであってもよい。
【0051】
ユーザインタフェース130は、メディアコンテンツを表現できる1つ又は複数の出力装置131を含む。出力装置131は、1つ又は複数のスピーカー及び/又は1つ又は複数のビジョンディスプレイを含む。ユーザインタフェース130は、1つ又は複数の入力装置132を更に含む。入力装置132は、ユーザによる入力に寄与するユーザインタフェース部材、例えば、キーボード、マウス、マイクロホン、タッチパネルディスプレイ、カメラ、他の入力ボタン及びコントロールを含む。
【0052】
メモリ150は、取り外し可能なもの、取り外し不可能なもの又はこれらの組み合わせであってもよい。例示的なハードウェア機器は、ソリッドステートメモリ、ハードディスクドライバ、光ディスクドライバなどを含む。メモリ150は、物理的位置でプロセッサ110から離れる1つ又は複数の記憶機器を含んでもよい。
【0053】
メモリ150は、揮発性メモリ又は不揮発性メモリを含み、揮発性メモリと不揮発性メモリの両方を含んでもよい。不揮発性メモリは、読出し専用メモリ(ROM:Read Only Memory)であってもよく、揮発性メモリは、ランダムアクセスメモリ(RAM:Random Access Memory)であってもよい。本願の実施例に記載のメモリ150は、任意の適切なタイプのメモリを含むことを意図する。
【0054】
いくつかの実施例において、メモリ150は、種々の操作をサポートするために、データを記憶することができる。これらのデータは、例示的に、プログラム、モジュール及びデータ構造、あるいは、それらのサブ集合又は上位集合を含む。以下、例示的に説明する。
【0055】
オペレーティングシステム151は、種々の基本システムサービスを処理し、ハードウェアに関連するタスクを実行するように構成されるシステムプログラム、例えば、フレームワーク層、コアライブラリ層、駆動層などを含み、種々の基礎業務を実現させてハードウェアベースタスクを処理するためのものである。
【0056】
ネットワーク通信モジュール152は、1つ又は複数の(有線又は無線)ネットワークインタフェース120を経由して他のコンピューティング機器に到達するように構成される。例示的なネットワークインタフェース120は、ブルートゥース(登録商標)、ワイヤレスフィデリティ(WiFi)、及びユニバーサルシリアルバス(USB:Universal Serial Bus)などを含む。
【0057】
入力処理モジュール153は、1つ又は複数の入力装置132の1つからの1つ又は複数のユーザ入力又はインタラクションに対して検出を行い、そして検出された入力又はインタラクションを翻訳するように構成される。
【0058】
いくつかの実施例において、本願の実施例による装置は、ソフトフェアの方式で実現してもよい。
図2は、メモリ150に記憶されている画像処理装置154を示す。該画像処理装置154は、第1端末100における画像処理装置であってもよく、プログラム及びプラグインなどの形式のソフトウェアであってもよく、以下のソフトウェアモジュール、即ち、第1取得モジュール1514と、第1抽出モジュール1542と、第1処理モジュール1543と、出力モジュール1544と、を含み、これらのモジュールは、論理的なものであるため、実現される機能に基づいて、任意の組み合わせ又は分割を行うことができる。以下では、各モジュールの機能を説明する。
【0059】
別のいくつかの実施例において、本願の実施例による装置は、ハードウェア方式で実現してもよい。例として、本願の実施例による装置は、ハードウェア解読プロセッサ形式を用いるプロセッサであってもよく、それは、プログラミングされて本願の実施例による画像処理方法を実行する。例えば、ハードウェア解読プロセッサ形式のプロセッサとして、1つ又は複数の特定用途向け集積回路(ASIC:Application Specific Intergrated Circuit)、DSP、プログラマブルロジックデバイス(PLD:Programmable Logic Device)、複合プログラマブルロジックデバイス(CPLD:Complex Programmable Logic Device)、フィールドプログラマブルゲートアレイ(FPGA:Field-Programmable Gate Array)又は他の電子素子を用いることができる。
【0060】
本願の実施例による方法をよりよく理解するために、まず、人工知能、人工知能の各分岐及び本願の実施例による方法に係る応用分野、クラウド技術及び人工知能クラウドサービスを説明する。
【0061】
人工知能(AI:Artificial Intelligence)は、デジタルコンピュータ又はデジタルコンピュータにより制御された機器を利用して人間の知能をシミュレーション、延長、拡張し、環境を感知して知識を取得し、知識を利用して最適な結果を得る理論、方法、技術及び適用システムである。換言すれば、人工知能は、コンピュータサイエンスにおける1つの総合技術であり、知能の本質を理解し、人間知能と同様な方式で反応可能な新たな知能機器を生み出すことを意図する。人工知能は、種々の知能機器の設計原理及び実現方法を検討し、機器に、感知、推理及び意思決定機能を持たせるためのものである。
【0062】
人工知能技術は、総合的な学科であり、広い分野に関し、ハードウェアレベルの技術を含むだけでなく、ソフトウェアレベルの技術も含む。人工知能基礎技術は一般的には、センサ、専用人工知能チップ、クラウドコンピューティング、分散型ストレージ、ビッグデータ処理技術、オペレーティング/インタラクションシステム、メカトロニクスなどの技術を含む。人工知能ソフトウェア技術は、主に、コンピュータビジョン技術、音声処理技術、自然言語処理技術及び機械学習/深層学習などのいくつかの分野を含む。以下では、各分野をそれぞれ説明する。
【0063】
コンピュータビジョン技術(CV:Computer Vision)について、コンピュータビジョンは、如何にマシンに「見てもらう」かを研究する科学であり、言い換えれば、人間の肉眼の代わりに撮影機及びコンピュータを使用して目標に対して識別、追跡、及び測定などのマシンビジョンを行って、更に画像処理をして、コンピュータで、人間の肉眼による観察又は機器へ送信して検出することに更に適した画像になるように処理することである。1つの科学分野として、コンピュータビジョンは、関連した理論及び技術を検討し、画像又は多次元データから情報を取得できる人工知能システムを構築することを意図している。コンピュータビジョン技術は一般的には、画像処理、画像認識、画像セマンティック理解、画像検索、OCR、ビデオ処理、ビデオセマンティック理解、ビデオコンテンツ/挙動認識、三次元物体再構築、3D技術、仮想現実、拡張現実、自己位置推定とマッピングの同時実行などの技術を含み、一般的な顔認識、指紋認識などの生体特徴認識技術を更に含む。
【0064】
機械学習(ML:Machine Learning)は、多数の分野に関わる学科であり、確率論、統計学、近似論、凸分析、アルゴリズム複雑度理論などの複数の学科に関する。それは、コンピュータが人間の学習挙動を如何に模擬又は実現するかを鋭意検討し、新たな知識又はスキルを取得し、既存の知識構造を再構成し、自体の性能を絶え間なく改良する。機械学習は、人工知能のキーポイントであり、コンピュータに知能を持たせる根本的な手段であり、その適用は、人工知能の各分野にわたる。機械学習及び深層学習は一般的には、人工ニューラルネットワーク、信念ネットワーク、強化学習、転移学習、帰納的学習などの技術を含む。
【0065】
クラウド技術(Cloud technology)は、ワイドエリアネットワーク又はローカルエリアネットワーク内に、ハードウェア、ソフトウェア、ネットワークなどの一連のリソースを統合し、データのコンピューティング、記憶、処理及び共有を実現させるホスティング技術である。クラウド技術は、クラウドコンピューティングビジネスモデルに基づいて用いられるネットワーク技術、情報技術、整合技術、管理プラットフォーム技術、応用技術などの総称であり、リソースプールを構成することができ、必要に応じて利用可能であり、柔軟かつ便利である。クラウドコンピューティング技術は、重要なサポートとなる。例えば、ビデオウェブサイト、ピクチャタイプウェブサイト及びより多くのポータルサイトのような技術的ネットワークシステムのバックグラウンドサービスは、大量のコンピューティング、記憶リソースを必要とする。インターネット業界の高度な成長及び応用に伴い、将来には、各物品がいずれも自己の識別フラグを有する可能性があり、これらはいずれもバックグラウンドシステムに伝送されてロジック処理される必要がある。異なるレベルのデータは別々に処理される。各タイプの業界データは、いずれも強いシステムバックグラウンドサポートを必要とし、これは、クラウドコンピューティングでしか実現できない。
【0066】
人工知能クラウドサービスとは、一般的には、サービスとしてのAI(AIaaS:AI as a Service)とも呼ばれる。これは、現在では、主流となる人工知能プラットフォームのサービス方式である。AIaaSプラットフォームは、複数の一般的なAIサービスを分割し、クラウド側で独立又はパッケージングしたサービスを提供する。このようなサービスモードは、AIテーマのモールを構築することに類似する。全ての開発者はいずれも、APIインタフェースの方式で、プラットフォームによって提供される1種又は複数種の人工知能サービスにアクセスしてそれを使用することができ、一部のベテラン開発者は、プラットフォームによって提供されるAIフレームワークとAIインフラストラクチャを使用して、自己専用のクラウド人工知能サービスを配置してメンテナンスすることもできる。
【0067】
本願の実施例による解決手段は、人工知能のコンピュータビジョン技術、機械学習、人工知能クラウドサービスなどの技術に関する。これについて、以下の実施例によって説明する。
【0068】
以下では、本願の実施例による第1端末100の例示的な応用及び実施を参照しながら、本願の実施例による画像処理方法を説明する。該方法は、画像処理機器によって実行され、該画像処理機器は、
図1Aに示される第1端末であってもよく、
図1Bに示されるサーバであってもよい。
図3を参照すると、
図3は、本願の実施例による画像処理方法の実現フロー概略図である。
図3に示されるステップを参照しながら、説明する。
【0069】
ステップS101において、処理対象画像を取得する。
【0070】
ここで、処理対象画像は、グレースケール画像であってもよく、マルチチャンネルカラー画像であってもよい。いくつかの実施例において、該処理対象画像は、ビデオファイルを復号することで得られたビデオフレーム画像であってもよい。
【0071】
ステップS101が
図1Aにおける第1端末によって実現される時、処理対象画像は、サーバから取得されたものであってもよい。いくつかの実施例において、処理対象画像は、第1端末によって収集された画像であってもよい。ステップS101が
図1Bにおけるサーバによって実現される時、処理対象画像は、第2端末によってサーバにアップロードされたものであってもよい。
【0072】
いくつかの実施例において、ステップS101で処理対象画像を取得した後、処理対象画像がグレースケール画像であるかどうかを判定し、処理対象画像がグレースケール画像である場合、ステップS102へ進み、処理対象画像がカラー画像である場合、処理対象画像に対して色域変換を行い、更に、画像処理プロセスを行うことを実行してもよい。
【0073】
ステップS102において、該処理対象画像がグレースケール画像である場合、該処理対象画像における各画素点の特徴ベクトルを抽出し、各画素点に対応する近傍画像ブロックを決定する。
【0074】
ここで、ステップS102を実現する時、処理対象画像における各画素点の画素値に基づいて、各画素点の第1方向勾配値と第2方向勾配値を決定し、更に、各画素点の第1方向勾配値と第2方向勾配値に基づいて、各画素点の特徴ベクトルを決定することができる。
【0075】
該近傍画像ブロックは、各画素点を中心としたK*Kの画像ブロックであってもよく、Kは、奇数であり、例えば、Kは、5、7、9、13などであってもよい。
【0076】
ステップS103において、軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得る。
【0077】
該軽量化モデルは、訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである。実際に実現する時、訓練されたニューラルネットワークモデルに基づいて、部分空間分割又は決定木生成を行い、軽量化モデルを得ることであってもよい。軽量化モデルは、ニューラルネットワークモデルに比べてより簡単であるため、軽量化モデルを利用して各画素点の特徴ベクトルと近傍画像ブロックに対して画像処理を行う時、ニューラルネットワークモデルに比べて、コンピューティング効率を向上させ、画像処理にかかる時間長を短縮することができ、それによってリアルタイム処理を実現させる。
【0078】
ステップS103を実現する時、各画素点の特徴ベクトルに基づいて、各画素点に対応する部分空間を決定するか、又は、各画素点に対応する決定木におけるリーフノードを決定し、更に、該部分空間又はリーフノードに対応する畳み込みカーネルを決定し、該畳み込みカーネルと該近傍画像ブロックに対して畳み込み演算を行い、各画素点に対応する処理後の画素値を得、各画素点の処理後の画素値に基づいて、ターゲット画像を決定することであってもよい。
【0079】
ステップS104において、該ターゲット画像を出力する。
【0080】
ここで、ステップS104が
図1Aに示される第1端末によって実現される時、第1端末の表示機器に該ターゲット画像を表現することであってもよい。ステップS104が
図1Bに示されるサーバによって実現される時、ターゲット画像を第1端末に送信することであってもよい。いくつかの実施例において、ステップS104が
図1Bに示されるサーバによって実現される時、ステップS104の後に、サーバがターゲット画像をローカル記憶空間に記憶することを実行してもよい。
【0081】
本願の実施例による画像処理方法において、処理対象画像を取得した後、該処理対象画像における各画素点に対応する近傍画像ブロックを決定し、該処理対象画像がグレースケール画像である場合、該処理対象画像における各画素点の特徴ベクトルを抽出し、軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得、該軽量化モデルは、訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである。訓練時に用いられるものがニューラルネットワーク構造であるため、種々の特殊損失を用いる時、画素が連続したターゲット画像を出力することを確保することができ、そして、画像処理を行う時に用いられるものが、モデル変換によって得られた軽量モデル(例えば、部分空間モデル又は決定木)であるため、リアルタイムに実行してターゲット画像を出力することができ、それによって処理効果を確保すると同時に、画像処理効率を向上させる。
【0082】
いくつかの実施例において、上記ステップS102「該処理対象画像における各画素点の特徴ベクトルを抽出するステップ」は、以下のステップによって実現してもよい。
【0083】
ステップS1021において、該処理対象画像に対応する第1方向勾配図と第2方向勾配図を決定する。
【0084】
ここで、第1方向は、水平方向であってもよく、第2方向は、垂直方向であってもよい。これに対応して、ステップS1021を実現する時、処理対象画像における各画素点に対して、各画素点の右隣接画素点の画素値から左隣接画素点の画素値を減算し、差を2で除算し、該画素点の、第1方向における勾配値を得、各画素点の、第1方向における勾配値に基づいて、該処理対象画像に対応する第1方向勾配図を決定し、各画素点の下隣接画素点の画素値から上隣接画素点の画素値を減算し、差を2で除算し、該画素点の、第2方向における勾配値を得、各画素点の、第2方向における勾配値に基づいて、該処理対象画像に対応する第2方向勾配図を決定することであってもよい。処理対象画像におけるエッジ画素点に対して、エッジ対称反転の方式を利用して、その勾配値を算出してもよい。このように、処理対象画像における上下エッジの画素点の垂直方向勾配値は、いずれも0であり、左右エッジの画素点の水平方向勾配値は、いずれも0である。いくつかの実施例において、エッジ画素点の勾配値を算出することなく、最終的結果を得た後にエッジへ拡張すればよい。
【0085】
ステップS1022において、該処理対象画像における各画素点の、第1方向勾配図における第1勾配近傍ブロックと第2方向勾配図における第2勾配近傍ブロックを決定する。
【0086】
ここで、第1勾配近傍ブロックのサイズは、第2勾配近傍ブロックのサイズと同じであり、そして、各画素点の、処理対象画像における近傍画像ブロックのサイズと同じである。
【0087】
ステップS1023において、該各画素点の第1勾配近傍ブロックと第2勾配近傍ブロックに基づいて、該各画素点の特徴ベクトルを決定する。
【0088】
ここで、該ステップS1023は、以下のステップによって実現してもよい。
【0089】
ステップS231において、該各画素点の第1勾配近傍ブロックと第2勾配近傍ブロックに基づいて、該各画素点の共分散行列を決定する。
【0090】
ここで、画素iの第1勾配近傍ブロックXと第2勾配近傍ブロックYがいずれもサイズ5*5の画像ブロックであり、即ち、第1勾配近傍ブロックと第2勾配近傍ブロックにいずれも25個の勾配値が含まれ、X={x1,x2,…x25}、Y={y1,y2,…y25}であるとすれば、画素点iの共分散行列Aは、式(1-1)によって得られてもよい。
【0091】
【0092】
式(1-1)から分かるように、共分散行列は、2*2の対称行列である。
【0093】
ステップS232において、各共分散行列に対応する各第1特徴値と各第2特徴値を決定する。
【0094】
ここで、式(1-2)と式(1-3)に応じて、共分散行列Aの第1特徴値λ1と第2特徴値λ2を算出することができる。
【0095】
【0096】
ここで、a=Σxixi、b=Σxiyi、c=Σyiyiである。
【0097】
ステップS233において、該各画素点の近傍画像ブロックに対応する各分散値を決定する。
【0098】
ステップS234において、該各第1特徴値、各第2特徴値及び各分散値に基づいて、該各画素点の特徴ベクトルを決定する。
【0099】
ここで、本願の実施例において、各画素点の特徴ベクトルは、4次元のものであってもよく、この場合、ステップS234を実現する時、第1次元特徴f
1=atan2(λ
1,λ
2)、第2次元特徴f
2=λ
1、第3次元特徴
【数3】
、第4次元特徴f
4=vであってもよく、vは、ステップS233で決定された分散値である。
【0100】
説明すべきこととして、いくつかの実施例において、第1方向勾配図と第2方向勾配図を決定した後、各画素点の第1方向勾配値と第2方向勾配値を直接的に各画素点の特徴ベクトルとしてもよい。いくつかの実施例において、他の特徴抽出アルゴリズムを利用して、処理対象画像における各画素点の特徴ベクトルを抽出してもよい。しかしながら、後続で、特徴ベクトルに基づいてモデル変換を行う必要があるため、どのような方式を用いて処理対象画像の特徴を抽出するかに関わらず、得られた特徴ベクトルの次元が大きすぎてはいけない。これによって、モデル変換を行った後に得られた軽量化モデルの数が多すぎることによって計算の複雑度が高すぎることを引き起こすことを回避する。
【0101】
いくつかの実施例において、ステップS101の前に、以下のステップによって、所定のニューラルネットワークモデルに対して訓練を行い、訓練されたニューラルネットワークモデルを得る必要がある。
【0102】
ステップS001において、訓練データと所定のニューラルネットワークモデルを取得する。
【0103】
該訓練データは少なくとも第1訓練画像と第2訓練画像を含み、該第2訓練画像は、該第1訓練画像に対してダウンサンプリングを行うことで得られたものであり、つまり、第2訓練画像の解像度は、第1訓練画像の解像度よりも低い。本願の実施例において、第1訓練画像と第2訓練画像は、いずれもグレースケール画像である。いくつかの実施例において、訓練データは、第2訓練画像における各画素点の特徴ベクトルを更に含んでもよい。
【0104】
該所定のニューラルネットワークモデルは、深層学習ニューラルネットワークモデルであってもよく、該ニューラルネットワークモデルは、生成モデルと識別モデルを含んでもよい。
【0105】
ステップS002において、該ニューラルネットワークモデルを利用して、該第2訓練画像に対して処理を行い、予測画像を得る。
【0106】
ここで、訓練データに第2訓練画像における各画素点の特徴ベクトルが含まれる場合、ステップS002を実現する時、第2訓練画像における各画素点の特徴ベクトルを該ニューラルネットワークモデルに入力し、予測画像を得ることであってもよい。訓練データに第1訓練画像と第2訓練画像のみ含まれる場合、ステップS002を実現する時、第2訓練画像を該ニューラルネットワークモデルに入力し、予測画像を得ることであってもよい。
【0107】
ステップS003において、該予測画像、該第1訓練画像及び所定の目的関数に基づいて、該ニューラルネットワークモデルに対して逆伝播訓練を行い、訓練されたニューラルネットワークモデルを得る。
【0108】
ここで、該所定の目的関数は、生成目的関数と識別目的関数を含み、これに対応して、該ステップS003は、下記ステップによって実現してもよい。
【0109】
所定の訓練完了条件に達して、訓練されたニューラルネットワークモデルを得るまで、
【0110】
ステップS31において、該識別モデルの識別パラメータを固定し、該予測画像、該第1訓練画像及び生成目的関数に基づいて、該生成モデルに対して逆伝播訓練を行い、該生成モデルの生成パラメータに対して調整を行い、
ステップS32において、該生成モデルの生成パラメータを固定し、該予測画像、該第1訓練画像及び識別目的関数に基づいて、該識別モデルに対して逆伝播訓練を行い、該識別モデルの識別パラメータに対して調整を行う。
【0111】
ここで、本願の実施例において、所定の訓練完了条件は、訓練回数が所定の回数閾値に達することであってもよく、予測画像と第1訓練画像との差分値が所定の差分閾値よりも低いことであってもよい。
【0112】
いくつかの実施例において、以下のステップによって生成目的関数を構築してもよい。
【0113】
ステップS41aにおいて、該予測画像と該第1訓練画像との画素レベル誤差値とコンテンツ誤差値を決定する。
【0114】
ここで、予測画像と第1訓練画像との画素レベル誤差値を決定する時、まず、予測画像と第1訓練画像における対応する各画素点間の誤差値を決定し、更に、各画素点間の誤差値を利用して予測画像と第1訓練画像との画素レベル誤差値を決定してもよい。該画素レベル誤差値は、各画素点間の誤差値に基づいて算出された平均誤差であってもよく、更に、各画素点間の誤差値に基づいて算出された平均二乗誤差(MSE:Mean Square Error)、絶対誤差などであってもよい。
【0115】
予測画像と第1訓練画像とのコンテンツ誤差値を決定する時、予測画像と第1訓練画像をそれぞれコンテンツ特徴モジュールに入力し、予測コンテンツ特徴ベクトルと訓練コンテンツ特徴ベクトルを得てもよい。コンテンツ特徴モジュールは、予め訓練されたモジュールであり、一般的には、VGG19の上位複数層から構成される(上位17層を用いることを勧める)。更に、予測コンテンツ特徴ベクトルと訓練コンテンツ特徴ベクトルに基づいて、コンテンツ誤差値を算出する。該コンテンツ誤差値は、予測コンテンツ特徴ベクトルと訓練コンテンツ特徴ベクトルとの平均誤差であってもよく、更に、両者間の平均二乗誤差、絶対誤差などの形式であってもよい。
【0116】
ステップS42aにおいて、該予測画像と該識別モデルに基づいて、該予測画像の第1画素識別誤差値と第1グローバル識別誤差値を決定する。
【0117】
ここで、ステップS42aを実現する時、まず、予測画像を識別モデルに入力し、予測画素識別行列と予測グローバル識別値を得てもよい。予測画素識別行列のサイズは、予測画像のサイズと一致する。そして、予測画素識別行列における各要素は、対応する位置の予測画像の画素点が生成器によって構築されたものである確率を表し、予測グローバル識別値は、1つの数値であり、予測画像が生成器によって構築されたものである確率を表す(該数値は、0-1の実数である)。更に、予測画素識別行列と否定値(即ち、0)に基づいて、第1画素識別誤差値を決定し、予測グローバル識別値と否定値に基づいて、第1グローバル識別誤差値を決定する。第1画素識別誤差値は、予測画素識別行列と否定値との平均誤差を算出することで得られたものであってもよく、両者間の平均二乗誤差を算出することで得られたものであってもよい。同様に、第1グローバル識別誤差値は、予測グローバル識別値と否定値との平均誤差を算出することで得られたものであってもよく、両者間の平均二乗誤差を算出することで得られたものであってもよい。
【0118】
ステップS43aにおいて、所定の生成重み値、該画素レベル誤差値、該コンテンツ誤差値、該第1画素識別誤差値及び該第1グローバル識別誤差値に基づいて、生成目的関数を決定する。
【0119】
ここで、所定の生成重み値には、画素レベル誤差値に対応する第1重み値、該コンテンツ誤差値に対応する第2重み値、該第1画素識別誤差値に対応する第3重み値及び該第1グローバル識別誤差値に対応する第4重み値が含まれる。ステップS43aを実現する時、画素レベル誤差値、該コンテンツ誤差値、該第1画素識別誤差値、該第1グローバル識別誤差値及び対応する重み値に対して加重加算を行い、生成目的関数を得る。
【0120】
いくつかの実施例において、以下のステップによって識別目的関数を構築してもよい。
【0121】
ステップS41bにおいて、該予測画像と該識別モデルに基づいて、該予測画像の第2画素識別誤差値と第2グローバル識別誤差値を決定する。
【0122】
ここで、ステップS41bを実現する時、まず、予測画像を識別モデルに入力し、予測画素識別行列と予測グローバル識別値を得る。更に、予測画素識別行列と肯定値(即ち、1)に基づいて、第2画素識別誤差値を決定し、予測グローバル識別値と肯定値に基づいて、第2グローバル識別誤差値を決定する。第2画素識別誤差値は、予測画素識別行列と肯定値との平均誤差を算出することで得られたものであってもよく、両者間の平均二乗誤差を算出することで得られたものであってもよい。同様に、第2グローバル識別誤差値は、予測グローバル識別値と肯定値との平均誤差を算出することで得られたものであってもよく、両者間の平均二乗誤差を算出することで得られたものであってもよい。
【0123】
ステップS42bにおいて、該第1訓練画像と該識別モデルに基づいて、該第1訓練画像の第3画素識別誤差値と第3グローバル識別誤差値を決定する。
【0124】
ここで、ステップS42bを実現する時、まず、第1訓練画像を識別モデルに入力し、訓練画素識別行列と訓練グローバル識別値を得る。更に、訓練画素識別行列と否定値(即ち、0)に基づいて、第3画素識別誤差値を決定し、訓練グローバル識別値と否定値に基づいて、第3グローバル識別誤差値を決定する。第3画素識別誤差値は、訓練画素識別行列と否定値との平均誤差を算出することで得られたものであってもよく、両者間の平均二乗誤差を算出することで得られたものであってもよい。同様に、第3グローバル識別誤差値は、訓練グローバル識別値と否定値との平均誤差を算出することで得られたものであってもよく、両者間の平均二乗誤差を算出することで得られたものであってもよい。
【0125】
ステップS43bにおいて、所定の識別重み値、該第2画素識別誤差値、該第2グローバル識別誤差値、該第3画素識別誤差値及び該第3グローバル識別誤差値に基づいて、識別目的関数を決定する。
【0126】
ここで、所定の識別重み値には、第2画素識別誤差値に対応する第5重み値、該第2グローバル識別誤差値に対応する第6重み値、該第3画素識別誤差値に対応する第7重み値及び該第3グローバル識別誤差値に対応する第8重み値が含まれる。ステップS43bを実現する時、第2画素識別誤差値、該第2グローバル識別誤差値、該第3画素識別誤差値、該第3グローバル識別誤差値及び対応する重み値に対して加重加算を行い、識別目的関数を得ることであってもよい。
【0127】
いくつかの実施例において、
図4に示されるステップS51aからステップS54aによって軽量化モデルを得ることができる。
【0128】
ステップS51aにおいて、該処理対象画像における各画素点に対応する特徴ベクトルに基づいて、特徴空間を決定する。
【0129】
ここで、該特徴空間は、各画素点に対応する特徴ベクトルのうち、各次元の最大値及び最小値に基づいて決定されたものであってもよい。
【0130】
ステップS52aにおいて、該特徴空間を所定の分割ルールに応じてN個の特徴部分空間に分割し、N個の特徴部分空間に対応するN個の中心座標をそれぞれ決定する。
【0131】
ここで、ステップS52aを実現する時、特徴ベクトルの各次元を分割し、例えば、特徴ベクトルが4つの次元を有し、各次元を8等分すれば、8*8*8*8=4096個の特徴部分空間を得、各特徴部分空間における各次元の最大値及び最小値に基づいて、対応する中心座標を決定することであってもよい。実現する時、各特徴部分空間における各次元の最大値と最小値との中央値を特徴部分空間に対応する中心座標として決定してもよい。
【0132】
ステップS53aにおいて、N個の中心座標を該訓練されたニューラルネットワークモデルにそれぞれ入力し、N個の特徴部分空間のN個の畳み込みカーネルを得る。
【0133】
ステップS54aにおいて、N個の特徴部分空間とN個の畳み込みカーネルを軽量化モデルとして決定する。
【0134】
上記ステップS51aからステップS54aにおいて、特徴空間を分割し、範囲がより小さい特徴部分空間を得、各特徴部分空間に対応する畳み込みカーネルを決定しているため、軽量化モデルを得た。
【0135】
いくつかの実施例において、下記ステップによっても軽量化モデルを得ることができる。
【0136】
ステップS51bにおいて、該処理対象画像における各画素点に対応する特徴ベクトルに基づいて、決定木を構築する。
【0137】
ここで、ステップS51bを実現する時、まず、全ての特徴ベクトルを1つのノードとして見なし、そして、全ての特徴ベクトルから、1つの特徴ベクトルを選択して、全ての特徴ベクトルに対して分割を行い、複数の子ノードを生成し、各子ノードに対して判断を行い、分割停止条件を満たせば、該ノードをリーフノードとして設定し、そうでなければ、分割停止条件に達するまで、子ノードから、1つの特徴ベクトルを選択して該子ノードにおける全ての特徴ベクトルに対して分割を行うことにより、決定木を得ることであってもよい。
【0138】
ステップS52bにおいて、決定木における各リーフノードを該訓練されたニューラルネットワークモデルにそれぞれ入力し、各リーフノードに対応する畳み込みカーネルを得る。
【0139】
ここで、各リーフノードを訓練されたニューラルネットワークモデルに入力し、即ち、リーフノードとした特徴ベクトルを訓練されたニューラルネットワークモデルに入力し、各リーフノードに対応する畳み込みカーネルを得る。
【0140】
ステップS53bにおいて、該各リーフノード及び対応する畳み込みカーネルを該軽量化モデルとして決定する。
【0141】
上記ステップS51bからステップS53bにおいて、各画素点の特徴ベクトルに基づいて、決定木を構築し、決定木における各リーフノードに対応する畳み込みカーネルを決定しているため、軽量化モデルを得た。
【0142】
上記ステップS51aからステップS54aに基づいて、軽量化モデルを得た後、又は、上記ステップS51bからステップS53bに基づいて、軽量化モデルを得た後、上記ステップS103「軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得るステップ」は、以下のステップによって実現してもよい。
【0143】
ステップS1031において、該各画素点の特徴ベクトルと該軽量化モデルに基づいて、各画素点に対応する畳み込みカーネルを決定する。
【0144】
ここで、該軽量化モデルが特徴空間に対して分割を行って特徴部分空間を得ることで得られたものであれば、ステップS1031を実現する時、ある画素点iの特徴ベクトルに基づいて、該特徴ベクトルが軽量化モデルにおけるどの特徴部分空間に収まるかを決定し、更に、該特徴部分空間に対応する畳み込みカーネルを取得することであってもよい。本願の実施例において、異なる画像処理を行う時、得られた畳み込みカーネルのチャンネル数は異なる。例えば、超解像処理を行い、そして、超解像倍率がPであり、Pが1よりも大きい整数であり(例えば、2であってもよい)、処理前のオリジナル画像サイズがW*Dであり(例えば、1280*720である)、処理後の画像サイズがW*P*D*Pである(例えば、処理後の画像サイズは1280*2*720*2であり、即ち2560*1440である)と、この場合、得られた畳み込みカーネルのチャンネル数は、P*P(即ち、4)である。雑音除去処理を行うと、処理前のオリジナル画像のサイズが処理後の画像のサイズと一致するため、この場合、得られた畳み込みカーネルのチャンネル数は、1である。
【0145】
ここで、該軽量化モデルは、決定木を構築することで得られたものであれば、ステップS1031を実現する時、各画素点の特徴ベクトルと決定木における各ノードを比較し、最終的に、各画素点に対応するターゲットリーフノードを得、ターゲットリーフノードに対応する畳み込みカーネルを取得することであってもよい。
【0146】
ステップS1032において、該各画素点の近傍画像ブロック及び対応する各畳み込みカーネルに対して畳み込み演算を行い、処理後の画素値を得る。
【0147】
ここで、1つの画素値に対して畳み込み演算を行った後に得られた処理後の画素値の数は、畳み込みカーネルのチャンネル数に関わる。例えば、畳み込みカーネルのチャンネル数が1であれば、得られた処理後の画素値の数も1である。畳み込みカーネルのチャンネル数がP*Pであれば、得られた処理後の画素値の数は、P*Pである。
【0148】
ステップS1033において、処理後の画素値に基づいて、処理後のターゲット画像を決定する。
【0149】
ここで、処理後の画素値の数が1である場合、直接的に、処理後の画素値に基づいて、処理後のターゲット画像を得る。処理後の画素値の数がP*Pである場合、処理後の画素値に対してスプライスとシャッフルを行うことによって、処理後のターゲット画像を得る。
【0150】
ステップS1031からステップS1033に関わる実施例において、軽量化モデルを利用して各画素点に対応する畳み込みカーネルを決定するため、軽量化処理前のニューラルネットワークモデルに対応する畳み込みカーネルに比べて、次元が低減する。従って、畳み込み演算を行う時、演算量を低減させることができ、それによって処理効率を向上させ、リアルタイム処理を実現させる。
【0151】
前記実施例によれば、本願の実施例は、画像処理方法を更に提供する。
図5は、本願の実施例による画像処理方法のまた1つの実現フロー概略図である。これは、
図1Aに示されるネットワークアーキテクチャに用いられ、
図5に示すように、該方法は、以下を含む。
【0152】
ステップS201において、第1端末がビデオ視聴の操作命令を受け付ける。
【0153】
ここで、該操作指令は、ユーザによってビデオ視聴Appのビデオ視聴入口で行われるクリック又はタッチ操作によってトリガーされたものであってもよい。
【0154】
ステップS202において、第1端末が該操作指令に基づいて、サーバにビデオ視聴の要求メッセージを送信する。
【0155】
ここで、該要求メッセージにおいて、ターゲットビデオ識別子が付されている。
【0156】
ステップS203において、サーバが該要求メッセージに基づいて、ターゲットビデオファイルを取得する。
【0157】
ここで、サーバは、該要求メッセージを受信した後、該要求メッセージを解析し、ターゲットビデオ識別子を取得し、ターゲットビデオ識別子に基づいて、ターゲットビデオファイルを取得する。
【0158】
ステップS204において、サーバが該ターゲットビデオファイルに基づいて、第1端末にビデオデータストリームを返信する。
【0159】
ステップS205において、第1端末が受信されたビデオデータストリームに対して復号を行い、処理対象画像を得る。
【0160】
ここで、ステップS205を実現する時、第1端末は、受信されたビデオデータストリームに対して復号を行い、各ビデオ画像フレームを得、各ビデオ画像フレームを処理対象画像として決定する。
【0161】
ステップS206において、第1端末が、該処理対象画像がグレースケール画像であるかどうかを判断する。
【0162】
ここで、処理対象画像がグレースケール画像である場合、ステップS207へ進み、処理対象画像がカラー画像である場合、ステップS209へ進む。本願の実施例において、処理対象画像がカラー画像である場合、RGBカラー画像であってもよく、sRGBカラー画像、CMYKカラー画像などであってもよい。
【0163】
ステップS207において、第1端末が該処理対象画像における各画素点の特徴ベクトルを抽出し、各画素点に対応する近傍画像ブロックを決定する。
【0164】
ステップS208において、第1端末が軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得る。
【0165】
該軽量化モデルは、訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである。実際に実現する時、訓練されたニューラルネットワークモデルに基づいて、部分空間分割又は決定木生成を行い、軽量化モデルを得ることであってもよい。
【0166】
本願の実施例におけるステップS207とステップS208の実現プロセスは、他の実施例におけるステップS102とステップS103の実現プロセスと類似しており、ステップS102とステップS103の実現プロセスを参照してもよい。
【0167】
ステップS209において、第1端末が処理対象画像を輝度クロマ(YUV)色域に変換し、輝度(Y)チャンネル処理対象画像とクロマ(UV)チャンネル処理対象画像を得る。
【0168】
ここで、ステップS209を実現する時、所定の変換関数に基づいて、処理対象カラー画像をYUV色域に変換し、Yチャンネル処理対象画像とUVチャンネル処理対象画像を得ることであってもよい。YUV画像におけるYチャンネル情報が、画像のグレースケールを表示するために十分であるため、この場合、Yチャンネル処理対象画像は、シングルチャンネルグレースケール画像である。
【0169】
ステップS210において、第1端末がYチャンネル処理対象画像における各Yチャンネル画素点の特徴ベクトルを抽出し、各Yチャンネル画素点に対応する近傍画像ブロックを決定する。
【0170】
ここで、ステップS210の実現プロセスは、上記ステップS102の実現プロセスと類似しており、実際に実現する時、ステップS102の実現プロセスを参照してもよい。
【0171】
ステップS211において、第1端末が該軽量化モデルを利用して、各Yチャンネル画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のYチャンネルターゲット画像を得る。
【0172】
本願の実施例において、処理対象カラー画像をYUV色域に変換した後、軽量化モデルを利用して、Yチャンネル処理対象画像のみに対して画像処理を行い、処理後のYチャンネルターゲット画像を得る。ステップS211の実現プロセスは、上記ステップS103の実現プロセスと類似しており、実際に実現する時、ステップS103の実現プロセスを参照してもよい。
【0173】
ステップS212において、第1端末が所定の画像処理アルゴリズムを利用して、UVチャンネル処理対象画像に対して処理を行い、UVチャンネルターゲット画像を得る。
【0174】
ここで、異なる画像処理の目的に対して、所定の画像処理アルゴリズムは異なる。例えば、画像処理の目的が画像解像度向上である時、所定の画像処理アルゴリズムは、画像補間アルゴリズムであってもよく、例えば、バイキュービック補間アルゴリズムであってもよい。画像処理の目的が画像雑音除去である時、所定の画像処理アルゴリズムは、フィルタリングアルゴリズムであってもよく、例えば、空間ドメインフィルタリングアルゴリズム、変換ドメインフィルタリングアルゴリズムなどであってもよい。
【0175】
ステップS213において、第1端末がYチャンネルターゲット画像とUVチャンネルターゲット画像に基づいて、ターゲット画像を決定し、該ターゲット画像の色域は、処理対象画像の色域と同じである。
【0176】
ここで、所定の画像処理アルゴリズムを利用して、UVチャンネル処理対象画像に対して処理を行い、UVチャンネルターゲット画像を得た後、ステップS213において、ステップS211で得られたYチャンネルターゲット画像とUVチャンネルターゲット画像に対して色域変換を行い、色域が処理対象画像と同じであるターゲット画像を得る。
【0177】
ステップS214において、第1端末がターゲット画像を出力する。
【0178】
ここで、ステップS214を実現する時、第1端末の表示インタフェースに該ターゲット画像を表現することであってもよい。
【0179】
本願の実施例による画像処理方法において、第1端末は、サーバから、ビデオデータストリームを取得した後、ビデオデータストリームに対して復号を行い、処理対象画像を得、処理対象画像がグレースケール画像である時、軽量化モデルを直接的に利用して処理対象画像に対して処理を行い、ターゲット画像を得、処理対象画像がカラー画像である時、処理対象画像をYUV色域に変換し、軽量化モデルを利用して、Yチャンネル処理対象画像に対して処理を行い、Yチャンネルターゲット画像を得、所定の画像処理アルゴリズムを利用して、UVチャンネル処理対象画像に対して処理を行い、UVチャンネルターゲット画像を得、更に、Yチャンネルターゲット画像とUVチャンネルターゲット画像を処理対象画像と同じである色域に更に変換し、ターゲット画像を得、ターゲット画像を出力する。このように、画像処理速度を向上させ、リアルタイム実行を実現させることができる(異なるモデルが変換された後、高速化率が異なり、理論的には、100倍以上に達することができる)。本願の実施例による画像処理方法は、超解像処理、雑音除去処理、画像強調処理などの方面に用いることができ、適用範囲が広い。
【0180】
以下では、本願の実施例の、1つの実際な適用シーンへの例示的な応用を説明する。本願の実施例による画像処理方法は、複数種の画像処理の応用(例えば、画像超解像、雑音除去、強調など)に用いることができる。本願の実施例において、画像、ビデオ超解像の応用を例として説明する。
【0181】
図6を参照すると、
図6は、本願の実施例による画像処理方法の実現フロー概略図である。該方法は、画像処理機器に用いられる。該画像処理機器は、
図1Aに示される第1端末であってもよく、
図1Bに示されるサーバであってもよい。
図6に示すように、該方法は、以下を含む。
【0182】
ステップS601において、画像処理機器が訓練データ集合の構築を行う。
【0183】
ここで、ステップS601を実現する時、まず、高解像度画像に対して、ダウンサンプリングによって、低解像度画像を構築し、そして、特徴抽出アルゴリズムを使用して、低解像度画像における各画素の特徴を抽出し、特徴マップを得、最後に、各組の<高解像度画像、低解像度画像、特徴マップ>を使用して訓練データ集合を構築する。
【0184】
ステップS602において、画像処理機器が深層学習モデルの訓練を行う。
【0185】
ここで、ステップS602を実現する時、訓練データ集合、訓練アルゴリズム及び損失関数に基づいて、深層学習モデルを訓練する。
【0186】
ステップS603において、画像処理機器がモデル変換を行う。
【0187】
ここで、実現する時、モデル変換アルゴリズムを使用して、訓練された深層学習モデルを軽量モデル、例えば、部分空間モデルに簡略化する。
【0188】
ステップS604において、画像処理機器がリアルタイム推論を行う。
【0189】
ここで、実現する時、軽量化モデルを用いてリアルタイム推論を行う。まず、特徴抽出アルゴリズムによって、超解像対象画像の特徴を抽出し、そして、抽出された特徴と超解像対象画像を使用して、軽量化モデル(例えば、部分空間モデル)によって高速処理を行い、超解像画像を得る。
【0190】
以下では、図面を参照しながら、ステップS601からステップS604を説明する。
【0191】
まず、ステップS601「訓練データ集合を構築するステップ」を説明する。
図7Aを参照すると、
図7Aは、本願の実施例によるデータ集合の構築の実現フロー概略図である。
図7Aに示すように、該実現フローは、以下を含む。
【0192】
ステップS6011において、高解像度画像を取得する。
【0193】
ここで、高解像度画像の幅と高さは、超解像倍率Nの整数倍でなければならず、そして、グレースケール画像でなければならない。
【0194】
ステップS6012において、人工的ダウンサンプリングアルゴリズムを使用して、高解像度画像の解像度を低減し、低解像度画像を得る。
【0195】
ここで、人工的ダウンサンプリング方法を使用して、高解像度画像をN倍縮小する。本願の実施例において、ダウンサンプリング方法は、平均値フィルタリング、線形差などの種々の方法であってもよい。
【0196】
ステップS6013において、特徴抽出アルゴリズムを使用して、低解像度画像の特徴を抽出し、特徴マップを得る。
【0197】
ステップS6014において、高解像度画像、低解像度画像及び特徴マップによって訓練集合を構成する。
【0198】
本願の実施例において、ステップS6013を実現する時、勾配特徴と分散を低解像度画像の特徴として用いて、特徴マップを更に構築することができる。いくつかの実施例において、各画素に対して、それに対応する4次元特徴を算出してもよい。そして、元の画素の順番に応じて、幅と高さが低解像度画像と同じであり、チャンネル数が4である特徴マップとなるように配列する。
【0199】
図7Bは、本願の実施例による低解像度画像特徴の抽出の実現フロー概略図である。
図7Bに示すように、該フローは、以下を含む。
【0200】
ステップS31において、画像処理機器が低解像度画像の第1方向勾配図dxを算出する。
【0201】
ここで、画像処理機器は、
図1Aに示される第1端末であってもよく、
図1Bに示されるサーバであってもよい。実現する時、低解像度画像で、各画素iに対して、右の1つの画素の値から左の1つの画素の値を減算し、その差を2で除算し、該画素iの、dxにおける対応する勾配値を得る。
【0202】
ステップS32において、画像処理機器が低解像度画像の第2方向勾配図dyを算出する。
【0203】
ここで、実現する時、低解像度画像で、各画素iに対して、下の1つの画素の値から上の1つの画素の値を減算し、その差を2で除算し、該画素iの、dyにおける対応する勾配値を得る。
【0204】
ステップS33において、低解像度画像における各画素iに対して、画像処理機器が以下の処理を行い、それに対応する特徴を得る(本願の実施例において、4次元特徴を得る)。
【0205】
ステップ331において、画像処理機器が、画素iの、dx,dyにおける対応する位置の近傍画像ブロックを算出し、それぞれx、yと記す。
【0206】
ここで、xとyは、
図7Bにおけるdxブロックとdyブロックに対応する。
【0207】
ステップ332において、x、yをベクトルと見なし、x、yの長さをMと記し、その要素がそれぞれxi(i=1,2,…,M)、yi(i=1,2,…,M)であり、x、yの共分散行列Aを算出し、共分散行列Aの定義は、式(1-1)に示すとおりである。
【0208】
【0209】
式(1-1)において、i=1,2…,Mである。
【0210】
ステップ333において、共分散行列Aの特徴値λ1、λ2を算出する。
【0211】
ここで、式(1-2)と式(1-3)に応じて、共分散行列Aの特徴値λ1とλ2をそれぞれ算出する。
【0212】
【0213】
ここで、a=Σxixi、b=Σxiyi、c=Σyiyiである。
【0214】
ステップ334において、低解像度画像で、画素iの近傍画像ブロックを取り出し、該近傍画像ブロックの分散vを算出する。
【0215】
ステップ335において、画素iの4次元特徴を算出する。
【0216】
ここで、第1次元特徴f
1=atan2(λ
1,λ
2)であり、第2次元特徴f
2=λ
1であり、第3次元特徴
【数6】
であり、第4次元特徴f
4=vである。
【0217】
上記ステップS31からステップS33に応じて、低解像度画像における各画素の特徴を算出することによって、特徴マップを構築する。
【0218】
続いて、ステップS602「深層学習モデル及びその訓練」を説明する。
図8Aを参照すると、
図8Aは、本願の実施例による深層学習モデル及びその訓練の実現フロー概略図である。
図8Aに示すように、該フローは、以下を含む。
【0219】
ステップS6021において、生成器(超解像モデル)を構築する。
【0220】
ステップS6022において、識別器(識別モデル)を構築する。
【0221】
ステップS6023において、生成目的関数を構築する。
【0222】
ステップS6024において、識別目的関数を構築する。
【0223】
ステップS6025において、2つの目的関数を使用して超解像モデルと識別モデルを訓練する。
【0224】
本願の実施例において、使用可能な超解像ネットワーク構造とネットワークの使用方法は、
図8Bに示すとおりであり(ネットワーク構造は、これに限定されない)、使用可能な超解像ネットワーク構造は、
図8Bにおける811に示すとおりである。
【0225】
本願の実施例において、深層超解像ネットワークは、1つの深層ニューラルネットワークであり、
図8Bに示すように、全結合層0 8111、再構築(Reshape)層1 8112、残差モジュール1~Z 8113、全結合層2Z+1 8114、Reshape層2 8115を含む。残差モジュールi 8113は、
図8Bに示すように、全結合層i_1 1131、全結合層i_2 1132及び加算層1133を更に含む。
【0226】
低解像度画像の特徴マップを深層ニューラルネットワークに入力し、現在の画像ブロックの超解像に用いられる畳み込みカーネルを出力する。
【0227】
低解像度画像の寸法がP×Pであり、超解像倍率がNであるとすれば、推奨されるネットワークパラメータは、下記表1に示すとおりである。
【0228】
【0229】
Zの推奨値は、10であり、表において、「-」は、バッチ処理の次元を表す。
【0230】
図8Bに示すように、該深層超解像ネットワークの使用プロセスは以下のとおりである。
【0231】
ステップS801において、データ集合から、画素iに対応する低解像度画像ブロックRi、4次元特徴Fiを取り出す。
【0232】
ステップS802において、特徴Fiを深層超解像ネットワークに入力し、画像ブロックRiに用いられる超解像用畳み込みカーネルiを得る。
【0233】
ステップS803において、画像ブロックRiと畳み込みカーネルiに対して畳み込み演算を行い、超解像後のN2個の画素を得て、ベクトルIiと記す。
【0234】
ステップS804において、全ての画素の超解像後の値Iiを算出した後、スプライスとシャッフル(即ち、画素シャッフル:PixelShuffle)を行い、超解像度画像Sを得る。
【0235】
ここで、低解像度画像の幅と高さがそれぞれW、Hであるとすれば、超解像後の画素を直接的に組み合わせることで得られた画像Sは、三次元行列であり、3つの次元は、それぞれW、H、N2であり、優先度が順に高くなり、Nは、超解像倍率である。
【0236】
例えば、Wは、640であり、Hは、360であり、Nは、2であり、超解像後に得られた画像Sの3つの次元はそれぞれ、640、360及び4である。
【0237】
ステップS804を実現する時、まず、Sを4次元行列となるように再構築し、次元はそれぞれ、W、H、N、Nであり(例えば、それぞれ640、360、2、2である)、続いて、Sの第2次元と第3次元を交換し、更に、Sを2次元行列となるように再構築し、次元はそれぞれWN(640*2=1280)、HN(360*2=720)であり、再構築後のSは、超解像度画像Sである。
【0238】
本願の実施例において、超解像ネットワークから出力された畳み込みカーネルは、N2個のチャンネルの畳み込みカーネルである。
【0239】
説明すべきこととして、超解像ネットワークは、上記入力特徴を用いて、後続のモデル変換ステップを効果的に実行できることを確保することができる(使用される特徴次元が多くなく、4次元だけである)。
【0240】
図8Cを参照すると、
図8Cは、本願の実施例による識別器のネットワーク構造概略図である。
図8Cに示すように、該ネットワークモデルは、畳み込み層1 821、畳み込み層2 822、畳み込み層3 823、全結合層1 824及び畳み込み層4 825を含む。
図8Cに示される識別ネットワークモデルのネットワーク構造パラメータは、下記表2に示すとおりである。
【0241】
【0242】
図8Cに示すように、1つの画像826を識別ネットワークに入力した後、識別ネットワークは、グローバル識別出力827と画素識別出力828の2つの出力を有する。
【0243】
グローバル識別出力827は、入力された画像が超解像ネットワークによって構築された画像であるかどうかを識別するためのものであり、出力は、1つの数値であり、入力された画像が生成器によって構築されたものである確率を表す(0-1であり、0は、生成器によって構築されたものではないことを表し、1は、生成器によって構築されたものであることを表す)。
【0244】
画素識別出力828は、入力された画像が超解像ネットワークによって構築された画像であるかどうかを識別するためのものであり、出力は、幅と高さが入力画像と同じである行列であり、各要素は、対応する位置の入力画像の画素が生成器によって構築されたものである確率を表す(0-1であり、0は、生成器によって構築されたものではないことを表し、1は、生成器によって構築されたものであることを表す)。
【0245】
本願の実施例において、
図8Dに示すように、生成目的関数を構築することができる。
ステップS231において、画素レベル誤差を算出する。
【0246】
ここで、ステップS231を実現する時、高解像度画像と超解像後の画像との各画素点の平均誤差を算出し、誤差は、最小二乗誤差(MSE)、絶対誤差などの種々の形式であってもよい。
【0247】
ステップS232において、コンテンツ誤差を算出する。
【0248】
本願の実施例において、ステップS232は、以下のステップによって実現してもよい。
【0249】
ステップS2321において、高解像度画像をコンテンツ特徴モジュールに入力し、高解像コンテンツ特徴を得る。
【0250】
ここで、コンテンツ特徴モジュールは、予め訓練されたモジュールであり、一般的には、VGG19の上位の複数層から構成される(上位の17層を用いることを勧める)。他のネットワーク、又は、異なる上位の複数層を用いてもよい。
【0251】
ステップS2322において、超解像後の画像をコンテンツ特徴モジュールに入力し、超解像コンテンツ特徴を得る。
【0252】
ステップS2323において、高解像コンテンツ特徴と超解像コンテンツ特徴の平均誤差、即ちコンテンツ誤差を算出し、誤差は、最小二乗誤差(MSE)、絶対誤差などの種々の形式であってもよい。
【0253】
ステップS233において、画素識別誤差とグローバル識別誤差を算出する。
【0254】
ここで、ステップS233は、以下のステップによって実現してもよい。
【0255】
ステップS2331において、超解像後の画像を識別ネットワークに入力し、超解像画素識別と超解像グローバル識別を得る。
【0256】
ステップS2332において、超解像画素識別と否定値(0)との平均誤差、即ち画素識別誤差を算出する(生成器は、入力された画像の画素が超解像によって得られたものではないと識別ネットワークが認めるように、識別ネットワークを騙せることが望ましい)。
【0257】
本願の実施例において、画素識別誤差は、バイナリ交差エントロピーなどの種々の形式であってもよい。
【0258】
ステップS2333において、超解像グローバル識別と否定値(0)との平均誤差、即ちグローバル識別誤差を算出する(生成器は、入力された画像が全体的に見れば超解像によって得られたものではないと識別ネットワークが認めるように、識別ネットワークを騙せることが望ましい)。
【0259】
本願の実施例において、グローバル識別誤差は、バイナリ交差エントロピーなどの種々の形式であってもよい。
【0260】
ステップS234において、4つの誤差に対して加重加算を行い、生成目的関数を得る。
【0261】
本願の実施例において、推奨される重み値は、画素識別誤差重み7e-4、グローバル識別誤差重み3e-4、コンテンツ誤差重み2e-6、画素レベル誤差重み1.0である。
【0262】
本願の実施例において、識別目的関数の構築方法は、
図8Eに示すとおりである。
【0263】
ステップS241において、超解像度画像の超解像グローバル誤差と超解像画素誤差を算出する。
【0264】
ここで、ステップS241は、以下のステップによって実現してもよい。
【0265】
ステップS2411において、超解像度画像を識別ネットワークに入力し、超解像グローバル識別と超解像画素識別を得る。
【0266】
ステップS2412において、超解像画素識別と肯定値(1)との平均誤差、即ち超解像画素誤差を算出する(識別ネットワークは、入力された超解像後の画像の各画素が生成器の超解像モジュールによって構築されたものであることを認識できることが望ましい)。
【0267】
本願の実施例において、超解像画素誤差は、バイナリ交差エントロピーなどの種々の形式であってもよい。
【0268】
ステップS2413において、超解像グローバル識別と肯定値(1)との平均誤差、即ち超解像グローバル誤差を算出する(識別ネットワークは、入力された超解像後の画像が全体的には生成器の超解像モジュールによって構築されたものであることを認識できることが望ましい)。
【0269】
本願の実施例において、超解像グローバル誤差は、バイナリ交差エントロピーなどの種々の形式であってもよい。
【0270】
ステップS242において、高解像度画像の高解像グローバル誤差と高解像画素誤差を算出する。
【0271】
ここで、ステップS242は、以下のステップによって実現してもよい。
【0272】
ステップS2421において、高解像度画像を識別ネットワークに入力し、高解像グローバル識別と高解像画素識別を得る。
【0273】
ステップS2422において、高解像画素識別と否定値(0)との平均誤差、即ち高解像画素誤差を算出する(識別ネットワークは、入力された高解像度画像の各画素が生成器の超解像モジュールによって構築されたものではないことを認識できることが望ましい)。
【0274】
本願の実施例において、高解像画素誤差は、バイナリ交差エントロピーなどの種々の形式であってもよい。
【0275】
ステップS2423において、高解像グローバル識別と否定値(0)との平均誤差、即ち高解像グローバル誤差を算出する(識別ネットワークは、入力された高解像度画像が全体的には生成器の超解像モジュールによって構築されたものではないことを認識できることが望ましい)。
【0276】
本願の実施例において、高解像グローバル誤差は、バイナリ交差エントロピーなどの種々の形式であってもよい。
【0277】
ステップS243において、4つの誤差に対して加重加算を行い、識別損失関数を得る。
【0278】
本願の実施例において、推奨される重みはそれぞれ、超解像グローバル誤差の重み0.25、超解像画素誤差の重み0.25、高解像グローバル誤差の重み0.25、高解像画素誤差の重み0.25である。
【0279】
生成モデル、識別モデル及び生成損失関数と識別損失関数を構築した後、生成損失関数と識別損失関数によって、生成モデルと識別モデルに対して訓練を行う必要がある。
図8Fを参照すると、
図8Fは、本願の実施例によるモデル訓練の実現フロー概略図である。
図8Fに示すように、該フローは、以下を含む。
【0280】
ステップS841において、画像処理機器が訓練パラメータとモデルパラメータを初期化する。
【0281】
ここで、反復回数を1に初期化し、識別ネットワーク、生成ネットワークのパラメータ構造を初期化する。
【0282】
ステップS842において、画像処理機器は、反復回数がT未満であるかどうかを判断する。
【0283】
ここで、Tは、所定の反復回数閾値であり、例えば、10000回であってもよい。
【0284】
ここで、反復回数がT未満である場合、ステップS843へ進み、反復回数がT以上である場合、プロセスを終了する。
【0285】
ステップS843において、画像処理機器が識別器のパラメータを固定し、最適化アルゴリズムで、訓練集合におけるデータと生成損失関数を用いて、生成器パラメータを一回訓練(反復)する。
【0286】
ステップS844において、画像処理機器が生成器のパラメータを固定し、最適化アルゴリズムで、訓練集合におけるデータと識別損失関数を用いて、識別器パラメータを一回訓練(反復)する。
【0287】
ステップS845において、反復回数+1を行い、ステップS842へ再び進む。
【0288】
上記ステップS841からステップS845によって、訓練された生成器パラメータと識別器パラメータを得ることができ、生成器パラメータは、深層超解像ネットワークのパラメータである。
【0289】
以下では、ステップS603「モデル変換」を説明する。モデル変換の要旨は、深層学習モデルに対して近似サンプリングを行い、それを簡単な軽量化モデルに変換することである。以下では、深層超解像ネットワークモデルを部分空間モデルに変換する方法を例とする。一言で述べると、入力された特徴空間を分割し、各部分空間を得、各部分空間の全ての深層学習出力値を現在の空間中心点に対応する深層学習モデルの出力値に近似させる。
【0290】
図9を参照すると、
図9は、本願の実施例によるモデル変換の実現フロー概略図である。
図9に示すように、該フローは、以下を含む。
【0291】
ステップS6031において、画像処理機器が特徴空間に対して離散化を行う。
【0292】
ここで、ステップS6031を実現する時、特徴空間(前記4次元の特徴空間)の各次元をセグメント化し、特徴1について、[0-2π]をN1個(推奨値は、16である)のセグメントに均一に分けることを推奨する。特徴2について、データの最大値と最小値に応じて、N2個(推奨値は、8である)のセグメントに均一に分けることを推奨する。特徴3について、データの最大値と最小値に応じて、N3個(推奨値は、8である)のセグメントに均一に分けることを推奨する。特徴4について、0からデータの最大値をN4個(推奨値は、8である)のセグメントに均一に分けることを推奨する。上記セグメント化に応じて、特徴空間をN1*N2*N3*N4(推奨値は、8192である)個の部分空間に分割する。
【0293】
ステップS6032において、各部分空間iに対して、画像処理機器が該部分空間の中心、即ち中心座標iを算出する。
【0294】
ここで、ステップS6032を実現する時、各次元に対して、その上下限の中央値をそれぞれ算出し、該部分空間の中心座標を得ることであってもよい。
【0295】
ステップS6033において、画像処理機器が中心座標iを深層超解像ネットワークに入力し、畳み込みカーネルiを得る。
【0296】
ステップS6034において、画像処理機器が各部分空間及びそれに対応する畳み込みカーネルによって変換後の部分空間モデルを構成する。
【0297】
説明すべきこととして、モデル変換のステップにおいて、部分空間モデルに変換できるのに加えて、いくつかの実施例では、深層学習モデルを他の軽量化モデル、例えば決定木などに変換してもよい。このようなモデル変換について言えば、深層学習モデルの構築データを用いて新たなターゲット軽量化モデルを訓練する方法で達してもよい。
【0298】
以下では、ステップS604「リアルタイム推論」を説明する。リアルタイム推論のステップにおいて、我々は、ステップS603で得られた軽量化モデル(例えば、部分空間モデル)を利用して画像超解像のリアルタイム推論を実現させる。
図10は、本願の実施例によるリアルタイム推論の実現フロー概略図である。
図10に示すように、該フローは、以下を含む。
【0299】
ステップS6041において、画像処理機器が超解像対象画像の特徴マップを算出する。
【0300】
ここで、算出方法は、S6013と同じであり、特徴抽出アルゴリズムを用いて、超解像対象画像の特徴マップを抽出し、超解像対象画像は、シングルチャンネル画像である。
【0301】
ステップS6042において、超解像対象画像における各画素iに対して、超解像対象画像で、画像処理機器が画素iの低解像度画像ブロックRiを取得する。
【0302】
ステップS6043において、画像処理機器が、画素iの、特徴マップにおける特徴Fiを取得する。
【0303】
ステップS6044において、画像処理機器が特徴Fiを部分空間モデルに入力し、それの属する部分空間をクエリし、該部分空間に対応する畳み込みカーネルiを得る。
【0304】
ステップS6045において、画像処理機器が低解像度画像ブロックRiと決定された部分空間に対応する畳み込みカーネルiに対して畳み込み演算を行い、画素iが超解像された結果Li、即ち、超解像後のN2個の超解像画素を得る。
【0305】
ステップS6046において、画像処理機器が全ての超解像後の画素Li(N2チャンネル。Nは、超解像倍率である)に対してスプライスとシャッフルを行い、超解像後の画像を得る。
【0306】
ここで、ステップS6046のスプライスとシャッフル方法の実現方式は、ステップS804の実現方式を参照してもよい。
【0307】
本願の実施例において、画像が往々にしてカラー画像であるため、カラー画像に対して、
図11に示されるフローに応じて超解像画像を得る。
【0308】
ステップS1101において、画像処理機器がカラー画像を元の色域(例えば、RGB色域)からYUV色域に変換し、Yチャンネル超解像対象画像とUVチャンネル超解像対象画像を得る。
【0309】
ステップS1102において、画像処理機器がYチャンネル超解像対象画像をリアルタイム超解像モジュールに入力し、リアルタイム超解像を行い、Yチャンネル超解像後の画像を得る。
【0310】
ステップS1103において、画像処理機器がUVチャンネル超解像対象画像に対して、従来の画像補間方法で超解像処理を行い、UVチャンネル超解像後の画像を得る。
【0311】
本願の実施例において、バイキュービック補間を用いて、UVチャンネル超解像対象画像に対して超解像処理を行ってもよく、いくつかの実施例において、他の画像補間方法を用いてもよい。
【0312】
ステップS1104において、画像処理機器が超解像後のYUV画像を元の色域に変換し、変換によって得られた画像は、超解像後の画像である。
【0313】
いくつかの実施例において、ビデオファイルに対して超解像処理を行う必要がある場合、
図12に示されるステップによって実現してもよい。
【0314】
ステップS1201において、画像処理機器が超解像対象ビデオを取得する。
【0315】
ステップS1202において、画像処理機器がビデオに対して復号を行い、各超解像対象ビデオフレームを得る。
【0316】
ステップS1203において、画像処理機器が各超解像対象ビデオフレームiに対して、それをリアルタイム超解像モジュールに入力し、超解像処理を行い、ビデオフレームiの超解像後の画像を得る。
【0317】
ここで、超解像対象ビデオフレームiがカラー画像フレームである場合、ステップS1203は、ステップS1101からステップS1104に応じて実現してもよい。
【0318】
ステップS1204において、画像処理機器が各ビデオフレームiの超解像後の画像に対してビデオ符号化を行い、超解像後のビデオを得る。
【0319】
本願の実施例による画像処理方法において、訓練時、種々の深層学習における目的関数を使用することができ、訓練されたモデルに、より高い画面効果を持たせることができ、そして、深層超解像モデルを軽量化モデルに変換することができ、それによってその推論速度を大幅に向上させ、リアルタイム実行を実現させることができる(異なるモデルが変換された後の高速化率が異なり、理論的には、100倍以上に達することができる)。そして、超解像に加えて、本願の実施例による方法は、他の画像処理応用、例えば画像雑音除去、強調などに用いられてもよく、適用範囲がより広い。
【0320】
以下では、引き続き、本願の実施例による画像処理装置154がソフトフェアモジュールとして実施される場合の例示的な構成を説明する。
図13は、本願の実施例による画像処理装置の構成概略図である。
図13に示すように、画像処理装置154は、
処理対象画像を取得するように構成される第1取得モジュール1541と、
該処理対象画像がグレースケール画像である場合、該処理対象画像における各画素点の特徴ベクトルを抽出し、該処理対象画像における各画素点に対応する近傍画像ブロックを決定するように構成される第1抽出モジュール1542と、
軽量化モデルを利用して、各画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のターゲット画像を得るように構成される第1処理モジュール1543であって、該軽量化モデルは、訓練されたニューラルネットワークモデルに対して軽量化処理を行うことで得られたものである、第1処理モジュール1543と、
該ターゲット画像を出力するように構成される出力モジュール1544と、を備える。
【0321】
いくつかの実施例において、該画像処理装置は、
該処理対象画像がカラー画像である場合、該処理対象画像をYUV色域に変換し、Yチャンネル処理対象画像とUVチャンネル処理対象画像を得るように構成される色域変換モジュールと、
該Yチャンネル処理対象画像における各Yチャンネル画素点の特徴ベクトルを抽出し、該各Yチャンネル画素点に対応する近傍画像ブロックを決定するように構成される第2抽出モジュールと、
該軽量化モデルを利用して、該各Yチャンネル画素点の特徴ベクトルと近傍画像ブロックに対して処理を行い、処理後のYチャンネルターゲット画像を得るように構成される第2処理モジュールと、
所定の画像処理アルゴリズムを利用して、該UVチャンネル処理対象画像に対して処理を行い、UVチャンネルターゲット画像を得るように構成される第3処理モジュールと、
該Yチャンネルターゲット画像とUVチャンネルターゲット画像に基づいて、ターゲット画像を決定するように構成される第1決定モジュールであって、該ターゲット画像の色域は、処理対象画像の色域と同じである、第1決定モジュールと、を更に備える。
【0322】
いくつかの実施例において、該第1取得モジュールは更に、
処理対象ビデオファイルを取得し、
該ビデオファイルに対して復号を行い、該ビデオファイルにおける各ビデオフレーム画像を得、
該各ビデオフレーム画像を該処理対象画像として決定するように構成される。
【0323】
いくつかの実施例において、該第1抽出モジュールは更に、
該処理対象画像に対応する第1方向勾配図と第2方向勾配図を決定し、
該処理対象画像における各画素点の、第1方向勾配図における第1勾配近傍ブロックと第2方向勾配図における第2勾配近傍ブロックを決定し、
該各画素点の第1勾配近傍ブロックと第2勾配近傍ブロックに基づいて、該各画素点の特徴ベクトルを決定するように構成される。
【0324】
いくつかの実施例において、該第1抽出モジュールは更に、
該各画素点の第1勾配近傍ブロックと第2勾配近傍ブロックに基づいて、前記各画素点の共分散行列を決定し、
各共分散行列に対応する各第1特徴値と各第2特徴値を決定し、
該各画素点の近傍画像ブロックに対応する各分散値を決定し、
該各第1特徴値、各第2特徴値及び各分散値に基づいて、該各画素点の特徴ベクトルを決定するように構成される。
【0325】
いくつかの実施例において、該画像処理装置は、
訓練データと所定のニューラルネットワークモデルを取得するように構成される第2取得モジュールであって、該訓練データは、第1訓練画像と第2訓練画像を含み、該第2訓練画像は、該第1訓練画像に対してダウンサンプリングを行うことで得られたものであり、該ニューラルネットワークモデルは、生成モデルと識別モデルを含む、第2取得モジュールと、
該ニューラルネットワークモデルを利用して、該第2訓練画像に対して処理を行い、予測画像を得るように構成される第4処理モジュールと、
該予測画像、該第1訓練画像及び所定の目的関数に基づいて、該ニューラルネットワークモデルに対して逆伝播訓練を行い、訓練されたニューラルネットワークモデルを得るように構成されるモデル訓練モジュールと、を更に備える。
【0326】
いくつかの実施例において、該所定の目的関数は、生成目的関数と識別目的関数を含み、これに対応して、該モデル訓練モジュールは更に、
所定の訓練完了条件に達して、訓練されたニューラルネットワークモデルを得るまで、
該識別モデルの識別パラメータを固定し、該予測画像、該第1訓練画像及び生成目的関数に基づいて、該生成モデルに対して逆伝播訓練を行い、該生成モデルの生成パラメータに対して調整を行い、
該生成モデルの生成パラメータを固定し、該予測画像、該第1訓練画像及び識別目的関数に基づいて、該識別モデルに対して逆伝播訓練を行い、該識別モデルの識別パラメータに対して調整を行う、ように構成される。
【0327】
いくつかの実施例において、該画像処理装置は、
該予測画像と該第1訓練画像との画素レベル誤差値とコンテンツ誤差値を決定するように構成される第2決定モジュールと、
該予測画像と該識別モデルに基づいて、該予測画像の第1画素識別誤差値と第1グローバル識別誤差値を決定するように構成される第3決定モジュールと、
所定の生成重み値、該画素レベル誤差値、該コンテンツ誤差値、該第1画素識別誤差値及び該第1グローバル識別誤差値に基づいて、生成目的関数を決定するように構成される第4決定モジュールと、を更に備える。
【0328】
いくつかの実施例において、該画像処理装置は、
該予測画像と該識別モデルに基づいて、該予測画像の第2画素識別誤差値と第2グローバル識別誤差値を決定するように構成される第5決定モジュールと、
該第1訓練画像と該識別モデルに基づいて、該第1訓練画像の第3画素識別誤差値と第3グローバル識別誤差値を決定するように構成される第6決定モジュールと、
所定の識別重み値、該第2画素識別誤差値、該第2グローバル識別誤差値、該第3画素識別誤差値及び該第3グローバル識別誤差値に基づいて、識別目的関数を決定するように構成される第7決定モジュールと、を更に備える。
【0329】
いくつかの実施例において、該画像処理装置は、
該処理対象画像における各画素点に対応する特徴ベクトルに基づいて、特徴空間を決定するように構成される第8決定モジュールと、
該特徴空間を所定の分割ルールに応じてN個の特徴部分空間に分割し、該N個の特徴部分空間に対応するN個の中心座標をそれぞれ決定するように構成される部分空間分割モジュールと、
該N個の中心座標を該訓練されたニューラルネットワークモデルにそれぞれ入力し、N個の特徴部分空間のN個の畳み込みカーネルを得るように構成される第1入力モジュールと、
該N個の特徴部分空間と該N個の畳み込みカーネルを該軽量化モデルとして決定するように構成される第9決定モジュールと、を更に備える。
【0330】
いくつかの実施例において、該画像処理装置は、
該処理対象画像における各画素点に対応する特徴ベクトルに基づいて、決定木を構築するように構成される決定木構築モジュールと、
該決定木における各リーフノードを該訓練されたニューラルネットワークモデルにそれぞれ入力し、各リーフノードに対応する畳み込みカーネルを得るように構成される第2入力モジュールと、
該各リーフノード及び対応する畳み込みカーネルを該軽量化モデルとして決定するように構成される第10決定モジュールと、を更に備える。
【0331】
いくつかの実施例において、該第1処理モジュールは更に、
該各画素点の特徴ベクトルと該軽量化モデルに基づいて、各画素点に対応する畳み込みカーネルを決定し、
該各画素点の近傍画像ブロック及び対応する各畳み込みカーネルに対して畳み込み演算を行い、該各画素点の処理後の画素値を得、
各画素点の処理後の画素値に基づいて、処理後のターゲット画像を決定するように構成される。
【0332】
説明すべきこととして、本願の実施例における画像処理装置の記述は、上記方法の実施例の記述と類似し、方法の実施例と類似した有益な効果を有する。本装置の実施例に開示されていない技術的細部について、本願の方法の実施例の記述を参照しながら、理解すべきである。
【0333】
本願の実施例は、コンピュータプログラム製品又はコンピュータプログラムを提供する。該コンピュータプログラム製品又はコンピュータプログラムは、コンピュータ命令を含み、該コンピュータ命令は、コンピュータ可読記憶媒体に記憶されている。コンピュータ機器のプロセッサは、コンピュータ可読記憶媒体から該コンピュータ命令を読み取り、該コンピュータ命令は、プロセッサにより実行されて、該コンピュータ機器に、本願の実施例に記載の画像処理方法を実行させる。
【0334】
本願の実施例は、実行可能な命令が記憶されている記憶媒体を提供する。該記憶媒体に実行可能な命令が記憶されており、実行可能な命令がプロセッサにより実行される場合、プロセッサに、本願の実施例で提供される方法を実行させる。
【0335】
いくつかの実施例において、記憶媒体は、コンピュータ可読記憶媒体であってもよく、例えば、強誘電体メモリ(FRAM(登録商標):Ferromagnetic Random Access Memory)、読出し専用メモリ(ROM:Read Only Memory)、プログラマブル読出し専用メモリ(PROM:Programmable Read Only Memory)、消去可能なプログラマブル読出し専用メモリ(EPROM:Erasable Programmable Read Only Memory)、電気的消去可能なプログラマブル読出し専用メモリ(EEPROM:Electrically Erasable Programmable Read Only Memory)、フラッシュメモリ、磁気表面メモリ、光ディスク、又はコンパクトディスク読出し専用メモリ(CD-ROM:Compact Disk-Read Only Memory)などのメモリであってもよく、上記メモリのうちの1つ又は任意の組み合わせを含む種々の機器であってもよい。
【0336】
いくつかの実施例において、実行可能な命令は、プログラム、ソフトウェア、ソフトウェアモジュール、スクリプト又はコードの形式で、任意の形式のプログラミング言語(コンパイル型言語又はインタプリタ型言語、あるいは、宣言型言語又は手続き型言語を含む)で書かれ、任意の形式で配置されてもよい。独立したプログラムとして配置されてもよく、モジュール、コンポーネント、サブルーチン又はコンピューティング環境に適用される他のユニットとして配置されてもよい。
【0337】
例として、実行可能な命令は、ファイルシステムにおけるファイルに対応してもよいが、これに限定されない。他のプログラム又はデータを記憶するファイルの一部に記憶されてもよい。例えば、ハイパーテキストマークアップ言語(HTML:Hyper Text Markup Language)ドキュメントにおける1つ又は複数のスクリプトに記憶され、検討されるプログラム専用の単一のファイルに記憶され、又は、複数のコラボレーションファイル(例えば、1つ又は複数のモジュール、サブプログラム又はコードコンポーネントを記憶するファイル)に記憶される。例として、実行可能な命令は、1つのコンピューティング機器で実行され、又は、1つのサイトに位置する複数のコンピューティング機器で実行され、又は、複数のサイトに分布して通信ネットワークを介して相互接続される複数のコンピューティング機器で実行されるように配置されてもよい。
【0338】
以上は本願の実施例に過ぎず、本願の保護範囲はそれらに制限されるものではない。本願の精神や範囲を逸脱することなく行われるあらゆる修正、同等置換及び改良などはすべて本願の保護範囲内に含まれるものとする。
【符号の説明】
【0339】
100 第1端末
110 プロセッサ
120 ネットワークインタフェース
130 ユーザインタフェース
131 出力装置
132 入力装置
150 メモリ
151 オペレーティングシステム
152 ネットワーク通信モジュール
153 入力処理モジュール
154 画像処理装置
1541 第1取得モジュール
1542 第1抽出モジュール
1543 第1処理モジュール
1544 出力モジュール