🎯 SHARP-单目视图合成
](https://hub.docker.com/r/neosun/sharp) ](https://github.com/neosun100/sharp/releases)  
在不到一秒钟的时间内从单个图像生成交互式3D场景。
✨ 什么是SHARP?
SHARP(SHARP Monocular View Synthesis)是Apple Research的一个AI模型,它将单张2D照片转换为3D高斯Splat表示。这使得:
- 照片转3D:将任何照片转换为交互式3D场景
- 实时渲染:生成的3DGS可以实时渲染
- 超快:GPU上的推理时间不到1秒
- 零样本推广:适用于任何图像,无需微调
用例
| 行业 | 应用 |
|---|---|
| 电子商务 | 单张照片360°产品视图 |
| 房地产 | 虚拟房产之旅 |
| 社交媒体 | 3D照片效果 |
| 游戏/VFX | 快速3D资产原型 |
| AR/VR | 快速生成环境 |
⚠️ 备注:SHARP生成小范围视图合成(±15-30°),而不是完整的360°重建。它非常适合视差效果和深度感知渲染。
🚀 快速开始
Docker(推荐)
# Pull and run (All-in-One, ~15GB with model)
docker run -d --gpus all -p 8080:8080 --name sharp neosun/sharp:latest
# Access Web UI
open http://localhost:8080
# API Documentation
open http://localhost:8080/docsDocker 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-stoppeddocker-compose up -d📦 特性
这个Docker镜像提供了三个接口:
| 接口 | 端口 | 描述 |
|---|---|---|
| Web UI | 8080 | 上传图像,查看3D结果 |
| REST API | 8080 | 使用Swagger文档进行编程访问 |
| MCP服务器 | stdio | AI助手集成 |
🌐 Web用户界面
访问 http://localhost:8080 对于web界面:
- 拖放图像上传
- 实时3D预览(循环视频)
- 下载PLY和MP4文件
- GPU状态监控
- 多语言支持(EN/中文)
📡 REST API
端点
| 方法 | 端点 | 描述 |
|---|---|---|
| 得到 | /health | 健康检查 |
| 职位 | /api/predict | 从图像生成3D |
| 得到 | /api/files/{id}.ply | 下载PLY文件 |
| 得到 | /api/files/{id}.mp4 | 下载视频 |
| 得到 | /api/gpu/status | GPU状态 |
| 职位 | /api/gpu/offload | 释放GPU内存 |
| 得到 | /docs | Swagger文档 |
示例:生成3D场景
# Upload image and generate 3D
curl -X POST http://localhost:8080/api/predict \
-F "file=@photo.jpg" \
-F "render_video=true"
# Response
{
"task_id": "abc123",
"ply_url": "/api/files/abc123.ply",
"video_url": "/api/files/abc123.mp4"
}
# Download results
curl -O http://localhost:8080/api/files/abc123.ply
curl -O http://localhost:8080/api/files/abc123.mp4GPU管理
# Check GPU status
curl http://localhost:8080/api/gpu/status
# {"device":"cuda","model_loaded":true,"gpu_memory_allocated_mb":2694}
# Release GPU memory
curl -X POST http://localhost:8080/api/gpu/offload
# {"status":"offloaded"}🤖 MCP集成
SHARP包括一个用于AI助手集成的MCP(模型上下文协议)服务器。
配置
添加到您的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使用示例
User: Generate a 3D scene from /path/to/image.jpg
Assistant: I'll generate a 3D Gaussian Splat from that image.
[Calls predict tool with file_path="/path/to/image.jpg"]
Result: PLY file saved to /tmp/sharp/output/image.ply⚙️ 配置
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
PORT | 8080 | 服务器端口 |
GPU_IDLE_TIMEOUT | 自动卸载前300秒 | |
MODEL_PATH | (捆绑) | 自定义模型路径 |
硬件要求
| 组件 | 最小值 | 推荐 |
|---|---|---|
| GPU | 4gbvram | 8GB+VRAM |
| RAM | 8GB | 16GB |
| 存储空间 | 20GB | 30GB |
📁 项目结构
sharp/
├── app.py # Flask API server
├── gpu_manager.py # GPU resource management
├── mcp_server.py # MCP interface
├── templates/ # Web UI templates
├── static/ # Frontend assets
├── src/sharp/ # Core model code
├── Dockerfile # Container definition
└── docker-compose.yml # Compose config🔧 技术栈
- 模型:苹果SHARP(3D高斯散斑)
- 后端:Flask+Gunicorn
- 图形处理器:CUDA 12.4+PyTorch
- 容器:NVIDIA Docker
- 主控程序:FastMCP
📊 演出
| 度量 | 值 |
|---|---|
| 推理时间 | ~1秒 |
| 视频渲染 | 约80秒 |
| GPU内存 | ~2.7 GB |
| PLY文件大小 | ~60 MB |
📝 更新日志
v1.0.0(2024-12-27)
- 初始版本
- 带视频预览的Web UI
- 带有Swagger文档的REST API
- MCP服务器集成
- 自动GPU内存管理
📄 许可证
此项目使用Apple的示例代码许可证。看 许可证 了解详情。
🙏 致谢
⭐ 明星历史


