はじめに
コンピュータビジョンと目標追跡の分野において、拡張目標ポアソン多項ベルヌーイ混合(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).