cover_image

基于OPEN NSFW的UGC图⽚合规治理体系设计与实践

邓力 微鲤技术团队
2025年04月07日 14:10

    

01

业务背景


      某业务的UGC(⽤户⽣成内容)平台中,⽬前历史图⽚没有过内容安全,历史海量数据(1亿+规模)存在隐性违规⻛险。当⽤户访问时,会被检测到,导致域名被封⻛险。因此需要对历史图⽚进⾏扫描,删除违规图⽚。

⽬前有两种⽅案:

  • 使⽤云端商业API。

  • 构建本地化内容安全检测体系。

       云端商业API⽅案存在域名封禁⻛险且经济成本过⾼(按量计费模式预估成本超20万元/亿张)。因此本⽅案通过构建本地化内容安全检测体系,实现合规治理与⻛险控制的平衡。

                                       


      02      

Open NSFW解析


       Open NSFW基于ResNet-50架构,使⽤Caffe框架训练,输⼊为224x224的RGB图像,输出0(安全)到1(不适宜)的概率值。

模型特性:

图片

优势:

  • 轻量化:模型⼤⼩仅约90MB,推理速度在GPU上可达50ms/张

  • 场景适配:针对⽹络图⽚优化,对模糊、低分辨率图⽚有⼀定鲁棒性

  • 开源透明:允许开发者⾃⾏调整阈值(默认0.8)和⼆次训练


局限性:

  • 不⽀持视频流实时分析

  • 不能识别⽂字

                             


03

 案实施


⼯程化改进:

  • 框架迁:将Caffe模型转换为TensorFlow SavedModel格式,实现跨平台部署能⼒,原始Caffe模型:https://github.com/yahoo/open_nsfw

  • 预处理优采用双线性插值,提升低质量图像识别准确率

    / --------------------- 图像预处理计算图构建 ---------------------
        // 步骤1: 解码JPEG图像(原始字节 -> UINT8张量)
        // decodeJpeg输出形状 [height, width, channels], channels=3(RGB)
        Output<UInt8> decodedImage = b.decodeJpeg(
            b.constant("input_jpg_bytes", imageBytes),  // 输入JPEG字节流
            3  // 指定输出通道数为3(RGB)
        );

        // 步骤2: 类型转换(UINT8 -> FLOAT,便于后续数值计算)
        Output<Float> floatImage = b.cast(decodedImage, Float.class);

        // 步骤3: 添加批次维度(模型需要batch维度,即使只有一个图像)
        // expandDims在第0维插入,形状变为 [1, height, width, 3]
        Output<Float> batchedImage = b.expandDims(
            floatImage,
            b.constant("batch_dim", 0)  // 在维度0添加批次
        );

        // 步骤4: 双线性插值调整图像尺寸至224x224
        // resizeBilinear输出形状 [1, H, W, 3]
        Output<Float> resizedImage = b.resizeBilinear(
            batchedImage,
            b.constant("target_size", new int[]{H, W})  // 目标尺寸[H,W]顺序
        );

        // 步骤5: 数据归一化(减去训练集均值)
        // sub操作广播mean值到所有像素: (resizedImage - mean)
        Output<Float> meanCentered = b.sub(
            resizedImage,
            b.constant("mean_value", mean)
        );

        // 步骤6: 缩放数据(若训练时使用scale,此处可调整数值范围)
        // div操作广播scale值: (meanCentered / scale)
        Output<Float> normalizedOutput = b.div(
            meanCentered,
            b.constant("scale_factor", scale)
        );


  • 服务化:构建微服务,docker部署,支持k8s动态扩缩容,提高QPS


上线后效果

  • 对全量数据进⾏扫描(1亿+规模),对违规图⽚进⾏了删除

  • 定时对增量图⽚进⾏扫描,满⾜了合规需求

                                       

04

 后续升级


1、多模态融合检测:

  • 视觉增强:集成YOLOv11实现敏感部位定位(ROI聚焦检测)

  • ⽂本识别:采⽤PaddleOCR提取图⽚内⽂字,构建敏感词库正则匹配

  • 对抗样本防御:部署PGD对抗训练模型,抵御98%的⾊情图⽚变体


2、实时视频流分析:

研发基于帧采样+关键帧检测的混合架构

3、边缘计算部署:

研发ARM架构优化版本,⽀持移动端本地检测

                                       

05

总结


      本⽅案验证了开源模型在企业级内容安全场景的可⾏性,为UGC平台合规治理提供了可复⽤的技术范式。通过持续优化多模态检测能⼒与⼯程化效能,构建起兼顾安全性与经济性的智能审核体系。


继续滑动看下一个
微鲤技术团队
向上滑动看下一个