当前位置: 首页 > news >正文

阿里云内容审核服务使用(图片审核)

说明:在项目中,我们经常会对用户上传的内容(如文字、图片)等资源内容进行审核,审核包括两方面,一方面是内容与描述不符,一方面是违反法律法规。本文介绍使用阿里提供的内容审核服务,对图片内容进行审核。

开通服务

第一步:打开官网

进入阿里云官网,在搜索框内输入“内容安全”,点击下面这个,选择“免费开通”;

在这里插入图片描述

第二步:开通内容审核服务

选择“立即开通”

在这里插入图片描述

第三步:在线调试

进入“控制台”,“服务列表”中图片审核,选择在线调试;

在这里插入图片描述

第四步:调试代码

在弹出的窗口中,填上图片URL和scene(场景),选择SDK实例和Java语言;

在这里插入图片描述
图片URL可以选择本地图片上传,也可以在选择网络路径,像OSS、Minio上的图片资源路径,如我填入的是下面这张:

在这里插入图片描述

图片审核的场景参数如下,这里我填“porn(色情图片)”;

在这里插入图片描述

第五步:发起调用

点“发起调用”,查看响应结果,可以看到“Suggestion”的值为“pass”,表示这张图片OK,没问题;

在这里插入图片描述

代码实现

第一步:添加依赖

接下来就很简单了,把右边SDK调用的代码复制下来就可以了,但是需要引入相关的依赖。如下,创建一个简单的SpringBoot项目,pom.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.hzy</groupId><artifactId>starter-simple</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>11</maven.compiler.source><maven.compiler.target>11</maven.compiler.target></properties><!--Springboot项目--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.12</version><relativePath/></parent><dependencies><!--启动类依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--图片审核依赖--><dependency><groupId>com.aliyun</groupId><artifactId>imageaudit20191230</artifactId><version>2.0.6</version></dependency></dependencies>
</project>

注意依赖也不是随便引入的,阿里云提供的SDK中找到;

在这里插入图片描述

点进GitHub链接,可以找到依赖的Maven坐标;

在这里插入图片描述

而版本号,可以点SDK链接;

在这里插入图片描述

第二步:代码实现

把前面在线调试的代码拷贝下来,提供的代码建议我们把AK&SK配置到系统环境变量中,有一点离谱,我直接不听他的建议,将代码修改成如下:

public class Sample {/*** 使用AK&SK初始化账号Client* @param accessKeyId* @param accessKeySecret* @return Client* @throws Exception*/public static com.aliyun.imageaudit20191230.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config().setAccessKeyId(accessKeyId).setAccessKeySecret(accessKeySecret);config.endpoint = "imageaudit.cn-shanghai.aliyuncs.com";return new com.aliyun.imageaudit20191230.Client(config);}/*** main方法* @param args* @throws Exception*/public static void main(String[] args) throws Exception {// 官方在这里是获取系统中环境变量中的值com.aliyun.imageaudit20191230.Client client = Sample.createClient("你的ak", "你的sk");// 设置ImageURLcom.aliyun.imageaudit20191230.models.ScanImageRequest.ScanImageRequestTask task0 = new com.aliyun.imageaudit20191230.models.ScanImageRequest.ScanImageRequestTask().setImageURL("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fsafe-img.xhscdn.com%2Fbw1%2F5723a630-077e-45c5-9e73-49ed809b3f43%3FimageView2%2F2%2Fw%2F1080%2Fformat%2Fjpg&refer=http%3A%2F%2Fsafe-img.xhscdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1694165323&t=149871d4e26b4b9a386e0e98bedc2929");// 添加图片任务、设置场景com.aliyun.imageaudit20191230.models.ScanImageRequest scanImageRequest = new com.aliyun.imageaudit20191230.models.ScanImageRequest().setTask(java.util.Arrays.asList(task0)).setScene(java.util.Arrays.asList("porn"));com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();// 打印图片审核结果String suggestion = client.scanImageWithOptions(scanImageRequest, runtime).getBody().getData().results.get(0).getSubResults().get(0).suggestion;System.out.println(suggestion);}
}

获取AK&SK

第一步:进入AccessKey管理

鼠标移动到右上角自己的头像上,选择AccessKey管理;

在这里插入图片描述

第二步:使用子用户AccessKey

进入后,选择“开始使用子用户AccessKey”;

在这里插入图片描述

第三步:创建用户

选择“创建用户”

在这里插入图片描述

填写登录名称和在列表中显示的名称,记得勾选OpenAPI调用访问;

在这里插入图片描述

创建完成后,就会有AK&SK,记得复制下来;

第四步:添加权限

获得AK&SK还没完,还需要开通该用户图片审核服务的使用权限;

在这里插入图片描述

搜索“AliyunVIAPIFullAccess”,点击加入,点确定;

在这里插入图片描述

测试

把上面获取到的AK&SK填入到代码中,鼠标右键启动程序;

在这里插入图片描述

可以看到这张图片,审核建议为“pass”;

在这里插入图片描述

到这里,使用阿里内容审核服务,对图片内容审核功能就完成了。当然这是一个非常简陋的Demo,有以下待优化的地方:

  • 在实际项目中,我们不可能把AK、SK、ImageURL和endpoint在代码中写死,应该写在配置文件中;

  • 对审核的结果应该增加校验,审核返回值有异常的话需要处理(判断==>捕获/抛出);

  • 对于审核结果,不能仅返回一个审核建议,还需要获取其他返回值,应该设计一套返回结果的解析;

审核返回值,在阿里云官方提供的SDK中说明,部分如下:

在这里插入图片描述

相关文章:

阿里云内容审核服务使用(图片审核)

说明&#xff1a;在项目中&#xff0c;我们经常会对用户上传的内容&#xff08;如文字、图片&#xff09;等资源内容进行审核&#xff0c;审核包括两方面&#xff0c;一方面是内容与描述不符&#xff0c;一方面是违反法律法规。本文介绍使用阿里提供的内容审核服务&#xff0c;…...

git撤回最近一次push操作

git push -f origin HEAD^:branch_name其中&#xff0c;branch_name 是你想要撤回 push 操作的分支的名称。 这个命令将会强制推送到远程仓库&#xff0c;将远程分支回滚到上一个提交&#xff08;HEAD^ 意味着上一个提交&#xff09;。这样做会丢失最近一次 push 的更改&#…...

2000-2022年上市公司环境不确定性(原始数据+测算代码+测算结果)

2000-2022年上市公司环境不确定性指数&#xff08;含原始数据 代码和计算结果&#xff09; 1、时间&#xff1a;2000-2022年 2、指标&#xff1a;gupiao代码、名称、日期、年份、总资产净利润率ROA、营业收入、上市日期、成立日期、行业代码、年末是否ST或PT、行业、EU未调整…...

网络基本概念

目录 一、IP地址 1. 概念 2. 格式 3. 特殊IP 二、端口号 1.概念 2. 格式 3.注意事项 三、 协议 1. 概念 2. 作用 四、协议分层 1. 网络设备所在分层 五、封装与分用 六、客户端和服务器 1. 客户端与服务器通信的过程 一、IP地址 1. 概念 IP地址主要用于标识网络主机.其他网络…...

2.安装Docker-ce

一、删除之前安装的docker(若之前未安装过&#xff0c;此步骤省略…) 进入centos根目录执行以下命令&#xff08;\ 是linux系统种命令换行符&#xff0c;如果命令过长&#xff0c;可以用\来换行&#xff09; yum remove docker \ docker-client \ docker-client-latest \ doc…...

Redis-2

Redis 持久化 Redis 为了保证效率&#xff0c;数据缓存在了内存中&#xff0c;但是会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件中&#xff0c;以保证数据的持久化。总的目的把数据保存到硬盘&#xff0c;有 RDB 和 AOF 两种。 RDB 持久化方案: RDB 是一…...

一分钟了解下Java追随和适应云原生的手段之Java Native Build(JNB)

文章首发地址 为了解决在云原生环境中&#xff0c;Java应用启动慢的问题&#xff0c;出现了很多派系&#xff0c;如拯救派&#xff0c;让应用在原有基础上启动更快&#xff08;一般都是用资源换时间&#xff09;&#xff0c;还有就是革命派&#xff0c;Java向Golang学习&#x…...

Flutter iOS 与 flutter 相互通信

在混合开发中避免不了通信&#xff0c;简单记录一下&#xff0c;Flutter iOS工程与Flutter 之间相互通信。 Flutter中通过Platform Channel实现Flutter和原生端的数据传递&#xff0c;是怎么进行数据通信&#xff0c;以及怎么配置&#xff0c;下面一一进行详解。 FlutterMetho…...

OpenCV和PIL图像对象转换

OpenCV和PIL&#xff08;Python Imaging Library&#xff09;都是常用的Python图像处理库。它们都有自己的图像对象类型&#xff0c;因此在使用它们时需要进行相应的转换。 下面是OpenCV图像对象和PIL图像对象之间的转换方法&#xff1a; 将OpenCV图像对象转换为PIL图像对象&…...

IDEA的实用快捷键大全

目录 1.常规快捷键 1.1通用类 1.2注释类 1.3操作类 1.4展开与关闭 2.智能补全类快捷键 3.程序结构类快捷键 4.统一操作快捷键 1.常规快捷键 1.1通用类 像 Ctrl C 复制&#xff0c; Ctrl V 粘贴&#xff0c; Ctrl S保存文件&#xff0c; Ctrl X剪切&#xff0c;这种…...

04-6_Qt 5.9 C++开发指南_QListWidget和QToolButton

文章目录 1. 实例简介2. 源码2.1 混合式界面设计2.2 mainwindow.h2.3 mainwindow.cpp 1. 实例简介 Qt 中用于项 (Item)处理的组件有两类&#xff0c;一类是 Item Views&#xff0c;包括 QListView、QTreeView、QTableView、QColumnView 等;另一类是 Item Widgets&#xff0c;包…...

笔试错题不熟悉 积累

【2022】小米秋招笔试-运维开发-卷2 DNS 域名解析的默认端口是 53 常用服务端口号集合&#xff08;超全&#xff09;&#xff01;&#xff01;&#xff01; Redis中遍历所有Key&#xff0c;以下哪种方式对Redis服务影响最小? SCAN 每次执行都只会返回少量元素&#xff0c;…...

Adb发送特定广播给App和App获取权限的命令

最近在做Autostart&#xff0c;但是没有bench R1环境 目前在模拟器上调试&#xff0c;需要调试自定义的广播和获取悬浮窗权限&#xff08;因为这个app需要在开机未启动app的情况启动服务区获取传感器信号然后全局弹窗&#xff09;。 需要先adb root adb remount 1.发送广播给…...

字节C++后端面试总结

字节的面经,技术栈是 C++ 后端。 计算机网络 UDP和TCP区别 先说了概念一个是面向连接的基于字节流的可靠连接,一个是不需要连接的基于数据报的不可靠传输 然后说了几个小点,比如首部长度、应用场景、服务对象什么的。 补充: 还有一个很重要的点:UDP 的实时性比 TCP 好…...

el-select 分页加载

el-select 分页加载 el-select 分页懒加载监听的指令——loadMore指令的使用 el-select 分页懒加载 针对数据量大的选择器&#xff0c;需要分页从后端接口获取数据&#xff0c;前端监听选择器下拉框的滚动事件&#xff0c;当往下滚动至底部一定位置时&#xff0c;调接口 监听…...

QColorDialog

QColorDialog 颜色类 QColor颜色对话框API简单的使用 QColorDialog类是QDialog的子类, 通过这个类我们可以得到一个选择颜色的对话框窗口 颜色类 QColor 关于颜色的属性信息, 在QT框架中被封装到了一个叫QColor的类中。 各种颜色都是基于红, 绿, 蓝这三种颜色调配而成的, 并…...

Linux部署Zabbix主机监控

192.168.136.55 服务端 192.168.136.56 客户端 一、服务端 1.1 安装lamp环境 #关闭防火墙以及SELINUX systemctl disable firewalld systemctl stop firewalld sed -i s/SELINUXenforcing$/SELINUXdisabled/g /etc/selinux/config setenforce 0设置yum源 yum install epe…...

【IC萌新虚拟项目】功能覆盖率文件合入与功能覆盖率收集

关于整个虚拟项目,请参考: 【IC萌新虚拟项目】Package Process Unit项目全流程目录_尼德兰的喵的博客-CSDN博客 前言 上一篇文章我们已经完成了测试点的相关指导,在工程目录下看到一份推荐的测试点分解文档。当然这只是一种参考,大家可以按照自己的理解进行测试点分解,并…...

同步辐射散射数据处理分析方法及实验过程

同步辐射散射数据处理分析方法及过程 同步辐射散射测试是一种先进的材料表征技术&#xff0c;已广泛应用于材料科学、生物学、化学等领域。同步辐射散射技术利用同步辐射光源产生的高亮度辐射&#xff0c;通过散射实验来研究样品的结构、形态和动态行为。 同步辐射散射处理分析…...

使用JavaScript开发网页地图导航

使用JavaScript开发网页地图导航 导航是生活中的一个常见需求&#xff0c;而在互联网时代&#xff0c;网页地图导航成为了人们获取信息和帮助的重要工具。在网页中开发一个地图导航功能&#xff0c;能够提供用户位置定位、路线规划、交通情况等有用的信息&#xff0c;提供便利…...

阅读APP书源完全指南:3种快速导入方法与问题解决方案

阅读APP书源完全指南&#xff1a;3种快速导入方法与问题解决方案 【免费下载链接】Yuedu &#x1f4da;「阅读」自用书源分享 项目地址: https://gitcode.com/gh_mirrors/yu/Yuedu 「阅读」APP书源开源项目为小说爱好者提供了一个强大的解决方案&#xff0c;让您能够在一…...

用ESP32和2.13寸电子价签墨水屏,DIY一个超省电的桌面网络时钟(附完整代码)

用ESP32和2.13寸电子价签墨水屏打造极简网络时钟&#xff1a;从硬件拆解到代码实战 在智能设备泛滥的今天&#xff0c;一块能安静显示时间且不打扰生活的时钟反而成了稀罕物。本文将带你用ESP32开发板和汉朔2.13寸电子价签墨水屏&#xff0c;打造一个年耗电量不足1度电的极简网…...

用STM32F103C8T6和NRF24L01自制遥控器,从硬件选型到代码调试的完整避坑指南

STM32F103C8T6与NRF24L01遥控器开发实战&#xff1a;从硬件设计到软件调试的全流程解析 在创客和嵌入式开发领域&#xff0c;无线遥控系统一直是热门话题。无论是机器人控制、无人机飞行还是智能家居应用&#xff0c;稳定可靠的遥控器都是不可或缺的核心组件。本文将详细介绍如…...

Android显示驱动避坑指南:高通平台UEFI显示初始化常见问题解析

Android显示驱动避坑指南&#xff1a;高通平台UEFI显示初始化常见问题解析 在移动设备开发领域&#xff0c;显示系统的稳定性直接影响用户体验。作为Android底层开发的核心环节&#xff0c;高通平台UEFI显示初始化过程涉及硬件抽象层、固件配置和内核交互等多个技术层面。本文…...

服务机器人开发终极指南:从NAO到Pepper的完整编程实战

服务机器人开发终极指南&#xff1a;从NAO到Pepper的完整编程实战 【免费下载链接】awesome-robotics A list of awesome Robotics resources 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-robotics 服务机器人开发是一个融合机械设计、人工智能与编程的跨学科…...

用ESP32和MAX4466做个无线对讲机?手把手教你MQTT传音频(附完整代码)

用ESP32和MAX4466打造高保真无线对讲系统&#xff1a;从硬件搭建到音质优化 记得去年在创客空间第一次听到用ESP32传输的实时音频时&#xff0c;那种"原来物联网还能这么玩"的震撼感至今难忘。今天我们就来复刻这个魔法——用不到百元的硬件成本&#xff0c;构建一套…...

MoltenVK终极指南:动态库与静态库的完整选择方案

MoltenVK终极指南&#xff1a;动态库与静态库的完整选择方案 【免费下载链接】MoltenVK MoltenVK is a Vulkan Portability implementation. It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API over Apples Metal graphics fram…...

OpenClaw多模型切换:千问3.5-9B与本地Llama混合调用

OpenClaw多模型切换&#xff1a;千问3.5-9B与本地Llama混合调用 1. 为什么需要多模型混合调用&#xff1f; 去年冬天&#xff0c;当我第一次尝试用OpenClaw自动生成周报时&#xff0c;发现一个有趣的现象&#xff1a;用同一个模型处理代码片段和文案内容&#xff0c;效果差异…...

7步突破Cursor Pro限制:多语言环境下的AI编程工具全功能解锁指南

7步突破Cursor Pro限制&#xff1a;多语言环境下的AI编程工具全功能解锁指南 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reache…...

OpenClaw人人养虾:LiteLLM 统一网关

LiteLLM 是一个开源的 LLM API 统一网关&#xff08;Unified Gateway&#xff09;&#xff0c;支持 100 模型提供商&#xff0c;提供统一的 OpenAI 兼容 API 格式。 安装 LiteLLM pip 安装 pip install litellm[proxy] Docker 安装 docker run -p 4000:4000 \-e OPENAI_AP…...