当前位置: 首页 > article >正文

打破传统,手势验证码识别

最近,有人提问关于他手势验证码如何训练都通过不了的问题。

经过分析,这位的问题就是识别+轨迹问题,识别准确率只有个位数之多,用的框架也是开源的Gesture_recognition_captcha-main 也是一坨屎。

轨迹的话, 他代码如下:

def sort_points_by_head_tail(trajectory_points, head, tail):
    """
    根据头尾点对轨迹点排序,路径按照从头点出发到尾点结束的顺序。
    """
    # 确保 head 和 tail 是 Python 列表,避免 NumPy 比较出错
    head = head.tolist() if isinstance(head, np.ndarray) else head
    tail = tail.tolist() if isinstance(tail, np.ndarray) else tail

    # 剩余轨迹点(去掉头尾点)
    remaining_points = [point for point in trajectory_points if not np.array_equal(point, head) and not np.array_equal(point, tail)]

    # 路径排序,从头点出发
    sorted_points = [head]
    current_point = head

    while remaining_points:
        # 找到与当前点最近的点
        next_point = min(remaining_points, key=lambda p: np.linalg.norm(np.array(current_point) - np.array(p)))
        sorted_points.append(next_point)
        remaining_points.remove(next_point)
        current_point = next_point

    # 最后加上尾点
    sorted_points.append(tail)

    return sorted_points

一眼错误,采用起始和结尾进行按x大小进行排序,轨迹怎么可能是x由小到达的排序,应该是一段曲线,然后经过连线组成的,X变化不存在所谓的由小到大。

姿态识别

我们采用姿态来识别,这类型识别常用在姿势识别,骨架识别,比如常见的人坐姿识别等,简单来说就是将物体检测出来,然后将骨架点进行细化, 

 

得到了一个由点组合而来的姿态图,最终我们通过算法将这些分散的点均匀化,即可生成密集的轨迹点。

 


http://www.kler.cn/a/459426.html

相关文章:

  • UniApp 状态管理:Vuex 在 UniApp 中的实践
  • 深入理解 JVM 的垃圾收集器:CMS、G1、ZGC
  • Vue3 内置组件之component
  • 华为ensp-BGP路由过滤
  • JS基础 -- 数组 (对象 / 数组 / 类数组 / 对象数组)的遍历
  • 生成对抗网络 (Generative Adversarial Network, GAN) 算法MNIST图像生成任务及CelebA图像超分辨率任务
  • DP协议:PHY层
  • JS - Array Api
  • 从零开始学架构——互联网架构的演进
  • C++ hashtable
  • No.3十六届蓝桥杯备战|数据类型长度|sizeof|typedef|练习(C++)
  • 线程-4-线程库与线程封装
  • 完整的 FFmpeg 命令使用教程
  • 【PyCharm】如何把本地整个项目同步到服务器?
  • 在web.xml中配置Servlet映射
  • 【Next.js】002-路由篇|App Router
  • 冒泡排序c语言
  • 百度PaddleSpeech识别大音频文件报错
  • vim/vi编辑器
  • 彩虹表的攻击与防御
  • 使用 IDE生成 Java Doc
  • C++基础:SGI STL二级空间配置器内存池
  • 【数据分析处理之缺失值】
  • Kafka消息不丢失与重复消费问题解决方案总结
  • 短视频矩阵系统搭建开发指导
  • 什么是模块?在Node.js中,每一个文件都被视为一个模块来处理