在这里插入图片描述

前言

在自动驾驶领域,摄像头采集的视频数据常包含行人面部、车牌、道路标识等敏感信息。随着《个人信息保护法》(PIPL)和GDPR等法规的实施,数据脱敏成为自动驾驶感知系统开发与测试中不可或缺的一环。传统的CPU软件脱敏方式在实时性和功耗上难以满足车载系统要求,因此需要充分利用GPU、VIC、NVENC、PVA等硬件引擎,实现高效、低延迟的图像隐私保护。本文通过NVIDIA实战营的学习,总结对不同硬件引擎的脱敏方案进行分析与对比,为自动驾驶场景下的安全合规数据处理提供实现参考。

-🫵 视频地址

数据脱敏简介

  • 🚗什么是脱敏?
    去除辅助驾驶系统采集到的视频图像敏感信息(车牌、人脸),使得上传的数据符合法律要求。

  • 例如:
    行人面部、衣着 → 属于个人生物特征
    车牌号 → 属于个人可识别信息

类别 示例 说明
人脸信息 行人、骑行者面部 高风险隐私信息
车牌信息 前后车牌、摩托车牌 可追溯车主身份
车身标志 品牌Logo、公司标识 可能暴露数据采集方
地理信息 GPS坐标、街道标志 可推测采集地点
建筑标识 门牌号、广告牌 暗含位置信息

未经脱敏上传或使用,可能构成违法❗。

总结来说:🔒
“让车学会开车,但不让它泄露个人隐私。”

法规与合规要求

主要相关法规有:

  • 欧盟GDPR《通用数据保护条例》
  • 加州CCPA《消费者隐私法案》
  • 中国《个人信息保护法》/《数据安全法》/《汽车数据通用要求》

数据脱敏的一般处理方法

  • 数据遮盖(Masking):用符号替换部分敏感内容
  • 数据扰动(Perturbation):加噪、随机化或打乱原值
  • 数据替换(Substitution):用伪造或映射的值替换原数据
  • 生成式替代:随着AIGC的兴起,个人认为这是数据脱敏的又一种方式

例如在人脸/车牌保护中可使用:模糊(高斯模糊、均值模糊、自定义滤波等) or 遮挡(叠加矩形框、马赛克)实现脱敏处理。

不同硬件引擎脱敏方案的实现比较

GPU:基于CUDA Kernel实现ROI区域遮挡/模糊处理

在这里插入图片描述

  • 首先从Camera获取视频流到ISP,然后分成两路:一路到 CUDA Inference,一般会是在 GPU 上进行的图像感知等任务,例如输出 Bounding Box;另一路则把 Image Data 送入 Cameras Data Anonymization(CUDA)模块,进行像素级的处理,例如高斯模糊等。
  • 该方案优点就是非常灵活,但是局限性也很明显:GPU资源在辅助系统中较为稀缺,各类感知和推理任务都需要依赖GPU运算能力。脱敏处理通常作为后处理环节,若直接部署在GPU上运行可能会影响核心任务的性能表现。
    因此在选择基于GPU的脱敏方案时,必须对整体GPU资源的使用情况进行严谨评估,确保脱敏任务不会挤占核心任务所需的计算资源。

基于VIC进行脱敏

在这里插入图片描述

VIC方案1:不对原图处理

  • 假设有一个绿色的原图,存在两个需要脱敏的敏感区域(蓝色区域),此时可以将3个区域图像作为输入,设置一个目标区域(size和原图一样大),再使用VIC将这三个图像合并到一张图上,如图所示。即同时对多个ROI进行Overlay,对原图不影响。
    在这里插入图片描述

VIC方案2:直接修改原图

  • 区别于方案1,每次只对一个 ROI进行处理,并没有对原图的拷贝。如下图中第一幅图所示。再处理完第一个脱敏区域之后,在此基础上继续Overlay其他区域,如第二幅图所示。
  • 可以连续提交错地的ROI后等待VIC完成后续处理
  • 这种操作方式存在一个限制条件:当原图分辨率比较大(如3840×2160)效果比较限显著。在这里插入图片描述

VIC方案3:直接在原图上叠加黑色块遮挡

  • 可以使用NvMedia2DSetClipRect 接口在原图上覆盖黑色块

在这里插入图片描述

  • 同样会修改原图
    在这里插入图片描述

不同方案对比

  • 方案脱敏延迟时间对比
    在这里插入图片描述
  • VIC使用率对比
    方案1:9.55%
    方案2:0.08%
    在这里插入图片描述

基于NVENC脱敏

  • ROI需要像素上对齐
  • 脱敏流程:
    • 在H.264初始化阶段启用脱敏标志位
    • 在编码每一帧前设置该帧对应的需要脱敏ROI信息(ROI的位置数据)
    • 具体编程指南参考DOS6.0.10.0及以后版本的SDKDeveloperGuide
      在这里插入图片描述

基于PVA脱敏

  • PVA(可编程视觉加速器),可专门负责计算机视觉优化。
  • 2个VPU可以并行处理多个任务,灵活度也很高。但是PVA算子需要自己开发。

在这里插入图片描述

需要脱敏定制 不需要脱敏定制
不保留原图 VIC方案2; PVA;CUDA NVENC (H.264);VIC方案3
保留原图 VIC方案1 NVENC(H.264);VIC方案1

总结

对比项 GPU VIC NVENC PVA
脱敏方式 直接基于 CUDA/OpenCV 进行区域模糊、马赛克、遮挡 在帧合成阶段叠加 mask 或矩形填充(YUV域操作) 在编码前指定 ROI 区域掩码或通过 API 调整 ROI 编码质量(使敏感区模糊) 通过图像梯度、边缘特征定位敏感区域边界并输出掩码,交由 VIC/GPU 处理
处理阶段 后处理阶段(模型推理后) 图像流转换阶段(预编码或显示前) 视频编码阶段(压缩时处理) 视觉预处理阶段(检测阶段前)
延迟性能 延迟中等(需显存读写) 延迟极低(硬件流水线完成) 极低(在编码流水线中融合) 极低(用于前端特征检测)
适用任务 精细化模糊、纹理替换、基于模型的智能遮挡 简单矩形马赛克、全帧遮盖 实时视频流脱敏(边缘推理端传输前) 辅助检测敏感目标(如人脸、车牌)
可编程性 高(CUDA核编程) 低(API限制) 低(SDK接口有限) 中(可配置卷积、梯度核)
吞吐性能 高并行,适合批量帧或高分辨率 极快,适合低复杂度像素操作 与编码绑定,几乎无额外开销 极快,轻量预处理
典型实现方式 使用 CUDA/OpenCV + TensorRT 输出结果 + 模糊 mask 叠加 调用 NvMedia2DSetClipRectVIC 硬件接口实现 ROI 区域填充 通过 NVENC ROI map 降低敏感区域质量 在 PVA 上运行 Sobel/角点检测算法辅助确定敏感区
典型应用节点 推理后后处理节点 视频管线的 ISP → VIC → Encoder 阶段 视频输出流(编码阶段) 视觉感知前端(检测阶段)
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐