画像の二値化アルゴリズムを理解するための記事

従来のマシンビジョンには通常、前処理とオブジェクト検出の2つのステップが含まれます。そして、2つの画像セグメンテーション(画像セグメンテーション[。1]の間の架け橋です。画像セグメンテーションは、画像の表現を単純化または変更することにより、画像の分析を容易にします。

たとえば、ブロイラーの新しいバッチが食品加工工場に輸入され、その美味しさを視覚的に検出したいと考えています。画像を前処理して最適化した後、マシンは最初に画像の背景から鶏肉を分離し、関心のある領域を個別に分析して、迅速かつ正確な判断を下す必要があります。

食品加工工場での視覚処理

ただし、愚かなAIでは画像のセグメンテーションは簡単ではありません。賢い人間は、下の写真で食べられるものと食べられないものを一目で見ることができます。しかし、コンピューターがこれらを分離するには多大な労力が必要です。

元の画像

 

画像セグメンテーションの結果

最も単純な画像分割方法がある値化

画像の二値化は、画像上のピクセルのグレー値を0または255に設定するプロセスです。つまり、画像全体が明らかな白黒効果を示します。バイナリイメージの各ピクセルには、純粋な黒または純粋な白の2つの値しかありません。

カラー画像、グレー画像、バイナリ画像の比較

バイナリ画像データは十分に単純であるため、多くの視覚アルゴリズムはバイナリ画像に依存しています。バイナリイメージを通じて、オブジェクトの形状と輪郭をより適切に分析できます。バイナリイメージは、元のイメージのマスク(マスク、マスク、またはマスクとも呼ばれますとしてもよく使用されます。これは、部分的にくり抜かれた紙のようなもので、関心のない領域をマスクします。さまざまな方法を二値化する場合、最も一般的なのは、しきい値法(しきい値処理)の使用が二値化されることです。

コンピュータビジョンでは、マトリックスは一般的に画像を表すために使用されます。言い換えれば、あなたの写真がどれほど美味しく見えても、それらはコンピューターにとってのマトリックスにすぎません。

このマトリックスでは、各ピクセルはマトリックス内の要素です。3チャンネルのカラー画像では、この要素は3つの数字で構成されるタプルです。

カラー3チャンネル画像

シングルチャネルグレースケール画像の場合、この要素は数値です。この数値は、この時点での画像の明るさを表します。数値が大きいほど、ピクセルは明るくなります。一般的な8ビットの単一チャネル色空間では、0はすべて黒を表し、255はすべて白を表します。

シングルチャンネルグレースケール画像

しきい値の方法は、完全に白と見なされるよりも大きく、完全に黒と見なされるよりも小さい数値を選択することです。教室のライトスイッチのように、そっと押して、いきなり一定のしきい値を超えると、ポップでライトが点灯します。

さまざまなしきい値の選択方法に応じて、グローバルしきい値とローカルしきい値に分けることができます。

1.グローバルしきい値(グローバルメソッド)

グローバルしきい値とは、画像全体の各ピクセルに対して同じしきい値を選択することを指します。この操作は、Photoshopの画像-調整-しきい値で体験できます。

Photoshopのしきい値

しきい値レベルが1から255に移動する間に、画像のますます多くの領域が黒くなることがわかります。しきい値が一定の範囲内にある場合、赤米ソーセージの輪郭がはっきりと識別できます。

正しい二値化により、赤米の腸の輪郭がはっきりと認識できるようになります

生産ライン環境では、ライトは既知であり、固定数がグローバルしきい値として設定されることがよくあります。しかし、屋外やロボット競技では、照明条件がより複雑になることがよくあります。

同じオレオアイスクリームは、昼と夜の間に、カメラは画像が同じではない可能性があることを認識し、一定のしきい値はこれらの2つの状況に同時に適応することはできません。

異なる明るい写真と暗い写真

写真の暗い夜には、比較的低いしきい値が必要です。たとえば、しきい値を50に設定すると、夜は白黒の色を明確に区別できますが、日中は白になります(左)。設定しきい値は172など比較的高く設定されており、日中はスムーズに分割できますが、夜は真っ黒になります(右)。複雑な環境に適応できるアルゴリズムが必要です。

左側のしきい値= 50、右側のしきい値= 172

実際、少し分析すると、この画像の色の違いは非常に明白であり、暗い色と明るい色の2色しかないことがわかります。したがって、昼でも夜でも、その色のグラデーションヒストグラムは、それぞれ暗い領域と明るい領域を表す2つの明らかなピークである必要があります。グラデーションのヒストグラムが昼間は右に、夜は左にシフトするだけです。

画像ヒストグラム

2つのピーク間の谷をしきい値として選択すると、2つのタイプのピクセルを簡単に分離できます。ただし、画像のヒストグラムは不連続であることが多く、スパイクやジッターが多く、正確な極値を見つけるのは非常に困難です。

日本の技術者大津信行は、この谷に適した数式を見つけ、1979年に発表しました[2]。この二値化法を大津法大津法と呼びます。大津のアルゴリズムは、1次元フィッシャー判別分析の離散化シミュレーションに似ています。徹底的な方法を使用してしきい値の数を見つけ、これらのピクセルを2つのカテゴリに分類して、2つのタイプのピクセルの輝度のクラス内分散が最小になるようにします。クラス内分散は、2種類のピクセルの分散の加重和を指します。ここで、加重は、画像全体のピクセル数に対するそのようなピクセル数の比率を指します。

たぶん、あなたの写真には大きな違いのある2つの色の塊があるだけでなく、たとえば、このアイスクリームには3つの鋭いピークがあります。

3色アイスクリーム(アイスクリーム部分のヒストグラムをとる)

現時点では、大津アルゴリズムを少し拡張するだけで実行できます。大津のアルゴリズムのマルチレベルの一般化は、マルチ大津法マルチ大津法)になります[3]。

2.ローカルメソッド

ローカルメソッドは、適応しきい値処理とも呼ばれます。

ゲーム中、スポットライトが特定の領域を照らしていることが多く、光の一部は受信されるが光の一部は受信されないシーンが作成されます。

部分的に照らされた画像

部分的に照らされた画像にグローバルしきい値を適用すると、「どのしきい値パラメータを設定しても、画像全体の要件を満たすことができない」というのは恥ずかしいことかもしれません。たとえば、上の画像では、グローバルしきい値を直接適用した場合、左上半分の寿司がすべて露出していても、右下半分はまだ黒です。

局所的に照らされた画像のグローバルしきい値処理

現時点では、ローカルしきい値を使用して処理します。実際、人間の目にもこの操作ステップがあります。オブジェクトの色深度を決定します。これは、オブジェクトの周囲の色の影響を受けることが多いため、黒い歯が白く見えます。

ローカルしきい値法は、特定の領域の画像の照明が比較的近いことを前提としています。スライディングウィンドウで画像をスキャンし、スライディングウィンドウ中心点の明るさをスライディングウィンドウ内の他の領域(近隣領域と呼ばれるの明るさ比較します場合の輝度中心点であるの輝度よりも高い周辺中心点は、それ以外の場合は、黒としてマークされ、白色としてマーク。

ローカルしきい値スライディングウィンドウ

 

ここでは、ローカルしきい値の基本的な方法について説明します。実際に使用されるその他のローカルしきい値方法については、Chow-Kaneko適応しきい値方法[4]を参照してください。

ローカルしきい値の適用は非常に広範囲であり、特に白い紙と黒いテキストの処理には非常に効果的です。光学式文字認識(OCR)およびQRコードスキャンの多くのアルゴリズムは、ローカルしきい値操作を使用します。

たとえば、次の2次元コードは、典型的な部分的な光受容画像です。

部分的に照らされたQRコード

 

この画像にグローバルしきい値が使用されている場合(たとえば、下の画像が大津のアルゴリズムを使用してセグメント化されている場合)、とにかく正しくセグメント化することはできません。

グローバルメソッドはローカル光受信画像を処理できません

 

ローカルしきい値法は、画像を適切にセグメント化できます。写真から、局所閾値法は広いクリーンエリアの細部に敏感であることがはっきりとわかります。そのため、紙には気づかなかったスポットがたくさんあります。

QRコードをセグメント化する部分的な方法

実際のアプリケーションでは、必要に応じてさまざまな2値化方法を選択する必要があり、完全な方法はありません。

たとえば、敵のロボットを識別する場合、アーマーピースのライトバーは自己照明オブジェクトであるため、周囲光の影響を受けにくくなります。プログラムの効率を向上させるために、グローバルしきい値として固定数を使用します。

ベースの自動反撃

エネルギー器官の認識では、エネルギー器官は黒と白の2色しかないため、大津アルゴリズムとその多くのバリエーションを使用します。

大エネルギー器官の各領域のバイナリグラフ

空中ロボットがベースエリアのQRコードを読み取るとき、ローカルしきい値方式が使用されます。

空中ロボット認識ベース

しきい値ベースの画像セグメンテーション方法に加えて、一般的に使用されるセグメンテーション方法は、エッジ(Yanowitz-Bruckstein適応しきい値法[5]など)、領域(領域成長アルゴリズム[6]など)などに基づくこともできます。衛星画像処理、交通管制システム、工業生産監視、医用画像などの分野で使用され、大きな役割を果たしています。

脳組織画像のセグメンテーション

 

この記事で説明されているしきい値メソッドのOpenCV実装については、ブログを参照してください:Python + OpenCV画像処理実験

プロジェクト効果

参照

[1] Spirkovska、L。(1993)。画像セグメンテーション手法の概要。

[2]大津信行(1979)。「グレーレベルヒストグラムからのしきい値選択方法」。 IEEETrans。Sys。、Man。、Cyber。 9  (1):62–66。

[3] Ping-Sung Liao、Tse-Sheng Chen、Pau-Choo Chung(2001)。「マルチレベルしきい値処理のための高速アルゴリズム」。 J.Inf。科学 Eng。 17  (5):713–727。

[4]チョウ、CK; and Kaneko、T .:しきい値法による放射線画像の境界検出。パターン認識のフロンティア、渡辺聡編、アカデミック・プレス、ニューヨーク、1972年、61-82ページ。

[5] Yanowitz、SD、およびBruckstein、AM(1988年11月)。画像セグメンテーションの新しい方法。では パターン認識、1988年、第9回国際会議 (PP。270-275)。IEEE。

[6]リチャードソンHW。地域成長理論[M]。マクミラン、1973年。

おすすめ

転載: blog.csdn.net/m0_38106923/article/details/115206093