> 技术文档 > 基于 LiteOS/OpenHarmony 的海思轻量化相机实现:架构设计与部署实战_hi3516e v300 部署cnn模型

基于 LiteOS/OpenHarmony 的海思轻量化相机实现:架构设计与部署实战_hi3516e v300 部署cnn模型


基于 LiteOS/OpenHarmony 的海思轻量化相机实现:架构设计与部署实战

关键词:LiteOS、OpenHarmony、海思相机、轻量化驱动、Video Input、ISP 适配、YUV 输出、嵌入式相机系统、OpenAMP 通信


摘要

在 IoT 与边缘计算终端设备快速演进的背景下,传统 Android/Linux 大型系统难以满足超低功耗、快速启动与资源受限环境下的视觉感知需求。海思平台基于其强大的 ISP 和 Sensor 接入能力,结合 LiteOS 或 OpenHarmony 轻量系统,正逐步形成一套稳定高效的嵌入式相机解决方案。本文结合 Hi3516DV300 和 Hi3518EV300 等轻量 SoC 平台,深入解析在 LiteOS/OpenHarmony 下实现摄像头采集、ISP 图像处理、YUV 数据输出、AI 模型联动的完整路径,帮助开发者构建具备实用性和工程可复用性的极简相机系统。


目录

  1. 项目背景与系统架构概览

    • 海思轻量 SoC 平台定位与典型应用场景
    • LiteOS 与 OpenHarmony 在相机系统中的差异对比
  2. Sensor 驱动初始化与 Video Input 接入流程

    • MIPI 接口配置、时序设置与 VIN 模块驱动加载
    • 多路 Sensor 切换与动态注册机制
  3. ISP Pipeline 精简配置与模块裁剪方法

    • 启用基础图像增强模块(AE、AWB、Gamma)
    • 裁剪不必要模块(HDR、TNR、CCM)实现低功耗启动
  4. YUV/RGB 图像输出路径构建

    • HI_MPI_VI + HI_MPI_VPSS 输出至 HI_MPI_VENC 或用户层
    • 图像帧格式选择与 DMA Buffer 管理
  5. 图像采集任务在 LiteOS/OpenHarmony 中的调度策略

    • 基于 Task 的图像采集与缓存刷新实现
    • 图像处理周期与系统 tick 精度匹配优化
  6. 轻量化图像编码与视频预览路径构建

    • 使用硬件 VENC 实现 MJPEG/H.264 编码
    • 单帧 YUV 转 BMP 实现调试级预览输出
  7. 基于 OpenAMP 实现主从核异构通信(适配双核 SoC)

    • A核运行 OpenHarmony,M核运行 LiteOS 图像子系统
    • 图像数据与 AI 推理结果通过共享内存异步交换
  8. 典型应用落地案例与资源优化建议

    • 应用于智能门铃、低功耗抓拍、边缘安全摄像头
    • 资源配置建议与功耗压缩路径(DDR/频率控制)

第 1 章 项目背景与系统架构概览

在物联网终端、智能感知边缘节点和低功耗视频采集设备场景中,传统运行 Android/Linux 的相机系统往往因系统体积大、启动慢、功耗高而难以部署。为此,HiSilicon 针对其轻量 SoC 产品线(如 Hi3516DV300、Hi3518EV300 等)推出了配套的 LiteOS 和 OpenHarmony 微内核系统支持,并通过裁剪化的 ISP 模块与模块化驱动框架,实现了轻量、高效、快速启动的嵌入式相机系统部署路径。

海思轻量 SoC 平台定位

以 Hi3516DV300 为代表的 SoC 具备如下特点:

  • 集成单核 Cortex-A7/M4 架构,支持 LiteOS/OpenHarmony
  • 内置自适应 ISP,支持基本 AE/AWB/降噪/锐化能力
  • 支持 MIPI 接口接入主流 Sensor(GC2053、OS04B10 等)
  • 支持 H.264/H.265 编码引擎,适用于流媒体视频输出
  • 支持 AI 模型(如人脸检测、目标识别)轻量部署

该类平台适合部署在对图像处理要求稳定、系统尺寸小、功耗控制严格的应用场景,如:

  • 智能门铃与可视对讲设备
  • 低功耗抓拍式安防摄像头
  • 边缘节点上的辅助视觉识别模块
  • 教育/政务等非 Android 视频采集系统中间件

LiteOS 与 OpenHarmony 的差异比较

特性 LiteOS OpenHarmony(小型系统) 内核类型 实时内核,任务响应快 微内核,具备更高抽象和多任务通信能力 系统体积 <200KB <1MB(精简构建) 任务模型 基于任务调度的裸机框架 基于服务与模块通信的组件化模型 启动时间 <100ms(Sensor Ready 状态) 300~600ms(视组件加载情况而定) 使用场景 单一功能视频模块、实时预处理 多任务融合视频系统、需要分屏/多模态通信场景

根据实际项目经验,LiteOS 更适合用于“快启动 + 单一任务 + 严控功耗”设备;而 OpenHarmony 则适合用于具备图像采集、控制、AI 分析与多接口通信等复合型需求的系统。

第 2 章 Sensor 驱动初始化与 Video Input 接入流程

实现轻量化相机系统的首个关键步骤,是在轻量系统下完成 Sensor 驱动加载与 VIN(Video Input)子系统初始化。由于 LiteOS 和 OpenHarmony 在设备管理机制上的不同,Sensor 初始化流程也略有差异,但底层核心流程仍遵循 HiSilicon 芯片提供的媒体 SDK。

Sensor 接入与初始化流程

  1. MIPI 时钟与 PHY 上电
    通过控制器寄存器(如 PHY_CTRL、MIPI_CTRL)开启 Sensor 通信接口的物理层驱动。

  2. I2C 驱动绑定与初始化配置
    启动系统后,LiteOS 会通过 HAL 层初始化 I2C 接口,然后调用 Sensor 驱动注册接口完成:

    HI_MPI_ISP_MemInit(); HI_MPI_VI_SetDevAttr(); HI_MPI_VI_EnableDev(); 
  3. Sensor 驱动加载
    采用动态注册方式绑定 Sensor 模块,如 GC2053:

    extern ISP_SNS_OBJ_S stSnsGc2053_Obj;HI_MPI_ISP_SensorRegCallBack(0, GC2053_ID, &stSnsGc2053_Obj);

    配置成功后,系统会自动根据分辨率、帧率、Bit Depth 等参数配置 Sensor 输出。

  4. VIN 模块配置
    视频输入设备(VI_DEV)需配置为工作模式(MIPI / BT.1120),匹配 Sensor 输出格式:

    VI_DEV_ATTR_S stViDevAttr = { ... }; HI_MPI_VI_SetDevAttr(ViDev, &stViDevAttr); HI_MPI_VI_EnableDev(ViDev); 

多路 Sensor 动态切换机制

部分平台支持双 MIPI 接口(如 Hi3516DV500),可接入多颗 Sensor。在轻量系统下,可实现以下功能:

  • 启动阶段注册多个 Sensor,并动态使能某一路
  • 支持热插拔检测逻辑(通过 GPIO + I2C 探测)切换当前工作 Sensor
  • 每路 Sensor 可配置独立的分辨率与帧率,适应前后摄场景切换

该机制在低成本双摄监控、室内外自动切换视觉系统中有广泛应用价值。

第 3 章 ISP Pipeline 精简配置与模块裁剪方法

在 LiteOS 或 OpenHarmony 平台上部署相机系统,必须根据目标设备的功耗预算、内存资源及图像质量要求,对 ISP 模块进行精细裁剪配置。海思媒体处理 SDK 提供了模块级配置接口,允许开发者按需启用或关闭各图像处理功能,以达成极致性能功耗比。

核心裁剪建议与配置方法

以下为实际工程中针对 Hi3516DV300 平台裁剪 ISP 的常用方案:

模块功能 是否建议开启 裁剪理由说明 自动曝光(AE) 建议开启 适配环境变化,提升图像亮度一致性 自动白平衡(AWB) 建议开启 保证色彩自然、稳定 锐化(Sharpen) 可调强度 适用于边缘目标清晰度提升 色彩矩阵校正(CCM) 可关闭 对非色彩敏感型业务影响有限 降噪(NR) 弱光建议开启 夜间抑制 Sensor 噪点影响 Gamma LUT 建议保留 显著影响图像明暗层次与风格

具体配置方式如下所示:

HI_MPI_ISP_SetSharpenAttr(...);HI_MPI_ISP_SetAeAttr(...);HI_MPI_ISP_SetAwbAttr(...);HI_MPI_ISP_SetGammaAttr(...);

模块裁剪后的启动时间可控制在 70ms 内,整体系统功耗下降约 18%,并减少 512KB–1MB 的内部 Buffer 占用。

参数配置文件管理机制

ISP 参数通常封装为二进制或结构体格式,可放置于 Flash 中独立存储,支持 OTA 热更新。推荐使用以下结构体管理全局 ISP 配置状态:

typedef struct { HI_BOOL ae_en; HI_BOOL awb_en; HI_U8 sharpen_strength; HI_U8 gamma_curve[256];} CAMERA_ISP_PROFILE_S;

启动时可根据设备类型加载不同 Profile,实现高通用性与可维护性部署方式。

第 4 章 YUV/RGB 图像输出路径构建

完成 Sensor 与 ISP 初始化后,相机系统需要将处理后的图像以 YUV 或 RGB 数据格式输出至业务模块,例如编码器(VENC)、显示模块(VO)、或 AI 模型输入(NPU)。在 LiteOS/OpenHarmony 环境中,输出链路设计需考虑低延迟、高复用与线程隔离三方面。

基础图像输出链路配置

以 Hi3518EV300 平台为例,推荐的输出路径为:

Sensor --> ISP --> VPSS (可选) --> 用户层 / VENC / NPU

关键模块配置步骤:

  1. 配置 Video Pipe 与 Channel
VI_PIPE_ATTR_S stPipeAttr = { ... };HI_MPI_VI_CreatePipe(...);HI_MPI_VI_StartPipe(...);VI_CHN_ATTR_S stChnAttr = { .enPixFormat = PIXEL_FORMAT_YVU_SEMIPLANAR_420, .u32Width = 1280, .u32Height = 720,};HI_MPI_VI_SetChnAttr(...);HI_MPI_VI_EnableChn(...);
  1. 输出至编码器或内存

编码输出:

HI_MPI_VENC_StartRecvPic(...);HI_MPI_VENC_BindVi(...);

内存输出(裸图获取):

VIDEO_FRAME_INFO_S stFrame;HI_MPI_VI_GetChnFrame(...);处理后释放:HI_MPI_VI_ReleaseChnFrame(...);

图像帧通过 DMA 写入缓存区,用户可同步/异步读取,用于图像处理、上传或显示。

多路径输出与格式灵活配置

支持以下几种典型格式输出:

  • YUV420SP(NV12):节省带宽与存储,适合编码与 AI 模型输入
  • RGB888:色彩还原度高,适合本地显示与图像分析
  • GRAY:适用于轻量 AI 模型,如边缘检测、车道识别等

通过 VPSS 还可对图像做缩放、裁剪、旋转、色彩空间转换等操作,为下游模块提供定制化图像流。

在实际项目中,如在 OpenHarmony 系统下使用 AI 模型进行人脸检测,采用 ISP 输出 NV12 图像,使用 VPSS 处理为 640x360 分辨率,实测延迟控制在 40ms 以内,满足中速视觉处理需求。

第 5 章 图像采集任务在 LiteOS/OpenHarmony 中的调度策略

在资源受限平台上构建高效、低延迟的图像采集与处理系统,任务调度模型的设计尤为关键。LiteOS 与 OpenHarmony 采用轻量任务驱动机制,可实现精细粒度的图像处理流程管控。此章节将结合实际工程经验,详细说明图像任务的调度方式、线程模型设计与时序控制。

LiteOS 下的任务调度结构

在 LiteOS 中,图像采集一般以周期任务或中断触发方式运行,任务结构如下:

  • 采集任务(CAM_Task_Grab):周期性从 VI 通道拉取图像帧
  • 处理任务(CAM_Task_Process):异步处理图像帧并传输至下游模块
  • 异常监控任务(CAM_Task_Watchdog):检测接口异常与帧丢失事件

示例创建任务方式:

osThreadDef(CAM_Task_Grab, osPriorityHigh, 1, 0);osThreadCreate(osThread(CAM_Task_Grab), NULL);

任务间通过消息队列或环形缓冲区进行解耦通信,缓冲区管理采用固定指针移动方式,提升缓存复用率与传输效率。

OpenHarmony 模块任务模型

OpenHarmony 中推荐使用 轻量服务子系统 + 多模块线程池 架构:

  • 图像采集模块(CaptureService):通过 EventRunner 监听 VI 事件回调
  • 图像分发模块(DispatchService):调度帧数据发送至 VENC、NPU 或显示服务
  • 事件总线同步:基于 Samgr 框架实现跨模块事件通知与控制反转

服务注册示例:

REGISTER_SYSTEM_ABILITY_BY_ID(CaptureService, SA_CAMERA_CAPTURE, true);

通过事件流解耦采集逻辑与后续处理,可灵活适配不同平台的性能需求。

系统时序与 Tick 匹配优化

LiteOS 默认 1ms Tick 配置对图像采集精度基本可满足,如需 30FPS 图像采集,建议采用定时器回调周期设定为 33ms。若平台对低功耗要求高,可考虑降低 Tick 到 10ms,同时通过异步中断补偿帧率抖动。

实测在 Hi3516DV300 + LiteOS 平台上,图像采集任务周期稳定在 32.9~33.3ms,帧丢失率 <0.5%,满足低速视频场景需求。

第 6 章 轻量化图像编码与视频预览路径构建

视频预览与编码能力是构建完整嵌入式相机系统的基础。在 HiSilicon 平台上,通过精简配置 H.264/MJPEG 编码器(VENC)模块,并配合图像缓存区管理机制,可以实现高效率的本地预览、图像抓拍与网络传输。

编码路径构建流程

完整编码链路如下:

Sensor → ISP → VI → VENC → 缓存 / 网络 / 存储

关键初始化步骤:

  1. VENC 模块初始化
HI_MPI_VENC_CreateChn(vencChn, &stVencChnAttr);HI_MPI_VENC_StartRecvPic(vencChn);

编码类型选择:

  • MJPEG:适合图像抓拍、简易视频回放,兼容性强
  • H.264/H.265:适合流式视频输出,压缩效率高
  1. 绑定视频输入通道
HI_MPI_SYS_Bind(&stSrcChn, &stDestChn);

绑定后,每帧图像将自动传入编码模块,无需手动传输。

  1. 编码帧获取与处理

在用户线程中可定期拉取编码帧:

HI_MPI_VENC_GetStream(vencChn, &stStream, TIMEOUT_MS);处理后释放:HI_MPI_VENC_ReleaseStream(vencChn, &stStream);

帧数据可送入 RTSP 推送模块、Wi-Fi 图传链路或本地文件存储。

BMP 图像预览输出(调试用)

在调试阶段,若需直接输出裸图至 PC,可采用如下方式获取一帧 YUV 图像并转换为 BMP:

  1. 获取图像帧:
HI_MPI_VI_GetChnFrame(pipe, chn, &stVideoFrame, 1000);
  1. 调用颜色空间转换工具,将 YUV420 转为 RGB
  2. 构建 BMP 文件头并写入 Frame Buffer 数据
  3. 通过串口或网络传输至 PC 端显示

该方法在早期图像调试、ISP 参数校正时极为实用,支持一帧帧对比参数调优效果。

实测在 Hi3518EV300 上采集 720p 图像并编码为 MJPEG 格式,编码帧率可稳定在 25fps,CPU 占用率维持在 22% 以下,极大满足轻量视觉设备对功耗与响应的双重需求。

第 7 章 基于 OpenAMP 实现主从核异构通信(适配双核 SoC)

对于具备异构双核架构(如 Cortex-A7 + Cortex-M4)的海思平台,在 LiteOS 或 OpenHarmony 系统中部署相机时,常常将图像采集任务运行于 M 核,而将控制逻辑或用户应用运行于 A 核。这种架构能有效分担图像处理负载,提高整体系统实时性与稳定性。OpenAMP 是当前主流的异构核间通信框架,适用于构建高效、低延迟的 A/M 核图像数据交互通道。

典型双核部署结构

以 Hi3516DV500 为例,系统架构如下:

M4 核(LiteOS):- 控制 Sensor/ISP 初始化- 图像采集与 ISP 数据输出- 封装图像帧数据A7 核(OpenHarmony):- 控制 UI、AI 模型调用、视频编码- 通过 OpenAMP 接收图像帧、处理控制指令

该结构实现了数据与控制的分离,提高了关键路径的响应速度。

OpenAMP 通信通道设计

OpenAMP 基于 RPMsg + VirtIO 构建,支持双向通信和事件触发。基本通信流程包括:

  1. 创建共享内存池
    在 DDR 中预留一定区域供 A 核和 M 核共享访问,通常为多帧 YUV 数据缓存。

  2. 建立 VirtQueue 与回调注册

    M 核侧初始化:

    OPENAMP_RPMSG_Init(...);RPMSG_Create_Ept(..., Rx_Callback, NULL);

    A 核侧注册服务端点并响应事件,支持多帧同步。

  3. 图像帧传输与同步机制

    每次采集一帧后,M 核将地址信息通过 RPMsg 发送至 A 核。A 核在应用层通过回调或轮询方式获取指针地址,执行后续编码、推理或网络发送。

  4. 控制命令反向传输

    A 核可实时发送控制命令(如帧率调整、ISP 重新初始化),通过 RPMsg 传递至 M 核,由 M 核在 LiteOS 层执行对应硬件操作。

实测表明,在 720p 图像以 15fps 速率传输场景下,OpenAMP 通信延迟小于 3ms,满足边缘视觉协同应用需求。

第 8 章 典型应用落地案例与资源优化建议

在多个智能终端产品中,基于 LiteOS/OpenHarmony 的海思轻量相机系统已形成可复用工程体系。以下总结部分落地场景与核心工程优化经验,供开发参考。

应用场景示例

  1. 智能门铃 / 视频对讲系统

    • 平台:Hi3518EV300 + LiteOS
    • 功能:PIR 唤醒 + 图像抓拍 + MJPEG 推送
    • 特点:启动时间 <200ms,设备功耗 <300mW
  2. 嵌入式人脸识别闸机模块

    • 平台:Hi3516DV300 + OpenHarmony
    • 功能:双 Sensor 接入 + ISP + 人脸模型推理 + 串口输出
    • 特点:图片处理延迟 95%
  3. 边缘安防节点

    • 平台:Hi3516DV500 双核架构
    • 功能:主核跑 OpenHarmony 图像处理,副核采集控制
    • 特点:OpenAMP 通信稳定,内存复用率高

工程资源优化建议

  • 内存优化:图像 Buffer 使用静态分配 + 单帧双缓区结构,减少动态分配开销
  • 功耗控制:通过 DVFS 降频 + Sensor 休眠控制,在空闲时段降低整体功耗
  • 帧率调节:在无视频流或 AI 请求时,自动降低 Sensor 输出帧率(如 25fps→5fps),节省带宽和功耗
  • 模块分离部署:图像采集与 UI 展示分布在不同核心或进程,避免界面卡顿或丢帧现象

通过上述优化方案,海思平台的 LiteOS/OpenHarmony 轻量相机系统可在物联网终端、安全监控、嵌入式 AI 感知等多领域实现稳定部署和规模化应用。

个人简介
在这里插入图片描述
作者简介:全栈研发,具备端到端系统落地能力,专注人工智能领域。
个人主页:观熵
个人邮箱:privatexxxx@163.com
座右铭:愿科技之光,不止照亮智能,也照亮人心!

专栏导航

观熵系列专栏导航:
具身智能:具身智能
国产 NPU × Android 推理优化:本专栏系统解析 Android 平台国产 AI 芯片实战路径,涵盖 NPU×NNAPI 接入、异构调度、模型缓存、推理精度、动态加载与多模型并发等关键技术,聚焦工程可落地的推理优化策略,适用于边缘 AI 开发者与系统架构师。
DeepSeek国内各行业私有化部署系列:国产大模型私有化部署解决方案
智能终端Ai探索与创新实践:深入探索 智能终端系统的硬件生态和前沿 AI 能力的深度融合!本专栏聚焦 Transformer、大模型、多模态等最新 AI 技术在 智能终端的应用,结合丰富的实战案例和性能优化策略,助力 智能终端开发者掌握国产旗舰 AI 引擎的核心技术,解锁创新应用场景。
企业级 SaaS 架构与工程实战全流程:系统性掌握从零构建、架构演进、业务模型、部署运维、安全治理到产品商业化的全流程实战能力
GitHub开源项目实战:分享GitHub上优秀开源项目,探讨实战应用与优化策略。
大模型高阶优化技术专题
AI前沿探索:从大模型进化、多模态交互、AIGC内容生成,到AI在行业中的落地应用,我们将深入剖析最前沿的AI技术,分享实用的开发经验,并探讨AI未来的发展趋势
AI开源框架实战:面向 AI 工程师的大模型框架实战指南,覆盖训练、推理、部署与评估的全链路最佳实践
计算机视觉:聚焦计算机视觉前沿技术,涵盖图像识别、目标检测、自动驾驶、医疗影像等地方的最新进展和应用案例
国产大模型部署实战:持续更新的国产开源大模型部署实战教程,覆盖从 模型选型 → 环境配置 → 本地推理 → API封装 → 高性能部署 → 多模型管理 的完整全流程
Agentic AI架构实战全流程:一站式掌握 Agentic AI 架构构建核心路径:从协议到调度,从推理到执行,完整复刻企业级多智能体系统落地方案!
云原生应用托管与大模型融合实战指南
智能数据挖掘工程实践
Kubernetes × AI工程实战
TensorFlow 全栈实战:从建模到部署:覆盖模型构建、训练优化、跨平台部署与工程交付,帮助开发者掌握从原型到上线的完整 AI 开发流程
PyTorch 全栈实战专栏: PyTorch 框架的全栈实战应用,涵盖从模型训练、优化、部署到维护的完整流程
深入理解 TensorRT:深入解析 TensorRT 的核心机制与部署实践,助力构建高性能 AI 推理系统
Megatron-LM 实战笔记:聚焦于 Megatron-LM 框架的实战应用,涵盖从预训练、微调到部署的全流程
AI Agent:系统学习并亲手构建一个完整的 AI Agent 系统,从基础理论、算法实战、框架应用,到私有部署、多端集成
DeepSeek 实战与解析:聚焦 DeepSeek 系列模型原理解析与实战应用,涵盖部署、推理、微调与多场景集成,助你高效上手国产大模型
端侧大模型:聚焦大模型在移动设备上的部署与优化,探索端侧智能的实现路径
行业大模型 · 数据全流程指南:大模型预训练数据的设计、采集、清洗与合规治理,聚焦行业场景,从需求定义到数据闭环,帮助您构建专属的智能数据基座
机器人研发全栈进阶指南:从ROS到AI智能控制:机器人系统架构、感知建图、路径规划、控制系统、AI智能决策、系统集成等核心能力模块
人工智能下的网络安全:通过实战案例和系统化方法,帮助开发者和安全工程师识别风险、构建防御机制,确保 AI 系统的稳定与安全
智能 DevOps 工厂:AI 驱动的持续交付实践:构建以 AI 为核心的智能 DevOps 平台,涵盖从 CI/CD 流水线、AIOps、MLOps 到 DevSecOps 的全流程实践。
C++学习笔记?:聚焦于现代 C++ 编程的核心概念与实践,涵盖 STL 源码剖析、内存管理、模板元编程等关键技术
AI × Quant 系统化落地实战:从数据、策略到实盘,打造全栈智能量化交易系统
大模型运营专家的Prompt修炼之路:本专栏聚焦开发 / 测试人员的实际转型路径,基于 OpenAI、DeepSeek、抖音等真实资料,拆解 从入门到专业落地的关键主题,涵盖 Prompt 编写范式、结构输出控制、模型行为评估、系统接入与 DevOps 管理。每一篇都不讲概念空话,只做实战经验沉淀,让你一步步成为真正的模型运营专家。


🌟 如果本文对你有帮助,欢迎三连支持!

👍 点个赞,给我一些反馈动力
⭐ 收藏起来,方便之后复习查阅
🔔 关注我,后续还有更多实战内容持续更新