前言

百度AI是指百度公司的人工智能技术全称。它采用深度学习技术,包括自然语言处理、语音识别、计算机视觉、知识图谱等,可应用于各个领域如互联网、医疗、金融、教育、汽车、物流等。百度AI的发展将帮助人类更好地理解世界和提高生活品质,接下来就通过一个小案例演示实现百度AI在文字和图像敏感审核运用。

项目准备

1.注册并登录百度智能云账号

官方地址:https://cloud.baidu.com/

2.完成个人或企业认证

3.进入控制台总览

4创建应用,申请BaiduAI官方的授权KEY

5.应用列表

项目搭建与配置

1.创建Winform客户端

  • 项目结构

  • 文本审核窗体设计

  • 图像审核窗体设计

2.Nuget安装BaiduAI包

NuGet\Install-Package Baidu.AI -Version 4.15.13

3.添加应用Key配置

文件:BaseConfig.json配置申请的应用信息

{
"BaiduAI": {
"AppId": "xxxx",//配置自己申请的
"ApiKey": "xxxx",//配置自己申请的
"SecretKey": "xxxx"//配置自己申请的
}
}

项目代码实现

贴出实现功能的核心代码,整个项目的源码文末尾提供获取方式。

  • BaiduAI帮助类

    namespace BaiduAIAuditClient.Helper
    {
    /// <summary>
    /// 百度AI识别帮助类
    /// </summary>
    public class BaiduAI
    {
    public static string APP_ID = RamData.Instance.BaseConfig.BaiduAI.AppId;
    public static string API_KEY = RamData.Instance.BaseConfig.BaiduAI.ApiKey;
    public static string SECRET_KEY = RamData.Instance.BaseConfig.BaiduAI.SecretKey ; /// <summary>
    /// 检测文本
    /// </summary>
    /// <param name="text"></param>
    /// <returns></returns>
    public static BaiDuResult CheckedText(string text)
    {
    //判断是否审核为空文本
    if (string.IsNullOrEmpty(text)) { return new BaiDuResult(); }
    //初始化
    var client = new Baidu.Aip.ContentCensor.TextCensor(API_KEY, SECRET_KEY);
    client.Timeout = 60000; // 超时,毫秒
    var result = client.TextCensorUserDefined(text);
    var baiduResult = new BaiDuResult();
    if (result != null)
    {
    if (result["conclusionType"] == null || result["conclusionType"].ToString() == "1")
    {
    baiduResult.IsSuccess = true;
    }
    else
    {
    baiduResult.IsSuccess = false;
    if (result["data"][0]["msg"] != null)
    {
    baiduResult.Messge = result["data"][0]["msg"].ToString() + ";";
    }
    if (result["data"][0]["hits"][0]["words"] != null)
    {
    baiduResult.Messge += "\r\n敏感词:\r\n" + result["data"][0]["hits"][0]["words"].ToString() + "。";
    }
    }
    } return baiduResult;
    } /// <summary>
    /// 检测图片
    /// </summary>
    /// <param name="text"></param>
    /// <returns></returns>
    public static BaiDuResult CheckedImage(byte[] image)
    {
    //判断是够为空
    if (image == null || image.Length == 0) { return new BaiDuResult(); }
    //初始化
    var client = new Baidu.Aip.ContentCensor.ImageCensor(API_KEY, SECRET_KEY);
    client.Timeout = 60000; // 超时,毫秒
    var result = client.UserDefined(image); var baiduResult = new BaiDuResult();
    if (result["conclusionType"].ToString() == "1")
    {
    baiduResult.IsSuccess = true;
    }
    else
    {
    baiduResult.IsSuccess = false;
    if (result["data"][0]["msg"] != null)
    {
    baiduResult.Messge = result["data"][0]["msg"].ToString() + ";";
    }
    }
    return baiduResult;
    }
    }
    /// <summary>
    /// 自定义返回实体
    /// </summary>
    public class BaiDuResult
    {
    /// <summary>
    /// 是否通过
    /// </summary>
    public bool IsSuccess { get; set; } = true; /// <summary>
    /// 消息
    /// </summary>
    public string Messge { get; set; }
    } }
  • 文本审核调用

       #region 文本审核
    /// <summary>
    /// 审核文本
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void btAuditTxt_Click(object sender, EventArgs e)
    {
    try
    {
    if (string.IsNullOrEmpty(rtbAuditContent.Text))
    {
    MessageBox.Show("审核文本不能为空!","提示",MessageBoxButtons.OK);
    return;
    } BaiDuResult baiDuResult = BaiduAI.CheckedText(rtbAuditContent.Text);
    if (baiDuResult.IsSuccess)
    {
    lbTxtAuditResult.ForeColor = Color.Green;
    lbTxtAuditResult.Text = "文字审核通过!";
    }
    else
    {
    lbTxtAuditResult.ForeColor = Color.Red;
    lbTxtAuditResult.Text = baiDuResult.Messge;
    } }
    catch (Exception ex)
    {
    _logger.Error(ex.Message);
    }
    } #endregion
  • 图片审核调用

            #region 图片审核
    /// <summary>
    /// 浏览选择图片
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void btBrowse_Click(object sender, EventArgs e)
    {
    try
    {
    //创建对象
    OpenFileDialog ofg = new OpenFileDialog();
    //设置默认打开路径,桌面
    ofg.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
    //设置打开标题、后缀
    ofg.Title = "请选择审核图片";
    ofg.Filter = "Png 图片|*.png|Jpg 图片|*.jpg|Jpeg 图片|*.jpeg|Bmp 图片|*.bmp|Gif 图片|*.gif";
    if (ofg.ShowDialog() == DialogResult.OK)
    {
    //得到打开的文件路径(包括文件名)
    txtImagePath.Text = ofg.FileName.ToString();
    Image img = Image.FromFile(ofg.FileName.ToString());
    this.picAuditImage.Image = img;
    }
    }
    catch (Exception ex)
    {
    _logger.Error(ex.Message);
    } } /// <summary>
    /// 审核图片
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void btAuditImage_Click(object sender, EventArgs e)
    {
    try
    {
    var ImageBytes = ImageHelper.ImageToBytes(txtImagePath.Text);
    if (ImageBytes==null)
    {
    lbImageAuditResult.ForeColor = Color.Red;
    lbImageAuditResult.Text = "确认选择的文件是否正确";
    }
    BaiDuResult baiDuResult = BaiduAI.CheckedImage(ImageBytes);
    if (baiDuResult.IsSuccess)
    {
    lbImageAuditResult.ForeColor =Color.Green;
    lbImageAuditResult.Text = "图片审核通过!";
    }
    else
    {
    lbImageAuditResult.ForeColor = Color.Red;
    lbImageAuditResult.Text = baiDuResult.Messge;
    } }
    catch (Exception ex)
    {
    _logger.Error(ex.Message);
    }
    } #endregion

演示调用

  • 文字审核

  • 图像审核

源码获取

关注公众号,后台回复关键字:BaiduAI文字和图像敏感审核

基于百度AI实现文字和图像敏感内容审核的更多相关文章

  1. python基于百度AI开发文字识别

    很多场景都会用到文字识别,比如app或者网站里都会上传身份证等证件以及财务系统识别报销证件等等 第一步,你需要去百度AI里去注册一个账号,然后新建一个文字识别的应用 然后你将得到一个API Key 和 ...

  2. 基于百度AI开放平台的人脸识别及语音合成

    基于百度AI的人脸识别及语音合成课题 课题需求 (1)人脸识别 在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄.性别.颜 ...

  3. Python人工智能-基于百度AI接口

    参考百度AI官网:http://ai.baidu.com/ 准备工作: 支持Python版本:2.7.+ ,3.+ 安装使用Python SDK有如下方式 >如果已经安装了pip,执行 pip ...

  4. 基于百度ai,图灵机器人,Flask 实现的网站语音智能问答

    准备以下模块中的函数 from aip import AipSpeech import time import os import requests APP_ID = '15420654' API_K ...

  5. 基于百度AI人脸识别技术的Demo

    编写demo之前首先浏览官方API:http://ai.baidu.com/docs#/Face-API/top 下面是源码: package com.examsafety.test; import ...

  6. 基于百度AI实现 车牌识别

    前言 目前百度的AI接口相对完善,对于文字识别类的操作还需要开发者一一去尝试,去评估这效果到底是怎么的. 文字识别的接口相对简单,官方提供的SDK也集成很好,笔者只是在这上面做了一些前期性的功能数据校 ...

  7. 20-调用百度AI的文字识别

    本来准备自己写识别的,貌似现在能力不足,直接偷懒用百度的api吧 from aip import AipOcr """ 你的 APPID AK SK "&quo ...

  8. 基于Flask和百度AI实现与机器人对话

    实现对话机器人主要有个步骤 : 一.前端收集语音传入后端 二.后端基于百度AI接口进行语音识别,转换成文字 三.对文字进行自定义验证或通过图灵端口进行处理,生成回复内容 四.将文字通过百度AI接口合成 ...

  9. Python通过百度Ai识别图片中的文字

    版本:python3.7 工作中有需要识别图片中的汗字,查看了半天大神们的博客,但没找到完全可以用的源码,经过自己的实践,以下源码可以实现: 创建应用 首先你需要登录百度AI,选择文字识别,创建一个应 ...

  10. C# 10分钟完成百度图片提取文字(文字识别)——入门篇

    现在图片文字识别已经很成熟了,比如qq长按图片,点击图片识别就可以识别图片的文字,将不认识的.文字数量大的.或者不能赋值的值进行二次可复制功能. 我们现在就基于百度Ai开放平台进行个人文字识别,dem ...

随机推荐

  1. Java关键字break、continue 、return的区别,嵌套循环,数组的概念以及数组案例

    一.关键字 break.continue .return的区别 1.break : 用于在switch..case中放置语句块穿透, ​ 用于跳出循环 // 从1-100 遇到7的倍数 break f ...

  2. Vue——前端发展史、Vue介绍和使用、插值语法、文本指令、事件指令

    前端的发展史 # 1 HTML(5).CSS(3).JavaScript(ES5.ES6):编写一个个的页面 -> 给后端(PHP.Python.Go.Java) -> 后端嵌入模板语法 ...

  3. 【网络知识】FTP主被动模式介绍及抓包分析

    一.FTP是什么 FTP,即文件传输协议(File Transfer Protocol,FTP),基于该协议客户端与服务端可以实现共享文件.上传文件.下载文件. FTP 基于TCP协议生成两个连接,一 ...

  4. CKS 考试题整理 (07)-RBAC - RoleBinding

    Context 绑定到 Pod 的 ServiceAccount 的 Role 授予过度宽松的权限,完成以下项目以减少权限集. Task 一个名为 web-pod 的现有 Pod 已在 namespa ...

  5. 有哪些ASIC加速技术可以实现低功耗运行?

    目录 文章主题: 10. 有哪些ASIC加速技术可以实现低功耗运行? 背景介绍:随着移动设备.物联网.云计算等应用场景的不断增长,功耗成为了一个日益重要的技术问题.为了在移动设备上实现更长时间的运行, ...

  6. 脱发秘籍:前端Chrome调试技巧汇总

    Chrome浏览器调试工具的核心功能: 注:本文测试.截图均为Edge浏览器(内核是Chromium),浏览器内核可了解<有哪些浏览器/内核?> 00.基础操作汇总 操作类型 快捷键/说明 ...

  7. CF1654E Arithmetic Operations 题解

    摘自我的洛谷博客. 题目让我们求改变数字的最少次数,那我们转化一下, 求可以保留最多的数字个数 \(cnt\),再用 \(n\) 减一下就行,即 \(res = n - cnt\). 我们先考虑两种暴 ...

  8. 攻防世界web高手进阶区-ics-06

    今天借着这道web题顺便学会了利用burpsuite进行爆破 先摆题目 打开题目环境,发现是一个工程管理系统,根据题目找到报表中心,点进去 好像没什么收获,F12看一下,发现id =1,试了一下id= ...

  9. 包管理工具npm和Yarn的区别,我们该如何选择?

    好家伙,学习新工具    1.为什么我们需要包管理器? 关于npm我们已经知道了,这是我们项目的包管理器, 我们现在用的无比顺手的工具,都是在无数的竞争中杀出来的,他们淘汰了无数的产品   首先,倘若 ...

  10. C语言循环坑 -- continue的坑

    文章目录 前言 一.continue语法 1.continue的作用 2.语法 二.大坑项目 题目 分析 正确写法 三.进坑调试 第一种 第二种 总结 前言 在使用continue和break时,会出 ...