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

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实现文字和图像敏感内容审核的更多相关文章
- python基于百度AI开发文字识别
很多场景都会用到文字识别,比如app或者网站里都会上传身份证等证件以及财务系统识别报销证件等等 第一步,你需要去百度AI里去注册一个账号,然后新建一个文字识别的应用 然后你将得到一个API Key 和 ...
- 基于百度AI开放平台的人脸识别及语音合成
基于百度AI的人脸识别及语音合成课题 课题需求 (1)人脸识别 在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄.性别.颜 ...
- Python人工智能-基于百度AI接口
参考百度AI官网:http://ai.baidu.com/ 准备工作: 支持Python版本:2.7.+ ,3.+ 安装使用Python SDK有如下方式 >如果已经安装了pip,执行 pip ...
- 基于百度ai,图灵机器人,Flask 实现的网站语音智能问答
准备以下模块中的函数 from aip import AipSpeech import time import os import requests APP_ID = '15420654' API_K ...
- 基于百度AI人脸识别技术的Demo
编写demo之前首先浏览官方API:http://ai.baidu.com/docs#/Face-API/top 下面是源码: package com.examsafety.test; import ...
- 基于百度AI实现 车牌识别
前言 目前百度的AI接口相对完善,对于文字识别类的操作还需要开发者一一去尝试,去评估这效果到底是怎么的. 文字识别的接口相对简单,官方提供的SDK也集成很好,笔者只是在这上面做了一些前期性的功能数据校 ...
- 20-调用百度AI的文字识别
本来准备自己写识别的,貌似现在能力不足,直接偷懒用百度的api吧 from aip import AipOcr """ 你的 APPID AK SK "&quo ...
- 基于Flask和百度AI实现与机器人对话
实现对话机器人主要有个步骤 : 一.前端收集语音传入后端 二.后端基于百度AI接口进行语音识别,转换成文字 三.对文字进行自定义验证或通过图灵端口进行处理,生成回复内容 四.将文字通过百度AI接口合成 ...
- Python通过百度Ai识别图片中的文字
版本:python3.7 工作中有需要识别图片中的汗字,查看了半天大神们的博客,但没找到完全可以用的源码,经过自己的实践,以下源码可以实现: 创建应用 首先你需要登录百度AI,选择文字识别,创建一个应 ...
- C# 10分钟完成百度图片提取文字(文字识别)——入门篇
现在图片文字识别已经很成熟了,比如qq长按图片,点击图片识别就可以识别图片的文字,将不认识的.文字数量大的.或者不能赋值的值进行二次可复制功能. 我们现在就基于百度Ai开放平台进行个人文字识别,dem ...
随机推荐
- 驱动开发:内核解析PE结构节表
在笔者上一篇文章<驱动开发:内核解析PE结构导出表>介绍了如何解析内存导出表结构,本章将继续延申实现解析PE结构的PE头,PE节表等数据,总体而言内核中解析PE结构与应用层没什么不同,在上 ...
- Electron-ChatGPT桌面端ChatGPT实例|electron25+vue3聊天AI模板EXE
基于electron25+vite4+vue3仿制chatgpt客户端聊天模板ElectronChatGPT. electron-chatgpt 使用最新桌面端技术Electron25.x结合Vite ...
- celery笔记四之在Django中使用celery
本文首发于公众号:Hunter后端 原文链接:celery笔记四之在Django中使用celery 这一篇笔记介绍一下如何在 Django 系统中使用 celery. 如果是想纯粹使用 celery, ...
- 智能合约HardHat框架环境的搭建
1.首先创建一个npm项目 PS C:\Users\lcds\blockchainprojects> mkdir hardhatcontract PS C:\Users\lcds\blockch ...
- 浅析开源容器标准——OCI
1.导语 容器技术火起来了以后,Docker的容器镜像和容器运行时已然成为行业的标准.此后,为了推进容器生态的健康发展.在Linux基金会的主导下,Docker和各大云厂商Google, Amazon ...
- PHP文件包含总结
1.文件包含小知识 1.1 包含函数 PHP共有4个与文件包含相关的函数: include require include_once require_once include与include_once ...
- Visual Studio Code安装C#开发工具包并编写ASP.NET Core Web应用
前言 前段时间微软发布了适用于VS Code的C#开发工具包(注意目前该包还属于预发布状态但是可以正常使用),因为之前看过网上的一些使用VS Code搭建.NET Core环境的教程看着还挺复杂的就一 ...
- 在js中修改less文件内样式
在项目中使用使用进度条时遇到了一点问题,根据需求进度条的百分比需要在条内显示,但是当完成度太低时由于进度条背景和百分比值都是接近的颜色,所以此时无法显示进度值,这个时候需要根据完成度大小来进行判断,动 ...
- 【线上技术分享】即构&MobTech袤博移动游戏开发者全能进阶沙龙
游戏行业的兴起与当前移动互联网用户碎片化.休闲化的生活特征密不可分,在用户旺盛的需求下,游戏行业迎来了绝佳的发展机遇,今年上半年已多款游戏DAU过亿. 市场的火爆也为游戏行业带来了异常激烈的竞争,加上 ...
- Python爬虫突破验证码技巧 - 2Captcha
在互联网世界中,验证码作为一种防止机器人访问的工具,是爬虫最常遇到的阻碍.验证码的类型众多,从简单的数字.字母验证码,到复杂的图像识别验证码,再到更为高级的交互式验证码,每一种都有其独特的识别方法和应 ...