はじめに
この記事では、ビデオ画像上の実際のオブジェクトと影を分離できるアルゴリズムについてお話ししたかったのです。
![](https://habrastorage.org/storage1/7650ad7a/b91ad898/e3bce2c0/38f3ee9a.jpg)
このアルゴリズムは、 MagicBox IPビデオサーバー用のビデオ分析アルゴリズムの開発中に最初に実装されました。MagicBoxIPビデオサーバーは 、現在働いているSynesis社によって開発されています。 ご存じのように、ビデオシーケンスで動きを検出する場合、照明条件は必ずしも理想的ではありません。 そして、現在のフレームと特定の平均的な背景の差に基づいた最も単純な動き検出器は、実際のオブジェクトだけでなく、仮想オブジェクト、つまり動く影や光のバニーにも反応します。 これは、検出されたオブジェクトの形状の歪みや、動き検出器の誤検出を引き起こす可能性があるため、望ましくありません。 これは晴天時、特に雲量が変動する場合に当てはまります。 したがって、影を強調するアルゴリズムの存在は、検出器全体の精度に非常に良い影響を与える可能性があります。 しかし、すべてを順番に見てみましょう。
動体検知
動き検出に最も単純なアルゴリズムが選択されました:平均化された背景から
![](https://habrastorage.org/storage1/b20145a1/37164628/f1797b2f/be05f7d0.jpg)
現在のフレームはピクセルごとに減算されます
![](https://habrastorage.org/storage1/bfb6b2e6/83bd309f/bc6f2335/1c1f547f.jpg)
そして、それはマスクであり、残念ながら実際のオブジェクト(私の手)だけでなく、仮想オブジェクト(その影)も含まれています。
![](https://habrastorage.org/storage1/bc595e45/d3c37d2b/5f5292b3/724b8c35.jpg)
シャドウプロパティ
実際のオブジェクトの画像を影の画像(明るいウサギ)から分離するには、それらとは異なる一連のプロパティ(基準)を選択する必要があります。 影の画像を実際のオブジェクトの画像と区別する主な特徴は、透明度です。 確かに、影を通して、背景の特徴がはっきりと現れますが、全体的な照明は大きく異なります。 したがって、実際のオブジェクトと影を分離するには、オブジェクトの透明度を確認する必要があります。そのため、照明の変化を考慮して、元の画像と背景の相関を分析する必要があります。 これには2つのかなり高速な方法がありますが、これについては以下で説明します。
方法1:勾配方向
勾配の方向には、オブジェクトの照明に対して不変であるという顕著な特性があります。 実際、左のピクセルが右よりも暗い場合、この比率は均一な照明下で維持されます。 したがって、背景と現在のフレームの勾配方向の偏差を特定のしきい値と比較すると、理論上、実際のオブジェクトとシャドウに属するポイントを分離できます。
![](https://habrastorage.org/storage1/be14e57f/ae8c94b0/f74acfc3/444d0195.jpg)
実際には、ノイズが原因で、この方法では大きな誤差が生じますが、これはゴースト画像ではっきりと見えます。
方法2:相対相関
完全に均一な背景調光の場合、各ポイントに対して条件が満たされます。
現在の[x、y] = k *バックグラウンド[x、y]、
ここで、kは画像全体で同じ特定の調光係数です。 現実には、減光はもちろん画像全体で均一ではありませんが、この点の特定の近傍では均一性が高いと確信できます。 したがって、平等からの逸脱
現在[x、y] * AverageBackground [x、y] =バックグラウンド[x、y] * AverageCurrent [x、y]
点[x、y]の近傍で特定のしきい値を超えない場合、影と見なすことができます。
![](https://habrastorage.org/storage1/beeb39ab/3c4c6665/c207815e/790dc5d0.jpg)
ただし、実際に示されているように、実際のオブジェクトの重要な領域は影として認識されるため、この方法にも重大なエラーがあります。
方法3:混合方法
論理的な次のステップは、これら2つの方法を組み合わせることです。 前の2つの方法の結果を組み合わせると(両方の方法で一致する点のみが影と見なされます)、次の結果が得られます。
![](https://habrastorage.org/storage1/e37806a7/da0e9044/89d568e0/9133843a.jpg)
もちろん、この場合、両方のタイプの重大なエラーが保持されます。実際のオブジェクトの一部はシャドウと見なされ、その逆も同様です。 ただし、統計の観点からは、影の領域と実際のオブジェクトはすでに明確に区別できます。 平均化フィルターを適用すると、シャドウ領域と実際のオブジェクト領域を明確に分離できます。
![](https://habrastorage.org/storage1/7650ad7a/b91ad898/e3bce2c0/38f3ee9a.jpg)