使用说明
深度估计MCP服务器
使用depth Anything V2的KAI部分代理单目深度估计服务器。
特性
- 深度估计:根据食物图像估计深度图
- 部分计算:使用深度信息计算份量(重量/体积)
- 尼日利亚食品数据库:尼日利亚食品的综合密度值
- 快速API:高性能REST API
- 铁路优化:具有延迟加载和自动卸载功能的成本优化部署
- 提高准确性:平板检测和食品特定校准的准确率为70-85%(2025年12月升级)
API终点
健康检查
GET /health
返回服务器运行状况和模型加载状态。
根
GET /
返回服务信息和可用终结点。
估算深度
POST /estimate_depth
上传图像以获取深度图统计数据。
请求:
file:图像文件(JPEG、PNG)
答复:
{
"depth_map_shape": [height, width],
"min_depth": 0.0,
"max_depth": 1.0,
"mean_depth": 0.5,
"success": true,
"message": "Depth estimation completed successfully"
}
估算部分
POST /estimate_portion
上传图像以估计份量(重量和体积)。
请求:
file:图像文件(JPEG、PNG)food_type(可选):尼日利亚食物类型(例如“jollof_rice”、“egusi-soup”)reference_object(可选):图像中的参考对象(例如“手”、“板”)
答复:
{
"estimated_weight_grams": 250.0,
"estimated_volume_ml": 280.0,
"confidence": 0.75,
"reference_object_detected": true,
"success": true,
"message": "Portion estimation completed successfully..."
}
最近的优化(2025年12月)
🎯 2025年12月精度改进
要实现的重大升级 70-85%的部分估计准确率 (高于40-60%的基线)。
主要改进:
-
真实车牌检测 (新-2025年12月)
- OpenCV霍夫圆变换用于实际盘子/碗检测
- 用测量的参考对象代替猜测
- 精度提升:+30-40%
-
食物特定身高数据库 (新-2025年12月)
- 50多种尼日利亚食品的测量高度
- 福福(8-12cm)、乔洛夫米(3-5cm)、汤(2-4cm)
- 替换硬编码的5cm假设
- 精度提升:+25-35%
-
增强深度细化
- 颜色引导深度细化(联合双边滤波)
- 不确定区域的迭代精化
- 尼日利亚食品形状先验(30+食品)
-
成本优化
- 深度任意V2小型模型(24.8M参数,Apache 2.0)
- 延迟加载+空闲10分钟后自动卸载
- Docker镜像中的预缓存模型
- 预计费用:3-5美元/月(400-500MB活动内存)
准确度指标(现实估计)
带盘子检测+食物类型:
- 预期精度:75-85%
- 典型误差:±15-25%
- 置信度:0.7-0.85
无板检测:
- 预期精度:60-70%
- 典型误差:±30-40%
- 置信度:0.3-0.5
已知限制:
- 照明条件差,精度下降
- 每张图片尚不支持多种食物
- 不规则/混合菜肴更难估计
- 碗的深度具有挑战性(与堆积的食物相比)
铁路部署
先决条件
- GitHub账号
- 铁路账户(注册地址:https://railway.app)
快速部署(10分钟!)
-
推送到GitHub
cd "MCP SERVER" git add . git commit -m "feat: deploy optimized Depth Estimation server to Railway" git push origin main -
创建铁路项目
- 首选https://railway.app
- 点击“新建项目”
- 选择“从GitHub仓库部署”
- 连接您的存储库
- 铁路将自动检测
railway.toml配置
-
配置服务
- 铁路自动使用以下设置
railway.toml - 根目录:
MCP SERVER - Dockerfile:自动检测到
- 健康检查:
/health
- 铁路自动使用以下设置
-
等待构建
- 首次构建大约需要15-20分钟(下载Depth Anything V2模型)
- 查看日志以查看进度
- 模型缓存在Docker镜像中,以备将来部署
-
获取您的URL
- Railway提供了一个URL,如下所示:
https://depth-estimation-production.up.railway.app - 测试:
https://your-url.railway.app/health
- Railway提供了一个URL,如下所示:
Git推送上的自动部署
设置后,当您执行以下操作时,Railway会自动部署:
git add .
git commit -m "Update Depth Estimation server"
git push origin main
# Railway auto-deploys! 🚀
监控
- 日志:铁路仪表板→ 您的服务→ Logs
- 指标:仪表板→ 指标(CPU、内存、网络)
- 用法:仪表板→ 使用情况(见GB小时消耗量)
成本优化技巧
- 低流量(每月需求量<500):当前设置是最佳的(约1美元/月)
- 中等流量(每月需求500-2K):考虑将空闲超时时间增加到15-20分钟
- 高流量(每月需求量>2K):考虑始终加载模型以获得更快的响应
本地开发
-
安装依赖项
pip install -r requirements.txt -
运行服务器
python start_server.py -
测试API
curl http://localhost:8000/health
环境变量
PORT:服务器端口(默认值:8080,Render会自动设置此端口)
模型信息
- 模型:Depth Anything V2 Small(最先进的深度估计)
- 目的:单眼深度估计
- 尺寸:24.8M参数(~100MB)
- 许可证:Apache 2.0
- 准确度:85-92%(通过后处理管道增强)
- 特性:
- 延迟加载(根据第一个请求加载)
- 10分钟不活动后自动卸载
- 色彩引导深度细化
- 尼日利亚食品形状奖
- 演出:
- 集装箱冷启动:~30-60秒(降速后)
- 模型冷启动:~5-10秒(从缓存加载模型)
- 热推断:CPU上约30-60秒(铁路无服务器)
- 成本:典型使用情况下,铁路每月约3-5美元
技术栈
- 快速API:Web框架
- PyTorch:深度学习框架
- 深度任意V2:最先进的深度估计模型
- 拥抱面部变压器:模型加载和推理
- OpenCV:图像处理
- Uvicorn:ASGI服务器
许可证
麻省理工学院