DS検定

【DS検定頻出・画像データ処理#2 】画像の色と保存形式

本シリーズ【DS検定頻出・画像データ処理 】の1つ目の記事(ここにリンク)では、画像のデジタル表現への変換について解説をしました。

今回の第2弾では、以下を取り上げます。

  • 画像データとはどんな形をしている?
  • 画像の色はどうやって決まる?
  • 画像データはどのようなフォーマットで保存されているのか?

データサイエンスの一分野として、ニューラルネットワークなどを用いた画像認識があります。デジタル画像データを扱う機会が多くなってきているため、データサイエンティストとして、正しく画像データを処理し活用するためには、画像データの色やフォーマットについて知識を持つ必要があります。例えば、これらの要素に適した分析モデルを選択したり、モデルの訓練いかかる時間を最適化することができるようになります。

■画像データの構成と色の話

身の回りでどこででも見る「画像」ですが、機械学習ではどの部分に着目しているのか、皆さんは想像できますか?

画像データの1枚1枚は配列

画像は画素(ピクセル)を最小単位としています。画像の上に、画素が格子状に並んでおり、それぞれの画素が何らかの数値を持っています。コンピュータは格子状に並んだ画素を配列情報として扱い、画素にある数値を特徴量として機械学習モデルの学習に用います。例えば、画像認識モデルのCNNの畳み込み層では、元画像に対してフィルター(これも2次元配列)を掛けて、行列演算を行うことで凝縮した特徴を取り出します。(図1)。

図1: 画像認識のフィルタを元の画像にかけて畳み込み演算を行うことで、画像認識に重要な特徴量を抽出する

 

画像の色をどう表現するのか

画像を配列として考える際に、配列の次元はカラー画像とグレースケール画像では異なります。両者で大きく違うのは、色次元のチャネル数です。

画像は基本的に、××色(または輝度)の3次元配列です。

カラー画像の1つの画素を表現するのに、{Red(R)、Green(G)、Blue(B)}の3種類の色の強さを組み合わせる必要があります。これらを3つの「チャネル」と呼びます。これに対して、グレースケール画像は、ピクセルごとに輝度(明るさ)を表す単一の値のみ割り当てられます。図2にカラー画像とグレースケース画像のそれぞれのピクセル数値の例が示されています。

図2: (左)カラー画像は、1つのピクセルの色を表すのにR、G、Bの3つの値が必要(右)グレースケール画像の各ピクセルは輝度の値のみ

 

R, G, Bのそれぞれは256階調となっており、0~255の間の濃度値をとります (図3)。256 = 28なので、カラー画像の情報量は8 bit×3 = 24 bitです。三原色のそれぞれの濃度を調整することであらゆる色味を表現することができます。例えば黒は(R,G,B)=(0,0,0)、白は(255,255,255)です。紫っぽい色はRとBの成分が大きく、(200,30,200)のような組み合わせが考えられます。

一方で輝度のみ使用するグレースケール画像は情報量が8 bitです。

ちなみに、「グレースケール画像」と「モノクロ画像」(白黒画像)は言葉が似ているが、異なるものです! モノクロ画像は各画素の色が白と黒の2色のみで表現された「バイナリー画像」です。これに対してグレースケール画像は白と黒とその中間の幅広い濃淡のグレーを含み、あらゆる輝度の値をとることができます。

図3.: R、G、Bの濃度は 0~255の256階調の整数値で表現できます。

■画像データの保存フォーマット

日常の中で画像を表示、保存、編集、圧縮、アップロードする際に、「.jpg」や「.png」などの画像の「拡張子」を意識することがあるかと思います。画像の拡張子とは、画像ファイル形式の種類を指しています。

ここでは、以下の主要な画像データの形式(フォーマット)の特徴を紹介します。

  • PNG(Portable Network Graphics)
  • JPG(Joint Photographic Experts Group)
  • GIF(Graphics Interchange Format)

それぞれの形式は異なる方式でデータ圧縮を行なっています。下の表1に特徴がまとめられています。

PNG JPG (JPEG) GIF
拡張子  .png  .jpg / .jpeg  .gif
表現可能な色数 フルカラー(1677万色、24bit) フルカラー(1677万色、24bit) 256色
メリット 保存を繰り返しても画像の画質が悪化しない 圧縮率を調整することでファイルサイズを小さくできる ・      ファイルサイズが小さい

・      パラパラ漫画のような動画を作れる

デメリット ファイルサイズが大きい 保存を繰り返すたびに画質が劣化(不可逆圧縮) 色数が制限されている

表1:主要な画像データのフォーマットの特徴

 

画像のデータサイズは、前節で説明した画像の色のレベルと画像データのフォーマットによって大きく影響されています。フォーマットによって圧縮率が異なるためです。同じ内容の画像では、ファイルサイズはPNG、JPG、GIFの順に小さくなります

フルカラー(1677万色)で画像を表現する場合はPNGまたはJPGを使います。

編集と保存を繰り返す必要のある場合、画質が悪化しないPNG形式を使うとよいでしょう。PNG形式は透過処理にも対応しており、透明や半透明な画像背景も作れます。

これに対して、JPG形式では色と色の境界を自然にぼやかして、目視で違いがわからない程度に情報を削除することで容量を小さくしています。色数の多い画像を効率よく圧縮できることが便利です。一方で、保存を繰り返すたびに少しずつ画質が悪化していきます(非可逆圧縮)。圧縮率を1/5~1/30の間で指定でき、これが劣化の度合いを決めます。

GIF形式の興味深いところは、1つのファイルに複数枚の画像を保存できるため、無限ループのパラパラ漫画のようなアニメーション動画を作れることです。色数が256色と少ないため、容量を小さくできると引き換えに、写真など色数が多い画像には不向きです

ちなみに、画像には「ビットマップ画像」と「ベクター画像」の2種類があります。

ビットマップ画像とは、大量なピクセル(画素)の集まりです。この節で紹介しているJPGやPNG、GIFは全てビットマップ画像であり、ウェブ・サイトに用いられる画像もほとんどはビットマップ画像です。画像を拡大するとピクセルが足りなくなるため輪郭がギザギザになることがあります。

ベクター画像とは、画像の直線や曲線を数値として演算して、数式で表した画像です。数式をコンピューターがその都度再現するため、画像を拡大・縮小しても画質が劣化せず、ロゴマーク、アイコンなどの画像に向いています。

 

本シリーズの第3弾では、音声データの処理とフォーマットについて解説します。

執筆担当:ヤン ジャクリン (GRI データ分析官・講師)

yan
データ分析官・データサイエンス講座の講師