
ããã«ã¡ã¯ ç§ã¯pythonã§èå³æ·±ãã¢ã€ãã¢ãå
·äœåãããã®çµæã«ã€ããŠè©±ããŸãã ååãäžåç£äŸ¡æ Œãããã§ç°åžžãèŠã€ããããšããŸããã ãã®ããã«ã ä»åã®ã¢ã€ãã¢ã¯ãããã€ãã®ã¢ã«ãŽãªãºã ãšãã¬ãŒãã³ã°äŸã®å€§èŠæš¡ãªããŒã¿ããŒã¹ã«åºã¥ããŠãéåžžã«äººæ°ã®ããGoogle Recaptcha 2.0èªäœã解決ã§ããã·ã¹ãã ãæ§ç¯ããããšã§ããã
Google Recaptcha 2.0ã¯äžé£ã®ç»åïŒ1ã€ã®åœä»€ã§9åãŸãã¯16åã®æ£æ¹åœ¢ã®ç»åïŒã§ããããã®äžã§ãŠãŒã¶ãŒã¯ã劥åœæ§ã確èªããããã«åãã«ããŽãªã®ãã¹ãŠã®ç»åãéžæããå¿
èŠããããŸãã ããã¯æ©æ¢°åŠç¿ã·ã¹ãã ãæ§ç¯ããããšã§ã¯ãã
ãŸãã -ãã£ããã£ãèªèããŸãïŒ

èªè
ãæè¡èšç»ã®è©³çŽ°ãç 究ã®ããã³ã¹ã«è§Šããããªãå Žåãèšäºå
šäœã®çµè«ã¯æçµçã«
BCGã®è¿ãã«éäžããŸãã
ãã®ç 究ã®ããã®ãã£ããã£ã®ãã¬ãŒãã³ã°ãµã³ãã«ã¯ãã¢ã³ããã£ããã£ãµãŒãã¹RuCaptcha.comã«ãã£ãŠèŠªåã«æäŸãããŸãããRuCaptcha.comã¯ãç§ã®ç 究ã®ããã«è§£æ±ºæžã¿ã®ãã£ããã£ã®ãµã³ãã«ã«ã¢ã¯ã»ã¹ããããã®APIãéçºããŸããã
Googleã«ã¯ãäžçã®ãã¹ãŠã®äž»èŠèšèªã§ãã£ããã£ã«é¢ããéåžžã«å€§ããªäžé£ã®æ瀺ïŒäŸïŒã¬ã¯ãªãšãŒã·ã§ã³çšè»äž¡ã§ãã¹ãŠã®ç»åãéžæïŒããªããäžéšã®æ瀺ã¯ä»ã®æ瀺ãããã¯ããã«äžè¬çã§ããããšã«æ³šæããŠãã ããã ããã«èšäºã§ã¯ãã¿ã€ãã¯ãã£ããã£ã®æ£ç¢ºãªæ瀺ãæå³ããŸãã
æ°åã®ç»å
ç»åã®ãã¹ãããããã¢ããããŒãããŠäžŠã¹æ¿ããåŸãããŸããŸãªçš®é¡ã®ãã£ããã£ãæåã§è§£æãå§ããŸããã ãŸããäžèŽãèŠã€ããããšãæåŸ
ããŠãåãã¿ã€ãã®ãã¹ãŠã®ãã£ããã£ããmd5ãµã ãäœæããŸããã æãç°¡åãªæ¹æ³ã¯æ©èœããŸããã§ãã-åã«äžèŽãããã®ããããŸããã§ããã ãããŠäœïŒ -ç§ã«ã¯æš©å©ããããŸãïŒ
ç»åã¢ã€ã³ã³ã®ç®ãæ©ããŠã¿ããšãäœãé¢çœããã®ãèŠã€ãããŸããã ããã§ãããšãã°ã4ã€ã®åäžã®ãªã ãžã³ïŒ
åãã§ãããå®å
šã§ã¯ãããŸãã-å·Šäžé
ã®ãã€ãŒã«ã®ãµã€ãºãé¡èã§ãã æ¯èŒã®ããã«ãªã ãžã³ãéžã°ããã®ã¯ãªãã§ããïŒ ããããç®ã§èŠãã®ãæãç°¡åã§ãã-éè·¯æšèãéãã®ååã®åçã1ã€ã«çµ±åãããåæ§ã®ãªã ãžã³ãããã¯ã¢ããã®æ€çŽ¢ã¯ç°¡åã§ããã ããŸããŸãªçš®é¡ã®ç»åãèªåã®ç®ã§è©äŸ¡ãããšãããå€ãã®å ŽåãããŸããŸãªå€åœ¢ïŒäŒžçž®ãå§çž®ããŸãã¯å€äœïŒã®ãã£ããã£ãç¹°ãè¿ãèŠãŸããã é©åãªç»åé¡äŒŒåºŠé¢æ°ãèŠã€ããååãªåºç€ãéããã®ã§ãããçšåºŠã®æåãæåŸ
ã§ããŸãã
ç¥èŠçããã·ã¥
ã»ãšãã©ãã¹ãŠã®æ€çŽ¢ã圌ã«ã€ãªãããŸãã Habréã«ã¯ãç¥èŠããã·ã¥ã«é¢ããå€ãã®èšäºããããŸãïŒ
1ã2ã3ã4 ïŒã NumPyããã³SciPyããã±ãŒãžã䜿çšããŠãpython
ImageHashã©ã€ãã©ãªãããã«èŠã€ãããŸããã
ç¥èŠçããã·ã¥ã¯ã©ã®ããã«æ©èœããŸããïŒ èŠããã«ïŒ
dct = scipy.fftpack.dct(scipy.fftpack.dct(pixels, axis=0), axis=1) dctlowfreq = dct[:hash_size, :hash_size] med = numpy.median(dctlowfreq) diff = dctlowfreq > med
- ç»åã¯hash_sizeãµã€ãºã«å§çž®ãããŸãã
- é¢æ£ããŒãªãšå€æã¯ãçµæã®ãã¯ã»ã«ã®å€ããååŸãããŸãã
- ããŒãªãšå€æãããäžå€®å€ãèæ
®ãããŸãã
- ããŒãªãšå€æè¡åã¯äžå€®å€ãšæ¯èŒãããçµæãšããŠãŒããš1ã®è¡åãåŸãããŸãã
ãããã£ãŠãäžå€åŒãšç»åãåºå¥ããããšãã§ããŸãããå
ã®ç»åãå°ãå€æŽããŠãå€åããŸããã æšæºã®hash_sizeã¯8ã§ãè©Šè¡æ¯èŒã§è¯å¥œã«æ©èœããŸããã ãã®ããã·ã¥ã®å€§ããªç¹åŸŽã®1ã€ã¯ãããããæ¯èŒã§ãããã®å·®ãèªç¶æ°ã®ããã«èŠããããšã§ãã
ä»ãã説æããŸãã ã€ã¡ãŒãžããã·ã¥ã¯ããŒããŸãã¯1ã®è¡åã§ãïŒãŒãã¯äžå€®å€ããäœãã1ã€ã¯äžã«ãããŸãïŒã å·®ãèŠã€ããããã«ããããªãã¯ã¹ã¯èŠçŽ ããšã«æ¯èŒãããå·®ã®å€ã¯åãäœçœ®ã«ããç°ãªãèŠçŽ ã®æ°ã«çãããªããŸãã ãããªãã¯ã¹äžã®äžçš®ã®XORã
æ°äžæã®ç»å
ç¥èŠçããã·ã¥ã¯ãåããªã ãžã³ã®éã®é¡äŒŒæ§ãæ確ã«å®çŸ©ããŸããããå€åœ¢ãç°ãªããå®å
šã«ç°ãªãç»åéã®éããå®çŸ©ããŸããã ãã ããããã·ã¥ã¯åçã«ç€ºãããŠãããã©ãŒã ãèšè¿°ããã®ã«é©ããŠããŸãïŒãã£ããã£ã®æ°ãå¢ãããšããªããžã§ã¯ãã®åœ¢ç¶ã®äžèŽã¯é¿ããããŸããããåçã®ã³ã³ãã³ãã§ã¯ãããŸããïŒãã¡ãããç¹å®ã®ãããå€ããããŸãïŒã
ãããŠãããèµ·ãã£ãã ãã£ããã£ããŒã¹ã®å¢å ã«äŒŽããç»åã«å¥ã®æ¯èŒå€ãè¿œå ããå¿
èŠæ§ãé«ãŸããŸããã
ç»åã®å®¢èŠ³çãªè²ç¹æ§ã¯ãè²åŒ·åºŠã®ãã¹ãã°ã©ã ã§èª¬æã§ããŸãã 2ã€ã®ãã¹ãã°ã©ã ã®è·é¢é¢æ°ïŒå·®é¢æ°ã§ããããŸãïŒã¯ããã¹ãã°ã©ã èŠçŽ ã®æšæºåå·®ã®åèšã§ãã ããªãè¯ãæãåŸãããŸãã
å¿çå¢çã®éžæã«é¢ãããã©ã°ã©ããšãé¡äŒŒç»åãæ€çŽ¢ããã¡ã«ããºã æ倧蚱容ããã·ã¥å·®ã®æ±ºå®ã¯æåã§è¡ãããŸããïŒ
- ç¥èŠçããã·ã¥ãšãã¹ãã°ã©ã ã®éãã«å¯Ÿããããªã¬ãŒãããå€ããããŸãïŒ æ倧äœçžè·é¢ãšæ倧ãã¹ãã°ã©ã è·é¢
- åãã¿ã€ãã®ãã¹ãŠã®ç»åã«ã€ããŠãé¡äŒŒããã°ã«ãŒããäœæããŸããåãã£ããã£ã¯æ°åã®ãã¢ã«å¯Ÿå¿ããŸã- äœçž è·é¢ã°ã«ãŒããšãã¹ãã°ã©ã è·é¢ã°ã«ãŒãã® ãé ã ãŸã§ã®è·é¢
- ç»åã®ã°ã«ãŒãå
šäœãéãããšã©ãŒãèŠèŠçã«ç¢ºèªããŸã
- 誀æ€ç¥ã®å Žåããããå€ã®1ã€ãä¿®æ£ããŸã
段èœ1ã§ãã°ã«ãŒãã«ã¯ãç« ãããââããšè¿°ã¹ãŸãããé¡äŒŒç»åãæ€çŽ¢ããå Žåãcaptchaã¯ããŒã¿ããŒã¹å
šäœãšæ¯èŒããããé¡äŒŒç»åã®ã°ã«ãŒãã®ããããšã®ã¿æ¯èŒãããŸãã åã°ã«ãŒãã§ã¯ããã¹ãŠã®ç»åãç« ã«é¡äŒŒããŠããããšãä¿èšŒãããŠããŸãããäºãã®é¡äŒŒæ§ã¯ä¿èšŒãããŠããŸããã ãããã£ãŠãé床ã®äžå®ã®åäžãéæãããŸãã
ãã®åŸã
欲匵ããªæ€çŽ¢ã¢ã«ãŽãªãºã ã«ã€ããŠç¥ããŸããããæé
ãã§ããã çè«äžããã®ãããªããŒãããã¢ã«ãŽãªãºã ã¯ã欲匵ãæ€çŽ¢ã¢ã«ãŽãªãºã ã®ããã«ãæé©ãªç»åã§ã¯ãªãæåã®ç»åãæ€çŽ¢ããŸãã ãã ããããã¯ããã¹ãŠã®çš®é¡ã®åœä»€ãäžåºŠã«æ€çŽ¢ããå Žåã«ã®ã¿å¹²æžããŸãã
äžæ¹ã§ãéåžžã«é¡äŒŒãã圢ç¶ã®
ç»åéã®
äœçžå·®ããŒãã«ãªããšããäºå®ãšãåœéœæ§ã®å²åãéåžžã«äœããªããšæ³åãããšã2ã€ã®ããã·ã¥ã䜿çšãããããç¥èŠçããã·ã¥ã®ã¿ã䜿çšããæ¹ãéããšèãããããããŸããã ããããç·Žç¿ã¯äœãšèšã£ãŠããŸããïŒ
æ¯èŒã®ããã«ãç°ãªãã¿ã€ãã®4000ç»åã®ãã£ããã£ã®2ã€ã®ãµã³ãã«ã䜿çšããŸããã 1ã€ã®ã¿ã€ãã«ã¯ãé¡äŒŒæ§ããããããã1ã€ã®ã¿ã€ãã«ã¯ä»ã®æ¹æ³ããããŸãã é¡äŒŒæ§ïŒå¥åå§çž®çïŒãšã¯ãç¹å®ã®å¿çãããå€ãæã€åãã¿ã€ãã®2ã€ã®ã©ã³ãã ã€ã¡ãŒãžãããã·ã¥ã«é¢ããŠåãã«ãªã確çãæå³ããŸãã è©äŸ¡çµæã¯æ¬¡ã®ãšããã§ãã
instructions : phash only : both hashes ( !) : 0.001% : 0.002% : 52.97% : 60.12%
ãªã ãžã³ã®ç»åã®åå以äžãäºãã«äŒŒãŠããããããïŒ äž¡æ¹ã®ããã·ã¥ã䜿çšãããšãçµæã¯ããã«è¯ããªããŸãããããã©ãŒãã³ã¹ã¯ã©ãã§ããïŒ
instructions : phash only : both hashes ( !) : 31.37s : 31.06s : 17.85s : 17.23s
é©ããããšã«ãäž¡æ¹ã®ããã·ã¥ã䜿çšãããšãæ倧åå·®ããŒãã®ç¥èŠçããã·ã¥ã®ã¿ã䜿çšãããããé«éã§ããã ãã¡ãããããã¯ç»åæ¯èŒæäœã®æ°ã®éããåå ã§ããã300å€ã®ãã¹ãã°ã©ã ã®æ¯èŒã¯ãµã€ãºã8ãã€ãã®ç¥èŠããã·ã¥ã®æ¯èŒããã28.7ïŒ
é
ããšããäºå®ã«ããããããïŒ
æ°åäžæã®ç»å
倧éã®ãµã³ãã«ã§ããã©ãŒãã³ã¹ã®åé¡ãæããããŸããã æã人æ°ã®ããã¿ã€ãã§ã¯ãã©ãããããã§ã®é¡äŒŒç»åã®æ€çŽ¢æéã¯ãã§ã«æ°ç§ã§ããã 粟床ã®æ倱ãæå°éã«æããªãããæ€çŽ¢ã®æé©åãå¿
èŠã§ããã
äœçžç²ŸåºŠãå€æŽããããšã¯ãç§ã«ãšã£ãŠè¯ãèãã®ããã«æããŸããã§ããã ãããã£ãŠãããã€ãã®ãã£ããã£ã®è²ã®åŒ·åºŠã®ãã¹ãã°ã©ã ã泚ææ·±ãèŠãŠã¿ãŸãããã
ãã®ãã¹ãã°ã©ã ãç°¡åã«èª¬æããããã«æ±ããããå Žåãã暪座æšå€55ã§éãããŒã¯ã次ã«ã°ã©ããç·©ããã«æžå°ããå€170ããã³220ã§2ã€ã®å±æçãªäœå€ããšèšããŸãã åæ§ã®ãã£ããã£ããããå€ãã®ãã¹ãã°ã©ã ãããããååŸãããšããããã®ããããã®åœ¢ç¶ãäºãã«é¡äŒŒããŠãããé«äœã®äœçœ®ïŒæ¥µå€ïŒã«ããããªèª€å·®ãããããšã«æ°ä»ãã§ãããã ã§ã¯ããããã®å€ã䜿çšããŠãç°ãªãå€ãæå³çã«é®æããªãã®ã¯ãªãã§ããïŒ
OK GoogleãPythonãã£ãŒãã§æ¥µå€ãèŠã€ããæ¹æ³ã¯ïŒ
import numpy as np from scipy.signal import argrelextrema mins = argrelextrema(histogram, np.less)[0] maxs = argrelextrema(histogram, np.greater)[0]
argrelextremaé¢æ°ã®
説æã¯ãããŒã¿ã®çžå¯Ÿçãªæ¥µå€ãèšç®ããŸãã
ãã ãããã¹ãã°ã©ã ã¯ã®ã¶ã®ã¶ã«ãªããããŠãããå¿
èŠä»¥äžã«å±æçãªæ¥µå€ããããŸãã é¢æ°ãå¹³æ»åããå¿
èŠããããŸãã
s = numpy.r_[x[window_len-1:0:-1],x,x[-1:-window_len:-1]]
ã¹ã©ã€ãã£ã³ã°ãŠã£ã³ããŠã¢ã«ãŽãªãºã ã§ã°ã©ããå¹³ååããŸãã ãŠã£ã³ããŠãµã€ãºã¯ãæå°ãŸãã¯æ倧ã®æ°ãå¹³å2ã«ãªãããã«çµéšçã«éžæããã100ãã¯ã»ã«ã®å€ã§åæ¢ããŸããã ãã®ã¢ã«ãŽãªãºã ã®çµæã¯ãçŸãããã¹ã ãŒãºã§...ã¹ã±ãžã¥ãŒã«ãé·ããªããŸãã ãŠã£ã³ããŠã®ãµã€ãºãæ£ç¢ºã«åŒã䌞ã°ããã
åæ§ã«ã極å€ã·ããã®äœçœ®
mins = array([ 50, 214, 305]) maxs = array([116, 246])
極å€ååžçµ±èš2ã€ã®æ¥µå°å€ïŒãŸãã¯æ倧å€ïŒãæã€ãã¹ãŠã®å©çšå¯èœãªç»åã«ã€ããŠããããã®äœçœ®ã®çµ±èšããŸãšããŸããã ã°ã©ãã«ã¯å€§ããªããŒã¯ïŒæ倧100åïŒããããæ確ã«ããããã«çãããå¿
èŠããããŸããã



極å€ã®ã°ã©ãã¯ã101ã§2ã€ã®éšåã«èŠèŠçã«åå²ã§ããŸããããã¯ãªãã§ããïŒ ãã£ã«ã¿ãªã³ã°åŸããããã¯å®å
šã«ç°ãªã2ã€ã®ç»åã°ã«ãŒãã§ãããããŒã¯ã®å·ŠåŽã«ç°ãªãã¿ã€ãã®çŽ20äžæã®ç»åãããããšãããããŸããã ãã®ãããªããªãããŒãªååžã¯ãå³ã®ãããªæããã£ããã£ã«ãã£ãŠäžããããŸãã åæ§ã®ç¶æ³ã§ãããç»åãã¯ããã«æãããäœåã§èŠ³å¯ã§ããŸãã
åæ§ã®ãã£ããã£ã®å€ãã®ã°ã©ããæ¯èŒãããšã3ã4ãã¯ã»ã«ãå±æçãªæ¥µå€ã®äœçœ®ããã®èš±å®¹å¯èœãªåå·®ã§ããããšãããããŸããã ãã®å€ãããå°ããªæ¹åã«èª¿æŽããããšã«ãããå§çž®çã®äœäžã«ãããã¢ã«ãŽãªãºã ã®ãã倧ããªãã£ã«ã¿ãªã³ã°ãšé«éåãå®çŸã§ããŸãã
ãã¡ãããRuCaptchaã®ãã£ããã£ã«ã¯èªèãšã©ãŒããã£ãå¯èœæ§ããããŸãã ãããã«å¯Ÿæããããã«ããã£ããã£è©äŸ¡ã·ã¹ãã ãå°å
¥ãããŸããã æ°ããcaptchaã®md5ãæ¢ã«ããŒã¿ããŒã¹ã«ããããåœä»€ã®ã¿ã€ããç°ãªãå Žåãå€ãcaptchaã«ã¯
倱æã«ãŠã³ã¿ãŒããããå€ãcaptchaã®ã¿ã€ããæ°ããcaptchaã®ã¿ã€ããšåãã§ããå Žåã
人æ°ã«ãŠã³ã¿ãŒãå¢å ããŸãã ãããã£ãŠãééã£ã決å®ã®èªç¶ãªèª¿æŽãå°å
¥ãããŸã-åæ§ã®æ±ºå®ãæ€çŽ¢ããå Žåã
人æ°>倱æã®ãã£ããã£ã®ã¿ãèæ
®ãããŸãã
ç§ã®æåã®çŸäž
調æ»äœæ¥ã®ãã¹ãŠã®æéã§ã100äžä»¥äžã®è§£æ±ºããããã£ããã£ãåéãããŸããã ããŒã¿ã®ä¿åã«ã¯ãPostgreSQLããŒã¿ããŒã¹ã䜿çšãããŸããããã®ããŒã¿ããŒã¹ã§ã¯ãããã·ã¥ãšãã¹ãã°ã©ã å€ã®é
åãä¿åãããšäŸ¿å©ã§ããã ãã¹ãã°ã©ã ã®ä¿åãšããã°ã
255 + window_sizeã®å€ããã¹ãŠä¿åããŠã2ã€ã®ãã¹ãã°ã©ã éã®è·é¢ãèšç®ããå¿
èŠã¯ãããŸããã é
åå€ã®ååãŸãã¯3åã®1ã䜿çšããå Žåãè·é¢ã®ç²ŸåºŠã¯ãããã«äœäžããŸããããã£ã¹ã¯å®¹éã¯ç¯çŽãããŸãã
ãã®ãããªãµã³ãã«ã®å Žåããã£ããã£çµ±èšã¯éåžžã«æ£ç¢ºã§ãã
以äžã¯ãæããå§çž®æ§ããé«ã人æ°ã®ãããã£ããã£ïŒå3è¡ïŒã«é¢ããããŒã¿ã§ãã
(%) 15274 5508 64 2453 928 62 5261 2067 61 ( !) 201872 189473 6 137893 134695 2 94569 92824 2
æãçŽç²ãªåœ¢åŒã®
ãã¬ãŒãã®æ³å ïŒæ瀺ã®11ïŒ
ããã¹ãŠã®ãã£ããã£ã®ã80ïŒ
ãäžããŸãïŒããã³æ瀺ã®20ïŒ
ããã¹ãŠã®ãã£ããã£ã®91ïŒ
ãäžããŸãïŒã ãããŠãçµ±èšã¯ãæãå§çž®å¯èœãªã¿ã€ããæ¯æãããã®ã§ã¯ãããŸããã
Googleèªèº«ã¯ããèšã£ãŠããŸãïŒ
reCAPTCHAã¯ãé«åºŠãªãªã¹ã¯åæãšã³ãžã³ãšé©å¿åCAPTCHAã䜿çšããŠãèªååããããœãããŠã§ã¢ããµã€ãã§ã®äžæ£è¡çºãè¡ããªãããã«ããŸãã
CAPTCHAã解決ããããã³ã«ããã®äººéã®åªåãããã¹ãã®ããžã¿ã«åãç»åã®æ³šéä»ããæ©æ¢°åŠç¿ããŒã¿ã»ããã®æ§ç¯ã«åœ¹ç«ã¡ãŸãã ããã«ãããæžç±ã®ä¿åãå°å³ã®æ¹åãããŒãAIã®åé¡ã®è§£æ±ºã«åœ¹ç«ã¡ãŸãã人ã
ã«ãããã£ããã£ã®è§£æ±ºãéããŠãããã圌ãã®èªåå転ãä¿èšŒããããšã瀺åããŸãã Googleã¯ã亀éæšèãéãã®ååãªã©ãç»åã®å転ãé©åãªã¬ãã«ã®å°ããªäžé£ã®æ瀺ã«äŸåããŠããŸããã

ã¿ã¹ã¯ã«ã¯å®éã®Google reCaptchaã®ãã§ãã¯ã«é¢ããé
ç®ãå«ãŸããŠããªãã£ãããã代ããã«ããã¹ãŠã®æ°ãããã¬ãŒãã³ã°ç»åã«æ¬¡ã®ã¢ã«ãŽãªãºã ã䜿çšããŸãã
- å
¥åãã£ããã£ã¯3x3ãŸãã¯4x4ããã£ããã£ãããããã9ãŸãã¯16åã®ç»åã«åå²ãããŸã
- äžèšã®ã¢ã«ãŽãªãºã ã«ãããšã9åãŸãã¯16åã®ç»åãã¹ãŠã«å¯ŸããŠãããŒã¿ããŒã¹å
ã®ãã¹ãŠã®ã¿ã€ãã®é¡äŒŒããŒã¿ãéžæãããŸãã
- èŠã€ãã£ã解ã®ç»åã€ã³ããã¯ã¹ã¯ãåç
§è§£ã®ã€ã³ããã¯ã¹ãšæ¯èŒãããŸã
- ãœãªã¥ãŒã·ã§ã³éã®å·®ç°ïŒç°ãªãã€ã³ããã¯ã¹ã®æ°ïŒã50ïŒ
以äžã®å Žåããã£ããã£ã¯æªè§£æ±ºãšèŠãªãããŸã
å·ŠåŽã®äŸã§ã¯ãããŒã¿ããŒã¹ïŒèªåãœãªã¥ãŒã·ã§ã³ïŒã®ããŒã¿ãæ£ããã€ã³ããã¯ã¹ã0ã1ã3ã§ãããåç
§ãœãªã¥ãŒã·ã§ã³ã0ã1ã4ã§ããå Žåãã€ã³ããã¯ã¹3ãš4ã¯ç°ãªãã€ã³ããã¯ã¹ã«ãªããŸããç°ãªãã€ã³ããã¯ã¹ãããªãã¡ ãã£ããã£ã¯è§£æ±ºãããŸããã
ã»ãšãã©ã®3x3 captchas 3ïŒ+ -1ïŒã€ã³ããã¯ã¹ã¯æ£ããããããã®ãããªã¢ã«ãŽãªãºã ã¯ãèªç¶ãª
reCaptchaãšåæ§ã®çµæã
ãããããŸãã
ãã©ã°ã©ã2ã§ã¯ããœãªã¥ãŒã·ã§ã³ã¯ããŸããŸãªæ¹æ³ã§éžæã§ããŸãã
- åç»åã«ã€ããŠãããŒã¿ããŒã¹å
ã®ãã¹ãŠã®çš®é¡ã®ç»åãæ€çŽ¢ããŠãããåœä»€ã®çš®é¡ã«å¯Ÿå¿ããç»åã®ã¿ãéžæããŸãã ãã®ãããªã¢ãããŒãã«ããã察象å€ã®ç»åããã解ã®çµ±èšãèŠã€ããããšãã§ãã決å®ã®æ£ç¢ºæ§ã«å¯Ÿãã誀æ€ç¥ã®åœ±é¿ã確èªã§ããŸãã
- ç»åããšã«ã1çš®é¡ã®æ瀺ã®ã¿ãæ€çŽ¢ããŸãã ãã®ãããªæ€çŽ¢ã¯ã¯ããã«é«éã§ãããååãšããŠæåã®æ¹æ³ããã®èª€æ€åºãäžããŸããã
以äžã¯ãæ°æ¥éã®è§£ççµæã®ãã€ããã¯ã¹ã§ãã
å¹³åããŠãçµã¿ç«ãŠãããã·ã¹ãã ã¯Googleã®ãã£ããã£ã12.5ïŒ
ã®ç¢ºçã§è§£æ±ºããŸãããããã«ãããGoogleã®ãœãªã¥ãŒã·ã§ã³ãæ¯æãã匷ãè°è«ãã§ããŸããã
é©ããããšã«ããœãªã¥ãŒã·ã§ã³ã®æ°ã®ç¹ã§ãªãŒããŒã¯æãå§çž®ãããŠããªããã£ããã£ïŒè€æ°ã®ãµã³ãã«ã®çµ±èšïŒã®1ã€ã§ããã
(%) (%) 142 14.03 2 ( !) 80 7.91 6 68 6.72 40 ( ) 58 5.73 43 ( ) 58 5.73 43 57 5.63 43
ãŸããéã¿ãŒã²ãããã£ããã£ïŒ55ïŒ
ïŒã¯ã¿ãŒã²ãããã£ããã£ïŒ45ïŒ
ïŒãããããã«å€ããããŸããã ã¿ãŒã²ãããã£ããã£ã¯ãããŒã¿ããŒã¹å
šäœãæ€çŽ¢ãããšãã«ïŒ1ã€ã®ã¿ã€ãã®åœä»€ã ãã§ãªãïŒã€ã¡ãŒãžãæ£åžžã«æ€åºããããã®ã¿ã€ãããã£ããã£åœä»€ã®ã¿ã€ãã«å¯Ÿå¿ãããã®ã§ãã èšãæããã°ããªã ãžã³ã«é¢ããå¹³åçãª3x3ã®ãã£ããã£ã«ã¯ããªã ãžã³ãå«ã3ã€ã®ç»åãšããã®ä»ã®ã¿ã€ããå«ãå¥ã®3.66ç»åããããŸãã
ãã®ç 究ã¯ãç¥èŠçãªããã·ã¥ãšè²ã®ãã¹ãã°ã©ã ã«åºã¥ããŠã巚倧ãªãã¬ãŒãã³ã°ãµã³ãã«ã䜿çšããŠããã£ããã£ãœãªã¥ãŒã·ã§ã³ã·ã¹ãã ãæ§ç¯ããããšã¯äžå¯èœã§ããããšã瀺ããŸããã
reCapthcaã®ãã®çµæã¯ãæã人æ°ã®ããã¿ã€ãã®
ãã£ããã£ãé©åã«ããŒããŒã·ã§ã³ãããããã«éæãããŸãã
RuCaptchaã®å¿«é©ãªã³ãã¥ãã±ãŒã·ã§ã³ã«æè¬ãã圌ãã®èš±å¯ãåŸãŠãYandexãã£ã¹ã¯ã«ãªãŒãã³ã¢ã¯ã»ã¹ã§ãã¬ãŒãã³ã°ãµã³ãã«ãæçš¿ããŸãïŒããŠã³ããŒãã¯æ¥ãããã£ã¹ã¯ã¯1ãæåæ¯æãããŸãïŒã
- yadi.sk/d/CNJQ5uOwqfykL
- yadi.sk/d/gnTU-qwnqfykM
- yadi.sk/d/6vTTjhJaqfykV
Yandexãã©ã€ãã¯10ã®ã¬ãã€ããè¶
ãããã¡ã€ã«ãã¢ããããŒãã§ããªããããç 究è
ã¯3éšæ§æã®tarã¢ãŒã«ã€ããæ¥çããäœæ¥ãåŸ
ã£ãŠããŸãã
åããµã³ãã«ã§ã®æ©æ¢°åŠç¿ã«ã€ããŠã®èãã¯ç§ãå»ããŸãã:)ãããŸã§
ã¯ãã·ã¹ãã ã®
ãœãŒã¹ã³ãŒãã Python
ã§å
±æããŠã
ãŸã ã