2017-08-04 7 views
0

何とかcharucoのダイヤモンドを検出すると、私のために大きな画像では機能しません。オリジナルの1920x1080の画像では、IDを確実に認識することはありません(ダイヤモンドID要素は毎回切り替わる場所です)。最初の画像では、(7,9,45,2)が認識されていることがわかります。OpenCV:charuco(ダイヤモンド)は大きな画像では機能しません。チューニングするパラメータはどれですか?

1920x1080 image. wrong ids order and pose estimation

それから私は半分に、F、C、960x540のに画像をダウンサンプリングし、キャリブレーションのparamsを分割しようとした、そしてそれは働きます! IDは(2,7,45,9)と正しく認識され、姿勢推定は正確です。それは大きな画像のために働くようにする方法

960x540 image. correctly estimated

?絶対ピクセル単位(画像サイズに関係なく)に応じて検出パラメータを変更しようとしました。ここに私の現在のパラメータのリストがあります。私はthreasholdingのためのウィンドウサイズを増やすことが、正方形の認識に役立つが、IDや姿勢の推定には役立たないことに気づいた。

nmarkers: 1024 adaptiveThreshWinSizeMin: 13 adaptiveThreshWinSizeMax: 113 adaptiveThreshWinSizeStep: 10 adaptiveThreshWinSize: 42 adaptiveThreshConstant: 7 minMarkerPerimeterRate: 0.1 maxMarkerPerimeterRate: 4.0 polygonalApproxAccuracyRate: 0.05 minCornerDistance: 10.0 minDistanceToBorder: 10 minMarkerDistance: 10.0 minMarkerDistanceRate: 0.05 doCornerRefinement: false cornerRefinementWinSize: 5 cornerRefinementMaxIterations: 30 cornerRefinementMinAccuracy: 0.1 markerBorderBits: 1 perspectiveRemovePixelPerCell: 8 perspectiveRemoveIgnoredMarginPerCell: 0.13 maxErroneousBitsInBorderRate: 0.04 minOtsuStdDev: 5.0 errorCorrectionRate: 0.6 ヒント

ありがとうございました!

答えて

0

私はopencv arucoモジュールにパッチを当てる必要がありました。イメージサイズ(closestCandidateDistance in refineDetectedMarkers)まで(4分の1に)速すぎるエスカレートする一定のしきい値の問題でした。その解決策は、detectCharucoDiamondminRepDistanceを画像サイズに比例して線形にしかならないようにすることでした。

フル回答とパッチはopencv forumです。

関連する問題