diff --git a/CHANGELOG b/CHANGELOG index 2953d79c6..b11f9979d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +2020-10-13 Version: patch +- Release PedestrianDetectAttribute. + 2020-10-13 Version: patch - Release GenerateDynamicImage. diff --git a/facebody/CMakeLists.txt b/facebody/CMakeLists.txt index 3848ffdc1..b70e81125 100644 --- a/facebody/CMakeLists.txt +++ b/facebody/CMakeLists.txt @@ -49,8 +49,6 @@ set(facebody_public_header_model include/alibabacloud/facebody/model/DetectFaceResult.h include/alibabacloud/facebody/model/DetectIPCPedestrianRequest.h include/alibabacloud/facebody/model/DetectIPCPedestrianResult.h - include/alibabacloud/facebody/model/DetectIPCPedestrianOptimizedRequest.h - include/alibabacloud/facebody/model/DetectIPCPedestrianOptimizedResult.h include/alibabacloud/facebody/model/DetectLivingFaceRequest.h include/alibabacloud/facebody/model/DetectLivingFaceResult.h include/alibabacloud/facebody/model/DetectMaskRequest.h @@ -81,6 +79,8 @@ set(facebody_public_header_model include/alibabacloud/facebody/model/ListFaceDbsResult.h include/alibabacloud/facebody/model/ListFaceEntitiesRequest.h include/alibabacloud/facebody/model/ListFaceEntitiesResult.h + include/alibabacloud/facebody/model/PedestrianDetectAttributeRequest.h + include/alibabacloud/facebody/model/PedestrianDetectAttributeResult.h include/alibabacloud/facebody/model/RecognizeActionRequest.h include/alibabacloud/facebody/model/RecognizeActionResult.h include/alibabacloud/facebody/model/RecognizeExpressionRequest.h @@ -128,8 +128,6 @@ set(facebody_src src/model/DetectFaceResult.cc src/model/DetectIPCPedestrianRequest.cc src/model/DetectIPCPedestrianResult.cc - src/model/DetectIPCPedestrianOptimizedRequest.cc - src/model/DetectIPCPedestrianOptimizedResult.cc src/model/DetectLivingFaceRequest.cc src/model/DetectLivingFaceResult.cc src/model/DetectMaskRequest.cc @@ -160,6 +158,8 @@ set(facebody_src src/model/ListFaceDbsResult.cc src/model/ListFaceEntitiesRequest.cc src/model/ListFaceEntitiesResult.cc + src/model/PedestrianDetectAttributeRequest.cc + src/model/PedestrianDetectAttributeResult.cc src/model/RecognizeActionRequest.cc src/model/RecognizeActionResult.cc src/model/RecognizeExpressionRequest.cc diff --git a/facebody/include/alibabacloud/facebody/FacebodyClient.h b/facebody/include/alibabacloud/facebody/FacebodyClient.h index 6f7f36a01..9cf70c6c1 100644 --- a/facebody/include/alibabacloud/facebody/FacebodyClient.h +++ b/facebody/include/alibabacloud/facebody/FacebodyClient.h @@ -50,8 +50,6 @@ #include "model/DetectFaceResult.h" #include "model/DetectIPCPedestrianRequest.h" #include "model/DetectIPCPedestrianResult.h" -#include "model/DetectIPCPedestrianOptimizedRequest.h" -#include "model/DetectIPCPedestrianOptimizedResult.h" #include "model/DetectLivingFaceRequest.h" #include "model/DetectLivingFaceResult.h" #include "model/DetectMaskRequest.h" @@ -82,6 +80,8 @@ #include "model/ListFaceDbsResult.h" #include "model/ListFaceEntitiesRequest.h" #include "model/ListFaceEntitiesResult.h" +#include "model/PedestrianDetectAttributeRequest.h" +#include "model/PedestrianDetectAttributeResult.h" #include "model/RecognizeActionRequest.h" #include "model/RecognizeActionResult.h" #include "model/RecognizeExpressionRequest.h" @@ -149,9 +149,6 @@ namespace AlibabaCloud typedef Outcome DetectIPCPedestrianOutcome; typedef std::future DetectIPCPedestrianOutcomeCallable; typedef std::function&)> DetectIPCPedestrianAsyncHandler; - typedef Outcome DetectIPCPedestrianOptimizedOutcome; - typedef std::future DetectIPCPedestrianOptimizedOutcomeCallable; - typedef std::function&)> DetectIPCPedestrianOptimizedAsyncHandler; typedef Outcome DetectLivingFaceOutcome; typedef std::future DetectLivingFaceOutcomeCallable; typedef std::function&)> DetectLivingFaceAsyncHandler; @@ -197,6 +194,9 @@ namespace AlibabaCloud typedef Outcome ListFaceEntitiesOutcome; typedef std::future ListFaceEntitiesOutcomeCallable; typedef std::function&)> ListFaceEntitiesAsyncHandler; + typedef Outcome PedestrianDetectAttributeOutcome; + typedef std::future PedestrianDetectAttributeOutcomeCallable; + typedef std::function&)> PedestrianDetectAttributeAsyncHandler; typedef Outcome RecognizeActionOutcome; typedef std::future RecognizeActionOutcomeCallable; typedef std::function&)> RecognizeActionAsyncHandler; @@ -268,9 +268,6 @@ namespace AlibabaCloud DetectIPCPedestrianOutcome detectIPCPedestrian(const Model::DetectIPCPedestrianRequest &request)const; void detectIPCPedestrianAsync(const Model::DetectIPCPedestrianRequest& request, const DetectIPCPedestrianAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; DetectIPCPedestrianOutcomeCallable detectIPCPedestrianCallable(const Model::DetectIPCPedestrianRequest& request) const; - DetectIPCPedestrianOptimizedOutcome detectIPCPedestrianOptimized(const Model::DetectIPCPedestrianOptimizedRequest &request)const; - void detectIPCPedestrianOptimizedAsync(const Model::DetectIPCPedestrianOptimizedRequest& request, const DetectIPCPedestrianOptimizedAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; - DetectIPCPedestrianOptimizedOutcomeCallable detectIPCPedestrianOptimizedCallable(const Model::DetectIPCPedestrianOptimizedRequest& request) const; DetectLivingFaceOutcome detectLivingFace(const Model::DetectLivingFaceRequest &request)const; void detectLivingFaceAsync(const Model::DetectLivingFaceRequest& request, const DetectLivingFaceAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; DetectLivingFaceOutcomeCallable detectLivingFaceCallable(const Model::DetectLivingFaceRequest& request) const; @@ -316,6 +313,9 @@ namespace AlibabaCloud ListFaceEntitiesOutcome listFaceEntities(const Model::ListFaceEntitiesRequest &request)const; void listFaceEntitiesAsync(const Model::ListFaceEntitiesRequest& request, const ListFaceEntitiesAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; ListFaceEntitiesOutcomeCallable listFaceEntitiesCallable(const Model::ListFaceEntitiesRequest& request) const; + PedestrianDetectAttributeOutcome pedestrianDetectAttribute(const Model::PedestrianDetectAttributeRequest &request)const; + void pedestrianDetectAttributeAsync(const Model::PedestrianDetectAttributeRequest& request, const PedestrianDetectAttributeAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; + PedestrianDetectAttributeOutcomeCallable pedestrianDetectAttributeCallable(const Model::PedestrianDetectAttributeRequest& request) const; RecognizeActionOutcome recognizeAction(const Model::RecognizeActionRequest &request)const; void recognizeActionAsync(const Model::RecognizeActionRequest& request, const RecognizeActionAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; RecognizeActionOutcomeCallable recognizeActionCallable(const Model::RecognizeActionRequest& request) const; diff --git a/facebody/include/alibabacloud/facebody/model/DetectIPCPedestrianOptimizedResult.h b/facebody/include/alibabacloud/facebody/model/DetectIPCPedestrianOptimizedResult.h deleted file mode 100644 index 087d98ec7..000000000 --- a/facebody/include/alibabacloud/facebody/model/DetectIPCPedestrianOptimizedResult.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2009-2017 Alibaba Cloud All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef ALIBABACLOUD_FACEBODY_MODEL_DETECTIPCPEDESTRIANOPTIMIZEDRESULT_H_ -#define ALIBABACLOUD_FACEBODY_MODEL_DETECTIPCPEDESTRIANOPTIMIZEDRESULT_H_ - -#include -#include -#include -#include -#include - -namespace AlibabaCloud -{ - namespace Facebody - { - namespace Model - { - class ALIBABACLOUD_FACEBODY_EXPORT DetectIPCPedestrianOptimizedResult : public ServiceResult - { - public: - struct Data - { - struct ImageInfoListItem - { - struct Element - { - float score; - std::vector boxes; - }; - std::vector elements; - }; - std::vector imageInfoList; - }; - - - DetectIPCPedestrianOptimizedResult(); - explicit DetectIPCPedestrianOptimizedResult(const std::string &payload); - ~DetectIPCPedestrianOptimizedResult(); - Data getData()const; - - protected: - void parse(const std::string &payload); - private: - Data data_; - - }; - } - } -} -#endif // !ALIBABACLOUD_FACEBODY_MODEL_DETECTIPCPEDESTRIANOPTIMIZEDRESULT_H_ \ No newline at end of file diff --git a/facebody/include/alibabacloud/facebody/model/ExtractPedestrianFeatureAttributeRequest.h b/facebody/include/alibabacloud/facebody/model/ExtractPedestrianFeatureAttributeRequest.h index a22249ff0..fec20e7d9 100644 --- a/facebody/include/alibabacloud/facebody/model/ExtractPedestrianFeatureAttributeRequest.h +++ b/facebody/include/alibabacloud/facebody/model/ExtractPedestrianFeatureAttributeRequest.h @@ -35,10 +35,13 @@ namespace AlibabaCloud ExtractPedestrianFeatureAttributeRequest(); ~ExtractPedestrianFeatureAttributeRequest(); + std::string getMode()const; + void setMode(const std::string& mode); std::string getImageURL()const; void setImageURL(const std::string& imageURL); private: + std::string mode_; std::string imageURL_; }; diff --git a/facebody/include/alibabacloud/facebody/model/DetectIPCPedestrianOptimizedRequest.h b/facebody/include/alibabacloud/facebody/model/PedestrianDetectAttributeRequest.h similarity index 53% rename from facebody/include/alibabacloud/facebody/model/DetectIPCPedestrianOptimizedRequest.h rename to facebody/include/alibabacloud/facebody/model/PedestrianDetectAttributeRequest.h index f99dfc465..7fc741091 100644 --- a/facebody/include/alibabacloud/facebody/model/DetectIPCPedestrianOptimizedRequest.h +++ b/facebody/include/alibabacloud/facebody/model/PedestrianDetectAttributeRequest.h @@ -14,12 +14,12 @@ * limitations under the License. */ -#ifndef ALIBABACLOUD_FACEBODY_MODEL_DETECTIPCPEDESTRIANOPTIMIZEDREQUEST_H_ -#define ALIBABACLOUD_FACEBODY_MODEL_DETECTIPCPEDESTRIANOPTIMIZEDREQUEST_H_ +#ifndef ALIBABACLOUD_FACEBODY_MODEL_PEDESTRIANDETECTATTRIBUTEREQUEST_H_ +#define ALIBABACLOUD_FACEBODY_MODEL_PEDESTRIANDETECTATTRIBUTEREQUEST_H_ #include #include -#include +#include #include namespace AlibabaCloud @@ -28,27 +28,21 @@ namespace AlibabaCloud { namespace Model { - class ALIBABACLOUD_FACEBODY_EXPORT DetectIPCPedestrianOptimizedRequest : public RoaServiceRequest + class ALIBABACLOUD_FACEBODY_EXPORT PedestrianDetectAttributeRequest : public RpcServiceRequest { public: - DetectIPCPedestrianOptimizedRequest(); - ~DetectIPCPedestrianOptimizedRequest(); + PedestrianDetectAttributeRequest(); + ~PedestrianDetectAttributeRequest(); - std::string getImageData()const; - void setImageData(const std::string& imageData); - long getWidth()const; - void setWidth(long width); - long getHeight()const; - void setHeight(long height); + std::string getImageURL()const; + void setImageURL(const std::string& imageURL); private: - std::string imageData_; - long width_; - long height_; + std::string imageURL_; }; } } } -#endif // !ALIBABACLOUD_FACEBODY_MODEL_DETECTIPCPEDESTRIANOPTIMIZEDREQUEST_H_ \ No newline at end of file +#endif // !ALIBABACLOUD_FACEBODY_MODEL_PEDESTRIANDETECTATTRIBUTEREQUEST_H_ \ No newline at end of file diff --git a/facebody/include/alibabacloud/facebody/model/PedestrianDetectAttributeResult.h b/facebody/include/alibabacloud/facebody/model/PedestrianDetectAttributeResult.h new file mode 100644 index 000000000..0da640652 --- /dev/null +++ b/facebody/include/alibabacloud/facebody/model/PedestrianDetectAttributeResult.h @@ -0,0 +1,140 @@ +/* + * Copyright 2009-2017 Alibaba Cloud All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ALIBABACLOUD_FACEBODY_MODEL_PEDESTRIANDETECTATTRIBUTERESULT_H_ +#define ALIBABACLOUD_FACEBODY_MODEL_PEDESTRIANDETECTATTRIBUTERESULT_H_ + +#include +#include +#include +#include +#include + +namespace AlibabaCloud +{ + namespace Facebody + { + namespace Model + { + class ALIBABACLOUD_FACEBODY_EXPORT PedestrianDetectAttributeResult : public ServiceResult + { + public: + struct Data + { + struct AttributesItem + { + struct Age + { + float score; + std::string name; + }; + struct Backpack + { + float score; + std::string name; + }; + struct Gender + { + float score; + std::string name; + }; + struct Glasses + { + float score; + std::string name; + }; + struct Handbag + { + float score; + std::string name; + }; + struct Hat + { + float score; + std::string name; + }; + struct LowerColor + { + float score; + std::string name; + }; + struct LowerWear + { + float score; + std::string name; + }; + struct Orient + { + float score; + std::string name; + }; + struct ShoulderBag + { + float score; + std::string name; + }; + struct UpperColor + { + float score; + std::string name; + }; + struct UpperWear + { + float score; + std::string name; + }; + Backpack backpack; + LowerWear lowerWear; + Orient orient; + ShoulderBag shoulderBag; + LowerColor lowerColor; + Glasses glasses; + UpperColor upperColor; + Handbag handbag; + Hat hat; + Gender gender; + Age age; + UpperWear upperWear; + }; + struct BoxesItem + { + float score; + float bottomRightY; + float bottomRightX; + float topLeftY; + float topLeftX; + }; + int personNumber; + std::vector attributes; + std::vector boxes; + }; + + + PedestrianDetectAttributeResult(); + explicit PedestrianDetectAttributeResult(const std::string &payload); + ~PedestrianDetectAttributeResult(); + Data getData()const; + + protected: + void parse(const std::string &payload); + private: + Data data_; + + }; + } + } +} +#endif // !ALIBABACLOUD_FACEBODY_MODEL_PEDESTRIANDETECTATTRIBUTERESULT_H_ \ No newline at end of file diff --git a/facebody/src/FacebodyClient.cc b/facebody/src/FacebodyClient.cc index 27e7ef68e..1e6458fa4 100644 --- a/facebody/src/FacebodyClient.cc +++ b/facebody/src/FacebodyClient.cc @@ -31,21 +31,21 @@ FacebodyClient::FacebodyClient(const Credentials &credentials, const ClientConfi RpcServiceClient(SERVICE_NAME, std::make_shared(credentials), configuration) { auto locationClient = std::make_shared(credentials, configuration); - endpointProvider_ = std::make_shared(locationClient, configuration.regionId(), SERVICE_NAME, ""); + endpointProvider_ = std::make_shared(locationClient, configuration.regionId(), SERVICE_NAME, "facebody"); } FacebodyClient::FacebodyClient(const std::shared_ptr& credentialsProvider, const ClientConfiguration & configuration) : RpcServiceClient(SERVICE_NAME, credentialsProvider, configuration) { auto locationClient = std::make_shared(credentialsProvider, configuration); - endpointProvider_ = std::make_shared(locationClient, configuration.regionId(), SERVICE_NAME, ""); + endpointProvider_ = std::make_shared(locationClient, configuration.regionId(), SERVICE_NAME, "facebody"); } FacebodyClient::FacebodyClient(const std::string & accessKeyId, const std::string & accessKeySecret, const ClientConfiguration & configuration) : RpcServiceClient(SERVICE_NAME, std::make_shared(accessKeyId, accessKeySecret), configuration) { auto locationClient = std::make_shared(accessKeyId, accessKeySecret, configuration); - endpointProvider_ = std::make_shared(locationClient, configuration.regionId(), SERVICE_NAME, ""); + endpointProvider_ = std::make_shared(locationClient, configuration.regionId(), SERVICE_NAME, "facebody"); } FacebodyClient::~FacebodyClient() @@ -555,42 +555,6 @@ FacebodyClient::DetectIPCPedestrianOutcomeCallable FacebodyClient::detectIPCPede return task->get_future(); } -FacebodyClient::DetectIPCPedestrianOptimizedOutcome FacebodyClient::detectIPCPedestrianOptimized(const DetectIPCPedestrianOptimizedRequest &request) const -{ - auto endpointOutcome = endpointProvider_->getEndpoint(); - if (!endpointOutcome.isSuccess()) - return DetectIPCPedestrianOptimizedOutcome(endpointOutcome.error()); - - auto outcome = makeRequest(endpointOutcome.result(), request); - - if (outcome.isSuccess()) - return DetectIPCPedestrianOptimizedOutcome(DetectIPCPedestrianOptimizedResult(outcome.result())); - else - return DetectIPCPedestrianOptimizedOutcome(outcome.error()); -} - -void FacebodyClient::detectIPCPedestrianOptimizedAsync(const DetectIPCPedestrianOptimizedRequest& request, const DetectIPCPedestrianOptimizedAsyncHandler& handler, const std::shared_ptr& context) const -{ - auto fn = [this, request, handler, context]() - { - handler(this, request, detectIPCPedestrianOptimized(request), context); - }; - - asyncExecute(new Runnable(fn)); -} - -FacebodyClient::DetectIPCPedestrianOptimizedOutcomeCallable FacebodyClient::detectIPCPedestrianOptimizedCallable(const DetectIPCPedestrianOptimizedRequest &request) const -{ - auto task = std::make_shared>( - [this, request]() - { - return this->detectIPCPedestrianOptimized(request); - }); - - asyncExecute(new Runnable([task]() { (*task)(); })); - return task->get_future(); -} - FacebodyClient::DetectLivingFaceOutcome FacebodyClient::detectLivingFace(const DetectLivingFaceRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); @@ -1131,6 +1095,42 @@ FacebodyClient::ListFaceEntitiesOutcomeCallable FacebodyClient::listFaceEntities return task->get_future(); } +FacebodyClient::PedestrianDetectAttributeOutcome FacebodyClient::pedestrianDetectAttribute(const PedestrianDetectAttributeRequest &request) const +{ + auto endpointOutcome = endpointProvider_->getEndpoint(); + if (!endpointOutcome.isSuccess()) + return PedestrianDetectAttributeOutcome(endpointOutcome.error()); + + auto outcome = makeRequest(endpointOutcome.result(), request); + + if (outcome.isSuccess()) + return PedestrianDetectAttributeOutcome(PedestrianDetectAttributeResult(outcome.result())); + else + return PedestrianDetectAttributeOutcome(outcome.error()); +} + +void FacebodyClient::pedestrianDetectAttributeAsync(const PedestrianDetectAttributeRequest& request, const PedestrianDetectAttributeAsyncHandler& handler, const std::shared_ptr& context) const +{ + auto fn = [this, request, handler, context]() + { + handler(this, request, pedestrianDetectAttribute(request), context); + }; + + asyncExecute(new Runnable(fn)); +} + +FacebodyClient::PedestrianDetectAttributeOutcomeCallable FacebodyClient::pedestrianDetectAttributeCallable(const PedestrianDetectAttributeRequest &request) const +{ + auto task = std::make_shared>( + [this, request]() + { + return this->pedestrianDetectAttribute(request); + }); + + asyncExecute(new Runnable([task]() { (*task)(); })); + return task->get_future(); +} + FacebodyClient::RecognizeActionOutcome FacebodyClient::recognizeAction(const RecognizeActionRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); diff --git a/facebody/src/model/DetectIPCPedestrianOptimizedRequest.cc b/facebody/src/model/DetectIPCPedestrianOptimizedRequest.cc deleted file mode 100644 index ac131f274..000000000 --- a/facebody/src/model/DetectIPCPedestrianOptimizedRequest.cc +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2009-2017 Alibaba Cloud All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include - -using AlibabaCloud::Facebody::Model::DetectIPCPedestrianOptimizedRequest; - -DetectIPCPedestrianOptimizedRequest::DetectIPCPedestrianOptimizedRequest() : - RoaServiceRequest("facebody", "2020-09-10") -{ - setResourcePath("/viapi/k8s/facebody/detect-ipc-pedestrian-optimized"); - setMethod(HttpRequest::Method::Post); -} - -DetectIPCPedestrianOptimizedRequest::~DetectIPCPedestrianOptimizedRequest() -{} - -std::string DetectIPCPedestrianOptimizedRequest::getImageData()const -{ - return imageData_; -} - -void DetectIPCPedestrianOptimizedRequest::setImageData(const std::string& imageData) -{ - imageData_ = imageData; - setBodyParameter("ImageData", imageData); -} - -long DetectIPCPedestrianOptimizedRequest::getWidth()const -{ - return width_; -} - -void DetectIPCPedestrianOptimizedRequest::setWidth(long width) -{ - width_ = width; - setBodyParameter("Width", std::to_string(width)); -} - -long DetectIPCPedestrianOptimizedRequest::getHeight()const -{ - return height_; -} - -void DetectIPCPedestrianOptimizedRequest::setHeight(long height) -{ - height_ = height; - setBodyParameter("Height", std::to_string(height)); -} - diff --git a/facebody/src/model/DetectIPCPedestrianOptimizedResult.cc b/facebody/src/model/DetectIPCPedestrianOptimizedResult.cc deleted file mode 100644 index 06eca8c43..000000000 --- a/facebody/src/model/DetectIPCPedestrianOptimizedResult.cc +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2009-2017 Alibaba Cloud All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include - -using namespace AlibabaCloud::Facebody; -using namespace AlibabaCloud::Facebody::Model; - -DetectIPCPedestrianOptimizedResult::DetectIPCPedestrianOptimizedResult() : - ServiceResult() -{} - -DetectIPCPedestrianOptimizedResult::DetectIPCPedestrianOptimizedResult(const std::string &payload) : - ServiceResult() -{ - parse(payload); -} - -DetectIPCPedestrianOptimizedResult::~DetectIPCPedestrianOptimizedResult() -{} - -void DetectIPCPedestrianOptimizedResult::parse(const std::string &payload) -{ - Json::Reader reader; - Json::Value value; - reader.parse(payload, value); - setRequestId(value["RequestId"].asString()); - auto dataNode = value["Data"]; - auto allImageInfoListNode = dataNode["ImageInfoList"]["imageInfoListItem"]; - for (auto dataNodeImageInfoListimageInfoListItem : allImageInfoListNode) - { - Data::ImageInfoListItem imageInfoListItemObject; - auto allElementsNode = allImageInfoListNode["Elements"]["Element"]; - for (auto allImageInfoListNodeElementsElement : allElementsNode) - { - Data::ImageInfoListItem::Element elementsObject; - if(!allImageInfoListNodeElementsElement["Score"].isNull()) - elementsObject.score = std::stof(allImageInfoListNodeElementsElement["Score"].asString()); - auto allBoxes = value["Boxes"]["Box"]; - for (auto value : allBoxes) - elementsObject.boxes.push_back(value.asString()); - imageInfoListItemObject.elements.push_back(elementsObject); - } - data_.imageInfoList.push_back(imageInfoListItemObject); - } - -} - -DetectIPCPedestrianOptimizedResult::Data DetectIPCPedestrianOptimizedResult::getData()const -{ - return data_; -} - diff --git a/facebody/src/model/ExtractPedestrianFeatureAttributeRequest.cc b/facebody/src/model/ExtractPedestrianFeatureAttributeRequest.cc index 5643ebd13..d4312db2f 100644 --- a/facebody/src/model/ExtractPedestrianFeatureAttributeRequest.cc +++ b/facebody/src/model/ExtractPedestrianFeatureAttributeRequest.cc @@ -27,6 +27,17 @@ ExtractPedestrianFeatureAttributeRequest::ExtractPedestrianFeatureAttributeReque ExtractPedestrianFeatureAttributeRequest::~ExtractPedestrianFeatureAttributeRequest() {} +std::string ExtractPedestrianFeatureAttributeRequest::getMode()const +{ + return mode_; +} + +void ExtractPedestrianFeatureAttributeRequest::setMode(const std::string& mode) +{ + mode_ = mode; + setBodyParameter("Mode", mode); +} + std::string ExtractPedestrianFeatureAttributeRequest::getImageURL()const { return imageURL_; diff --git a/facebody/src/model/PedestrianDetectAttributeRequest.cc b/facebody/src/model/PedestrianDetectAttributeRequest.cc new file mode 100644 index 000000000..689ec5763 --- /dev/null +++ b/facebody/src/model/PedestrianDetectAttributeRequest.cc @@ -0,0 +1,40 @@ +/* + * Copyright 2009-2017 Alibaba Cloud All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +using AlibabaCloud::Facebody::Model::PedestrianDetectAttributeRequest; + +PedestrianDetectAttributeRequest::PedestrianDetectAttributeRequest() : + RpcServiceRequest("facebody", "2019-12-30", "PedestrianDetectAttribute") +{ + setMethod(HttpRequest::Method::Post); +} + +PedestrianDetectAttributeRequest::~PedestrianDetectAttributeRequest() +{} + +std::string PedestrianDetectAttributeRequest::getImageURL()const +{ + return imageURL_; +} + +void PedestrianDetectAttributeRequest::setImageURL(const std::string& imageURL) +{ + imageURL_ = imageURL; + setBodyParameter("ImageURL", imageURL); +} + diff --git a/facebody/src/model/PedestrianDetectAttributeResult.cc b/facebody/src/model/PedestrianDetectAttributeResult.cc new file mode 100644 index 000000000..7074eadab --- /dev/null +++ b/facebody/src/model/PedestrianDetectAttributeResult.cc @@ -0,0 +1,134 @@ +/* + * Copyright 2009-2017 Alibaba Cloud All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +using namespace AlibabaCloud::Facebody; +using namespace AlibabaCloud::Facebody::Model; + +PedestrianDetectAttributeResult::PedestrianDetectAttributeResult() : + ServiceResult() +{} + +PedestrianDetectAttributeResult::PedestrianDetectAttributeResult(const std::string &payload) : + ServiceResult() +{ + parse(payload); +} + +PedestrianDetectAttributeResult::~PedestrianDetectAttributeResult() +{} + +void PedestrianDetectAttributeResult::parse(const std::string &payload) +{ + Json::Reader reader; + Json::Value value; + reader.parse(payload, value); + setRequestId(value["RequestId"].asString()); + auto dataNode = value["Data"]; + if(!dataNode["PersonNumber"].isNull()) + data_.personNumber = std::stoi(dataNode["PersonNumber"].asString()); + auto allAttributesNode = dataNode["Attributes"]["AttributesItem"]; + for (auto dataNodeAttributesAttributesItem : allAttributesNode) + { + Data::AttributesItem attributesItemObject; + auto ageNode = value["Age"]; + if(!ageNode["Name"].isNull()) + attributesItemObject.age.name = ageNode["Name"].asString(); + if(!ageNode["Score"].isNull()) + attributesItemObject.age.score = std::stof(ageNode["Score"].asString()); + auto backpackNode = value["Backpack"]; + if(!backpackNode["Name"].isNull()) + attributesItemObject.backpack.name = backpackNode["Name"].asString(); + if(!backpackNode["Score"].isNull()) + attributesItemObject.backpack.score = std::stof(backpackNode["Score"].asString()); + auto genderNode = value["Gender"]; + if(!genderNode["Name"].isNull()) + attributesItemObject.gender.name = genderNode["Name"].asString(); + if(!genderNode["Score"].isNull()) + attributesItemObject.gender.score = std::stof(genderNode["Score"].asString()); + auto glassesNode = value["Glasses"]; + if(!glassesNode["Name"].isNull()) + attributesItemObject.glasses.name = glassesNode["Name"].asString(); + if(!glassesNode["Score"].isNull()) + attributesItemObject.glasses.score = std::stof(glassesNode["Score"].asString()); + auto handbagNode = value["Handbag"]; + if(!handbagNode["Name"].isNull()) + attributesItemObject.handbag.name = handbagNode["Name"].asString(); + if(!handbagNode["Score"].isNull()) + attributesItemObject.handbag.score = std::stof(handbagNode["Score"].asString()); + auto hatNode = value["Hat"]; + if(!hatNode["Name"].isNull()) + attributesItemObject.hat.name = hatNode["Name"].asString(); + if(!hatNode["Score"].isNull()) + attributesItemObject.hat.score = std::stof(hatNode["Score"].asString()); + auto lowerColorNode = value["LowerColor"]; + if(!lowerColorNode["Name"].isNull()) + attributesItemObject.lowerColor.name = lowerColorNode["Name"].asString(); + if(!lowerColorNode["Score"].isNull()) + attributesItemObject.lowerColor.score = std::stof(lowerColorNode["Score"].asString()); + auto lowerWearNode = value["LowerWear"]; + if(!lowerWearNode["Name"].isNull()) + attributesItemObject.lowerWear.name = lowerWearNode["Name"].asString(); + if(!lowerWearNode["Score"].isNull()) + attributesItemObject.lowerWear.score = std::stof(lowerWearNode["Score"].asString()); + auto orientNode = value["Orient"]; + if(!orientNode["Name"].isNull()) + attributesItemObject.orient.name = orientNode["Name"].asString(); + if(!orientNode["Score"].isNull()) + attributesItemObject.orient.score = std::stof(orientNode["Score"].asString()); + auto shoulderBagNode = value["ShoulderBag"]; + if(!shoulderBagNode["Name"].isNull()) + attributesItemObject.shoulderBag.name = shoulderBagNode["Name"].asString(); + if(!shoulderBagNode["Score"].isNull()) + attributesItemObject.shoulderBag.score = std::stof(shoulderBagNode["Score"].asString()); + auto upperColorNode = value["UpperColor"]; + if(!upperColorNode["Name"].isNull()) + attributesItemObject.upperColor.name = upperColorNode["Name"].asString(); + if(!upperColorNode["Score"].isNull()) + attributesItemObject.upperColor.score = std::stof(upperColorNode["Score"].asString()); + auto upperWearNode = value["UpperWear"]; + if(!upperWearNode["Name"].isNull()) + attributesItemObject.upperWear.name = upperWearNode["Name"].asString(); + if(!upperWearNode["Score"].isNull()) + attributesItemObject.upperWear.score = std::stof(upperWearNode["Score"].asString()); + data_.attributes.push_back(attributesItemObject); + } + auto allBoxesNode = dataNode["Boxes"]["BoxesItem"]; + for (auto dataNodeBoxesBoxesItem : allBoxesNode) + { + Data::BoxesItem boxesItemObject; + if(!dataNodeBoxesBoxesItem["Score"].isNull()) + boxesItemObject.score = std::stof(dataNodeBoxesBoxesItem["Score"].asString()); + if(!dataNodeBoxesBoxesItem["TopLeftX"].isNull()) + boxesItemObject.topLeftX = std::stof(dataNodeBoxesBoxesItem["TopLeftX"].asString()); + if(!dataNodeBoxesBoxesItem["TopLeftY"].isNull()) + boxesItemObject.topLeftY = std::stof(dataNodeBoxesBoxesItem["TopLeftY"].asString()); + if(!dataNodeBoxesBoxesItem["BottomRightX"].isNull()) + boxesItemObject.bottomRightX = std::stof(dataNodeBoxesBoxesItem["BottomRightX"].asString()); + if(!dataNodeBoxesBoxesItem["BottomRightY"].isNull()) + boxesItemObject.bottomRightY = std::stof(dataNodeBoxesBoxesItem["BottomRightY"].asString()); + data_.boxes.push_back(boxesItemObject); + } + +} + +PedestrianDetectAttributeResult::Data PedestrianDetectAttributeResult::getData()const +{ + return data_; +} +