智能标签,是通过分析视频中视觉、文字、语音、行为等信息,结合多模态信息融合及对齐技术,实现高准确率内容识别,自动输出视频的多维度内容标签,将非结构化信息转化为结构化信息,适用于媒资检索、个性化推荐、智能广告投放等场景。本文介绍了媒体处理Java SDK使用智能标签的示例代码。
版本说明
媒体处理的Java SDK版本需要在2.7.6版本及以上。如果使用Maven管理Java依赖包,您可以在工程pom.xml文件中添加如下依赖。
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.3</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-mts</artifactId>
<version>2.7.6</version>
</dependency>
前提条件
使用前请先初始化客户端,详细说明请参见初始化。
提交智能标签作业
调用SubmitSmarttagJob提交智能标签作业,接口字段和参数详细信息请参见提交智能标签作业,调用示例如下:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.alibaba.fastjson.JSON;
import com.aliyuncs.mts.model.v20140618.*;
public class SubmitSmarttagJob {
public static void main(String[] args) throws Exception {
// 初始化Client。
DefaultAcsClient client = InitClient.initMpsClient();
// 创建request,并设置参数。
SubmitSmarttagJobRequest request = new SubmitSmarttagJobRequest();
// 需要分析的文件OSS地址
request.setInput("oss://xxx.mp4");
// 管道ID,若填空,表示默认管道
request.setPipelineId("");
// 文件标题
request.setTitle("<yourTitle>");
// 文件内容描述,选填
request.setContent("<yourContent>");
request.setAcceptFormat(FormatType.JSON);
try {
// 接收请求结果response。
SubmitSmarttagJobResponse response = client.getAcsResponse(request);
System.out.println(JSON.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());
}
}
}
查询智能标签作业
调用QuerySmarttagJob查询智能标签作业,接口字段和参数详细信息请参见查询智能标签作业,调用示例如下:
import com.alibaba.fastjson.JSON;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.mts.model.v20140618.*;
public class QuerySmarttagJob {
public static void main(String[] args) throws Exception{
// 初始化Client。
DefaultAcsClient client = InitClient.initMpsClient();
// 创建request,并设置参数。
QuerySmarttagJobRequest request = new QuerySmarttagJobRequest();
request.setJobId("<JobId>");
try {
// 接收请求结果response。
QuerySmarttagJobResponse response = client.getAcsResponse(request);
System.out.println(JSON.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());
}
}
}
添加模板
调用AddSmarttagTemplate 添加一个模板,接口字段和参数详细信息请参见添加模板,调用示例如下:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.alibaba.fastjson.JSON;
import com.aliyuncs.mts.model.v20140618.*;
public class AddSmarttagTemplate {
public static void main(String[] args) throws Exception {
// 初始化Client。
DefaultAcsClient client = InitClient.initMpsClient();
// 创建request,并设置参数。
AddSmarttagTemplateRequest request = new AddSmarttagTemplateRequest();
request.setIndustry("media");
request.setScene("search");
request.setAnalyseTypes("ocr,asr,classification,shows,face,role,object,tvstation,action,emotion,landmark,scene");
request.setTemplateName("test");
request.setFaceCategoryIds("politician,sensitive,celebrity");
request.setIsDefault(false);
try {
// 接收请求结果response。
AddSmarttagTemplateResponse response = client.getAcsResponse(request);
System.out.println(JSON.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());
}
}
}
查询模板
调用QuerySmarttagTemplateList查询模板信息,接口字段和参数详细信息请参见查询模板,调用示例如下:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.alibaba.fastjson.JSON;
import com.aliyuncs.mts.model.v20140618.*;
public class QuerySmarttagTemplateList {
public static void main(String[] args) throws Exception {
// 初始化Client。
DefaultAcsClient client = InitClient.initMpsClient();
// 创建request,并设置参数。
QuerySmarttagTemplateListRequest request = new QuerySmarttagTemplateListRequest();
request.setTemplateId("6407");
try {
// 接收请求结果response。
QuerySmarttagTemplateListResponse response = client.getAcsResponse(request);
System.out.println(JSON.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());
}
}
}
更新模板
调用UpdateSmarttagTemplate更新模板信息,接口字段和参数详细信息请参见更新模板,调用示例如下:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.alibaba.fastjson.JSON;
import com.aliyuncs.mts.model.v20140618.*;
public class UpdateSmarttagTemplate {
public static void main(String[] args) throws Exception {
// 初始化Client。
DefaultAcsClient client = InitClient.initMpsClient();
// 创建request,并设置参数。
UpdateSmarttagTemplateRequest request = new UpdateSmarttagTemplateRequest();
request.setTemplateName("update测试");
request.setTemplateId("6407");
try {
// 接收请求结果response。
UpdateSmarttagTemplateResponse response = client.getAcsResponse(request);
System.out.println(JSON.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());
}
}
}
删除模板
调用DeleteSmarttagTemplate删除模板,接口字段和参数详细信息请参见删除模板,调用示例如下:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.alibaba.fastjson.JSON;
import com.aliyuncs.mts.model.v20140618.*;
public class DeleteSmarttagTemplate {
public static void main(String[] args) throws Exception {
// 初始化Client。
DefaultAcsClient client = InitClient.initMpsClient();
// 创建request,并设置参数。
DeleteSmarttagTemplateRequest request = new DeleteSmarttagTemplateRequest();
request.setTemplateId("6407");
try {
// 接收请求结果response。
DeleteSmarttagTemplateResponse response = client.getAcsResponse(request);
System.out.println(JSON.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());
}
}
}
注册自定义人脸
调用RegisterCustomFace注册自定义人脸,接口字段和详细参数信息请参见注册⾃定义⼈脸,调用示例如下:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.alibaba.fastjson.JSON;
import com.aliyuncs.mts.model.v20140618.*;
public class RegisterCustomFace {
public static void main(String[] args) throws Exception {
// 初始化Client。
DefaultAcsClient client = InitClient.initMpsClient();
// 创建request,并设置参数。
RegisterCustomFaceRequest request = new RegisterCustomFaceRequest();
request.setPersonId("<yourPersonId>");
request.setImageUrl("http://xxxxx.jpeg");
request.setCategoryId("<yourCategoryId>");
try {
// 接收请求结果response。
RegisterCustomFaceResponse response = client.getAcsResponse(request);
System.out.println(JSON.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());
}
}
}
注销自定义人脸
调用UnregisterCustomFace注销自定义人脸,接口字段和参数详细说明请参见注销⾃定义⼈脸,调用示例如下:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.alibaba.fastjson.JSON;
import com.aliyuncs.mts.model.v20140618.*;
public class UnregisterCustomFace {
public static void main(String[] args) throws Exception {
// 初始化Client。
DefaultAcsClient client = InitClient.initMpsClient();
// 创建request,并设置参数。
UnregisterCustomFaceRequest request = new UnregisterCustomFaceRequest();
request.setPersonId("<yourPersonId>");
request.setFaceId("<FaceId>");
request.setCategoryId("<yourCategoryId>");
try {
// 接收请求结果response。
UnregisterCustomFaceResponse response = client.getAcsResponse(request);
System.out.println(JSON.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());
}
}
}
添加自定义人物库或人物标签
调用TagCustomPerson添加自定义人物库或人物标签,接口字段和参数详细信息请参见添加自定义人物库或人物标签,调用示例如下:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.alibaba.fastjson.JSON;
import com.aliyuncs.mts.model.v20140618.*;
public class TagCustomPerson {
public static void main(String[] args) throws Exception {
// 初始化Client。
DefaultAcsClient client = InitClient.initMpsClient();
// 创建request,并设置参数。
TagCustomPersonRequest request = new TagCustomPersonRequest();
request.setCategoryId("<yourCategoryId>");
request.setCategoryName("<yourCategoryaName>");
request.setCategoryDescription("<yourCategoryDescription>");
try {
// 接收请求结果response。
TagCustomPersonResponse response = client.getAcsResponse(request);
System.out.println(JSON.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());
}
}
}
列出人物库所有人物和人脸信息
调用ListCustomPersons列出人物库所有人物和人脸信息,接口字段和参数详细说明请参见列出⼈物库所有⼈物和⼈脸信息,调用示例如下:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.alibaba.fastjson.JSON;
import com.aliyuncs.mts.model.v20140618.*;
public class ListCustomPersons {
public static void main(String[] args) throws Exception {
// 初始化Client。
DefaultAcsClient client = InitClient.initMpsClient();
// 创建request,并设置参数。
ListCustomPersonsRequest request = new ListCustomPersonsRequest();
request.setCategoryId("<yourCategoryId>");
request.setPersonId("<yourPersonId>");
try {
// 接收请求结果response。
ListCustomPersonsResponse response = client.getAcsResponse(request);
System.out.println(JSON.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());
}
}
}