このリポジトリは、GUI ベースのアプリ - MOTHE-GUI のバックエンド ライブラリです。
Mothe は、異種環境で複数の動物を検出および追跡するための PYPI ライブラリです。 MOTHe は Python ベースのリポジトリであり、オブジェクト検出タスクに畳み込みニューラル ネットワーク (CNN) アーキテクチャを使用します。デジタル画像を入力として受け取り、その特徴を読み取ってカテゴリを割り当てます。これらのアルゴリズムは学習アルゴリズムであり、大量のラベル付きトレーニング データを使用して画像から特徴を抽出します。 CNN モデルがトレーニングされると、これらのモデルを使用して新しいデータ (画像) を分類できます。 MOTHe は汎用的に設計されており、ユーザーが自然環境の中でも関心のあるオブジェクトを追跡できるようにします。
MOTHe は、オブジェクトの分類に関連するすべてのタスクを自動化でき、次のタスク専用の 5 つのメソッドに分かれています。
システム構成: システム構成は、ユーザーのシステムに MOTHe をセットアップするために使用されます。ローカル リポジトリへのパス、処理されるビデオへのパス、トリミングされる個人のサイズ、検出または追跡の実行中にスキップするフレーム数 (計算時間の短縮/テスト ケースの実行のため) などの基本的な詳細および検出フェーズ中に描画される境界ボックスのサイズ。
データセットの生成: データセットの生成は、オブジェクトの検出と追跡に向けた重要なステップです。必要な量のトレーニング データを生成するために必要な手作業は膨大です。データ生成クラスと実行可能ファイルは、ユーザーが GUI をクリックするだけで対象領域をトリミングできるようにすることでプロセスを高度に自動化し、画像を適切なフォルダーに自動的に保存します。
畳み込みニューラル ネットワークのトレーニング train_model : 十分な数のトレーニング サンプルを生成した後、データを使用してニューラル ネットワークをトレーニングします。ニューラル ネットワークは出力として分類器を生成します。分類器の精度は、ネットワークがどの程度適切にトレーニングされているかに依存し、さらにトレーニング データの質と量に依存します (セクション「トレーニング データはどのくらい必要ですか? 」を参照)。ネットワークのさまざまな調整パラメータは、ユーザーにとってプロセスが簡単になるように固定されています。このネットワークは、対象物 (動物) と背景の二項分類に適しています。このパイプラインでは、マルチクラス分類はサポートされていません。
物体検出: この方法は 2 つの重要なタスクを実行します。まず、動物がいる可能性のある画像内の領域を識別します。これは位置特定と呼ばれます。次に、トリミングされた領域に対して分類が実行されます。この分類は、小規模な CNN (6 畳み込み層) を使用して行われます。出力は、各フレームで識別された動物の位置を含む.csvファイルの形式で行われます。
オブジェクト追跡: オブジェクト追跡は、MOTHE の最終目標です。このモジュールは、検出された個人に固有の ID を割り当て、その軌跡を生成します。検出モジュールと追跡モジュールを分離したので、カウント データのみに興味がある人 (アンケートなど) にも使用できます。このモジュール化により、経験豊富なプログラマはより高度な追跡アルゴリズムを使用できる柔軟性も得られます。追跡タスクには既存のコードを使用します (参考文献の Github ページから)。このアルゴリズムは、カルマン フィルターとハンガリー アルゴリズムを使用します。このスクリプトは、前の手順で検出が生成されたら実行できます。出力は、各フレームの個別の ID と場所を含む text{.csv} ファイルです。各個人の一意の ID を含むビデオ出力も生成されます。
MOTHE は、更新された可能性のある他のいくつかの Python ライブラリを使用する Python パッケージです。したがって、ダウンロード/インストールするバージョンを認識しておくことが重要です。推奨される Python バージョンは、python3.6 から python3.7 の安定リリースです (最新の LTS バージョンの Linux (例: Ubuntu 20.04 Focal Fossa) は、MOTHE と互換性のないストック python3.8 とともにインストールされます)。 Python3.8 は、MOTHE が動作するために必要な 2.2 リリースより前の Tensorflow バージョンをサポートしていません。いくつかのライブラリのバージョンは比較的迅速に変更され、最近 MOTHe のテストに使用されていることに注意してください。