通过使用百度API进行图片色情识别
具体文档:http://ai.baidu.com/docs#/ImageCensoring-API/top
使用之前需要获取对应的项目APP_ID,API_KEY,SECRET_KEY,这些参数在使用API的时候必须用到。
如何获取这些参数:在百度开发者中心申请一个项目,然后就可以获取到这些参数。
准备条件都完成了,现在开始进行图像识别了。
1.创建相应的java工程,使用maven进行版本管理
2. 在maven.pom中添加
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
<!--百度api-->
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>4.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.46</version>
</dependency>
3.创建相应的工具类,例如Check.java
package com.wsk.netty.check;
import com.baidu.aip.imagecensor.AipImageCensor;
import org.json.JSONObject;
import java.io.File;
/** * 图片审覈 * * @Author : WuShukai * @Date :2018/2/12 9:43 */
public class Check {
//设置APPID/AK/SK
private static final String APP_ID = "**";
private static final String API_KEY = "**";
private static final String SECRET_KEY = "**";
/** * @param path 图片地址 */
public void checkPornograp(String path) {
if (!new File(path).exists()) {
throw new NullPointerException("图片不存在");
}
// 初始化一个AipImageCensor
AipImageCensor client = new AipImageCensor(APP_ID, API_KEY, SECRET_KEY);
// 可选:设置网络连接参数
client.setConnectionTimeoutInMillis(2000);
client.setSocketTimeoutInMillis(60000);
// 调用接口
JSONObject res = client.antiPorn(path);
System.out.println(res.toString(2));
}
public static void main(String[] args) {
Check check = new Check();
String path = "E:\\download\\t.jpg";
check.checkPornograp(path);
}
}
4.返回结果,各个参数都非常容易懂,就不累赘了。
{
"result": [ { "probability": 2.06E-4, "class_name": "色情" }, { "probability": 1.0E-5, "class_name": "性感" }, { "probability": 0.999784, "class_name": "正常" } ],
"conclusion": "正常",
"log_id": 4363824035907851234,
"confidence_coefficient": "确定",
"result_num": 3 }