提交修改
This commit is contained in:
parent
f09e5eddb9
commit
3e5ca3c649
@ -14,7 +14,11 @@ import org.springframework.stereotype.Component;
|
||||
/**
|
||||
* https://next.api.aliyun.com/api/facebody/2019-12-30/DetectPedestrianIntrusion
|
||||
* <p>
|
||||
* 人体检测
|
||||
* 行人入侵检测
|
||||
*
|
||||
* DetectPedestrianIntrusion
|
||||
*
|
||||
*
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
|
||||
@ -3,6 +3,8 @@ package com.heyu.api.alibaba.request.facebody;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ADetectPedestrianIntrusionRequestDetectRegion {
|
||||
|
||||
|
||||
@ -10,18 +10,15 @@ import com.heyu.api.data.annotation.CacheResult;
|
||||
import com.heyu.api.data.annotation.NotIntercept;
|
||||
import com.heyu.api.data.utils.ApiR;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import com.heyu.api.request.face.DetectInfraredLivingFaceReq;
|
||||
import com.heyu.api.resp.face.DetectInfraredLivingFaceListResp;
|
||||
import com.heyu.api.resp.face.DetectInfraredLivingFaceResp;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.aspectj.weaver.ISourceContext;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/***
|
||||
|
||||
@ -0,0 +1,88 @@
|
||||
package com.heyu.api.controller.face;
|
||||
|
||||
|
||||
import com.aliyun.facebody20191230.models.DetectPedestrianIntrusionResponse;
|
||||
import com.aliyun.facebody20191230.models.DetectPedestrianIntrusionResponseBody;
|
||||
import com.heyu.api.alibaba.handle.facebody.ADetectPedestrianIntrusionHandle;
|
||||
import com.heyu.api.alibaba.request.facebody.ADetectPedestrianIntrusionRequest;
|
||||
import com.heyu.api.alibaba.request.facebody.ADetectPedestrianIntrusionRequestDetectRegion;
|
||||
import com.heyu.api.alibaba.request.facebody.ADetectPedestrianIntrusionRequestDetectRegionRect;
|
||||
import com.heyu.api.controller.BaseController;
|
||||
import com.heyu.api.data.annotation.CacheResult;
|
||||
import com.heyu.api.data.annotation.NotIntercept;
|
||||
import com.heyu.api.data.utils.ApiR;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import com.heyu.api.request.face.DeepfakeFaceReq;
|
||||
import com.heyu.api.request.face.DetectPedestrianIntrusionReq;
|
||||
import com.heyu.api.request.face.DetectRegionDTO;
|
||||
import com.heyu.api.resp.face.DataElementsBox;
|
||||
import com.heyu.api.resp.face.DetectPedestrianIntrusionResp;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/pedestrian/intrusion")
|
||||
@NotIntercept
|
||||
public class DetectPedestrianIntrusionController extends BaseController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private ADetectPedestrianIntrusionHandle aDetectPedestrianIntrusionHandle;
|
||||
|
||||
|
||||
@RequestMapping("/check")
|
||||
@CacheResult
|
||||
public R check(DetectPedestrianIntrusionReq req) {
|
||||
|
||||
DetectPedestrianIntrusionResp resp = new DetectPedestrianIntrusionResp();
|
||||
|
||||
ADetectPedestrianIntrusionRequest request = new ADetectPedestrianIntrusionRequest();
|
||||
request.setImageBase64(req.getImageBase64());
|
||||
request.setImageUrl(req.getImageUrl());
|
||||
|
||||
request.setRegionType("rectangle");
|
||||
List<ADetectPedestrianIntrusionRequestDetectRegion> detectRegionList = new ArrayList<>();
|
||||
for (DetectRegionDTO detectRegionDTO : req.getDetectRegionDTOList()) {
|
||||
ADetectPedestrianIntrusionRequestDetectRegion detectRegion = new ADetectPedestrianIntrusionRequestDetectRegion();
|
||||
|
||||
ADetectPedestrianIntrusionRequestDetectRegionRect rect = new ADetectPedestrianIntrusionRequestDetectRegionRect();
|
||||
rect.setLeft(detectRegionDTO.getLeft());
|
||||
rect.setRight(detectRegionDTO.getRight());
|
||||
rect.setTop(detectRegionDTO.getTop());
|
||||
rect.setBottom(detectRegionDTO.getBottom());
|
||||
detectRegion.setRect(rect);
|
||||
detectRegionList.add(detectRegion);
|
||||
}
|
||||
|
||||
ApiR<DetectPedestrianIntrusionResponse> aR = aDetectPedestrianIntrusionHandle.handle(request);
|
||||
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
|
||||
DetectPedestrianIntrusionResponseBody responseBody = aR.getData().getBody();
|
||||
DetectPedestrianIntrusionResponseBody.DetectPedestrianIntrusionResponseBodyData responseBodyData = responseBody.getData();
|
||||
if (CollectionUtils.isNotEmpty(responseBodyData.getElements())) {
|
||||
for (DetectPedestrianIntrusionResponseBody.DetectPedestrianIntrusionResponseBodyDataElements element : responseBodyData.getElements()) {
|
||||
resp.setType(element.getType());
|
||||
resp.setScore(element.getScore());
|
||||
resp.setIsIntrude(element.getIsIntrude());
|
||||
DataElementsBox dataElementsBox = new DataElementsBox();
|
||||
DetectPedestrianIntrusionResponseBody.DetectPedestrianIntrusionResponseBodyDataElementsBox box = element.getBox();
|
||||
|
||||
dataElementsBox.setBottom(box.getBottom());
|
||||
dataElementsBox.setTop(box.getTop());
|
||||
dataElementsBox.setLeft(box.getLeft());
|
||||
dataElementsBox.setRight(box.getRight());
|
||||
resp.setBox(dataElementsBox);
|
||||
return R.ok().setData(resp);
|
||||
}
|
||||
}
|
||||
}
|
||||
return R.error(aR.getErrorMsg());
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package com.heyu.api.request.face;
|
||||
|
||||
|
||||
import com.heyu.api.data.dto.BaseRequest;
|
||||
import com.heyu.api.request.CommonReq;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/***
|
||||
* https://next.api.aliyun.com/api/facebody/2019-12-30/DetectPedestrianIntrusion?RegionId=cn-shanghai
|
||||
*
|
||||
*
|
||||
*/
|
||||
@Data
|
||||
public class DetectPedestrianIntrusionReq extends CommonReq {
|
||||
|
||||
/***
|
||||
*行人入侵检测
|
||||
*
|
||||
* DetectPedestrianIntrusion
|
||||
*
|
||||
*
|
||||
*/
|
||||
private List<DetectRegionDTO> detectRegionDTOList ;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,47 @@
|
||||
package com.heyu.api.request.face;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class DetectRegionDTO {
|
||||
|
||||
/***
|
||||
* 矩形区域的左上角横轴坐标。
|
||||
*
|
||||
* 注意 该字段类型为 Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于 9007199254740991。
|
||||
* 示例值:
|
||||
* 0
|
||||
*
|
||||
*/
|
||||
private Long left;
|
||||
|
||||
|
||||
/***
|
||||
* 矩形区域的左上角纵轴坐标。
|
||||
*
|
||||
* 注意 该字段类型为 Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于 9007199254740991。
|
||||
* 示例值:
|
||||
* 0
|
||||
*/
|
||||
private Long top;
|
||||
|
||||
/***
|
||||
* 矩形区域的右下角横轴坐标。
|
||||
*
|
||||
* 注意 该字段类型为 Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于 9007199254740991。
|
||||
* 示例值:
|
||||
* 300
|
||||
*/
|
||||
private Long right;
|
||||
|
||||
/***
|
||||
* 矩形区域的右下角纵轴坐标。
|
||||
*
|
||||
* 注意 该字段类型为 Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于 9007199254740991。
|
||||
* 示例值:
|
||||
* 300
|
||||
*/
|
||||
private Long bottom;
|
||||
|
||||
}
|
||||
@ -0,0 +1,53 @@
|
||||
package com.heyu.api.resp.face;
|
||||
|
||||
|
||||
import com.aliyun.tea.NameInMap;
|
||||
import lombok.Data;
|
||||
|
||||
/***
|
||||
* 检测框坐标。
|
||||
*
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class DataElementsBox {
|
||||
|
||||
|
||||
/***
|
||||
* 矩形区域的右下角纵轴坐标。
|
||||
*
|
||||
* 注意 请注意,该值为 Long 类型,在某些语言中可能存在精度丢失的风险,请小心使用。
|
||||
* 示例值:
|
||||
* 551
|
||||
*/
|
||||
public Long bottom;
|
||||
|
||||
/***
|
||||
* 矩形区域的左上角横轴坐标。
|
||||
*
|
||||
* 注意 请注意,该值为 Long 类型,在某些语言中可能存在精度丢失的风险,请小心使用。
|
||||
* 示例值:
|
||||
* 175
|
||||
*/
|
||||
public Long left;
|
||||
|
||||
/***
|
||||
* 矩形区域的右下角横轴坐标。
|
||||
*
|
||||
* 注意 请注意,该值为 Long 类型,在某些语言中可能存在精度丢失的风险,请小心使用。
|
||||
* 示例值:
|
||||
* 418
|
||||
*/
|
||||
public Long right;
|
||||
|
||||
|
||||
/***
|
||||
* 矩形区域的右下角纵轴坐标。
|
||||
*
|
||||
* 注意 请注意,该值为 Long 类型,在某些语言中可能存在精度丢失的风险,请小心使用。
|
||||
* 示例值:
|
||||
* 551
|
||||
*
|
||||
*/
|
||||
public Long top;
|
||||
}
|
||||
@ -0,0 +1,58 @@
|
||||
package com.heyu.api.resp.face;
|
||||
|
||||
|
||||
import com.aliyun.facebody20191230.models.DetectPedestrianIntrusionResponseBody;
|
||||
import com.aliyun.tea.NameInMap;
|
||||
import com.heyu.api.data.dto.BaseResp;
|
||||
import lombok.Data;
|
||||
|
||||
/***
|
||||
* https://next.api.aliyun.com/api/facebody/2019-12-30/DetectPedestrianIntrusion?RegionId=cn-shanghai
|
||||
*
|
||||
* 行人入侵检测
|
||||
*
|
||||
* DetectPedestrianIntrusion
|
||||
*/
|
||||
@Data
|
||||
public class DetectPedestrianIntrusionResp extends BaseResp {
|
||||
|
||||
/***
|
||||
* 检测框坐标。
|
||||
*/
|
||||
public DataElementsBox box;
|
||||
|
||||
|
||||
|
||||
|
||||
/***
|
||||
* 判断该人体是否入侵给定的区域或界线。
|
||||
*
|
||||
* true:入侵给定区域或界限。
|
||||
* false:未入侵给定区域或界限。
|
||||
* 示例值:
|
||||
* false
|
||||
*/
|
||||
|
||||
public Boolean isIntrude;
|
||||
|
||||
/***
|
||||
* 检测框的置信度,范围为[0,1]。
|
||||
*
|
||||
* 注意 请注意,该值为 Long 类型,在某些语言中可能存在精度丢失的风险,请小心使用。
|
||||
* 示例值:
|
||||
* 0.950289249420166
|
||||
*/
|
||||
public Long score;
|
||||
|
||||
|
||||
/***
|
||||
* 检测框对应的人体,取值为 person。
|
||||
*
|
||||
* 示例值:
|
||||
* person
|
||||
*/
|
||||
public String type;
|
||||
|
||||
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user