ลี่เหอหยาง 1 · ปิงอี้คัง 2† · ซีหลงฮวง 2
เจิ้น จ้าว · เสี่ยวกัง ซู · เจียซือเฟิง 2 · เหิงซวง จ้าว 1*
1 HKU 2 ติ๊กต๊อก
† หัวหน้าโครงการ *ผู้เขียนที่เกี่ยวข้อง
งานนี้ขอนำเสนอ Depth Anything V2. มันมีประสิทธิภาพเหนือกว่า V1 อย่างมากในด้านรายละเอียดที่ละเอียดและความทนทาน เมื่อเปรียบเทียบกับรุ่นที่ใช้ SD จะมีความเร็วในการอนุมานที่เร็วกว่า พารามิเตอร์น้อยกว่า และความแม่นยำในเชิงลึกที่สูงขึ้น
06-07-2024: Transformers รองรับ Depth Anything V2 ดูคำแนะนำสำหรับการใช้งานที่สะดวก
25-06-2024: Depth Anything ถูกรวมเข้ากับ Apple Core ML Models ดูคำแนะนำ (V1, V2) สำหรับการใช้งาน
22-06-2024: เราเปิดตัวโมเดลความลึกเมตริกที่มีขนาดเล็กลงโดยยึดตาม Depth-Anything-V2-Small และ Base
20-06-2024: พื้นที่เก็บข้อมูลและหน้าโครงการของเราถูกตั้งค่าสถานะโดย GitHub และลบออกจากสาธารณะเป็นเวลา 6 วัน ขออภัยในความไม่สะดวก
14-06-2024: เอกสาร หน้าโปรเจ็กต์ โค้ด โมเดล การสาธิต และการวัดประสิทธิภาพทั้งหมดได้รับการเผยแพร่แล้ว
เรามีเครื่องชั่งที่แตกต่างกัน สี่รุ่น สำหรับการประมาณความลึกสัมพัทธ์ที่มีประสิทธิภาพ:
แบบอย่าง | พารามิเตอร์ | ด่าน |
---|---|---|
ความลึก-อะไรก็ได้-V2-เล็ก | 24.8M | ดาวน์โหลด |
ความลึก-อะไรก็ได้-V2-ฐาน | 97.5ม | ดาวน์โหลด |
ความลึก-อะไรก็ได้-V2-ใหญ่ | 335.3M | ดาวน์โหลด |
ความลึก-อะไรก็ได้-V2-ยักษ์ | 1.3B | เร็วๆ นี้ |
โคลนคอมไพล์ https://github.com/DepthAnything/Depth-Anything-V2cd Depth-Anything-V2 pip ติดตั้ง -r ข้อกำหนด.txt
ดาวน์โหลดจุดตรวจสอบที่แสดงไว้ที่นี่ และวางไว้ใต้ไดเร็กทอรี checkpoints
นำเข้า cv2import torchfrom deep_anything_v2.dpt นำเข้า DepthAnythingV2DEVICE = 'cuda' if torch.cuda.is_available() else 'mps' if torch.backends.mps.is_available() else 'cpu'model_configs = {'vits': {'encoder': 'vits', 'คุณสมบัติ': 64, 'out_channels': [48, 96, 192, 384]}, 'vitb': {'encoder': 'vitb', 'คุณสมบัติ': 128, 'out_channels': [96, 192, 384, 768]},' vitl': {'ตัวเข้ารหัส': 'vitl', 'คุณสมบัติ': 256, 'out_channels': [256, 512, 1024, 1024]}, 'vitg': {'encoder': 'vitg', 'คุณสมบัติ': 384, 'out_channels': [1536, 1536, 1536, 1536]} }encoder = 'vitl' # หรือ 'vits', 'vitb', 'vitg'model = DepthAnythingV2(**model_configs[encoder])model.load_state_dict(torch.load(f'checkpoints/ allowance_anything_v2_ {encoder}.pth', map_location='cpu'))model = model.to(DEVICE).eval()raw_img = cv2.imread('your/image/path')deep = model.infer_image(raw_img) # HxW แมปความลึกดิบเป็นตัวเลข
หากคุณไม่ต้องการโคลนพื้นที่เก็บข้อมูลนี้ คุณสามารถโหลดโมเดลของเราผ่าน Transformers ได้เช่นกัน ด้านล่างนี้คือข้อมูลโค้ดง่ายๆ โปรดดูที่หน้าอย่างเป็นทางการสำหรับรายละเอียดเพิ่มเติม
หมายเหตุ 1: ตรวจสอบให้แน่ใจว่าคุณสามารถเชื่อมต่อกับ Hugging Face และติดตั้ง Transformers เวอร์ชันล่าสุดได้
หมายเหตุ 2: เนื่องจากความแตกต่างในการอัปแซมปลิงระหว่าง OpenCV (เราใช้) และ Pillow (ใช้ HF) การคาดการณ์อาจแตกต่างกันเล็กน้อย ดังนั้นจึงขอแนะนำให้คุณใช้โมเดลของเราตามวิธีที่แนะนำข้างต้น
จากไปป์ไลน์นำเข้าหม้อแปลงจากการนำเข้า PIL Imagepipe = ไปป์ไลน์ (task = "การประมาณความลึก", model = "ความลึก - อะไร / Depth-Anything-V2-Small-hf") image = Image.open ('your / image / path') ความลึก = ท่อ (รูปภาพ) ["ความลึก"]
หลาม run.py --ตัวเข้ารหัส <vits | วิตบี | วิต | วิต> --img เส้นทาง <เส้นทาง> --outdir <outdir> [--ขนาดอินพุต <ขนาด>] [--pred-only] [--ระดับสีเทา]
ตัวเลือก:
--img-path
: คุณสามารถ 1) ชี้ไปที่ไดเร็กทอรีรูปภาพซึ่งจัดเก็บรูปภาพที่สนใจทั้งหมด 2) ชี้ไปที่รูปภาพเดียว หรือ 3) ชี้ไปที่ไฟล์ข้อความที่เก็บเส้นทางรูปภาพทั้งหมด
--input-size
(เป็นทางเลือก): โดยค่าเริ่มต้น เราใช้ขนาดอินพุต 518
สำหรับการอนุมานโมเดล คุณสามารถเพิ่มขนาดเพื่อให้ได้ผลลัพธ์ที่มีรายละเอียดมากยิ่งขึ้น
--pred-only
(ไม่บังคับ): บันทึกเฉพาะแผนที่เชิงลึกที่คาดการณ์ไว้ โดยไม่มีภาพ Raw
--grayscale
(ตัวเลือก): บันทึกแผนที่ความลึกระดับสีเทาโดยไม่ต้องใช้ชุดสี
ตัวอย่างเช่น:
python run.py --encoder vitl --img-path สินทรัพย์/ตัวอย่าง --outdir deep_vis
หลาม run_video.py --ตัวเข้ารหัส <vits | วิตบี | วิต | วิต> --เนื้อหาเส้นทางวิดีโอ/examples_video --outdir video_deep_vis [--ขนาดอินพุต <ขนาด>] [--pred-only] [--ระดับสีเทา]
โมเดลที่ใหญ่กว่าของเรามีความสอดคล้องกันชั่วคราวในวิดีโอที่ดีกว่า
หากต้องการใช้การสาธิต gradio ของเราในพื้นที่:
หลาม app.py
คุณยังสามารถลองสาธิตออนไลน์ของเราได้อีกด้วย
หมายเหตุ: เมื่อเปรียบเทียบกับ V1 เราได้ทำการปรับเปลี่ยนสถาปัตยกรรม DINOv2-DPT เล็กน้อย (ที่มีต้นกำเนิดมาจากปัญหานี้) ใน V1 เราใช้ฟีเจอร์จาก DINOv2 สี่เลเยอร์สุดท้ายในการถอดรหัส โดยไม่ได้ตั้งใจ ใน V2 เราใช้ฟีเจอร์ระดับกลางแทน แม้ว่าการปรับเปลี่ยนนี้จะไม่ปรับปรุงรายละเอียดหรือความถูกต้อง แต่เราตัดสินใจที่จะปฏิบัติตามหลักปฏิบัติทั่วไปนี้
โปรดดูการประมาณความลึกของเมตริก
โปรดดูเกณฑ์มาตรฐาน DA-2K
เราขอขอบคุณอย่างจริงใจที่สนับสนุนชุมชนสำหรับซีรีส์ Depth Anything ของเรา ขอบคุณมาก!
แอปเปิ้ลคอร์ ML:
https://developer.apple.com/machine-learning/models
https://huggingface.co/apple/coreml-deep-anything-v2-small
https://huggingface.co/apple/coreml-deep-anything-small
หม้อแปลงไฟฟ้า:
https://huggingface.co/docs/transformers/main/en/model_doc/ledge_anything_v2
https://huggingface.co/docs/transformers/main/en/model_doc/ledge_anything
TensorRT:
https://github.com/spacewalk01/deep-anything-tensorrt
https://github.com/zhujiajian98/Depth-Anythingv2-TensorRT-python
ONNX: https://github.com/fabio-sim/Depth-Anything-ONNX
ComfyUI: https://github.com/kijai/ComfyUI-DepthAnythingV2
Transformers.js (ความลึกแบบเรียลไทม์ในเว็บ): https://huggingface.co/spaces/Xenova/webgpu-realtime-deep-estimation
แอนดรอยด์:
https://github.com/shubham0204/Depth-Anything-Android
https://github.com/FeiGeChuanShu/ncnn-android- allowance_anything
เรารู้สึกขอบคุณอย่างจริงใจต่อทีมงาน Hugging Face ที่ยอดเยี่ยม (@Pedro Cuenca, @Niels Rogge, @Merve Noyan, @Amy Roberts และคณะ) สำหรับความพยายามอย่างมากในการสนับสนุนโมเดลของเราใน Transformers และ Apple Core ML
นอกจากนี้เรายังขอขอบคุณทีมงาน DINOv2 ที่สนับสนุนโมเดลที่น่าประทับใจเช่นนี้ให้กับชุมชนของเรา
รุ่น Depth-Anything-V2-Small อยู่ภายใต้ลิขสิทธิ์ Apache-2.0 รุ่น Depth-Anything-V2-Base/Large/Giant อยู่ภายใต้ใบอนุญาต CC-BY-NC-4.0
หากคุณพบว่าโครงการนี้มีประโยชน์ โปรดพิจารณาการอ้างอิง:
@article{deep_anything_v2, title={Depth Anything V2}, author={Yang, Lihe และ Kang, Bingyi และ Huang, Zilong และ Zhao, Zhen และ Xu, Xiaogang และ Feng, Jiashi และ Zhao, Hengshuang}, Journal={arXiv: 2406.09414}, year={2024}}@inproceedings{deep_anything_v1, title={อะไรก็ตามเชิงลึก: ปลดปล่อยพลังของข้อมูลขนาดใหญ่ที่ไม่มีป้ายกำกับ}, author={Yang, Lihe และ Kang, Bingyi และ Huang, Zilong และ Xu, Xiaogang และ Feng, Jiashi และ Zhao, Hengshuang}, booktitle={CVPR}, ปี={2024}}