人脸识别 - 去重时间窗口

人脸识别去重时间窗口

1、基本介绍
  1. 人脸识别系统中存在去重时间窗口,也可以叫防重复识别间隔

  2. 同一张人脸被识别后,在设定的时间窗口内再次出现时,不再重复处理

  3. 该窗口时长可配置,常见的例如,5秒、3秒,具体取决于业务场景对效率的要求

2、代码实现
java 复制代码
// 识别窗口,单位秒
public static final int THROTTLE_WINDOW = 10;

// key 为人脸 Id
// value 为最近一次被采纳识别的时间戳
private static final Map<Integer, Long> identifyTimeMap = new HashMap<>();

public static boolean isInThrottle(int faceImgId) {
    Long lastIdentifyTime = identifyTimeMap.get(faceImgId);
    if (lastIdentifyTime == null) return false;
    return System.currentTimeMillis() - lastIdentifyTime < THROTTLE_WINDOW * 1000L;
}

public static void recordIdentify(int faceImgId) {
    identifyTimeMap.put(faceImgId, System.currentTimeMillis());
}

public static void resetThrottle() {
    identifyTimeMap.clear();
}

// 返回 true 表示要被拦截,返回 false 表示不被拦截
java 复制代码
// 识别窗口,单位秒
public static final int THROTTLE_WINDOW = 10;

// key 为人脸 Id
// value 为最近一次被采纳识别的时间戳
private static final Map<Integer, Long> identifyTimeMap = new HashMap<>();

public static boolean handleThrottle(int faceImgId) {
    Long lastIdentifyTime = identifyTimeMap.get(faceImgId);

    if (lastIdentifyTime != null
            && System.currentTimeMillis() - lastIdentifyTime < THROTTLE_WINDOW * 1000L) {
        return true;
    }

    identifyTimeMap.put(faceImgId, System.currentTimeMillis());
    return false;
}

public static void resetThrottle() {
    identifyTimeMap.clear();
}

// 返回 true 表示要被拦截,返回 false 表示不被拦截
相关推荐
minglie11 小时前
espidf的espnow的配对
学习
逆境不可逃1 小时前
Pi Agent 学习笔记:一次提问背后的工具调用循环
java·笔记·学习
落魄大学生之流水线上谋生计1 小时前
Java并发核心机制详解:线程池、CAS、AQS、锁升级
java·开发语言·数据库
hahaha60161 小时前
HLS高层次综合设计技巧--数组
开发语言·嵌入式硬件·算法·fpga开发
王志来137944730081 小时前
安防监控工控工业服务器配套
运维·服务器·python
aosky1 小时前
Linux 写内容到文件的几种方式
java·linux·服务器
投票竞赛1 小时前
作品投票版权注意事项,线上评选上传图片视频须知
python·音视频
2601_962293531 小时前
人工智能 & 神经网络完整入门路线(零基础可走,分阶段)
人工智能·python·深度学习·神经网络·机器学习
佳児素花痴╮2 小时前
Qt速通2
开发语言·qt