一昨日、ロナウドのファンは悲しみに暮れました。
12月11日にカタールで行われたワールドカップで、ポルトガルはモロッコに敗れ準々決勝止まりとなり、ロナウドのワールドカップの旅は惜しくも幕を閉じた。 ########################C・ロナウドは夢が終わったと言いました#この熱い検索には悲痛なファンが数多く集まりました。
ポルトガル対モロッコの試合は0対1という番狂わせの結果となった。ロナウドが泣いている、ネイマールが泣いている、次は誰になるだろうか?
しかし、ロナウドの悲しみを乗り越える前に、今夜、メッシとモドリッチの間で再び決闘が行われます!
怖くて心が耐えられないですか?
このようなモデルを使用すると、試合開始から 5 分以内に試合が番狂わせになるかどうかを事前に知ることができるかもしれません。
サッカーでコンピューター ビジョンが使用される場合この外国人機械学習エンジニアは、コンピューター ビジョン (CV) とコンピューター ビジョンを組み合わせることを常に望んでいます。彼のフットボールに対する情熱と相まって。
3 年前、彼は YOLOv3 を使用してバスケットボール コート上の選手を検出し、分類しようとしました。
今回の FIFA ワールドカップが彼にこの考えを再び抱かせました。
今回、彼は YOLOv5 と ByteTRACK を組み合わせて、フィールド上のサッカー選手を追跡しました。
ステップ 1: 事前トレーニングされた検出器を構築する
彼は、開始から終了まで数時間しかかからず、すぐに勝利できることを望んでいました。
YOLOv5 および YOLOv7 モデルのトレーニングに使用される人気のある COCO データ セットには、彼が最も関心のある 2 つのクラス (人物とスポーツ ボール) が含まれているため、彼は非常に楽観的になり、実現できると考えています。トレーニング用のCOCOチェックポイントになります。
彼は、Kaggle のブンデスリーガ データ戦争から数十の短いサッカーの試合ビデオをすぐにダウンロードし、事前トレーニングされたモデルをテストに使用しました。
iou_threshold、confident_threshold、input_resolution などのさまざまな構成を試した後、残念な結果が得られました。
このモデルでは、ボールはいくつかのビデオ フレームでのみ検出されます。モデルがそのような小さくて高速で移動する物体を確実に追跡するにはフレーム数が少なすぎるためです。
#一方、このモデルは、フィールド外の多くの冗長なオブジェクト (コーチ、ファン、メンテナンス要員、カメラクルーなど) を検出します。これらの冗長オブジェクトについては、追加の検出およびフィルタリング ロジックを記述する必要がありますが、これは非常に面倒です。
データセットに必要なクラスが含まれている場合でも、推論に使用されるビデオはトレーニングに使用される画像とは明らかに大きく異なることがわかります。
この場合、Skalski は独自のデータセットを作成し、カスタム モデルをトレーニングすることしかできません。
ステップ 2: カスタム検出器を構築する
主な理由は、画像に注釈を付けるために多くの手動作業を行う必要があることです。
時間が急ぐため、プロセスを可能な限り簡素化する必要があります。
Skalski は、前述の Kaggle データセットから数十のビデオを選択し、FFmpeg を使用して各ビデオから 10 フレーム (3 秒ごとに 1 フレーム) を抽出しました。
次のステップでは、画像に自動予備アノテーションを実行し、検出されたオブジェクトを txt ファイルに保存して、事前トレーニングされた YOLOv5 モデルを利用します。
次に、第 2 段階はデータを改善することです。
コンピューターは作業の 90% を完了していましたが、スカルスキー氏の手動修正には依然として 5 時間近くかかりました。
同時に、審判とゴールキーパーという 2 つの追加オブジェクト クラスも導入しました。彼の仕事の成果は Roboflow Universe で見ることができます。データセットはオープンソースであり、誰でも無料で使用できます。
#事前トレーニングされたサッカー選手検出器とカスタムのサッカー選手検出器
カスタム トレーニングこの結果により、スカルスキーは上記 2 つの問題を解決することに自信を持っています。
しかし、残念ながら、おそらく分類の不均衡が原因で、このモデルにはゴールキーパー クラスの検出に依然として問題があります。
ということで、次のステップでは、スカルスキーはすべてのゴールキーパーを普通のサッカー選手として扱います。
Skalski のモデルは、彼のデータセットと同様に Roboflow Universe で利用できます。テスト画像をドラッグ&ドロップするだけです。
Skalski は ByteTRACK (SOTA マルチオブジェクト トラッカー 1) を使用しています。 ) ビデオ内のオブジェクトを追跡します。
ByteTRACK は内部でニューラル ネットワークを使用しません。このモデルの威力は、フレーム全体で境界ボックスの位置を比較するという単純な計算によってもたらされます。
最も重要なことは、ByteTRACK は検出を担当せず、追跡のみを担当するということです。したがって、他のトラッカーのように個別のトレーニングを必要としません。
したがって、ByteTRACK を使用すると、コード全体のアーキテクチャを再設計することなく、検出器を簡単に置き換えることができます。
以下は簡略化されたコード スニペットです。独自のプロジェクトでは、ByteTRACK の開始コードを使用する必要があります。
ByteTRACK プロジェクトでは、フレーム上のすべてのオブジェクトに一意の ID があります。
これはモデルの結果です:
ByteTRACK の単一フレームの結果
ご覧のとおり、各プレーヤーには一意の番号が割り当てられ、フレーム間で追跡されます。
もちろん、検出と追跡は始まりにすぎません。
これで、次のレベルに進むことができます。
たとえば、アクションのコースをすばやく分析して、ボールがプレーヤー間でどのように移動するかを理解したり、プレーヤーが移動した距離を計算したり、ボールの領域を特定したりできるようになりました。最も頻繁に出現するフィールド。
一部のネチズンは次のように述べています。ギャンブルをしないのは残念だ。それは損だ。
この点に関して、一部の興奮したネチズンは次のように述べました。 "
"各オフェンス プレーヤーのパス ステータスと準備状況を毎秒表示できます。一度もパスされたことがないプレーヤーの 360 度ビューを実行することもできます。パフォーマンス評価、これは推定オッズよりもはるかに正確です!」
一部のネチズンは次のように述べています: Dream はリアルタイムのミニマップですサッカーの試合用に。
一部の真剣なネチズンは、「このスクリプトは、地面全体をカバーする片側からなど、固定カメラ アングルにのみ適用できるのですか?」と質問しました。 3 ~ 4 人のプレーヤーに焦点を当てるなど、他のカメラ アングルで使用することはできますか?」
この投稿の所有者は次のように答えました。「他の角度からのユースケースを追加できると思います。データを使用してモデルを再トレーニングすれば、同じようにパフォーマンスが向上するはずです。」
そしてネットユーザーは次のように言いました。「別の角度からデータをトレーニングすると機能しないと感じます。私の考えは、カメラの全角度で撮影しながらスクリプトの実行を続けますが、ボールとその周囲の選手の位置に注意し、他のフィードのデータにタグを付けます。」
以上が今夜はメッシとモドリッチのために夜更かししましょう!この CV モデルでは、ボールを推測することで勝つことができます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。