@@ -62,8 +62,8 @@ fn estimate_covariance_for_match<Feat: Feature>(
62
62
let cov_point = n_inv. fixed_view :: < 4 , 4 > ( 0 , 0 ) ;
63
63
let j_e = Matrix3x4 :: < Float > :: new (
64
64
1.0 /landmark_cam. w , 0.0 , 0.0 , -landmark_cam. x /landmark_cam. w . powi ( 2 ) ,
65
- 0.0 , 1.0 /landmark_cam. y , 0.0 , -landmark_cam. y /landmark_cam. w . powi ( 2 ) ,
66
- 0.0 , 0.0 , landmark_cam. z , -landmark_cam. z /landmark_cam. w . powi ( 2 )
65
+ 0.0 , 1.0 /landmark_cam. w , 0.0 , -landmark_cam. y /landmark_cam. w . powi ( 2 ) ,
66
+ 0.0 , 0.0 , 1.0 / landmark_cam. w , -landmark_cam. z /landmark_cam. w . powi ( 2 )
67
67
) ;
68
68
j_e* cov_point* j_e. transpose ( )
69
69
}
@@ -73,12 +73,12 @@ fn estimate_covariance_for_match<Feat: Feature>(
73
73
*/
74
74
fn score_covariance ( cov : & Matrix3 < Float > ) -> Float {
75
75
let svd = cov. svd ( false , false ) ;
76
- ( svd. singular_values [ 0 ] / svd. singular_values [ 2 ] ) . sqrt ( )
76
+ ( svd. singular_values [ 2 ] / svd. singular_values [ 0 ] ) . sqrt ( )
77
77
}
78
78
79
79
pub fn score_camera_pairs < Feat : Feature , C : Camera < Float > > (
80
- match_map : & HashMap < ( usize , usize ) ,
81
- Vec < Match < Feat > > > , cam_map : & HashMap < usize , C > ,
80
+ match_map : & HashMap < ( usize , usize ) , Vec < Match < Feat > > > ,
81
+ cam_map : & HashMap < usize , C > ,
82
82
landmark_map : & HashMap < ( usize , usize ) , Vec < EuclideanLandmark < Float > > > ,
83
83
abs_pose_map : & HashMap < usize , Isometry3 < Float > > ,
84
84
pixel_std : Float
@@ -103,7 +103,8 @@ pub fn score_camera_pairs<Feat: Feature, C: Camera<Float>>(
103
103
let l_vec4 = Vector4 :: < Float > :: new ( l_vec. x , l_vec. y , l_vec. z , 1.0 ) ;
104
104
let cov = estimate_covariance_for_match ( m, & l_vec4, & p1_prime, & inv_intrinsics_1, & p2_prime, & inv_intrinsics_2, pixel_std) ;
105
105
let score_for_m = score_covariance ( & cov) ;
106
- score_acc += score_for_m;
106
+ let diff_to_target = ( ( 0.5 as Float ) . sqrt ( ) - score_for_m) . abs ( ) ;
107
+ score_acc += diff_to_target;
107
108
}
108
109
109
110
let score_avg = score_acc/( landmarks. len ( ) as Float ) ;
0 commit comments