テンプレートマッチングとは?簡単なガイド
テンプレートマッチングと呼ばれる画像処理技術、その仕組み、コンピュータービジョンの歴史における意義をご紹介します。

画像には、人間なら簡単に見つけられる細かな情報が数多く含まれていることがよくあります。しかし、機械にとってこの作業はそれほど単純ではありません。機械はデジタル画像を画素値のグリッドとして認識するため、照明、角度、スケール、鮮明さのわずかな変化でさえ混乱の原因になります。
機械の画像分析能力は、一般に密接に関連する2つのコンピューターサイエンス分野、画像処理とコンピュータービジョンに由来します。両者は連携して機能することが多い一方で、中心となる目的は異なります。
画像処理は、画像を未加工のデータとして扱うことに重点を置きます。画像を強調することはできますが、内容の理解を試みるものではありません。そこで違いを生むのがコンピュータービジョンです。コンピュータービジョンは、機械が画像や動画を理解できるようにする人工知能 (AI)の一分野です。
基本的な画像処理は長年にわたって利用されてきましたが、最先端のコンピュータービジョンの革新ははるかに最近のものです。この分野の歴史を理解するには、かつてより古く伝統的な手法でこれらの問題をどのように解決していたかを振り返るのがよい方法です。
たとえば、画像マッチングがあります。これは、より大きな画像の中に特定の物体やパターンが存在するかをシステムが判定する、一般的なビジョンタスクです。
現在では、AIとディープラーニングを使って、この処理を簡単かつ正確に実行できます。しかし、2010年代に最新のニューラルネットワークが台頭する前は、テンプレートマッチングと呼ばれる、はるかに単純な手法が標準的な方法でした。

図1. テンプレートマッチングの例(出典)
テンプレートマッチングは、小さなテンプレート画像を大きな画像上で画素単位にスライドさせる画像処理技術です。この畳み込みに似たスライド処理によって、アルゴリズムは特定のパターンに最も近く一致する位置を見つけられます。
この記事では、テンプレートマッチングとは何か、そして最新の改善によって実世界の状況でどのように信頼性が高まるのかを説明します。それでは始めましょう。
テンプレートマッチングとは?#
テンプレートマッチングは、古典的なコンピュータービジョン技術とも呼ばれます。これは画像の画素(デジタル画像を構成する最小単位)を直接扱う手法です。大きな画像の中から、より小さなパターンを見つけるために使用されます。
このような手法は、大規模なデータセットで大きなモデルを学習させるのではなく、幾何学、光学、数学的なルールによって定義されます。つまり、テンプレートマッチングシステムは、2つの入力、すなわち入力画像(大きな画像)と小さなテンプレート画像(見つけたいパターン)の間で、明るさ、色、その他の画素情報を比較します。

図2. 画像Aと画像Bはテンプレートの例です。(出典)
テンプレートマッチングの主な目的は、大きなシーン内でテンプレートが現れる位置を特定し、画像のさまざまな領域との一致度を測定することです。テンプレートマッチングアルゴリズムは、テンプレートを大きな画像上でスライドさせ、各位置で類似度スコアを計算します。
スコアが高い領域は最もよく一致する領域とみなされ、テンプレートによく似ていることを示します。この手法は画素単位の比較に依存するため、物体の外観が変化しない、管理された環境で最も効果を発揮します。
たとえば、品質管理のラベル検証タスクにテンプレートマッチングを使用できます。ラベルのテンプレート画像と完成品の画像を簡単に照合し、ラベルの有無を確認できます。
テンプレートマッチングの仕組み#
テンプレートマッチングの仕組みを、手順に沿って説明します。
-
ステップ1 - 画像の準備: まず入力画像とテンプレート画像を読み込み、両方をグレースケール画像に変換します。テンプレートマッチングは画素値の比較に依存するため、色情報を取り除くことでノイズが減り、画像処理が高速化します。
-
ステップ2 - 画像上でテンプレートをスライド: 次に、テンプレートマッチングアルゴリズムは、大きな画像上でテンプレートを左上隅から1画素ずつスライドさせます。この移動における各ステップが1回の反復処理に相当し、アルゴリズムはテンプレートと同じサイズの画像パッチを入力画像から抽出します。
-
ステップ3 - 一致度の測定: 各画像パッチをテンプレートと数学的なマッチング手法で比較し、考えられる各位置について相関メトリクスまたは相関値を生成します。一般的な手法には、二乗差分(画素の輝度の数値的な距離を測定して合計不一致量を計算)、正規化相互相関(画素値を乗算して明暗パターンの一致度を判定)、相関係数(平均輝度を差し引き、照明が少し変化しても一致精度を維持)が含まれます。
-
ステップ4 - 最適な一致の特定: すべての位置を評価した後、使用した手法に応じて最大値または最小値を見つけ、アルゴリズムが最適な一致を選択します。通常、これらの結果にはしきい値を適用し、十分に高い信頼度スコアを持つ一致だけを受け入れることで、弱い検出や誤検出を除外します。
-
ステップ5 - 結果の強調表示: 最後に、検出された位置を元の画像上にマッピングします。通常は、一致した領域の周囲にバウンディングボックスを描画し、テンプレートが現れる位置を明確に示します。
テンプレートマッチングを実際に試す#
画像処理ベースのテンプレートマッチングは、さまざまな欠点があるため、動的な実世界のコンピュータービジョンソリューションのデプロイでは一般的に使用されません。ただし、試してみたい場合は、OpenCVのようなPythonライブラリを使うことで、この処理を簡単に実行でき、わかりやすいチュートリアルも利用できます。OpenCVには、複雑な数学的比較を処理するmatchTemplate関数が組み込まれています。
また、imread関数を使った画像の読み込みや、cvtColor関数を使って画像をグレースケールに変換する色変換など、単純なタスクに役立つ他の関数もサポートしています。画像を単一の輝度チャンネルに変換すると、matchTemplate内の数学的比較が大幅に高速化し、色ノイズの影響も受けにくくなるため、色変換は重要なステップです。
類似度マップを生成したら、OpenCVに含まれるminMaxLoc関数を使って検出を完了できます。この関数でマップ全体を走査し、正確な座標とともにグローバルな最小値と最大値を特定できます。使用したマッチング手法に応じて、minMaxLocはデータ内で最も高い相関値または最も低い誤差値を見つけ、最適な一致位置を即座に特定できます。
OpenCVに加えて、NumPyのようなライブラリは画像配列の処理や結果へのしきい値の適用に不可欠です。一方、Matplotlibは類似度マップと最終検出結果の可視化によく使用されます。これらのツールを組み合わせることで、テンプレートマッチングソリューションの構築とデバッグに必要な環境が整います。
テンプレートマッチングの実世界での応用#
テンプレートマッチングの仕組みをより深く理解できたところで、実世界のシナリオにおける応用を詳しく見ていきましょう。
伝統的な建築様式の特定#
文化遺産や建築研究では、地域によってデザインパターンがどのように異なるかを理解するため、研究者は歴史的な建物、寺院、記念碑の写真を分析する必要があります。高度なコンピュータービジョンモデルが広く採用される前は、こうした構造物の研究に画像マッチング技術を使用していました。
テンプレートマッチングを使うと、研究者は屋根の輪郭、窓の配置、壁面のモチーフなど、特定の建築的特徴に注目できます。テンプレートや参照画像を大きな画像上でスライドさせることで、繰り返し現れる形状を特定し、数時間かかることもある手作業による画像分析を減らせます。
興味深い例として、インドネシアの伝統家屋に関する研究があります。研究者は特徴的な要素の小さなテンプレートを作成し、実物大の写真と比較しました。この手法は、テンプレートに近く一致する画像領域を強調表示し、地域ごとの建築様式を分類するために使用されました。

図3. テンプレートマッチングを使ったインドネシアの伝統家屋の分類(出典)
産業用ビジョンシステムにおける物体検出#
産業環境では、部品の迅速な検出、組み立ての検証、欠陥の発見が可能なビジョンシステムが役立ちます。製造分野でディープラーニングが広く普及する前は、多くのチームがこうしたタスクの自動化に画像マッチング手法を試していました。
簡単に言えば、部品の参照テンプレートを使って生産ラインの画像をスキャンし、テンプレートと一致する領域を強調表示できます。部品が一貫した位置にあり、照明が安定している場合、この方法は効果的です。
テンプレートマッチングによる肺腫瘍の検出#
医療に最先端技術が大きな影響を与えている現在でも、CTスキャンなどの医用画像から健康上の問題を診断することは依然として困難です。従来、放射線科医はすべてのスキャンスライスを手作業で確認する必要があり、この作業には極めて高い精度と多くの時間が求められました。
ディープラーニングが医療に適用される前は、研究者はワークフローを効率化し、異常の特定を支援するためにテンプレートマッチングの利用を試みていました。この手法の好例が、肺腫瘍や結節の検出です。
この手法では、研究者が腫瘍の典型的な形状と輝度を表す参照テンプレートを作成します。次にシステムがこれらのテンプレートを患者のスキャン画像上でスライドさせ、すべての座標で類似度を測定します。

図4. テンプレートマッチングによる肺腫瘍の検出(出典)
テンプレートマッチングのメリットとデメリット#
テンプレートマッチングを使用する主なメリットは次のとおりです。
- 直感的でわかりやすい: テンプレートマッチングは理解や実装が簡単なため、AIやコンピュータービジョンの初心者にとって理想的な出発点です。
- 管理された条件下で信頼性が高い: 一貫した照明下のグレースケール画像で適切に機能し、パターンと背景が安定している場合に正確な結果が得られます。
- 容易に統合できる: OpenCVのようなPythonライブラリを使えば、複雑なセットアップや大きな計算負荷なしに、テンプレートマッチングを実際のプロジェクトへ迅速に適用できます。
テンプレートマッチングには多くのメリットがある一方で、限界もあります。次のような課題に注意してください。
- スケールと回転に敏感: テンプレートのサイズや向きの変化によって、精度が低下する可能性があります。
- 照明とコントラストに依存: テンプレートと画像の間で照明やコントラストが変化すると、誤った一致が発生したり、テンプレートの検出が難しくなったりします。
- 適応性が限定的: AIベースの手法とは異なり、テンプレートマッチングはデータから学習したり、時間の経過とともに改善したりできません。管理された環境や反復的な環境で最も効果を発揮します。
主なポイント#
コンピュータービジョンは広大な分野であり、さまざまな技術を扱います。テンプレートマッチングのような従来の画像処理技術を学ぶことは、画像分析の仕組みを理解するためのよい出発点です。最先端のビジョンAIの革新も、同じ基本概念を基盤として、類似した問題を解決しています。
AIについてさらに詳しく知りたいですか?コミュニティに参加し、GitHubリポジトリもご覧ください。小売業におけるAIと製造業におけるビジョンAIが変革を推進している方法をご覧ください。ビジョンAIを使った開発を始めるために、ライセンスオプションをご確認ください。









