|
|
1 ヶ月 前 | |
|---|---|---|
| examples | 1 ヶ月 前 | |
| README.md | 1 ヶ月 前 | |
| api.py | 1 ヶ月 前 | |
| api_config.py | 1 ヶ月 前 | |
| cargo_height_measure.py | 1 ヶ月 前 | |
| cargo_service.py | 1 ヶ月 前 | |
| depth_common.py | 1 ヶ月 前 | |
| main.py | 1 ヶ月 前 | |
| request_logging.py | 1 ヶ月 前 | |
| requirements.txt | 1 ヶ月 前 | |
| run.sh | 1 ヶ月 前 | |
| utils.py | 1 ヶ月 前 |
# 货物高度测量服务(baoshi-measure-cargo)
本项目基于 Orbbec 深度相机 + FastAPI,用于在固定 ROI(感兴趣区域)内计算最近距离,并通过中位数输出稳定的高度测量结果。
/height,返回毫米级测量结果。api.py:FastAPI 服务入口与路由定义。main.py:命令行启动入口。api_config.py:配置对象与环境变量读取。cargo_service.py:测高核心服务(采样、统计、图片保存)。depth_common.py:深度处理通用逻辑(ROI、滤波、最近点等)。cargo_height_measure.py:本地可视化调试脚本。request_logging.py:请求日志中间件。utils.py:彩色帧格式转换工具。examples/:SDK 使用示例脚本。pip install -r requirements.txt
说明:请确保本机已正确安装并可使用 Orbbec SDK(
pyorbbecsdk)。
python main.py
默认监听地址:127.0.0.1:8080
python cargo_height_measure.py
按 q 或 ESC 退出。
python examples/quick_start.py
python examples/save_image_to_disk.py
GET /health返回示例:
{"status": "ok"}
GET /height成功返回示例:
{
"height_mm": 1234,
"samples": [1231, 1235, 1234, 1232, 1236],
"unit": "mm",
"sample_count": 5,
"image_paths": {
"color": "/sample_images/color_640x480_20260227_133000_123.png",
"depth": "/sample_images/depth_annotated_640x480_20260227_133000_123.png"
}
}
失败返回:当有效样本不足时返回 503。
SAMPLE_COUNT:单次测量采样数量(默认 10)。FRAME_TIMEOUT_MS:每帧等待超时毫秒数(默认 200)。SAMPLE_TIMEOUT_SEC:单次测量总超时秒数(默认 8)。MAX_SAVED_IMAGES:最多保留图片数量(默认 1000)。REQUEST_LOG_MAX_LEN:日志中响应体最大长度(默认 1000)。REQUEST_LOG_MAX_BYTES:单个日志文件最大字节(默认 20MB)。REQUEST_LOG_BACKUP_COUNT:日志轮转保留份数(默认 10)。API_HOST:服务监听地址(默认 127.0.0.1)。API_PORT:服务端口(默认 8080)。MIN_DEPTH:有效最小深度(cm,默认 50)。MAX_DEPTH:有效最大深度(cm,默认 400)。ROI_WIDTH_CM:ROI 宽度(cm,默认 10)。ROI_HEIGHT_CM:ROI 高度(cm,默认 12)。Log/request.logsample_images/color_images/depth_images//height 返回 503:
SAMPLE_TIMEOUT_SEC 或降低 SAMPLE_COUNT。cargo_height_measure.py 中观察 ROI 与最近点标注效果,再调整环境变量。request.log 与保存的 sample_images 进行问题定位。