打破传统,手势验证码识别
最近,有人提问关于他手势验证码如何训练都通过不了的问题。
经过分析,这位的问题就是识别+轨迹问题,识别准确率只有个位数之多,用的框架也是开源的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变化不存在所谓的由小到大。
姿态识别
我们采用姿态来识别,这类型识别常用在姿势识别,骨架识别,比如常见的人坐姿识别等,简单来说就是将物体检测出来,然后将骨架点进行细化,
得到了一个由点组合而来的姿态图,最终我们通过算法将这些分散的点均匀化,即可生成密集的轨迹点。