百度云内容审核

百度云内容审核介绍


百度智能云内容审核平台:是一款针对多媒体内容进行智能审核的服务平台。支持对图像、文本、音频、视频、直播等内容进行安全审核,具有精准的审核模型、丰富的审核维度、灵活的规则配置等特点。通过可视化界面选择审核维度、个性化调整松紧度,实现自动检测涉黄、辱骂、违禁、广告等内容,降低业务违规风险。

  • 官网地址:https://cloud.baidu.com/solution/censoring
  • 文档地址:https://cloud.baidu.com/doc/ANTIPORN/s/dkk6wyt3z
  • 产品价格介绍:https://ai.baidu.com/ai-doc/ANTIPORN/Xkp5jt5oc

使用步骤:

1、前往百度智能云官网,注册账号并完成实名认证:https://cloud.baidu.com/

2、打开控制台:https://console.bce.baidu.com/ai/#/ai/antiporn/overview/index ,按照操作指引先领取免费资源,然后创建应用。

image-20240513205021771

创建新应用:

image-20240514055802618

创建成功后,会自动生成一个AppID和两个秘钥,后续需要用到这些参数来调百度服务:

image-20240514060032020

3、测试

image-20240514060801802

image-20240514063047949


Java 示例代码


添加依赖:

<dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>3.14.9</version>
</dependency>

编写工具类:

import com.alibaba.fastjson.JSON;
import okhttp3.*;import java.io.IOException;
import java.net.URLEncoder;
import java.util.Base64;public class BaiduScanUtil {private static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build();private static String apiKey = "你自己百度云的应用对应的API Key的值";private static String secretKey= "你自己百度云的应用对应的Secret Key的值";/*** 审核文本* @param text*/public  static Integer textScan(String text){try {MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");RequestBody body = RequestBody.create(mediaType, "text="+text);Request request = new Request.Builder().url("https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined?access_token=" + getAccessToken()).method("POST", body).addHeader("Content-Type", "application/x-www-form-urlencoded").addHeader("Accept", "application/json").build();Response response = HTTP_CLIENT.newCall(request).execute();String responseBody = response.body().string();System.out.println(responseBody);//响应结果里conclusionType的四种可能值:1.合规,2.不合规,3.疑似,4.审核失败return JSON.parseObject(responseBody).getInteger("conclusionType");} catch (IOException e) {e.printStackTrace();return 4;}}/*** 获取文件base64编码* @return base64编码信息,不带文件头* @throws IOException IO异常*/private static String getFileContentAsBase64(byte[] bytes) throws IOException {return URLEncoder.encode(Base64.getEncoder().encodeToString(bytes),"utf-8") ;}/*** 审核图片*/public static Integer imageScan(byte[] bytes){try {MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");// image 可以通过 getFileContentAsBase64("C:\fakepath\3.png") 方法获取String base64 = getFileContentAsBase64(bytes);//System.out.println(base64);RequestBody body = RequestBody.create(mediaType, "image="+base64);Request request = new Request.Builder().url("https://aip.baidubce.com/rest/2.0/solution/v1/img_censor/v2/user_defined?access_token=" + getAccessToken()).method("POST", body).addHeader("Content-Type", "application/x-www-form-urlencoded").addHeader("Accept", "application/json").build();Response response = HTTP_CLIENT.newCall(request).execute();String responseBody = response.body().string();System.out.println(responseBody);//响应结果里conclusionType的四种可能值:1.合规,2.不合规,3.疑似,4.审核失败return JSON.parseObject(responseBody).getInteger("conclusionType");} catch (IOException e) {e.printStackTrace();return 4;}}/*** 从用户的AK,SK生成鉴权签名(Access Token)** @return 鉴权签名(Access Token)* @throws IOException IO异常*/private static String getAccessToken() throws IOException{MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");RequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + apiKey+ "&client_secret=" + secretKey);Request request = new Request.Builder().url("https://aip.baidubce.com/oauth/2.0/token").method("POST", body).addHeader("Content-Type", "application/x-www-form-urlencoded").build();Response response = HTTP_CLIENT.newCall(request).execute();return JSON.parseObject(response.body().string()).getString("access_token");}
}

测试:

import cn.aopmin.utils.common.BaiduScanUtil;
import org.junit.jupiter.api.Test;import javax.imageio.stream.FileImageInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;public class BaiduScanUtilTest {@Testvoid testTextScan() {Integer type = BaiduScanUtil.textScan("我是一个好人");if(type==1){System.out.println("内容合规");} else if(type==2){System.out.println("内容不合规");} else if(type==3){System.out.println("疑似不确定");}}/*** 测试图片审核*/@Testpublic void testImageScan(){//1.先下载图片的字节数组byte[] bytes = image2byte("d:/1111/pic3.png"); //图片字节数组//2.再进行图片审核Integer type = BaiduScanUtil.imageScan(bytes);if(type==1){System.out.println("内容合规");} else if(type==2){System.out.println("内容不合规");} else if(type==3){System.out.println("疑似不确定");}}//图片到byte数组public byte[] image2byte(String path){byte[] data = null;FileImageInputStream input = null;try {input = new FileImageInputStream(new File(path));ByteArrayOutputStream output = new ByteArrayOutputStream();byte[] buf = new byte[1024];int numBytesRead = 0;while ((numBytesRead = input.read(buf)) != -1) {output.write(buf, 0, numBytesRead);}data = output.toByteArray();output.close();input.close();}catch (FileNotFoundException ex1) {ex1.printStackTrace();}catch (IOException ex1) {ex1.printStackTrace();}return data;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/697984.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW开发RS422通信

LabVIEW开发RS422通信 项目围绕LabVIEW软件开发的程序在RS422通信技术检测方面的应用进行展开&#xff0c;通过软件编程将上位计算机虚拟化为检测设备&#xff0c;控制其通信端口与被测产品进行RS422通信&#xff0c;以此检验产品的性能优劣。该虚拟检测仪器在实际测试中表现出…

Adobe Media Encoder ME v24.3.0 解锁版 (视频和音频编码渲染工具)

Adobe系列软件安装目录 一、Adobe Photoshop PS 25.6.0 解锁版 (最流行的图像设计软件) 二、Adobe Media Encoder ME v24.3.0 解锁版 (视频和音频编码渲染工具) 三、Adobe Premiere Pro v24.3.0 解锁版 (领先的视频编辑软件) 四、Adobe After Effects AE v24.3.0 解锁版 (视…

Go框架三件套:Gorm的基本操作

1.概述 这里的Go框架三件套是指 Web、RPC、ORM框架&#xff0c;具体如下: Gorm框架 gorm框架是一个已经迭代了10年的功能强大的ORM框架&#xff0c;在字节内部被广泛使用并且拥有非常丰富的开源扩展。 Kitex框架 Kitex是字节内部的Golang微服务RPC框架&#xff0c;具有高性能…

Shell编程之循环语句

目录 一、for循环 for循环实操 二、while循环 while循环实操 三、until循环命令 until循环实操 一、for循环 读取不同的变量值&#xff0c;用来逐个执行同一组命 for 变量 in 取值列表 do 命令序列 done [rootlocalhost ~]# for i in 1 2 3 4 5 > do > echo "…

Android PreferenceActivity可以自动设置的Activity

1、介绍 PreferenceActivity 是一个抽象类&#xff0c;继承自ListActivity ,该类封装了SharedPreferences. PreferenceActivity 提供了一些常用的设置项如,与普通组件一样&#xff0c;这些配置项既可以从XML文件创建&#xff0c;也可以从代码创建. 每一个设置项标签有一个andro…

FRP多级内网穿透实验(虚拟机多级网络环境搭建+FRP工具使用)

0x00 实验背景 最近在工作中遇到了一个指定必须使用FRP作为内网穿透工具的活动&#xff0c;由于以前没有深入分析过多层内网的实验环境&#xff0c;对多级级联转发还不是很熟悉&#xff0c;在这里简单记录一下环境搭建与实验内容。 0x01 环境搭建 环境搭建以VM为为虚拟平台&…

Microsoft Office for Mac 2024 (Office 365) 16.84 Universal 预览版

Microsoft Office for Mac 2024 (Office 365) 16.84 Universal 预览版 Office LTSC 2024 for Mac 请访问原文链接&#xff1a;Microsoft Office for Mac 2024 (Office 365) 16.84 Universal 预览版&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&a…

Spring Boot | Spring Boot 整合“ 邮件任务“ 实现

目录: Spring Boot 整合" 邮件任务" 实现 :一、发送 "纯文本邮件" :(1) 添加 "邮件服务" 依赖启动器(2) 添加 "邮件服务" 配置信息(3) 定制 "邮件发送服务"(4) "纯文本" 邮件发送 测试效果 二、发送 带 "附件…

Python实现WebSocket通讯与心跳控制详解

为了使用Python实现WebSocket通讯和心跳控制&#xff0c;我们通常需要一个WebSocket客户端库和一个服务器端库。这里&#xff0c;我们将使用websockets库作为服务器和客户端的示例。 安装必要的库 首先&#xff0c;你需要安装websockets库。可以使用pip进行安装&#xff1a; p…

Modbus TCP转CAN网关在不同行业中的应用以及其使用上的优势

倍讯科技Modbus TCP转CAN网关通常被用于工业自动化领域&#xff0c;特别是在需要连接现有Modbus TCP网络和CAN总线设备的场景中。以下是该网关在不同行业中的应用以及其使用上的优势&#xff1a; 1. 制造业&#xff1a; - 在制造业中&#xff0c;各种类型的设备和机器通常使用不…

PXE+Kickstart无人值守安装安装Centos7.9

文章目录 一、什么是PXE1、简介2、工作模式3、工作流程 二、什么是Kickstart1、简介2、触发方式 三、无人值守安装系统工作流程四、实验部署1、环境准备2、服务端&#xff1a;关闭防火墙和selinux3、添加一张仅主机的网卡4、配置仅主机的网卡4.1、修改网络连接名4.2、配IP地址4…

整合springboot-mybatis时,MySQL数据库无法连接问题

整合springboot-mybatis时&#xff0c;MySQL数据库无法连接问题 解决步骤 先手动停止MySQL服务&#xff0c;在cmd后的控制台输入services.msc 找到MySql停止服务 修改配置文件&#xff0c;跳过验证 修改MySQL安装目录下的my.ini配置文件&#xff0c;使登录时跳过权限检查&a…