cube_slam icon indicating copy to clipboard operation
cube_slam copied to clipboard

How to get the data /pred_3d_obje_matched_tracked_txt/frame_id_3d_cuboids.txt?

Open GuaguaguaLiu opened this issue 5 years ago • 4 comments

Hello, shichao, thanks for your great job and open source sharing. When testing the object_orb_slam (run mono_dynamic.launch), the data you provided (kitti (0018)) is required. I see the format of the 3D_cuboids data in /pred_3d_obj_matched_tracked_txt/frame_id_3d_cuboids.txt, i.e., [cuboid_center, yaw, cuboid_scale, [x,y,w,h], prop, truth_id]. I know the the [x,y,w,h] can be provided by YOlO or other detectors, but how should the 'cuboid_center, yaw, cuboid_scale, and truth_id' data be obtained? Can by the detect_3d_cuboid package?

GuaguaguaLiu avatar Dec 16 '19 09:12 GuaguaguaLiu

I have the same question, any luck? I guess these should be saved by detect_cuboid code, however currently it does not.

MinaHenein avatar Dec 18 '19 04:12 MinaHenein

hi I didn't upload the script, but in the matlab cuboid detection https://github.com/shichaoy/matlab_cuboid_detect/blob/master/detect_cuboid.m At the end, the best object is stored in ObjectSets, then its straightforward to save to txt like the following:

frame_pred_object_info_mat = zeros(0,12);
one_obj_info = zeros(0,12); % original 11, now 12, with confidence    
for ii=1:size(ObjectSets,1)
    if ( size(ObjectSets{ii},1)>0 )
        pred_cuboid = ObjectSets{ii}(1); % retrieve the best cuboids from each object sets
        one_obj_info(1:3) = pred_cuboid.pos;
        one_obj_info(4) = pred_cuboid.rotY;
        one_obj_info(5:7) = pred_cuboid.scale;  % half width/length/height
        one_obj_info(8:11) = pred_cuboid.rect_detect_2d;
        one_obj_info(12) = pred_cuboid.confidence_2d_prob;
        frame_pred_object_info_mat=[frame_pred_object_info_mat;one_obj_info];
    end
end

 dlmwrite(save_pred_cuboids_txt_name,frame_pred_object_info_mat,'delimiter','\t','precision',3);

I will update the repo to have this small section. basically not matter which 3D object detection algorithm, you can do something similar to above, save to txt, feed to slam.

shichaoy avatar Dec 19 '19 07:12 shichaoy

Thank you for your reply!

GuaguaguaLiu avatar Dec 19 '19 09:12 GuaguaguaLiu

In the mono. launch file, there are these two parameters.

mono.launch # save result param name="whether_save_online_detected_cuboids" value="false" / param name="whether_save_final_optimized_cuboids" value="false" /

What I understand is that setting them to true will save the coordinates of the cube of the object in the SLAM map. But after I set them to true, I still couldn't find any results. Can someone help me?

lin-fangzhou avatar Apr 19 '23 02:04 lin-fangzhou