MiDaS

MiDaS는 여러 데이터셋에서 스케일 및 시프트 불변 손실로 학습한 단안 상대 깊이 추정 모델입니다. 이후 계열이 재사용하는 제로샷 깊이 전이 프로토콜을 확립한 연구 계열입니다. LibreYOLO는 깊이 작업의 예측과 제로샷 검증을 지원하지만 학습 경로는 제공하지 않습니다.

작업
depth
크기
s, l at 256 to 384 px
설치
pip install libreyolo
지원 티어
추론 전용, v부터 지원. 예측, 검증, 내보내기만 지원합니다. 학습 기능은 적용되지 않습니다.
업스트림
Intel Intelligent Systems Lab (Intel ISL)의 MiDaS, MIT. 논문, 소스
라이선스
코드 MIT, 가중치 MIT. 상업적 사용

설치

MiDaS에는 선택적 extra가 필요하지 않습니다. 가져오는 모든 항목이 기본 설치에 포함됩니다.

bash
pip install libreyolo

예측

MiDaS는 LibreYOLO가 자체 Hugging Face 조직에 다시 게시하지 않는 유일한 깊이 계열입니다. LibreYOLO 파일명으로 체크포인트를 요청하면 isl-org/MiDaS GitHub 릴리스에서 일치하는 공식 자산을 직접 다운로드하고 고정된 SHA-256과 대조한 뒤 처음 사용하기 전에 LibreYOLO 체크포인트 메타데이터로 래핑합니다. 이후 실행에서는 캐시된 로컬 파일을 재사용합니다. 그 이유는 라이선스를 참조합니다.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE # 디스크에 아직 없으면 LibreYOLO가 공식 isl-org/MiDaS GitHub 릴리스에서# 다운로드하고 사용 전에 고정된 SHA-256과 대조합니다.model = LibreYOLO("LibreMiDaSl-depth.pt")result = model(SAMPLE_IMAGE, save=True) depth = result.depth_mapprint(depth.min, depth.max, depth.mean)
CLI
libreyolo predict model=LibreMiDaSl-depth.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True
작은 변형
from libreyolo import LibreYOLO, SAMPLE_IMAGE # EfficientNet-Lite3 인코더로 DPT-Large의 l 크기보다 작고 빠릅니다.model = LibreYOLO("LibreMiDaSs-depth.pt")result = model(SAMPLE_IMAGE, save=True)

result.depth_map은 조밀한 상대 역깊이 맵을 담습니다. 값이 높을수록 카메라에 가깝고 값에는 미터법 단위나 이미지 간 공통 스케일이 없습니다. save=True는 해당 맵의 컬러맵 시각화를 디스크에 기록합니다. Results.plot()은 표면 노멀과 엣지만을 위해 정의되어 있어 이 계열을 지원하지 않습니다. 소스, 스트리밍, 결과 처리는 예측을 참조합니다.

변형

두 변형은 같은 모델의 단순한 크기 차이가 아니라 서로 다른 인코더를 사용합니다. s는 EfficientNet-Lite3 인코더를 사용하는 MiDaS v2.1 Small입니다. l은 ViT-L/16 인코더에 MiDaS가 조밀 예측용으로 도입한 DPT 디코더를 결합한 DPT-Large입니다. 전처리도 다릅니다. s는 ImageNet 평균/표준편차 정규화와 상한 종횡비 크기 조정을 사용하고 l은 최소 종횡비 크기 조정과 평균 및 표준편차 0.5를 사용합니다. 가벼운 CNN이 필요하면 s, transformer 디코더의 정확도가 필요하면 l을 선택합니다.

이 계열은 학습을 제공하지 않습니다. LibreMiDaS.train()은 조건 없이 NotImplementedError를 발생시킵니다.

검증

val()은 공유 깊이 검증기를 실행합니다. 이미지별 최소제곱 스케일과 시프트로 각 예측을 정답에 정렬한 다음 표준 제로샷 상대 깊이 지표인 AbsRel, RMSE, 세 가지 delta 임곗값을 보고합니다.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreMiDaSl-depth.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/abs_rel"])print(metrics["metrics/rmse"])print(metrics["metrics/delta1"])
CLI
libreyolo val model=LibreMiDaSl-depth.pt data=my-dataset.yaml

내보내기

작업ONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
depthdepth to ONNX: 지원함depth to TorchScript: 지원함depth to ExecuTorch: 지원함depth to TensorRT: 지원함depth to OpenVINO: 지원함depth to Paddle: 지원하지 않음depth to MNN: 지원하지 않음depth to RKNN: 지원하지 않음depth to ncnn: 지원함depth to TFLite: 지원하지 않음depth to CoreML: 지원하지 않음depth to Core AI: 지원하지 않음

내보낸 아티팩트는 파일 접미사에 따라 LibreYOLO()로 다시 불러옵니다. 따라서 .onnx 또는 .engine 파일은 체크포인트처럼 동작하며 박스 대신 depth_map을 포함한 동일한 Results를 반환합니다.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreMiDaSl-depth.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreMiDaSl-depth.pt format=onnxlibreyolo export model=LibreMiDaSl-depth.pt format=tensorrt half=True
내보낸 파일 사용
from libreyolo import LibreYOLO, SAMPLE_IMAGE # 팩토리는 파일 접미사에 따라 라우팅하므로 내보낸 아티팩트도# 다른 체크포인트처럼 불러와 동일한 Results 객체를 반환합니다.model = LibreYOLO("LibreMiDaSl-depth.onnx")result = model(SAMPLE_IMAGE) print(result.depth_map.data.shape)

라이선스

내려받는 특정 가중치의 Hugging Face 저장소에서 라이선스를 확인하십시오. LibreYOLO 조직의 모든 체크포인트에는 라이선스가 있으며 한 계열 안에서도 항상 같지는 않습니다. 해당 저장소가 신뢰할 수 있는 기준입니다. 아래 요약은 이 페이지를 마지막으로 검증했을 때 적용된 내용을 설명합니다.

관련 라이선스에 관한 설명이며 법률 자문이 아닙니다. 상업적으로 중요한 사안이라면 라이선스를 직접 읽고 별도의 법률 자문을 받으십시오.

원작
MiDaS, Intel Intelligent Systems Lab (Intel ISL)
업스트림 라이선스
MIT
업스트림 소스
github.com/isl-org/MiDaS
LibreYOLO 코드
MIT
가중치
MIT, 저자가 배포합니다. LibreYOLO는 이를 호스팅하거나 미러링하지 않습니다.
해석
The isl-org/MiDaS repository, code and released checkpoints included, is MIT. LibreYOLO's own port code is MIT as well. LibreYOLO does not republish the checkpoints on its own Hugging Face organization, though: the family downloads the two official release assets directly from GitHub and checks them against a pinned SHA-256 before wrapping them, because an internal LibreYOLO policy (ADR 0006) requires the training-dataset mixture's commercial-redistribution terms to be cleared before LibreYOLO hosts a depth checkpoint itself, and that clearance has not happened for MiDaS. The bytes you get are upstream's own MIT-licensed release either way.

인용

@ARTICLE {Ranftl2022,
    author  = "Ren\'{e} Ranftl and Katrin Lasinger and David Hafner and Konrad Schindler and Vladlen Koltun",
    title   = "Towards Robust Monocular Depth Estimation: Mixing Datasets for Zero-Shot Cross-Dataset Transfer",
    journal = "IEEE Transactions on Pattern Analysis and Machine Intelligence",
    year    = "2022",
    volume  = "44",
    number  = "3"
}

@article{Ranftl2021,
	author    = {Ren\'{e} Ranftl and Alexey Bochkovskiy and Vladlen Koltun},
	title     = {Vision Transformers for Dense Prediction},
	journal   = {ICCV},
	year      = {2021},
}

github.com/isl-org/MiDaS#citation에 있는 저자의 인용 블록에서 복사했습니다.

LibreYOLO v1.5.0에서 검증되었습니다. 이 페이지의 지원 표, 체크포인트, 벤치마크 수치는 출시된 라이브러리와 공개된 가중치에서 생성되며 수동으로 작성되지 않습니다.