diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..6e3caf1 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,8 @@ + # Changelog + +- [2026/3/10] + +1. RKNN 库已更新到 2.3.2 +2. 使用 v1.4.1b16 静态 shape 模型(scrfd_500m_640.rknn)做人脸检测 +3. 重新转换ReinaFace_mobile320.rknn模型,让其有效 +4. 将hls_display.html中需要联网的js改成本地运行 \ No newline at end of file diff --git a/scripts/deploy.sh b/scripts/deploy.sh index 15305a3..03a7c38 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -224,6 +224,15 @@ cmd_install_media_server() { cp "$BUILD_DIR"/*.so "$INSTALL_DIR/lib/" 2>/dev/null || true fi + # 复制项目 lib 目录中的 RKNN 等系统库 + if [ -d "$PROJECT_DIR/lib" ]; then + for lib_file in "$PROJECT_DIR"/lib/*.so*; do + [ -f "$lib_file" ] || continue + cp "$lib_file" "$INSTALL_DIR/lib/" + echo -e "${GREEN}✓${NC} 已复制 $(basename "$lib_file")" + done + fi + # 复制共享状态库(rk_shared_state) if [ -f "$BUILD_DIR/librk_shared_state.so" ]; then cp "$BUILD_DIR/librk_shared_state.so" "$INSTALL_DIR/lib/" diff --git a/scripts/install_deps.sh b/scripts/install_deps.sh index 4bb6c46..ad54394 100755 --- a/scripts/install_deps.sh +++ b/scripts/install_deps.sh @@ -146,32 +146,52 @@ echo -e "${YELLOW}[3/4] 安装 RKNN Runtime...${NC}" RKNN_INSTALLED=false -# 优先使用本地上传的 rknpu2 zip(覆盖系统版本) -for zip_file in "/tmp/rknpu2-1.5.2.zip" "/tmp/rknpu2-1.6.0.zip" "/tmp/rknpu2_1.6.0_arm64.zip"; do - if [ -f "$zip_file" ]; then - echo " 发现本地文件: $(basename $zip_file),优先使用" - cd /tmp - rm -rf rknpu2-* 2>/dev/null || true - unzip -q -o "$zip_file" 2>/dev/null || true - - # 查找解压后的目录 - RKNPU_DIR=$(find /tmp -maxdepth 1 -type d -name "rknpu*" | head -1) - if [ -n "$RKNPU_DIR" ]; then - echo " 解压目录: $RKNPU_DIR" - if [ -d "$RKNPU_DIR/runtime/RK3588/Linux/aarch64" ]; then - echo " 安装 RKNN 库..." - cp "$RKNPU_DIR/runtime/RK3588/Linux/aarch64/"*.so /usr/lib/ 2>/dev/null || true - fi - if [ -d "$RKNPU_DIR/runtime/RK3588/Linux/librknn_api/include" ]; then - cp -r "$RKNPU_DIR/runtime/RK3588/Linux/librknn_api/include/"* /usr/include/ 2>/dev/null || true - fi - RKNN_INSTALLED=true - fi - break - fi -done +# 优先使用项目 lib 目录中的 RKNN 库(最高优先级,确保版本一致) +if [ -f "$PROJECT_DIR/lib/librknnrt.so.2.3.2" ]; then + echo " 发现项目自带 RKNN 库: librknnrt.so.2.3.2" + echo " 安装 RKNN 库到系统..." + cp "$PROJECT_DIR/lib/librknnrt.so.2.3.2" /usr/lib/librknnrt.so + chmod 755 /usr/lib/librknnrt.so + # 创建兼容性符号链接 + ln -sf /usr/lib/librknnrt.so /usr/local/lib/librknnrt.so 2>/dev/null || true + RKNN_INSTALLED=true +elif [ -f "$PROJECT_DIR/lib/librknnrt.so" ]; then + echo " 发现项目自带 RKNN 库: librknnrt.so" + echo " 安装 RKNN 库到系统..." + cp "$PROJECT_DIR/lib/librknnrt.so" /usr/lib/librknnrt.so + chmod 755 /usr/lib/librknnrt.so + ln -sf /usr/lib/librknnrt.so /usr/local/lib/librknnrt.so 2>/dev/null || true + RKNN_INSTALLED=true +fi -# 如果没有本地 zip,检查系统是否已有 +# 其次使用本地上传的 rknpu2 zip +if [ "$RKNN_INSTALLED" != "true" ]; then + for zip_file in "/tmp/rknpu2-1.5.2.zip" "/tmp/rknpu2-1.6.0.zip" "/tmp/rknpu2_1.6.0_arm64.zip"; do + if [ -f "$zip_file" ]; then + echo " 发现本地文件: $(basename $zip_file)" + cd /tmp + rm -rf rknpu2-* 2>/dev/null || true + unzip -q -o "$zip_file" 2>/dev/null || true + + # 查找解压后的目录 + RKNPU_DIR=$(find /tmp -maxdepth 1 -type d -name "rknpu*" | head -1) + if [ -n "$RKNPU_DIR" ]; then + echo " 解压目录: $RKNPU_DIR" + if [ -d "$RKNPU_DIR/runtime/RK3588/Linux/aarch64" ]; then + echo " 安装 RKNN 库..." + cp "$RKNPU_DIR/runtime/RK3588/Linux/aarch64/"*.so /usr/lib/ 2>/dev/null || true + fi + if [ -d "$RKNPU_DIR/runtime/RK3588/Linux/librknn_api/include" ]; then + cp -r "$RKNPU_DIR/runtime/RK3588/Linux/librknn_api/include/"* /usr/include/ 2>/dev/null || true + fi + RKNN_INSTALLED=true + fi + break + fi + done +fi + +# 如果没有本地文件,检查系统是否已有 if [ "$RKNN_INSTALLED" != "true" ]; then if [ -f "/usr/lib/librknnrt.so" ] || [ -f "/usr/lib/aarch64-linux-gnu/librknnrt.so" ]; then echo " 系统已存在 RKNN 库" diff --git a/web/hls_player.html b/web/hls_player.html index fd29fb6..11627e5 100644 --- a/web/hls_player.html +++ b/web/hls_player.html @@ -4,7 +4,7 @@