首页 > 其他分享 >基于百度AI实现文字和图像敏感内容审核

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

时间:2023-09-19 14:55:40浏览次数:37  
标签:BaiduAI AI Text result 图像 审核 baiduResult public 百度

前言

百度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)
                    {
                        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
    

演示调用

  • 文字审核

    image

  • 图像审核

    image

源码获取

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

标签:BaiduAI,AI,Text,result,图像,审核,baiduResult,public,百度
From: https://www.cnblogs.com/wml-it/p/17714619.html

相关文章

  • 解决安装wsl时候报错的问题: WslRegisterDistribution failed with error: 0x800701bc
    在Win10或者Win11上安装wsl的时候,可能会遇到如下的错误信息:Error:0x800701bcWSL2??????????????????https://aka.ms/wsl2kernelPressanykeytocontinue...  这个是由于系统内置的WSL内核过低导致的,可以到如下的网址下载升级包:https://learn.microsoft.com/zh-cn......
  • Failed to determine a suitable driver class(maven不编译配置文件)
    现象:启动报错 问题排查与处理:1:根据错误翻译,是datasource没有一些配置属性。不过检查下来写法没有啥问题 2:注意启动端口是不是生效了。发现是配置文件没起作用 3:maven添加resources<resources><resource><directory>src/main/java</dir......
  • AI绘画:SD绘画变现及实操过程-斗罗大陆-唐雅-高清壁纸
    资源内容介绍:大家好,我是小梦,最近一直研究AI绘画领域,总结了一些变现的方式,需要的可以来这里阅读下:AI绘画:无私分享我的AI绘画变现之路,普通人可实操可模仿都是自己经过实操,总结出来的,内容非常的干货,没有任何套路。不久前,耗费了半个月的时间给大家整理分享了StableDiffusion的全......
  • 教你用API插件开发一个AI快速处理图片小助手
    本文分享自华为云社区《【案例教学】华为云API图引擎服务GES的便捷性—AI帮助快速处理图片小助手》,作者:华为云PaaS服务小智。调用云服务、API、SDK、调试、查看……“我”都行,一起来体验用HuaweiCloudAPI实现AI快速处理图片。1IntelliJIDEA之API插件介绍API插件支持 VSCod......
  • 教你用API插件开发一个AI快速处理图片小助手
    本文分享自华为云社区《【案例教学】华为云API图引擎服务GES的便捷性—AI帮助快速处理图片小助手》,作者:华为云PaaS服务小智。调用云服务、API、SDK、调试、查看……“我”都行,一起来体验用HuaweiCloudAPI实现AI快速处理图片。1IntelliJIDEA之API插件介绍API插件支持VS......
  • BCB图像处理总结
    近期遇到了一下图像处理的问题,特总结一下 BCB截图一、画布(Canvas)Graphics::TBitmap*bmp=newGraphics::TBitmap;TCanvas*canvas=newTCanvas;HDChdc=GetDC(NULL);canvas->Handle=hdc;bmp->Width=Screen->Width;bmp->Height=Screen->Height;bmp->Canvas->CopyRect(Rect......
  • Xcode 15 正式版发布(百度网盘下载) - Apple 平台 IDE
    发布日期:September18,2023,北京时间9月19日凌晨Xcode15Release(15A240d)-Apple平台IDEIDEforiOS/iPadOS/macOS/watchOS/tvOS/visonOS请访问原文链接:https://sysin.org/blog/apple-xcode-15/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgvisonOS支......
  • AI伴侣下载
    总结现在网页上很多下载的AI伴侣下载下来都会有些问题或者不能用,如下链接下载的AI伴侣亲测可以使用!(连接后会提示更新,博主没有选择更新,如有需要也可以更新)[https://mit-ai2-companion.en.uptodown.com/android/download]()如果以上链接无法访问,也可以使用博主上传的https://wwt......
  • OpenStack(Train版)-部署keystone(controller节点)
    三、部署keystone(controller节点)3.1.1、简介3.1.1.1、作用1.用户管理:验证用户身份信息合法性2.认证服务:提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库。3.Keystone是Openstack用来进行身份验证(authN)及高级授权(authZ)的身份识别服务,目前支持基......
  • ArcPy填补大量栅格图像的NoData
      本文介绍基于Python中ArcPy模块,对大量栅格遥感影像文件批量进行无效值(NoData值)填充的方法。  在处理栅格图像文件时,我们经常会遇到图像中存在有无效值(即NoData值)的情况。如下图所示,这里有一个矢量面要素图层和该矢量图层范围对应的一景栅格图像;可以看到,由于该栅格图像存在无......