README
🚀 SHARP - 单目视图合成
SHARP(Sharp Monocular View Synthesis)是苹果研究团队推出的一款AI模型,它能够在不到一秒的时间内,将单张2D照片转换为3D高斯点云(3D Gaussian Splat)表示,从而生成交互式3D场景。

✨ SHARP 是什么?
SHARP 是苹果研究团队开发的一个AI模型,它可以将单张2D照片转换为3D高斯点云表示,具备以下能力:
- 照片转3D:将任意照片转换为交互式3D场景。
- 实时渲染:生成的3DGS可以实时渲染。
- 超快速:在GPU上推理时间少于1秒。
- 零样本泛化:无需微调即可处理任何图像。
应用场景
| 行业 | 应用 | | ---- | ---- | | 电子商务 | 从单张照片生成360°产品视图 | | 房地产 | 虚拟房产游览 | | 社交媒体 | 3D照片效果 | | 游戏/视觉特效 | 快速3D资产原型制作 | | 增强现实/虚拟现实 | 快速环境生成 |
⚠️ 重要提示:SHARP 生成的是小范围视图合成(±15 - 30°),并非完整的360°重建,适用于视差效果和深度感知渲染。
🚀 快速开始
Docker(推荐)
# 拉取并运行(一体化,包含模型约15GB)
docker run -d --gpus all -p 8080:8080 --name sharp neosun/sharp:latest
# 访问Web界面
open http://localhost:8080
# API文档
open http://localhost:8080/docs
Docker Compose
version: '3.8'
services:
sharp:
image: neosun/sharp:latest
container_name: sharp-service
ports:
- "8080:8080"
environment:
- GPU_IDLE_TIMEOUT=300
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
restart: unless-stopped
docker-compose up -d
📦 主要特性
此Docker镜像提供了三个接口:
| 接口 | 端口 | 描述 | | ---- | ---- | ---- | | Web UI | 8080 | 上传图像,查看3D结果 | | REST API | 8080 | 通过Swagger文档进行编程式访问 | | MCP Server | stdio | 用于AI助手集成 |
🌐 Web界面
访问 http://localhost:8080 可使用Web界面:
- 支持拖放式图像上传。
- 实时3D预览(循环视频)。
- 下载PLY和MP4文件。
- GPU状态监控。
- 多语言支持(英语/中文)。
📡 REST API
端点
| 方法 | 端点 | 描述 |
| ---- | ---- | ---- |
| GET | /health | 健康检查 |
| POST | /api/predict | 从图像生成3D |
| GET | /api/files/{id}.ply | 下载PLY文件 |
| GET | /api/files/{id}.mp4 | 下载视频 |
| GET | /api/gpu/status | GPU状态 |
| POST | /api/gpu/offload | 释放GPU内存 |
| GET | /docs | Swagger文档 |
示例:生成3D场景
# 上传图像并生成3D
curl -X POST http://localhost:8080/api/predict \
-F "file=@photo.jpg" \
-F "render_video=true"
# 响应
{
"task_id": "abc123",
"ply_url": "/api/files/abc123.ply",
"video_url": "/api/files/abc123.mp4"
}
# 下载结果
curl -O http://localhost:8080/api/files/abc123.ply
curl -O http://localhost:8080/api/files/abc123.mp4
GPU管理
# 检查GPU状态
curl http://localhost:8080/api/gpu/status
# {"device":"cuda","model_loaded":true,"gpu_memory_allocated_mb":2694}
# 释放GPU内存
curl -X POST http://localhost:8080/api/gpu/offload
# {"status":"offloaded"}
🤖 MCP集成
SHARP 包含一个MCP(模型上下文协议)服务器,用于AI助手集成。
配置
添加到你的MCP客户端配置(例如,Claude Desktop):
{
"mcpServers": {
"sharp": {
"command": "docker",
"args": ["exec", "-i", "sharp-service", "python", "mcp_server.py"]
}
}
}
可用工具
| 工具 | 描述 |
| ---- | ---- |
| predict | 从单张图像生成3D |
| batch_predict | 处理多张图像 |
| gpu_status | 检查GPU状态 |
| gpu_offload | 释放GPU内存 |
| get_supported_formats | 列出支持的图像格式 |
MCP使用示例
用户:从 /path/to/image.jpg 生成一个3D场景
助手:我将从该图像生成一个3D高斯点云。
[调用predict工具,文件路径为 "/path/to/image.jpg"]
结果:PLY文件保存到 /tmp/sharp/output/image.ply
⚙️ 配置
环境变量
| 变量 | 默认值 | 描述 |
| ---- | ---- | ---- |
| PORT | 8080 | 服务器端口 |
| GPU_IDLE_TIMEOUT | 300 | 自动释放GPU内存的超时时间(秒) |
| MODEL_PATH | (内置) | 自定义模型路径 |
硬件要求
| 组件 | 最低要求 | 推荐配置 | | ---- | ---- | ---- | | GPU | 4GB显存 | 8GB+显存 | | 内存 | 8GB | 16GB | | 存储 | 20GB | 30GB |
📁 项目结构
sharp/
├── app.py # Flask API服务器
├── gpu_manager.py # GPU资源管理
├── mcp_server.py # MCP接口
├── templates/ # Web UI模板
├── static/ # 前端资源
├── src/sharp/ # 核心模型代码
├── Dockerfile # 容器定义
└── docker-compose.yml # Compose配置
🔧 技术栈
- 模型:苹果SHARP(3D高斯点云)
- 后端:Flask + Gunicorn
- GPU:CUDA 12.4 + PyTorch
- 容器:NVIDIA Docker
- MCP:FastMCP
📊 性能
| 指标 | 值 | | ---- | ---- | | 推理时间 | ~1秒 | | 视频渲染时间 | ~80秒 | | GPU内存使用 | ~2.7 GB | | PLY文件大小 | ~60 MB |
📝 更新日志
v1.0.0 (2024-12-27)
- 初始版本发布。
- 带有视频预览的Web UI。
- 带有Swagger文档的REST API。
- MCP服务器集成。
- 自动GPU内存管理。
📄 许可证
本项目使用苹果的示例代码许可证。详情请参阅 LICENSE。
🙏 致谢
- Apple Research - SHARP模型
- 3D Gaussian Splatting - 渲染技术
⭐ 星标历史
📱 关注公众号

微信扫一扫