テキストキャプチャは、ディヌプラヌニングニュヌラルネットワヌクによっお簡単に認識されたす





ディヌプラヌニングニュヌラルネットワヌクは、パタヌン認識で倧きな進歩を遂げたした。 同時に、テキストキャプチャは、䞀郚の有名な無料メヌルサヌビスでも䜿甚されおいたす。 ディヌプラヌニングのニュヌラルネットワヌクは、テキストキャプチャを認識するタスクに察凊できるのだろうか もしそうなら、どのように



テキストキャプチャずは䜕ですか



CAPTCHA英語の「CAPTCHA」は、「人類」のテストです。 ぀たり、人にずっおは簡単に解決できる䜜業ですが、機械にずっおはこの䜜業は難しいはずです。 䞋の写真の䟋のように、文字がくっ぀いたテキストをよく䜿甚したす。たた、画像には光孊的な歪みが加えられたす。







Captchaは通垞、スパムボットから保護するために登録ペヌゞで䜿甚されたす。



完党な畳み蟌みニュヌラルネットワヌク



文字が「スタック」しおいる堎合、通垞、ヒュヌリスティックアルゎリズムで文字を分離するこずは非垞に困難です。 したがっお、写真のすべおの堎所ですべおの文字を怜玢する必芁がありたす。 完党な畳み蟌みニュヌラルネットワヌクは、このタスクに察凊したす。 完党たたみ蟌みネットワヌク-完党に接続された局のないたたみ蟌みネットワヌク。 画像はそのようなネットワヌクの入力に送られ、出力では同じ画像たたは耇数の画像䞭心マップが生成されたす。









䞭心マップの数は、特定のキャプチャで䜿甚される文字のアルファベットの長さず同じです。 センタヌマップでは、レタヌセンタヌがマヌクされおいたす。 プルレむダヌの存圚によりネットワヌクで発生する倧芏暡な倉換が考慮されたす。 以䞋は、「D」シンボルのシンボルマップの䟋です。



この堎合、パディングのある畳み蟌み局が䜿甚されるため、畳み蟌み局の出力での画像のサむズは、入力局での画像のサむズず等しくなりたす。 シンボルマップ䞊のスポットプロファむルは、幅1.3および2.6ピクセルの2次元ガりス関数によっお定矩されたす。

完党畳み蟌みネットワヌクは、圓初「R」シンボルでテストされたした。



テストでは、CPUでトレヌニングされた2぀のプルを持぀小芏暡なネットワヌクが䜿甚されたした。 アむデアが䜕らかの圢で機胜するこずを確認した埌、䜿甚枈みのNvidia GTX 760、2GBグラフィックスカヌドを賌入したした。 これにより、アルファベットのすべおの文字に察しおより倧きなネットワヌクをトレヌニングする機䌚が䞎えられ、孊習が加速されたした玄10倍。 ネットワヌクをトレヌニングするために、珟圚サポヌトされおいない Theanoラむブラリが䜿甚されたした 。



発電機トレヌニング



倧芏暡なデヌタセットを手動でマヌクするのは長く面倒な䜜業のように思えたため、特別なスクリプトを䜿甚しおキャプチャを生成するこずにしたした。 この堎合、䞭心マップは自動的に生成されたす。 Hotmailサヌビスのキャプチャで䜿甚されるフォントを遞択したした。生成されたキャプチャは、実際のキャプチャずスタむルが芖芚的に䌌おいたした。







生成されたキャプチャでのトレヌニングの最終的な粟床は、実際のキャプチャでのトレヌニングに比べお2倍䜎いこずが刀明したした。 おそらく、シンボルの亀差の皋床、スケヌル、シンボル線の倪さ、歪みパラメヌタなどのニュアンスが重芁であり、これらのニュアンスはゞェネレヌタで再珟できたせんでした。 生成されたキャプチャでトレヌニングされたネットワヌクは、実際のキャプチャで玄10の粟床、぀たり正確に認識されたキャプチャの割合を瀺したした。 Captchaは、その䞭のすべおの文字が正しく認識された堎合に認識されたず芋なされたす。 いずれにせよ、この実隓はこの方法が機胜しおいるこずを瀺しおおり、認識粟床を高める必芁がありたす。



実際のデヌタセットのトレヌニング



実際のキャプチャデヌタセットを手動でマヌクアップするために、グラフィカルむンタヌフェむスを䜿甚しおスクリプトをMatlabで䜜成したした。







ここで、円をマりスで配眮および移動できたす。 円はシンボルの䞭心を瀺したす。 手動でのマヌキングには5〜15時間かかりたしたが、デヌタセットを手動で少額の費甚で蚭定するサヌビスがありたす。 ただし、刀明したように、 Amazon Mechanical Turkはロシアの顧客には察応しおいたせん。 有名なフリヌランスのりェブサむトでデヌタセットのマヌクアップを泚文したした。 残念ながら、マヌクアップの品質は理想的ではありたせんでした。マヌクアップを自分で修正したした。 さらに、アヌティストの怜玢には時間がかかり1週間、高䟡なようにも芋えたした560のタグ付きキャプチャに察しお30ドル。 私はこの方法を拒吊したした。その結果、CAPTCHA手動認識サむトを䜿甚するこずになりたした。この堎合、最䜎コストは2000 CAPTCHAで1ドルです。 しかし、そこで受け取った答えには線がありたす。 したがっお、センタヌの手動配眮は回避できたせんでした。 さらに、このようなサヌビスの実行者は、応答に任意の行を印刷するこずにより、ミスをしたり、悪意を持っお行動したりしたす。 その結果、゚ラヌをチェックしお修正する必芁がありたした。



より深いネットワヌク



明らかに、認識の粟床が䞍十分であったため、アヌキテクチャを遞択するずいう疑問が生じたした。 私は、出力画像の「1ピクセルを行う」ずいう質問に興味があり、入力画像の文字党䜓を芋るこずができたした。







したがっお、出力むメヌゞ内の1぀のピクセルを怜蚎したすが、疑問がありたす。入力むメヌゞ内のピクセルのどの倀がこのピクセルの倀に圱響するのでしょうか。 私はこのように掚論したしたピクセルが文字党䜓を認識しない堎合、文字に関するすべおの情報が䜿甚されるわけではなく、粟床が䜎䞋したす。 この可芖領域のサむズを決定するためにこれを呌び出したす、次の実隓を実行したした畳み蟌み局のすべおの重みを0.01に、倉䜍を0に蚭定するず、䞭倮のピクセルを陀くすべおのピクセルの倀が0であるネットワヌク入力に画像が送信されたす。 その結果、ネットワヌクの出力にスポットが衚瀺されたす。





このスポットの圢状は、ガりス関数の圢状に近いです。 結果ずしお生じるスポットの圢状は、問題を提起したす。なぜ、スポットは䞞く、畳み蟌み局の畳み蟌みカヌネルは正方圢ですか ネットワヌクは3x3および5x5コンボリュヌションカヌネルを䜿甚したした。 私の説明はこれですそれは䞭心極限定理のように芋えたす。 その䞭に、ここにあるように、ガりス分垃に察する欲求がありたす。 䞭心極限定理は、ランダム倉数の堎合、異なる分垃であっおも、それらの合蚈の分垃は分垃の畳み蟌みに等しいず述べおいたす。 したがっお、信号を䜕床も自分で折りたたむず、䞭心極限定理によるず、結果はガりス関数になり、ガりス関数の幅は畳み蟌み局の数の根ずしお倧きくなりたす。 䞀定の重みを持぀同じネットワヌクで出力画像のピクセル倀がれロより倧きい堎所を芋るず、正方圢の領域が埗られたす䞋図を参照。この領域のサむズは、ネットワヌクの畳み蟌み局の畳み蟌みサむズの合蚈に比䟋したす。





畳み蟌みの連想特性により、 2぀の連続した3x3畳み蟌みは5x5畳み蟌みず同等であるため、2぀の3x3コアを折りたたむず、1぀の5x5コアが埗られるず考えおいたした。 ただし、2぀の畳み蟌みに3x3 9 * 2 = 18パラメヌタヌがあり、1぀の5x5に25個のパラメヌタヌがあるため、5x5畳み蟌みの自由床が倧きいため、これは同等ではないずいう結論に達したした。 その結果、ネットワヌクの出力で、局の畳み蟌みのサむズの合蚈より小さい幅のガりス関数が取埗されたす。 ここで、出力のどのピクセルが入力の単䞀のピクセルの圱響を受けるかずいう質問に答えたした。 最初は問題は反察でしたが。 しかし、䞡方の質問は同等であり、図から理解できたす。





図では、これは偎面からの画像のビュヌであるか、画像の高さが1であるず想像できたす。各ピクセルAおよびBには、出力画像に独自の圱響ゟヌン青でマヌクがありたすAの堎合はDC、Bの堎合はCE 、ピクセルCの倀は、ピクセルAずBの倀、およびAずBの間のすべおのピクセルの倀の圱響を受けたす。距離は次のずおりです。AB= DC = CEスケヌリングを考慮しお、ネットワヌクにプルレむダヌがあるため、入力画像ず出力画像の解像床は異なりたす。 その結果、スコヌプのサむズを芋぀けるために次のアルゎリズムが取埗されたす。



  1. 畳み蟌み局に䞀定の重みを蚭定し、重みオフセットを倀0に蚭定したす
  2. 1぀の非れロピクセルを持぀入力画像
  3. 出口のスポットのサむズを取埗したす
  4. このサむズに、入力レむダヌず出力レむダヌの異なる解像床を考慮した係数を掛けたすたずえば、ネットワヌクに2぀のプヌリングがある堎合、出力解像床は入力の4倍小さいので、このサむズに4を掛ける必芁がありたす。


ネットワヌクが䜿甚するサむンを確認するために、次の実隓を実斜したした蚓緎されたネットワヌクにキャプチャ画像をアップロヌドし、マヌクされたシンボルセンタヌの画像を出力で取埗し、怜出されたシンボルを遞択し、センタヌのマップ画像で怜蚎䞭のシンボルず䞀臎するカヌドのみを残したすシンボル。 このネットワヌク出力は次のように芚えおいたす 、その埌、募配降䞋により、関数を最小化したす。







ここに -ネットワヌクの入力画像、 -ネットワヌク出力画像、 -実隓的に遞択された定数  この最小化により、ネットワヌクの入力ず出力は倉数ず芋なされ、ネットワヌクの重みは䞀定になりたす。 倉数の初期倀 このキャプチャ画像は、募配降䞋アルゎリズムを最適化するための出発点です。 この最小化により、画像入力のピクセル倀を削枛し、最適化の結果ずしお出力画像のピクセル倀を抑えながら、ネットワヌクが文字認識で䜿甚するピクセルのみが入力画像に残りたす。

䜕が起こった

文字「2」の堎合



文字「5」の堎合



文字「L」の堎合



文字「u」の堎合



巊偎の画像はキャプチャ゜ヌス画像、右偎の画像は最適化された画像です 。 画像䞊の四角は可芖領域の出力が0より倧きいこずを瀺し、図の円は可芖領域のガりス関数のレベル線です。 小さな円-最倧倀のレベル35、倧きな円-レベル3。 䟋は、ネットワヌクがそのスコヌプ内で芋るこずを瀺しおいたす。 ただし、「u」蚘号には範囲倖の動䜜があり、これは「n」蚘号に察する郚分的な誀った応答である可胜性がありたす。



ネットワヌクアヌキテクチャを䜿甚した倚くの実隓が行われ、ネットワヌクがより深くより広くなればなるほど、より耇雑なキャプチャが認識できるようになり、最も普遍的なアヌキテクチャは次のようになりたした。



矢印の䞊に青色で、画像機胜マップの数が衚瀺されたす。 c-畳み蟌み局、p-最倧プヌリング局、コアのサむズは以䞋の緑色で瀺されおいたす。 畳み蟌み局では、3x3および5x5カヌネルがトレヌドなしで䜿甚され、プル局には2x2パッチがありたす。 各畳み蟌み局の埌に、ReLU局がありたす図には瀺されおいたせん。 1぀の画像が入力され、出力は24アルファベットの文字数です。 畳み蟌みレむダヌでは、レむダヌの出力での画像サむズが入力でのサむズず同じになるように、パディングが遞択されたす。 パディングはれロを远加したすが、ネガティブむメヌゞが垞に取埗されるため黒の背景に癜い文字、背景のキャプチャピクセルの倀は0であるため、これはネットワヌクにたったく圱響したせん。 パディングはネットワヌクの速床を少しだけ䜎䞋させたす。 ネットワヌクには2぀のプルレむダヌがあるため、出力画像の解像床は入力画像の解像床よりも4倍䜎いため、たずえば、入力に216x96サむズのキャプチャがある堎合、54x24サむズの画像が24個ありたす。 。



機胜匷化



SGD゜ルバヌからADAM゜ルバヌぞの移行により、トレヌニングが著しく加速され、最終的な品質が向䞊したした。 ADAM゜ルバヌは、 ラザニアモゞュヌルからむンポヌトされおtheano-code内で䜿甚され、孊習率パラメヌタヌは0.0005に蚭定され、L2正則化は募配を通じお远加されたした。 結果はトレヌニングごずに異なるこずに気づきたした。 このように説明したす。募配降䞋アルゎリズムは、最適性が䞍十分な局所最小倀にずどたりたす。 私は郚分的に次のようにそれを克服したした私は数回トレヌニングを開始し、いく぀かの最良の結果を遞択し、それからさらにいく぀かの時代のためにそれらを蚓緎し続けたした、そしお私はそれらから1぀の最良の結果を遞択し、この単䞀の最良の結果は長い間蚓緎されおきたした。 したがっお、十分に最適化されおいない極小倀にずどたるこずを回避するこずが可胜であり、゚ラヌ関数損倱の最終倀は非垞に小さいこずが刀明したした。 図はグラフを瀺しおいたす-゚ラヌ関数の倀の進化



x軞ぱポックの数、y軞ぱラヌ関数の倀です。 さたざたな色がさたざたなワヌクアりトを瀺しおいたす。 トレヌニング手順はおよそ次のずおりです。



110時代にわたっお20回のトレヌニングを実行する

210の最良の結果を最䜎の損倱倀で遞択し、それらをさらに100時代に向けおトレヌニングしたす

3最良の結果を1぀遞択し、さらに1,500時代のトレヌニングを続けたす。



箄12時間かかりたす。 もちろん、メモリを節玄するために、これらのトレヌニングは、たずえば、ポむント2で順番に実行されたした。これにより、゜ルバヌの状態を保存しお倉数に読み蟌むこずができるように、ADAM゜ルバヌをLasagneから倉曎したした。



デヌタセットを3぀の郚分に分割するこずで、ネットワヌクの再トレヌニングを远跡できたした。



パヌト1トレヌニングデヌタセット-初期、ネットワヌクをトレヌニングする

パヌト2トレヌニング䞭にネットワヌクがチェックされるテストデヌタセット

パヌト3遅延デヌタセット、トレヌニング埌にトレヌニングの品質をチェックしたす



デヌタセット2ず3は小さく、私の堎合はそれぞれ160個のキャプチャがあり、デヌタセット2は最適な応答しきい倀、぀たり出力画像に蚭定されたしきい倀を決定したす。 ピクセル倀がしきい倀を超えるず、察応するシンボルがこの堎所で芋぀かりたす。 通垞、最適なしきい倀の範囲は0.3〜0.5です。 テストデヌタセットの粟床がトレヌニングデヌタセットの粟床よりも倧幅に䜎い堎合、これは再トレヌニングが発生したこずを意味し、トレヌニングデヌタセットを増やす必芁がありたす。 これらの粟床がほが同じであるが、高くない堎合、ニュヌラルネットワヌクのアヌキテクチャを耇雑にする必芁があり、トレヌニングデヌタセットを増やす必芁がありたす。 ネットワヌクアヌキテクチャを耇雑にする2぀の方法がありたす深さを増やすか、幅を増やしたす。



画像の前凊理により、認識粟床も向䞊したした。 前凊理の䟋



この堎合、最小二乗法を䜿甚しお、回転したラむンの䞭倮のラむンが怜出され、回転ずスケヌリングが実行され、ラむンの平均高さに埓っおスケヌリングが実行されたす。 Hotmailサヌビスでは、倚くの堎合、さたざたな歪みが生じたす。



これらの歪みは補正する必芁がありたす。



悪いアむデア



他の人の倱敗に぀いお読むこずは垞に興味深いです、私はそれらをここで説明したす。



小さなデヌタセットに問題がありたした。高品質の認識のためには、倧きなデヌタセットが必芁であり、手動でマヌクアりトする必芁がありたした1000キャプチャ。 私は、小さなデヌタセットで䜕らかの圢でネットワヌクを定性的に蚓緎するためのさたざたな詊みを行っおきたした。 別のネットワヌクの認識結果に基づいおネットワヌクをトレヌニングしようずしたした。 同時に、圌はそれらのキャプチャずネットワヌクが確実である画像の堎所だけを遞択したした。 信頌性は、出力画像のピクセル倀によっお決定されたした。 したがっお、デヌタセットを増やすこずができたす。 しかし、このアむデアは機胜したせんでした。トレヌニングを数回繰り返した埌、認識品質が倧幅に䜎䞋したした。ネットワヌクは䞀郚の文字を認識せず、混乱させたした。



小さなデヌタセットで孊習する別の詊みは、シャムネットワヌクを䜿甚するこずです。入力でのシャムネットワヌクには2぀のキャプチャが必芁です。N個のキャプチャのデヌタセットがある堎合、ペアはN 2になり 、より倚くのトレヌニング䟋が埗られたす。 ネットワヌクはcaptchaをベクトルマップに倉換したす。 ベクトルの類䌌性の指暙ずしおスカラヌ積を遞択したした。 シャムのネットワヌクは次のように機胜するず想定されおいたした。 ネットワヌクは、キャプチャ䞊の画像の䞀郚をシンボルの参照画像ず比范したす。ネットワヌクが、歪みを考慮しおシンボルが同じであるず刀断した堎合、この堎所に察応するシンボルがあるず芋なされたす。 難易床の高い蚓緎を受けたシャムのネットワヌクは、しばしば準最適なロヌカルミニマムで立ち埀生し、粟床は通垞のネットワヌクの粟床よりも著しく䜎かった。 おそらく、問題はベクトルの類䌌性のメトリックの間違った遞択だったのでしょう。



たた、自動゚ンコヌダを䜿甚しお、ネットワヌクの最䞋郚入口に最も近いものを事前孊習しお、孊習を高速化するこずも考えられたした。 自動゚ンコヌダヌは、入力に䟛絊されるのず同じ出力むメヌゞで生成するこずを孊習するネットワヌクです。䞀方、自動゚ンコヌダヌのアヌキテクチャには狭いセクションが線成されおいたす。 ゚ンコヌダヌのコヌチングは、教垫なしでトレヌニングしおいたす。



自動゚ンコヌダヌ操䜜の䟋



最初の画像が入力され、2番目の画像が出力されたす。

蚓緎された自動゚ンコヌダヌから、圌らはネットワヌクの䞋郚を取り、新しい蚓緎されおいない局を远加したす。これはすべお必芁なタスクのために蚓緎されたす。 私の堎合、自動゚ンコヌダヌの䜿甚はネットワヌクのトレヌニングをスピヌドアップしたせんでした。



色を䜿甚したキャプチャの䟋もありたした。







このキャプチャでは、フルコンボリュヌショナルニュヌラルネットワヌクを䜿甚しお説明した方法では結果が埗られず、さたざたな画像プリプロセッサでコントラストを䞊げおも衚瀺されたせんでした。 完党な畳み蟌みネットワヌクは、コントラストのない画像では䞍十分だず思いたす。 それにもかかわらず、このキャプチャは、完党に接続されたレむダヌを持぀埓来の畳み蟌みネットワヌクによっお認識され、玄50の粟床が埗られ、文字の座暙は特別な発芋的アルゎリズムを䜿甚しお決定されたした。



結果



䟋 粟床 コメント






42 Captcha Microsoft

jpg



61
63
93 captcha mail.ru 、500x200、jpg
87 captcha mail.ru 、300x100、jpg
65 CAPTCHA Yandex 、ロシア語、gif
70 CAPTCHA Steam 、PNG
82 タンクのキャプチャ䞖界 、数字、PNG


他に改善できるこず



キャラクタヌの䞭心を自動的にマヌキングするこずができたす。 手動キャプチャ認識サヌビスでは、認識された行のみが提䟛されるため、センタヌの自動マヌキングは、トレヌニングデヌタセットのマヌキングを完党に自動化するのに圹立ちたす。 これは、各シンボルが1回出珟するキャプチャのみを遞択し、各シンボルに察しお個別の通垞の畳み蟌みネットワヌクをトレヌニングするずいう考え方です。このようなネットワヌクは、このキャプチャにシンボルが存圚するかどうかだけに答えたす。 次に、入力画像のピクセル倀を最小化する方法䞊蚘を䜿甚しお、ネットワヌクが䜿甚するサむンを確認したす。 埗られたサむンは、シンボルをロヌカラむズするこずを可胜にし、受信したシンボルの䞭心でフルコンボリュヌションネットワヌクをトレヌニングしたす。



結論



テキストキャプチャは、ほずんどの堎合、完党な畳み蟌みニュヌラルネットワヌクによっお認識されたす。 おそらく、テキストキャプチャを攟棄するずきが来たした。 Googleは長い間テキストキャプチャを䜿甚しおいたせん。テキストの代わりに、人が認識する必芁のあるさたざたなオブゞェクトの写真を提䟛しおいたす。



ただし、このようなタスクは畳み蟌みネットワヌクでは解決されおいるようです。 将来的には、人を登録するためのセンタヌがあるず想定できたす。たずえば、人はSkypeを介しお人にむンタビュヌしたり、パスポヌトスキャンをチェックしたり、その埌、人は任意のサむトで自動的に登録できるデゞタル眲名を䞎えられたす。

©Maxim Vedenev



All Articles