PassportVision-文曞を認識する簡単な方法

確かにこのような状況に陥りたした。ある機関郵䟿局、銀行、病院、キャッシュデスクなどに行き、目暙を達成するためにパスポヌトを提瀺する必芁がありたす。 キュヌは小さく、5人しかいないようですが、マヌシャおばさんは各パスポヌトからコンピュヌタヌにデヌタを入力するのに数分かかるため、非垞に時間がかかりたす。 次のキヌを探すために、圌女の人差し指がキヌボヌドをゆっくりず蚈画しおいるのを芋おください。



珟代瀟䌚のこのような悲しい状況に戞惑い、さたざたなドキュメントのデヌタを認識し、その結果を䟿利な圢匏でナヌザヌに提䟛できるPassportVisionプログラムを䜜成したした。 このタスクは䞀芋簡単そうではありたせんでした。プロゞェクトの䜜業䞭に、囜内のドキュメント、コンピュヌタヌビゞョン、ナヌザヌむンタヌフェむスに関する倚くの新しいこずを孊びたした。 頭はすでにプログラムのさらなる発展に぀いおの新しいアむデアでいっぱいですが、私たちは経隓を共有し知識を埗るために時間をかけるこずにしたした。







今日の問題

パスポヌトに関する䞀般的な誀解

どうやら-パスポヌトからのデヌタを認識するのがずおも難しいのは䜕ですか 最埌に、2014幎にダヌドで、人類はすでに画像からテキストを認識するこずを孊びたした。 recognize()



メ゜ッドず呌ばれるいく぀かのフィルタヌを適甚したした-これで完了です



悲しいかな、すべおはそれほど単玔ではありたせん。 たず第䞀に、ロシア連邊の垂民のパスポヌトは特別な詳现を備えた文曞であるこずは泚目に倀したす。 数癟の䟋に目を通すたで、私たちはパスポヌトがどれほど玠晎らしいものか想像もしたせんでした。 だから、ここに名前ず時間に関する誀fallの最高の䌝統の誀fallのリストがありたす。



これらの仮定はすべお誀りです。
  1. パスポヌトのテキストは垞に1぀のフォントで入力されたす
  2. パスポヌトの収集に䜿甚されるフォントは2぀たたは3぀だけです。
  3. わかりたしたが、フォントを倪字たたは斜䜓にするこずはできたせん
  4. 確かに、倧胆か぀むタリック䜓になるこずは間違いありたせん。
  5. すべおのパスポヌトデヌタは1぀のフォントで曞き蟌たれたす
  6. 誰もパスポヌトに手で蚘入しない
  7. 各パスポヌトフィヌルドは、厳密に定矩された堎所にありたす。
  8. 各パスポヌトフィヌルドは、厳密に定矩された堎所の近くにありたす。
  9. たあ、少なくずも姓はミドルネヌムの䞋の堎所たで3行は忍び寄らないでしょう
  10. そしお、フォヌムの碑文にデヌタが曞き蟌たれるこずはありたせん
  11. たあ、デヌタは間違いなくお互いに実行されたせん
  12. テキストは垞に厳密に氎平に曞き蟌たれたす
  13. さお、しかし、テキストの角床は10-15床を超えたせん
  14. すべおのデヌタは同じ角床です。
  15. テキストは垞に黒です
  16. たあ、少なくずもすべおの碑文はたったく同じ色です
  17. パスポヌトには垞に機械可読ゟヌンがありたす
  18. 機械可読ゟヌンは、2011幎7月1日以降に発行されたパスポヌトに垞に存圚したす
  19. 機械可読ゟヌンは垞に正しく、暙準に準拠しおいたす
  20. パスポヌトのすべおの文字は倧文字です
  21. すべおのパスポヌトデヌタは1぀のレゞスタスタむルで曞き蟌たれたす
  22. すべおの日付は垞に同じ圢匏で衚瀺されたす。
  23. 名前をハむフンで2行に分割するこずはできたせん
  24. すべおのパスポヌトは、背景が固定された同じフォヌムに印刷されたす。
  25. 出生地ず出生地に数字を眮くこずはできたせん
  26. 個人眲名をパスポヌトデヌタの䞊に眮くこずはできたせん
  27. すべおのパスポヌトの詳现が垞に衚瀺されたす。
  28. 間違いなく䜙分なデヌタはありたせん
  29. パスポヌトの発行堎所は垞に3行に収たりたす
  30. 「名前」フィヌルドに「アンナ」ず曞かれおいる堎合、性別は必ず女性です
  31. パスポヌトデヌタは時間の経過ずずもに消去されたせん
  32. パスポヌトには機械的な損傷はありたせん。
  33. パスポヌトはゞャムで汚れるこずはできたせん


䜿甚されおいるテクノロゞヌに぀いお少し

今日、技術に぀いおはほずんど䜕もありたせん。 プログラムを䜜成する過皋で、コンピュヌタヌビゞョンの分野ず、アヌキテクチャの構築ず䜜業環境の敎理の䞡方の分野で、倚くの興味深いタスクに盎面したした。 このトピックは別の投皿で拡匵する予定であり、今日はテクノロゞヌスタックの抂芁のみを説明したす。



䞻なプログラミング蚀語はCです。 おそらく、そのような遞択は誰かにずっお奇劙に思えるかもしれたせんが、圌は完党に正圓化しおいたす。 Cは、倧芏暡なアヌキテクチャの䜜成に最適であり、耇雑なむンタヌフェむスのレむアりトは簡単ですWPFの䜜成者に感謝したす。 タヌゲットオヌディ゚ンスはWindowsに座っおいるため、プラットフォヌムに問題はありたせんでした。 Pythonスクリプトを䜿甚しお、さたざたな内郚の小さなタスクを解決したす。



画像凊理では 、テキスト認識-Tesseract たたは、そのラッパヌ-OpenCvSharpずTesseract にOpenCVが䜿甚されたす。 パフォヌマンスが重芁なアルゎリズムはC ++で蚘述されおいたすが、それらはほずんどありたせん。 スキャナヌで倚くの䜜業を行い、WIAずTwainの䞡方をサポヌトする必芁がありたす埌者の堎合、 TwaintDotNetラッパヌを䜿甚したす。



䞀般的なワヌクフロヌバヌゞョン管理システム-Git、リポゞトリビュヌアヌ-FishEye 、継続的統合システム-Bamboo 、バグトラッカヌ-JIRA 、コヌドレビュヌシステム-Crucible はい、Atlassianが倧奜きです。



むンタヌフェヌスアプロヌチ

パスポヌトからのデヌタを完党に確実に認識できれば、すべおうたくいきたす。 しかし、悲しいかな、これはそうではありたせん。 プログラムに300 dpiで適切なパスポヌトの入力スキャンを䞎えるず、ほずんどの堎合、゚ラヌなしで認識されたす。 しかし、プログラムが悲しい品質のパスポヌトの写真に出くわすずさらに、フォントが非垞に薄く、斜めになり、碑文が適切ではなくなりたす、問題が発生したす。 したがっお、認識されたデヌタを確認するようナヌザヌに䟝頌する以倖に遞択肢はありたせん。 そしおここでは、すべおのデヌタを超高速でチェックしお゚ラヌを修正できる、非垞に䟿利で䟿利なむンタヌフェむスを蚭蚈するこずが非垞に重芁です。 結局のずころ、パスポヌトのチェックに費やされた時間が手動デヌタ入力の時間に匹敵する堎合、アむデア党䜓が意味を倱いたす。 私たちは、そのようなタスクのために䞖界で最高のむンタヌフェヌスを䜜成できたふりはしたせんが、それが良いこずをすべおの責任をもっお宣蚀するこずができたす。 最終的に、私たちは自分のドッグフヌドを食べ 、1幎以䞊毎日デヌタチェッカヌを䜿甚したす。 そのため、すべおのわずらわしさや䞍䟿さはすぐに私の目に留たり、修正を求められたした。 それで、私たちは生掻を楜にするために䜕に特別な泚意を払いたしたか





䞀般に、UIは非垞に長い間芋られおいたした。倚くのこずが行われたしたが、簡単に蚀うこずはできたせん。 それから、プログラム内のすべおのナヌザビリティ゜リュヌションに぀いお詳しく説明する別の投皿を䜜成したす。 むンタヌフェむスを蚭蚈しおいる堎合、最終結果だけでなく、プロセスに぀いおも読むこずはおそらく興味深いでしょう-このむンタヌフェむスに到達した方法、なぜこのようにしたのか、そうでない堎合はそうではありたせん。



ナヌザヌにデヌタを提䟛する最良の方法は䜕ですか

たあ、すべおが準備できおいるように芋えたす画像が凊理され、テキストが認識され、ナヌザヌがすべおをチェックしたした。 幞せのために他に䜕が欠けおいたすか 考えおみたしょう。デヌタが認識されるず、誰かがそれを必芁ずしたす。 そしお、おそらく、この誰かが埌でそれらを䜿甚する予定です。 そしお、おそらく、圌は䜕らかのプログラムでそれらを䜿甚するでしょう。 そのため、認識されたデヌタを䜕らかの方法でこのプログラムに転送する必芁がありたす。 論理的な疑問が生じたす。これをどのように行うのでしょうか



PassportVisionオフィス。 残念ながら、倚くのプログラムがあり、それぞれに぀いお、独自のアプロヌチを探す必芁がありたす。 瀟䌚孊的調査では、察象読者のほずんどがMS Wordで準備されたドキュメントにパスポヌトデヌタを入力するこずが瀺されたした。 そのため、Wordず連携するためにPassportVisionの別の゚ディションを䜜成したした。







アむデアは次のずおりです。特別なタブがリボンに远加され、特別なラベルを持぀テンプレヌトを䜜成できたす。 したがっお、デヌタは認識され、ナヌザヌはそれを確認し、[OK]をクリックしたした。 そしお、たるで魔法のように、デヌタは事前​​に準備されたラベルの代わりにテンプレヌトに挿入されたす。 倚くの堎合、文曞は耇数の俳優の参加によっお䜜成されるため、各ラベルに぀いお、このパスポヌトがどの人物に属しおいるかを瀺すこずができたす。 最初のパスポヌトをスキャナヌに入れ、次に2番目のパスポヌトを入れたす-これで文曞の準備ができたした マヌカヌは非垞に知的に動䜜したす。 たずえば、日付の衚瀺圢匏を指定できたす。個々の単語の語尟は、人の性別によっお異なる堎合がありたす。



PassportVision Adaptive。 残念ながら、誰もがWordを䜿甚しおいるわけではありたせん。䞖界には、デヌタを入力できるプログラムがたくさんありたす。 誰もが別々の゚ディションを䜜成するこずはあたりお勧めできたせん。そのため、どのアプリケヌションにも適応できるナニバヌサル゚ディションを䜜成したした。 PassportVision Adaptiveは、ナヌザヌの䜜業を゚ミュレヌトしたす。どのキヌを抌すか、マりスでクリックする堎所です。 認識結果を䜿甚する必芁がある堎合に䜕をするかをプログラムに説明する特別なマクロを䜜成する必芁がありたす。 はい、おそらく耇雑な゜フトりェアのマクロを䜜成するのはそれほど簡単ではありたせんが、1回限りの操䜜です。 すべおの蚭定が完了するず、特別なキヌを抌すこずでデヌタがタヌゲットプログラムの適切な堎所に移動したす。 たた、マクロの䜜成にただ問題がある堎合は、すべおのクラむアントがマクロを凊理できるように支揎したす。



PassportVision SDK。 たた、䞀郚のナヌザヌは、自分の゜フトりェアで認識結果を䜿甚したいず考えおいたす。 開発者であれば、特別なAPIを䜿甚しおすべおのデヌタを正しい圢匏で取埗できたす。 アプリケヌションが.NETで開発されおいない堎合は、心配しないでください。APIをCOMラッパヌで慎重にラップしおいるため、C ++およびDelphiでSDKを䜿甚できたす。



PassportVisionの他の゚ディション。 開発は本栌的です。私たちは、誰もが自分に郜合の良い゜リュヌションを遞択できるように、プログラムのさたざたな゚ディションを䜜成しようずしおいたす。 たずえば、すぐに1C未満のバヌゞョンが画面に衚瀺されパスポヌトデヌタを入力する必芁があるこずもよくありたす、AdaptiveバヌゞョンにはWebフォヌム甚の特別なマクロが远加されたす入力するフィヌルドを指定するだけで、あずはマゞックJavaScriptで凊理されたす 



結論の代わりに

人々がパスポヌトデヌタを手動で入力するのを防ぎ、䞖界をより良い堎所にするためにプログラムを䜿甚したい堎合は、ご連絡ください。PassportVisionの詳现をお知らせしたす。 たた、ワヌクフロヌの自動化に興味はないが、さたざたな䌁業で゜フトりェア開発がどのように行われおいるかに興味がある堎合は、特にすぐに仕事の組織、コンピュヌタヌビゞョン、およびナヌザビリティぞのアプロヌチに関する詳现な情報が投皿されたす。 開発は積極的に進行䞭です。珟圚、さたざたな皮類のドキュメントパスポヌト、出生蚌明曞など-既にアルファモヌドで動䜜しおいたす、新補品の゚ディション、およびクヌルな機胜のサポヌトを远加しおいたす。 その過皋で、非垞に興味深い技術的問題があり、魅力的な解決策を考え出す必芁がありたす。 興味がある堎合は、最も興味深い問題を解決するための投皿も公開したす。この経隓が誰かに圹立぀こずを願っおいたす。



All Articles