zaiweizhang / H3DNet

MIT License
211 stars 25 forks source link

OSError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found #14

Closed wisper181 closed 3 years ago

wisper181 commented 3 years ago

I execute this code on Ubuntu16.04,then there is an error:OSError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found.Is there any way to deal with this bug,except upgrading the system.Wish ur help,plz.

zaiweizhang commented 3 years ago

Can you provide some more information? Did you get this error when launching python? Or it's related to some package import?

wisper181 commented 3 years ago

image thx for your timely reply.I try to visualize predictions and ground truths,and get this problem. ^_^

Can you provide some more information? Did you get this error when launching python? Or it's related to some package import?

zaiweizhang commented 3 years ago

It looks like an open3d issue:

Try this solution: https://github.com/intel-isl/Open3D/issues/1307

wisper181 commented 3 years ago

It's an open3d issue exactly.I try to pip install open3d==8.0, and it seems to work. Thx for your help.^_^.Have a good day! H3Dnet provides a good idea,and I want to duplicate this code. May I have your personal contact information,like e-mail or whatever?Thx

zaiweizhang commented 3 years ago

Hi,

I am glad that you are interested in our work! If you have any code related questions, you can just ask it here. For other questions, you can reach me at my email zaiweizhang at utexas dot edu

Thanks, Zaiwei

wisper181 commented 3 years ago

okk,Thx again!

wisper181 commented 3 years ago

Hi, sorry to bother you again. I'm new to the field, and there are some preliminary questions I want to know if I want to train other class in SUNRGBD(not the 10-class in paper),where should I modify it?

Following the votenet, I run sunrgbd_data.py to gen v1 data,and modify some data-config files. It works on votenet. But when I use these v1 data on H3DNet, I get this problem: image I try to sovle it but fail,0.0 Wish your help,Thanks

By the way, self.class37_2_class10_multi_map = {4:[0], 7:[1, 5], 6:[2, 3], 5:[2, 3], 33:[4], 14:[1, 5], 17:[6], 32:[7], 10:[8], 36:[9]} self.class37_2_class10_map = {4:0, 7:1, 6:2, 5:3, 33:4, 14:5, 17:6, 32:7, 10:8, 36:9} I haven't get these variables' mean,and Why we need do this? Can you explain it?Thank you very much!

I want to train box class in SUNRGBD,so I modify data-config files like this:

sunrgbd_data.py

DEFAULT_TYPE_WHITELIST = ['bed','table','sofa','chair','toilet','desk','dresser','night_stand','bookshelf','bathhub']

DEFAULT_TYPE_WHITELIST = ['bed','table','sofa','chair','toilet','box','dresser','night_stand','bookshelf','desk']

model_util_sunrgbd.py

self.type2class={'bed':0, 'table':1, 'sofa':2, 'chair':3, 'toilet':4, 'desk':5, 'dresser':6, 'night_stand':7, 'bookshelf':8, 'bathtub':9}

self.type2class={'bed':0, 'table':1, 'sofa':2, 'chair':3, 'toilet':4, 'box':5, 'dresser':6, 'night_stand':7, 'bookshelf':8, 'desk':9}

self.class37_2_class10_multi_map = {4:[0], 7:[1, 5], 6:[2, 3], 5:[2, 3], 33:[4], 14:[1, 5], 17:[6], 32:[7], 10:[8], 36:[9]}

self.class37_2_class10_multi_map = {4:[0], 7:[1, 9], 6:[2, 3], 5:[2, 3], 33:[4], 29:[5], 17:[6], 32:[7], 10:[8], 14:[1, 9]}

self.class37_2_class10_map = {4:0, 7:1, 6:2, 5:3, 33:4, 29:5, 17:6, 32:7, 10:8, 14:9}

self.type2onehotclass={'bed':0, 'table':1, 'sofa':2, 'chair':3, 'toilet':4, 'desk':5, 'dresser':6, 'night_stand':7, 'bookshelf':8, 'bathtub':9}

    self.type2onehotclass={'bed':0, 'table':1, 'sofa':2, 'chair':3, 'toilet':4, 'box':5, 'dresser':6, 'night_stand':7, 'bookshelf':8, 'desk':9}

self.type_mean_size = {'desk': np.array([0.695190,1.346299,0.736364]), 'bed': np.array([2.114256,1.620300,0.927272]), 'bookshelf': np.array([0.404671,1.071108,1.688889]), 'chair': np.array([0.591958,0.552978,0.827272]), 'box': np.array([0.351994,0.364480,0.309092]), 'dresser': np.array([0.528526,1.002642,1.172878]), 'night_stand': np.array([0.500618,0.632163,0.683424]), 'sofa': np.array([0.923508,1.867419,0.845495]), 'table': np.array([0.791118,1.279516,0.718182]), 'toilet': np.array([0.699104,0.454178,0.756250])}

sunrgbd_utils.py

type2class={'bed':0, 'table':1, 'sofa':2, 'chair':3, 'toilet':4, 'desk':5, 'dresser':6, 'night_stand':7, 'bookshelf':8, 'bathtub':9}

type2class={'bed':0, 'table':1, 'sofa':2, 'chair':3, 'toilet':4, 'box':5, 'dresser':6, 'night_stand':7, 'bookshelf':8, 'desk':9}

yanghtr commented 3 years ago

Problem 1

Our sunrgbd generation is slightly different from votenet. In the original votenet code extract_rgbd_data_v2.m, only 3D coordinates and RGB are dumped (thus N 6). We simply add per point semantic (thus N 7, our data will not lead to IndexError).

To generate the same type of our data, you can simply modify the code extract_rgbd_data_v2.m from votenet: change line 46- 50:

% Write point cloud in depth map
[rgb,points3d,depthInpaint,imsize]=read3dPoints(data);
rgb(isnan(points3d(:,1)),:) = [];
points3d(isnan(points3d(:,1)),:) = [];
points3d_rgb = [points3d, rgb];

to:

% Write point cloud in depth map
seg2d = load(strcat(seg_label_folder, num2str(imageId, '%06d'), '.mat'));
seg = seg2d.instance(:);
[rgb,points3d,depthInpaint,imsize]=read3dPoints(data);
rgb(isnan(points3d(:,1)),:) = [];
seg(isnan(points3d(:,1)),:) = [];
points3d(isnan(points3d(:,1)),:) = [];
points3d_rgb = [points3d, rgb, seg];  % add semantic here

Problem 2

SUNRGBD does not provide 3D instance segmentation, which is necessary for computing plane/line from an object (instance). To do this, given a 3D bounding box (e.g. the semantic of the 3D bounding box is a table), we first extract points that are inside the 3D bounding box, then select the points that have the same semantic (e.g. the semantic of the 3D point is table, note that the semantic is obtained in problem 1 stated above). However, we notice that there is inconsistency between the semantic of 3D bounding box and the point-wise semantic in the SUNRGBD dataset. For example, the semantic of the 3D bounding box is table but the point-wise semantic is desk (since table and desk is quite similar). To make sure that we select the points correctly using the inconsistent semantic, we use self.class37_2_class10_map .

wisper181 commented 3 years ago

okk,I will try. Thank you ^-^ Have a good day!

wisper181 commented 3 years ago

Hi,I try it and have some bugs. orz... I get empty folders after running it.

seg2d = load(strcat(seg_label_folder, num2str(imageId, '%06d'), '.mat')

Does it mean that I need to get the .mat files about instance segmentation firstly? I try to find solution on SUNRGBD dataset or other projects, but get nothing Can you please tell me where or how I get these .mat files. THANK YOU!

yanghtr commented 3 years ago

If you follow the instructions of VoteNet, then in the folder sunrgbd/OFFICIAL_SUNRGBD/SUNRGBDtoolbox/Metadata, you can find a file SUNRGBD2Dseg.mat, which provides the 2D segmentation label. You can extract it yourself according to the official readme in SUNRGBD: https://rgbd.cs.princeton.edu/data/README.txt.

You can also download our processed seg_label here: seg_label.

wisper181 commented 3 years ago

okk,it works. Thx!!! ^_^