★ 安全操作项目
项目描述:安全操作项目旨在提高医疗设备的安全性,特别是在医生离开操作屏幕时,以减少非授权人员的误操作风险。为实现这一目标,我们采用多层次的保护措施,包括人脸识别、姿势检测以及二维码识别等技术。这些技术用于监测医生是否在工作区域内,并根据检测结果触发相应的安全响应机制。如果医生被检测到离开工作区域或操作屏幕,系统将立即采取措施,例如触发警报、锁定医疗设备,以确保患者数据和医疗设备的安全。
职责描述:
1、JNI接口独立开发。
2、回调函数处理。
3、WebSocket通信:确保与前端的实时数据交换。
核心技术
Java中调用C++代码
https://blog.csdn.net/weixin_43914278/article/details/127278471
某核心功能
基本思路就是传灵敏度的相关参数,获取回调信息,将byte数组信息转为base64,开发的时候配合写的前端代码https://blog.csdn.net/weixin_43914278/article/details/128216828
@Operation(summary = "开始数量追踪")@PostMapping("/startFaceTrackingEx")public CommonResult startFaceTrackingEx(@RequestBody StartFaceTrackingModel startFaceTrackingModel) {if (faceStateMonitor.getTraceMode() != 0) {return CommonResult.error("重复发送指令");}Boolean status = faceStateMonitor.startJniFaceTracingEx(startFaceTrackingModel.getMaxFaltCount(), startFaceTrackingModel.getSampleCount(), (int traceState, long eventTimePoint) -> {//推送消息Map<String, Object> map = new HashMap<>(2);map.put("traceState", traceState);map.put("eventTimePoint", eventTimePoint);String jsonStr = JSONUtil.toJsonStr(map);WebSocketMessageUtil.sendWebSocketMessage(WebSocketService.session, CommandTypeEnum.startJniFaceTracingEx.getCode(), jsonStr);alarmByTraceState(traceState, eventTimePoint, CommandTypeEnum.startJniFaceTracingEx.getCode());}, (imageBytes, width, height) -> {//将图像通过webSocket发送给前端if (WebSocketService.session != null) {Map<String, Object> map = new HashMap<>(4);map.put("imgBytes", Base64Utils.encode(imageBytes));map.put("width", width);map.put("height", height);map.put("commandType", CommandTypeEnum.openJniCamera.getCode());String jsonStr = JSONUtil.toJsonStr(map);WebSocketMessageUtil.sendWebSocketMessage(WebSocketService.session, 200, jsonStr);} else {stopFaceTracking();throw new RuntimeException("webSocket连接失败");}});if (!status) {return CommonResult.error();}return CommonResult.success();}
后期放弃做app
后期计划推出了安卓方案,也从网上找到了相关的开源代码,也部分实现了该功能,但是考虑到项目安卓开发经验不足、go服务器源码无人能维护等原因未继续实现该功能。