ml-sharp README

The project's README from github.com/apple-aiml-research/ml-sharp. As one markdown file: README.md.

Sharp Monocular View Synthesis in Less Than a Second

Project Page arXiv

This software project accompanies the research paper: Sharp Monocular View Synthesis in Less Than a Second by Lars Mescheder, Wei Dong, Shiwei Li, Xuyang Bai, Marcel Santos, Peiyun Hu, Bruno Lecouat, Mingmin Zhen, Amaël Delaunoy, Tian Fang, Yanghai Tsin, Stephan Richter and Vladlen Koltun.

We present SHARP, an approach to photorealistic view synthesis from a single image. Given a single photograph, SHARP regresses the parameters of a 3D Gaussian representation of the depicted scene. This is done in less than a second on a standard GPU via a single feedforward pass through a neural network. The 3D Gaussian representation produced by SHARP can then be rendered in real time, yielding high-resolution photorealistic images for nearby views. The representation is metric, with absolute scale, supporting metric camera movements. Experimental results demonstrate that SHARP delivers robust zero-shot generalization across datasets. It sets a new state of the art on multiple datasets, reducing LPIPS by 25–34% and DISTS by 21–43% versus the best prior model, while lowering the synthesis time by three orders of magnitude.

Getting started

We recommend to first create a python environment:

conda create -n sharp python=3.13

Afterwards, you can install the project using

pip install -r requirements.txt

To test the installation, run

sharp --help

Using the CLI

To run prediction:

sharp predict -i /path/to/input/images -o /path/to/output/gaussians

The model checkpoint will be downloaded automatically on first run and cached locally at ~/.cache/torch/hub/checkpoints/.

Alternatively, you can download the model directly:

wget https://ml-site.cdn-apple.com/models/sharp/sharp_2572gikvuh.pt

To use a manually downloaded checkpoint, specify it with the -c flag:

sharp predict -i /path/to/input/images -o /path/to/output/gaussians -c sharp_2572gikvuh.pt

The results will be 3D gaussian splats (3DGS) in the output folder. The 3DGS .ply files are compatible to various public 3DGS renderers. We follow the OpenCV coordinate convention (x right, y down, z forward). The 3DGS scene center is roughly at (0, 0, +z). When dealing with 3rdparty renderers, please scale and rotate to re-center the scene accordingly.

Rendering trajectories (CUDA GPU only)

Additionally you can render videos with a camera trajectory. While the gaussians prediction works for all CPU, CUDA, and MPS, rendering videos via the --render option currently requires a CUDA GPU. The gsplat renderer takes a while to initialize at the first launch.

sharp predict -i /path/to/input/images -o /path/to/output/gaussians --render

# Or from the intermediate gaussians:
sharp render -i /path/to/output/gaussians -o /path/to/output/renderings

Evaluation

Please refer to the paper for both quantitative and qualitative evaluations. Additionally, please check out this qualitative examples page containing several video comparisons against related work.

Citation

If you find our work useful, please cite the following paper:

@inproceedings{Sharp2025:arxiv,
  title      = {Sharp Monocular View Synthesis in Less Than a Second},
  author     = {Lars Mescheder and Wei Dong and Shiwei Li and Xuyang Bai and Marcel Santos and Peiyun Hu and Bruno Lecouat and Mingmin Zhen and Ama\"{e}l Delaunoy and Tian Fang and Yanghai Tsin and Stephan R. Richter and Vladlen Koltun},
  journal    = {arXiv preprint arXiv:2512.10685},
  year       = {2025},
  url        = {https://arxiv.org/abs/2512.10685},
}

Acknowledgements

Our codebase is built using multiple opensource contributions, please see ACKNOWLEDGEMENTS for more details.

License

Please check out the repository LICENSE before using the provided code and LICENSE_MODEL for the released models.

ml-sharp (apple-aiml-research/ml-sharp)

Searching Database…

Что это такое?SHARP (ml-sharp) — исследовательский код для превращения одной фотографии в фотореалистичную 3D-сцену: за один прямой проход нейросети он восстанавливает представление сцены в виде 3D Gaussian Splatting менее чем за секунду на обычной видеокарте, а затем это представление можно в реальном времени визуализировать с близких точек обзора.
Это готовое приложение или исследовательский код с CLI?Это исследовательский код, сопровождающий академическую статью, оформленный как инструмент командной строки для запуска предсказаний, а не как готовое приложение для конечных пользователей.
Как это запустить?Создайте окружение Python, установите проект и запустите входящий в комплект тест, чтобы проверить настройку; файл предобученной модели затем скачивается автоматически при первом запуске и сохраняется в локальный кэш.
Нужна ли мне видеокарта CUDA, чтобы этим пользоваться?Предсказание гауссиан по изображению работает на CPU, CUDA или Apple MPS, но визуализация видео с траекторией камеры через опцию --render сейчас работает только на видеокарте CUDA.
Есть ли подводные камни при использовании опции видео --render?Помимо работы только на CUDA, рендерер gsplat заметно дольше инициализируется при самом первом запуске.
Могу ли я свободно использовать код и опубликованные модели?На код и модели распространяются отдельные файлы лицензий, поэтому перед использованием чего-либо из репозитория проверьте оба.
Насколько быстро и точно SHARP работает по сравнению с предыдущими методами?SHARP устанавливает новый уровень качества: он снижает LPIPS на 25–34% и DISTS на 21–43% по сравнению с лучшей предыдущей моделью, при этом время синтеза сокращается на три порядка.
В каком формате я получаю 3D-сцену?Результат — файл .ply формата 3D Gaussian Splatting, сохраняемый в папку вывода; он совместим с распространёнными публичными рендерерами 3DGS и использует соглашение о координатах камеры OpenCV.
Соответствует ли созданная сцена реальному масштабу?Да, 3D-представление в гауссианах метрическое, с абсолютным масштабом, поэтому оно поддерживает реальные метрические перемещения камеры, а не произвольный масштаб.
Size
185 MB
Stars
9K
Updated
CommitSep 11
Age
10mo
Commits · 90 Days