拡張目標ポアソン多項ベルヌーイ混合(PMBM)トラッカーのMATLAB実装

はじめに

コンピュータビジョンと目標追跡の分野において、拡張目標ポアソン多項ベルヌーイ混合(PMBM)トラッカーは、複雑なシーンにおける複数目標の追跡に用いられる先進的な技術である。この手法は、目標数をポアソン分布の混合としてモデル化することで、目標数の不確実性を効率的に処理する。また、多項ベルヌーイ過程を用いて各目標の生存確率と観測確率を記述することで、高い堅牢性を実現する。

PMBMトラッカーの主要な特徴は、粒子フィルタリングに基づく近似推論を行う点にある。追跡対象となる各目標は、状態空間モデルにより表現され、観測モデルは多項ベルヌーイ過程として定式化される。この組み合わせにより、未知かつ変動する目標数を扱うことが可能となる。

PMBMトラッカーの理論的基盤

確率的モデリング

PMBMトラッカーは、以下の確率的仮説に基づいている。

  • 目標数の分布:シーン内の目標数はポアンス分布に従うと仮定される。この仮説により、追跡開始時に目標数を知る必要がなくなる。
  • 状態遷移モデル:各目標の状態は、マルコフ連鎖により時間的に遷移する。典型的には、線形または非線形の運動モデルが用いられる。
  • 観測モデル:各目標の検出・未検出は、多項ベルヌーイ過程で記述される。これにより、検出確率的とfalse alarmを明示的にモデル化できる。

数式表現

PMBM密度は、以下の因子分解形式で表現される。

ポアソン成分と多項ベルヌー利成分の組み合わせにより、全体の尤度を計算する。ポアソン成分は新規目標の出現を捉え、多項ベルヌー利成分は既存目標の追跡を担当する。この分離により、計算効率と追跡精度のバランスが達成される。

アルゴリズムの詳細

粒子ベース近似

PMBMトラッカーでは、目標状態の後驗分布を粒子集合により表現する。各粒子は、可能な軌跡の一例を表し、その状態推定値と重みが記録される。追跡アルゴリズムは以下の反復ステップから構成される。

初期化ステップ:追跡対象の候補となる粒子集合を初期化する。この段階では、空間全体をカバーするように粒子が配置される。

予測ステップ:運動モデルを用いて、各粒子の次時刻の状態を予測する。線形ガウスモデルでは、状態遷移行列と過程ノイズ共分散を用いて予測分布を計算する。

更新ステップ:観測データを用いて粒子重みを更新する。多項ベルヌー利過程に基づく観測尤度を計算し、各粒子の重みに反映させる。

リサンプリングステップ:重みに比例して粒子を再抽出する。これにより、低重みの粒子を除去し、計算資源を効率的に配分する。

軌跡統合ステップ:粒子集合から軌跡を統合し、目標状態の推定値を算出する。

ガウス逆ウィシャート平滑化

拡張目標追跡では、拡張状態(共分散行列を含む)を扱う必要がある。PMBMトラッカーでは、ガウス逆ウィシャート(GIW)分布を用いた平滑化処理が重要な役割を果たす。以下に、因子化されたGIW平滑化のMATLAB実装を示す。

function [mkT, PkT, vkT, VkT] = factorizedGIWsmoothing(mkk, Pkk, vkk, Vkk, ...
    mk1T, Pk1T, vk1T, VkT, vk1k, Vk1k, models)

    % モデルパラメータの取得
    Q = models.Q;
    Ts = models.Ts;
    d = models.d;
    n = models.n;

    % 運動モデルによる予測
    [fm, Fm] = models.motionModel(mkk, Ts);

    %% ガウス成分の前進・後退平滑化

    % 予測平均と予測共分散
    mk1k = fm;
    Pk1k = Fm * Pkk * Fm.' + Q;
    Pk1k = 0.5 * (Pk1k + Pk1k.');

    % 平滑化ゲイン
    G = Pkk * Fm.' / Pk1k;

    % 平滑化平均
    mkT = mkk + G * (mk1T - mk1k);
    % 平滑化共分散
    PkT = Pkk - G * (Pk1k - Pk1T) * G.';
    PkT = 0.5 * (PkT + PkT.');

    %% 逆ウィシャート成分の時間平滑化

    % 逆ウィシャート分布の比率計算
    e = vk1T - vk1k;
    E = Vk1T - Vk1k;

    % 数値安定性のためのパラメータ調整
    min_n = max([2*(d+1)^2/e+0.1, 3*(d+1)-e+0.1]);
    if n < min_n
        n = min_n;
    end

    % 行列変換関数の適用判定
    [Mm, M1, M2, I_x] = models.inverseMatrixTransformationFunction(mkT);

    if isempty(I_x)
        % 運動状態に依存しない行列変換(恒等行列と仮定)
        % 期待値マッチングによる近似

        k = (e - 2*(d+1)^2/n) / (1 + e/n - 3*(d+1)/n);
        K = E / (1 + (e - 3*(d+1))/n);

    elseif models.KLdiv_minimization_flag
        % 行列変換関数を使用、KL情報量最小化による近似

        g = (e - 2*(d+1)^2/n) / (e/n + 1 - 3*d/n - 3/n);

        % 固有値分解による数値安定化
        [w, v] = eig(E, 'vector');
        E = w * diag(max(v, 1e-5)) * w.';

        % 変換行列の期待値計算
        [E_logdetX, E_X, E_invX] = approximateMatrixTransformationExpectedValues(...
            E, PkT, Mm, M1, M2, I_x, d);

        % ウィシャート近似
        [h, H] = WishartApproximation(E_X, E_logdetX, g, d);

        % パラメータが閾値未満の場合の代替計算
        if h <= d + 1
            E_X_invX = E_X * E_invX;
            E_X_invX_I = E_X_invX - eye(d);
            h = 0.5 * trace(E_X_invX_I \ ((d+1) * E_X_invX));
            H = E_X / h;
        end

        % GB2分布から逆ウィシャート分布への変換
        a = h / 2;
        b = (g - d - 1) / 2;
        A = ((1 + e/n - 3*d/n - 3/n)^-1) * H;

        if g > 2*d + 1 && h > d + 1
            % KL情報量最小化による最終近似
            ExpVal_invX = (2*b / (2*a - d - 1)) * (eye(d) / A);
            ExpVal_logdetX = log(det(A)) + sum(psi(0, eps + a - ((1:d)-1)/2) ...
                - psi(0, b - ((1:d)-1)/2));
            [k, K] = InverseWishartApproximation(ExpVal_invX, ExpVal_logdetX, a, d);

        elseif (h + d + 1)*g - 2*(d+1)^2 > 0 && ...
               h + g - 2*(d+1) > 0 && h > d + 1
            % 期待値マッチングによる近似
            k = ((h + d + 1)*g - 2*(d+1)^2) / (h + g - 2*(d+1));
            K = H * h * (h - d - 1) / (h + g - 2*d - 2);

        else
            k = h;
            K = H;
        end

    else
        % 期待値マッチングによる代替アプローチ

        g = (e - 2*(d+1)^2/n) / (e/n + 1 - 3*d/n - 3/n);

        % 行列の正定値性保証
        [w, v] = eig(E, 'vector');
        E = w * diag(max(v, 1e-5)) * w.';

        % 期待値計算
        [~, E_X, E_invX] = approximateMatrixTransformationExpectedValues(...
            E, PkT, Mm, M1, M2, I_x, d);

        % 期待値マッチングによるウィシャート近似
        E_X_invX = E_X * E_invX;
        E_X_invX_I = E_X_invX - eye(d);
        h = ((d + 1)/d) * trace(E_X_invX_I \ E_X_invX);

        % パラメータ制約の適用
        if h + d + 1 < max([2*(d+1)^2/g+1, 3*(d+1)-g+1])
            h = max([2*(d+1)^2/g+1, 3*(d+1)-g+1]) - d - 1;
        end
        H = E_X / h;

        % 最終的な逆ウィシャートパラメータ
        if (h + d + 1)*g - 2*(d+1)^2 > 0 && ...
           h + g - 2*(d+1) > 0 && h > d + 1
            k = ((h + d + 1)*g - 2*(d+1)^2) / (h + g - 2*(d+1));
            K = H * h * (h - d - 1) / (h + g - 2*d - 2);
        else
            k = 0;
            K = 0;
        end
    end

    % 逆ウィシャート分布の統合
    vkT = vkk + k;
    VkT = Vkk + K;
    VkT = 0.5 * (VkT + VkT.');

end

PMBMトラッカーの利点

目標数不確実性の処理

PMBMトラッカーの最も顕著な利点は、追跡対象,目标数の事前知識なしに動作できる点である。従来の追跡手法の多くは、固定された目標数を前提としていたが、PMBMはポアソン成分により動的な目標数の変動を自然にモデル化する。これにより、新規目標の出現や既存目標の消失を明示的に処理できる。

堅牢性と適応性

本手法は以下の攪乱要因に対して高い堅牢性を示す。

  • 遮蔽への対応:目標が他の物体に一時的に隠れても、再出現時に軌跡を復元できる。
  • クラッタ耐性:誤検出(false alarm)を明示的にモデル化することで、ノイズの多い観測環境でも安定した追跡を維持する。
  • 外観変化への適応:目標の外見が時間とともに変化しても、状態空間モデルにより継続的に追跡できる。

計算効率

粒子フィルタリングに基づく実装により、リアルタイム処理が可能である。計算量は粒子数と目標数に比例して増加するが、適切な粒子数と枝刈り戦略により、実用的なフレームレートを達成できる。

適用分野と応用例

PMBMトラッカーは、以下のような多様な分野で活用されている。

歩行者追跡:監視映像や自律走行車のセンサーデータを用いた歩行者追跡において、群衆内の個人を個別に追跡する必要がある場面で効果を発揮する。

車両追跡:交通監視システムや先進運転支援システム(ADAS)において、複数の車両の位置と速度を同時に推定するのに使用される。

動作解析:スポーツ映像解析や行動認識において、人や物体の動作パターンを詳細に分析するための基盤技術として活用される。

実装上の考慮事項

パラメータ設定

効果的な追跡を実現するためには、以下のパラメータを適切に調整する必要がある。

  • 粒子数:精度と計算コストのトレードオフを考慮して設定する。目標数が多い場合、または複雑な動きがある場合は、より多くの粒子が必要となる。
  • 過程ノイズ共分散:目標の運動モデルに依存する。過度に大きな値を設定すると追跡が不安定になり、過小に設定すると機動目標の追跡に失敗する可能性がある。
  • 検出確率:観測の信頼性を反映する。传感器や環境条件に応じて調整する。

数値安定性

逆ウィシャート分布を扱う際には、数値安定性に注意が必要である。共分散行列の固有値が負にならないよう、固有値分解後の最小値クランプなどの対策が実装に含まれている。

まとめ

拡張目標ポアソン多項ベルヌーイ混合(PMBM)トラッカーは、複雑な環境下での複数目標追跡において、優れた性能を発揮する手法である。目標数の不確実性を確率的に処理し、多項ベルヌーイ過程による観測モデルの統合により、高い堅牢性を実現している。MATLABによる実装例に示したガウス逆ウィシャート平滑化アルゴリズムは、拡張目標追跡における重要な構成要素として、理論と実践の両面で有用な知見を提供する。

参考文献

本手法の理論的背景については、以下の原始論文を参照されたい。

  • Garcia-Fernandez, A. F., et al. "Evaluation of the Poisson multi-Bernoulli mixture track-before-detect filter." IEEE Transactions on Signal Processing (2016).

タグ: MATLAB PMBM 目標追跡 粒子フィルタ ポアソン分布

5月15日 23:30 投稿