ねえ、私は単純なチェス プレイ ロボットの視覚システムをコーディングしています。以前の研究を改善して、カメラと標準のチェス セットを使用し、ゲーム中に両方を動かすことができるようにしようとしています。これまでのところ、Web カメラを介して取得した画像でボードを見つけることができます。連続した画像の差分をとって何が変わったかを判断し、ボードの占有率に関する以前の情報を使用して動きを検出することで動きを検出したいと考えています。
私の問題は、現時点では変更を確実に検出できないように見えることです。現在のパイプラインは次のようになります。コピーして距離変換を行う->最大のブロブを取得します(DTおよびフラッドがそのブロブを埋める後の最大値に対応します)->DTが変更を無視するのに十分小さい値を返すまで繰り返します。
これらすべてを OpenCV と C++ でコーディングしています。しかし、私の塗りつぶしは常にブロブを塗りつぶしていないように見えるため、ほとんどの場合、検出された変更は1つだけです。私も使用してみcv::inpaint
ましたが、どちらも役に立ちませんでした。私の質問は次のとおりです。私は間違ったアプローチを使用しているだけですか、それとも何らかの形でチューリングを行うと、変更検出の信頼性が向上します。前者の場合、妥当な時間内に C++/Python および/または OpenCV でコーディング可能な代替ルートを提案できますか?
ありがとう