ที่เก็บนี้มีการใช้งานบทความต่อไปนี้:
"D2-Net: A Trainable CNN for Joint Detection and Description of Local Features".
M. Dusmanu, I. Rocco, T. Pajdla, M. Pollefeys, J. Sivic, A. Torii, and T. Sattler. CVPR 2019.
กระดาษบน arxiv หน้าโครงการ
แนะนำให้ใช้ Python 3.6+ สำหรับการเรียกใช้รหัสของเรา Conda สามารถใช้ในการติดตั้งแพ็คเกจที่ต้องการได้:
conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
conda install h5py imageio imagesize matplotlib numpy scipy tqdmน้ำหนัก คาเฟอีน Off-the-shelf VGG16 และคู่ที่ปรับแต่งของพวกเขาสามารถดาวน์โหลดได้โดยการวิ่ง:
mkdir models
wget https://dusmanu.com/files/d2-net/d2_ots.pth -O models/d2_ots.pth
wget https://dusmanu.com/files/d2-net/d2_tf.pth -O models/d2_tf.pth
wget https://dusmanu.com/files/d2-net/d2_tf_no_phototourism.pth -O models/d2_tf_no_phototourism.pth UPDATE - 23 พฤษภาคม 2019 เราได้เพิ่มชุดน้ำหนักใหม่ที่ได้รับการฝึกฝนบน megadepth โดยไม่มีฉากการท่องเที่ยวเชิงแสง (Sagrada_familia - 0019, Lincoln_Memorial_Statue - 0021, British_Museum - 0024, London_Bridge - 0025, US_CAPITOL -0078 ผลลัพธ์เริ่มต้นของเราแสดงประสิทธิภาพที่คล้ายกัน ในการใช้น้ำหนักเหล่านี้ในเวลาทดสอบคุณควรเพิ่ม --model_file models/d2_tf_no_phototourism.pth
extract_features.py สามารถใช้เพื่อแยกคุณสมบัติ D2 สำหรับรายการรูปภาพที่กำหนด คุณสมบัติ SinglesCale ต้องการ VRAM น้อยกว่า 6GB สำหรับภาพ 1200x1600 -ธง --multiscale ลสามารถใช้ในการแยกคุณสมบัติ multiscale -สำหรับสิ่งนี้เราขอแนะนำ VRAM อย่างน้อย 12GB
รูปแบบเอาต์พุตสามารถเป็น npz หรือ mat ไม่ว่าในกรณีใดไฟล์ฟีเจอร์จะห่อหุ้มสามอาร์เรย์:
keypoints [ N x 3 ] อาร์เรย์ที่มีตำแหน่งของ keypoints x, y และเครื่องชั่ง s ตำแหน่งเป็นไปตามรูปแบบ colmap โดยมีแกน X ชี้ไปทางขวาและแกน Y ที่ด้านล่างscores [ N ] อาร์เรย์ที่มีการเปิดใช้งานของจุดสำคัญ (สูงกว่าดีกว่า)descriptors [ N x 512 ] อาร์เรย์ที่มีตัวอธิบาย L2 ปกติ python extract_features.py --image_list_file images.txt (--multiscale)Kapture เป็นรูปแบบไฟล์เดือยขึ้นอยู่กับไฟล์ข้อความและไฟล์ไบนารีใช้เพื่ออธิบาย SFM (โครงสร้างจากการเคลื่อนไหว) และข้อมูลที่ได้มาจากเซ็นเซอร์โดยทั่วไป
มีให้ที่ https://github.com/naver/kapture มันมีเครื่องมือแปลงสำหรับรูปแบบยอดนิยมและชุดข้อมูลยอดนิยมหลายชุดมีให้บริการโดยตรงใน Kapture
สามารถติดตั้งได้ด้วย:
pip install kaptureชุดข้อมูลสามารถดาวน์โหลดได้ด้วย:
kapture_download_dataset.py update
kapture_download_dataset.py list
# e.g.: install mapping and query of Extended-CMU-Seasons_slice22
kapture_download_dataset.py install " Extended-CMU-Seasons_slice22_* "หากคุณต้องการแปลงชุดข้อมูลของคุณเองเป็น Kapture โปรดค้นหาตัวอย่างที่นี่
เมื่อติดตั้งแล้วคุณสามารถแยกจุดสำคัญสำหรับชุดข้อมูล Kapture ของคุณได้ด้วย:
python extract_kapture.py --kapture-root pathto/yourkapturedataset (--multiscale) เรียกใช้ python extract_kapture.py --help สำหรับข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์การสกัด
ไปป์ไลน์การฝึกอบรมที่ให้ไว้ที่นี่คือการใช้งาน Pytorch ของรหัส TensorFlow ที่ใช้ในการฝึกอบรมรุ่นที่มีให้ดาวน์โหลดด้านบน
อัปเดต - 05 มิถุนายน 2562 เราได้แก้ไขข้อผิดพลาดในชุดข้อมูลล่วงหน้า - การฝึกอบรมใหม่ให้ผลลัพธ์ที่คล้ายคลึงกับการใช้งาน TensorFlow ดั้งเดิม
อัปเดต - 07 สิงหาคม 2019 เราได้เปิดตัวชุดข้อมูลการฝึกอบรมที่ได้รับการปรับปรุงและแม่นยำยิ่งขึ้น - การฝึกอบรมมีความเสถียรมากขึ้นและเร็วขึ้นอย่างมากสำหรับประสิทธิภาพที่เท่าเทียมกัน
สำหรับส่วนนี้ควรติดตั้ง colmap โปรดดูเว็บไซต์อย่างเป็นทางการสำหรับคำแนะนำในการติดตั้ง
หลังจากดาวน์โหลดชุดข้อมูล megadepth ทั้งหมด (รวมถึงรุ่น SFM) ขั้นตอนแรกคือการสร้างการสร้างใหม่ที่ไม่ได้แยก สามารถทำได้โดยเรียก undistort_reconstructions.py ดังนี้:
python undistort_reconstructions.py --colmap_path /path/to/colmap/executable --base_path /path/to/megadepth ถัดไป preprocess_megadepth.sh สามารถใช้เพื่อดึงพารามิเตอร์กล้องและคำนวณการทับซ้อนระหว่างภาพสำหรับทุกฉาก
bash preprocess_undistorted_megadepth.sh /path/to/megadepth /path/to/output/folderหลังจากดาวน์โหลดและประมวลผล megadepth ล่วงหน้าการฝึกอบรมสามารถเริ่มต้นได้ทันที:
python train.py --use_validation --dataset_path /path/to/megadepth --scene_info_path /path/to/preprocessing/outputหากคุณใช้รหัสนี้ในโครงการของคุณโปรดอ้างอิงกระดาษต่อไปนี้:
@InProceedings { Dusmanu2019CVPR ,
author = { Dusmanu, Mihai and Rocco, Ignacio and Pajdla, Tomas and Pollefeys, Marc and Sivic, Josef and Torii, Akihiko and Sattler, Torsten } ,
title = { {D2-Net: A Trainable CNN for Joint Detection and Description of Local Features} } ,
booktitle = { Proceedings of the 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition } ,
year = { 2019 } ,
}