映像メディア品質評価(客観評価法)VIFP、SSIM、RECO、PSNR、NIQEの比較

解像度低下・ぼけ、ブロックひずみ、偽輪郭、ジャーキネス、フリッカ、動きぼけ、途切れ/フリーズ、モスキート雑音、エッジビジネス、乱れ(破綻)などの映像劣化が発生し、その原因が何であるかを把握することは、目的とする映像品質評価や品質改善を行うために必要です。

そのための映像評価手法に大きく二つの手法が存在します。

  • 主観評価法(DSCQS法、DSIS法、ACR法、ACR-HR法など)
  • 客観評価法(SNR、PSNR、SSIMなど)

主観評価とは、あらかじめ決められた手順にのっとって、映像に対するユーザ体験品質を、視覚心理実験によって定量化することです。

また、客観評価法とは、映像メディアに対する主観品質を映像の物理量を用いて推定する方法です。

ここでは各手法の特性および計算式は掲載しません。
 

MSE = \frac{1}{N}\sum_{i} (x[i]-y[i])^2

N:画素数、x[i],y[i]:原画像および復号画像のi番目の画素位置における輝度値
 

なんて難しそうに書いても、単なる差分二乗平均だしね。

 

客観評価を行うサンプルコードを見つけたので、実画像に適用する方法を書き記しておきます。

GitHub - aizvorski/video-quality: Video quality metrics, reference implementation in python: VIF, SSIM, PSNR, ...
Video quality metrics, reference implementation in python: VIF, SSIM, PSNR, ... - aizvorski/video-quality

なお、評価指標をまとめました(が、一部未記入です)。

Metrics Meaning of video quality metrics Using ref / none ref 日本語 説明
VIF Visual Information Fidelity Reference 視覚情報忠実度 Netflix VMAF (Video Multimethod Assessment Fusion)で採用されている
MSE Mean Square Error Reference 平均二乗誤差 画素の輝度値の差分を表す
SSIM Structural Similarity Metric Reference 構造的類似性指数 人間が感じる違いをより性格に指標化(歪みを表す指標)
PSNR Peak Signal to Noise Ratio Reference ピーク信号対雑音比 画質の信号が取りうる最大のパワーと劣化をもたらすノイズの比率を表す
RECO Relative Polar Edge Coherence Reference
MS-SSIM MultiScale Structural Similarity Metric Reference
3SSIM 3-Component Structural Similarity Metric Reference
VQUAD-HD
VQM Video Quality Metrics Reference
PVVQM Reference
UIQ Universal Image Quality
MSSIM Motion SSIM
NIQE Natural Image Quality Evaluator None-Reference NSSベースの特徴の間の距離を測定
BRISQUE Bind/Referenceless Image Spatial Quality Evaluator None-Reference

 

Full Reference (FR:参照画像指標)を動かしてみる

​テスト​対象​ストリーム​と​参照​用​ストリーム​の​画素​と​画素​を​比較​する​完全​対照​テストです。

​テスト​対象​デバイス​と​ゴールデン​デバイス​の​ストリーム​を​個別に​計測​する​の​では​なく、​2​本​の​ストリーム​を​同時に​解析​し​て​両者​の​画素​と​画素​を​比較​し​ます

かつてはPSNR(Peak Signal to Noise Ratio)が画像圧縮など非可逆圧縮を使ったコーデックの再現性の品質の尺度と使用されることが多かった。

最近は、例えばNetflixはVMAF(Video Multi-Method Assessment Fusion)でVIF(Visual Information Fidelity)などを用いています。

エンコードの変化によって画質が劣化していないかどうか判断するための測定基準としては、人間が実際に観て判断する方法もあるが、全ての映像を確認するのは難しい。そこで、機械学習を用いて自動化する取り組みも進行している。

オープンソースのVMAF(Video Multimethod Assessment Fusion)という測定も活用している。このような検証を重ね、従来だと750kbpsの画質が、270kbpsで実現。データ量4GBで26時間の映像を観られるという。

パス設定を行う

これは一般的な pythonでのimportの説明です。

jpg_demo.py

scikit-imageをインストールする

次のようなエラーが出力されました。

「skimage」の代わりに「scikit-image」を使う必要があるようです。

インストール方法は次のとおりです。

imageio.imreadを利用する

またエラーが出ました。

バージョン1.2.0以降では「imread」は削除されたようです。

代わりに「imageio.imread」を使う必要があります。

ネットで調べると、ソースコードを書き換えるのは手間なので1.2.0以前の「scipy」を入れている人が多かったです。

インストール方法は次のとおりです。

実行すると、大量のエラーが出ました・・・。

駄目だこりゃ・・・・。

Scipy.misc.imreadで使われていた、mode, flatten,はそれぞれ、pilmode, as_grayに変更されています。

次のように書き換えました。

gm convertをインストール

次に出力されたエラーは次のとおりです。

「GraphicsMagick」のインストールが必要です。

「GraphicsMagick-1.3.1.tar.gz」をTar.gzで make したらエラーが出たので、Windows版を持ってきました。

このため、絶対パスで書くと次のように書き換える必要があります。

結果

結果は次のようになります。

数値が小さい場合は劣化したと判断しています。

サンプルでは「LENA画像」の画質を落としつつ、VIFP、SSIM、RECO、PSNRの手法を試していました。

VIFP、SSIMは、画質が落ちきるまでは値が下がりにくい傾向があります。

No Reference (NR:非参照画像指標)を動かしてみる

対象​の​ビデオ​ストリーム​が​未知​だ​っ​たり​予測​でき​なか​っ​たり​する​場合​に​使う​非​対照​テスト​です。

有名なものに、NIQE(Naturalness Image Quality Evaluator)があります。

NIQEとは、モデルを学習させるために使用されるイメージデータベースから取得された特徴と測定したいイメージから計算されたNSS(Natural Scene Statistic)ベースの特徴の間の距離を測定する手法です。

この​手法​の​メリット​は、​コンテンツに関わらず、​どの​よう​な​ストリーム​に​も​計測​を​適用​できる​こと​です。

​一方で、​計測​結果​が​解析​対象​の​コンテンツ​によって​大​きく​ばらつく​可能性​が​あります。

Use a.any() or a.all()

サンプルコードはNIQEがコメントアウトされていました。

コメントを外して実行すると次のようなエラーが出ました。

これは次のように修正します。

結果

結果は次のようになります。

NIQEでは、劣化するほど値が大きくなるようです。

動画を静止画に切り分ける

実データを利用するためには、動画を静止画に分ける必要があります。

あるx秒からy秒までの画像を切り出す方法は次の通りです。

opencvをインストールする

Web から「opencv_python-4.4.0-cp38-cp38-win_amd64.whl」をダウンロードします。

インストールコマンドは次のようになります。

ソースコード

python save_frame_range_sec.py

まとめ

「伝送劣化」や「符号化劣化」に対する映像メディアの品質指標を測定するには十分有効のように感じました。

  • ​(a)​オリジナル画像
  • ​(b)​​平均​コントラスト​を​改善
  • ​(c)​明​る​さ​を​調整
  • ​(d)​ガウスノイズ​を​付加
  • ​(e)​インパルス​ノイズ​を​付加
  • ​(f)​​JPEG​で​圧縮
  • ​(g)​ブラー
  • ​(h)​​空間​スケーリング​(ズーム​アウト)
  • ​(i)​空間​シフト​(右​へ​移動)
  • ​(j)​空間​シフト​(左​へ​移動)
  • ​(k)​回転​(反​時計​周り)
  • ​(l)​​回転​(時計​回り)

ですが、・・・・本当は、こんな事が知りたかったんじゃないんだけどな~。

最近は「The Unreasonable Effectiveness of Deep Features as a Perceptual Metric」などもあります。

タイトルとURLをコピーしました