3

以前にも同様の質問をしたことがありますが、私の質問は実際には答えられていないと感じました。Circle Hough Transform を使用して、ボールを検出して追跡しています。ただし、検出された円が実際にボールであるかどうかを確認するために、追加のチェックが必要です。

私は、ニューラル ネットワーク、ハール分類器、SVM など、そのようなもの (つまり AI) を使用することを考えていました。しかし、それは信じられないほど堅牢である必要があり、私はこれらの AI 手法に慣れていないため、学習に時間を費やすのに最適で最も堅牢な手法はどれかわかりません.

グレースケールの高速カメラを使用して画像をキャプチャしていますが、任意の色/パターンのサッカー ボールを使用できるようにしたいと考えています。ボールは部分的に塞がれることもあります。

これらの手法が適切でないと思われる場合は、これを実現するためのアイデアや提案をお待ちしています。

事前にご協力いただきありがとうございます。

4

2 に答える 2

1

これはテストされていないことに注意してください。

ボールの位置を抽出すると、その輪郭を取得できます。私の提案は、明るいパッチと暗いパッチ (五角形) を持つサッカー ボールでのみ機能します。

白と黒のパッチの両方を取得するための適切なバイナリしきい値を決定します。侵食や膨張などの画像操作を行って、ステッチによって作成されたパッチ間の亀裂を取り除きます。ボールの周りに白い円を描いて、黒いパッチが「ボールの穴」と見なされないようにし、ボールの内側の輪郭をつかむ準備ができていることを確認します. 主な輪郭は白いパッチでできた白い輪郭であり、すべての黒い輪郭は暗いパッチです。

弱点:汚れたボールは、バイナリしきい値処理で問題が発生する可能性があります。おそらく、適応しきい値を使用しますか?

1. ブラック パッチのサイズと距離にルックアップ テーブル/数式(?)を使用する

ブラック パッチのサイズは、ボールの中心からの距離によって異なります。アルゴリズムに、中心からの黒いパッチの距離とそのサイズ (ボールのサイズに対する両方の値) に関する学習データを入力します。

例えば:

Ball in recorded frame has bounding box of 200x200 px and area of 30000px
Found 6 black patches inside:
patch 1 is in the middle (distance 0px from center) and has area of 600px
patch 2 is on the side (distance 50px from center) and has area of 150px
patch 3... patch 4... and so on

したがって、ルックアップ テーブルにデータを入力します。

distance = 0% -> area = 2%
distance = 25% -> area = 0.5%
distance = ... -> area = ...
and so on

検出したものがボールかどうかを確認するときは、黒いパッチのサイズを確認します。それらのサイズとボールの中心からの距離のほとんどが許容範囲内にある場合、検出されたオブジェクトはボールです。

2. 輪郭形状の確認

を使用して各輪郭を確認できますcvApproxPoly。ほとんどの黒い輪郭が五角形の場合、それはボールです。

于 2013-10-18T15:14:38.003 に答える