私は 51CTO アカデミーの講師、Jia Zhigang です。51CTO アカデミーの「4.20 IT リチャージ フェスティバル」(4 月 19 日〜20 日) を機会に、「OpenCV での KMeans アルゴリズムの応用」に関する私の経験を皆さんと共有したいと思います。本文はここです〜〜〜 1. KMeansアルゴリズムの紹介 KMeans アルゴリズムは 1967 年に MacQueen によって提案され、最も単純で最も一般的なデータ分類方法の 1 つです。一般的なデータ分析技術として、機械学習、データマイニング、パターン認識、画像解析などの分野で使用されています。分類の観点から見ると、KMeans はハード分類に属します。つまり、分類の数を手動で指定する必要がありますが、MeanSift 分類方法では、収束条件に応じて分類の数を自動的に決定できます。学習方法の観点から見ると、KMeans は教師なし学習方法、つまり学習プロセス全体にわたって人間の介入を必要とせず、データセット全体の分類を自動的に完了する学習方法に属します。与えられたデータ セット DS (データ セット) と入力カテゴリの数 K の場合、KMeans の全体的な動作原理は次のように説明できます。 1. 入力カテゴリ数Kに基づいてKカテゴリを定義し、各カテゴリの中心点を選択する 2. DS 内の各データ ポイントに対して次の操作を実行します。 - Kの中心点との距離を計算する - データポイントをK個の中心点のうち最も近い中心点のカテゴリに割り当てる 3. Kカテゴリの各データポイントの平均値を計算して、新しいK中心点を取得します。 4. 新しいK中心点と最初のステップで既に存在していたK中心点の違いを比較する - 両者の差が変化しないか、指定されたしきい値未満の場合、分類は終了します。 - 両者の差または条件が満たされない場合は、新しく計算された中心点の値を K カテゴリの新しい中心点として使用し、手順 2 ~ 4 を引き続き実行します。条件が満たされるまで、終了します。 数学的な観点から見ると、KMeans は K 個のカテゴリを見つけ、その中心点と各カテゴリ内の各データとの差の二乗和を最小化することです。このプロセスを実現するには、上記の手順 2 から 4 を収束するまで継続的に繰り返す必要があります。式は次のとおりです。 上記はKMeansアルゴリズムの基本的な考え方です。アルゴリズムを実装または適用する場合、注目すべき点が3つあります。 1. 初期の K カテゴリの各カテゴリの中心点の選択については、ほとんどのアルゴリズム実装でランダム選択と手動指定の 2 つの方法がサポートされています。OpenCV の KMeans 実装でも、この 2 つの方法がサポートされています。 2. 多次元データのサポート。ほとんどの場合、分類したい特徴オブジェクトの記述データは、単なる 1 つのデータ特徴ではなく、特徴ベクトルです。OpenCV は、Mat オブジェクトの構築を通じて、多次元データの KMeans 分類サポートを実装します。 3. 収束条件 - 一般的に、指定された反復回数に達するか、2つのRSS値の差が指定されたしきい値未満になると、分類プロセスが終了し、最終的な分類結果が出力されます。 次の図は例です。黒い点はデータポイントを表し、十字は中心点を表します。初期入力分類番号 K=2 の場合、KMeans の各ステップの結果は次のようになります。 2. OpenCVにおけるKMeans関連関数の説明 KMeans は OpenCV コア モジュールの API 関数です。 各パラメータの詳細な説明は次のとおりです。 - データは入力データセットを表します。これは 1 次元または多次元データであり、型は Mat 型です。次に例を示します。 マットポイント(カウント、2、CV_32F) データ セットが 2 次元の浮動小数点データ セットであることを示します。 - K はカテゴリの数を表します。バイナリ分類では K=2 が最も一般的です。 -bestLabels は、計算後の各データ ポイントの最終分類インデックスを表し、INT 型の Mat オブジェクトです。 -criteria はアルゴリズムの終了条件を示します。最大サイクル数または指定された精度しきい値に達すると、アルゴリズムは分類の反復計算を停止します。 - 試行回数は、最良の分類結果を得るためにアルゴリズムが異なる初期分類を試行する回数を示します。 - フラグは、初期の中心点を選択するために使用する方法を示します KMEANS_RANDOM_CENTERSは中心点をランダムに選択することを意味します KMEANS_PP_CENTERSは集中化アルゴリズムに基づいて選択される。 KMEANS_USE_INITIAL_LABELS 最初の分類中心点は入力中心点を使用する - Centers は、各分類出力の中心点データを表します。 3. 応用例 - KMeans を使用した画像セグメンテーション 画像処理における KMeans の典型的な応用シナリオは、ユーザーが入力した分類の数に応じて、画像領域の自動セグメンテーションを実現することです。この例では、OpenCV KMeans 関数に基づいて自動画像セグメンテーションを実現します。カラー画像の場合、各ピクセルには RGB の 3 つのコンポーネントがあります。画像全体を 3D データ セットと見なすことができます。この 3D データ セットを KMeans 関数の入力パラメータとして渡すだけです。アルゴリズムの実行後、分類マークのインデックスに応じて異なる色を設定できます。デモ プログラムの実装手順は次のとおりです。 1. 入力画像をデータセットに変換する 2. KMeansアルゴリズムを使用してデータを分類する 3. 各データポイントの分類インデックスに従って画像を色で塗りつぶし、セグメント化された画像を表示します。 操作効果は以下のとおりです。 完全なコード実装は次のとおりです。
著者について Jia Zhigang: 書籍の著者、51CTO Academy の契約講師。画像処理関連分野に特化し、OpenCV や ImageJ などの開発フレームワークに精通しています。 51CTOアカデミー4.20 ITチャージングフェスティバル (19日と20日は、100本のビデオコースが無料で受講でき、会員はビデオコースを40%割引で受講でき、非会員は30%割引、パッケージはさらに20%割引、マイクロジョブは2,000元の大幅割引をお楽しみいただけます) アクティビティリンク: http://edu..com/activity/lists/id-47.html?wenzhang 関連するビデオチュートリアル: OpenCV ビデオ分析とオブジェクト追跡の実践チュートリアル http://edu..com/course/course_id-8837.html |
<<: ディープラーニング(CNN RNN Attention)を使用して大規模なテキスト分類問題を解決する - 概要と実践
Google、Facebook、Amazon、Apple、Microsoftなどの大手アメリカのテク...
[[355787]]画像ソース: https://pixabay.com/images/id-537...
人工知能 (AI) は、過去 10 年ほどの間に SF の世界から現実の世界へと移行し、地球上のほぼ...
[[205964]]建国記念日の祝日は終わったが、仕事のために帰省するラッシュは続いている。ちょうど...
最近、AIコードエディタCursorが人気になってきました—— GPT-3.5/GPT-4 に接続す...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
海外メディアの報道によると、悪名高いスパムロボットが所有する7億件の電子メールアドレスと、使用してい...
インテリジェント音声アシスタントとチャットボットは、現在人工知能のホットスポットであり、画期的な進歩...
ブロックバスター社の映画には毎年人工知能が満載されており、昨年も例外ではありませんでした。 『ブレー...
自動車業界から大きな注目を集めるアポロオープンプラットフォームは、新たな量産時代を迎えました。 7月...
画像マッチング応用:ターゲット認識、ターゲット追跡、超解像度画像再構成、視覚ナビゲーション、画像ステ...
[[233069]]アリ姉の紹介:「トマト」を検索すると、その栄養価やカロリーがわかるだけでなく、...