ビデオゲームからのフレームのセットを与えられたMATLABの基本的な追跡プログラムを実装する必要があり、それぞれを分析し、オブジェクト。私は、各オブジェクトのバウンディングボックスの座標を取得するために、機能regionprops
を使用し、以下のように、機能rectangle
を使用してそれらを視覚化してきました:MATLABの一連の画像上の静的/動いているオブジェクトを分類する
for i = 1:size(frames,2)
CC{1,i} = findConnectedComponents(frames{1,i});
stats{1,i} = regionprops('struct',CC{1,i},'BoundingBox','Centroid');
imshow(frames{1,i}),hold on
for j = 1:size(stats{1,i},1)
r = rectangle('Position',stats{1,i}(j).BoundingBox);
r.FaceColor = [0 0.5 0.5 0.45];
end
end
これはうまく動作しますが、私はしたいのですがもう一歩進んで静的オブジェクトと動くオブジェクトを区別することができます。私は重心を使って、各オブジェクトについて、それが各フレーム(オブジェクトが動いていることを意味する)で異なるかどうかを見ることを考えましたが、各画像ではオブジェクトの数が異なります。
たとえば、スペースインベーダーでこれを試していると、エイリアンを殺すと消えるので、オブジェクトの数が減ります。また、各投射物は別々のオブジェクトであり、異なる数の投射物がゲームの異なる瞬間に存在する可能性がある。
私の質問は、オブジェクトを移動するかどうかに基づいてオブジェクトを分類し、2つの異なる色でペイントする方法です。
何らかの理由でオブジェクトの空間情報と時間情報を組み合わせ、フレーム内のカメラの動きに対して動きベクトルをキャンセルして、実際にビデオ内のフレーム内でどのオブジェクトが動かされたかを調べる必要があります。これは活発な研究課題です。 これは良いスタートです:http://www.cs.berkeley.edu/~katef/papers/CVPR2015_LearnVideoSegment.pdf – Harjatin
私の問題についての良いことは、カメラの動きがないことです。 Atariのゲーム、PacManやSpace Invadersのような非常に簡単なゲームでは、一部のオブジェクトだけが画面の周りを動き、他のオブジェクトは静止しています。どういうわけか、それらを「分離」する必要があります。 –