画像認識・物体検出の為の画像前処理
【No.0】前処理について

1. 画像処理とは

そもそも画像処理とは何なのでしょうか。
wikipediaでは、
「画像処理(がぞうしょり、英: image processing)とは、画像を変形したり、色合いを変えたり、別の画像と合成したり、画像から何らかの情報を取り出したりする処理全般を指す。
一般的に画像処理と言えば、コンピュータを使用した画像処理、すなわちデジタル画像処理のことを指す」
(https://ja.wikipedia.org/wiki/%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86)

とあります。

つまり、画像処理とは「デジタル画像に対して、ある一定の処理を施すこと」と言えます。
「ある一定の処理」とは、例えば画像の変形・合成・情報の抽出など、多岐にわたります。これらの処理は、どれか1つで完結することは現場レベルではほぼ無く、様々な処理を直列的に1つずつ実施していくことが多いです。

例えば、「ある画像ファイルから、文字を読み取りたい」という目的があったとすると、

1. 画像の入力
2. 画像の前処理(画像サイズを変更したり、画像内のノイズを除去したり、等)
3. 情報の抽出(文字の読み取り)
図1 画像処理の流れ

これら一連の処理を通して目的を達成していきます。そしてこれら一連の処理を、一般に「画像処理」と総称します。

2. 画像の前処理とは

では画像の前処理とは具体的に何なのでしょうか。
前処理とは「人やPCが、メインの処理をしやすいように画像を修正すること」と言えます。
「メインの処理」とは、先ほどの例で言うと「3. 情報の抽出(文字の読み取り)」に当たります。つまり、ここでは、PC(文字読み取りモデル)、が画像内に書かれている文字を読み取りやすくする為に、画像を修正する(=前処理をする)ということになります。

ここで、具体的に「文字を読み取りやすい」画像とは、どういった画像でしょうか。元画像と比較してみます。

図2 元画像
図3 前処理を行った画像

図2は、平滑化(メディアンフィルタ)という前処理を実施した画像です。平滑化は、画像内のノイズを除去する際に有効な前処理です。
この前処理をすることで、元画像に比べ、PCが文字を読み取りやすくなる可能性が上がります。

3. 画像の前処理をすることの重要性

画像に前処理を施すことで、PCが文字を読み取りやすくなるということは、言い換えると、「画像に前処理を施すことで、文字読み取りの精度が向上する」と言えます。
つまり、画像に前処理を施す最も大きな理由は、メイン処理の精度を向上させる為と言うことになります。

例として、先にあげた元画像と前処理済みの画像それぞれに対して、メイン処理である文字読み取り(OCR)を実施してみます。

図4 元画像のOCR結果
図5 前処理済み画像のOCR結果

図4と図5を比べると、結果(≒精度)に大きな差が生じていることがわかります。
この様に、前処理はメイン処理の精度に大きく影響を及ぼします。その意味で前処理は非常に大切な処理であると言えます。

今回は前処理として平滑化処理を施しましたが、これはメイン処理がどういう処理かによって様々です。
文字の読み取り処理に関しては平滑化処理は有効な前処理と言えますが、例えばメイン処理が画像同士の結合処理であれば、前処理としては、平滑化処理より画像のリサイズを行った方が良い可能性があります。

つまり、メイン処理の内容によって、前処理の内容も変わってきます。

先述した様に、前処理は基本的に、複数の処理を施していくことが多く、その際、メイン処理の精度向上を常に念頭におきながら前処理を選択することが重要になってきます。

4. 前処理の種類

前処理の手法は多岐にわたります。ここでは現場でよく見かける前処理をご紹介します。
具体的には、平滑化、鮮鋭化、モルフォロジー変換、画像補正、画像幾何変換などがあり、それぞれ簡単に説明します。

平滑化(smoothing)

画像を平滑化する処理。画像内のノイズを除去したり、画像をはっきり見えるようにするために使われます。

図6 元画像
図7 平滑化画像

鮮鋭化(sharpening)

画像を鮮鋭化する処理。画像の濃淡を残してエッジを強調したり、ぼやけた画像が鮮明化されます。

図8 元画像
図9 鮮鋭化画像

モルフォロジー変換(Morphological transformation)

「膨張」・「収縮」等の基本的処理、またはそれらを組み合わせた処理の総称。
ノイズの多い2値画像のノイズを除去したり、また画像内のオブジェクトの輪郭を検出したりすることに多く使用されます。モルフォロジー変換には、「膨張」と「収縮」といった基本処理の他に、この2つの処理を組み合わせたオープニングやクロージング処理等があります。

・膨張・収縮処理

膨張・収縮処理は、画像の白い部分を膨張させたり、収縮させたりする処理です。

図10 元画像
図11 収縮化画像
図12 膨張化画像

・オープニング処理

オープニングは、収縮をn回実施した後、膨張をn回実施する処理です。ノイズ除去の際に使用します。

図13 元画像
図14 オープニング処理画像

・クロージング処理

クロージングは、膨張をn回実施した後、収縮をn回実施する処理です。ノイズ除去の際に使用します。

図13 元画像
図14 クロージング処理画像

幾何変換(Image geometric transformation)

画像において、物体を今ある位置から別の位置へ移動させる処理。 主な画像幾何変換には、スケーリング、並進、回転、アフィン変換、射影変換があります。

・回転処理

図17 180度回転画像

・アフィン変換による処理

図18 アフィン変換を用いた回転・収縮処理画像

・射影変換による処理

図19 元画像
図20 射影変換処理画像

ここで紹介したのは、前処理のほんの一例です。
これ以外にも様々な処理が存在し、目的に応じて随時使い分けることが必要です。

5. 参考文献

川島賢 著 「機械学習・深層学習による画像認識の基本と原理」

・物体検出AIの導入
・アノテーションサービス
・手書き計算サイト ZONE++ の運営
・技術ブログ LAB++の運営
   上記をメインにおこなっております

詳しくはこちら

Category

Search