前言 百度AI是指百度公司的人工智慧技術全稱。它採用深度學習技術,包括自然語言處理、語音識別、電腦視覺、知識圖譜等,可應用於各個領域如互聯網、醫療、金融、教育、汽車、物流等。百度AI的發展將幫助人類更好地理解世界和提高生活品質,接下來就通過一個小案例演示實現百度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) { 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
演示調用
-
文字審核
-
圖像審核
源碼獲取
關註公眾號,後臺回覆關鍵字:BaiduAI文字和圖像敏感審核
本文來自博客園,作者:碼農阿亮,轉載請註明原文鏈接:https://www.cnblogs.com/wml-it/p/17714619.html
技術的發展日新月異,隨著時間推移,無法保證本博客所有內容的正確性。如有誤導,請大家見諒,歡迎評論區指正!
開源庫地址,歡迎點亮:
GitHub:https://github.com/ITMingliang
Gitee: https://gitee.com/mingliang_it
GitLab: https://gitlab.com/ITMingliang
建群聲明: 本著技術在於分享,方便大家交流學習的初心,特此建立【編程內功修煉交流群】,為大家答疑解惑。熱烈歡迎各位愛交流學習的程式員進群,也希望進群的大佬能不吝分享自己遇到的技術問題和學習心得!進群方式:掃碼關註公眾號,後臺回覆【進群】。