1
This commit is contained in:
parent
80e93ecd39
commit
4b03bfb871
@ -202,7 +202,7 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
|||||||
request.setImageUrl(faceUrl);
|
request.setImageUrl(faceUrl);
|
||||||
request.setLimit(200);
|
request.setLimit(200);
|
||||||
// request.setQualityScoreThreshold(60f);
|
// request.setQualityScoreThreshold(60f);
|
||||||
FaceDetectLog log = FaceDetectLog.quickCreate(reason, request);
|
FaceDetectLog logEntity = FaceDetectLog.quickCreate(reason, request);
|
||||||
try {
|
try {
|
||||||
searchFaceLimiter.acquire();
|
searchFaceLimiter.acquire();
|
||||||
} catch (InterruptedException ignored) {
|
} catch (InterruptedException ignored) {
|
||||||
@ -221,10 +221,10 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
final float _threshold = threshold;
|
final float _threshold = threshold;
|
||||||
List<Long> faceSampleIds;
|
List<Long> acceptFaceSampleIds;
|
||||||
try {
|
try {
|
||||||
SearchFaceResponse response = client.getAcsResponse(request);
|
SearchFaceResponse response = client.getAcsResponse(request);
|
||||||
log.fillResponse(response);
|
logEntity.fillResponse(response);
|
||||||
List<SearchFaceResponse.Data.MatchListItem> matchList = response.getData().getMatchList();
|
List<SearchFaceResponse.Data.MatchListItem> matchList = response.getData().getMatchList();
|
||||||
if (matchList.isEmpty()) {
|
if (matchList.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
@ -236,27 +236,32 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
|||||||
return respVo;
|
return respVo;
|
||||||
}
|
}
|
||||||
List<SearchFaceResponse.Data.MatchListItem.FaceItemsItem> records = matchList.get(0).getFaceItems();
|
List<SearchFaceResponse.Data.MatchListItem.FaceItemsItem> records = matchList.get(0).getFaceItems();
|
||||||
log.setMatchRawRecord(records);
|
logEntity.setMatchRawRecord(records);
|
||||||
faceSampleIds = records.stream()
|
acceptFaceSampleIds = records.stream()
|
||||||
.filter(record -> record.getScore() > _threshold)
|
.filter(record -> record.getScore() > _threshold)
|
||||||
.map(SearchFaceResponse.Data.MatchListItem.FaceItemsItem::getExtraData)
|
.map(SearchFaceResponse.Data.MatchListItem.FaceItemsItem::getExtraData)
|
||||||
.filter(StringUtils::isNumeric)
|
.filter(StringUtils::isNumeric)
|
||||||
.map(Long::valueOf)
|
.map(Long::valueOf)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
List<FaceSampleEntity> faceSampleList = new ArrayList<>();
|
List<FaceSampleEntity> faceSampleList = new ArrayList<>();
|
||||||
if (StringUtils.isNumeric(dbName)) {
|
if (StringUtils.isNumeric(dbName)) { // 景区
|
||||||
faceSampleList = faceSampleMapper.listByIds(faceSampleIds);
|
faceSampleList = faceSampleMapper.listByIds(acceptFaceSampleIds);
|
||||||
Long firstFaceSampleId = faceSampleIds.get(0);
|
Long firstFaceSampleId = acceptFaceSampleIds.get(0);
|
||||||
Optional<FaceSampleEntity> firstFaceSample = faceSampleList.stream().filter(faceSample -> faceSample.getId().equals(firstFaceSampleId)).findAny();
|
Optional<FaceSampleEntity> firstFaceSample = faceSampleList.stream().filter(faceSample -> faceSample.getId().equals(firstFaceSampleId)).findAny();
|
||||||
if (firstFaceSample.isPresent()) {
|
if (firstFaceSample.isPresent()) {
|
||||||
if (tourMinutes > 0) {
|
if (tourMinutes > 0) {
|
||||||
Date startDate = DateUtil.offsetMinute(firstFaceSample.get().getCreateAt(), -tourMinutes/2);
|
Date startDate = DateUtil.offsetMinute(firstFaceSample.get().getCreateAt(), -tourMinutes/2);
|
||||||
Date endDate = DateUtil.offsetMinute(firstFaceSample.get().getCreateAt(), tourMinutes/2);
|
Date endDate = DateUtil.offsetMinute(firstFaceSample.get().getCreateAt(), tourMinutes/2);
|
||||||
faceSampleIds = faceSampleList.stream()
|
acceptFaceSampleIds = faceSampleList.stream()
|
||||||
.filter(faceSample -> faceSample.getCreateAt().after(startDate) && faceSample.getCreateAt().before(endDate))
|
.filter(faceSample -> faceSample.getCreateAt().after(startDate) && faceSample.getCreateAt().before(endDate))
|
||||||
.map(FaceSampleEntity::getId)
|
.map(FaceSampleEntity::getId)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
log.info("时间范围逻辑:最高匹配:{},时间范围需要在:{}~{}间", firstFaceSample, startDate, endDate);
|
||||||
|
} else {
|
||||||
|
log.info("时间范围逻辑:景区未限制");
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
log.info("时间范围逻辑:最高匹配ID:{},未找到", firstFaceSampleId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<MatchLocalRecord> collect = new ArrayList<>();
|
List<MatchLocalRecord> collect = new ArrayList<>();
|
||||||
@ -271,7 +276,7 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
|||||||
if (device != null) {
|
if (device != null) {
|
||||||
record.setDeviceName(device.getName());
|
record.setDeviceName(device.getName());
|
||||||
}
|
}
|
||||||
record.setAccept(faceSampleIds.contains(optionalFse.get().getId()));
|
record.setAccept(acceptFaceSampleIds.contains(optionalFse.get().getId()));
|
||||||
record.setFaceUrl(optionalFse.get().getFaceUrl());
|
record.setFaceUrl(optionalFse.get().getFaceUrl());
|
||||||
record.setShotDate(optionalFse.get().getCreateAt());
|
record.setShotDate(optionalFse.get().getCreateAt());
|
||||||
}
|
}
|
||||||
@ -283,15 +288,15 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
|||||||
record.setConfidence(item.getConfidence());
|
record.setConfidence(item.getConfidence());
|
||||||
collect.add(record);
|
collect.add(record);
|
||||||
}
|
}
|
||||||
log.setMatchLocalRecord(JSONObject.toJSONString(collect));
|
logEntity.setMatchLocalRecord(JSONObject.toJSONString(collect));
|
||||||
respVo.setFirstMatchRate(matchList.get(0).getFaceItems().get(0).getScore());
|
respVo.setFirstMatchRate(matchList.get(0).getFaceItems().get(0).getScore());
|
||||||
respVo.setSampleListIds(faceSampleIds);
|
respVo.setSampleListIds(acceptFaceSampleIds);
|
||||||
return respVo;
|
return respVo;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.setMatchRawResult("识别错误,错误为:["+e.getLocalizedMessage()+"]");
|
logEntity.setMatchRawResult("识别错误,错误为:["+e.getLocalizedMessage()+"]");
|
||||||
throw new BaseException(e.getMessage());
|
throw new BaseException(e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
logMapper.insert(log);
|
logMapper.insert(logEntity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user