นี่คือการใช้งาน Pytorch อย่างเป็นทางการของ IROS 2024 paper Deep Visual Odometry พร้อมเหตุการณ์และเฟรมโดยใช้เครือข่าย Recurrent Asynchronous และ Massively Parallel (RAMP) สำหรับ Visual Odometry (VO)
หากคุณใช้ส่วนใดส่วนหนึ่งของรหัสนี้หรือชุดข้อมูลที่มาพร้อมกับเอกสาร โปรดพิจารณาอ้างอิงสิ่งต่อไปนี้
@InProceedings{Pellerito_2024_IROS,author = {Pellerito, Roberto และ Cannici, Marco และ Gehrig, Daniel และ Belhadj, Joris และ Dubois-Matra, Olivier และ Casasco, Massimo และ Scaramuzza, Davide},title = {Deep Visual Odometry with Events and Frames} ,booktitle = {การประชุมนานาชาติ IEEE/RSJ เกี่ยวกับหุ่นยนต์อัจฉริยะ (IROS)},เดือน = {มิถุนายน},ปี = {2024}}
เราขอแนะนำ RAMP-VO ซึ่งเป็นระบบ VO แบบรูปภาพและตามเหตุการณ์ที่เรียนรู้ตั้งแต่ต้นทางถึงปลายทางระบบแรก โดยใช้ประโยชน์จากตัวเข้ารหัสแบบ Recurrent, Asynchronous และ Massively Parallel (RAMP) แบบใหม่ที่สามารถหลอมรวมเหตุการณ์แบบอะซิงโครนัสเข้ากับข้อมูลรูปภาพได้
คุณสามารถสร้างสภาพแวดล้อม conda ใหม่ได้โดยตรงโดยใช้ไฟล์ environment.yml
ที่ให้มา
conda env สร้าง -f สภาพแวดล้อม yml conda เปิดใช้งาน Rampvo
คุณอาจต้องติดตั้ง torch
เวอร์ชันอื่น ทั้งนี้ขึ้นอยู่กับเวอร์ชัน CUDA ของคุณ รหัสต่อไปนี้ได้รับการทดสอบด้วย python 3.10.0 และ CUDA 12.2 บน Nvidia GPU Quadro RTX 8000
pip ติดตั้งไฟฉาย torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124 pip ติดตั้ง -r ข้อกำหนด.txt
เนื่องจากเราใช้ lietorch สำหรับการดำเนินงานของกลุ่ม Lie คุณจึงต้องติดตั้งแพ็คเกจเพิ่มเติมบางส่วน หากต้องการติดตั้ง eigen-3.4.0 ที่จำเป็น ให้รันคำสั่งต่อไปนี้:
ซีดี แรมโว wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.zip unzip eigen-3.4.0.zip -d บุคคลที่สาม
ในที่สุดก็ติดตั้งแพ็คเกจ Ramp VO
ซีดี แรมโว การติดตั้ง pip
ดาวน์โหลดจุดตรวจที่ได้รับการฝึกอบรมมาแล้วและวางไว้ในโฟลเดอร์ checkpoints
RAMP-VO หลายสเกล | RAMP-VO สเกลเดียว | |
---|---|---|
ด่าน | ดาวน์โหลด | ดาวน์โหลด |
Tartan Event เป็นเวอร์ชันหนึ่งของชุดข้อมูล TartanAir ที่มีข้อมูลกล้องเหตุการณ์เพิ่มเติม
ดาวน์โหลดชุดข้อมูล TartanAir ที่นี่
ดาวน์โหลดชุดข้อมูล TartanEvent ด้วยสคริปต์ที่ให้มา และคลายการบีบอัดในโฟลเดอร์เดียวกันกับ TartanAir:
UNZIP_FILES=true DELETE_FILES=true ./scripts/download_tartanevent.sh /path/to/TartanAir
โครงสร้างโฟลเดอร์ผลลัพธ์ควรเป็นดังนี้:
|--- /your/path/to/TartanAir | |--- abandonedfactory | |--- Easy | |--- P000 | |--- depth_left | |--- events.h5 | |--- fps.txt | |--- image_left | |--- indices.txt | |--- pose_left.txt | |--- timestamps.txt | |--- P001 | |--- ... | |--- P002 | |--- ... | |--- Hard | |--- P000 | |--- P001 | |--- P002 | |--- ... |
การแข่งขัน TartanEvent เป็นส่วนหนึ่งของชุดข้อมูล TartanAir ที่ใช้สำหรับการแข่งขัน SLAM พร้อมด้วยข้อมูลกล้องเหตุการณ์เพิ่มเติม
ดาวน์โหลดชุดข้อมูล TartanAir สำหรับการแข่งขัน SLAM ที่นี่
ดาวน์โหลดชุดข้อมูลการแข่งขัน TartanEvent ที่นี่
สุดท้ายจัดเรียงข้อมูลตามที่รายงานไว้ข้างต้นสำหรับชุดข้อมูล TartanEvent
ดาวน์โหลดลำดับ Malapert ที่นี่
ดาวน์โหลดลำดับ Apollo ที่นี่
คุณสามารถจัดเรียงชุดข้อมูลนี้ได้ดังนี้:
|--- /your/path/to/MoonLanding | |--- Malapert_crater | |--- Cam 1 | |--- Cam 2 | |--- Apollo | |--- record1_segment0_54-320 | |--- record3_segment0_81-208 | |--- record4_segment0_96-252
ดาวน์โหลดชุดข้อมูล StereoDavis ที่นี่
เลือกลำดับตามที่รายงานไว้ที่นี่
ดาวน์โหลดชุดข้อมูล EDS ที่นี่
จัดเรียงชุดข้อมูลตามที่รายงานไว้ข้างต้นสำหรับชุดข้อมูล TartanAir หรือ MoonLanding
หลามประเมิน_tartanevent.py --weights=จุดตรวจ/RAMPVO_MultiScale.pth --config_eval=config_net/MultiScale_TartanEvent.json --config_VO=config_vo/default.yaml
หลามประเมิน.py --weights=จุดตรวจ/RAMPVO_MultiScale.pth --config_eval=config_net/MultiScale_ECCV20Competition.json --config_VO=config_vo/default.yaml
หลามประเมิน.py --weights=จุดตรวจ/RAMPVO_MultiScale.pth --config_eval=config_net/MultiScale_Apollo.json --config_VO=config_vo/default.yaml
หลามประเมิน.py --weights=จุดตรวจ/RAMPVO_MultiScale.pth --config_eval=config_net/MultiScale_Malapert.json --config_VO=config_vo/default.yaml
หลามประเมิน.py --weights=จุดตรวจ/RAMPVO_MultiScale.pth --config_eval=config_net/MultiScale_StereoDavis.json --config_VO=config_vo/default.yaml
หลามประเมิน.py --weights=จุดตรวจ/RAMPVO_MultiScale.pth --config_eval=config_net/MultiScale_EDS.json --config_VO=config_vo/default.yaml
คุณสามารถใช้เครื่องมือคำสั่งเดียวกันกับข้างต้นได้โดยการเปลี่ยนน้ำหนักและไฟล์การกำหนดค่า เราจัดเตรียมไฟล์การกำหนดค่าให้กับชุดข้อมูลตัวอย่างบางชุด เช่น Malapert ใน RAMPVO/config_net คุณสามารถเปลี่ยนตัวแปรต่อไปนี้ "input_mode" และระบุ "SingleScale" เพื่อใช้แบบจำลองมาตราส่วนเดียวของเรา
หลามประเมิน.py --weights=จุดตรวจ/RAMPVO_SingleScale.pth --config_eval=config_net/SingleScale_Malapert.json --config_VO=config_vo/default.yaml
ดาวน์โหลดชุดข้อมูล TartanAir จาก TartanAir และดาวน์โหลดชุดข้อมูล TartanEvent ที่นี่ จัดเรียงข้อมูลโดยใช้โครงสร้างโฟลเดอร์ที่รายงานข้างต้นสำหรับการประเมินชุดข้อมูล TartanAir
ดาวน์โหลดข้อมูลชุดข้อมูลที่ดองไว้จาก TartanEvent.pickle และวางไว้ในไดเร็กทอรี rampvo/datasets_pickle
ฝึกด้วยการวิ่ง
หลาม train.py --name=your_experiment_name --config_path=config_net/MultiScale_TartanEvent.json --data_path=ชุดข้อมูล/TartanEvent --คนงาน=8
โครงการนี้ได้ใช้รหัสจากโครงการต่อไปนี้:
สปส