将 platform + CVAT 合并为单文件 docker-compose.yml,完善 .env 与 init/dev_up 脚本; 新增 docs/DEPLOY.md 与更新 README 以支持新机器部署;含数据湖示例、车队地图、 紧凑表格 UI、ADAS det_7cls 路径与批次台账等近期改动。 Co-authored-by: Cursor <cursoragent@cursor.com>
75 lines
2.5 KiB
Bash
Executable File
75 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# DMS 2 图端到端:setup 落盘+开 Campaign;run 在标完后跑 提交→质检→导出→入库
|
||
set -euo pipefail
|
||
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||
export PYTHONPATH="$ROOT/platform:$ROOT"
|
||
BASE="${HSAP_API:-http://127.0.0.1:8787}"
|
||
|
||
BATCH="${DMS_E2E_BATCH:-e2e_2img_20260616}"
|
||
TASK="${DMS_E2E_TASK:-addw}"
|
||
PACK="${DMS_E2E_PACK:-dms_v1}"
|
||
PROJECT="${DMS_E2E_PROJECT:-dms}"
|
||
SRC_BATCH="${DMS_E2E_SRC_BATCH:-20260525_pilot}"
|
||
MIN_IMAGES="${DMS_E2E_MIN_IMAGES:-2}"
|
||
WAIT_LABEL_SEC="${DMS_E2E_WAIT_LABEL_SEC:-0}"
|
||
|
||
cmd="${1:-setup}"
|
||
|
||
setup_batch() {
|
||
local batch_dir="/data/hsap/datasets/dms/inbox/${TASK}/${BATCH}"
|
||
local src="/data/hsap/datasets/dms/inbox/${TASK}/${SRC_BATCH}/images/train"
|
||
echo "==> create batch ${batch_dir} (${MIN_IMAGES} images from ${SRC_BATCH})"
|
||
docker exec hsap-platform mkdir -p "${batch_dir}/images/train"
|
||
docker exec hsap-platform bash -c "
|
||
set -e
|
||
src='${src}'
|
||
dst='${batch_dir}/images/train'
|
||
n=0
|
||
for f in \"\$src\"/*.jpg; do
|
||
[ -f \"\$f\" ] || continue
|
||
cp \"\$f\" \"\$dst/\"
|
||
n=\$((n+1))
|
||
[ \"\$n\" -ge ${MIN_IMAGES} ] && break
|
||
done
|
||
echo copied=\$n
|
||
ls -la \"\$dst\"
|
||
"
|
||
docker exec hsap-platform python3 /data/hsap/as.py register-batch dms "${TASK}" "${BATCH}" --stage raw_pool
|
||
docker exec hsap-platform mkdir -p "${batch_dir}/labels/ls_annotations"
|
||
}
|
||
|
||
open_campaign() {
|
||
echo "==> open campaign via API ${BASE}"
|
||
python3 "$ROOT/platform/as_platform/tests/run_dms_e2e_pipeline.py" setup --api "$BASE" \
|
||
--batch "$BATCH" --task "$TASK" --project "$PROJECT" --pack "$PACK" --skip-files
|
||
}
|
||
|
||
case "$cmd" in
|
||
setup)
|
||
setup_batch
|
||
open_campaign
|
||
python3 "$ROOT/platform/as_platform/tests/run_dms_e2e_pipeline.py" info --api "$BASE" \
|
||
--batch "$BATCH" --task "$TASK" --project "$PROJECT"
|
||
echo ""
|
||
echo "请在平台标注 ${MIN_IMAGES} 张图后执行:"
|
||
echo " bash $0 run"
|
||
echo " 或: DMS_E2E_WAIT_LABEL_SEC=600 bash $0 run-wait"
|
||
;;
|
||
run|run-wait)
|
||
if [[ "$cmd" == "run-wait" && "$WAIT_LABEL_SEC" == "0" ]]; then
|
||
WAIT_LABEL_SEC=600
|
||
fi
|
||
python3 "$ROOT/platform/as_platform/tests/run_dms_e2e_pipeline.py" run --api "$BASE" \
|
||
--batch "$BATCH" --task "$TASK" --project "$PROJECT" --pack "$PACK" \
|
||
--min-images "$MIN_IMAGES" --wait-label-sec "$WAIT_LABEL_SEC"
|
||
;;
|
||
info)
|
||
python3 "$ROOT/platform/as_platform/tests/run_dms_e2e_pipeline.py" info --api "$BASE" \
|
||
--batch "$BATCH" --task "$TASK" --project "$PROJECT"
|
||
;;
|
||
*)
|
||
echo "usage: $0 {setup|run|run-wait|info}"
|
||
exit 1
|
||
;;
|
||
esac
|