基于百度AI实现文字和图像敏感内容审核

前言

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

项目准备

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

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

image

2.完成个人或企业认证

image

3.进入控制台总览

image

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

image

image

5.应用列表

image

项目搭建与配置

1.创建Winform客户端

  • 项目结构

image

  • 文本审核窗体设计

image

  • 图像审核窗体设计

image

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)
                  {
                      rtbTxtAuditResult.ForeColor = Color.Green;
                      rtbTxtAuditResult.Text = "文字审核通过!";
                  }
                  else
                  {
                      rtbTxtAuditResult.ForeColor = Color.Red;
                      rtbTxtAuditResult.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

演示调用

  • 文字审核

    image

  • 图像审核

    image

源码获取

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你解答这个问题。 首先,你需要在百度AI平台上申请图像审核的API Key和Secret Key。 然后在Python中安装百度AI的Python SDK: ``` pip install baidu-aip ``` 接着,你需要使用Tkinter编写一个GUI界面,其中包括一个选择文件的按钮和一个文本框,用于显示审核结果。 当用户点击选择文件按钮后,可以使用文件对话框选择要审核的图片文件。 最后,你需要编写Python代码,将选中的图片文件上传到百度AI图像审核API中进行审核,并将审核结果显示在文本框中。 以下是一个示例代码: ```python from tkinter import * from tkinter import filedialog from aip import AipContentCensor # 申请的API Key和Secret Key APP_ID = 'your_app_id' API_KEY = 'your_api_key' SECRET_KEY = 'your_secret_key' # 创建AipContentCensor客户端 client = AipContentCensor(APP_ID, API_KEY, SECRET_KEY) # Tkinter GUI界面 root = Tk() # 选择文件按钮回调函数 def select_file(): # 打开文件对话框 file_path = filedialog.askopenfilename() # 将文件上传到百度AI图像审核API中进行审核 with open(file_path, 'rb') as f: image = f.read() result = client.imageCensorUserDefined(image) # 将审核结果显示在文本框中 text.delete('1.0', END) text.insert(END, result) # 创建选择文件按钮 button = Button(root, text='选择文件', command=select_file) button.pack() # 创建文本框 text = Text(root) text.pack() root.mainloop() ``` 注意:这只是一个示例代码,你需要根据自己的需求进行修改和完善。同时,由于百度AI图像审核API是收费的,所以在实际使用时需要根据自己的情况进行选择和付费。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值