图片内容安全(ScanImage)是阿里云智能开放平台推出的内容安全能力下的一个API接口,您可以调用该接口检测图片中的违规内容,保证内容安全。
背景信息
内容审核技术基于阿里云视觉分析技术和深度识别技术,并经过阿里集团内和云上客户的多领域、多场景的广泛应用和不断优化,提供风险和治理领域的图像识别、定位、检索等全方位服务能力,不仅能帮助用户降低色情、涉恐、广告、垃圾、敏感信息等违规风险,而且能大幅度降低人工审核成本。
开通服务
调用图片内容审核API前,您需要开通内容审核服务。在进行图片内容检测时,需要先将图片上传至上海地域的OSS Bucket中生成URL链接,通过图片URL链接传入图片数据。关于如何开通OSS服务请参见开通OSS服务。下面为您介绍如何开通内容安全服务。
生成URL
例如我们需要对下图进行内容安全检测。

添加依赖
请根据您的代码选择添加不同的依赖包。
- Java
在您的Java工程中添加POM依赖。
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.5.14</version> </dependency> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-imageaudit --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-imageaudit</artifactId> <version>1.0.8</version> </dependency>
- Python
打开命令提示符窗口,依次执行如下命令安装Python SDK。
pip install aliyun-python-sdk-core
pip install aliyun-python-sdk-imageaudit
- Node.js
使用NPM安装Node.js SDK。
npm install @alicloud/pop-core -S
npm install @alicloud/imageaudit20191230@^1.0.0 --save
- PHP
使用composer工具安装PHP SDK。
composer require alibabacloud/imageaudit-20191230
- C#
使用NuGet程序包安装.NET SDK。
- 如果您的Visual Studio没有安装NuGet,请先安装NuGet。
- 在Visual Studio中新建或者打开已有的项目,选择 。
- 搜索aliyun-net-sdk-core,在结果中找到aliyun-net-sdk-core,选择最新版本,单击安装。
请求示例
请求示例如下:
- Java请求示例
import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.profile.DefaultProfile; import com.google.gson.Gson; import java.util.*; import com.aliyuncs.imageaudit.model.v20191230.*; public class ScanImage { public static void main(String[] args) { DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "<accessKeyId>", "<accessSecret>"); IAcsClient client = new DefaultAcsClient(profile); ScanImageRequest request = new ScanImageRequest(); request.setRegionId("cn-shanghai"); List<ScanImageRequest.Task> taskList = new ArrayList<ScanImageRequest.Task>(); ScanImageRequest.Task task1 = new ScanImageRequest.Task(); task1.setImageURL("http://viapi-test.oss-cn-shanghai.aliyuncs.com/sanjiye-meizi/%E5%9B%BE%E7%89%87%E4%B8%8D%E8%89%AF%E5%9C%BA%E6%99%AF%E8%AF%86%E5%88%AB.jpg"); taskList.add(task1); request.setTasks(taskList); List<String> sceneList = new ArrayList<String>(); sceneList.add("live"); request.setScenes(sceneList); try { ScanImageResponse response = client.getAcsResponse(request); System.out.println(new Gson().toJson(response)); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { System.out.println("ErrCode:" + e.getErrCode()); System.out.println("ErrMsg:" + e.getErrMsg()); System.out.println("RequestId:" + e.getRequestId()); } } }
- Python请求示例
#!/usr/bin/env python #coding=utf-8 from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkimageaudit.request.v20191230.ScanImageRequest import ScanImageRequest client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-shanghai') request = ScanImageRequest() request.set_accept_format('json') request.set_Tasks([ { "ImageURL": "http://viapi-test.oss-cn-shanghai.aliyuncs.com/sanjiye-meizi/%E5%9B%BE%E7%89%87%E4%B8%8D%E8%89%AF%E5%9C%BA%E6%99%AF%E8%AF%86%E5%88%AB.jpg" } ]) request.set_Scenes(["live"]) response = client.do_action_with_exception(request) # python2: print(response) print(str(response, encoding='utf-8'))
- Node.js请求示例
const Core = require('@alicloud/pop-core'); var client = new Core({ accessKeyId: '<accessKeyId>', accessKeySecret: '<accessSecret>', endpoint: 'https://imageaudit.cn-shanghai.aliyuncs.com', apiVersion: '2019-12-30' }); var params = { "RegionId": "cn-shanghai", "Task.1.ImageURL": "http://viapi-test.oss-cn-shanghai.aliyuncs.com/sanjiye-meizi/%E5%9B%BE%E7%89%87%E4%B8%8D%E8%89%AF%E5%9C%BA%E6%99%AF%E8%AF%86%E5%88%AB.jpg", "Scene.1": "live" } var requestOption = { method: 'POST' }; client.request('ScanImage', params, requestOption).then((result) => { console.log(JSON.stringify(result)); }, (ex) => { console.log(ex); })
- PHP请求示例
<?php use AlibabaCloud\Client\AlibabaCloud; use AlibabaCloud\Client\Exception\ClientException; use AlibabaCloud\Client\Exception\ServerException; // Download:https://github.com/aliyun/openapi-sdk-php // Usage:https://github.com/aliyun/openapi-sdk-php/blob/master/README.md AlibabaCloud::accessKeyClient('<accessKeyId>', '<accessSecret>') ->regionId('cn-shanghai') ->asDefaultClient(); try { $result = AlibabaCloud::rpc() ->product('imageaudit') // ->scheme('https') // https | http ->version('2019-12-30') ->action('ScanImage') ->method('POST') ->host('imageaudit.cn-shanghai.aliyuncs.com') ->options([ 'query' => [ 'RegionId' => "cn-shanghai", 'Task.1.ImageURL' => "http://viapi-test.oss-cn-shanghai.aliyuncs.com/sanjiye-meizi/%E5%9B%BE%E7%89%87%E4%B8%8D%E8%89%AF%E5%9C%BA%E6%99%AF%E8%AF%86%E5%88%AB.jpg", 'Scene.1' => "live", ], ]) ->request(); print_r($result->toArray()); } catch (ClientException $e) { echo $e->getErrorMessage() . PHP_EOL; } catch (ServerException $e) { echo $e->getErrorMessage() . PHP_EOL; }
- .NET请求示例
using System; using System.Collections.Generic; using Aliyun.Acs.Core; using Aliyun.Acs.Core.Profile; using Aliyun.Acs.Core.Exceptions; using Aliyun.Acs.Core.Http; namespace CommonRequestDemo { class Program { static void Main(string[] args) { IClientProfile profile = DefaultProfile.GetProfile("cn-shanghai", "<accessKeyId>", "<accessSecret>"); DefaultAcsClient client = new DefaultAcsClient(profile); CommonRequest request = new CommonRequest(); request.Method = MethodType.POST; request.Domain = "imageaudit.cn-shanghai.aliyuncs.com"; request.Version = "2019-12-30"; request.Action = "ScanImage"; // request.Protocol = ProtocolType.HTTP; request.AddQueryParameters("Task.1.ImageURL", "http://viapi-test.oss-cn-shanghai.aliyuncs.com/sanjiye-meizi/%E5%9B%BE%E7%89%87%E4%B8%8D%E8%89%AF%E5%9C%BA%E6%99%AF%E8%AF%86%E5%88%AB.jpg"); request.AddQueryParameters("Scene.1", "live"); try { CommonResponse response = client.GetCommonResponse(request); Console.WriteLine(System.Text.Encoding.Default.GetString(response.HttpResponse.Content)); } catch (ServerException e) { Console.WriteLine(e); } catch (ClientException e) { Console.WriteLine(e); } } } }
结果示例
该接口的请求结果示例如下。
{
"RequestId": "52A631A3-2D19-4205-A05C-614DE729D092",
"Data": {
"Results": [
{
"ImageURL": "http://viapi-test.oss-cn-shanghai.aliyuncs.com/sanjiye-meizi/%E5%9B%BE%E7%89%87%E4%B8%8D%E8%89%AF%E5%9C%BA%E6%99%AF%E8%AF%86%E5%88%AB.jpg",
"SubResults": [
{
"Suggestion": "block",
"Rate": 100,
"Label": "live",
"Scene": "live"
}
]
}
]
}
}
从返回结果来看,该图片中包含不良场景。具体信息如下:
- Suggestion:图片违规,建议执行进一步操作(如直接删除或做限制处理)。
- Rate:检测结果置信度为100。
- Label:图片包含不良场景。
- Scene:图片检测场景为图片不良场景识别。
在文档使用中是否遇到以下问题
更多建议
匿名提交