c83b5b39
Liu Haoyu
项目创建, 集成spring-se...
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
package com.objecteye.utils;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.objecteye.pojo.FaceInfoParam;
import com.objecteye.pojo.FacePosition;
import org.springframework.stereotype.Component;
/**
* 人的工具类
*/
@Component
public class FaceUtils {
//封装Human类
public FaceInfoParam rabbitToFaceInfo(JSONObject VehicleFaceJson, String id) {
FaceInfoParam faceInfoParam = new FaceInfoParam();
// JSONObject VehicleFaceJson = JSONObject.parseObject(rabbitInfo);
JSONObject faceJson = VehicleFaceJson.containsKey("faceInfoParam") ? VehicleFaceJson.getJSONObject("faceInfoParam") : null;
if (faceJson != null) {
// String id; //人像id
// faceInfoParam.setId(id);//因为从图片中提取到的人像没有id
// String mattingData; //抠图的base64
String mattingData = faceJson.containsKey("mattingData") ? faceJson.getString("mattingData") : null;
faceInfoParam.setMattingData(mattingData);
JSONObject faceDetectInfoParam = faceJson.containsKey("faceDetectInfoParam") ? faceJson.getJSONObject("faceDetectInfoParam") : null;
if (faceDetectInfoParam != null) {
// FacePosition facePosition; //脸部位置
JSONObject face_position = faceDetectInfoParam.containsKey("face_position") ? faceDetectInfoParam.getJSONObject("face_position") : null;
FacePosition facePosition = null;
if (face_position != null) {
facePosition = new FacePosition();
facePosition.setLeft(face_position.containsKey("left") ? face_position.getInteger("left") : null);
facePosition.setTop(face_position.containsKey("top") ? face_position.getInteger("top") : null);
facePosition.setWidth(face_position.containsKey("width") ? face_position.getInteger("width") : null);
facePosition.setHeigth(face_position.containsKey("height") ? face_position.getInteger("height") : null);
}
faceInfoParam.setFacePosition(facePosition);
// float facePosScore; //人脸框置信度
float face_pos_score = faceDetectInfoParam.containsKey("face_pos_score") ? faceDetectInfoParam.getFloat("face_pos_score") : 0L;
faceInfoParam.setFacePosScore(face_pos_score);
// Integer quality; //质量评价
int quality = faceDetectInfoParam.containsKey("quality") ? faceDetectInfoParam.getInteger("quality") : 0;
faceInfoParam.setQuality(quality);
// Integer clarity; //清晰度 0 - 100
int clarity = faceDetectInfoParam.containsKey("clarity") ? faceDetectInfoParam.getInteger("clarity") : 0;
faceInfoParam.setClarity(clarity);
// Integer brightness; //亮度 0 - 255
int brightness = faceDetectInfoParam.containsKey("brightness") ? faceDetectInfoParam.getInteger("brightness") : 0;
faceInfoParam.setBrightness(brightness);
// float roll; //姿态角--float
float roll = faceDetectInfoParam.containsKey("roll") ? faceDetectInfoParam.getFloat("roll") : 0L;
faceInfoParam.setRoll(roll);
// float yaw; //姿态角--float
float yaw = faceDetectInfoParam.containsKey("yaw") ? faceDetectInfoParam.getFloat("yaw") : 0L;
faceInfoParam.setYaw(yaw);
// float pitch; //姿态角--float
float pitch = faceDetectInfoParam.containsKey("pitch") ? faceDetectInfoParam.getFloat("pitch") : 0L;
faceInfoParam.setPitch(pitch);
// float score; //人脸置信度-float
float score = faceDetectInfoParam.containsKey("score") ? faceDetectInfoParam.getFloat("score") : 0L;
faceInfoParam.setScore(score);
}
// float[] fea; //人脸特征值 512位
JSONArray feaJsonArr = faceJson.containsKey("fea") ? faceJson.getJSONArray("fea") : null;
float[] fea = null;
if (feaJsonArr != null && feaJsonArr.size() == 512) {
fea = new float[512];
for (int i = 0; i < 512; i++) {
fea[i] = feaJsonArr.getFloat(i);
}
}
faceInfoParam.setFea(fea);
// String retrieveKey; //1vN检索key值
String retrieveKey = faceJson.containsKey("retrieveKey") ? faceJson.getString("retrieveKey") : null;
faceInfoParam.setRetrieveKey(retrieveKey);
System.out.println("==================");
// Integer label; //聚类下标
int label = faceJson.containsKey("label") ? faceJson.getInteger("label") : 0;
faceInfoParam.setLabel(label);
}
return faceInfoParam;
}
}
|