Japanese Manual · 1.1.11
AMADEUS
日本語マニュアル
AMADEUSの操作ガイドです。
1. 起動
推奨環境
AMADEUSは、Windows/LinuxのNVIDIA GPU、macOSのApple Silicon、および一部のAMD GPU(ROCm)に対応しています。
NVIDIAおよびAMD GPUについては、動画の解像度や個体数にも依存しますが、8 GB以上のVRAMを推奨しています。ただし、4 GB VRAMのNVIDIA GPUを備えたノートパソコンでも実行可能であることを確認しています。
お使いのOSのボタンからファイルをダウンロードし、実行してください。
v1.0.4までをインストールした方は、以下に案内する手順に従って一度アンインストールしてから、最新版をインストールしてください。
エラーが発生した場合は、納富(jpmyrmecol [at] gmail.com)まで、OS、インストール方法、表示されたエラーメッセージを添えてご連絡ください。特にAMD GPU(ROCm)は実機での検証がまだ十分ではないため、動作結果や問題についてもご報告いただけると助かります。
初回セットアップにはインターネット接続が必要です。
インストールおよびAMADEUSの起動方法
Windows
AMADEUS-Setup.bat をダブルクリックします。
初回セットアップ後は、デスクトップの AMADEUS ショートカット、またはコマンドプロンプトで amadeus もしくは amade と入力して起動できます。
macOS (Apple Silicon)
ホームフォルダ直下に AMADEUS フォルダを作成し、AMADEUS-Setup.command をその中に置きます。初回起動前にターミナルを開き、次を実行します。
chmod +x ~/AMADEUS/AMADEUS-Setup.command
その後、AMADEUS-Setup.command をダブルクリックします。Pythonのインストールを求められた場合は、Pythonをインストールした後、AMADEUS-Setup.command をもう一度ダブルクリックしてください。
初回セットアップ後は、AMADEUS-Setup.command をダブルクリックするか、ターミナルで amadeus もしくは amade と入力して起動できます。Apple Silicon搭載Macが必要です。Intel Mac・Rosettaには対応していません。
Linux (Ubuntu / WSL2)
AMADEUS-Setup.sh は、ファイルのプロパティで「プログラムとして実行」を許可して「端末で実行」できます。名称や操作はデスクトップ環境で異なります。
ターミナルから直接実行することもできます。例えば Downloads フォルダに保存した場合は、次を実行します。
bash ~/Downloads/AMADEUS-Setup.sh
別の場所に保存した場合は、~/Downloads/AMADEUS-Setup.sh を実際の保存先に置き換えてください。
初回セットアップ後は、ターミナルで amadeus もしくは amade と入力して起動できます。デスクトップ環境またはWSLgなどのGUI表示環境が必要です。
Gitを使ってインストールする場合(Windows・macOS・Linux)
Windows
Gitを導入済みなら、保存先のフォルダーでコマンドプロンプト(cmd)を開き、次の1行を実行します(Windows 10 / 11)。保存先に同名の AMADEUS フォルダーがない状態で実行してください。
git clone https://github.com/jpmyrmecol/AMADEUS.git && cd AMADEUS && AMADEUS.bat
初回セットアップにはインターネット接続が必要です。
次回からは、新しいコマンドプロンプトで次を実行します。作成された AMADEUS フォルダーは移動・削除せずに残してください。
amadeus
macOS (Apple Silicon)
Gitを導入後、保存先のターミナルで次の1行を実行します。
git clone https://github.com/jpmyrmecol/AMADEUS.git && cd AMADEUS && bash AMADEUS.shApple Silicon搭載Macが必要です。Intel Mac・Rosettaには対応していません。macOS実機での全工程は、まだ十分な動作検証を行えていません。
Linux (Ubuntu / WSL2)
Gitを導入後、保存先のターミナルで次の1行を実行します。
git clone https://github.com/jpmyrmecol/AMADEUS.git && cd AMADEUS && bash AMADEUS.shデスクトップ環境またはWSLgなどのGUI表示環境が必要です。
ZIPをダウンロードしてインストールする場合
Gitを使わない場合は、GitHubリポジトリの「Code → Download ZIP」からダウンロードします。
- AMADEUSのZIPファイルを展開します。
- OSに合ったランチャーを起動します。初回セットアップ後も同様に起動できます。
- 初回セットアップが完了すると、ホーム画面が開きます。
| OS | 起動方法 |
|---|---|
| Windows 10 / 11 | AMADEUS.bat をダブルクリック |
| macOS(Apple Silicon) | AMADEUS.command を開く |
| Ubuntu / WSL2 | bash AMADEUS.sh を実行 |
v1.0.4までのアンインストール(Windows・macOS・Linux)
Windows
AMADEUSを終了してからアンインストールしてください。
インストーラーから導入した場合:エクスプローラーで %LOCALAPPDATA%\AMADEUS\app\tools を開き、uninstall.bat をダブルクリックします。完了後、%LOCALAPPDATA%\AMADEUS フォルダーとデスクトップの AMADEUS ショートカットを削除してください。
GitまたはZIPから導入した場合:AMADEUSのインストールフォルダー内にある tools フォルダーを開き、uninstall.bat をダブルクリックします。完了後、不要であればAMADEUSのインストールフォルダーを削除してください。
アンインストーラーはローカルのPython環境とグローバルの amadeus コマンドを削除します。プロジェクトやセッションのフォルダーとuvは削除しません。
v1.0.5以降:GUIのHome画面にある Uninstall ボタンからアンインストールできます。
macOS
AMADEUSを終了し、ダウンロードまたは展開したAMADEUSフォルダーを削除してください。
その後、Terminalで以下を実行してAMADEUSのコマンドランチャーを削除してください。
rm -f ~/.local/bin/amadeus ~/.local/bin/amade
AMADEUSフォルダーの場所が分からない場合は、コマンドランチャーを削除する前に cat ~/.local/bin/amadeus を実行すると、表示される cd のパスからAMADEUSフォルダーの場所を確認できます。
AMADEUSフォルダー外に保存したtracking sessionやresultsは削除されません。
v1.0.5以降:GUIのHome画面にある Uninstall ボタンからアンインストールできます。
Linux
AMADEUSを終了し、ダウンロードまたは展開したAMADEUSフォルダーを削除してください。
その後、Terminalで以下を実行してAMADEUSのコマンドランチャーを削除してください。
rm -f ~/.local/bin/amadeus ~/.local/bin/amade
AMADEUSフォルダーの場所が分からない場合は、コマンドランチャーを削除する前に cat ~/.local/bin/amadeus を実行すると、表示される cd のパスからAMADEUSフォルダーの場所を確認できます。
AMADEUSフォルダー外に保存したtracking sessionやresultsは削除されません。
v1.0.5以降:GUIのHome画面にある Uninstall ボタンからアンインストールできます。
2. ホーム画面
| 画面 | 用途 |
|---|---|
| Easy Tracking | 標準的な追跡処理を少ない入力で実行 |
| Cropping & Trimming | 動画の範囲、時間、明るさなどを前処理 |
| Segmentation | 動物を背景から分離し、解析範囲を設定 |
| Advanced Tracking | 各工程とパラメータを詳しく設定 |
| Multi Config Batch | 複数の設定ファイルを順番に実行 |
| Refinement | 追跡方向や個体IDを目視で修正 |
| Colab(beta) | Google Drive向けのclean bundleを作り、AMADEUS Colab workflowを開く |
3. 基本の流れ
- Easy Tracking を開き、画面の案内に従って動画を入力した後、Launch Segmentation を押します。
- Segmentation で動物が背景から適切に抽出されるように設定し、Analysis ボタンを押します。
- 単独個体が青、接触個体・断片・その他の外れ値が橙になるように、IQRの閾値(またはAbsoluteの範囲)を調整して、Processing を実行します。終了後、自動的に Easy Tracking に戻ります。
- Easy Trackingで3つの質問項目に回答し、Processing を押して、休憩します。
- 結果動画とCSVを確認し、必要なら Refinement で修正します。
細かい条件を指定する場合は、Switch Advanced Mode でパラメータを調整します。
なお、必要に応じて、開始前に Cropping & Trimming で動画を整えます。
4. Cropping & Trimming(任意)
解析したい領域をcroppingし、解析したいframeをtrimmingして、動画を整えます。
- Input Video で動画を選びます。
- Set In と Set Out で使用区間を決めます。
- Full を使うか、Add Crop で領域を追加します。
- 領域をドラッグ・リサイズし、出力する領域を選びます。
- 領域ごとに明るさ、コントラスト、カラー/グレースケールを設定します。
- 出力先、名前、FPSを確認して Export します。
5. Segmentation(前景抽出)
動画から動物の領域を抽出し、単独個体と接触個体を区別します。
- 動画と解析フレーム範囲を確認します。
- 前景の抽出方法を選びます。背景差分を使う場合は、Median・Maximum・Minimumから選択します。
- Threshold と Minimum Blob Area を調整し、動物が背景からきれいに抽出されるようにします。
- 最初の前景抽出の閾値調整が終わったら、Analyze を押します。AMADEUSが複数フレームをサンプリングし、Outlier Extractionに使用する面積分布を計算します。
- Analyzeが完了すると、Outlier Extraction の設定が表示されます。単独個体が青、接触個体・断片・その他の外れ値が橙になるように、IQRの閾値(またはAbsoluteの範囲)を調整します。
- Processing を押して保存します。
前景の抽出方法
| モード | 向いている映像 |
|---|---|
| Background difference | 背景との差が安定している |
| Dark region | 動物が背景より暗い |
| Bright region | 動物が背景より明るい |
| Dark + background difference | 暗さと背景差を組み合わせたい |
| Bright + background difference | 明るさと背景差を組み合わせたい |
結果は <Session>/segmentation/ に保存されます。
追加設定は初期状態では非表示です。サイドバー上部の Show optional settings にチェックを入れると、以下のOptional項目が表示されます。
ROI[Optional]
画像の一部だけをSegmentationの対象にしたい場合、または画像の一部をSegmentationの対象から除外したい場合に使用します。Use this ROI を有効にし、Edit ROI でROIの形と位置を調整します。From frame と To frame で適用するフレーム範囲を指定できます。
Reverse ROI を有効にすると、選択領域の内外を反転します。
Region Expansion[Optional, Beta]
最近追加されたベータ版の機能で、まだ不完全です。 結果を確認したうえで使用してください。
本来1つのblobとしてつながってほしい前景領域が、閾値処理によって小さな隙間や深いくぼみで分離してしまう場合に使用します。
Expand region (px) で前景領域を指定ピクセル数だけ外側へ拡張します。Keep merging expansion only にチェックを入れると、別々の領域を接続するために必要な拡張だけを残し、孤立したblob全体が不要に太ることを抑えます。
Result OBB Import[Optional, Beta]
最近追加されたベータ版の機能で、まだ不完全です。 結果を確認したうえで使用してください。
面積だけでは、実際に大きな1個体と、接触した2個体とを区別できません。どちらも面積の外れ値になるため、大きな個体が接触個体として扱われ、単独個体の学習データから外れてしまいます。同じ動画をすでに一度追跡している場合は、その結果CSVを読み込むことでこの取り違えを解消できます。
サイドバーの Result OBB Import (beta)(既定は閉じた状態)を開き、Use imported result OBB にチェックを入れて、Reference から追跡結果CSV(<Session>/results/ の frame 列と ID ごとの cx・cy・w・h・heading 列を持つファイル)を選びます。別プロジェクトで解析した結果CSVでも、同じ動画の座標であれば読み込めます。
各OBBは、その中心を含むblob(中心が背景に落ちる場合は最も重なるblob)1つだけに割り当てられます。したがって、2個体が1つのblobを形成していればそのblobのOBB数は2になります。面積の外れ値と判定されたblobのうち、割り当てられたOBBがちょうど1つで、かつそのOBBがblob面積の Min OBB coverage(既定:0.7)以上を覆うものだけが、大きな1個体として外れ値から外されます。それ以外は面積による判定のままです。面積の範囲内にあるblob、Additional Outlierで抽出された領域、OBBが2つ以上のblob、結果CSVが説明しないblobは、いずれも変更されません。
被覆率の条件は、2個体のうち片方を追跡が取りこぼした場合を除外するためのものです。この場合もOBB数は1になりますが、OBBは自分が対応する個体の範囲しか覆わず、もう1個体の分が残るため、外れ値のまま残ります。OBBは1個体の外接矩形なので、検出とセグメンテーションが同じ個体を捉えていれば被覆率は1に近づきます。実際の値はblobにカーソルを合わせると表示されるので、自分のデータで確認して閾値を決めてください。
Frame offset は、結果CSVのフレーム番号から動画のフレーム番号を引いた値です(トリミング前の動画で追跡した場合などに使用、既定:0)。Show imported OBB をオンにすると、読み込んだOBBがプレビューと書き出し動画にマゼンタで重ね描きされ、位置ずれを目視で確認できます。プレビュー上部の result-single は外れ値から外されたblob数、blobにカーソルを合わせると割り当てOBB数と被覆率が表示されます。
設定は segmentation_gui_config.json に保存されます。読み込んだ結果を使わない場合は Clear imported result で解除するか、チェックを外してください。
Additional Outlier[Optional, Beta]
最近追加されたベータ版の機能で、まだ不完全です。 結果を確認したうえで使用してください。
通常の前景抽出とは別のSegmentation条件を使って、特定の領域を追加で外れ値として扱いたい場合に使用します。
Enabled にチェックを入れ、適用するフレーム範囲、Segmentation mode、各種Threshold、Min blob area を調整します。異なる条件が必要な場合は、複数のAdditional Outlier Setを追加できます。
この追加条件で検出された領域は外れ値として追加され、橙色で表示されます。通常のSegmentationと面積範囲によって保護された単独個体の領域は、Additional Outlierによって上書きされません。
Single-animal Smoothing[Optional, Beta]
最近追加されたベータ版の機能で、まだ不完全です。 結果を確認したうえで使用してください。
Outlier Extraction後の単独個体blobの輪郭を滑らかにしたい場合に使用します。脚などの細い突出部によって身体の輪郭が不規則になる場合に有効です。
Smooth single-animal blobs にチェックを入れ、Smoothing level を調整します。値を大きくすると、より太い突出部まで除去されます。処理対象は青色の単独個体blobのみで、削除された画素は背景となり、処理後に面積範囲が再適用されます。
6. Easy Tracking
個体数と2つの質問から設定を作り、学習から結果出力までをまとめて実行します。
- Video File と Session を指定します。
- Launch Segmentation で前景抽出を設定します。
- How many animals are in the video? に個体数を入力し、Enterボタンで反映します。
- 個体の重なり度合いと、後退する個体がいるかを選びます。
- Processing を押します。
| 入力 | 選択肢 | 意味 |
|---|---|---|
| How many animals are in the video? | 正の整数 | 追跡する個体数 |
| How severe is the overlap? | Very heavy / Heavy / Light | 接触の強さ。Very heavyでは埋め込みID補正も実行。デモ動画では完全な遮蔽を含む魚の動画でのみ埋め込みID補正を使用しました。 |
| Do the animals ever move backward? | Yes / No | Yesでは信頼性の低い方向を有するラベルが付与された個体を除去するためのrefine工程が実行されます |
Save Config と Load Config でYAMLを保存・読込できます。Switch Advanced Mode では現在の設定をAdvanced Trackingで開きます。
自動処理
| 工程 | 内容 |
|---|---|
| Initial Tracking | 単独個体を追跡、パラメータを自動調整 |
| Direction Estimation | 移動軌跡から単独個体の向きを推定 |
| Refine Blobs | 必要に応じて誤った方向ラベルを除去 |
| Clustered / Mixed Paste | 仮想相互作用画像を合成 |
| Crop Images / Create Dataset | 学習用画像とデータセットを作成 |
| Training | 検出器を学習 |
| Detection / ID Tracking / ID Correction | 検出、個体対応、時系列補正 |
| Create Video | 追跡結果を重ねた動画を作成 |
方向推定なし(Without direction estimation)[Beta]
ベータ版機能です。追跡結果を確認したうえで使用してください。
head directionが不要な場合、または前後を安定して区別できない対象に使用できます。Easy TrackingとAdvanced Trackingの双方から有効化でき、初期値はオフです。
head direction classを割り当てずにOBBを推定し、ID trackingを行います。OBBの回転角は幾何情報として保持されますが、frontとrearは割り当てません。動きからhead directionを決められないことだけを理由に、静止した個体や軌跡の短い個体を除外することはありません。
出力は<Session>/without_direction_estimation/に保存されます。最終CSVにはframe, cx0, cy0, w0, h0, …が含まれ、heading列は含まれません。このモード用に生成した学習データとweightを使用してください。
個体数可変(Variable population)[Beta]
ベータ版機能です。追跡結果を確認したうえで使用してください。
画面への出入りなどで動画中の個体数が変わる場合に使用します。初期値はオフです。Easy Trackingではチェックを入れると個体数入力が無効になり、Advanced TrackingではMainのBasic Settingsから有効にできます。
新たに現れた個体には新しいIDを割り当て、長く見失ったIDは終了します。再入場した同一個体でも新しいIDになる場合があります。誤検出や対応失敗でもIDが増えることがあるため、実際の個体数を正確に推定する機能ではありません。
可変モードの結果は追跡出力フォルダ内のvariable/に保存されます。
7. Advanced Tracking
各工程とパラメータを詳しく設定します。
- セッション、学習動画、解析動画、個体数を指定します。
- Adjust Parameters で動画に合う初期値を測定します。
- 実行する工程と設定を確認します。
- Run を押します。
| セクション | 主な設定 |
|---|---|
| Basic | 動画、セッション、個体数、画像サイズ、フレーム範囲 |
| Initial Tracking | 単独個体の抽出とフレーム間対応 |
| Create single animal images | 軌跡、方向判定、方向ラベル調整 |
| Create with crossing | 接触場面の合成 |
| Create dataset | 学習画像数、クロップ、検証データ |
| Training | エポック、バッチ、デバイス、学習率 |
| Analysis | 検出、ID追跡、埋め込み補正 |
| Create Video | 出力範囲、FPS、描画内容 |
Random noise on animals[Optional, Beta]
最近追加されたベータ版の機能で、まだ不完全です。 結果を確認したうえで使用してください。
通常・Clusteredの貼り付け完了後、合成画像ごとに個体の上に、背景で置き換えた小さなノイズを貼ります。天井やレンズのゴミの再現用で、Advanced Trackingのみ、既定はオフです。
Noise Size (% of body length) で体長に対する大きさ(既定:10)、Max Noise per Animal で1個体あたりの上限個数(既定:10、0からこの値までの乱数)を指定します。形状は毎回ランダムで、ラベルとマスクは変わりません。
skipチェックボックスをチェックすることで、必要な工程だけを実行できます。
解析する重みは last、best、または保存済みエポック番号で指定できます。
8. Multi Config Batch
複数のTracking設定を順番に実行します。
- EasyまたはAdvanced Trackingで設定をYAMLに保存します。
- Add Configs または Add Folder でconfigを追加します。
- Up / Down で実行順を整えます。
- Run Queue を押します。
9. Refinement
結果を動画に重ねて確認し、体の向きや個体IDを修正します。
- AMADEUS mode:
config.yaml、重み、結果を選択 - Dataset mode: 動画と追跡ファイルを選択
Dataset modeでは、AMADEUS形式のほか、SLEAP、DeepLabCut、idtracker.aiなどのCSV/H5を読み込めます。方向を修正する場合は、前端・後端の座標を持つデータを選びます。
| 操作 | 内容 |
|---|---|
| 矢印の端をドラッグ | 前端または後端を移動 |
| 矢印全体をドラッグ | 個体位置を移動 |
| 右クリック | 向きの反転、または2個体のID入れ替え |
| マウスホイール | 拡大・縮小 |
| 背景をドラッグ | 表示を移動 |
| 左右キー | 前後のフレームへ移動 |
| 上下キー | 選択する個体を変更 |
| Space | 再生・一時停止 |
| Ctrl+S(macOSではCommand+Sも可) | 保存 |
10. Colab(beta)
保存済みのAMADEUS設定をGoogle Colabで実行し、GPUを使って処理できます。
- Colab(beta) で保存済みの
config.yamlとGoogle Driveの保存先を選び、Prepare for Google Colab を押します。 - 準備後に Open Google Colab を押します。
- Colabで Run all を実行し、求められたらGoogle Driveを承認します。
GPU runtimeが必要です。最終CSV、結果動画、必要な学習済み重み、summary、logがGoogle Driveへ保存されます。
11. パラメータ調整
今後、主要なパラメータ調整の指針を追加します。基本的には標準設定で問題ありません。
| 症状 | 最初に確認する項目 |
|---|---|
| メモリ不足 | Advanced modeで、バッチサイズを指定(基本的には自動で調整されます) |
12. 出力
| 場所 | 内容 |
|---|---|
<Session>/config.yaml |
実行設定 |
<Session>/segmentation/ |
背景画像、Segmentation設定 |
<Session>/model/ |
ダウンロードした事前学習重み |
<Session>/main/<model>/ |
学習データ、学習済み重み、追跡結果、結果動画 |
<Session>/results/ |
最終CSV |
<Session>/log.txt、time.csv |
ログと処理時間 |
results/ には、後処理後の最終CSVが保存されます。通常は <model>_<dataset>_<run>_<video>.csv、埋め込みID補正工程が実行された場合は <model>_<dataset>_<run>_<video>_id_resolved.csv です。
方向推定ありの通常モードでは、最終CSVは1行が1フレームで、frame と個体別の cx0, cy0, w0, h0, heading0, … を持ちます。個体IDは0から始まります。座標とOBB寸法は入力動画のピクセル単位、原点は左上、xは右向き、yは下向きです。heading は上を0°、時計回りを正とする0°以上360°未満の角度です。欠測は空欄(NaN)で、全個体が全フレームで必ず得られるわけではありません。
学習済み重みは <Session>/main/<model>/training/<動画名>/weights/ に保存されます。
13. 推奨撮影条件
- 比較的細長い体型で体軸が判別可能であり、初心者でも個体の前後を見分けられる動物であること。
ただし、方向推定なし(Without direction estimation) モードでは、この制約はありません。 - 固定した真上視点のカメラで撮影し、動きが概ね2次元平面内に収まっていること。
- カメラが固定され、照明が安定していること。
- 背景が基本的に静止していること。
- 個体と背景の間に十分なコントラストがあること。
- 初心者でも目視で個体を追跡できる程度の解像度があること。
- 初心者でもフレームごとに目視で個体を追跡できる程度のfpsとシャッタースピードで撮影されていること。
- 学習データ生成のため、個体同士が接触していない単独個体の場面が比較的頻繁に含まれていること。
ただし、撮影条件が同一であれば、学習用動画と解析用動画を別々に撮影しても構いません。
14. ライセンス
AMADEUSはGNU Affero General Public License v3.0 only(AGPL-3.0-only)で公開しています。同梱する第三者コンポーネントはそれぞれのライセンスに従います。詳細は LICENSE と 第三者ライセンス情報 を参照してください。