
オフィス街の鳩群個体識別・追跡用プロンプト
本プロンプトは、オフィス街という複雑な背景環境において、動体検知AI(YOLOv8/v9, DeepSORT等)を使用し、複数の鳩を個体識別・追跡するための設定および指示セットである。以下の手順とコードスニペットを、映像解析パイプラインのシステムプロンプトまたは設定ファイルに適用すること。 ### 1. AIモデルへの初期設定(システムプロンプト) 以下の指示を推論エンジンに組み込み、背景ノイズの影響を最小化する。 ```text # Role あなたは高精度な鳥類個体追跡エージェントである。 # Task オフィス街の群衆(鳩)を撮影した動画から、各個体を識別し、IDを割り当てて追跡せよ。 # Constraints 1. 鳩の重なり(オクルージョン)を許容し、個体がフレームアウトして再出現した場合、過去のトラッキングIDと照合すること。 2. 背景のビル、歩行者、看板、反射光を「非対象物」として除外せよ。 3. 鳩の動きが静止した状態(グルーミングや休憩)でも、トラッキングIDを維持せよ。 # Output Format JSON: {"frame_id": int, "pigeon_id": int, "bbox": [x, y, w, h], "confidence": float} ``` ### 2. OpenCVを用いた前処理パイプライン オフィス街特有の「影」や「アスファルトの模様」を誤検知しないためのPythonスニペット。 ```python import cv2 def preprocess_frame(frame): # ガウシアンブラーで高周波ノイズを除去 blurred = cv2.GaussianBlur(frame, (5, 5), 0) # 背景差分法による動体抽出の閾値を調整 # 鳩の素早い動きを補足するため、学習率を低めに設定 fgbg = cv2.createBackgroundSubtractorMOG2(history=500, varThreshold=16, detectShadows=True) mask = fgbg.apply(blurred) # 影(灰色の部分)をマスクから除外 _, fg_mask = cv2.threshold(mask, 250, 255, cv2.THRESH_BINARY) return fg_mask ``` ### 3. 個体識別精度向上のためのパラメータ調整表 オフィス街特有の環境条件に合わせて、以下の変数を調整すること。 | 項目 | 推奨値 | 理由 | | :--- | :--- | :--- | | `iou_threshold` | 0.45 | 鳩同士が密集しやすいため、IoUを低めに設定し重なりを許容 | | `max_age` | 30 | 遮蔽物(ゴミ箱や柱)の背後に隠れた際の再認識猶予フレーム数 | | `n_init` | 3 | 誤検知防止のため、連続3フレーム以上の検出をもってID確定 | | `confidence_threshold` | 0.65 | 看板や標識の誤認識を防ぐため、高めの閾値を設定 | ### 4. 追跡ロジックへの指示セット AIが群れを追跡する際の思考プロセスを以下のように定義する。 1. **特徴量抽出**: 鳩の頭部の模様、胸元の光沢、足の色を動的特徴量として保持する。 2. **位置予測**: カルマンフィルタを用い、現在位置から0.1秒後の位置を予測し、移動ベクトルを計算する。 3. **ID再割り当て**: - 予測位置と実測位置の距離が一定範囲内であれば同一IDとみなす。 - 複数個体が交差した際、移動ベクトルが不自然に急変する個体を「誤マッチング」と判断し、前フレームのベクトルを優先する。 ### 5. 運用上の注意点 - **カメラアングル**: 鳩の個体識別には、俯瞰よりも水平視点(地上高50cm〜1m)が最も適している。俯瞰の場合、個体間の距離が近すぎてIDの取り違えが発生しやすいため、その際は`DeepSORT`の`Re-ID`(再識別)モデルをより軽量なものに差し替えること。 - **照明対策**: オフィス街はガラス面による反射が激しい。特定のエリアで誤検知が続く場合、そのエリアを「マスク領域」として設定し、解析対象外とすることで全体のCPU負荷を下げつつ精度を維持できる。