2016-11-04 7 views
0

64ビットARMでは、Calib3d_StereoCalibrate_CおよびCalib3d_StereoCalibrate_CPPテストが失敗します。OpenCVを使用したARM64ビットでCalib3d_StereoCalibrateが失敗する

[----------] 1 test from Calib3d_StereoCalibrate_C 
[ RUN  ] Calib3d_StereoCalibrate_C.regression 
/home/ubuntu/opencv-fork/modules/ts/src/ts.cpp:518: Failure 
Failed 

    failure reason: Invalid function output 
    test case #-1 
    seed: ffffffffffffffff 
----------------------------------- 
    LOG: 
Points reprojected with a matrix Q and points reconstructed by triangulation are different, testcase 1 
Testcase 1. Max distance (calibrated) =2.2571 
Max distance (uncalibrated) =3.5603 

----------------------------------- 

[ FAILED ] Calib3d_StereoCalibrate_C.regression (6188 ms) 
[----------] 1 test from Calib3d_StereoCalibrate_C (6188 ms total) 

[----------] 1 test from Calib3d_StereoCalibrate_CPP 
[ RUN  ] Calib3d_StereoCalibrate_CPP.regression 
/home/ubuntu/opencv-fork/modules/ts/src/ts.cpp:518: Failure 
Failed 

    failure reason: Invalid function output 
    test case #-1 
    seed: ffffffffffffffff 
----------------------------------- 
    LOG: 
Points reprojected with a matrix Q and points reconstructed by triangulation are different, testcase 1 
Testcase 1. Max distance (calibrated) =2.2571 
Max distance (uncalibrated) =3.5603 

----------------------------------- 

[ FAILED ] Calib3d_StereoCalibrate_CPP.regression (6189 ms) 
[----------] 1 test from Calib3d_StereoCalibrate_CPP (6190 ms total) 

この問題をトレースして、この問題がデバッグモードで再現されないことを認識しました。

[----------] 1 test from Calib3d_StereoCalibrate_C 
[ RUN  ] Calib3d_StereoCalibrate_C.regression 
[  OK ] Calib3d_StereoCalibrate_C.regression (29540 ms) 
[----------] 1 test from Calib3d_StereoCalibrate_C (29540 ms total) 

[----------] 1 test from Calib3d_StereoCalibrate_CPP 
[ RUN  ] Calib3d_StereoCalibrate_CPP.regression 
[  OK ] Calib3d_StereoCalibrate_CPP.regression (29350 ms) 
[----------] 1 test from Calib3d_StereoCalibrate_CPP (29350 ms total) 

私はここでfmaddを使用しないように強制し、テストに合格することを確認しました。 これまたは回避策を処理する方法はありますか?

答えて

1

これは、arm64のopencvに関連する既知のバグです。

私は過去にこの状況に直面していました。 原因は、fmaddとmultiply + addの違いによるものです。 64bit版のGCCは、32bit版と比べて、できるだけfmaddを使う傾向があります。

関連する問題