Ruan Yifeng: ガウスぼかしアルゴリズム

Ruan Yifeng: ガウスぼかしアルゴリズム

通常、画像処理ソフトウェアには、画像にぼかし効果を加えるための「ぼかし」フィルターが用意されています。

「ぼかし」アルゴリズムは多数ありますが、そのうちの 1 つは「ガウスぼかし」と呼ばれます。画像処理には正規分布(「ガウス分布」とも呼ばれます)を使用します。

この記事では「ガウスぼかし」アルゴリズムを紹介します。これは非常にシンプルで理解しやすいアルゴリズムであることがわかります。本質的には、これは多くの場面に適用できるデータ平滑化技術であり、画像処理は直感的な応用例を提供します。

1. ガウスぼかしの原理

いわゆる「ぼかし」は、各ピクセルが周囲のピクセルの平均値を取るものとして理解できます。

上の図では、2 が中央の点であり、周囲の点はすべて 1 です。

「中間点」は「周囲の点」の平均をとって 1 になります。数値的には、これは一種の「平滑化」です。グラフィック的には、これは「ぼやけた」効果に相当し、「中間点」の詳細が失われます。

当然ですが、平均を計算する際の値の範囲が広くなればなるほど、「ぼかし効果」は強くなります。

上記は、元の画像、ぼかし半径 3 ピクセル、ぼかし半径 10 ピクセルの画像です。ぼかし半径が大きいほど、画像はぼやけます。数値的に見ると、値はより滑らかになります。

次の質問は、各ポイントは周囲のピクセルの平均値を取る必要があるため、重みはどのように割り当てるべきかということです。

単純な平均化を使用する場合、画像は連続しており、点が近いほど関係が近くなり、点が遠いほど関係が遠くなるため、明らかにあまり合理的ではありません。したがって、加重平均の方が合理的であり、ポイントが近いほど重みが大きくなり、ポイントが遠いほど重みが小さくなります。

2. 正規分布の重み

正規分布は明らかに望ましい重量分布パターンです。

グラフ上では、正規分布はベル型の曲線です。中心に近いほど値は大きくなり、中心から離れるほど値は小さくなります。

平均値を計算するときは、「中心点」を原点として使用し、正規曲線上の位置に応じて他の点に重みを割り当てるだけで、加重平均値が得られます。

3. ガウス関数

上記の正規分布は 1 次元ですが、画像は 2 次元なので、2 次元の正規分布が必要です。

正規分布の密度関数は「ガウス関数」と呼ばれます。その 1 次元形式は次のとおりです。

ここで、μ は x の平均、σ は x の分散です。平均を計算する場合、中心点が原点となるため、μ は 0 になります。

1 次元ガウス関数に従って、2 次元ガウス関数を導出できます。

この関数を使用すると、各ポイントの重みを計算できます。

4. 重みマトリックス

中心点の座標が (0,0) であると仮定すると、それに最も近い 8 つの点の座標は次のようになります。

[[98012]]

その他のポイントも同様です。

重み行列を計算するには、σ の値を設定する必要があります。 σ=1.5 と仮定すると、ぼかし半径 1 の重み行列は次のようになります。

これら 9 つのポイントの重みの合計は 0.4787147 です。これら 9 つのポイントの加重平均のみを計算する場合、それらの重みの合計は 1 に等しくなければなりません。したがって、最終的な重みマトリックスを取得するには、上記の 9 つの値を 0.4787147 で割る必要があります。

5. ガウスぼかしを計算する

重みマトリックスを使用すると、ガウスぼかし値を計算できます。

ピクセルが 9 個あり、グレースケール値 (0 ~ 255) が次のとおりであると仮定します。

各ポイントには、そのポイント独自の重み値が掛けられます。

得る

これら 9 つの値を合計したものが中心点のガウスぼかし値になります。

このプロセスをすべてのポイントに対して繰り返すと、ガウスぼかし画像が得られます。元の画像がカラー画像の場合、3 つの RGB チャネルに対して個別にガウス ブラーを実行できます。

6. 境界点の処理

ある点が境界上にあり、その周囲に十分な点がない場合はどうなるでしょうか?

回避策としては、既存のポイントを反対側の対応する位置にコピーして、完全なマトリックスをシミュレートします。

オリジナルリンク: http://www.ruanyifeng.com/blog/2012/11/gaussian_blur.html

<<:  すべての最大共通部分列を見つけるためのアルゴリズムの実装

>>:  ルーティングテーブルとルーター選択アルゴリズム

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

Gemini 1.5 ハンズオンレビュー: Sora は偽物に見えるが、もっと素晴らしい機能がある

Googleの「反撃」が来た!ジェミニはソラに脚光を奪われましたが、今は再び脚光を浴びているようです...

...

...

2018 年の最もクールな機械学習と人工知能のスタートアップ 10 社

人工知能革命の到来は、IBMの先駆的な研究者アーサー・サミュエルが世界初のコンピューターにチェッカー...

レポート: Meta の Llama 2 と OpenAI の ChatGPT の「オープンソース」は透明性に欠ける

オランダのラドバウド大学は8月2日、MetaやOpenAIなどの企業が「オープンソース」という用語を...

ビッグニュース: IBM が 3 つの抗がん AI プロジェクトをオープンソース化しました。

最近、IBM は、がん治療の課題を克服することを目的とした 3 つの AI プロジェクトをオープンソ...

AIプロジェクトでKubernetesを使用する方法

AI プロジェクトで Kubernetes を使用する利点は何でしょうか? Kubernetes が...

機械学習に関する7つの誤解

ディープラーニングを学ぶ過程では、私たちが当たり前だと思っているさまざまな噂やさまざまな「こだわり」...

清華大学のAI学生が顔を見せて歌う、この応用は将来に期待される

最近、清華大学初のAI学生がついにその本性を現した。伝えられるところによると、彼の名前は華志兵。清華...

「機械による人代替」が雇用問題を引き起こす。第一線で働く人々の未来はどうなるのか?

人工知能技術の推進により、製造業の変革と高度化が進み、「機械が人に代わる」という波が起こり、その社会...

ThunderSoft の Sun Li: AI 対応産業の課題と解決策

[51CTO.comからのオリジナル記事] 現在、人工知能はセキュリティ、金融などのサブセクターを強...

...

初心者の機械学習エンジニアが犯しがちな6つの間違い

機械学習では、製品やソリューションを構築する方法が多数あり、それぞれが異なることを前提としています。...

AIに人間の思考や行動を模倣させる方法

AI システムは、人間の知能の特定の側面を模倣し、物体の検出、環境のナビゲーション、チェスのプレイ、...

ジェフ・ディーンが2020年の機械学習のトレンドについて語る:マルチタスクとマルチモダリティが大きく進歩する

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...