【第2章:OpenCvアルゴリズムの基礎紹介と応用】

1. ディレクトリ

  この共有のテーマは、OpenCv アルゴリズムの基本的な導入と応用であり、次に、次の 5 つの側面に焦点を当てます。

2. 画像処理工程

  画像処理プロセスは、前処理、セグメンテーション、モルフォロジー演算、ターゲット フレームの選択として簡単に要約できます。

1)通常、視覚センサーの材質特性、作業環境、電子部品などの影響により、画像にノイズや照明ムラが生じ、画像の観察可能な情報が損なわれることがよくあります。したがって、最初のステップは、画像に対してノイズ低減、フィルタリング、強調などの前処理操作を実行して、後続の処理に適したものにすることです。
2)画像セグメンテーションの 2 番目のステップも、処理プロセスで最も重要なステップであり、画像処理の主な目的は、対象のターゲット領域をセグメント化して選択することです。それは、対象物を背景から分離することです。その中で、古典的な従来のセグメンテーション手法には、しきい値セグメンテーション、エッジ セグメンテーションなどが含まれ、深層学習には、セマンティック セグメンテーションとインスタンス セグメンテーションが含まれます。
3)3 番目のステップでは、ターゲットと背景のセグメンテーションが完了した後、形態などの画像間の数学的演算に関連する操作を実行し、ノイズ ポイントの除去、穴の穴埋め、セグメント化された画像上の接着オブジェクトのセグメント化などの操作を実行する必要があることがよくあります。バイナリ画像。
4)観察と表示を容易にするために、最後のステップはターゲットを選択することです。

3. 画像の前処理

  画像の前処理には主に、画像の強調と一部のグレースケール、正規化、スケール変換、トリミング、画像の変換、回転、その他の操作が含まれます。この前処理で共有される主な内容は画像強調部分であり、画像強調の目的は、画質を最適化し、その後のアルゴリズム処理を容易にすることです。以下では、ノイズの分類、ノイズを除去してエッジをシャープにする方法、画像の照明が不均一な場合の調整方法について説明します。

3.1 騒音の分類

3.1.1 ランダムノイズ

  ノイズの場合、その分類は主にノイズの特性と分布特性に関連します。一般的な 3 種類のノイズを次に示します。1 つ目はランダム ノイズです。ノイズ分布には規則的な特性がありません。キャンセル効果は平均フィルタリングの方が優れています。

3.1.2 塩胡椒ノイズ

   2 番目のタイプは塩胡椒ノイズで、最大値と最小値 (黒 0 白 255 ピクセル) を持つ異常なピクセルの一種を示します。これを除去するにはメディアン フィルターが適しています。

3.1.3 ガウスノイズ

  3 つ目はガウス ノイズで、その分布はガウス分布に準拠しており、ガウス分布は私たちがよく知っている正規分布であり、ガウス フィルタリングを使用すると除去効果が高くなります。もちろん、ノイズには他にも多くの要因が関係していますので、ここではあまり紹介しません。

3.2 フィルタリング

3.2.1 平均値フィルタリング

ノイズの種類を紹介した後、より高画質な画像を取得するために、さまざまなノイズに応じて画像をフィルタリングする方法を紹介します。
1)1 つ目は平均値フィルタリングです。その原理は、各ピクセルの値を、それを含むフィールド内のピクセルの平均値に置き換えることです。
2)2 番目の図に示されているフィルター カーネルのサイズは 3X3 で、赤い中間点は、それを含む 3x3 フィールド内のピクセルの平均値に置き換えられます。画像を移動すると、ぼやけた画像が得られます。
3)3 番目の図は、ランダム ノイズに対するさまざまなフィルターのフィルター効果を示しています。その中で、平均値フィルターは優れた効果を持っています。実際、メディアンフィルタリングの効果も良好であることがわかります。したがって、ノイズ除去の際、ランダムノイズに対して平均値フィルタのみを選択できる必要はなく、選択するフィルタは固定ではなく、実際の効果に応じて調整する必要があります。

3.2.2 メディアンフィルタリング

  • 1) 2 番目はメディアン フィルタリングです。その原理は平均値フィルタリングに似ています。前のフィルタはフィルタ ウィンドウの中心値の代わりに平均値です。ここでは中央値が使用されます。

  • 2)最初の図に示すように、フィルター ウィンドウを基準にしてすべてのピクセルを並べ替えて中央値を取得し、スライディング ウィンドウの中心点のピクセル値を置き換えます。ここで、255 はフィルタリング後に 10 になります。

  • 3) 2 番目の図では、平均値フィルター、メディアン フィルター、およびガウス フィルターを使用して塩コショウ ノイズを含む画像をフィルター処理しています。このうちメディアン フィルターの効果が優れています。

3.2.3 ガウスフィルタリング

1)3 番目のタイプはガウス フィルタリングです。原理は、各ピクセルの重みがガウスに従って分散されることです。ウィンドウの中心点に近づくほど、フルタイムが大きくなり、中心ピクセルへの影響が大きくなります。 。
2)ここでは 3x3 と 15x15 のガウス フィルターの合計を生成して視覚化しましたが、中心に近づくほどピクセル値が大きくなり、明るさが高くなります。フィルタリングの原理は前の 2 つと似ていますが、3 つはフィルタ カーネルがすべて異なります。
3)図 3 の実験では、ガウス ノイズが平均値、中央値、ガウス フィルタリングによってフィルタリングされており、ガウス フィルタリングの効果は比較的良好です。

3.2.4 双方向フィルタリング

1)最初の 3 つのフィルタも、画像上のノイズの影響を除去しながらエッジ情報を弱めます。そのため、ここではバイラテラル フィルタリングについて簡単に説明します。バイラテラル フィルタリングは、エッジを保持するフィルタリングです。画像をぼかし、ノイズの影響を軽減しながら、画像を保持することができます。エッジ情報 エッジ情報 '
2)原理は次のとおりです: ガウス フィルタリングに基づいて、画像の空間的近接性とピクセル値の類似性を組み合わせた折り畳みプロセスです。言い換えれば、空間的近接性とピクセル値の類似性は、画像間の距離です。ピクセルとピクセルの値。2 つのピクセル間の距離が非常に近く、色が非常に近い場合、影響は大きくなります。重量は非常に軽くなります。これにより、エッジ付近のピクセル値が確実に維持され、エッジ保存効果が得られます。
3)上の 2 つの写真からわかるように、ガウスぼかしを画像に適用するだけではさまざまなエッジ情報がぼやけますが、バイラテラル フィルタリングではぼかしに基づいてエッジ情報が保持されます。

3.2.4 モーションブラー

1)先ほどのフィルタリングは、主に画質へのノイズの影響を軽減することを目的としており、フィルタブラーが導入されていると考えられます。以下で紹介するモーションブラーは、カメラのシャッタースピードが遅いことや、被写体の移動速度が速いことによっても発生します。撮影時の振動や動きにより撮影画像にわずかなズレが生じ、一方向にブレが生じます。
2)解決策には、シャッター速度の増加、カメラのフレームレートの増加、振動の減衰と緩衝の増加などの物理的方法が含まれます。また、画像修復ネットワークを使用してぼけを除去するソフトウェア方法もあります。

3.2.4 シャープネスフィルター

1)前回は主にノイズとノイズとボケの除去方法について説明しましたが、次はボケの逆である画像の鮮明化について説明します。
2)原理は、画像内の高周波情報を強化して画像の詳細をより鮮明にすることです。いわゆる高周波情報とは、画像のエッジやコーナーなど、画像の急速に変化する部分を指します。鮮明化フィルタリングを通じて画像をスライドさせ、最終的に鮮明化された画像を出力します。
3)観察を容易にするために、図 1 に示すように、輪郭 1 のピクセル値が 1 ~ 10 の画像を入力し、フィルタリング後、輪郭 1 のピクセル値と隣接するピクセル値の差が大きくなり、コントラストが強くなり、画像の輪郭エッジをより良く表示できます。
4)中でも画像の鮮鋭化は監視やセキュリティなどで広く使われており、鮮鋭化を行わない画像と鮮鋭化を加えたダイナミックな画像があり、元の画像に比べて鮮明化した画像のほうが対象物がはっきりと見えやすくなります。フィルター カーネル値の合計も画像の明るさに影響します。1 より大きい場合、画像の変数が増加します。ここで、合計を 0 に設定すると、画像は暗くなり、エッジになります。検出。

3.3 画像補正

3.3.1 ヒストグラムの等化

1)画像の前処理では、ぼかしのノイズ除去やエッジの鮮明化に加え、照明が不均一なために取得した画像が過剰または暗すぎる画像になる場合があるため、多くの場合、画像を均一化し、画像全体の明るさとコントラストを調整する必要があります。ここではヒストグラム等化を例として取り上げます。
2)画像ヒストグラム。各ピクセル値の数をカウントします。ピクセル間隔のジオメトリが特定の間隔内にある場合、画像が明るすぎるか暗すぎることがわかります。そのため、いくつかの線形および非線形変換を使用してピクセルを 0 ~ 255 の間で均等に分配し、明るさを調整できます。
3)また、図 1 に示すように、画像の明るさを調整する方法は数多くあるため、ここでは詳しく説明しません。

经过图像预处理,下面我们将快速对图像分割板块进行介绍。图像分割图像处理中最关键的环节,下面将从阈值分割、边缘检测分割、粘连物体分割三个方面进行介绍。

4. 画像のセグメンテーション

  • 従来のセグメンテーション方法には、主にしきい値セグメンテーション、エッジ検出セグメンテーション、および接着オブジェクト セグメンテーションが含まれます。

4.1 セグメンテーションの種類の分類

1)画像セグメンテーションには従来のアルゴリズムによるセグメンテーションとディープラーニングによるセグメンテーションがありますが、ここでは主に従来のアルゴリズムによるセグメンテーションについて紹介します。セグメンテーションは、対象物と背景のセグメンテーションと、前者に基づいて画像をセグメンテーションして、つながっているオブジェクトをセグメンテーションすることの2つに分けられるのではないかと個人的には感じています。
2)前後シーンの分割は、閾値分割とエッジ検出分割に分けられます。閾値セグメンテーションは、単一閾値セグメンテーションと複数閾値セグメンテーションに細分化できます。エッジ検出セグメンテーションは主に、微分、勾配、およびその他の関連演算子に基づいて画像をフィルター処理して、画像の輪郭を取得します。
3)付着オブジェクトのセグメンテーションには、形態学的セグメンテーション、流域セグメンテーション、および幾何学的セグメンテーションという 3 つの最も一般的な方法があります。以下に私がこれまでに行った事例も共有し、紹介していきます。

4.2 単一閾値セグメンテーション

  1 つ目は、閾値分割における単一閾値分割であり、グレースケール画像の分割に適しているだけでなく、単一チャネルの画像であればこの方法で分割できます。単一しきい値セグメンテーションの場合、通常、グレースケール ヒストグラムを使用して画像ピクセルの分布を表示できます。図 2 に示すように、背景色は黒で、数値は大きくなります。すべてのピーク値は 0 に近いです。前景は灰色です。 -白で数字が小さい 130~230の間で設定します。したがって、前後の背景をセグメント化するには、2 つのピークの間にしきい値を設定するだけで済みます。

4.3 さまざまな色空間チャネルを分離する

  単一チャネルの場合、ここに簡単な挿入があります。しきい値セグメンテーションを行う場合、グレースケール チャネルに限定することはできません。場合によっては、各色空間で画像をセグメント化し、どのチャネルの特徴がより明白であるかを観察し、対応するセグメンテーションを使用することもできます。セグメンテーションを実行するチャネル。さらに、特定のチャネルの相関関係を使用してカラー セグメンテーションも実行されます。

4.4 複数の閾値セグメンテーション

1)単一閾値セグメンテーションや複数閾値セグメンテーションに比べて比較的柔軟であり、適用対象は単一チャネル多閾値セグメンテーションまたは複数チャネル多閾値セグメンテーションです。
2)ここでは、単一チャネルの複数閾値セグメンテーションについて、Otsu アルゴリズムと適応閾値セグメンテーション アルゴリズムを紹介します。大津アルゴリズムは最大クラス間差分法とも呼ばれ、その原理は、グレー値を複数のしきい値に分割し、各しきい値を組み合わせて、画像をいくつかのクラスに分割することです。ピクセル数と平均グレー値に基づいて、画像をいくつかのクラスに分割します。この閾値以下のクラス間分散を求め、クラス間分散が大きいほどセグメンテーション効果が高いことを示します。
3)適応的閾値セグメンテーション (ローカル閾値処理とも呼ばれます) では、最初に画像がいくつかの領域に分割されます。領域内の各ピクセルの閾値は、その部分のピクセル値の分布によって決定されます。輝度がより高い領域の画像ピクセル閾値は次のようになります。輝度が高い画像ピクセルの閾値は高く、画像領域が低いほど閾値は小さくなります。照明が不均一な画像のセグメンテーションに非常に適しています。
4)上記の内容は主に、単一チャネルでの複数のしきい値セグメンテーションに関するものです。以下で共有されるコンテンツは、マルチチャネルでのマルチしきい値セグメンテーションです。マルチチャネル複数閾値セグメンテーションは、実際には、各チャネルで単一閾値セグメンテーションを実行し、最終的に各チャネルの和集合を計算するものとして理解できます。私たちの一般的なカラー セグメンテーションは HSV 色空間ですが、この方法は他の色空間でのセグメンテーションにも適切に拡張できます。方法としては、RGB を使用して HSV 色空間に変換し、色をセグメント化して検出して配置します。

4.5 エッジ検出

4.5.1 エッジ検出の場合

1)閾値セグメンテーションについて説明した後、次の内容はエッジ検出セグメンテーションです。エッジ検出は画像検出でも広く使用されています。
2)ここでは、照明がわずかに不均一である場合に、文字情報を分割して背景を変更する方法の例を示します。閾値セグメンテーションから解決した場合、効果はあまり良くありませんが、Cannyエッジ検出アルゴリズムを使用すると、不均一な照明の影響を回避し、輪郭を直接検出し、形態学的演算と塗りつぶしを実行してからマスク演算を実行できます。 、ボトム変更機能を実現できます。
3)実際、エッジ検出は前述のファジー フィルター処理と似ており、さまざまな演算子テンプレートを使用して画像に対して対話型の畳み込み演算を実行し、それによって画像内のピクセル値が大きく変化する領域、つまりエッジを検出します。

4.5.3 さまざまなエッジ検出演算子

  • ここでは、さまざまなエッジ検出演算子のテンプレート、特定の原理、および対応する利点と欠点を示しますが、ここでは詳細については説明しません。

4.6 その他のセグメンテーション アルゴリズム - 背景減算モデル

  • 上記の古典的なセグメンテーション方法に加えて、移動オブジェクトをより効果的にセグメント化する背景減算アルゴリズムもあります。最初のアニメーションはパッション フルーツ選別機でのパッション フルーツの識別であり、2 番目のアニメーションはメカ マスター レーダー ステーションでの敵車両の識別と検出の応用です。時間が限られているため、後ほど江都についての共有を加速し、具体的な原則については後ほど非公開で説明します。

DJI メカマスター レーダー ステーション ローカル車両検出

4.7 流域分割アルゴリズム、幾何学的分割アルゴリズム、形態学的分割アルゴリズム

1)上記の閾値セグメンテーション、エッジ検出、および背景差分セグメンテーション手法はすべて前景および前景セグメンテーションに属しますが、セグメント化されたオブジェクトが付着している場合があり、この場合はクラス間セグメンテーションが必要になります。
2)現時点では、主に流域アルゴリズムセグメンテーション、幾何学的セグメンテーション、形態学的セグメンテーションに分かれていますが、形態学的セグメンテーションについては次章で説明します。流域セグメンテーションは、接着している円形オブジェクトのセグメント化に比較的良い効果をもたらしますが、接着が強すぎるとセグメント化が困難になります。
3)幾何学的分割の場合、部品のサイズが固定されているため、工業検査では効果が高いと思います 例えば、途中でコインを検出する場合、焦点を検出し、角の点をフィルタリングし、フィルタリングすることで距離を計算します接続された窪みの焦点を取得して ROI 分析を行い、最後にセグメンテーションを行います。
4)マスクベルトと不織布の分割は、不織布の最小外接長方形を求め、その短辺の座標から座標式を求め、その直線を用いて切断する。

图像预处理、并分割之后,往往需要对其二值化图像进行形态学操作。

5. 形態学的操作

  • 形態学的操作には、主に、拡張、浸食、開閉操作、上部および下部のキャップ、形態学的勾配、およびフラッディング充填などの操作が含まれます。

5.1 原則

  • 1)形態素演算の原理を誰でもすぐに理解できるように、ここではアニメーションを作成します。原理は前のフィルタリング演算と同じです。入力画像内で構造要素がスライドし、横切るように動きます。構造要素が入力画像の白画素点に接している 重ね合わせると、構造要素の白画素と重なる画素が白になります。アニメーションは誰でも見ることができます。

  • 2)写真はopencv APIを使用した検証です。

  • 3)ここにちょっとしたトリックがあります, 構造要素を定義することです. 形状は絵の形で描くことができます. たとえば, シングルチャンネルの黒点の背景画像を定義し, その上に円を描きます. 実際には,構造要素は円です。他の形状を直接定義することも、組み合わせて定義することもできます。

5.2 膨張、腐食、開動作、閉動作

  • 形態学のさまざまな操作については、以下で簡単に紹介します。
    1)膨張と腐食は比較的直感的で、白い部分が太くなったり薄くなったりします。
    2)オープン操作では、最初に腐食してから拡張するため、一部のホワイト ノイズを効果的に除去できます。閉じる操作はその逆で、最初に膨張してから腐食し、空隙を効果的に埋めることができます。

  • トップ ハットとボトム ハットの場合、実際にはバイナリ イメージ間の減算演算です。トップハットは、元の画像からオープニング操作を除いたもので、画像のノイズや明るい領域を見つけることができます。ボトムハットは、元のカラー イメージから閉じた操作を減算して、穴を見つけ、イメージの暗い領域を分離します。

5.3 上(セレモニー)帽子、下(黒)帽子

5.4 形態学的勾配、

  形態学的勾配は、拡大から浸食を引いたものであり、同心円を得るために大きな円から小さな円を引いたものと同様になります。また、シードピクセルをランダムに生成して縦横の線を生成し、輪郭を塗りつぶすフラッドフィリングもありますが、実はこの操作は輪郭を利用しても同様の効果が得られます。

通过图像预处理、图像分割、形态学等相关操作,最后就是为了对我们的一个目标进行框选显示保存。

6. ターゲットフレームの選択

  • 対象フレーム選択表示では、輪郭重心を点で表示したり、輪郭やハフ直線、ハフ円で検出したり、右接続長方形、最小外接長方形、十字多角形も表示できます。 。

7. まとめ

  • 以上が今日私が共有した一般的な内容ですが、実際には各アルゴリズムだけでも長く話せてしまうので、今夜はさらに内容を共有します。私のこれまでのopencv学習のまとめが皆様のお役に立てれば幸いですが、私の力不足による至らない点や表現上の誤りがあるかもしれませんので、修正して一緒に議論していただければ幸いです。ご清聴ありがとうございました。

8. 備考

一部の画像素材はインターネットから取得したものであり、学術的な共有のみに使用されます。侵害がある場合は、バックエンドに削除を依頼してください。


1.理论系列:

第1章: pycharm、anaconda、opencv、pytorch、tensorflow、paddlexなどの環境構成の概要 [画像処理py編] ==> 第2章:

OpenCvアルゴリズムの基礎入門と応用

第3章: OpenCv画像とビデオの読み書き操作および基本的なアプリケーション

第 4 章: OpenCv 閾値分割/二値化の概要 (シングル チャネル、マルチ チャネル画像)


2.项目系列:

プロジェクト 1: グレード 4 および 6 の書き換えシステム
プロジェクト 2: 実戦: 粘着オブジェクトの分割 - 幾何分割を使用したボトルキャップの分割検出
プロジェクト 3: 実戦: 粘着オブジェクトの分割 - 幾何分割を使用したコインの分割検出
プロジェクト 4: 実戦 章: 分割接着性オブジェクトのセグメント化 - 幾何学的セグメント化を使用して細胞のセグメント化と検出を実現する
プロジェクト 5: 実践的な章: 接着性オブジェクトのセグメント化 - 分水界アルゴリズムを使用してサトウキビのセグメント化と検出を実現する

おすすめ

転載: blog.csdn.net/DGWY161744/article/details/129645502