Optimize scripts & add kCurl

This commit is contained in:
miketsai 2026-06-29 18:11:59 +08:00
parent 8278fae0ee
commit 693be201e6
6 changed files with 33 additions and 39 deletions

View File

@ -2,7 +2,7 @@
set -e
BIN_DIR=/mnt/flash/plus/kp_firmware/kp_firmware_0/kp_firmware/bin
FW=/mnt/flash/vienna/kp_firmware_host_stream
FW=$BIN_DIR/kp_firmware_host_stream
INI=$BIN_DIR/ini/host_stream.ini
cd $BIN_DIR
@ -19,7 +19,7 @@ rm -f /dev/shm/*
PIXFMT=${PIXFMT:-NV12}
# Model settings — read from INI as default, env var overrides at runtime
_ini_val() { grep "^$1" "$INI" | sed 's/.*= *//' | tr -d '"' | awk '{print $1}'; }
_ini_val() { grep -i "^$1" "$INI" | sed 's/.*= *//' | tr -d '"' | awk '{print $1}'; }
MODEL_PATH=${MODEL_PATH:-$(_ini_val ModelPath)}
MODEL_ID=${MODEL_ID:-$(_ini_val ModelId)}
JOB_ID=${JOB_ID:-$(_ini_val JobId)}
@ -27,20 +27,18 @@ JOB_ID=${JOB_ID:-$(_ini_val JobId)}
# HDMI demo profile: inference on stream1 (724x362) + HDMI output from stream0 (1920x1080).
# InferenceStream=1: NPU receives 724x362 frames (model native res) — ~8x faster than InferenceStream=0.
# StreamCount=2: creates both stream0 (1920x1080, draw_box+HDMI) and stream1 (724x362, inference) SSMs.
sed -i 's/^NnmSource.*/NnmSource = 0/' $INI
sed -i 's/^GetImageBufMode.*/GetImageBufMode = 0/' $INI
sed -i 's/^InferenceStream.*/InferenceStream = 1/' $INI
sed -i 's/^StreamCount.*/StreamCount = 2/' $INI
sed -i 's/^voc_enable.*/voc_enable = 1/' $INI
sed -i "s/^PixFmt.*/PixFmt = ${PIXFMT}/" $INI
sed -i 's/^[Nn][Nn][Mm][Ss]ource.*/NnmSource = 0/' $INI
sed -i 's/^[Gg]et[Ii]mage[Bb]uf[Mm]ode.*/GetImageBufMode = 0/' $INI
sed -i 's/^[Ii]nference[Ss]tream.*/InferenceStream = 1/' $INI
sed -i 's/^[Ss]tream[Cc]ount.*/StreamCount = 2/' $INI
sed -i 's/^[Vv]oc_enable.*/voc_enable = 1/' $INI
sed -i "s/^[Pp]ix[Ff]mt.*/PixFmt = ${PIXFMT}/" $INI
# DrawBoxEnable: respect INI value set by web UI (do not override)
echo "=== HDMI Demo INI ==="
grep -E "ModelPath|ModelId|JobId|NnmSource|GetImageBufMode|InferenceStream|StreamCount|voc_enable|PixFmt" $INI
grep -iE "ModelPath|ModelId|JobId|NnmSource|GetImageBufMode|InferenceStream|StreamCount|voc_enable|PixFmt" $INI
echo "=== Model (runtime): MODEL_PATH=$MODEL_PATH MODEL_ID=$MODEL_ID JOB_ID=$JOB_ID ==="
echo "=== Start Firmware (HDMI demo) ==="
LD_LIBRARY_PATH=/mnt/flash/vienna/lib $FW -m "$MODEL_PATH" -i "$MODEL_ID" -j "$JOB_ID" &
FW_PID=$!
echo "Firmware PID: $FW_PID"
wait $FW_PID
FW_

View File

@ -2,7 +2,7 @@
set -e
BIN_DIR=/mnt/flash/plus/kp_firmware/kp_firmware_0/kp_firmware/bin
FW=/mnt/flash/vienna/kp_firmware_host_stream
FW=$BIN_DIR/kp_firmware_host_stream
INI=$BIN_DIR/ini/host_stream.ini
cd $BIN_DIR
@ -21,22 +21,22 @@ PIXFMT=${PIXFMT:-NV12}
INF_STREAM=${INF_STREAM:-1}
# Model settings — read from INI as default, env var overrides at runtime
_ini_val() { grep "^$1" "$INI" | sed 's/.*= *//' | tr -d '"' | awk '{print $1}'; }
_ini_val() { grep -i "^$1" "$INI" | sed 's/.*= *//' | tr -d '"' | awk '{print $1}'; }
MODEL_PATH=${MODEL_PATH:-$(_ini_val ModelPath)}
MODEL_ID=${MODEL_ID:-$(_ini_val ModelId)}
JOB_ID=${JOB_ID:-$(_ini_val JobId)}
# RTSP demo profile: single-process source + one encoder stream + RTSP server.
sed -i 's/^NnmSource.*/NnmSource = 0/' $INI
sed -i 's/^GetImageBufMode.*/GetImageBufMode = 0/' $INI
sed -i "s/^InferenceStream.*/InferenceStream = ${INF_STREAM}/" $INI
sed -i 's/^StreamCount.*/StreamCount = 2/' $INI
sed -i "s/^PixFmt.*/PixFmt = ${PIXFMT}/" $INI
sed -i 's/^voc_enable.*/voc_enable = 0/' $INI
sed -i 's/^[Nn][Nn][Mm][Ss]ource.*/NnmSource = 0/' $INI
sed -i 's/^[Gg]et[Ii]mage[Bb]uf[Mm]ode.*/GetImageBufMode = 0/' $INI
sed -i "s/^[Ii]nference[Ss]tream.*/InferenceStream = ${INF_STREAM}/" $INI
sed -i 's/^[Ss]tream[Cc]ount.*/StreamCount = 2/' $INI
sed -i "s/^[Pp]ix[Ff]mt.*/PixFmt = ${PIXFMT}/" $INI
sed -i 's/^[Vv]oc_enable.*/voc_enable = 0/' $INI
# DrawBoxEnable: respect INI value set by web UI (do not override)
echo "=== RTSP Demo INI ==="
grep -E "ModelPath|ModelId|JobId|NnmSource|GetImageBufMode|InferenceStream|StreamCount|voc_enable|PixFmt|DrawBoxEnable" $INI
grep -iE "ModelPath|ModelId|JobId|NnmSource|GetImageBufMode|InferenceStream|StreamCount|voc_enable|PixFmt|DrawBoxEnable" $INI
echo "=== Model (runtime): MODEL_PATH=$MODEL_PATH MODEL_ID=$MODEL_ID JOB_ID=$JOB_ID ==="
echo "=== Start Firmware (RTSP demo) ==="
@ -51,6 +51,4 @@ RTSP_PID=$!
echo "Firmware PID: $FW_PID"
echo "RTSP PID: $RTSP_PID"
echo "RTSP URL: rtsp://192.168.3.10/live1.sdp"
wait $FW_PID
echo "RTSP U

View File

@ -3,7 +3,7 @@
set -e
BIN_DIR=/mnt/flash/plus/kp_firmware/kp_firmware_0/kp_firmware/bin
FW=/mnt/flash/vienna/kp_firmware_host_stream
FW=$BIN_DIR/kp_firmware_host_stream
INI=$BIN_DIR/ini/host_stream.ini
cd $BIN_DIR
@ -20,7 +20,7 @@ rm -f /dev/shm/*
PIXFMT=${PIXFMT:-NV12}
# Model settings — read from INI as default, env var overrides at runtime
_ini_val() { grep "^$1" "$INI" | sed 's/.*= *//' | tr -d '"' | awk '{print $1}'; }
_ini_val() { grep -i "^$1" "$INI" | sed 's/.*= *//' | tr -d '"' | awk '{print $1}'; }
MODEL_PATH=${MODEL_PATH:-$(_ini_val ModelPath)}
MODEL_ID=${MODEL_ID:-$(_ini_val ModelId)}
JOB_ID=${JOB_ID:-$(_ini_val JobId)}
@ -28,17 +28,17 @@ JOB_ID=${JOB_ID:-$(_ini_val JobId)}
# Combined RTSP + HDMI profile.
# InferenceStream=1 uses stream1 (724x362) for inference.
# DrawOnResize=1 so segmentation overlay is drawn on resize streams (RTSP streams).
sed -i 's/^NnmSource.*/NnmSource = 0/' $INI
sed -i 's/^GetImageBufMode.*/GetImageBufMode = 0/' $INI
sed -i 's/^InferenceStream.*/InferenceStream = 1/' $INI
sed -i 's/^StreamCount.*/StreamCount = 2/' $INI
sed -i 's/^voc_enable.*/voc_enable = 1/' $INI
sed -i "s/^PixFmt.*/PixFmt = ${PIXFMT}/" $INI
sed -i 's/^[Nn][Nn][Mm][Ss]ource.*/NnmSource = 0/' $INI
sed -i 's/^[Gg]et[Ii]mage[Bb]uf[Mm]ode.*/GetImageBufMode = 0/' $INI
sed -i 's/^[Ii]nference[Ss]tream.*/InferenceStream = 1/' $INI
sed -i 's/^[Ss]tream[Cc]ount.*/StreamCount = 2/' $INI
sed -i 's/^[Vv]oc_enable.*/voc_enable = 1/' $INI
sed -i "s/^[Pp]ix[Ff]mt.*/PixFmt = ${PIXFMT}/" $INI
# DrawBoxEnable: respect INI value set by web UI (do not override)
# DrawOnResize: not needed — firmware auto-disables it when InferenceStream != 0
echo "=== RTSP+HDMI Demo INI ==="
grep -E "ModelPath|ModelId|JobId|NnmSource|GetImageBufMode|InferenceStream|StreamCount|voc_enable|PixFmt|DrawBoxEnable|DrawOnResize" $INI
grep -iE "ModelPath|ModelId|JobId|NnmSource|GetImageBufMode|InferenceStream|StreamCount|voc_enable|PixFmt|DrawBoxEnable|DrawOnResize" $INI
echo "=== Model (runtime): MODEL_PATH=$MODEL_PATH MODEL_ID=$MODEL_ID JOB_ID=$JOB_ID ==="
echo "=== Start Firmware (RTSP+HDMI demo) ==="
@ -53,6 +53,4 @@ RTSP_PID=$!
echo "Firmware PID: $FW_PID"
echo "RTSP PID: $RTSP_PID"
echo "RTSP URL: rtsp://192.168.3.10/live1.sdp"
wait $FW_PID
echo "RTSP U

View File

@ -15,7 +15,7 @@ set -e
HOST_URL="http://192.168.0.105:8080"
BIN_DIR=/mnt/flash/plus/kp_firmware/kp_firmware_0/kp_firmware/bin
FW=/mnt/flash/vienna/kp_firmware_host_stream
FW=$BIN_DIR/kp_firmware_host_stream
INI=$BIN_DIR/ini/host_stream.ini
# ── 一次性 ISP 資源修正 ─────────────────────────────────────────────────────

BIN
tools/device/kCurl Normal file

Binary file not shown.

View File

@ -48,12 +48,12 @@ DEMO_HDMI_SRC = SCRIPT_DIR / "tools" / "device" / "demo_hdmi.sh"
DEMO_RTSP_HDMI_SRC = SCRIPT_DIR / "tools" / "device" / "demo_rtsp_hdmi.sh"
START_SH_SRC = SCRIPT_DIR / "tools" / "device" / "start.sh"
NEF_DIR = SCRIPT_DIR / "nef"
KCURL_SRC = Path("/home/user/Documents/GOFACE/奧創雲/kCurl-1.1.1-release/kCurl-linux-armv7")
KCURL_SRC = SCRIPT_DIR / "tools" / "device" / "kCurl"
CONFIG_FILE = SCRIPT_DIR / ".web_config.json"
PROFILES_FILE = SCRIPT_DIR / "model_profiles.json"
BIN_DIR_DEVICE = "/mnt/flash/plus/kp_firmware/kp_firmware_0/kp_firmware/bin"
FW_PATH_DEVICE = "/mnt/flash/vienna/kp_firmware_host_stream"
FW_PATH_DEVICE = f"{BIN_DIR_DEVICE}/kp_firmware_host_stream"
DEFAULT_CONFIG = {
"host_ip": "192.168.3.1",