j96w / DenseFusion

"DenseFusion: 6D Object Pose Estimation by Iterative Dense Fusion" code repository
https://sites.google.com/view/densefusion
MIT License
1.09k stars 301 forks source link

ValueError: can't extend empty axis 0 using modes other than 'constant' or 'empty' #91

Open andrewqho opened 4 years ago

andrewqho commented 4 years ago

I have a trained YCB model, and tried running the eva_ycb.sh script, but I'm running into an error I haven't seen anybody else report:

Traceback (most recent call last): File "./tools/eval_ycb.py", line 163, in choose = np.pad(choose, (0, num_points - len(choose)), 'wrap') File "<__array_function__ internals>", line 6, in pad File "/home/aqho/anaconda3/lib/python3.7/site-packages/numpy/lib/arraypad.py", line 814, in pad "'constant' or 'empty'".format(axis)

ValueError: can't extend empty axis 0 using modes other than 'constant' or 'empty'

Any ideas on how to fix this?

andrewqho commented 4 years ago

I'm on Numpy 1.17.2 and PyTorch 0.4.1

bearpaw commented 4 years ago

Hi @andrewqho did you solve the problem? I got the same error:

Finish No.0 keyframe
Finish No.1 keyframe
Finish No.2 keyframe
Finish No.3 keyframe
Finish No.4 keyframe
Finish No.5 keyframe
Finish No.6 keyframe
Finish No.7 keyframe
Finish No.8 keyframe
Finish No.9 keyframe
Finish No.10 keyframe
Finish No.11 keyframe
Finish No.12 keyframe
Finish No.13 keyframe
Finish No.14 keyframe
Finish No.15 keyframe
Finish No.16 keyframe
Finish No.17 keyframe
Finish No.18 keyframe
Finish No.19 keyframe
Finish No.20 keyframe
Finish No.21 keyframe
Finish No.22 keyframe
Finish No.23 keyframe
Finish No.24 keyframe
Finish No.25 keyframe
Traceback (most recent call last):
  File "./tools/eval_ycb.py", line 163, in <module>
    choose = np.pad(choose, (0, num_points - len(choose)), 'wrap')
  File "<__array_function__ internals>", line 6, in pad
  File "/home/weiy/.local/lib/python3.7/site-packages/numpy/lib/arraypad.py", line 814, in pad
    "'constant' or 'empty'".format(axis)
ValueError: can't extend empty axis 0 using modes other than 'constant' or 'empty'
j96w commented 4 years ago

Ok, it seems like one of the vectors is actually empty, which means maybe the segmentation step failed and no pixel was selected. Could you guys double check whether there is a missing object segment result on No.26 frame? Since we are loading the segmentation results of PoseCNN, I remember there are some missing cases.

Guptajakala commented 4 years ago

@j96w Indeed it's empty. How did you handle those cases when evaulate?

Ixion46 commented 4 years ago

Hi , is there allready a solution how to fix this problem ?

sureshbadagi commented 4 years ago

Hi,I am ending up with the same problem? Is anybody able to fix this problem?

bearpaw commented 4 years ago

One way is to change this line https://github.com/j96w/DenseFusion/blob/master/tools/eval_ycb.py#L234 to

except (ZeroDivisionError, ValueError):
LennardBo commented 3 years ago

I'm happy I'm not the only with that error. I caught it simply with

 elif len(choose) == 0:  
    my_result_wo_refine.append([0.0 for i in range(7)])
    my_result.append([0.0 for i in range(7)])
    continue

before the attempt to np.pad the choose array which should do the same as @bearpaw 's suggestion. I wonder, though, following the given evaluation procedure I cannot replicate the paper's result. They are reasonably, but quite a bit worse than the paper for the unrefined results. How about you?

three-sheep commented 3 years ago

I occurred this quesiton, we need check the signal whether is None or length is 0.

for line in audiopaths: signal , = librosa.load(line,sr=None) if signal is None or len(signal) == 0: continue else: feature = librosa.feature.mfcc(signal,sr,n_mfcc,n_fft,hop_length)

pass