(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-22
(45)【発行日】2024-12-02
(54)【発明の名称】情報処理装置、学習方法およびプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20241125BHJP
G06N 3/08 20230101ALI20241125BHJP
H04N 19/96 20140101ALI20241125BHJP
【FI】
G06N20/00 130
G06N3/08
H04N19/96
(21)【出願番号】P 2020069286
(22)【出願日】2020-04-07
【審査請求日】2023-03-31
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100125254
【氏名又は名称】別役 重尚
(72)【発明者】
【氏名】大浦 颯人
【審査官】山本 俊介
(56)【参考文献】
【文献】特開2018-182531(JP,A)
【文献】中国特許出願公開第109788296(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
H04N 19/96
(57)【特許請求の範囲】
【請求項1】
学習用の画像を入力として前記画像を分割した分割パターンを出力する学習モデルが出力した分割パターンと、前記学習モデルの機械学習を行うときの教師データとの類似度に対応する重みを決定する決定手段と、
決定された前記重みにより重み付けされた損失関数を用いて前記学習モデルの機械学習を行う学習手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記決定手段は、前記類似度が高くなるに応じて、前記損失関数が小さくなるように前記重みを決定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記決定手段は、前記類似度が低くなるに応じて、前記損失関数が大きくなるように前記重みを決定することを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記決定手段は、前記類似度が所定の値以上である場合、前記重みを0として決定することを特徴とする請求項2に記載の情報処理装置。
【請求項5】
前記決定手段は、前記学習モデルに入力された学習用の画像の枚数が所定の枚数に達するごとに、前記重みを決定することを特徴とする請求項1乃至4のうち何れか1項に記載の情報処理装置。
【請求項6】
前記決定手段は、前記学習モデルが出力した同じ類似度のグループに属する複数の分割パターンについての重みを、前記教師データと相違しているブロックのブロックサイズに応じて異ならせることを特徴とする請求項1乃至5のうち何れか1項に記載の情報処理装置。
【請求項7】
前記類似度は、教師データの分割パターンと前記学習モデルが出力した分割パターンとで異なる区画数に応じて決定されることを特徴とする請求項1乃至6のうち何れか1項に記載の情報処理装置。
【請求項8】
前記類似度は、さらに前記画像をブロックに分割する際の階層構造の深度の差に応じて決定されることを特徴とする請求項7に記載の情報処理装置。
【請求項9】
前記類似度は、前記区画数と前記深度の差とのうち何れかが優先されて決定されることを特徴とする請求項8に記載の情報処理装置。
【請求項10】
前記学習用の画像は、HEVCの規格により符号化される動画像を構成する画像であることを特徴とする請求項1乃至9のうち何れか1項に記載の情報処理装置。
【請求項11】
未知の画像を入力として前記学習モデルが出力したブロック分割パターンを用いて、前記未知の画像を符号化することを特徴とする請求項1乃至10のうち何れか1項に記載の情報処理装置。
【請求項12】
学習用の画像を入力として前記画像を分割した分割パターンを出力する学習モデルが出力した分割パターンと、前記学習モデルの機械学習を行うときの教師データとの類似度に対応する重みを決定する工程と、
決定された前記重みにより重み付けされた損失関数を用いて前記学習モデルの機械学習を行う工程と、
を備えることを特徴とする学習方法。
【請求項13】
請求項1乃至11のうち何れか1項に記載の情報処理装置の各手段をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、学習方法およびプログラムに関する。
【背景技術】
【0002】
H.265(ISO/IEC 23008-2)と称される動画圧縮規格を用いて動画像の圧縮が行われている。H.265規格は、HEVC(High Efficiency Video Coding)とも称される。HEVCでは、符号化を行う対象の画像(符号化対象画像)は、縦横64画素のCTU(Coding Tree Unit)のブロックに分割され、ブロックごとに符号化が実施される。また、HEVCでは、CTUは符号化単位がCU(Coding Unit)に再帰的に分割される。CUは、縦横が64画素、32画素、16画素または8画素の何れかのサイズに分割される。CTUごとのブロック分割パターンは、CUの分割形状の組み合わせに応じて決定される。
【0003】
関連する技術として、特許文献1の技術が提案されている。特許文献1の技術では、学習モデルが、入力されたCTUのCUの分割形状と学習パラメータとに基づいて、四分木データ構造の各ノードの分割確率を表すラベルを出力する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の技術では、四分木データ構造の各ノードの分割確率を学習しているが、学習モデルが、正解となるブロック分割パターンと近いブロック分割パターンを出力しない可能性がある。このため、学習モデルが正解となるブロック分割パターンと大きく異なるブロック分割パターンを出力した場合、該ブロック分割パターンで動画像の符号化が行われることになり、動画像の画質が大幅に劣化する。
【0006】
本発明は、学習モデルが正解のブロック分割パターンを出力する割合を高くすることを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明の情報処理装置は、学習用の画像を入力として前記画像を分割した分割パターンを出力する学習モデルが出力した分割パターンと、前記学習モデルの機械学習を行うときの教師データとの類似度に対応する重みを決定する決定手段と、決定された前記重みにより重み付けされた損失関数を用いて前記学習モデルの機械学習を行う学習手段と、を備えることを特徴とする。
【発明の効果】
【0008】
本発明によれば、学習モデルが正解のブロック分割パターンを出力する割合を高くすることを目的とする。
【図面の簡単な説明】
【0009】
【
図2】ブロック分割パターンの一例を示す図である。
【
図3】第1実施形態において分割パターンが1区画異なる教師データと類似グループとの関係を示す図である。
【
図4】第1実施形態において分割パターンが2区画異なる教師データと類似グループとの関係を示す図である。
【
図5】学習処理の流れを示すフローチャートである。
【
図6】損失関数の重み付け処理の流れを示すフローチャートである。
【
図7】第2実施形態における損失関数に重み付けする重みの更新処理の流れを示すフローチャートである。
【
図8】第3実施形態において分割パターンが1区画異なる教師データと類似グループとの関係を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明の各実施の形態について図面を参照しながら詳細に説明する。しかしながら、以下の各実施の形態に記載されている構成はあくまで例示に過ぎず、本発明の範囲は各実施の形態に記載されている構成によって限定されることはない。
【0011】
<第1実施形態>
以下、図面を参照して、第1実施形態について説明する。
図1は、コンピュータ10の一例を示す図である。コンピュータ10は、情報処理装置に対応する。コンピュータ10は、例えば、サーバ等である。コンピュータ10は、CPU11、メモリ12、記憶装置13、通信部14、表示部15、入力制御部16、GPU17(Graphics Processing Unit)および内部バス100を有する。
【0012】
CPU11は、記憶装置13に記憶されているコンピュータプログラムを実行することで、内部バス100を介してコンピュータ10の各部(各機能ブロック)の動作を制御する。また、CPU11は、単独で各種の演算を行ってもよいし、GPU17と協働して各種の演算を行ってもよい。メモリ12は、書き換え可能な揮発性メモリである。メモリ12は、コンピュータ10の各部の動作を制御するためのコンピュータプログラムやコンピュータ10の各動作に関する情報、CPU11による処理前後の情報等を一時的に記憶する。以下の各処理は、記憶装置13に記憶されているコンピュータプログラムがメモリ12に展開され、CPU11がメモリ12に展開されたコンピュータプログラムを実行することにより、実現されてもよい。また、CPU11がGPU17を制御して、CPU11とGPU17とが協働して動作することにより、各処理が実現されてもよい。CPU11またはGPU17は、決定手段および学習手段に対応する。
【0013】
メモリ12は、各種情報を一時的に記録するために十分な記憶容量を有する。各実施形態では、CPU11は、学習モデルとしてのニューラルネットワークの機械学習を行う。メモリ12は、ニューラルネットワークの処理内容を記述したコンピュータプログラムや学習済み係数パラメータ(重み係数やバイアス値等)を記憶する。重み係数は、ニューラルネットワークにおけるノード間の接続の強さを示す値であり、バイアスは、重み係数と入力データとの積算値に対してオフセットを与えるための値である。
【0014】
記憶装置13は、電気的に情報を記憶および消去が可能なメモリであり、例えばハードディスクやSSD(Solid State Drive)等が適用される。記憶装置13は、コンピュータ10の各部を制御するコンピュータプログラムやメモリ12に一時保存された処理結果等の情報を記憶する。通信部14は、外部装置や記録媒体等の周辺機器と通信を行う。通信部14は、有線による通信を行ってもよいし、無線による通信を行ってもよい。例えば、通信部14は、USB(Universal Serial Bus)規格に基づく有線通信を行ってもよいし、IEEE802.11等の無線通信規格に適合する方式を用いた無線通信を行ってもよい。
【0015】
表示部15は所定の情報を表示する。表示部15には、例えば、液晶ディスプレイや有機ELディスプレイ等が適用される。表示部15は、CPU11やGPU17等から送られる画像信号に基づいて、画像を表示する。入力制御部16は、所定の入力装置からの入力を受け付ける。入力装置としては、例えば、キーボードやマウス等が適用される。入力制御部16は、入力装置を用いた入力操作の内容を電気信号に変換し、コンピュータ10の各部へ入力信号を伝える。GPU17は、表示部15へ送る画像信号に関する演算処理やコンピュータプログラムの演算処理等を行う。また、GPU17は、機械学習を行う際の演算処理に好適に用いられる。GPU17は、並列な演算処理を高速に行う回路を有していることから、演算の内容に応じてCPU11が行う演算処理を代替して行うことができる。各機能ブロックは、内部バス100を介して相互にアクセス可能である。
【0016】
次に、機械学習について説明する。各実施形態では、コンピュータ10は、学習モデルとしてのニューラルネットワークの機械学習を行う。ニューラルネットワークは、例えば、畳み込み層とプーリング層とが交互に積層され、全結合層および出力層が接続されるCNN(Convolutional Neural Network)であってもよい。また、学習モデルは、ニューラルネットワークには限定されない。例えば、学習モデルは、サポートベクターマシン等の機械学習アルゴリズムを用いて学習されたモデルであってもよい。ニューラルネットワークの機械学習は、目的となる処理結果に対して、重み係数やバイアス値等の係数パラメータを適切な値に近づけるような調整により、最適化されることで、実現される。
【0017】
各実施形態では、CPU11は、ニューラルネットワークを用いて、動画像符号化の標準規格であるHEVC(H.265)の規格におけるCTUごとのブロック分割パターンを決定する。ブロック分割パターンは、CTUごとの分割パターンである。HEVCにおけるCTUごとのブロック分割パターンの演算方法として、HEVCTestModel(HM)がある。HMは、JCT-VC(Joint Collaborative Team on Video Coding)により作成されたモデルである。HMでは、膨大な演算が行われ、コストが最も小さくなるCUサイズおよび予測モードが決定される。
【0018】
各実施形態において、CPU11は、符号化対象画像の画質の劣化が小さくなるブロック分割パターンが出力されるように、ニューラルネットワークの機械学習を行う。ブロック分割パターンの詳細は、後述する。各実施形態におけるニューラルネットワークの機械学習は、教師あり学習である。教師データ(正解データ)としては、例えば、上述したHMにより得られるブロック分割パターンが適用されてもよい。ニューラルネットワークには、教師データと対応する学習用の符号化対象画像が入力される。教師データと学習用の符号化対象画像との組み合わせが学習データである。CPU11は、学習データを用いて、ニューラルネットワークの機械学習を行う。
【0019】
上記の機械学習が繰り返し行われることにより、ニューラルネットワークの係数パラメータが調整される。機械学習により調整された係数パラメータが、学習済み係数パラメータである。機械学習されたニューラルネットワークは、未知の符号化対象画像が入力されると、ブロック分割パターンを示すデータ(出力データ)を出力する。機械学習は、CPU11により行われてもよいし、GPU17により行われてもよいし、CPU11とGPU17との協働動作により行われてもよい。
【0020】
ここで、HEVCのブロック分割パターン等のような連続した値ではないデータの分類の機械学習が行われる際、一般に、交差エントロピー誤差(cross entropy error)を用いた損失関数の演算が行われる。損失関数として交差エントロピー誤差が用いられた場合、交差エントロピー誤差の値がゼロに近づくように機械学習が行われる。交差エントロピー誤差の定義式を、以下の式(1)に示す。式(1)において、logは底がeの自然対数を示し、ykはニューラルネットワークの出力を示し、tkは教師データのインデックスを示し、lossは損失関数を示す。教師データのインデックスは、正解の場合「1」であり、不正解の場合「0」である。
【0021】
【0022】
図2は、ブロック分割パターンの一例を示す図である。
図2の例では、ブロック分割パターンは、17パターンである。ただし、ブロック分割パターンのパターン数は17パターンには限定されない。また、ブロック分割パターンの分割方法は、
図2の例には限定されない。
図2において、ブロック分割パターン2aが教師データであるとする。この場合、ニューラルネットワークからの出力データがブロック分割パターン2aとなる確率が高くなるように、ニューラルネットワークの機械学習が行われる。つまり、ニューラルネットワークが出力したブロック分割パターン自体が考慮されるのではなく、ニューラルネットワークからの出力データがブロック分割パターン2aである確率のみが、機械学習に反映されることになる。
【0023】
例えば、
図2において、ブロック分割パターン2bは、教師データのブロック分割パターン2aに最も類似している。一方、ブロック分割パターン2qは、教師データのブロック分割パターン2aと最も類似していない。このとき、ニューラルネットワークが、ブロック分割パターン2bとブロック分割パターン2qとの両者がブロック分割パターン2aである確率が同じ値であることを示す出力を行ったとする。この場合、ブロック分割パターン2bとブロック分割パターン2qとでは、ブロック分割パターン2aとの類似度が大きく異なっているにもかかわらず、同じ損失誤差が用いられて、ニューラルネットワークの機械学習が行われることになる。
【0024】
そこで、本実施形態では、CPU11は、ニューラルネットワークの機械学習を行う際、交差エントロピー誤差等の損失誤差に重み付けを行う。CPU11は、ニューラルネットワークの出力データと教師データとの組み合わせに応じて重み付けを行う。これにより、教師データ(正解データ)に類似したブロック分割パターンがニューラルネットワークから出力される割合を高めることができる。その結果、本実施形態では、損失誤差に重み付けがされない場合と比較して、動画像を構成する画像が符号化されて圧縮された後に復号された画像の画質を向上させることができる。
【0025】
次に、損失関数の重み付けについて説明する。
図3は、第1実施形態において分割パターンが1区画異なる教師データと類似グループとの関係を示す図である。
図3の例では、類似グループ1のブロック分割パターンは、教師データのブロック分割パターンと1区画異なるブロック分割パターンである。
図3(a)は、第1実施形態において分割パターンが1区画異なる場合の教師データと類似グループとの関係を示す第1の例を示す図である。
図3(a)では、教師データが
図2のブロック分割パターン2aである場合の類似グループ1を示す。
図2のブロック分割パターン2aと1区画異なるブロック分割パターンは、ブロック分割パターン2bだけである。
【0026】
図3(b)は、第1実施形態において分割パターンが1区画異なる教師データと類似グループとの関係を示す第2の例を示す図である。
図2のブロック分割パターン2aと1区画異なるブロック分割パターンは、ブロック分割パターン2bだけである。
図3(b)では、教師データが
図2のブロック分割パターン2jである場合の類似グループ1を示す。
図2のブロック分割パターン2jと1区画異なるブロック分割パターンは、ブロック分割パターン2d、2f、2nおよび2oの4つである。ニューラルネットワークが出力したブロック分割パターン(最も確率が高いブロック分割パターン)が教師データと1区画異なる場合、CPU11は、類似グループ1を定義する。また、CPU11は、類似グループ1に属する各ブロック分割パターンについての損失関数の重みをw
1と定義する。
【0027】
図4は、第1実施形態において分割パターンが2区画異なる教師データと類似グループとの関係を示す図である。類似グループ2のブロック分割パターンは、教師データのブロック分割パターンと、分割パターンが2区画異なるブロック分割パターンである。
図4(a)は、第1実施形態において分割パターンが2区画異なる場合の教師データと類似グループとの関係を示す第1の例を示す図である。教師データは、
図2(a)のブロック分割パターン2aである。また、ブロック分割パターン2aと2区画異なるブロック分割パターンは、
図2(a)のブロック分割パターン2c、2d、2eおよび2fの4つである。
図4(b)は、第1実施形態において分割パターンが2区画異なる場合の教師データと類似グループとの関係を示す第2の例を示す図である。教師データは、
図2(b)のブロック分割パターン2jである。ブロック分割パターン2jと2区画異なるブロック分割パターンは、ブロック分割パターン2a、2g、2i、2k、2lおよび2qの6つである。ニューラルネットワークが出力したブロック分割パターン(最も確率が高いブロック分割パターン)が教師データと2区画異なる場合、CPU11は、類似グループ2を定義する。また、CPU11は、類似グループ2に属する各ブロック分割パターンについての損失関数の重みをw
2と定義する。
【0028】
同様に、CPU11は、ニューラルネットワークが出力した最も確率が高いブロック分割パターンが教師データと3区画異なる場合には、類似グループ3を定義する。このとき、CPU11は、類似グループ3に属する各ブロック分割パターンについての損失関数の重みw3を定義する。CPU11は、ニューラルネットワークが出力した最も確率が高いブロック分割パターンが教師データと4区画異なる場合には、類似グループ4を定義する。このとき、CPU11は、類似グループ4に属する各ブロック分割パターンについての損失関数の重みw4を定義する。CPU11は、ニューラルネットワークが出力した最も確率が高いブロック分割パターンが教師データと5区画異なる場合には、類似グループ5を定義する。このとき、CPU11は、類似グループ5に属する各ブロック分割パターンについての損失関数の重みw5を定義する。以上より、CPU11は、教師データのブロック分割パターンとニューラルネットワークが出力したブロック分割パターンとで、異なる区画数に応じて、類似グループを決定する。
【0029】
また、ニューラルネットワークが出力した最も確率が高いブロック分割パターンが、教師データのブロック分割パターンと完全に一致する場合がある。この場合、CPU11は、類似グループ0を定義し、損失関数の重みをw0と定義する。
【0030】
CPU11が定義する重みw
0~w
5は、以下の式(2)の関係が成立する。
【数2】
【0031】
また、上記式(2)は、以下の式(3)または式(4)であってもよい。
【数3】
【数4】
【0032】
式(3)の場合、CPU11は、重みw0を定義した際、類似グループ0に属する各ブロック分割パターンについての損失関数の重み付けを実施しなくてもよい。また、式(4)の場合、CPU11は、重みw5を定義した際、類似グループ5に属する各ブロック分割パターンについての損失関数の重み付けを実施しなくてもよい。
【0033】
類似グループ0に属する各ブロック分割パターンと教師データとの類似度は最も高い。一方、類似グループ5に属する各ブロック分割パターンと教師データとの類似度は最も低い。つまり、CPU11は、ニューラルネットワークが出力するブロック分割パターンと教師データのブロック分割パターンとの類似度が高くなるに応じて、損失関数が小さくなるように重みを決定する。一方、CPU11は、上記の類似度が低くなるに応じて、損失関数が大きくなるように重みを決定する。以上の例では、教師データのブロック分割パターンと異なった区画数により類似グループの定義が行われる例について説明したが、CPU11は、区画数よりも、分割パターンの階層構造を優先した類似グループを定義してもよい。
【0034】
次に、学習処理について説明する。
図5は、本実施形態の学習処理の流れを示すフローチャートである。S501で、CPU11は、画像(符号化対象画像)を、ニューラルネットワークに入力する。各実施形態では、符号化対象画像は、動画像を構成する画像であり、例えばHEVCにより符号化による圧縮がされる。S502で、CPU11は、符号化対象画像を入力として、ニューラルネットワークの係数パラメータの演算を行う。S503で、CPU11は、ニューラルネットワークの演算結果を用いて損失関数を算出する。S504で、CPU11は、損失関数の重み付け処理を行う。S504の処理の詳細は、後述する。S505で、CPU11は、損失関数を用いて、ニューラルネットワークの係数パラメータを更新する。次に、S506で、CPU11は、学習処理を終了するかを判定する。CPU11は、S506でNOと判定した場合、フローをS501に戻す。一方、CPU11は、S506でYESと判定した場合、学習処理を終了させる。例えば、CPU11は、学習回数が一定回数に達したときに、S506でYESと判定してもよい。
【0035】
次に、S504の損失関数の重み付け処理について説明する。
図6は、損失関数の重み付け処理の流れを示すフローチャートである。S601で、CPU11は、損失関数の重み付けを行うかを判定する。例えば、損失関数の重み付け処理を行うかの設定が予めされている場合、CPU11は、設定された内容に基づいて、S601の判定を行ってもよい。CPU11は、S601でNOと判定した場合、損失関数の重み付け処理を終了させる。一方、CPU11は、S601でYESと判定した場合、処理をS602に進める。S602で、CPU11は、ニューラルネットワークが出力したブロック分割パターンと教師データのブロック分割パターンとに基づいて、ニューラルネットワークの出力結果が属する類似グループおよび該類似グループに対応する重みを決定する。上述した例では、CPU11は、類似グループ0~5に対応する重みw
0~w
5のうち何れかを重みwとして決定する。
【0036】
S603で、CPU11は、損失関数にS604で決定した重みで重み付けする。CPU11は、以下の式(5)により、重みの値wを損失関数lossに乗じることで、損失関数の重み付けを行う。損失関数lossは、上述した式(1)により得られる。
【数5】
【0037】
CPU11は、S603の処理を行った後、損失関数の重み付け処理を終了させる。
図6の損失関数の重み付け処理は、
図5の学習処理行われるごとに行われる。
【0038】
以上説明したように、CPU11は、教師データのブロック分割パターンとニューラルネットワークが出力するブロック分割パターンとを比較して、類似グループを定義する。そして、CPU11は、類似グループに応じた重みの値で損失関数の重み付けを行い、重み付けがされた損失関数を用いてニューラルネットワークの機械学習を行う。重み付けがされた損失関数を用いてニューラルネットワークの機械学習が行われることで、ニューラルネットワークは、教師データのブロック分割パターンと近いブロック分割パターンを出力する割合を高くするようになる。このため、損失関数に重み付けされない場合と比較して、符号化して圧縮した画像の画質を向上させることができる。
【0039】
上述した各処理により、CPU11がニューラルネットワークの機械学習を行うことで、係数パラメータが調整されたニューラルネットワーク(学習済みのニューラルネットワーク)が生成される。CPU11は、学習済みのニューラルネットワークを用いて、推論処理を行ってもよい。例えば、CPU11は、上記のニューラルネットワークを用いて、動画像を構成する画像の符号化を行うことができる。このとき、CPU11は、学習済みのニューラルネットワークに、未知の画像(動画像を構成する画像)を入力する。そして、CPU11は、学習済みのニューラルネットワークが出力するブロック分割パターンを用いて、未知の画像を符号化する。
【0040】
また、学習済みのニューラルネットワークを用いた未知の画像の符号化は、コンピュータ10とは別の情報処理装置(例えば、スマートフォンやタブレット端末、撮像装置等)により行われてもよい。この場合、上記の別の情報処理装置は、コンピュータ10と通信を行い、コンピュータ10から学習済みのニューラルネットワークを取得して、未知の画像の符号化を行ってもよい。
【0041】
<第2実施形態>
次に、第2実施形態について説明する。第2実施形態では、CPU11は、ニューラルネットワークの機械学習の進行に伴い、損失関数に重み付けする重みを更新する。第2実施形態のコンピュータ10の構成は、第1実施形態と同様である。以下、第1実施形態と重複する部分の説明は省略する。第2実施形態では、第1実施形態と同様、CPU11は、符号化対象画像を17パターンのブロック分割パターンで分割する。そして、第2実施形態では、式(2)~(4)の重みw0~w5の値を、ニューラルネットワーク機械学習の進行に伴い更新する。
【0042】
図7は、第2実施形態における損失関数に重み付けする重みの更新処理の流れを示すフローチャートである。S701で、CPU11は、機械学習された画像の枚数(学習枚数)が所定の枚数に達したかを判定する。所定の枚数は、予め設定された枚数であってもよいし、学習の収束度に基づいて判定されてもよい。また、所定の枚数は、他の任意の方法で設定されてもよい。CPU11は、S701でNOと判定した場合、
図7の処理を終了させる。一方、CPU11は、S701でYESと判定した場合、処理をS702に進める。
【0043】
S702で、CPU11は、それぞれの重みw0~w5が更新の対象であるかを判定する。本実施形態では、CPU11は、重みが更新の対象であるかの判定を、教師データのブロック分割パターンとニューラルネットワークが出力するブロック分割パターンとの類似度に基づいて行う。ただし、重みが更新の対象であるかの判定は、任意の手法で行われてもよい。CPU11は、上記の類似度が高くなるに応じて、重み付けされた損失関数の値が小さくなるように、重みを減少させる更新を行う。また、CPU11は、上記の類似度が低くなるに応じて、重み付けされた損失関数の値が大きくなるように、重みを増大させる更新する。
【0044】
例えば、基準となる所定の類似グループを類似グループ2とした場合において、CPU11が重みの値を増大させる更新を行うときには、類似グループ0~2以外の類似グループ3~5に対応する重みw
3~w
5が更新の対象となる。一方、CPU11が重みの値を減少させる更新を行うときには、類似グループ0~2に対応する重みw
0~w
2が更新の対象となる。更新する対象の重みは、値を増大させる更新を行う重みと、値を減少させる更新を行う重みとの何れかであってもよいし、両者であってもよい。更新する対象の重みがない場合、CPU11は、S702でNOと判定し、
図7の処理を終了させる。一方、更新する対象の重みがある場合、CPU11は、処理をS703に進める。
【0045】
S703で、CPU11は、重みの更新を行う。更新する対象の重みが、値を増大させる更新を行う重みである場合、CPU11は、更新する対象の重みに対して、値が増大するように所定の倍率(重みが大きくなる倍率)を乗じる。また、更新する対象の重みが、値を減少させる更新を行う重みである場合、CPU11は、更新する対象の重みに対して、値が減少するように所定の倍率(重みが低くなる倍率)を乗じる。CPU11は、更新する対象の重みに対して、任意の値を加算または減算してもよい。ここで、更新する対象の重みが、値を減少させる更新を行う重みである場合(類似度が所定の値以上である場合)、CPU11は、更新する対象の重みに対して「0」を乗じてもよい。この場合、更新する対象の重みは「0」になる。所定の値は、上述した基準となる所定の類似グループに対応する。CPU11は、S703の処理が行われた後、
図7の処理を終了させる。CPU11は、更新された重みを用いて、
図6のS603の処理、つまり損失関数の重み付けを行う。
【0046】
第2実施形態では、CPU11は、学習枚数が所定の枚数に達するごとに、重みを決定する。つまり、CPU11は、機械学習の進行に伴い、損失関数に重み付けする重みの更新を行う。これにより、教師データのブロック分割パターンと大きく異なるブロック分割パターンについての損失関数の重みを、機械学習の途中段階で、大きくすることができる。その結果、ニューラルネットワークの機械学習が行われるときに、教師データのブロック分割パターンと大きく異なるブロック分割パターンの機械学習に対する影響を大きくすることができる。よって、教師データのブロック分割パターンと類似したブロック分割パターンをニューラルネットワークが出力する割合を、より高めることができる。
【0047】
<第3実施形態>
次に、第3実施形態について説明する。第3実施形態では、CPU11は、同じ類似グループ(同じ類似度のグループ)に属すると決定したブロック分割パターンであっても、損失関数に重み付けをする重みを変更する。ただし、CPU11は、重みを変更しない場合もある。第3実施形態のコンピュータ10の構成は、第1実施形態と同様である。第1実施形態と重複する部分については説明を省略する。
【0048】
図8は、第3実施形態において分割パターンが1区画異なる教師データと類似グループとの関係を示す図である。
図8に示される類似グループ1に属する5つのブロック分割パターンのうちブロック分割パターン8bと他の4つのブロック分割パターン8c~8fとの重みが異なる。同じ類似グループに属する複数のブロック分割パターンの全ての重みが異なっていてもよい。
図8の例において、類似グループ1は、教師データのブロック分割パターンとニューラルネットワークが出力するブロック分割パターンとのパターンが1区画異なる。この場合、類似グループ1には5つのブロック分割パターン8b~8fが属する。
【0049】
教師データのブロック分割パターン8aおよび類似グループ1に属するブロック分割パターン8b~8fは、縦横が64画素である画像ブロックである。ここで、ブロック分割パターン8b~8fは、教師データのブロック分割パターン2aと1区画異なる点で共通している。一方、ブロック分割パターン8c~8fは、教師データのブロック分割パターン2aと縦横32画素のブロックで異なっているが、ブロック分割パターン8bは、ブロック分割パターン8aと縦横64画素のブロックで異なる。つまり、教師データのブロック分割パターン2aと相違しているブロックのブロックサイズが異なる。
【0050】
同じ類似グループに属するブロック分割パターンであっても、教師データのブロック分割パターン2aと異なる区画のブロックのブロックサイズ、つまり分割の最小階層が異なる場合がある。そこで、CPU11は、類似グループ1に属する複数のブロック分割パターンを、ブロック分割パターン2aと異なる区画のブロックのブロックサイズに応じて、異なる重みを用いて損失関数に重み付けを行う。
図8の例において、CPU11は、ブロック分割パターン8bについては、損失関数に重み付けする重みw
1Lを定義し、ブロック分割パターン8c~8fについては、損失関数に重み付けする重みw
1Sを定義する。重みw
1Lと重みw
1Sとの間には、以下の式(6)の関係が成立する。
【数6】
【0051】
また、重みw
1Lと重みw
1Sとの間には、以下の式(7)または式(8)の関係が成立してもよい。
【数7】
【数8】
【0052】
式(7)または式(8)の場合、CPU11が新たに1つの重みを定義することにより、同じ類似グループに属する複数のブロック分割パターンに対して異なる重みを定義することができる。
【0053】
第3実施形態において、CPU11は、教師データとの類似度に対応する類似グループに属する複数のブロック分割パターンについて、分割ブロックのブロックサイズに応じて、損失関数に重み付けする重みを異ならせる。これにより、同じ類似グループに属するブロック分割パターンであっても、符号化により圧縮された後に復号された画像の画質に影響することが想定されるブロック分割パターンについての損失関数に重み付けする重みを大きくできる。従って、ニューラルネットワークが、教師データに近いブロック分割パターンを出力する割合を高くすることができるとともに、符号化により圧縮された後に復号された画像の画質劣化を抑制することができる。
【0054】
ここで、HEVCは、階層構造を採用しており、階層が深くなるに応じて、ブロックサイズが小さくなる。例えば、CTUにおいて、縦横が64画素のブロックは最も深度の浅いブロックであり、縦横が8画素のブロックは最も深度が深いブロック(最小深度の分割ブロック)である。従って、CPU11は、教師データのブロック分割パターンの階層構造の深度とニューラルネットワークが出力したブロック分割パターンの階層構造の深度との差に応じて、類似度を決定してもよい。この場合、CPU11は、階層構造の深度の差が大きくなるに応じて、類似度が高くなるように決定し、深度の差が小さくなるに応じて、類似度が低くなるように決定する。
【0055】
また、上述した各実施形態では、CPU11は、教師データのブロック分割パターンとニューラルネットワークが出力するブロック分割パターンとで相違する区画数に応じて、類似度を決定する。このとき、CPU11は、上記の階層構造における深度の差を、上記の区画数よりも優先して、類似度を決定してもよいし、上記の区画数を上記の階層構造における深度の差よりも優先して、類似度を決定してもよい。
【0056】
また、上述した各実施形態では、動画像を構成する画像の符号化を行う際の分割パターンの決定について説明したが、各実施形態は、所定の画像を任意のパターンで分割する場合に、適用されてもよい。
【0057】
以上、本発明の好ましい実施の形態について説明したが、本発明は上述した各実施の形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。本発明は、上述の各実施の形態の1以上の機能を実現するプログラムを、ネットワークや記憶媒体を介してシステムや装置に供給し、そのシステム又は装置のコンピュータの1つ以上のプロセッサーがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0058】
10 コンピュータ
11 CPU
12 メモリ
17 GPU