Files
HSAP/scripts/smoke_dms_e2e_2img.sh

75 lines
2.5 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# DMS 2 图端到端setup 落盘+开 Campaignrun 在标完后跑 提交→质检→导出→入库
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