Open MaiRajborirug opened 1 year ago
hi,how 's it going?
Hi @MaiRajborirug, were you able to train the MVDNet? If so, can you please help me?
Hi @MaiRajborirug, were you able to train the MVDNet? If so, can you please help me?
sry,i can't train it either.QAQ
Hi @AkashSrinivasulu @ykw3333 , I found that the files xxxx_1.bin - xxxx_4.bin
are not actual bin files. They are the symlink to the .bin
files in data/RobotCar/object/lidar/...
. The author did it because symlinks required only ~60 bytes but the actual .bin
file cost ~1.3 MB. Also, my NumPy setting cannot read symlink. It can only read the actual .bin
files. Thus, I did two things:
lidar/
and lidar_history
folders. Since I move the lidar files from folder/processed/lidar/xxxx.bin
to /data/RobotCar/object/lidar/xxxx.bin
. I need to adjust my symlinks targets accordingly. Here is my code for it.# Step1: adjust symlink
import os, errno
import numpy as np
root_path = "../ORR_dataset/processed"
hist_path = os.path.join(root_path, 'lidar_history') # from this file to lidar_history
edit_path = './data/RobotCar/object/lidar' # from MVDNet to lidar
def symlink_force(target, link_name):
try:
os.symlink(target, link_name)
except OSError as e:
if e.errno == errno.EEXIST:
os.remove(link_name)
os.symlink(target, link_name)
else:
raise e
list_files = os.listdir(hist_path)
list_links = []
for file in list_files:
if file[-5] != 'T': # exclude the actual .bin files
src_path = os.readlink(os.path.join(hist_path, file))
src_file = src_path.split('/')[-1]
src_edit_path = os.path.join(edit_path, src_file)
symlink_force(src_edit_path, os.path.join(hist_path, file))
To check If your symlinks have correct targets. You can use ls -al ../data/RobotCar/object/lidar_history
on terminal. My results change from
lrwxrwxrwx 1 ubuntu ubuntu 49 Mar 24 12:45 1547120788638924_1.bin -> ./ORR_datasets/processed/lidar/1547120788388907.bin
-rw-rw-r-- 1 ubuntu ubuntu 64 Mar 17 11:04 1547120788638924_1_T.bin
to
lrwxrwxrwx 1 ubuntu ubuntu 49 Mar 24 12:45 1547120788638924_1.bin -> ./data/RobotCar/object/lidar/1547120788388907.bin
-rw-rw-r-- 1 ubuntu ubuntu 64 Mar 17 11:04 1547120788638924_1_T.bin
MVDNet/mvdnet/data/robotcar_mapper.py
from# robotcar_mapper.py file
...
lidar_history_data = np.fromfile(lidar_history_name, dtype=np.float32) # line 94
...
lidar_history_data = np.fromfile(lidar_history_name, dtype=np.float32) # line 107
to
# robotcar_mapper.py file
...
lidar_history_data = np.fromfile(os.readlink(lidar_history_name), dtype=np.float32) # line 94
...
lidar_history_data = np.fromfile(os.readlink(lidar_history_name), dtype=np.float32) # line 107
Hope this helps
I wonder where can I specify the Oxford Robotcar DATAPATH during training and validation.
python ../tools/train.py --config ../configs/train_config.yaml
python ../tools/eval.py --config ../configs/train_config.yaml
Do I need to put processed data (data: 10/01/2019, time: 11:46:21 GMT) in this configuration?
I tried it, but here is the error message
However, I have
./data/RobotCar/object/lidar_history/1547122069632436_1.bin
in the folderMy setting is ubuntu=20.04, python=3.7.16, detection=0.1.1, torch=1.9.1+cu111,
Appreciate any help and suggestion Bests regards