python處理滑塊驗證的軌跡計算問題

2021-09-19 17:42:17 字數 1439 閱讀 6616

在上一回中說了五行**找圖中滑塊驗證的缺口位置《python五行**解決滑塊驗證的缺口距離識別,破解滑塊驗證》,本章講軌跡相關的問題。

滑塊驗證核心是後台驗證軌跡引數,效驗軌跡取點的分布,正常情況是如下圖的離散分布

如果橫座標x是時間、縱座標y是位移,那麼每個點的切線就是加速度,會發現這樣的乙個規律,加速度由小變大,再又大變小,這是最主要的特徵之一。

速度的變化率如下:

對速度而言肯定是先加速在減速,但加速度不會是固定的,應該是變變加速和變變加速,不過目前實際應用中的情況來說,是以速度變化情況為主要判別依據,因為在以恆加減速度生成的軌跡應用中一樣可以通過檢測,就說明目前沒有對是否恆定加速度來鑑別機器和人工。

知道上面的兩點後我們就應該明白滑塊驗證的關鍵,並且可以**它的下一步優化方式將是對加速度變化的驗證,收集了兩種軌跡生成方式:一種是以加減速為主的物理學生成方式,另一種是根據軌跡離散分布生成的數學生成。

def

generate_tracks

(s):

""":param s: 缺口距離px

:return: 

"""s += 20

v = 0

t = 0.2

forward_tracks = 

current = 0

mid = s * 3 / 5

# 減速閥值

while current 

if current 

a = 2

# 加速度為+2

else:

a = -3

# 加速度-3

傳入距離s,先加上20的距離然後在生成軌跡中再減去20,達到超過缺口在回滑的效果,以固定週期0.2秒來計算軌跡和速度。

def

ease_out_quad

(x):

return

1 - (1 - x) * (1 - x)

defease_out_quart

(x):

return

1 - pow(1 - x, 4)

defease_out_expo

(x):

if x == 1:

return

1else:

return

1 - pow(2, -10 * x)

defget_tracks

(distance, seconds, ease_func):

這種方式是從時間出發,在假設勻速的情況下,把時間分割成一段一段的,每段都對應乙個軌跡,那麼這個軌跡先大後小如下:

[0, 0.0, 21.0, 16.0, 13.0, 10.0, 9.0, 6.0, 5.0, 4.0, 4.0, 2.0, 2.0, 2.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0,  0.0, 0.0, 0.0]

小紅書滑塊驗證爬蟲 Python滑塊驗證碼模型!

slideryolo簡介 使用方式 返回滑塊座標 在slider infer.py檔案中可以看到下面的函式 def infer config config 模型路徑 detector detector config,use gpu false,run mode fluid results detec...

如何用python識別滑塊驗證碼中的缺口

驗證碼往往是爬蟲路上的乙隻攔路虎,而其花樣也是層出不窮 驗證 滑塊驗證 互動式驗證 行為驗證等。隨著ocr技術的成熟,驗證已經漸漸淡出主流,而滑塊驗證越來越多地出現在大眾視野。這麼厲害,這小子長啥樣呢?沒錯,它就長這損sai 解決它的方法也很直觀,首先找到缺口的位置 通常只需要x軸的位置 然後拖動滑...

python滑鼠移動軌跡 B超軌跡球的維修與替換

在b超機器使用一段時間後,就有可能出現測量游標移動不靈敏的現象。即影象中的游標不隨著軌跡球的轉動而做相應的移動,影響了b超的正常使用。或者游標乾脆不動,使得b超機器不能使用。遇到上述現象,就需要卸下軌跡球盒,開啟盒子維修。盒子外有一條扁平電纜聯向電路板接插座上。軌跡球盒內裝有乙個大滾動球和一套光電檢...