カラートラッキングの説明#

色を追跡するとはどういうことで、CMUcam4 はどのようにそれを行いますか?#

カラートラッキングとは、画像を取り込み、特定の色を分離し、その色だけを含む画像領域の位置に関する情報を抽出する機能です。例として、砂利道に赤いボールが置かれている写真を渡されたとします。画像内で赤色のものを何でも枠で囲むように誰かに頼まれたら、あなたはかなり簡単にボールの周りに長方形を描くでしょう。これがカラートラッキングの基本的な考え方です。その物体がボールであることを知る必要はありませんでした。写真内の物体を分離するために、赤色の概念を持っているだけで十分でした。以下では、CMUcam4が実際にカメラ画像内の情報を使用してカラートラッキングをどのように行うかを簡単に説明します。

色を指定するには、3つの色チャンネルについて許容される最小値と最大値を定義する必要があります。すべての固有の色は、その固有の色に各チャンネルがどれだけ混合されているかを示す赤、緑、青の値によって表されます。色を指定する際の厄介な点は、3つすべての色チャンネルについて許容される値の範囲を定義する必要があることです。光は完全に均一ではなく、物体の色も完全に均一ではないため、これらの変動に対応する必要があります。しかし、これらの境界を緩めすぎると、多くの望ましくない色が受け入れられてしまいます。CMUcam4の場合、各色チャンネルは0から255までの数値に変換されるため、各チャンネルを上限と下限の2つの数値で境界付けできます。3つのチャンネルそれぞれに2つの制限がある場合、これはトラッキングしたい色空間全体を制約するために6つの値を使用できることを意味します。各辺が異なる色チャンネル(赤、緑、青)である立方体で色が表されると想像すると、色を選択するために使用する6つの値は、その立方体の内部に、望む色の集合を定義する3次元のボックスを描くことになります。

トラッキングしたい色の境界を得たら、CMUcam4はこれらの境界を取り込み、画像を処理します。画像内の色をトラッキングする方法は多数あり、非常に複雑になることがあります。CMUcam4は、カメラからの新しい各画像フレームを独立して処理する、シンプルな1パスアルゴリズムを使用します。画像の左上から始まり、各ピクセルを行ごとに順番に調べます。検査しているピクセルがユーザーの指定した色の範囲内に収まる場合、そのピクセルをトラッキング対象としてマークします。また、現在のトラッキングされたピクセルの位置を調べ、それが画像内でこれまでに見つかったすべてのトラッキングされたピクセルの中で最上部、最下部、最左部、または最右部の位置であるかどうかを確認します。ピクセルがトラッキング領域の現在のバウンディングボックスの外側にあることがわかると、この新しいピクセルを含むようにバウンディングボックスを拡大します。単一のトラッキングされたピクセルの位置でさえバウンディングボックスを変える可能性があるため、バウンディングボックスはフレームごとにかなり変動することがあります。ノイズフィルタリング(次の段落を参照)を使用して、その変動の一部を減らすことができます。保存されるもう1つの主要な情報は、トラッキングされたピクセルの水平座標と垂直座標の合計です。画像の最後に、CMUcam4はトラッキングされたピクセルの水平方向の合計と垂直方向の合計を取り、それぞれをトラッキングされたピクセルの総数で割って、トラッキングされた物体の中心がどこにあるかを示す値を取得します。各トラッキングされたピクセルは最終的な水平方向および垂直方向の合計にわずかな部分しか寄与しないため、トラッキングされたピクセルの中心(しばしば重心と呼ばれる)は、通常バウンディングボックスよりもはるかに安定した測定値です。画像内のすべてのピクセルがチェックされると、トラッキングされたピクセルの総数を、バウンディングボックスの面積と組み合わせて使用し、トラッキングされた物体の信頼度とピクセル数を計算することもできます。

ノイズフィルタリングにより、カラートラッキングの範囲を大きくして、画像内の他のランダムな変動がトラッキングされることなく、画像ピクセル値のより大きな変動に対応できます。ノイズフィルタリングの背後にある考え方は、あるピクセルがカラートラッキング境界内にあるピクセルのグループの一部である場合にのみ、そのピクセルをトラッキング対象の色とみなしたいというものです。CMUcam4では、これを画像に対して1回のパスだけで済む方法で実装しています。画像内のピクセルを処理する際、CMUcam4は、現在の行で現在のピクセルより前に、トラッキング対象の色境界内にあった連続したピクセルがいくつあるかを追跡するカウンタを保持します。その値がノイズフィルタ値を超えている場合、現在のピクセルはトラッキングされたピクセルとしてマークされます。

ヒストグラムとは何で、何の役に立ちますか?#

ヒストグラムは、データの頻度と分布を表示するチャートの一種です。CMUcam4の場合、ヒストグラムは画像内で見つかった色値の頻度と分布を示します。各バーは特定のチャンネルの色値の範囲を表します。CMUcam4は、0から255までの可能な色値を1、2、4、8、16、32、64個の異なるビンに分割できます。各ビンには、ある色の範囲内に収まる、画像内で見つかったピクセルの数が含まれます。したがって、特定のビンの値が大きいということは、その色の多くが画像内で見つかったことを意味します。各ヒストグラムは、選択された1つの色チャンネルのみを表します。

ヒストグラムは、画像の内容を抽象化する方法です。原始的な物体認識、しきい値処理、カラーバランス調整など、多くの用途があります。異なるテクスチャを区別するのに特に役立ちます。オートゲインをオフにしたCMUcam4を2つの異なるテクスチャの表面に向けて、それらの色分布の違いに注目してみてください。この効果は、床面を区別したり障害物を検出したりするために使用できます。