图片内容安全实战教程
内容安全技术是基于阿里云视觉分析技术和深度识别技术。本教程为您介绍如何通过智能视觉平台的图片检测能力保证内容安全。
背景信息
内容安全技术是基于阿里云视觉分析技术和深度识别技术,并经过在阿里经济体内和云上客户的多领域、多场景的广泛应用和不断优化,可提供风险和治理领域的图像识别、定位、检索等全面服务能力,不仅可以降低色情、涉恐、涉政、广告、垃圾信息等违规风险,而且能大幅度降低人工审核成本。
前提条件
在开始之前,请确保完成以下步骤。
- 开通内容安全能力,请参见上述开发前准备。
- 在您的Java工程中添加内容安全能力的pom依赖:
<dependencies>
<!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-facebody -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-imageaudit</artifactId>
<version>1.0.6</version>
</dependency>
</dependencies>
图片内容安全
图片内容安全支持检测的场景包括有图片智能鉴黄、图片涉恐涉政识别、图文违规识别、图片二维码识别、图片不良场景识别和图片logo识别等。
例如:识别以下图片是否涉嫌违规。
示例代码如下:
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 {
private static DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "<access key id>", "<access key secret>");
private static IAcsClient client = new DefaultAcsClient(profile);
public static void main(String[] args) {
ScanImageRequest request = new ScanImageRequest();
List<ScanImageRequest.Task> taskList = new ArrayList<ScanImageRequest.Task>();
ScanImageRequest.Task task1 = new ScanImageRequest.Task();
// 数据ID。需要保证在一次请求中所有的ID不重复。
task1.setDataId(UUID.randomUUID().toString());
// 待检测图像的URL。支持HTTP和HTTPS协议。当前仅支持上海地域的OSS链接。
task1.setImageURL("https://visionapi-test.oss-cn-shanghai.aliyuncs.com/TB1k8mYCpY7gK0jSZKzXXaikpXa-692-440%5B1%5D.jpg");
taskList.add(task1);
request.setTasks(taskList);
// 指定图片检测的应用场景
List<String> sceneList = new ArrayList<String>();
// 图片智能鉴黄
sceneList.add("porn");
// 图片涉恐涉政识别
sceneList.add("terrorism");
// 图文违规识别
sceneList.add("ad");
// 图片不良场景识别
sceneList.add("live");
// 图片logo识别
sceneList.add("logo");
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());
}
}
}
代码返回结果类似如下:
{
"RequestId": "B2B68CC0-62E8-4DE4-9657-1FDDB8718FDC",
"Data": {
"Results": [
{
"DataId": "3213132132131",
"ImageURL": "https://visionapi-test.oss-cn-shanghai.aliyuncs.com/TB1k8mYCpY7gK0jSZKzXXaikpXa-692-440%5B1%5D.jpg",
"SubResults": [
{
"Suggestion": "pass",
"Rate": 100,
"Label": "normal",
"Scene": "porn"
},
{
"Suggestion": "block",
"Rate": 99.88,
"Label": "weapon",
"Scene": "terrorism"
},
{
"Suggestion": "pass",
"Rate": 99.9,
"Label": "normal",
"Scene": "ad"
},
{
"Suggestion": "pass",
"Rate": 100,
"Label": "normal",
"Scene": "live"
},
{
"Suggestion": "pass",
"Rate": 99.9,
"Label": "normal",
"Scene": "logo"
}
]
}
]
}
}
从返回结果中得到的该图片识别结果如下:
- 智能鉴黄:通过
- 涉恐涉政识别:不通过
- 图文违规识别:通过
- 图片不良场景识别:通过
- 图片logo识别:通过