そして再びキャプチャについて

ここハブレには、キャプチャ認識に関する記事がよくあります。私はいつも興味深く読んでいますが、今日は書く番です。Tesseractを使用した単純な実装から、複雑なニューラルネットワークを使用したWebサービスへのパスには、約1年かかりました。認識エラーの数が90から1%未満に減少しました。





かなり有名なファイルホスティングサービスが再びアルゴリズムの何かを変更すると、ダウンロードする前に、キャプチャ入力ウィンドウがダウンロードプログラムに表示され始めました。それは煩わしく、古い回避策はもう機能していないようでした。私はその問題をどのように解決するかを考え始めました。プラグインをプログラムに接続すると、すべてが単純であることがわかりました。キャプチャ自体の認識次第です。それは、細い直線のある色付きの背景上で、両方向に最大30度回転したさまざまなサイズの4つの色付きの記号(文字、数字)で構成されていました。検索の結果、OCRプログラムTesseractに出くわし、キャプチャを使用していくつかのファイルを保存し、それらを認識しようとしました。素朴な解決策は正しい結果の約10%をもたらし、許可された文字のリストを設定することが非常に迅速に可能になりました-これによりヒットの割合が20に増加しました。これで作業することはすでに可能です-Pythonで書かれていますプログラム認識にcaptchaのを送信し、ダウンロードプログラムに結果を返します。その過程で、認識精度を上げるためにグラフィック画像処理の実験を始めました。最初は白黒に変換しようとしましたが、解像度が低く、色のグラデーションがあったため、シンボルのエッジがクリップされていました。最下位6ビットの色を破棄して彩度を下げるのをやめました。また、画像を文字ごとに処理し、画像をパーツに分割し、さまざまな回転角で何度か試行するというアイデアも思いつきました。最も一般的な結果を選択して、5度のステップで-30から30に回転すると、30〜40%の精度が得られましたが、1つのキャプチャの時間は12秒に増加しました。





Tesseract . , - . OCR .





, , 3 . , . - , . , , . , 40-50%. .





- OpenCV NumPy . , , . 70-80%, 85 . - , . .





, MNIST . ( 2500), 2828 , 25% - 9000 . , Keras Tensorflow, 100% 75% . - 1,8 . , NumPy, . "Python Machine Learning" , .





. , , . , . , - . , , . , , . 90%.





, 6000 . , 2 , . - , - - "How to implement an OCR model using CNNs, RNNs and CTC loss". Keras.





, "" , 2%. "", , 20 . - , ( ), . , , - 15000 . - - , 2 . 1 250 . Keras Tensorflow . 3 2 , . - Flask, .





, . , .





:









  1. - - ,





  2. ,





  3. - -





  4. " , . , , , " ()








All Articles