Commit 6a25b961 by chentian

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	serviceapi/imageapi/src/main/java/com/founder/imageapi/ImageApiApplication.java
#	serviceapi/imageapi/src/main/java/com/founder/imageapi/controller/ImageController.java
parents fa8a6cb3 4c214a77
package com.founder.commonutils.peopleEntity;
/**
* 翻译结果
* @Author yangyang
* @Date 2021/3/21
*/
public class Camera {
private String cameraId;
private String districtName;
private String areaName;
private String cameraName;
private String x;
private String y;
private String cameraType;
private String districtCode;//刑专标准的行政区划code
private String districtCodeName;//
private String areaCode;
private String areaCodeName;
public String getCameraId() {
return cameraId;
}
public void setCameraId(String cameraId) {
this.cameraId = cameraId;
}
public String getDistrictName() {
return districtName;
}
public void setDistrictName(String districtName) {
this.districtName = districtName;
}
public String getAreaName() {
return areaName;
}
public void setAreaName(String areaName) {
this.areaName = areaName;
}
public String getCameraName() {
return cameraName;
}
public void setCameraName(String cameraName) {
this.cameraName = cameraName;
}
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
public String getY() {
return y;
}
public void setY(String y) {
this.y = y;
}
public String getCameraType() {
return cameraType;
}
public void setCameraType(String cameraType) {
this.cameraType = cameraType;
}
public String getDistrictCode() {
return districtCode;
}
public void setDistrictCode(String districtCode) {
this.districtCode = districtCode;
}
public String getDistrictCodeName() {
return districtCodeName;
}
public void setDistrictCodeName(String districtCodeName) {
this.districtCodeName = districtCodeName;
}
public String getAreaCode() {
return areaCode;
}
public void setAreaCode(String areaCode) {
this.areaCode = areaCode;
}
public String getAreaCodeName() {
return areaCodeName;
}
public void setAreaCodeName(String areaCodeName) {
this.areaCodeName = areaCodeName;
}
}
package com.founder.commonutils.peopleEntity;
import java.util.List;
/**
* 人脸检索参数
* @Author yangyang
* @Date 2021/03/19
*/
public class FaceSearchParam {
private String faceSize= "20";
//节点类型 district(分局), area(派出所)
private String nodeType="district";
//分局或派出所的id
private String nodeId="3";
private List<String> cameraIds;
//排序方式 score 相似度,time 时间,camera 摄像机,calendar 日历
private String displayType;
private Integer placeTypeId= 0;
private Integer deviceTypeId= 0;
//0:重点人员库;
//1:布控抓拍人脸库;
//2:警局内非布控抓拍
//3:户籍库人员搜索;
//4:居住库人员搜索;
// 人脸库默认值 1
private Integer type = 1;
//图片来源类型 100表示图片上传 当上传多个图片时,多个100用逗号拼接
private String dataType="100";
//人脸id
private String faceId= "";
//人脸id多个时,用英文逗号拼接
private String ids= "";
private Integer mergeType= 1;
//相似度 默认0.92
private String scoreThreshold = "0.92";
//开始时间 格式 2019-12-07 00:00:00
private String starttime= "";
//结束时间 格式 2020-03-06 23:59:59
private String endtime= "";
private String dayStartTime= "00:00:00";
private String dayEndTime= "23:59:59";
private String weekDay= "0";
private String quality= "0";
//性别 性别不限 男 女
private String gender= "";
private Integer genderConfidence= 1;
//种族
private String race= "";
private Integer raceConfidence= 1;
//年龄
private String age= "";
//帽子 戴帽子 不戴帽子
private String hat= "";
// 1-低,3-中,5-高
private Integer hatConfidence= 1;
//眼镜 眼镜不限 不戴眼镜 戴普通眼镜
private String glasses= "";
private Integer glassesConfidence= 1;
//口罩
private String mask= "";
private Integer maskConfidence= 1;
private List<String> tagIds;
public String getFaceSize() {
return faceSize;
}
public void setFaceSize(String faceSize) {
this.faceSize = faceSize;
}
public String getNodeType() {
return nodeType;
}
public void setNodeType(String nodeType) {
this.nodeType = nodeType;
}
public String getNodeId() {
return nodeId;
}
public void setNodeId(String nodeId) {
this.nodeId = nodeId;
}
public List<String> getCameraIds() {
return cameraIds;
}
public void setCameraIds(List<String> cameraIds) {
this.cameraIds = cameraIds;
}
public String getDisplayType() {
return displayType;
}
public void setDisplayType(String displayType) {
this.displayType = displayType;
}
public Integer getPlaceTypeId() {
return placeTypeId;
}
public void setPlaceTypeId(Integer placeTypeId) {
this.placeTypeId = placeTypeId;
}
public Integer getDeviceTypeId() {
return deviceTypeId;
}
public void setDeviceTypeId(Integer deviceTypeId) {
this.deviceTypeId = deviceTypeId;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getDataType() {
return dataType;
}
public void setDataType(String dataType) {
this.dataType = dataType;
}
public String getFaceId() {
return faceId;
}
public void setFaceId(String faceId) {
this.faceId = faceId;
}
public String getIds() {
return ids;
}
public void setIds(String ids) {
this.ids = ids;
}
public Integer getMergeType() {
return mergeType;
}
public void setMergeType(Integer mergeType) {
this.mergeType = mergeType;
}
public String getScoreThreshold() {
return scoreThreshold;
}
public void setScoreThreshold(String scoreThreshold) {
this.scoreThreshold = scoreThreshold;
}
public String getStarttime() {
return starttime;
}
public void setStarttime(String starttime) {
this.starttime = starttime;
}
public String getEndtime() {
return endtime;
}
public void setEndtime(String endtime) {
this.endtime = endtime;
}
public String getDayStartTime() {
return dayStartTime;
}
public void setDayStartTime(String dayStartTime) {
this.dayStartTime = dayStartTime;
}
public String getDayEndTime() {
return dayEndTime;
}
public void setDayEndTime(String dayEndTime) {
this.dayEndTime = dayEndTime;
}
public String getWeekDay() {
return weekDay;
}
public void setWeekDay(String weekDay) {
this.weekDay = weekDay;
}
public String getQuality() {
return quality;
}
public void setQuality(String quality) {
this.quality = quality;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Integer getGenderConfidence() {
return genderConfidence;
}
public void setGenderConfidence(Integer genderConfidence) {
this.genderConfidence = genderConfidence;
}
public String getRace() {
return race;
}
public void setRace(String race) {
this.race = race;
}
public Integer getRaceConfidence() {
return raceConfidence;
}
public void setRaceConfidence(Integer raceConfidence) {
this.raceConfidence = raceConfidence;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getHat() {
return hat;
}
public void setHat(String hat) {
this.hat = hat;
}
public Integer getHatConfidence() {
return hatConfidence;
}
public void setHatConfidence(Integer hatConfidence) {
this.hatConfidence = hatConfidence;
}
public String getGlasses() {
return glasses;
}
public void setGlasses(String glasses) {
this.glasses = glasses;
}
public Integer getGlassesConfidence() {
return glassesConfidence;
}
public void setGlassesConfidence(Integer glassesConfidence) {
this.glassesConfidence = glassesConfidence;
}
public String getMask() {
return mask;
}
public void setMask(String mask) {
this.mask = mask;
}
public Integer getMaskConfidence() {
return maskConfidence;
}
public void setMaskConfidence(Integer maskConfidence) {
this.maskConfidence = maskConfidence;
}
public List<String> getTagIds() {
return tagIds;
}
public void setTagIds(List<String> tagIds) {
this.tagIds = tagIds;
}
}
package com.founder.commonutils.peopleEntity;
/**
* 人脸检索结果
* @Author yanru
* @Date 2020/4/2119:29
*/
public class FaceSearchResult {
private String id;//人脸id (faceId)
private String cameraId;//摄像头id
private String cameraName;//摄像头名称
private String file;//图片路径
private String imageUrl;//大图路径
private String time;//拍摄时间
private String score;//相似度
private String gender;//性别
private String race;//种族
private String age;//年龄段
private String hat;//帽子
private String glass;//眼镜
private String mask;//口罩
private String hair;//发型
private String address;//摄像头地址
private String x;//摄像头经度
private String y;//摄像头纬度
private String cameraType;//摄像头类型
private String districtCode;//刑专标准的行政区划code
private String districtCodeName;//
private String areaCode;
private String areaCodeName;
private String scoreThreshold;
private Integer type;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCameraId() {
return cameraId;
}
public void setCameraId(String cameraId) {
this.cameraId = cameraId;
}
public String getCameraName() {
return cameraName;
}
public void setCameraName(String cameraName) {
this.cameraName = cameraName;
}
public String getFile() {
return file;
}
public void setFile(String file) {
this.file = file;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getScore() {
return score;
}
public void setScore(String score) {
this.score = score;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getRace() {
return race;
}
public void setRace(String race) {
this.race = race;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getHat() {
return hat;
}
public void setHat(String hat) {
this.hat = hat;
}
public String getGlass() {
return glass;
}
public void setGlass(String glass) {
this.glass = glass;
}
public String getMask() {
return mask;
}
public void setMask(String mask) {
this.mask = mask;
}
public String getHair() {
return hair;
}
public void setHair(String hair) {
this.hair = hair;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
public String getY() {
return y;
}
public void setY(String y) {
this.y = y;
}
public String getCameraType() {
return cameraType;
}
public void setCameraType(String cameraType) {
this.cameraType = cameraType;
}
public String getDistrictCode() {
return districtCode;
}
public void setDistrictCode(String districtCode) {
this.districtCode = districtCode;
}
public String getDistrictCodeName() {
return districtCodeName;
}
public void setDistrictCodeName(String districtCodeName) {
this.districtCodeName = districtCodeName;
}
public String getAreaCode() {
return areaCode;
}
public void setAreaCode(String areaCode) {
this.areaCode = areaCode;
}
public String getAreaCodeName() {
return areaCodeName;
}
public void setAreaCodeName(String areaCodeName) {
this.areaCodeName = areaCodeName;
}
public String getScoreThreshold() {
return scoreThreshold;
}
public void setScoreThreshold(String scoreThreshold) {
this.scoreThreshold = scoreThreshold;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
}
......@@ -11,7 +11,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.6.RELEASE</version>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.founder</groupId>
......@@ -52,7 +52,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RELEASE</version>
<version>Greenwich.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
......
package com.founder.imageapi;
package com.founder.ytlf;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
@ComponentScan(basePackages = {"com.founder"})
@EnableDiscoveryClient
public class ImageApiApplication {
@Autowired
private RestTemplateBuilder restTemplateBuilder;
public static void main(String[] args) {
SpringApplication.run(ImageApiApplication.class, args);
}
@Bean
public RestTemplate restTemplate(){return restTemplateBuilder.build();}
}
package com.founder.imageapi.controller;
package com.founder.ytlf.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.founder.commonutils.peopleEntity.FaceSearchParam;
import com.founder.commonutils.publicEntity.MapRestResult;
import com.founder.commonutils.util.HttpClient;
import com.founder.commonutils.util.TokenUtils;
import com.founder.servicebase.logs.OperLog;
import com.founder.servicebase.logs.OperationType;
import com.founder.ytlf.service.YtlfService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* <p>
* 第三方图像接口管理
* 云天接口管理 前端控制器
* </p>
*
* @author yangyang
* @since 2021-03-18
*/
@Api(description = "第三方图像接口管理(云天)")
@Api(description = "云天接口管理")
@RestController
@RequestMapping("/imageapi")
public class ImageController {
@RequestMapping("/ytlf")
public class YtlfController {
@Value("${image_url}")
private String image_url;
@Autowired
private YtlfService ytlfService;
//获取token
//案件查询(存储reids)
@OperLog(message = "token获取",operation = OperationType.QUERY)
@ApiOperation(value = "token获取")
@PostMapping("/token")
public MapRestResult getToken() {
//获取云天励飞token
//获取token
String accessToken = TokenUtils.getYtgsToken();
return MapRestResult.build(202,"成功获取token信息",accessToken);
}
......@@ -164,5 +168,18 @@ public class ImageController {
}
return MapRestResult.build(500,"请求失败",null);
}
// 人脸动态检索接口接口
@OperLog(message = "人脸动态检索接口",operation = OperationType.QUERY)
@ApiOperation(value = "人脸动态检索接口")
@PostMapping(value = "/getFaceImageByUploadImage",consumes = "multipart/*",headers = "content-type=multipart/form-data")
public MapRestResult getFaceIdsByUploadImage(@RequestParam(value = "files",required = true) MultipartFile[] files, FaceSearchParam faceSearchParam) {
long startTime=new Date().getTime();
MapRestResult result=ytlfService.getFaceImageByUploadImage(files,faceSearchParam);
long endTime=new Date().getTime();
long timeDiffer=endTime-startTime;
System.out.println("人脸检索**请求时长**********"+timeDiffer+"毫秒");
return result;
}
}
package com.founder.ytlf.mapper;
import com.founder.commonutils.peopleEntity.Camera;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
@Mapper
public interface CameraInfoDao {
List<Camera> getCameraInfoByIds(@Param(value = "cameraIds") String cameraIds);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.founder.ytlf.mapper.CameraInfoDao">
<select id="getCameraInfoByIds" parameterType="java.lang.String" resultType="com.founder.commonutils.peopleEntity.Camera">
select
id as cameraId,
NAME as cameraName,
CITY as areaName,
STATION_ID as areaCode,
STATION_ID AS areaCodeName,
NAME as districtId,
NAME as areaId,
x as x,
y as y,
area_name as cameraType
from t_camera_info camera where 1=1
<if test="cameraIds!=null and cameraIds!=''">and CAMERA_CODE in ${cameraIds}</if>
</select>
</mapper>
package com.founder.ytlf.service;
import com.founder.commonutils.peopleEntity.FaceSearchParam;
import com.founder.commonutils.publicEntity.MapRestResult;
import org.springframework.web.multipart.MultipartFile;
/**
* <p>
* 云天接口 服务类
* </p>
*
* @author yangyang
* @since 2021-03-19
*/
public interface YtlfService {
MapRestResult getFaceImageByUploadImage(MultipartFile[] files, FaceSearchParam faceSearchParam);
}
package com.founder.ytlf.service.impl;
import com.founder.commonutils.peopleEntity.Camera;
import com.founder.commonutils.util.DataUtil;
import com.founder.ytlf.mapper.CameraInfoDao;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.*;
/**
* @Author yy
* @Date 2021/03/21
*/
@Component
public class CommonService {
@Autowired
private CameraInfoDao cameraInfoDao;
public Map<String, Object> getCameraInfoByIds(String cameraId) {
Map<String, Object> returnMap = new HashMap<>();
List<Camera> cameras = cameraInfoDao.getCameraInfoByIds(cameraId);
if (cameras != null&&cameras.size()>0) {
for(Camera camera:cameras){
Map<String, String> map = new HashMap<>();
String address = camera.getAreaName() + " " + camera.getAreaCodeName()+ "" +camera.getCameraName();
String areaName = camera.getAreaName();
String x = camera.getX(),y = camera.getY();
String cameraType=camera.getCameraType();
String areaCode=camera.getAreaCode();
String areaCodeName=camera.getAreaCodeName();
map.put("address", address);//某地区 某派出所 某摄像头
map.put("x", x);
map.put("y", y);
map.put("cameraName", camera.getCameraName());// 摄像头名称
map.put("cameraType",cameraType);
map.put("districtCodeName",areaName);// 地区名称
map.put("areaCode",areaCode);// 派出所代码
map.put("areaCodeName",areaCodeName);// 派出所名称
returnMap.put(camera.getCameraId(),map);
}
}
return returnMap;
}
/**
* 配饰代码转汉字
*
* @return
*/
public Map<String, Object> accessoriesToValue(String genderStr, String raceStr, String accessoriesStr, String ageStr) {
Map<String, Object> resultMap = new HashMap<>();
Object genderValue=null;
/*gender
性别(byte0: bit0~bit3)
0表示不确定
1表示男性
2表示女性*/
if (StringUtils.isNotEmpty(genderStr)) {
int gender = Integer.parseInt(genderStr);
String genderBinary = DataUtil.decimalToBinary(gender);
Map<Integer, Object> list = DataUtil.binaryToValue(genderBinary, 4);
if (null != list && list.size() > 0) {
genderValue = list.get(0);
if (null != genderValue) {
if ("0".equals(genderValue.toString())) {
genderValue = "不确定";
} else if ("1".equals(genderValue.toString())) {
genderValue = "男性";
} else if ("2".equals(genderValue.toString())) {
genderValue = "女性";
}
}
}
}
resultMap.put("gender", genderValue);
/*Race
•民族(byte0: bit0~bit3)
0表示汉族
1表示外籍
•口罩(byte1: bit0~bit3)
0表示不确定是否戴口罩
1表示不戴口罩
2表示戴口罩*/
Object raceBinaryValue=null;
Object maskBinaryValue=null;
if (StringUtils.isNotEmpty(raceStr)) {
int race = Integer.parseInt(raceStr);
String raceBinary = DataUtil.decimalToBinary(race);
Map<Integer, Object> list = DataUtil.binaryToValue(raceBinary, 4);
if (null != list && list.size() > 0) {
raceBinaryValue = list.get(0);
if (null != raceBinaryValue) {
if ("0".equals(raceBinaryValue.toString())) {
raceBinaryValue = "汉族";
} else if ("1".equals(raceBinaryValue.toString())) {
raceBinaryValue = "外籍";
}
}
maskBinaryValue = list.get(1);
if (null != maskBinaryValue) {
if ("0".equals(maskBinaryValue.toString())) {
maskBinaryValue = "不确定";
} else if ("1".equals(maskBinaryValue.toString())) {
maskBinaryValue = "不戴口罩";
} else if ("2".equals(maskBinaryValue.toString())) {
maskBinaryValue = "戴口罩";
}
}
}
}
resultMap.put("race", raceBinaryValue);
resultMap.put("mask", maskBinaryValue);
/*Accessories
•眼镜(byte0: bit0~bit:3)
0表示不确定是否戴眼镜
1表示不戴眼镜
2表示戴(普通)眼镜
3表示戴太阳镜
•帽子(byte1: bit0~bit3)
0表示不确定是否戴帽子
1表示不戴帽子
2表示戴帽子
•发型(byte2: bit0~bit3)
0表示不确定头发长短
1表示短发
2表示长发*/
Object glassBinaryValue = null;
Object hatBinaryValue = null;
Object hairBinaryValue = null;
if (StringUtils.isNotEmpty(accessoriesStr)) {
int accessories = Integer.parseInt(accessoriesStr);
String accessoriesBinary = DataUtil.decimalToBinary(accessories);
Map<Integer, Object> list = DataUtil.binaryToValue(accessoriesBinary, 4);
if (null != list && list.size() > 0) {
glassBinaryValue = list.get(0);
hatBinaryValue = list.get(1);
hairBinaryValue = list.get(2);
if (null != glassBinaryValue) {
if ("0".equals(glassBinaryValue.toString())) {
glassBinaryValue = "不确定";
} else if ("1".equals(glassBinaryValue.toString())) {
glassBinaryValue = "不戴眼镜";
}else if ("2".equals(glassBinaryValue.toString())) {
glassBinaryValue = "戴(普通)眼镜";
}else if ("3".equals(glassBinaryValue.toString())) {
glassBinaryValue = "戴太阳镜";
}
}
if (null != hatBinaryValue) {
if ("0".equals(hatBinaryValue.toString())) {
hatBinaryValue = "不确定";
} else if ("1".equals(hatBinaryValue.toString())) {
hatBinaryValue = "不戴帽子";
}else if ("2".equals(hatBinaryValue.toString())) {
hatBinaryValue = "戴帽子";
}
}
if (null != hairBinaryValue) {
if ("0".equals(hairBinaryValue.toString())) {
hairBinaryValue = "不确定";
} else if ("1".equals(hairBinaryValue.toString())) {
hairBinaryValue = "短发";
}else if ("2".equals(hairBinaryValue.toString())) {
hairBinaryValue = "长发";
}
}
}
}
resultMap.put("glass", glassBinaryValue);
resultMap.put("hat", hatBinaryValue);
resultMap.put("hair", hairBinaryValue);
/*Age
年龄段(byte0: bit0~bit7),按照年龄段划分
实际年龄(byte1: bit0~bit7)表示实际年龄数,实际年龄并没有置信度,也没有新旧版本标志*/
Object ageBinaryValue=null;
if (StringUtils.isNotEmpty(ageStr)) {
int age = Integer.parseInt(ageStr);
String ageBinary = DataUtil.decimalToBinary(age);
Map<Integer, Object> list = DataUtil.binaryToValue(ageBinary, 7);
if (null != list && list.size() > 0) {
// Object ageGroupBinaryValue = list.get(0);//年龄段
ageBinaryValue = list.get(1);//年龄
// resultMap.put("ageGroup", ageGroupBinaryValue);
}
}
resultMap.put("age", ageBinaryValue);
return resultMap;
}
}
......@@ -12,4 +12,15 @@ spring.cloud.nacos.config.namespace=052aa986-5c18-4013-a91a-583dc01aaf8b
#spring.cloud.nacos.config.ext-config[0].data-id=eduport.properties
# 开启动态刷新配置,否则配置文件修改,工程无法感知
#spring.cloud.nacos.config.ext-config[0].refresh=true
\ No newline at end of file
#spring.cloud.nacos.config.ext-config[0].refresh=true
#############################云天接口访问地址开始#############################################
#4.4.1 图片文件传输方式地址 true-进行人脸检测 false-不进行人脸检测 0-检索上传 1-布控上传 2-红名单上传
ImageIdsByUploadImageUrl = http://26.3.12.56:8083/api/intellif/image/upload/true?type=0
#根据大图 id 获取所有小图信息,这里的 id 来自上传图片接口返回的 id
FaceIdByIdUrl = http://26.3.12.56:8083/api/intellif/face/image/
#4.2.4 根据小图获取大图,返回人脸小图在大图中的位置
FaceBigByIdUrl=http://26.3.12.56:8083/api/intellif/image/face/json/
#############################云天接口访问地址结束##############################################
\ No newline at end of file
......@@ -77,6 +77,7 @@
<dependency>
<groupId>org.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>10</version>
</dependency>
<!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
<dependency>
......@@ -150,5 +151,9 @@
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment