Update DetectFace.
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
2020-11-20 Version: patch
|
||||||
|
- Update DetectFace.
|
||||||
|
- Update RecognizeFace.
|
||||||
|
|
||||||
2020-11-20 Version: patch
|
2020-11-20 Version: patch
|
||||||
- Add a new interface for asynchronous image translation.
|
- Add a new interface for asynchronous image translation.
|
||||||
|
|
||||||
|
|||||||
@@ -34,10 +34,22 @@ namespace AlibabaCloud
|
|||||||
public:
|
public:
|
||||||
struct Data
|
struct Data
|
||||||
{
|
{
|
||||||
|
struct Qualities
|
||||||
|
{
|
||||||
|
std::vector<std::string> noiseList;
|
||||||
|
std::vector<std::string> scoreList;
|
||||||
|
std::vector<std::string> blurList;
|
||||||
|
std::vector<std::string> maskList;
|
||||||
|
std::vector<std::string> glassList;
|
||||||
|
std::vector<std::string> fnfList;
|
||||||
|
std::vector<std::string> poseList1;
|
||||||
|
std::vector<std::string> illuList;
|
||||||
|
};
|
||||||
std::vector<std::string> faceProbabilityList;
|
std::vector<std::string> faceProbabilityList;
|
||||||
int landmarkCount;
|
int landmarkCount;
|
||||||
std::vector<std::string> faceRectangles;
|
std::vector<std::string> faceRectangles;
|
||||||
std::vector<std::string> landmarks;
|
std::vector<std::string> landmarks;
|
||||||
|
Qualities qualities;
|
||||||
int faceCount;
|
int faceCount;
|
||||||
std::vector<std::string> poseList;
|
std::vector<std::string> poseList;
|
||||||
std::vector<std::string> pupils;
|
std::vector<std::string> pupils;
|
||||||
|
|||||||
@@ -34,13 +34,27 @@ namespace AlibabaCloud
|
|||||||
public:
|
public:
|
||||||
struct Data
|
struct Data
|
||||||
{
|
{
|
||||||
|
struct Qualities
|
||||||
|
{
|
||||||
|
std::vector<std::string> noiseList;
|
||||||
|
std::vector<std::string> scoreList;
|
||||||
|
std::vector<std::string> blurList;
|
||||||
|
std::vector<std::string> maskList;
|
||||||
|
std::vector<std::string> glassList;
|
||||||
|
std::vector<std::string> fnfList;
|
||||||
|
std::vector<std::string> poseList1;
|
||||||
|
std::vector<std::string> illuList;
|
||||||
|
};
|
||||||
|
std::vector<std::string> beuatyList;
|
||||||
std::vector<std::string> faceRectangles;
|
std::vector<std::string> faceRectangles;
|
||||||
|
Qualities qualities;
|
||||||
int denseFeatureLength;
|
int denseFeatureLength;
|
||||||
std::vector<std::string> poseList;
|
std::vector<std::string> poseList;
|
||||||
std::vector<std::string> pupils;
|
|
||||||
std::vector<std::string> genderList;
|
std::vector<std::string> genderList;
|
||||||
|
std::vector<std::string> pupils;
|
||||||
std::vector<std::string> denseFeatures;
|
std::vector<std::string> denseFeatures;
|
||||||
std::vector<std::string> faceProbabilityList;
|
std::vector<std::string> faceProbabilityList;
|
||||||
|
std::vector<std::string> hatList;
|
||||||
int landmarkCount;
|
int landmarkCount;
|
||||||
std::vector<std::string> ageList;
|
std::vector<std::string> ageList;
|
||||||
std::vector<std::string> glasses;
|
std::vector<std::string> glasses;
|
||||||
|
|||||||
@@ -40,22 +40,47 @@ void DetectFaceResult::parse(const std::string &payload)
|
|||||||
reader.parse(payload, value);
|
reader.parse(payload, value);
|
||||||
setRequestId(value["RequestId"].asString());
|
setRequestId(value["RequestId"].asString());
|
||||||
auto dataNode = value["Data"];
|
auto dataNode = value["Data"];
|
||||||
if(!dataNode["FaceCount"].isNull())
|
|
||||||
data_.faceCount = std::stoi(dataNode["FaceCount"].asString());
|
|
||||||
if(!dataNode["LandmarkCount"].isNull())
|
if(!dataNode["LandmarkCount"].isNull())
|
||||||
data_.landmarkCount = std::stoi(dataNode["LandmarkCount"].asString());
|
data_.landmarkCount = std::stoi(dataNode["LandmarkCount"].asString());
|
||||||
auto allFaceRectangles = dataNode["FaceRectangles"]["FaceRectangle"];
|
if(!dataNode["FaceCount"].isNull())
|
||||||
for (auto value : allFaceRectangles)
|
data_.faceCount = std::stoi(dataNode["FaceCount"].asString());
|
||||||
data_.faceRectangles.push_back(value.asString());
|
auto qualitiesNode = dataNode["Qualities"];
|
||||||
|
auto allNoiseList = qualitiesNode["NoiseList"]["Noise"];
|
||||||
|
for (auto value : allNoiseList)
|
||||||
|
data_.qualities.noiseList.push_back(value.asString());
|
||||||
|
auto allScoreList = qualitiesNode["ScoreList"]["Score"];
|
||||||
|
for (auto value : allScoreList)
|
||||||
|
data_.qualities.scoreList.push_back(value.asString());
|
||||||
|
auto allBlurList = qualitiesNode["BlurList"]["Blur"];
|
||||||
|
for (auto value : allBlurList)
|
||||||
|
data_.qualities.blurList.push_back(value.asString());
|
||||||
|
auto allMaskList = qualitiesNode["MaskList"]["Mask"];
|
||||||
|
for (auto value : allMaskList)
|
||||||
|
data_.qualities.maskList.push_back(value.asString());
|
||||||
|
auto allGlassList = qualitiesNode["GlassList"]["Glass"];
|
||||||
|
for (auto value : allGlassList)
|
||||||
|
data_.qualities.glassList.push_back(value.asString());
|
||||||
|
auto allFnfList = qualitiesNode["FnfList"]["Fnf"];
|
||||||
|
for (auto value : allFnfList)
|
||||||
|
data_.qualities.fnfList.push_back(value.asString());
|
||||||
|
auto allPoseList1 = qualitiesNode["PoseList"]["Pose"];
|
||||||
|
for (auto value : allPoseList1)
|
||||||
|
data_.qualities.poseList1.push_back(value.asString());
|
||||||
|
auto allIlluList = qualitiesNode["IlluList"]["Illu"];
|
||||||
|
for (auto value : allIlluList)
|
||||||
|
data_.qualities.illuList.push_back(value.asString());
|
||||||
auto allFaceProbabilityList = dataNode["FaceProbabilityList"]["FaceProbability"];
|
auto allFaceProbabilityList = dataNode["FaceProbabilityList"]["FaceProbability"];
|
||||||
for (auto value : allFaceProbabilityList)
|
for (auto value : allFaceProbabilityList)
|
||||||
data_.faceProbabilityList.push_back(value.asString());
|
data_.faceProbabilityList.push_back(value.asString());
|
||||||
auto allPoseList = dataNode["PoseList"]["Pose"];
|
auto allFaceRectangles = dataNode["FaceRectangles"]["FaceRectangle"];
|
||||||
for (auto value : allPoseList)
|
for (auto value : allFaceRectangles)
|
||||||
data_.poseList.push_back(value.asString());
|
data_.faceRectangles.push_back(value.asString());
|
||||||
auto allLandmarks = dataNode["Landmarks"]["Landmark"];
|
auto allLandmarks = dataNode["Landmarks"]["Landmark"];
|
||||||
for (auto value : allLandmarks)
|
for (auto value : allLandmarks)
|
||||||
data_.landmarks.push_back(value.asString());
|
data_.landmarks.push_back(value.asString());
|
||||||
|
auto allPoseList = dataNode["PoseList"]["Pose"];
|
||||||
|
for (auto value : allPoseList)
|
||||||
|
data_.poseList.push_back(value.asString());
|
||||||
auto allPupils = dataNode["Pupils"]["Pupil"];
|
auto allPupils = dataNode["Pupils"]["Pupil"];
|
||||||
for (auto value : allPupils)
|
for (auto value : allPupils)
|
||||||
data_.pupils.push_back(value.asString());
|
data_.pupils.push_back(value.asString());
|
||||||
|
|||||||
@@ -40,42 +40,73 @@ void RecognizeFaceResult::parse(const std::string &payload)
|
|||||||
reader.parse(payload, value);
|
reader.parse(payload, value);
|
||||||
setRequestId(value["RequestId"].asString());
|
setRequestId(value["RequestId"].asString());
|
||||||
auto dataNode = value["Data"];
|
auto dataNode = value["Data"];
|
||||||
if(!dataNode["FaceCount"].isNull())
|
|
||||||
data_.faceCount = std::stoi(dataNode["FaceCount"].asString());
|
|
||||||
if(!dataNode["LandmarkCount"].isNull())
|
if(!dataNode["LandmarkCount"].isNull())
|
||||||
data_.landmarkCount = std::stoi(dataNode["LandmarkCount"].asString());
|
data_.landmarkCount = std::stoi(dataNode["LandmarkCount"].asString());
|
||||||
if(!dataNode["DenseFeatureLength"].isNull())
|
if(!dataNode["DenseFeatureLength"].isNull())
|
||||||
data_.denseFeatureLength = std::stoi(dataNode["DenseFeatureLength"].asString());
|
data_.denseFeatureLength = std::stoi(dataNode["DenseFeatureLength"].asString());
|
||||||
auto allFaceRectangles = dataNode["FaceRectangles"]["FaceRectangle"];
|
if(!dataNode["FaceCount"].isNull())
|
||||||
for (auto value : allFaceRectangles)
|
data_.faceCount = std::stoi(dataNode["FaceCount"].asString());
|
||||||
data_.faceRectangles.push_back(value.asString());
|
auto qualitiesNode = dataNode["Qualities"];
|
||||||
auto allFaceProbabilityList = dataNode["FaceProbabilityList"]["FaceProbability"];
|
auto allNoiseList = qualitiesNode["NoiseList"]["Noise"];
|
||||||
for (auto value : allFaceProbabilityList)
|
for (auto value : allNoiseList)
|
||||||
data_.faceProbabilityList.push_back(value.asString());
|
data_.qualities.noiseList.push_back(value.asString());
|
||||||
auto allPoseList = dataNode["PoseList"]["Pose"];
|
auto allScoreList = qualitiesNode["ScoreList"]["Score"];
|
||||||
for (auto value : allPoseList)
|
for (auto value : allScoreList)
|
||||||
data_.poseList.push_back(value.asString());
|
data_.qualities.scoreList.push_back(value.asString());
|
||||||
auto allLandmarks = dataNode["Landmarks"]["Landmark"];
|
auto allBlurList = qualitiesNode["BlurList"]["Blur"];
|
||||||
for (auto value : allLandmarks)
|
for (auto value : allBlurList)
|
||||||
data_.landmarks.push_back(value.asString());
|
data_.qualities.blurList.push_back(value.asString());
|
||||||
auto allPupils = dataNode["Pupils"]["Pupil"];
|
auto allMaskList = qualitiesNode["MaskList"]["Mask"];
|
||||||
for (auto value : allPupils)
|
for (auto value : allMaskList)
|
||||||
data_.pupils.push_back(value.asString());
|
data_.qualities.maskList.push_back(value.asString());
|
||||||
auto allGenderList = dataNode["GenderList"]["Gender"];
|
auto allGlassList = qualitiesNode["GlassList"]["Glass"];
|
||||||
for (auto value : allGenderList)
|
for (auto value : allGlassList)
|
||||||
data_.genderList.push_back(value.asString());
|
data_.qualities.glassList.push_back(value.asString());
|
||||||
auto allAgeList = dataNode["AgeList"]["Age"];
|
auto allFnfList = qualitiesNode["FnfList"]["Fnf"];
|
||||||
for (auto value : allAgeList)
|
for (auto value : allFnfList)
|
||||||
data_.ageList.push_back(value.asString());
|
data_.qualities.fnfList.push_back(value.asString());
|
||||||
auto allExpressions = dataNode["Expressions"]["Expression"];
|
auto allPoseList1 = qualitiesNode["PoseList"]["Pose"];
|
||||||
for (auto value : allExpressions)
|
for (auto value : allPoseList1)
|
||||||
data_.expressions.push_back(value.asString());
|
data_.qualities.poseList1.push_back(value.asString());
|
||||||
auto allGlasses = dataNode["Glasses"]["Glass"];
|
auto allIlluList = qualitiesNode["IlluList"]["Illu"];
|
||||||
for (auto value : allGlasses)
|
for (auto value : allIlluList)
|
||||||
data_.glasses.push_back(value.asString());
|
data_.qualities.illuList.push_back(value.asString());
|
||||||
auto allDenseFeatures = dataNode["DenseFeatures"]["DenseFeature"];
|
auto allDenseFeatures = dataNode["DenseFeatures"]["DenseFeature"];
|
||||||
for (auto value : allDenseFeatures)
|
for (auto value : allDenseFeatures)
|
||||||
data_.denseFeatures.push_back(value.asString());
|
data_.denseFeatures.push_back(value.asString());
|
||||||
|
auto allFaceProbabilityList = dataNode["FaceProbabilityList"]["FaceProbability"];
|
||||||
|
for (auto value : allFaceProbabilityList)
|
||||||
|
data_.faceProbabilityList.push_back(value.asString());
|
||||||
|
auto allHatList = dataNode["HatList"]["Hat"];
|
||||||
|
for (auto value : allHatList)
|
||||||
|
data_.hatList.push_back(value.asString());
|
||||||
|
auto allAgeList = dataNode["AgeList"]["Age"];
|
||||||
|
for (auto value : allAgeList)
|
||||||
|
data_.ageList.push_back(value.asString());
|
||||||
|
auto allBeuatyList = dataNode["BeuatyList"]["Beauty"];
|
||||||
|
for (auto value : allBeuatyList)
|
||||||
|
data_.beuatyList.push_back(value.asString());
|
||||||
|
auto allFaceRectangles = dataNode["FaceRectangles"]["FaceRectangle"];
|
||||||
|
for (auto value : allFaceRectangles)
|
||||||
|
data_.faceRectangles.push_back(value.asString());
|
||||||
|
auto allGlasses = dataNode["Glasses"]["Glass"];
|
||||||
|
for (auto value : allGlasses)
|
||||||
|
data_.glasses.push_back(value.asString());
|
||||||
|
auto allLandmarks = dataNode["Landmarks"]["Landmark"];
|
||||||
|
for (auto value : allLandmarks)
|
||||||
|
data_.landmarks.push_back(value.asString());
|
||||||
|
auto allExpressions = dataNode["Expressions"]["Expression"];
|
||||||
|
for (auto value : allExpressions)
|
||||||
|
data_.expressions.push_back(value.asString());
|
||||||
|
auto allPoseList = dataNode["PoseList"]["Pose"];
|
||||||
|
for (auto value : allPoseList)
|
||||||
|
data_.poseList.push_back(value.asString());
|
||||||
|
auto allGenderList = dataNode["GenderList"]["Gender"];
|
||||||
|
for (auto value : allGenderList)
|
||||||
|
data_.genderList.push_back(value.asString());
|
||||||
|
auto allPupils = dataNode["Pupils"]["Pupil"];
|
||||||
|
for (auto value : allPupils)
|
||||||
|
data_.pupils.push_back(value.asString());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user