加个字段
This commit is contained in:
parent
eea1dd15b7
commit
519f9969ec
@ -69,4 +69,5 @@ public class ScenicConfigEntity {
|
|||||||
private StorageType storeType;
|
private StorageType storeType;
|
||||||
private String storeConfigJson;
|
private String storeConfigJson;
|
||||||
private BigDecimal brokerDirectRate;
|
private BigDecimal brokerDirectRate;
|
||||||
|
private Integer faceDetectHelperThreshold;
|
||||||
}
|
}
|
||||||
|
@ -16,10 +16,12 @@ import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
|||||||
import com.ycwl.basic.model.pc.face.req.FaceReqQuery;
|
import com.ycwl.basic.model.pc.face.req.FaceReqQuery;
|
||||||
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
|
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
|
||||||
import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity;
|
import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity;
|
||||||
|
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
||||||
import com.ycwl.basic.model.pc.source.entity.MemberSourceEntity;
|
import com.ycwl.basic.model.pc.source.entity.MemberSourceEntity;
|
||||||
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
|
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
|
||||||
import com.ycwl.basic.model.task.resp.SearchFaceRespVo;
|
import com.ycwl.basic.model.task.resp.SearchFaceRespVo;
|
||||||
import com.ycwl.basic.repository.FaceRepository;
|
import com.ycwl.basic.repository.FaceRepository;
|
||||||
|
import com.ycwl.basic.repository.ScenicRepository;
|
||||||
import com.ycwl.basic.service.pc.FaceService;
|
import com.ycwl.basic.service.pc.FaceService;
|
||||||
import com.ycwl.basic.service.task.TaskFaceService;
|
import com.ycwl.basic.service.task.TaskFaceService;
|
||||||
import com.ycwl.basic.service.task.TaskService;
|
import com.ycwl.basic.service.task.TaskService;
|
||||||
@ -67,6 +69,8 @@ public class FaceServiceImpl implements FaceService {
|
|||||||
private FaceRepository faceRepository;
|
private FaceRepository faceRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private VideoMapper videoMapper;
|
private VideoMapper videoMapper;
|
||||||
|
@Autowired
|
||||||
|
private ScenicRepository scenicRepository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiResponse<PageInfo<FaceRespVO>> pageQuery(FaceReqQuery faceReqQuery) {
|
public ApiResponse<PageInfo<FaceRespVO>> pageQuery(FaceReqQuery faceReqQuery) {
|
||||||
@ -207,26 +211,29 @@ public class FaceServiceImpl implements FaceService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
SearchFaceRespVo scenicDbSearchResult = faceService.searchFace(face.getScenicId(), face.getFaceUrl());
|
SearchFaceRespVo scenicDbSearchResult = faceService.searchFace(face.getScenicId(), face.getFaceUrl());
|
||||||
// 写死逻辑
|
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(face.getScenicId());
|
||||||
if (scenicDbSearchResult.getSampleListIds() != null && scenicDbSearchResult.getFirstMatchRate() != null && !scenicDbSearchResult.getSampleListIds().isEmpty()) {
|
if (scenicDbSearchResult.getSampleListIds() != null && scenicDbSearchResult.getFirstMatchRate() != null && !scenicDbSearchResult.getSampleListIds().isEmpty()) {
|
||||||
if (scenicDbSearchResult.getSampleListIds().size() < 5) {
|
if (scenicConfig != null && scenicConfig.getFaceDetectHelperThreshold() != null && scenicConfig.getFaceDetectHelperThreshold() > 0) {
|
||||||
// 补救逻辑
|
if (scenicDbSearchResult.getSampleListIds().size() < scenicConfig.getFaceDetectHelperThreshold()) {
|
||||||
Long faceSampleId = scenicDbSearchResult.getSampleListIds().get(0);
|
// 补救逻辑
|
||||||
FaceSampleEntity faceSample = faceRepository.getFaceSample(faceSampleId);
|
Long faceSampleId = scenicDbSearchResult.getSampleListIds().get(0);
|
||||||
if (faceSample != null) {
|
FaceSampleEntity faceSample = faceRepository.getFaceSample(faceSampleId);
|
||||||
// 以这个结果为人脸库的匹配结果
|
if (faceSample != null) {
|
||||||
scenicDbSearchResult = faceService.searchFace(face.getScenicId().toString(), faceSample.getFaceUrl(), "补救措施1:人脸数太少少于5");
|
// 以这个结果为人脸库的匹配结果
|
||||||
}
|
scenicDbSearchResult = faceService.searchFace(face.getScenicId().toString(), faceSample.getFaceUrl(), "补救措施1:人脸数太少少于设定值"+scenicConfig.getFaceDetectHelperThreshold());
|
||||||
} else if (scenicDbSearchResult.getFirstMatchRate() > 0.7) {
|
}
|
||||||
// 如果匹配度高于阈值,则使用景区第一张人脸去匹配景区库
|
|
||||||
// 找第一张人脸
|
|
||||||
Long faceSampleId = scenicDbSearchResult.getSampleListIds().get(0);
|
|
||||||
FaceSampleEntity faceSample = faceRepository.getFaceSample(faceSampleId);
|
|
||||||
if (faceSample != null) {
|
|
||||||
// 以这个结果为人脸库的匹配结果
|
|
||||||
scenicDbSearchResult = faceService.searchFace(face.getScenicId().toString(), faceSample.getFaceUrl(), "补救措施2:存在得分够高");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// if (scenicDbSearchResult.getFirstMatchRate() > 0.7) {
|
||||||
|
// // 如果匹配度高于阈值,则使用景区第一张人脸去匹配景区库
|
||||||
|
// // 找第一张人脸
|
||||||
|
// Long faceSampleId = scenicDbSearchResult.getSampleListIds().get(0);
|
||||||
|
// FaceSampleEntity faceSample = faceRepository.getFaceSample(faceSampleId);
|
||||||
|
// if (faceSample != null) {
|
||||||
|
// // 以这个结果为人脸库的匹配结果
|
||||||
|
// scenicDbSearchResult = faceService.searchFace(face.getScenicId().toString(), faceSample.getFaceUrl(), "补救措施2:存在得分够高");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
FaceEntity faceEntity = new FaceEntity();
|
FaceEntity faceEntity = new FaceEntity();
|
||||||
faceEntity.setId(faceId);
|
faceEntity.setId(faceId);
|
||||||
|
@ -68,6 +68,8 @@ import java.util.concurrent.TimeUnit;
|
|||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static com.ycwl.basic.constant.FaceConstant.USER_FACE_DB_NAME;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class TaskFaceServiceImpl implements TaskFaceService {
|
public class TaskFaceServiceImpl implements TaskFaceService {
|
||||||
@ -312,6 +314,35 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
|||||||
}
|
}
|
||||||
Date endDate = DateUtil.offsetDay(DateUtil.beginOfDay(new Date()), -sampleStoreDay);
|
Date endDate = DateUtil.offsetDay(DateUtil.beginOfDay(new Date()), -sampleStoreDay);
|
||||||
ListFaceEntitiesRequest listFaceEntitiesRequest = new ListFaceEntitiesRequest();
|
ListFaceEntitiesRequest listFaceEntitiesRequest = new ListFaceEntitiesRequest();
|
||||||
|
|
||||||
|
listFaceEntitiesRequest.setDbName(USER_FACE_DB_NAME + String.valueOf(scenicId));
|
||||||
|
listFaceEntitiesRequest.setOrder("asc");
|
||||||
|
try {
|
||||||
|
IAcsClient client = getClient();
|
||||||
|
AtomicBoolean flag = new AtomicBoolean(false);
|
||||||
|
while (true) {
|
||||||
|
ListFaceEntitiesResponse listFaceEntitiesResponse = client.getAcsResponse(listFaceEntitiesRequest);
|
||||||
|
if (listFaceEntitiesResponse == null || listFaceEntitiesResponse.getData() == null || listFaceEntitiesResponse.getData().getEntities() == null || listFaceEntitiesResponse.getData().getEntities().isEmpty()) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
listFaceEntitiesResponse.getData().getEntities().forEach(entity -> {
|
||||||
|
Date createdDate = new Date(entity.getCreatedAt());
|
||||||
|
if (createdDate.before(endDate)) {
|
||||||
|
flag.set(true);
|
||||||
|
log.info("当前景区{},开始删除人脸样本:{}", scenicId, entity.getEntityId());
|
||||||
|
deleteFaceSample(String.valueOf(scenicId), entity.getEntityId());
|
||||||
|
} else {
|
||||||
|
log.info("当前景区{},人脸样本:{}未过期", scenicId, entity.getEntityId());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (!flag.get()) {
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
flag.set(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
listFaceEntitiesRequest.setDbName(String.valueOf(scenicId));
|
listFaceEntitiesRequest.setDbName(String.valueOf(scenicId));
|
||||||
listFaceEntitiesRequest.setOrder("asc");
|
listFaceEntitiesRequest.setOrder("asc");
|
||||||
try {
|
try {
|
||||||
|
@ -104,6 +104,7 @@
|
|||||||
user_source_expire_day=#{userSourceExpireDay},
|
user_source_expire_day=#{userSourceExpireDay},
|
||||||
face_score_threshold=#{faceScoreThreshold},
|
face_score_threshold=#{faceScoreThreshold},
|
||||||
force_finish_time=#{forceFinishTime},
|
force_finish_time=#{forceFinishTime},
|
||||||
|
face_detect_helper_threshold=#{faceDetectHelperThreshold},
|
||||||
store_type=#{storeType},
|
store_type=#{storeType},
|
||||||
store_config_json=#{storeConfigJson},
|
store_config_json=#{storeConfigJson},
|
||||||
broker_direct_rate=#{brokerDirectRate}
|
broker_direct_rate=#{brokerDirectRate}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user