(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-09
(45)【発行日】2024-09-18
(54)【発明の名称】画像処理装置、画像処理方法及び画像処理プログラム
(51)【国際特許分類】
H04N 19/126 20140101AFI20240910BHJP
H04N 19/152 20140101ALI20240910BHJP
H04N 19/167 20140101ALI20240910BHJP
H04N 19/176 20140101ALI20240910BHJP
【FI】
H04N19/126
H04N19/152
H04N19/167
H04N19/176
(21)【出願番号】P 2022576327
(86)(22)【出願日】2021-01-22
(86)【国際出願番号】 JP2021002221
(87)【国際公開番号】W WO2022157921
(87)【国際公開日】2022-07-28
【審査請求日】2023-07-14
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】久保田 智規
(72)【発明者】
【氏名】中尾 鷹詔
【審査官】山▲崎▼ 雄介
(56)【参考文献】
【文献】特開2017-168878(JP,A)
【文献】特開平07-184062(JP,A)
【文献】特開2005-005862(JP,A)
【文献】久保田 智規 他,AI解析に適した映像データ高圧縮技術 ~クラウド・5Gでの利用に向けて~ [online],富士通テクニカルレビュー,日本,富士通株式会社,2020年08月19日,pp. 1-7,インターネット: <URL: https://www.fujitsu.com/jp/documents/about/resources/publications/technicalreview/topics/article003.pdf>,[検索日 2021.03.12]
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
動画像データの各フレームの画像データを符号化する際、仮想バッファにおいてオーバフローが発生するか否かを判定する判定部と、
オーバフローが発生すると判定され
、仮想バッファ位置に基づいて割り当てられた情報量が通知された場合に、認識対象情報を参照し、画像データに含まれる認識対象のうち、認識対象情報により指定された認識対象以外の認識対象の領域に対応する位置のブロックの量子化値を、
前記情報量に基づいて、限界圧縮率に応じた量子化値よりも高い量子化値に変更する変更部と
を有する画像処理装置。
【請求項2】
前記画像データに対して認識処理を行うことで取得される認識結果と、前記画像データが異なる量子化値を用いてそれぞれ符号化された後、復号されることで得られる複数の復号データに対してそれぞれ認識処理を行うことで取得される認識結果との間の各誤差を逆伝播させることで、前記画像データの各ブロックの認識結果への影響度を算出し、前記画像データを符号化する際の各ブロックの量子化値を決定することで、限界圧縮率に応じた量子化値の暫定量子化値マップを生成する解析部を更に有し、
前記変更部は、
前記暫定量子化値マップにおいて量子化値を変更する、請求項1に記載の画像処理装置。
【請求項3】
動画像データの各フレームの画像データを符号化する際、仮想バッファにおいてオーバフローが発生するか否かを判定する判定部と、
オーバフローが発生すると判定された場合に、認識対象情報を参照し、画像データに含まれる認識対象のうち、認識対象情報により指定された認識対象以外の認識対象の領域に対応する位置のブロックの量子化値を、限界圧縮率に応じた量子化値よりも高い量子化値に変更する変更部と、を有し、
前記変更部は、
前記画像データに対して認識処理を行うことで取得される認識結果と、前記画像データが異なる量子化値を用いてそれぞれ符号化された後、復号されることで得られる複数の復号データに対してそれぞれ認識処理を行うことで取得される認識結果との間の各誤差を逆伝播させることで、前記画像データの各ブロックの認識結果への影響度を算出し、
前記画像データに含まれる認識対象のうち、認識対象情報により指定された認識対象以外の認識対象の領域に対応する位置のブロックの認識結果への影響度を修正することで、限界圧縮率に応じた量子化値よりも高い量子化値に変更する
、画像処理装置。
【請求項4】
動画像データの各フレームの画像データを符号化する際、仮想バッファにおいてオーバフローが発生するか否かを判定する判定部と、
オーバフローが発生すると判定された場合に、認識対象情報を参照し、画像データに含まれる認識対象のうち、認識対象情報により指定された認識対象以外の認識対象の領域に対応する位置のブロックの量子化値を、限界圧縮率に応じた量子化値よりも高い量子化値に変更する変更部と、
前記画像データに対して認識処理が行われる際、隠れ層より出力される第1の特徴マップと、前記画像データが異なる量子化値を用いてそれぞれ符号化された後、復号されることで得られる複数の復号データに対してそれぞれ認識処理が行われる際、隠れ層より出力される複数の第2の特徴マップとを取得し、前記第1の特徴マップ及び複数の第2の特徴マップの各領域の信号強度を、ブロックごとに集計することで、前記画像データの各ブロックの認識結果への影響度を算出し、前記画像データを符号化する際の各ブロックの量子化値を決定することで、限界圧縮率に応じた量子化値の暫定量子化値マップを生成する解析部
と、を有し、
前記変更部は、
前記暫定量子化値マップにおいて量子化値を変更する
、画像処理装置。
【請求項5】
動画像データの各フレームの画像データを符号化する際、仮想バッファにおいてオーバフローが発生するか否かを判定する判定部と、
オーバフローが発生すると判定された場合に、認識対象情報を参照し、画像データに含まれる認識対象のうち、認識対象情報により指定された認識対象以外の認識対象の領域に対応する位置のブロックの量子化値を、限界圧縮率に応じた量子化値よりも高い量子化値に変更する変更部と、を有し、
前記変更部は、
前記画像データに対して認識処理が行われる際、隠れ層より出力される第1の特徴マップと、前記画像データが異なる量子化値を用いてそれぞれ符号化された後、復号されることで得られる複数の復号データに対してそれぞれ認識処理が行われる際、隠れ層より出力される複数の第2の特徴マップとを取得し、
前記第1の特徴マップ及び複数の第2の特徴マップの各領域の信号強度を、ブロックごとに集計することで、前記画像データの各ブロックの認識結果への影響度を算出し、
前記画像データに含まれる認識対象のうち、認識対象情報により指定された認識対象以外の認識対象の領域に対応する位置のブロックの認識結果への影響度を修正することで、限界圧縮率に応じた量子化値よりも高い量子化値に変更する
、画像処理装置。
【請求項6】
前記認識対象情報により指定される認識対象は、フレーム単位で変更される、請求項1
乃至5のいずれか1項に記載の画像処理装置。
【請求項7】
前記変更部により変更された量子化値を用いて、前記画像データを符号化する符号化部を更に有する、請求項1乃至
6のいずれか1項に記載の画像処理装置。
【請求項8】
動画像データの各フレームの画像データを符号化する際、仮想バッファにおいてオーバフローが発生するか否かを判定し、
オーバフローが発生すると判定され
、仮想バッファ位置に基づいて割り当てられた情報量が通知された場合に、認識対象情報を参照し、画像データに含まれる認識対象のうち、認識対象情報により指定された認識対象以外の認識対象の領域に対応する位置のブロックの量子化値を、
前記情報量に基づいて、限界圧縮率に応じた量子化値よりも高い量子化値に変更する、
処理をコンピュータが実行する画像処理方法。
【請求項9】
動画像データの各フレームの画像データを符号化する際、仮想バッファにおいてオーバフローが発生するか否かを判定し、
オーバフローが発生すると判定され
、仮想バッファ位置に基づいて割り当てられた情報量が通知された場合に、認識対象情報を参照し、画像データに含まれる認識対象のうち、認識対象情報により指定された認識対象以外の認識対象の領域に対応する位置のブロックの量子化値を、
前記情報量に基づいて、限界圧縮率に応じた量子化値よりも高い量子化値に変更する、
処理をコンピュータに実行させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法及び画像処理プログラムに関する。
【背景技術】
【0002】
動画像データを符号化して伝送する場合、例えば、伝送負荷に応じた圧縮率で符号化するビットレート制御が行われる。
【0003】
一方で、AI(Artificial Intelligence)による認識処理に利用する目的で、動画像データを符号化して伝送する場合には、例えば、認識対象をAIが認識できる限界まで圧縮率を上げて(つまり、限界圧縮率で)符号化することが考えられる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2019-050896号公報
【文献】特開2020-003785号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、限界圧縮率で符号化した場合であっても、仮想バッファにおいてオーバフローが発生することが考えられる。このような場合において、各ブロックの圧縮率を、限界圧縮率を超えて一律に上げたのでは、動画像データに含まれる全ての認識対象について、AIによる認識が困難となり、認識精度が著しく低下する。
【0006】
一つの側面では、AIによる認識が可能な限界圧縮率を超えた圧縮率で符号化する場合において、認識精度の低下を抑えることを目的とする。
【課題を解決するための手段】
【0007】
一態様によれば、画像処理装置は、
動画像データの各フレームの画像データを符号化する際、仮想バッファにおいてオーバフローが発生するか否かを判定する判定部と、
オーバフローが発生すると判定され、仮想バッファ位置に基づいて割り当てられた情報量が通知された場合に、認識対象情報を参照し、画像データに含まれる認識対象のうち、認識対象情報により指定された認識対象以外の認識対象の領域に対応する位置のブロックの量子化値を、前記情報量に基づいて、限界圧縮率に応じた量子化値よりも高い量子化値に変更する変更部とを有する。
【発明の効果】
【0008】
AIによる認識が可能な限界圧縮率を超えた圧縮率で符号化する場合において、認識精度の低下を抑えることができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、画像処理システムのシステム構成の一例を示す第1の図である。
【
図2】
図2は、画像処理装置及びサーバ装置のハードウェア構成の一例を示す図である。
【
図3】
図3は、画像処理装置の解析部の機能構成の一例を示す第1の図である。
【
図4】
図4は、CNN部及び重要特徴マップ生成部の処理の具体例を示す図である。
【
図5】
図5は、集計部の処理の具体例を示す図である。
【
図6】
図6は、量子化値マップ生成部の処理の具体例を示す図である。
【
図7】
図7は、画像処理装置のビットレート制御部の機能構成の一例を示す第1の図である。
【
図8】
図8は、画像処理装置による画像処理の流れを示す第1のフローチャートである。
【
図9】
図9は、画像処理装置の解析部の機能構成の一例を示す第2の図である。
【
図10】
図10は、CNN部及び信号強度算出部の処理の具体例を示す図である。
【
図11】
図11は、画像処理装置による画像処理の流れを示す第2のフローチャートである。
【
図12】
図12は、画像処理システムのシステム構成の一例を示す第2の図である。
【
図13】
図13は、画像処理装置の解析部の機能構成の一例を示す第3の図である。
【
図14】
図14は、画像処理装置のビットレート制御部の機能構成の一例を示す第2の図である。
【
図15】
図15は、画像処理装置による画像処理の流れを示す第3のフローチャートである。
【
図16】
図16は、画像処理装置の解析部の機能構成の一例を示す第4の図である。
【
図17】
図17は、画像処理装置による画像処理の流れを示す第4のフローチャートである。
【発明を実施するための形態】
【0010】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【0011】
[第1の実施形態]
<画像処理システムのシステム構成>
はじめに、第1の実施形態に係る画像処理装置を備える画像処理システム全体のシステム構成について説明する。
図1は、画像処理システムのシステム構成の一例を示す第1の図である。
図1に示すように、画像処理システム100は、撮像装置110、画像処理装置120、サーバ装置130を有する。画像処理システム100において、画像処理装置120とサーバ装置130とは、ネットワーク140を介して通信可能に接続される。
【0012】
撮像装置110は、所定のフレーム周期で撮影を行い、動画像データを画像処理装置120に送信する。なお、動画像データには、少なくとも認識処理の対象となる物体(認識対象)が含まれるフレームの画像データと、認識処理の対象となる物体(認識対象)が含まれない(認識対象以外の物体のみが含まれる)フレームの画像データとが含まれる。更には、動画像データには、いずれの物体も含まれないフレームの画像データが含まれていてもよい。
【0013】
画像処理装置120には画像処理プログラムがインストールされており、当該画像処理プログラムが実行されることで、画像処理装置120は、解析部121、符号化部122及びビットレート制御部123として機能する。
【0014】
解析部121は、認識処理を行う学習済みモデルを有する。解析部121は、動画像データの各フレームの画像データまたは復号データ(画像データに対して異なる量子化値(量子化ステップともいう)で符号化処理が行われた場合の符号化データを復号した復号データ)を、学習済みモデルに入力することで認識処理を行う。
【0015】
また、解析部121は、認識処理の際に、例えば、誤差逆伝播法を用いて学習済みモデルの動作解析を行うことで、認識結果への影響度を示すマップ(「重要特徴マップ」と称す)を生成し、所定領域ごとに影響度を集計する。なお、ここでいう所定領域とは、符号化処理が行われる際に用いられるブロックを指す。
【0016】
また、解析部121は、符号化部122に対して、所定数の異なる量子化値での符号化処理を指示し、それぞれの量子化値で画像データに対して符号化処理が行われた場合の符号化データを復号した各復号データについて、上記と同様の処理を繰り返す。なお、符号化部122に対して指示する、ブロックごとの量子化値の集合を、以下では、「量子化値マップ」と称す。
【0017】
つまり、解析部121では、量子化値マップを変更することで、学習済みモデルに入力する画像データの画質を変更しながら、変更後の各画像データについて、各ブロックの認識結果への影響度を集計する。
【0018】
また、解析部121は、量子化値マップを変更したことに伴う集計値の変化に基づいて、各ブロックの最適な量子化値を探索する。なお、最適な量子化値とは、所定数の異なる量子化値のうち、画像データに含まれる認識対象を正しく認識することが可能な限界圧縮率に応じた量子化値を指す。ブロックごとに算出される、限界圧縮率に応じた量子化値の集合を、本実施形態では「暫定量子化値マップ」と称す。
【0019】
また、解析部121は、暫定量子化値マップと、認識対象の領域を示す情報(「対象領域情報」)とを、ビットレート制御部123に通知する。なお、対象領域情報は、画像データに対して認識処理を行うことで学習済みモデルから出力される認識結果に基づいて算出される。
【0020】
符号化部122は、解析部121から指示された量子化値マップを用いて、動画像データの対応するフレームの画像データに対して符号化処理を行い、生成した符号化データを解析部121に戻す。
【0021】
また、符号化部122は、前回の処理対象のフレームの画像データに対して符号化処理を行った際に測定した、符号化データの情報量(実績情報量)を、ビットレート制御部123に通知する。更に、符号化部122は、実績情報量を通知したことに応じて、ビットレート制御部123から通知された決定量子化値マップを用いて、今回の処理対象のフレームの画像データに対して符号化処理を行い、符号化データをサーバ装置130に伝送する。
【0022】
ビットレート制御部123は、取得した実績情報量に基づいて、現在の仮想バッファの残量を示す「仮想バッファ位置」を算出する。また、ビットレート制御部123は、今回の処理対象のフレームの画像データに対して、暫定量子化値マップを用いて符号化処理を行った場合の、仮想バッファ位置の変化を予測する。
【0023】
また、ビットレート制御部123は、予測した変化後の仮想バッファ位置に基づいて、仮想バッファにてオーバフローが発生するか否かを判定する。オーバフローが発生しないと判定した場合、ビットレート制御部123では、暫定量子化値マップを決定量子化値マップとして、符号化部122に通知する。
【0024】
一方、オーバフローが発生すると判定した場合、ビットレート制御部123は、対象領域情報が示す認識対象のうち、予め指定された認識対象以外の認識対象を特定する。更に、ビットレート制御部123は、暫定量子化値マップのうち、特定した認識対象の領域に対応する位置のブロックの量子化値を、限界圧縮率に応じた量子化値よりも高い量子化値に変更する。そして、ビットレート制御部123では、量子化値を変更した変更後の暫定量子化値マップを、決定量子化値マップとして、符号化部122に通知する。
【0025】
このように、仮想バッファにてオーバフローが発生すると判定した場合、ビットレート制御部123では、暫定量子化値マップのうち、予め指定された認識対象以外の認識対象の領域については、限界圧縮率を超えた圧縮率で符号化処理を行う。これにより、仮想バッファでのオーバフローを回避しつつ、予め指定された認識対象については、認識精度を維持することができる。つまり、画像処理装置120によれば、AIによる認識が可能な限界圧縮率を超えた圧縮率で符号化する場合において、認識精度の低下を抑えることができる。
【0026】
サーバ装置130には、復号プログラムがインストールされており、当該復号プログラムが実行されることで、サーバ装置130は、復号部131として機能する。
【0027】
復号部131は、画像処理装置120から伝送された符号化データを復号し、復号データを生成する。復号部131は、生成した復号データを、復号データ格納部132に格納する。
【0028】
<画像処理装置及びサーバ装置のハードウェア構成>
次に、画像処理装置120及びサーバ装置130のハードウェア構成について説明する。
図2は、画像処理装置及びサーバ装置のハードウェア構成の一例を示す図である。
【0029】
このうち、
図2の2aは、画像処理装置のハードウェア構成の一例を示す図である。画像処理装置120は、プロセッサ201、メモリ202、補助記憶装置203、I/F(Interface)装置204、通信装置205、ドライブ装置206を有する。なお、画像処理装置120の各ハードウェアは、バス207を介して相互に接続されている。
【0030】
プロセッサ201は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)等の各種演算デバイスを有する。プロセッサ201は、各種プログラム(例えば、画像処理プログラム等)をメモリ202上に読み出して実行する。
【0031】
メモリ202は、ROM(Read Only Memory)、RAM(Random Access Memory)等の主記憶デバイスを有する。プロセッサ201とメモリ202とは、いわゆるコンピュータを形成し、プロセッサ201が、メモリ202上に読み出した各種プログラムを実行することで、当該コンピュータは各種機能を実現する。
【0032】
補助記憶装置203は、各種プログラムや、各種プログラムがプロセッサ201によって実行される際に用いられる各種データを格納する。
【0033】
I/F装置204は、外部装置の一例である撮像装置110と、画像処理装置120とを接続する接続デバイスである。
【0034】
通信装置205は、他の装置の一例であるサーバ装置130と通信するための通信デバイスである。
【0035】
ドライブ装置206は記録媒体210をセットするためのデバイスである。ここでいう記録媒体210には、CD-ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体210には、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
【0036】
なお、補助記憶装置203にインストールされる各種プログラムは、例えば、配布された記録媒体210がドライブ装置206にセットされ、該記録媒体210に記録された各種プログラムがドライブ装置206により読み出されることでインストールされる。あるいは、補助記憶装置203にインストールされる各種プログラムは、通信装置205を介してネットワークからダウンロードされることで、インストールされてもよい。
【0037】
一方、
図2の2bは、サーバ装置130のハードウェア構成の一例を示す図である。なお、サーバ装置130のハードウェア構成は、画像処理装置120のハードウェア構成と概ね同じであるため、ここでは、画像処理装置120との相違点を中心に説明する。
【0038】
プロセッサ221は、例えば、復号プログラム等をメモリ222上に読み出して実行する。補助記憶装置223は、例えば、復号データ格納部132を実現する。
【0039】
I/F装置224は、サーバ装置130に対する操作を、操作装置231を介して受け付ける。また、I/F装置224は、サーバ装置130による処理の結果を出力し、表示装置232を介して表示する。また、通信装置225は、画像処理装置120と通信する。
【0040】
<画像処理装置の解析部の機能構成>
次に、画像処理装置120の解析部121の機能構成について説明する。
図3は、画像処理装置の解析部の機能構成の一例を示す第1の図である。
図3に示すように、解析部121は、入力部/復号部310、CNN部320、重要特徴マップ生成部330、集計部340、量子化値マップ生成部350、出力部360を有する。
【0041】
入力部/復号部310は、撮像装置110より送信された動画像データの各フレームの画像データを取得し、CNN部320に通知する。また、入力部/復号部310は、符号化部122より通知された符号化データを取得し、復号したうえで、復号データをCNN部320に通知する。
【0042】
CNN部320は、認識処理を行う学習済みモデルを有する。CNN部320は、画像データまたは復号データを入力することで、学習済みモデルを実行させる。また、CNN部320は、画像データを入力することで、学習済みモデルより出力される認識結果を、重要特徴マップ生成部330及び量子化値マップ生成部350に通知する。
【0043】
また、CNN部320は、復号データを入力することで、学習済みモデルより出力される認識結果を、重要特徴マップ生成部330に通知する。
【0044】
重要特徴マップ生成部330は、学習済みモデルより出力される認識結果を取得する。また、重要特徴マップ生成部330は、取得した認識結果を用いて誤差逆伝播法による重要特徴マップを生成する。
【0045】
具体的には、重要特徴マップ生成部330は、画像データが入力されたことで取得した認識結果と、復号データが入力されたことで取得した認識結果との誤差を算出する。また、重要特徴マップ生成部330は、算出した誤差を逆伝播させることで、学習済みモデルの入力層より、誤差逆伝播結果を取得する。更に、重要特徴マップ生成部330は、取得した誤差逆伝播結果に基づく重要特徴マップを生成し、集計部340に通知する。
【0046】
なお、誤差逆伝播法による重要特徴マップの生成方法の詳細は、例えば、
「Selvaraju, Ramprasaath R., et al. "Grad-cam: Visual explanations from deep networks via gradient-based localization." The IEEE International Conference on Computer Vision (ICCV), 2017, pp. 618-626」、
等の文献に開示されている。
【0047】
集計部340は、通知された重要特徴マップに基づいて、各領域の認識結果への影響度をブロック単位で集計し、ブロックごとの影響度の集計値を算出する。また、集計部340は、算出した各ブロックの集計値を、符号化処理に用いた量子化値と対応付けて集計結果格納部370に格納する。
【0048】
量子化値マップ生成部350は、ブロックごとに量子化値を順次変更しながら、量子化値マップを生成し、出力部360に通知する。なお、量子化値を順次変更する際の変更範囲は予め定められているものとする。
【0049】
また、量子化値マップ生成部350は、集計結果格納部370に格納された集計結果に基づいて、ブロックごとに、限界圧縮率に応じた量子化値を探索することで暫定量子化値マップを生成し、出力部360に通知する。
【0050】
更に、量子化値マップ生成部350は、CNN部320より取得した認識結果に基づいて、認識対象の領域を示す情報(対象領域情報)を生成し、出力部360に通知する。
【0051】
出力部360は、量子化値マップ生成部350により生成された量子化値マップを、符号化部122に通知する。また、出力部360は、動画像データの対応するフレームの画像データを、符号化部122に通知する。更に、出力部360は、量子化値マップ生成部350により生成された暫定量子化値マップ及び対象領域情報を、ビットレート制御部123に通知する。
【0052】
<CNN部及び重要特徴マップ生成部の処理の具体例>
次に、解析部121を構成する各部のうち、CNN部320及び重要特徴マップ生成部330の処理の具体例について説明する。
図4は、CNN部及び重要特徴マップ生成部の処理の具体例を示す第1の図である。
【0053】
図4に示すように、CNN部320は、学習済みモデルとして、入力層、隠れ層、出力層を有し、入力層のレイヤ401に画像データが入力されると、画像データは各レイヤにて順伝播方向に処理される。これにより、出力層のレイヤ402からは、認識結果410が出力される(実線太矢印参照)。なお、
図4の例は、認識対象の一例である"人物"が3人含まれる画像データ430が入力された様子を示している。
【0054】
同様に、入力層のレイヤ401に復号データ1が入力されると、復号データ1は各レイヤにて順伝播方向に処理され、出力層のレイヤ402より、認識結果411が出力される(実線太矢印参照)。なお、復号データ1とは、画像データ430の各ブロックに対して、例えば、量子化値Q1の集合である量子化値マップを用いて符号化処理が行われた後、符号化データが、入力部/復号部310により復号されることで得られるデータを指す。
【0055】
同様に、入力層のレイヤ401に復号データ2が入力されると、復号データ2は、各レイヤにて順伝播方向に処理され、出力層のレイヤ402より、認識結果412が出力される(実線太矢印参照)。なお、復号データ2とは、画像データ430の各ブロックに対して、例えば、量子化値Q2の集合である量子化値マップを用いて符号化処理が行われた後、符号化データが、入力部/復号部310により復号されることで得られるデータを指す。
【0056】
以降、
図4においては記載を省略しているが、復号データ3、復号データ4、・・・等についても同様の処理が行われ、認識結果が出力される。
【0057】
また、
図4に示すように、重要特徴マップ生成部330は、
・画像データが順伝播方向に処理されることで出力された認識結果410と、
・各復号データ(復号データ1、2、・・・)が順伝播方向に処理されることで出力された各認識結果(認識結果411、412、・・・)と、
の間の各誤差(誤差1、2、・・・)を算出する。
【0058】
また、重要特徴マップ生成部330は、算出した各誤差(誤差1、2、・・・)を、出力層のレイヤ402から逆伝播させる。これにより、CNN部320の入力層のレイヤ401からは、誤差逆伝播結果として、各重要特徴マップ(重要特徴マップ421、422、・・・)が出力される(点線太矢印参照)。重要特徴マップ生成部330は、CNN部320より出力された各重要特徴マップ(重要特徴マップ421、422、・・・)を、集計部340に通知する。
【0059】
<集計部の処理の具体例>
次に、解析部121を構成する各部のうち、集計部340の処理の具体例について説明する。
図5は、集計部の処理の具体例を示す図である。このうち、5aは、画像データ510に対して符号化処理が行われる際に用いられるブロックの配置例を示している。5aに示すように、本実施形態では説明の簡略化のため、画像データ510内のブロックは全て同じ大きさであるとする。また、5aの例は、画像データ510の左上のブロックのブロック番号を"ブロック1"とし、右下のブロックのブロック番号を"ブロックm"としている。
【0060】
また、5bに示すように、集計部340により算出される集計結果520には、情報の項目として、"ブロック番号"、"量子化値"が含まれる。
【0061】
"ブロック番号"には、画像データ510内の各ブロックのブロック番号が格納される。"量子化値"には、符号化部122が符号化処理を行う際に設定可能な所定数の量子化値が格納される。
【0062】
なお、5bの例では、説明の簡略化のため、4種類の量子化値("Q1"から"Q4")のみを記載しているが、符号化部122による符号化処理では、4種類以上の量子化値が設定可能であるとする。
【0063】
また、集計結果520において、"ブロック番号"と"量子化値"とに対応付けられた欄には、
・対応する量子化値を用いて画像データ510に対して符号化処理を行い、
・復号データについて認識処理が行われた際に算出された重要特徴マップに基づいて、対応するブロックにおいて集計された、
"集計値"が格納される。
【0064】
<量子化値マップ生成部による処理の具体例>
次に、解析部121を構成する各部のうち、量子化値マップ生成部350の処理の具体例について説明する。
図6は、量子化値マップ生成部の処理の具体例を示す図である。
図6において、グラフ610_1~610_mは、横軸に量子化値、縦軸に集計値をとり、集計結果520に含まれる各ブロックの集計値をプロットすることで生成されるグラフである。
【0065】
グラフ610_1~610_mに示すように、それぞれの量子化値を用いて符号化処理を行った場合の集計値の変化は、ブロックごとに異なる。量子化値マップ生成部350では、例えば、
・集計値の大きさが所定の閾値を超えた場合、あるいは、
・集計値の変化量が所定の閾値を超えた場合、あるいは、
・集計値の傾きが所定の閾値を超えた場合、あるいは、
・集計値の傾きの変化が所定の閾値を超えた場合、
のいずれかの条件を満たす場合の量子化値を、各ブロックの限界圧縮率に応じた量子化値と判定する。
【0066】
図6の例は、量子化値マップ生成部350が、グラフ610_1に基づいて、限界圧縮率に応じた量子化値を"Q
3"と判定したことを示している。また、
図6の例は、量子化値マップ生成部350が、グラフ610_2に基づいて、限界圧縮率に応じた量子化値を"Q
1"と判定したことを示している。また、
図6の例は、量子化値マップ生成部350が、グラフ610_3に基づいて、限界圧縮率に応じた量子化値を"Q
2"と判定したことを示している。更に、
図6の例は、量子化値マップ生成部350が、グラフ610_mに基づいて、限界圧縮率に応じた量子化値を"Q
3"と判定したことを示している。
【0067】
図6の例は、画像データ510内のブロック1~ブロックmに、それぞれ、限界圧縮率に応じた量子化値が設定されることで、暫定量子化値マップが生成される様子を示している。
【0068】
<ビットレート制御部の機能構成>
次に、画像処理装置120のビットレート制御部123の機能構成について説明する。
図7は、画像処理装置のビットレート制御部の機能構成の一例を示す第1の図である。
図7に示すように、ビットレート制御部123は、情報量予測部710、仮想バッファ位置算出部720、オーバフロー判定部730、割当情報量算出部740、量子化値マップ決定部750を有する。
【0069】
このうち、情報量予測部710は、処理対象のフレームの画像データに対して、暫定量子化値マップを用いて符号化処理を行った場合の符号化データの情報量(予測情報量)を特定する。
【0070】
なお、
図7に示すように、情報量予測部710は、予め統計情報量760(それぞれの量子化値を用いて符号化処理を行った場合の符号化データの情報量の統計値を、予測情報量として格納したテーブル)を有している。このため、情報量予測部710は、統計情報量760を参照することで、予測情報量を特定する。
【0071】
また、情報量予測部710は、解析部121より通知された、暫定量子化値マップ及び対象領域情報を、量子化値マップ決定部750に通知する。なお、
図7において、符号770は、暫定量子化値マップ及び対象領域情報の具体例を表している。符号770において、各ブロック内の数値は、限界圧縮率に応じた量子化値を表している。また、符号770において、太線は、認識対象の領域に対応する位置のブロックの外縁(対象領域情報の一例)を表している。なお、符号770の例では、説明の便宜上、認識対象の一例である"人物"を重ねて表示している。
【0072】
仮想バッファ位置算出部720は、符号化部122より取得した実績情報量に基づいて、仮想バッファ位置を算出する。また、仮想バッファ位置算出部720は、仮想バッファ位置と、予測情報量とに基づいて、処理対象のフレームの画像データに対して、暫定量子化値マップを用いて符号化処理を行った場合の、仮想バッファ位置の変化を予測する。
【0073】
オーバフロー判定部730は判定部の一例であり、仮想バッファ位置算出部720により予測された、変化後の仮想バッファ位置の予測結果に基づいて、オーバフローが発生するか否かを判定する。また、オーバフロー判定部730は、オーバフローが発生しないと判定した場合には、判定結果を、量子化値マップ決定部750に通知する。一方、オーバフロー判定部730は、オーバフローが発生すると判定した場合には、判定結果を、割当情報量算出部740に通知する。
【0074】
割当情報量算出部740は、オーバフロー判定部730より、オーバフローが発生するとの判定結果が通知された場合、仮想バッファ位置算出部720により算出された仮想バッファ位置に基づいて、割り当て可能な符号化データの情報量を算出する。また、割当情報量算出部740は、割り当て可能な符号化データの情報量を、量子化値マップ決定部750に通知する。
【0075】
量子化値マップ決定部750は変更部の一例であり、決定量子化値マップを生成する。具体的には、量子化値マップ決定部750は、オーバフロー判定部730より、オーバフローが発生しないとの判定結果が通知された場合には、情報量予測部710より通知された暫定量子化値マップを、決定量子化値マップとして、符号化部122に通知する。
【0076】
一方、量子化値マップ決定部750は、割当情報量算出部740より、割り当て可能な符号化データの情報量が通知された場合には、「認識対象情報」を参照する。なお、認識対象情報には、仮想バッファにおいてオーバフローが発生する可能性が生じた場合に、優先的に認識されるべき認識対象が予め指定されているものとする。また、認識対象情報において、優先的に認識されるべき認識対象の指定方法は任意であり、例えば、認識対象の属性、サイズ、位置等により指定されているものとする。
【0077】
そして、量子化値マップ決定部750では、画像データに含まれる複数の認識対象(具体的には、情報量予測部710から通知された対象領域情報に含まれる複数の認識対象)のうち、認識対象情報により指定された認識対象以外の認識対象を特定する。また、量子化値マップ決定部750は、情報量予測部710から通知された暫定量子化値マップのうち、特定した認識対象の領域に対応する位置のブロックの量子化値を限界圧縮率に応じた量子化値よりも高い量子化値に変更する。
【0078】
このとき、量子化値マップ決定部750では、割当情報量算出部740より通知された、割り当て可能な符号化データの情報量に基づいて、量子化値の変更幅を決定する。更に、量子化値マップ決定部750では、量子化値を変更した変更後の暫定量子化値マップを、決定量子化値マップとして、符号化部122に通知する。
【0079】
なお、
図7において、符号780は、量子化値を変更した変更後の暫定量子化値マップの一例を示している。符号780の例は、認識対象781~783のうち、認識対象情報において指定された認識対象781以外の認識対象782、783の領域に対応する位置のブロックの量子化値を、限界圧縮率に応じた量子化値よりも高い量子化値に変更したことを示している。
【0080】
<画像処理の流れ>
次に、画像処理装置120による画像処理の流れについて説明する。
図8は、画像処理装置による画像処理の流れを示す第1のフローチャートである。
【0081】
ステップS801において、解析部121は、量子化値を初期化して、デフォルトの量子化値マップを生成する。
【0082】
ステップS802において、解析部121は、画像データまたは符号化データを取得する。また、解析部121は、符号化データを取得した場合にあっては、符号化データを復号し、復号データを生成する。
【0083】
ステップS803において、解析部121は、画像データまたは復号データに対して認識処理を行い、認識結果を出力するとともに対象領域情報を算出する。また、解析部121は、画像データに対して認識処理が行われることで出力された認識結果と、復号データに対して認識処理が行われることで出力された認識結果との間の誤差を算出する。
【0084】
ステップS804において、解析部121は、算出した誤差を逆伝播させることで重要特徴マップを生成する。
【0085】
ステップS805において、解析部121は、生成した重要特徴マップをブロック単位で集計し、集計結果格納部370に格納する。
【0086】
ステップS806において、解析部121は、符号化部122に設定可能な所定数の量子化値全てについて解析を行ったか否かを判定する。ステップS806において、解析を行っていない量子化値があると判定した場合には(ステップS806においてNOの場合には)、ステップS807に進む。
【0087】
ステップS807において、解析部121は、量子化値を上げて、量子化値マップを変更する。また、符号化部122は、変更された量子化値マップを用いて、画像データに対して符号化処理を行い、符号化データを生成する。その後、ステップS802に戻る。
【0088】
一方、ステップS806において、全ての量子化値について解析を行ったと判定した場合には(ステップS806においてYESの場合には)、ステップS808に進む。
【0089】
ステップS808において、解析部121は、ブロックごとに、限界圧縮率に応じた量子化値を探索し、暫定量子化値マップを生成する。解析部121は、生成した暫定量子化値マップを、対象領域情報とともに、ビットレート制御部123に通知する。
【0090】
ステップS809において、ビットレート制御部123は、実績情報量を取得し、仮想バッファ位置を算出する。
【0091】
ステップS810において、ビットレート制御部123は、処理対象のフレームの画像データに対して、暫定量子化値マップを用いて符号化処理を行った場合に、オーバフローが発生するか否かを判定する。
【0092】
ステップS810においてオーバフローが発生すると判定した場合には(ステップS810においてYESの場合には)、ステップS811に進む。ステップS811において、ビットレート制御部123は、割当情報量を算出する。
【0093】
ステップS812において、ビットレート制御部123は、認識対象情報を参照し、対象領域情報が示す認識対象のうち、認識対象情報により予め指定された認識対象以外の認識対象を特定する。また、ビットレート制御部123は、暫定量子化値マップにおいて、特定した認識対象の領域に対応する位置のブロックの量子化値を、割り当て情報量に基づく変更幅分、変更し、決定量子化値マップを生成する。更に、ビットレート制御部123は、生成した決定量子化値マップを、符号化部122に通知する。
【0094】
一方、ステップS810においてオーバフローが発生しないと判定した場合には(ステップS810においてNOの場合には)、ステップS813に進む。
【0095】
ステップS813において、ビットレート制御部123は、暫定量子化値マップを決定量子化値マップとして、符号化部122に通知する。
【0096】
ステップS814において、符号化部122は、通知された決定量子化値マップを用いて、処理対象のフレームの画像データに対して符号化処理を行い、符号化データを生成する。
【0097】
ステップS815において、符号化部122は、生成した符号化データをサーバ装置130に伝送する。
【0098】
ステップS816において、解析部121は、画像処理を終了するか否かを判定する。ステップS816において、画像処理を終了しないと判定した場合には(ステップS816においてNOの場合には)、ステップS801に戻る。この場合、解析部121は、動画像データにおける次のフレームの画像データを取得する前に、量子化値を初期化して、デフォルトの量子化値マップを生成する。
【0099】
一方、ステップS816において、画像処理を終了すると判定した場合には(ステップS816においてYESの場合には)、画像処理を終了する。
【0100】
以上の説明から明らかなように、第1の実施形態に係る画像処理装置120は、動画像データの処理対象のフレームの画像データに対して符号化処理を行う際、仮想バッファにおいてオーバフローが発生するか否かを判定する。また、第1の実施形態に係る画像処理装置120は、オーバフローが発生すると判定された場合に、認識対象情報を参照する。更に、第1の実施形態に係る画像処理装置120は、画像データに含まれる認識対象のうち、認識対象情報により予め指定された認識対象以外の認識対象の領域に対応する位置のブロックの量子化値を、限界圧縮率に応じた量子化値よりも高い量子化値に変更する。
【0101】
このように、第1の実施形態では、仮想バッファにてオーバフローが発生すると判定された場合、指定された認識対象以外の認識対象の領域については、限界圧縮率を超えた圧縮率で符号化処理を行う。
【0102】
これにより、第1の実施形態によれば、仮想バッファでのオーバフローを回避しつつ、予め指定された認識対象については、認識精度を維持することができる。つまり、第1の実施形態によれば、AIによる認識が可能な限界圧縮率を超えた圧縮率で符号化する場合において、認識精度の低下を抑えることができる。
【0103】
[第2の実施形態]
上記第1の実施形態では、暫定量子化値マップを生成する際、認識結果の誤差を逆伝播させることで、重要特徴マップを生成し、生成した重要特徴マップをブロック単位で集計することで、各ブロックについて、限界圧縮率に応じた量子化値を判定した。
【0104】
これに対して、第2の実施形態では、暫定量子化値マップを生成する際、認識処理において隠れ層のレイヤから出力される特徴マップの各領域の信号強度を、ブロック単位で集計することで、各ブロックについて、限界圧縮率に応じた量子化値を判定する。
【0105】
以下、第2の実施形態について、上記第1の実施形態との相違点を中心に説明する。
【0106】
<画像処理装置の解析部の機能構成>
はじめに、第2の実施形態に係る画像処理装置120の解析部の機能構成について説明する。
図9は、画像処理装置の解析部の機能構成の一例を示す第2の図である。
図9に示すように、解析部900は、入力部/復号部310、CNN部910、信号強度算出部920、量子化値マップ生成部930、出力部360を有する。
【0107】
このうち、入力部/復号部310、出力部360は、
図3の入力部/復号部310、出力部360と同様の機能を有するため、ここでは、説明を省略する。
【0108】
CNN部910は、認識処理を行う学習済みモデルを有する。CNN部910は、画像データまたは復号データを入力することで、学習済みモデルを実行させる。また、CNN部910は、画像データを入力することで、学習済みモデルより出力される認識結果を、量子化値マップ生成部930に通知する。更に、CNN部910は、学習済みモデルの実行時に隠れ層のレイヤから、特徴マップを出力する。
【0109】
信号強度算出部920は、CNN部910より出力される特徴マップを取得し、取得した特徴マップの信号強度を、ブロック単位で集計することで、画像データの各ブロックの認識結果への影響度を算出し、信号強度格納部940に格納する。なお、信号強度算出部920は、特徴マップの信号強度をブロック単位で集計するにあたり、指定された2つの特徴マップについて誤差を算出し、算出した誤差を逆伝播させることで、学習済みモデルの入力層より、誤差逆伝播結果を取得する。そして、信号強度算出部920は、取得した"誤差逆伝播結果"と"特徴マップ間の誤差"との対応関係から、特徴マップの各領域と、画像データの各ブロックとの位置関係を特定するブロックマップを生成する。
【0110】
信号強度算出部920では、生成したブロックマップを用いて、特徴マップの信号強度をブロック単位で集計することで、画像データの各ブロックの認識結果への影響度を算出する。
【0111】
量子化値マップ生成部930は、ブロックごとに量子化値を順次変更しながら、量子化値マップを生成し、出力部360に通知する。また、量子化値マップ生成部930は、信号強度格納部940に格納された信号強度の集計結果に基づいて、ブロックごとに、限界圧縮率に応じた量子化値を探索することで、暫定量子化値マップを生成する。また、量子化値マップ生成部930は、生成した暫定量子化値マップを、出力部360に通知する。
【0112】
更に、量子化値マップ生成部930は、CNN部910より取得した認識結果に基づいて、対象領域情報を生成し、出力部360に通知する。
【0113】
<CNN部及び信号強度算出部の処理の具体例>
次に、解析部900を構成する各部のうち、CNN部910及び信号強度算出部920の処理の具体例について説明する。
図10は、CNN部及び信号強度算出部の処理の具体例を示す図である。
【0114】
図10に示すように、CNN部910は、学習済みモデルとして、入力層、隠れ層、出力層を有する。CNN部910の入力層のレイヤ1001に画像データが入力されると、画像データは各レイヤにて順伝播方向に処理され、隠れ層のレイヤ1002より、特徴マップ1000(第1の特徴マップの一例)が出力される(実線太矢印参照)。なお、
図10の例は、認識対象の一例である"人物"が3人含まれる画像データ1050が入力された様子を示している。
【0115】
同様に、入力層のレイヤ1001に復号データ1が入力されると、復号データ1は各レイヤにて順伝播方向に処理され、隠れ層のレイヤ1002より、特徴マップ1010(第2の特徴マップの一例)が出力される(実線太矢印参照)。なお、復号データ1とは、画像データ1050の各ブロックに対して、例えば、量子化値Q1の集合である量子化値マップを用いて符号化処理が行われた後、符号化データが、入力部/復号部310により復号されることで得られるデータを指す。
【0116】
同様に、入力層のレイヤ1001に復号データ2が入力されると、復号データ2は各レイヤにて順伝播方向に処理され、隠れ層のレイヤ1002より、特徴マップ1020(第2の特徴マップの他の一例)が出力される(実線太矢印参照)。なお、復号データ2とは、画像データ1050の各ブロックに対して、例えば、量子化値Q2の集合である量子化値マップを用いて符号化処理が行われた後、符号化データが、入力部/復号部310により復号されることで得られるデータを指す。
【0117】
以降、
図10においては記載を省略しているが、復号データ3、復号データ4、・・・等についても同様に処理され、特徴マップが出力される。
【0118】
ここで、信号強度算出部920では、特徴マップ1000と特徴マップ1010との誤差を算出し、算出した誤差を、隠れ層のレイヤ1002から逆伝播させる。これにより、CNN部910の入力層のレイヤ1001からは、誤差逆伝播結果が出力される。
【0119】
信号強度算出部920では、
・入力層のレイヤ1001から出力された誤差逆伝播結果と、
・特徴マップ1000と特徴マップ1010との間の誤差と
の対応関係から、隠れ層のレイヤ1002から出力される特徴マップ(特徴マップ1000、1010、1020、・・・)の各領域の信号強度が、画像データの各ブロックのいずれのブロックに対応するかの位置関係を特定するブロックマップ1030を生成する。
【0120】
また、信号強度算出部920では、隠れ層のレイヤ1002から出力される各特徴マップの信号強度を、ブロックマップ1030に基づいて、ブロック単位で集計し、ブロックごとの信号強度の変化を示すグラフ1040を生成する。グラフ1040は、横軸に量子化値、縦軸に信号強度をとったグラフであり、信号強度が大きいほど、認識結果への影響度が高いことを示す。信号強度算出部920では、生成したグラフ1040を、信号強度格納部940に格納する。
【0121】
これにより、量子化値マップ生成部930では、例えば、
・信号強度の大きさが所定の閾値を下回った場合、あるいは、
・信号強度の変化量が所定の閾値を超えた場合、あるいは、
・信号強度の傾きが所定の閾値を超えた場合、あるいは、
・信号強度の傾きの変化が所定の閾値を超えた場合、
のいずれかの条件を満たす場合の量子化値を、各ブロックの限界圧縮率に応じた量子化値と判定する。
【0122】
<画像処理の流れ>
次に、画像処理装置120による画像処理の流れについて説明する。
図11は、画像処理装置による画像処理の流れを示す第2のフローチャートである。
図8を用いて説明した第1のフローチャートとの相違点は、ステップS1101~S1103である。
【0123】
ステップS1101において、解析部900は、画像データまたは復号データを、所定の処理範囲まで、順伝播方向に処理し、隠れ層のレイヤより特徴マップを出力する。
【0124】
ステップS1102において、解析部900は、処理中の画像データまたは復号データが誤差逆伝播する対象(例えば、画像データ、復号データ1)であった場合には、特徴マップの誤差を算出し、算出した誤差を入力層まで逆伝播させる。また、解析部900は、入力層より出力される誤差逆伝播結果を用いて、ブロックマップを生成する。
【0125】
ステップS1103において、解析部900は、生成したブロックマップを用いて、ステップS1101において出力された特徴マップの各領域の信号強度を、ブロック単位で集計する。
【0126】
以上の説明から明らかなように、第2の実施形態に係る画像処理装置120は、隠れ層のレイヤより出力される特徴マップの各領域の信号強度を、ブロック単位で集計することで、各ブロックについて、限界圧縮率に応じた量子化値を判定する。
【0127】
これにより、第2の実施形態によれば、上記第1の実施形態と同様の効果を享受することができる。
【0128】
[第3の実施形態]
上記第1及び第2の実施形態では、暫定量子化値マップを生成した後に、仮想バッファにてオーバフローが発生するか否かを判定し、オーバフローが発生すると判定した場合に、暫定量子化値マップの量子化値を変更するケースについて説明した。
【0129】
これに対して、第3の実施形態では、はじめに、仮想バッファにてオーバフローが発生するか否かを判定し、オーバフローが発生すると判定した場合に、重要特徴マップを修正することで、量子化値を変更するケースについて説明する。以下、第3の実施形態について上記第1及び第2の実施形態との相違点を中心に説明する。
【0130】
<画像処理システムのシステム構成>
はじめに、第3の実施形態に係る画像処理装置を備える画像処理システム全体のシステム構成について説明する。
図12は、画像処理システムのシステム構成の一例を示す第2の図である。
図1の画像処理システム100との相違点は、
図12の画像処理システム100の場合、画像処理装置120が実現する解析部1210、ビットレート制御部1220の機能が、
図1の解析部121、ビットレート制御部123の機能とは異なる点である。そこで、以下では、解析部1210とビットレート制御部1220の機能について説明する。
【0131】
解析部1210は変更部の他の一例であり、認識処理を行う学習済みモデルを有する。解析部1210は、動画像データの各フレームの画像データまたは復号データを、学習済みモデルに入力することで認識処理を行う。
【0132】
また、解析部1210は、認識処理の際に、例えば、誤差逆伝播法を用いて学習済みモデルの動作解析を行うことで、重要特徴マップを生成する。その際、解析部1210では、ビットレート制御部1220から、オーバフロー予測情報が通知されているか否かを判定する。
【0133】
オーバフロー予測情報が通知されていないと判定した場合、解析部1210では、生成した重要特徴マップについて、ブロック単位で影響度を集計する。
【0134】
一方、オーバフロー予測情報が通知されていると判定した場合、解析部1210では、認識対象情報を参照し、画像データに含まれる認識対象のうち、認識対象情報により予め指定された認識対象以外の認識対象を特定する。また、解析部1210では、重要特徴マップに対して、特定した認識対象の領域に対応する位置の影響度を無効化する修正を行う。そして、解析部1210では、影響度を無効化する修正を行った修正後の重要特徴マップについて、ブロック単位で影響度を集計する。
【0135】
また、解析部1210は、符号化部122に対して、所定数の異なる量子化値での符号化処理を指示し、それぞれの量子化値で画像データに対して符号化処理が行われた場合の符号化データを復号した各復号データについて、上記と同様の処理を繰り返す。
【0136】
つまり、解析部1210では、量子化値マップを変更することで、学習済みモデルに入力する画像データの画質を変更しながら、変更後の各画像データについて、各ブロックの認識結果への影響度を集計する。その際、オーバフロー予測情報が通知されているか否かを判定し、通知されている場合には影響度を無効化する修正を行う。
【0137】
また、解析部1210は、量子化値マップを変更したことに伴う集計値の変化に基づいて、ブロックごとに、限界圧縮率に応じた量子化値を探索することで、決定量子化値マップを生成する。更に、解析部121は、生成した決定量子化値マップを、符号化部122に通知する。
【0138】
ビットレート制御部1220は判定部の他の一例であり、実績情報量に基づいて、仮想バッファ位置を算出する。また、ビットレート制御部1220は、算出した仮想バッファ位置が所定の閾値を超えているか否かを判定し、超えていると判定した場合、オーバフロー予測情報を、解析部1210に通知する。
【0139】
<画像処理装置の解析部の機能構成>
次に、画像処理装置120の解析部1210の機能構成について説明する。
図13は、画像処理装置の解析部の機能構成の一例を示す第3の図である。
図13に示すように、解析部1210は、入力部/復号部310、CNN部320、重要特徴マップ生成部1310、集計部340、量子化値マップ生成部1320、出力部1330を有する。
【0140】
このうち、入力部/復号部310、CNN部320、集計部340は、
図3の入力部/復号部310、CNN部320、集計部340と同様の機能を有するため、ここでは、説明を省略する。
【0141】
重要特徴マップ生成部1310は、CNN部320の学習済みモデルより出力される認識結果を取得する。また、重要特徴マップ生成部1310は、取得した認識結果を用いて誤差逆伝播法による重要特徴マップを生成する。
【0142】
具体的には、重要特徴マップ生成部330は、画像データが入力されたことで取得した認識結果と、復号データが入力されたことで取得した認識結果との誤差を算出する。また、重要特徴マップ生成部1310は、算出した誤差を逆伝播させることで、学習済みモデルの入力層より、誤差逆伝播結果を取得する。更に、重要特徴マップ生成部330は、取得した誤差逆伝播結果に基づく重要特徴マップを生成する。
【0143】
このとき、重要特徴マップ生成部1310では、ビットレート制御部1220より、オーバフロー予測情報が通知されているか否かを判定する。オーバフロー予測情報が通知されていないと判定した場合、重要特徴マップ生成部1310は、生成した重要特徴マップを集計部340に通知する。
【0144】
一方、ビットレート制御部1220よりオーバフロー予測情報が通知されていると判定した場合、重要特徴マップ生成部1310は、認識対象情報を参照する。そして、重要特徴マップ生成部1310は、生成した重要特徴マップのうち、認識対象情報により指定された認識対象以外の認識対象の領域に対応する位置の影響度を無効化するよう、重要特徴マップの修正を行う。更に、重要特徴マップ生成部1310は、影響度を無効化する修正を行った修正後の重要特徴マップを、集計部340に通知する。
【0145】
このように、オーバフロー予測情報が通知されていると判定した場合、重要特徴マップ生成部1310では、重要特徴マップにおいて、予め指定された認識対象以外の認識対象の領域に対応する位置の影響度を無効化する。これにより、当該領域については、結果的に、無効化しないで影響度を集計した場合の集計結果に基づいて判定されるであろう圧縮率(限界圧縮率)を超えた圧縮率で、符号化処理が行われることになる。この結果、仮想バッファでのオーバフローを回避しつつ、予め指定された認識対象については、認識精度を維持することができる。つまり、AIによる認識が可能な限界圧縮率を超えた圧縮率で符号化する場合において、認識精度の低下を抑えることができる。
【0146】
量子化値マップ生成部1320は、ブロックごとに量子化値を順次変更しながら、量子化値マップを生成し、出力部1330に通知する。また、量子化値マップ生成部1320は、集計結果格納部370に格納された集計結果に基づいて、ブロックごとに、限界圧縮率に応じた量子化値を探索することで、決定量子化値マップを生成し、出力部1330に通知する。
【0147】
出力部1330は、量子化値マップ生成部1320により生成された量子化値マップを、符号化部122に通知する。また、出力部1330は、量子化値マップ生成部1320により生成された決定量子化値マップを、符号化部122に通知する。更に、出力部1330は、動画像データの対応するフレームの画像データを、符号化部122に通知する。
【0148】
なお、
図13において、符号1340は、オーバフロー予測情報が通知されていると判定した場合の決定量子化値マップの一例を示している。符号1340の例では、認識対象1341~1343のうち、認識対象情報において指定された認識対象1341以外の認識対象1342、1343の領域に対応する位置のブロックの量子化値が最大になっている。
【0149】
<ビットレート制御部の機能構成>
次に、画像処理装置120のビットレート制御部1220の機能構成について説明する。
図14は、画像処理装置のビットレート制御部の機能構成の一例を示す第2の図である。
図14に示すように、ビットレート制御部1220は、仮想バッファ位置算出部1401、オーバフロー判定部1402を有する。
【0150】
仮想バッファ位置算出部1401は、符号化部122より取得した実績情報量に基づいて、仮想バッファ位置を算出する。また、仮想バッファ位置算出部1401は、算出した仮想バッファ位置を、オーバフロー判定部1402に通知する。
【0151】
オーバフロー判定部1402は、仮想バッファ位置算出部1401より通知された仮想バッファ位置が所定の閾値以上であるか否かを判定する。オーバフロー判定部1402は、仮想バッファ位置が所定の閾値未満であると判定した場合には、オーバフローが発生する可能性が低いと判定する。一方、オーバフロー判定部1402は、仮想バッファ位置が所定の閾値以上であると判定した場合には、オーバフローが発生する可能性が高いと判定し、オーバフロー予測情報を、解析部1210に通知する。
【0152】
<画像処理の流れ>
次に、画像処理装置120による画像処理の流れについて説明する。
図15は、画像処理装置による画像処理の流れを示す第3のフローチャートである。
【0153】
ステップS1501において、解析部1210は、量子化値を初期化して、デフォルトの量子化値マップを生成する。
【0154】
ステップS1502において、解析部1210は、画像データまたは符号化データを取得する。また、解析部1210は、符号化データを取得した場合にあっては、符号化データを復号し、復号データを生成する。
【0155】
ステップS1503において、解析部1210は、画像データまたは復号データに対して認識処理を行い、認識結果を出力する。また、解析部1210は、画像データに対して認識処理が行われることで出力された認識結果と、復号データに対して認識処理が行われることで出力された認識結果との間の誤差を算出する。
【0156】
ステップS1504において、解析部1210は、算出した誤差を逆伝播させることで重要特徴マップを生成する。
【0157】
ステップS1505において、解析部1210は、ビットレート制御部1220より、オーバフロー予測情報が通知されているか否かを判定する。ステップS1505において、オーバフロー予測情報が通知されていると判定した場合には(ステップS1505においてYESの場合には)、ステップS1506に進む。
【0158】
ステップS1506において、解析部1210は、認識対象情報を参照し、画像データに含まれる認識対象のうち、認識対象情報により予め指定された認識対象以外の認識対象を特定する。また、解析部1210は、重要特徴マップにおいて、特定した認識対象の領域に対応する位置の影響度を無効化する修正を行い、修正後の重要特徴マップを生成した後、ステップS1507に進む。
【0159】
一方、ステップS1505において、オーバフロー予測情報が通知されていないと判定した場合には(ステップS1505においてNOの場合には)、直接、ステップS1507に進む。
【0160】
ステップS1507において、解析部1210は、ステップS1504において生成した重要特徴マップ、または、ステップS1506において修正した修正後の重要特徴マップのいずれかについて、ブロック単位で影響度を集計する。
【0161】
ステップS1508において、解析部1210は、符号化部122に設定可能な所定数量子化値全てについて解析を行ったか否かを判定する。ステップS1508において、解析を行っていない量子化値があると判定した場合には(ステップS1508においてNOの場合には)、ステップS1509に進む。
【0162】
ステップS1509において、解析部1210は、量子化値を上げて、量子化値マップを変更する。また、符号化部122は、変更された量子化値マップを用いて、画像データに対して符号化処理を行い、符号化データを生成する。その後、ステップS1502に戻る。
【0163】
一方、ステップS1508において、全ての量子化値について解析を行ったと判定した場合には(ステップS1508においてYESの場合には)、ステップS1510に進む。
【0164】
ステップS1510において、解析部1210は、ブロックごとに、限界圧縮率に応じた量子化値を探索し、決定量子化値マップを生成する。解析部1210は、生成した決定量子化値マップを、符号化部122に通知する。
【0165】
ステップS1511において、符号化部122は、通知された決定量子化値マップを用いて、処理対象のフレームの画像データに対して符号化処理を行い、符号化データを生成する。
【0166】
ステップS1512において、符号化部122は、生成した符号化データをサーバ装置130に伝送する。
【0167】
ステップS1513において、解析部1210は、画像処理を終了するか否かを判定する。ステップS1513において、画像処理を終了しないと判定した場合には(ステップS1513においてNOの場合には)、ステップS1501に戻る。この場合、解析部1210は、動画像データにおける次のフレームの画像データを取得する前に、量子化値を初期化して、デフォルトの量子化値マップを生成する。
【0168】
一方、ステップS1513において、画像処理を終了すると判定した場合には(ステップS1513においてYESの場合には)、画像処理を終了する。
【0169】
以上の説明から明らかなように、第3の実施形態に係る画像処理装置120は、動画像データの処理対象のフレームの画像データに対して符号化処理を行う際、仮想バッファにおいてオーバフローが発生するか否かを判定する。また、第3の実施形態に係る画像処理装置120は、オーバフローが発生すると判定した場合に、認識対象情報を参照する。更に、第3の実施形態に係る画像処理装置120は、画像データに含まれる認識対象のうち、認識対象情報により予め指定された認識対象以外の認識対象の領域に対応する位置の影響度を無効化することで、重要特徴マップを修正する。
【0170】
これにより、第3の実施形態では、仮想バッファにてオーバフローが発生すると判定された場合、指定された認識対象以外の認識対象の領域については、限界圧縮率を超えた圧縮率で符号化処理が行われることになる。
【0171】
この結果、第3の実施形態によれば、仮想バッファでのオーバフローを回避しつつ、予め指定された認識対象については、認識精度を維持することができる。つまり、第3の実施形態によれば、AIによる認識が可能な限界圧縮率を超えた圧縮率で符号化する場合において、認識精度の低下を抑えることができる。
【0172】
[第4の実施形態]
上記第3の実施形態では、仮想バッファにてオーバフローが発生すると判定した場合に、重要特徴マップを修正するケースを説明した。
【0173】
これに対して、第4の実施形態では、仮想バッファにてオーバフローが発生すると判定した場合に、特徴マップの各領域の信号強度についてのブロックごとの集計結果を修正するケースを説明する。
【0174】
以下、第4の実施形態について、上記第2または第3の実施形態との相違点を中心に説明する。
【0175】
<画像処理装置の解析部の機能構成>
はじめに、第4の実施形態に係る画像処理装置120の解析部1210の機能構成について説明する。
図16は、画像処理装置の解析部の機能構成の一例を示す第4の図である。
図16に示すように、解析部1210は、入力部/復号部310、CNN部910、信号強度算出部1610、量子化値マップ生成部1620、出力部1630を有する。
【0176】
このうち、入力部/復号部310、CNN部910は、
図3の入力部/復号部310、
図9のCNN部910と同様の機能を有するため、ここでは、説明を省略する。
【0177】
信号強度算出部1610は、CNN部910より出力される特徴マップを取得し、取得した特徴マップの信号強度を、ブロック単位で集計することで、画像データの各ブロックの認識結果への影響度を算出する。その際、信号強度算出部1610では、ビットレート制御部1220から、オーバフロー予測情報が通知されているか否かを判定する。
【0178】
オーバフロー予測情報が通知されていないと判定した場合、信号強度算出部1610では、ブロック単位で集計した信号強度を、信号強度格納部940に格納する。
【0179】
一方、オーバフロー予測情報が通知されていると判定した場合、信号強度算出部1610では、認識対象情報を参照し、画像データに含まれる認識対象のうち、認識対象情報により予め指定された認識対象以外の認識対象を特定する。また、信号強度算出部1610では、ブロック単位で集計した信号強度のうち、特定した認識対象の領域に対応する位置のブロックの信号強度を無効化する修正を行う。そして、信号強度算出部1610では、信号強度を無効化する修正を行った修正後の各ブロックの信号強度を、信号強度格納部940に格納する。
【0180】
量子化値マップ生成部1620は、ブロックごとに量子化値を順次変更しながら、量子化値マップを生成し、出力部1630に通知する。また、量子化値マップ生成部1620は、信号強度格納部940に格納された信号強度の集計結果に基づいて、ブロックごとに、限界圧縮率に応じた量子化値を探索することで、決定量子化値マップを生成する。また、量子化値マップ生成部1620は、生成した決定量子化値マップを、出力部1630に通知する。
【0181】
出力部1630は、量子化値マップ生成部1620により生成された量子化値マップを、符号化部122に通知する。また、出力部1630は、量子化値マップ生成部1620により生成された決定量子化値マップを、符号化部122に通知する。更に、出力部1630は、動画像データの対応するフレームの画像データを、符号化部122に通知する。
【0182】
なお、
図16において、符号1640は、オーバフロー予測情報が通知されていると判定した場合の決定量子化値マップの一例を示している。符号1640の例では、認識対象1641~1643のうち、認識対象情報において指定された認識対象1641以外の認識対象1642、1643の領域に対応する位置のブロックの量子化値が最大になっている。
【0183】
<画像処理の流れ>
次に、画像処理装置120による画像処理の流れについて説明する。
図17は、画像処理装置による画像処理の流れを示す第4のフローチャートである。
図15を用いて説明した第3のフローチャートとの相違点は、ステップS1701~S1703、S1704である。
【0184】
ステップS1701において、解析部1210は、画像データまたは復号データを、所定の処理範囲まで、順伝播方向に処理し、隠れ層のレイヤより特徴マップを出力する。
【0185】
ステップS1702において、解析部1210は、処理中の画像データまたは復号データが誤差逆伝播する対象(例えば、画像データ、復号データ1)であった場合には、特徴マップの誤差を算出し、算出した誤差を入力層まで逆伝播させる。また、解析部1210は、入力層より出力される誤差逆伝播結果を用いて、ブロックマップを生成する。
【0186】
ステップS1703において、解析部1210は、生成したブロックマップを用いて、ステップS1701において出力された特徴マップの各領域の信号強度を、ブロック単位で集計する。
【0187】
ステップS1704において、解析部1210は、認識対象情報を参照し、画像データに含まれる認識対象のうち、認識対象情報により予め指定された認識対象以外の認識対象を特定する。また、解析部1210は、ブロック単位で集計した信号強度のうち、特定した認識対象の領域に対応する位置のブロックの信号強度の集計結果を無効化する修正を行う。
【0188】
以上の説明から明らかなように、第4の実施形態に係る画像処理装置120は、仮想バッファにてオーバフローが発生すると判定した場合に、特徴マップの各領域の信号強度についてのブロックごとの集計結果を修正する。
【0189】
これにより、第4の実施形態によれば、上記第3の実施形態と同様の効果を享受することができる。
【0190】
[第5の実施形態]
上記各実施形態では、認識対象情報が固定であるとして説明した。しかしながら、認識対象情報は可変であってもよく、例えば、フレーム単位で切り替えてもよい。具体的には、複数のフレームにわたって、例えば、3つの認識対象として、第1乃至第3の認識対象が含まれていたとする。この場合、第1のフレームの画像データに対して符号化処理を行う際には、認識対象情報として、第1の認識対象を指定し、第2のフレームの画像データに対して符号化処理を行う際には、認識対象として、第2の認識対象を指定する。更に、第3のフレームの画像データに対して符号化処理を行う際には、認識対象情報として、第3の認識対象を指定する。
【0191】
このように、認識対象情報において指定する認識対象を、順番に変更することで、第1乃至第3の認識対象は、それぞれ、3フレームに1回の割合で認識されることになる。この場合、例えば、第1の認識対象が認識された第1のフレームの画像データと、次に、第1の認識対象が認識される第4のフレームの画像データとを用いて、第2及び第3のフレームの画像データにおいて、第1の認識対象を補完することが可能になる。
【0192】
また、上記各実施形態では、紙面の都合上、CNN部に含まれるレイヤの数を5個としたが、CNN部に含まれるレイヤの数は、5個以上であってもよい。
【0193】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【0194】
100 :画像処理システム
110 :撮像装置
120 :画像処理装置
121 :解析部
122 :符号化部
123 :ビットレート制御部
130 :サーバ装置
131 :復号部
310 :入力部/復号部
320 :CNN部
330 :重要特徴マップ生成部
340 :集計部
350 :量子化値マップ生成部
360 :出力部
710 :情報量予測部
720 :仮想バッファ位置算出部
730 :オーバフロー判定部
740 :割当情報量算出部
750 :量子化値マップ決定部
900 :解析部
910 :CNN部
920 :信号強度算出部
930 :量子化値マップ生成部
1210 :解析部
1220 :ビットレート制御部
1310 :重要特徴マップ生成部
1320 :量子化値マップ生成部
1330 :出力部
1401 :仮想バッファ位置算出部
1402 :オーバフロー判定部
1610 :信号強度算出部
1620 :量子化値マップ生成部
1630 :出力部