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
}

+ 15 - 12
monitor-manage-service/src/main/resources/application.properties

@ -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

+ 1 - 1
security-protection-service/src/main/java/com/ai/bss/security/protection/controller/ResourceToolManageController.java

@ -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

+ 1 - 1
security-protection-service/src/main/java/com/ai/bss/security/protection/service/interfaces/ResourceToolManageService.java

@ -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
	 */

ios-share - Nuosi Git Service

ipu的trunk版ios客户端工程

Breakpoints_v2.xcbkptlist 3.1KB

    <?xml version="1.0" encoding="UTF-8"?> <Bucket type = "1" version = "2.0"> <Breakpoints> <BreakpointProxy BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint"> <BreakpointContent shouldBeEnabled = "Yes" ignoreCount = "0" continueAfterRunningActions = "No" filePath = "WadeMobileFunc/WDFSocial.m" timestampString = "554288427.109773" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "291" endingLineNumber = "291" landmarkName = "+wechatAuthLogin" landmarkType = "7"> <Locations> <Location shouldBeEnabled = "Yes" ignoreCount = "0" continueAfterRunningActions = "No" symbolName = "+[WDFSocial wechatAuthLogin]" moduleName = "WadeMobileFunc" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/mac/work/asiainfo/ios-share/WadeMobileFunc/WadeMobileFunc/WDFSocial.m" timestampString = "578977107.6443141" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "291" endingLineNumber = "291" offsetFromSymbolStart = "1132"> </Location> <Location shouldBeEnabled = "Yes" ignoreCount = "0" continueAfterRunningActions = "No" symbolName = "__28+[WDFSocial wechatAuthLogin]_block_invoke" moduleName = "WadeMobileFunc" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/mac/work/asiainfo/ios-share/WadeMobileFunc/WadeMobileFunc/WDFSocial.m" timestampString = "578977107.646101" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "292" endingLineNumber = "292" offsetFromSymbolStart = "52"> </Location> <Location shouldBeEnabled = "Yes" ignoreCount = "0" continueAfterRunningActions = "No" symbolName = "__destroy_helper_block_.285" moduleName = "WadeMobileFunc" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/mac/work/asiainfo/ios-share/WadeMobileFunc/WadeMobileFunc/WDFSocial.m" timestampString = "578977107.648159" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "291" endingLineNumber = "291" offsetFromSymbolStart = "8"> </Location> </Locations> </BreakpointContent> </BreakpointProxy> </Breakpoints> </Bucket>