هذا هو تطبيق Pytorch الرسمي لورقة IROS 2024 لقياس الروائح البصرية العميقة مع الأحداث والإطارات باستخدام شبكات متكررة غير متزامنة ومتوازية بشكل كبير (RAMP) لقياس الروائح البصرية (VO).
إذا كنت تستخدم أي جزء من هذا الكود أو مجموعات البيانات المصاحبة للمقالة، فيرجى مراعاة الاستشهاد بما يلي
@InProceedings{Pellerito_2024_IROS,author = {Pellerito, Roberto and Cannici, Marco and Gehrig, Daniel and Belhadj, Joris and Dubois-Matra, Olivier and Casasco, Massimo and Scaramuzza, Davide},title = {قياس العمق البصري العميق مع الأحداث والإطارات} عنوان الكتاب = {المؤتمر الدولي IEEE/RSJ حول الروبوتات الذكية (IROS)}، الشهر = {يونيو}، السنة = {2024}}
نقدم لكم RAMP-VO، وهو أول نظام VO متعلم متكامل قائم على الصور والأحداث. إنه يستفيد من أجهزة التشفير المتكررة وغير المتزامنة والمتوازية بشكل كبير (RAMP) القادرة على دمج الأحداث غير المتزامنة مع بيانات الصورة.
يمكنك إنشاء بيئة كوندا جديدة مباشرة باستخدام ملف environment.yml
المتوفر.
conda env create -f بيئة.yml كوندا تنشيط rampvo
اعتمادًا على إصدار CUDA لديك، قد تحتاج إلى تثبيت إصدار مختلف من torch
. تم اختبار الكود التالي باستخدام python 3.10.0 وCUDA 12.2 على Nvidia GPU Quadro RTX 8000.
نقطة تثبيت الشعلة torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124 تثبيت النقطة -r متطلبات.txt
نظرًا لأننا نستخدم lietorch لعمليات مجموعة Lie، فأنت بحاجة إلى تثبيت بعض الحزم الإضافية. لتثبيت eigen-3.4.0 المطلوب، قم بتشغيل الأوامر التالية:
cd rampvo wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.zip قم بفك ضغط eigen-3.4.0.zip -d طرف ثالث
أخيرًا قم بتثبيت حزمة Ramp VO.
cd rampvo تثبيت النقطة.
قم بتنزيل نقاط التفتيش المدربة مسبقًا وضعها في مجلد 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 هنا.
قم بتنزيل تسلسلات أبولو هنا.
يمكنك ترتيب مجموعة البيانات هذه على النحو التالي:
|--- /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.
بيثون Evalu_tartanevent.py --weights=checkpoints/RAMPVO_MultiScale.pth --config_eval=config_net/MultiScale_TartanEvent.json --config_VO=config_vo/default.yaml
بيثون تقييم.py --weights=checkpoints/RAMPVO_MultiScale.pth --config_eval=config_net/MultiScale_ECCV20Competition.json --config_VO=config_vo/default.yaml
بيثون تقييم.py --weights=checkpoints/RAMPVO_MultiScale.pth --config_eval=config_net/MultiScale_Apollo.json --config_VO=config_vo/default.yaml
بيثون تقييم.py --weights=checkpoints/RAMPVO_MultiScale.pth --config_eval=config_net/MultiScale_Malapert.json --config_VO=config_vo/default.yaml
بيثون تقييم.py --weights=checkpoints/RAMPVO_MultiScale.pth --config_eval=config_net/MultiScale_StereoDavis.json --config_VO=config_vo/default.yaml
بيثون تقييم.py --weights=checkpoints/RAMPVO_MultiScale.pth --config_eval=config_net/MultiScale_EDS.json --config_VO=config_vo/default.yaml
يمكنك استخدام نفس أداة الأوامر المذكورة أعلاه عن طريق تغيير الأوزان وملف التكوين. نحن نقدم في Rammpvo/config_net ملفات التكوين لبعض أمثلة مجموعات البيانات، على سبيل المثال Malapert. يمكنك تغيير المتغير التالي "input_mode" وتحديد "SingleScale" لاستخدام نموذج المقياس الفردي الخاص بنا.
بيثون تقييم.py --weights=checkpoints/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=datasets/TartanEvent - العمال = 8
استخدم هذا المشروع رمزًا من المشاريع التالية:
DPVO