span>
342
|
JSONObject jsonObject = JSONObject.parseObject(aiResponseData);// JSONUtil.formatJsonStr(aiResponseData);
|
|
343
|
if (jsonObject.getString("Status").equals("Ok")) {
|
|
344
|
JSONArray jsonoArray = JSONArray.parseArray(jsonObject.getString("Result"));
|
|
345
|
for (int i = 0; i < jsonoArray.size(); i++) {
|
|
346
|
JSONObject resultObj = JSONObject.parseObject(jsonoArray.get(i).toString());
|
|
347
|
String aiClassName = resultObj.getString("lable");
|
|
348
|
// safety_hat表示安全帽;ordinart_hat表示普通帽子;chef_hat表示厨师帽;none表示未戴帽子
|
|
349
|
if (aiClassName.equals("person")) {
|
|
350
|
isHuman = true;
|
|
351
|
}
|
|
352
|
}
|
|
353
|
}*/
|
|
354
|
|
|
355
|
log.info("开始AI人数识别处理...");
|
|
356
|
String aiResponseData = ebcAiService.headDetect(ImageBase64Converter.convertFileToBase64(aifilePath), true,
|
|
357
|
0.9f);
|
|
358
|
|
|
359
|
JSONObject jsonObject = JSONObject.parseObject(aiResponseData);
|
|
360
|
JSONArray jsonArray = jsonObject.getJSONArray("Result");
|
|
361
|
if (!CollectionUtils.isEmpty(jsonArray)) {
|
|
362
|
isHuman = true;
|
|
363
|
log.info("AI人数识别结果:有" + jsonArray.size() + "人");
|
|
364
|
} else {
|
|
365
|
log.info("AI人数识别结果:没有人");
|
|
366
|
}
|
|
367
|
|
|
368
|
} catch (Exception e) {
|
|
369
|
log.error("AI处理异常");
|
|
370
|
}
|
|
371
|
return isHuman;
|
|
372
|
}
|
|
373
|
|
|
374
|
/**
|
|
375
|
* 人脸识别
|
|
376
|
* @param aiIdenLogDto
|
|
377
|
* @param aifilePath
|
|
378
|
* @return
|
|
379
|
*/
|
|
380
|
private AiIdenLogDto faceAiRecog(AiIdenLogDto aiIdenLogDto, String aifilePath) {
|
|
381
|
try {
|
|
382
|
log.info("开始AI人脸识别处理...");
|
|
383
|
// 人脸识别
|
|
384
|
String aiResponseData = ebcAiService.faceAiRecog(ImageBase64Converter.convertFileToBase64(aifilePath));
|
|
385
|
|
|
386
|
JSONObject jsonObject = JSONObject.parseObject(aiResponseData);
|
|
387
|
System.out.println("AI人脸识别结果: " + aiResponseData);
|
|
388
|
|
|
389
|
if ("1".equals(jsonObject.getString("errorcode")) && "success".equals(jsonObject.getString("message"))) {
|
|
390
|
JSONObject resultJsonObject = JSONObject.parseObject(jsonObject.getString("result"));
|
|
391
|
|
|
392
|
if (resultJsonObject.getIntValue("is_match") == 0) {
|
|
393
|
aiIdenLogDto.setIdenResult(jsonObject.getString("result"));
|
|
394
|
aiIdenLogDto.setIdenResultType(MonitorManageConsts.AI_IDENTIFY_RESULT);
|
|
395
|
|
|
396
|
} else {
|
|
397
|
aiIdenLogDto.setIdenResult(jsonObject.getString("result"));
|
|
398
|
aiIdenLogDto.setRelateEmployeeRoleId(resultJsonObject.getString("user_id"));
|
|
399
|
aiIdenLogDto.setIdenResultType(MonitorManageConsts.AI_IDENTIFY_RESULT_ATTENDANCE);
|
|
400
|
|
|
401
|
}
|
|
402
|
|
|
403
|
log.info("识别成功,推送KAFKA消息");
|
|
404
|
processKafka(aiIdenLogDto.getTopic(), JSONObject.toJSONString(aiIdenLogDto));
|
|
405
|
} else {
|
|
406
|
log.info("没有识别到人,不推送KAFKA消息");
|
|
407
|
return aiIdenLogDto;
|
|
408
|
}
|
|
409
|
} catch (Exception e) {
|
|
410
|
log.error("AI处理异常");
|
|
411
|
}
|
|
412
|
return aiIdenLogDto;
|
|
413
|
}
|
|
414
|
|
|
415
|
/**
|
|
416
|
* 根据设备code获取监控任务详情
|
|
417
|
* @param deviceCode
|
|
418
|
* @return
|
|
419
|
*/
|
|
420
|
private List<Map> getResourceToolAllInfo(String deviceCode) {
|
|
421
|
List<Map> resourceToolInfoList = new ArrayList<Map>();
|
|
422
|
try {
|
|
423
|
String url = protectionResourceUrl + "?resourceToolCode=" + deviceCode;
|
|
424
|
log.info("getResourceToolAllInfo method params: resourceToolCode=" + deviceCode + ", url=" + url);
|
|
425
|
|
|
426
|
String resultJson = HttpServiceUtil.sendRequest(url);
|
|
427
|
JSONObject resultData = JSON.parseObject(resultJson);
|
|
428
|
if (StringUtils.isEmpty(resultData.getString("data"))) {
|
|
429
|
log.info("getResourceToolAllInfo method returns an empty result");
|
|
430
|
return resourceToolInfoList;
|
|
431
|
}
|
|
432
|
|
|
433
|
resourceToolInfoList = JSON.parseArray(resultData.getString("data"), Map.class);
|
|
434
|
log.info("getResourceToolAllInfo method return result: " + resultData.getString("data"));
|
|
435
|
} catch (Exception e) {
|
|
436
|
log.error("getResourceToolAllInfo is error");
|
|
437
|
}
|
|
438
|
|
|
439
|
return resourceToolInfoList;
|
|
440
|
}
|
303
|
441
|
|
304
|
442
|
}
|
|
@ -27,8 +27,8 @@ spring.main.allow-bean-definition-overriding=true
|
27
|
27
|
#kafka
|
28
|
28
|
#kafka.bootstrap-servers=47.105.160.21:9090
|
29
|
29
|
kafka.bootstrap-servers=10.19.90.34:9090
|
30
|
|
kafka.topic.deviceLocation=Topic_IoT_DeviceLocation_111
|
31
|
|
kafka.topic.alarm=Topic_IoT_IndividualAlarm_111
|
|
30
|
#kafka.topic.deviceLocation=Topic_IoT_DeviceLocation_111
|
|
31
|
#kafka.topic.alarm=Topic_IoT_IndividualAlarm_111
|
32
|
32
|
#kafka.topic.deviceLocation=DeviceLocationA
|
33
|
33
|
#kafka.topic.alarm=IndividualAlarmA
|
34
|
34
|
kafka.producer.batch-size=16785
|
|
@ -69,23 +69,26 @@ logging.level.com.ai=debug
|
69
|
69
|
logging.level.org.springframework.data=debug
|
70
|
70
|
|
71
|
71
|
|
72
|
|
#camera.filePath=/home/puaiuc/data/DAHUA
|
73
|
|
camera.filePath=E:\\data\\DAHUA
|
74
|
|
|
75
|
|
#AIÖ´Ðнá¹û
|
76
|
|
kafka.topic.aitask=topicTaskTest
|
77
|
|
#kafka.topic.aitask=topic_ai_task
|
78
|
|
#AIÊÓÆµ
|
79
|
|
kafka.topic.aivideo=topicVideoTest
|
80
|
|
#kafka.topic.aivideo=topic_ai_video
|
81
|
|
|
|
72
|
camera.filePath=/home/puaiuc/data/DAHUA
|
|
73
|
#camera.filePath=E:\\data\\DAHUA
|
82
|
74
|
|
|
75
|
#AI\u05b4\ufffd\u043d\ufffd\ufffd
|
|
76
|
#kafka.topic.aitask=topicTaskTest
|
|
77
|
kafka.topic.aitask=topic_ai_task
|
|
78
|
#AI\ufffd\ufffd\u01b5
|
|
79
|
#kafka.topic.aivideo=topicVideoTest
|
|
80
|
kafka.topic.aivideo=topic_ai_video
|
83
|
81
|
|
84
|
82
|
|
|
83
|
#AI\u5931\u8d25\u8bf7\u6c42\u5730\u5740
|
85
|
84
|
ebc.ai.head-det-url=http://10.1.251.211:7001/todo/api/v1.4/control/online/IMAGE/HEAD/PREDICT
|
86
|
85
|
ebc.ai.helmet-det-url=http://10.1.251.211:7003/todo/api/v1.4/control/online/IMAGE/HELMET/PREDICT
|
87
|
86
|
ebc.ai.smokingdet-url=http://10.1.251.213:5125/smokingdet
|
88
|
87
|
ebc.ai.instrument-det-url=http://10.1.251.213:19100/predict
|
89
|
88
|
ebc.ai.work-clothes-det-url=http://10.1.251.211:7003/todo/api/v1.4/control/online/IMAGE/HUMAN/PREDICT
|
90
|
89
|
|
|
90
|
ebc.ai.face-recog-service-url=http://10.21.10.28:9018/api/face/recog
|
|
91
|
|
|
92
|
|
|
93
|
#AI\u4efb\u52a1\u8bf7\u6c42\u5730\u5740
|
91
|
94
|
ebc.protection.resource-url=http://10.19.90.34:8018/sp/resourceTool/getResourceToolAllInfo
|
|
@ -166,7 +166,7 @@ public class ResourceToolManageController {
|
166
|
166
|
}
|
167
|
167
|
|
168
|
168
|
/**
|
169
|
|
* 根据设备CODE获取场景、AI任务等相关信息
|
|
169
|
* 根据设备CODE获取AI任务等相关信息
|
170
|
170
|
* @param meFile
|
171
|
171
|
* @return
|
172
|
172
|
* @throws Exception
|
|
@ -84,7 +84,7 @@ public interface ResourceToolManageService {
|
84
|
84
|
Map<String, String> uploadResourceToolPicture(MultipartFile meFile, String pictureUrl) throws Exception;
|
85
|
85
|
|
86
|
86
|
/**
|
87
|
|
* 根据设备CODE获取场景、AI任务等相关信息
|
|
87
|
* 根据设备CODE获取AI任务等相关信息
|
88
|
88
|
* @param resourceToolCode
|
89
|
89
|
* @return
|
90
|
90
|
*/
|