# EdgeFusion_Smart_NVR **Repository Path**: weidongshan/EdgeFusion_Smart_NVR ## Basic Information - **Project Name**: EdgeFusion_Smart_NVR - **Description**: https://github.com/dshanpi/EdgeFusion_Smart_NVR - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-02 - **Last Updated**: 2026-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EdgeFusion — 云端协同智能 NVR 基于 **V821(端)+ IMX6ULL(边)+ 云端大模型(云)** 三层架构的智能网络视频录像机。V821 无线采集 H.264 推流,IMX6ULL 拉流录像并提取关键帧上云做视觉分析,低成本实现「会思考」的 NVR。 ``` ┌─────────────┐ Wi-Fi RTSP ┌─────────────┐ HTTPS ┌─────────────┐ │ V821 端侧 │ ────────────▶ │ IMX6ULL 边侧│ ────────▶ │ 云侧 AI │ │ 摄像头采集 │ H.264 1080P │ 录像+上云+ │ 关键帧 │ qwen3.6-plus│ │ H.264硬编码 │ │ Web+RTSP转发│ JSON事件 │ 视觉理解 │ └─────────────┘ └─────────────┘ └─────────────┘ edgefusion_vision edgefusion_gateway 阿里百炼 ``` Snipaste_2026-07-02_15-27-31 Snipaste_2026-07-02_15-18-28 Snipaste_2026-07-02_15-07-36 Snipaste_2026-07-02_15-07-53 --- ## 仓库结构 | 路径 | 说明 | |------|------| | [`edgefusion_vision/`](edgefusion_vision/README.md) | **端侧**:V821 sample 工程,MIPI CSI → H.264 硬编码 → RTSP 推流 `rtsp://:8554/ch0` | | [`edgefusion_gateway/`](edgefusion_gateway/README.md) | **边侧**:IMX6ULL 网关守护进程,拉流录像 + 关键帧上云 + 事件入库 + Web/RTSP | > 日常开发用 `edgefusion_vision`(含调好的运行配置和 RTSP URL 打印)。 --- ## 硬件平台 | 板子 | 芯片 | 角色 | OS | |------|------|------|-----| | 百问网 AvaotaF1 V821 | 全志 V821(RISC-V 1.2GHz,内置 Wi-Fi,H.264 硬编码) | 端侧摄像头 | Tina Linux 5.0(musl) | | 百问网 IMX6ULL-Pro | NXP i.MX6ULL(ARM Cortex-A7 800MHz) | 边侧网关/AI NVR | Buildroot Linux(glibc) | | 阿里百炼 | qwen3.6-plus 多模态视觉模型 | 云侧 AI | — | 完整硬件规格与外设清单见 [`IMX6ULL_V821_Project.md`](IMX6ULL_V821_Project.md) §4。 --- ## 核心能力 - **无线采集推流**:V821 MIPI CSI → H.264 硬编码 → Wi-Fi RTSP 推流(1920×1080@15fps) - **本地录像**:IMX6ULL 拉 RTSP,H.264 直接 remux 成 fragmented MP4 分段(不解码,断电安全,循环覆盖) - **云端 AI 分析**:1fps 软解关键帧 → JPEG → HTTPS 上云 qwen3.6-plus → 结构化 JSON → 事件入库(已验证识别人脸/人员,置信度 0.95+) - **报警联动**:GPIO 驱动 LED/蜂鸣器(引脚待定) - **Web 管理**:MJPEG 实时预览 + OSD + 录像回放 + 事件告警列表 + 配置热加载 + 云端 AI 开关 - **RTSP 转发**:IMX6ULL 自研轻量 RTSP server,H.264 passthrough 供 VLC/NVR 拉流 --- ## 快速开始 ### 0. 前置条件(主机 Ubuntu) ```bash sudo apt install android-tools-adb build-essential sudo usermod -aG dialout $USER # 访问串口,需重新登录生效 ``` 配置 udev 规则 `/etc/udev/rules.d/51-edgefusion-android.rules`: ``` SUBSYSTEM=="usb", ATTR{idVendor}=="1d6b", ATTR{idProduct}=="0104", MODE="0666" # IMX6ULL SUBSYSTEM=="usb", ATTR{idVendor}=="1f3a", ATTR{idProduct}=="0000", MODE="0666" # V821 ``` ```bash sudo udevadm control --reload-rules && sudo udevadm trigger adb devices # 应同时看到 100ask_IMX6ULL 和 4c48410491c30a72512 ``` 两板出厂已烧好系统,无需重新烧录固件。 ### 1. V821 端:编译并启动推流 ```bash cd ~/EdgeFusion/edgefusion_vision ./build.sh # 产出 output/sample_smartIPC_demo_strip adb -s 4c48410491c30a72512 push output/sample_smartIPC_demo_strip /mnt/extsd/sample_smartIPC_demo adb -s 4c48410491c30a72512 push output/sample_smartIPC_demo.conf /mnt/extsd/ adb -s 4c48410491c30a72512 shell 'chmod +x /mnt/extsd/sample_smartIPC_demo' ``` **必须从串口启动**(V821 无 setsid,adb 后台进程会随会话退出被杀): ```bash sudo stty -F /dev/ttyUSB0 115200 cs8 -cstopb -parenb -ixon -ixoff raw -echo sudo bash -c 'printf "cd /mnt/extsd && ./sample_smartIPC_demo -path /mnt/extsd/sample_smartIPC_demo.conf > /mnt/extsd/run.log 2>&1 &\r\n" > /dev/ttyUSB0' ``` 确认推流地址(IP 随 wlan0 DHCP 变): ```bash adb -s 4c48410491c30a72512 shell 'grep "rtsp://" /mnt/extsd/run.log' # rtsp://:8554/ch0 adb -s 4c48410491c30a72512 shell 'ip -4 addr show wlan0 | grep inet' # 记下 V821 IP ``` > 详细步骤与排错见 [`edgefusion_vision/README.md`](edgefusion_vision/README.md)。 ### 2. IMX6ULL 端:编译、配置、部署、启动 ```bash cd ~/EdgeFusion/edgefusion_gateway # 编辑 config/gateway.conf,把 rtsp_url 改成上一步的 V821 地址,填入云端 token # rtsp_url = rtsp://:8554/ch0 # anthropic_auth_token = sk-... source toolchain.env && make && make deploy # 交叉编译 + adb 部署到 /mnt/extsd/gateway/ adb -s 100ask_IMX6ULL shell 'mountpoint -q /mnt/extsd || mount -t vfat /dev/mmcblk0p1 /mnt/extsd' adb -s 100ask_IMX6ULL shell 'killall edgefusion_gateway 2>/dev/null; sleep 1; \ cd /mnt/extsd/gateway && \ setsid sh -c "./edgefusion_gateway -path /mnt/extsd/gateway/config/gateway.conf > /mnt/extsd/gateway.log 2>&1" \ /dev/null 2>&1 &' ``` > 详细步骤与排错见 [`edgefusion_gateway/README.md`](edgefusion_gateway/README.md)。 ### 3. 验证 浏览器打开 **`http://192.168.1.59:8080`**(IMX6ULL IP): - **实时预览**:看到摄像头画面 + OSD(通道/REC/分辨率/码率/时间戳) - **事件告警**:云端 AI 识别到的人脸/人员事件(带快照、置信度、描述) - **录像回放**:60 秒分段的 MP4 列表 - **系统设置**:可热切换云端 AI 开关、改配置 ```bash curl -s http://192.168.1.59:8080/api/status # 状态:stream/recording/cloud_ai # RTSP 转发:rtsp://192.168.1.59:8554/track0(VLC 可拉) ``` --- ## 板子访问速查 | 板子 | ADB 序列号 | 调试串口 | 默认 IP | |------|-----------|----------|---------| | IMX6ULL | `100ask_IMX6ULL` | `/dev/ttyACM0`(115200,免 sudo) | `192.168.1.59`(eth0 固定) | | V821 | `4c48410491c30a72512` | `/dev/ttyUSB0`(115200,需 sudo) | DHCP 动态(wlan0,曾 .28/.44) | > V821 走 wlan0 DHCP,**IP 每次上电可能变**,需重新查并更新 `gateway.conf` 的 `rtsp_url`(Web 设置页可热改)。 --- ## 当前状态(2026-07-02) | 阶段 | 状态 | |------|------| | P0 工程骨架 + 交叉编译 | ✅ | | P1 RTSP 拉流 + MP4 分段录像 | ✅ | | P2 关键帧上云(qwen3.6-plus 视觉分析) | ✅ 已验证 | | P3 事件入库 + GPIO 报警订阅 | ✅ | | P4 Web 预览/回放/事件/配置 + 云端 AI 开关 | ✅ | | 本地 RTSP passthrough 转发 | ✅ | | P5 MQTT 上报 | ⏳ 仅配置项,未实现(缺 libmosquitto) | | 成本优化(V821 pdet 预筛选) | ⏳ 待办 | | OTA / 多路接入 / 72h 稳定性 | ⏳ 待办 | --- ## 文档导航 | 想了解 | 看这里 | |--------|--------| | 项目全貌、架构、模块职责 | [`PROJECT_INTRO.md`](PROJECT_INTRO.md) | | 立项背景、硬件选型、实施计划 | [`IMX6ULL_V821_Project.md`](IMX6ULL_V821_Project.md) | | V821 端编译/运行/排错 | [`edgefusion_vision/README.md`](edgefusion_vision/README.md) | | IMX6ULL 端编译/运行/排错 | [`edgefusion_gateway/README.md`](edgefusion_gateway/README.md) | | 网关任务书与决策点 | [`edgefusion_gateway/docs/TASK.md`](edgefusion_gateway/docs/TASK.md) |