口罩识别实战教程
人脸人体识别技术是基于阿里云深度学习算法,结合图像或视频的人脸检测、分析、比对以及人体检测等技术,为您提供人脸人体的检测定位、人脸属性识别和人脸比对等能力。本教程介绍如何使用Alibaba Cloud SDK for Java对图片中的人物进行口罩检测。
前提条件
在开始之前,请确保完成以下步骤:
- 开通人脸人体能力,请参见上述开发前准备。
- 在您的Java工程中添加人脸人体能力的pom依赖:
<!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-facebody -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-facebody</artifactId>
<version>1.0.8</version>
</dependency>
口罩识别
DetectMask可以对输入图片中面积最大的人脸进行口罩检测。
例如要识别下面的图片中的人物是否戴了口罩。
示例代码如下:
import com.aliyun.CommonConfig;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.facebody.model.v20191230.DetectMaskRequest;
import com.aliyuncs.facebody.model.v20191230.DetectMaskResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
public class DetectMaskDemo {
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) {
String wearMaskSampleImgURL = "https://visionapi-test.oss-cn-shanghai.aliyuncs.com/mask_1.jpg";
detectMask(wearMaskSampleImgURL);
}
/**
* 口罩识别
* @param wearMaskSampleImgURL 图片URL地址
*/
private static void detectMask(String wearMaskSampleImgURL) {
DetectMaskRequest detectMaskRequest = new DetectMaskRequest();
detectMaskRequest.setImageURL(wearMaskSampleImgURL);
try {
DetectMaskResponse detectMaskResponse = client.getAcsResponse(detectMaskRequest);
System.out.println("口罩识别:");
System.out.println(new Gson().toJson(detectMaskResponse));
} 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": "3DFE230C-CB35-4F92-981F-F70D078E0C8D",
"data": {
"mask": 2,
"faceProbability": 0.57101476
}
}
从返回结果中得到的该图片识别结果如下:
- 图片中的人物戴了口罩。
- 检测结果的可信度为0.57101476。
其中,返回结果中参数mask取值如下:
- 0:没有检测出人脸或人脸清晰度不够。
- 1:没有戴口罩。
- 2:有戴口罩。
- 3:口罩没有带好。