2

RSTP からビデオ フィードを取得し、オブジェクトをチェックするプログラムがあります。唯一の問題は、オブジェクトがカメラから約 6 インチ離れている必要があることですが、有線 Web カメラを使用すると、オブジェクトが数フィート離れている可能性があります。両方のカメラが同じ解像度で送信していますが、この問題の原因は何ですか?

カメラ伝送仕様:

    Resolution: 640 * 480 
    FPS: 20 
    Bitrate: 500000
    Focal Length: 2.8mm

編集:私が使用しているアルゴリズムは OpenCV ORB アルゴリズムですが、以前に OpenCV で Haar 分類メソッドを使用したときにもこの動作が見られました。

以下は、Web カメラがオブジェクトを検出できなくなる限界です。(約66画素) ウェブカメラの画像制限

以下は、Glass が物体を検出できなくなる限界です。(約68画素) ガラス画像の制限

画像を見ると、距離は似ているように見えますが、距離はウェブカメラ画像の少なくとも 2 倍です。これは、この問題を引き起こしているカメラのプロパティのように見えますか? もしそうなら、カメラのどの部分がこれを引き起こしているのでしょうか?

4

1 に答える 1

2

お気づきのとおり、オブジェクトのサイズは両方の画像で非常に似ているため、アルゴリズムは特定のオブジェクトの解像度で停止するようです。

両方のカメラ間の距離の違い (同じオブジェクト サイズの場合) は、焦点距離 (対物レンズからの距離) やセンサー チップのサイズなどのカメラ固有のパラメーターに起因します。

オブジェクトの検出に使用した方法によっては、2 番目の画像のサイズを変更 (アップスケール) できますが、補間アーティファクトが多すぎます (検出方法では処理できない場合があります)。

トレーニング データまたはトレーニング ウィンドウ サイズから直接得られる最小オブジェクト サイズを持つ多くの検出器では、画像のアップスケーリングは問題ありません。アップスケーリングは、追加の (大幅な) 速度パフォーマンスの向上につながる可能性があります。

両方のカメラの固有パラメーターが既知であり、画像が既に歪んでいない場合、両方の画像間の倍率を次のように計算できます。

ratioX = fx1/fx2
ratioY = fy1/fy2

2 番目の画像をアップスケールする場合、fx1,fy1 は最初の画像の焦点距離の値です。その後、主点を中心に拡大された画像を切り取ることができます。その後、両方の画像領域が非常によく一致するはずです。

これがお役に立てば幸いです。

編集: cv::undistort 関数を使用して、テスト用に別のカメラ マトリックスがあるように画像を見せることができます。

于 2015-03-05T11:24:10.550 に答える