12

歪んだテキストを読むようにユーザーに求めるCAPTCHAは、目の見える人には問題ありませんが、目の不自由な人やその他の障害を持つ人にとってはひどい障壁です。音声の代替手段が利用できる場合もありますが、それでも盲ろう者とスクリーンリーダー(すでに単語を読んでいる)で使用するのが難しい場合は役に立ちません。

WebVisiumSolonaなど、ユーザーに代わってCAPTCHAを解決するために人間を使用するソリューションがいくつかありますが、これらはボランティアオペレーターの可用性に依存しています(たとえば、Solonaにはボランティアが1人しかいないため、彼を期待する必要があります助けが必要なときに起きています)。

目の不自由な人が必要とするCAPTCHAソリューションの量は非常に少ないと思います。英国のような人口の多い国では、1日あたり数百未満だと思います。これは、短期間に何度もアクションを実行したい悪意のある人々とは異なり、視覚障害者向けのCAPTCHA支援サービスは、提示されたものを特定するためにかなりの計算リソース(たとえば、 Amazon EC2のコンピューターのクラウド)を費やす余裕があることを意味します文章。

私の質問はこれです:あなたが速度をあまり気にせず、利用可能なコンピュータがたくさんあると仮定すると、reCaptchaで使用されるものなど、今日一般的なテキスト歪みCAPTCHAを解決できるアルゴリズムはありますか?それとも、これらの問題は、多くのリソースと時間があっても本当に手に負えないものですか?

いくつかの注意:

  1. この時点で、私の質問は単なる理論上のものですが、明らかに、そのようなサービスは、スパマーを締め出すためにアクセスを注意深く制御する必要があります。おそらく、登録された視覚障害者だけがそれを使用することを許可されるでしょう。

  2. 数年前、1台のコンピューターで数秒で実行されるアルゴリズムを使用して古いYahooCAPTCHAが壊れたことを知っています。私は、現代のCAPTCHAを、おそらくもっとゆっくりと、より多くのリソースで壊すことができるかどうかを尋ねています。

  3. 子猫を識別したり、写真の向きを変えたりするようにユーザーに求める、いくつかの新しいCAPTCHAタイプが表示されていることを認識しています。これらはまだ普及していないので、今のところテキストの歪みについて質問しています。

4

5 に答える 5

4

基本的に、テキストの歪みを解決するCAPTCHAは、次の3つの個別の手順で構成されます。

  1. 興味深い部分がどこにあるかを調べます
  2. テキストを個々の文字に分割する
  3. 文字を認識します

コンピュータにとってかなり難しい残りの唯一の問題は、2番目の問題です。あなたが地獄からCAPTCHAに偶然出くわさない限り、最初のものは通常それほど難しいことではありません。そして3つ目は、人間よりもはるかに成功率の高いコンピューターによって解決されます。

CAPTCHAがどのように壊れているかを知るための興味深いサイトは、OCR研究チームによるものです。

于 2009-11-17T22:51:45.480 に答える
2

CAPTCHAは、マシンが単語を検出しないようにするために作成されました。人間だけが読むことを目的としています。視覚障害者や聴覚障害者が読みやすくすることで、機械がそれらを再び理解できるようになるリスクが高まり、その結果、その効果が無効になります。

スパマーは、より人気のあるCAPTCHAを破る非常に効果的な方法を見つけました。彼らはただ彼らを読むために安い労働者を雇うだけで、その見返りに働くアカウントごとに数セントです。その結果、CAPTCHAを破って数百万のアカウントを作成し、それを使用してさらにスパムを送信することをめぐる小さな業界があります。スパマーによって得られた金額と比較して、コストはほとんどありません。同様の解決策は、CAPTCHA画像を中国やその他の場所の安価な労働者に送信する視覚障害者/聴覚障害者が使用できます。そこでは正しい言葉で返信し、視覚障害者/聴覚障害者は先に進むことができます。残念ながら、目の不自由な人はこのサービスを数回しか必要としないのに対し、スパマーは継続的なフローを必要とするため、これらの労働者は代わりにスパマーのために働くことを好みます。(賃金はより良いです。)それでも、

ReCAPTCHAスタイルも単語を読み取ります。音声認識にはさらに最適化が必要ですが、単純な音声認識アプリケーションで発言内容を認識できる場合があります。それでも、その角度から作業して、代わりにアプリケーションにサウンドバイトをリッスンさせることをお勧めします。

CAPTCHAを破ることができるとき、彼らはより良いCAPTCHAのような方法を考えるでしょう。OCR技術はまだ改善されているため、CAPTCHAをより困難にするためにさらに多くの作業が行われます。つまり、OCRが単語の認識において人間の目と同じくらい良くなるまで...

遅いですが、アルゴリズムを作成できます。26個の小文字と26個の大文字と10桁の数字で、アルゴリズムを思い付くのはそれほど難しくないはずです。ただし、SerifフォントとSans-serifフォントでは、組み合わせの数を2倍にする必要があります。それでも、CAPTCHAの文字と同じようにすべての文字をカーブさせようとすると、CAPTCHA文字で最も覆われている文字を検出できるはずです。そして、それが最も可能性の高い候補です。それでも、人間の目がコンピュータよりも認識しにくい画像から、線、汚れ、その他の遺物を取り除く必要があります。次の手順が必要です。

  1. 画像をクリーンアップします。
  2. 文字の場所を検出します。
  3. すべての文字について3a。左側を確認して、文字の曲線を決定します。3b。考えられるすべての文字/数字をオーバーレイして、それを最もよくカバーするものを見つけます。(それが最も可能性の高い手紙です。)
  4. 単語を見つけたら、辞書チェックを行って、それが本物の単語であることを確認します。(CAPTCHAが実際の単語を使用しない場合を除きます。)

CAPTCHAの文字をねじることはできますが、すべての文字の左側を見て、すべての文字に同じ曲線を適用しようとするだけで、使用したねじれの回転を検出できるはずです。(52の組み合わせに加えて、数字も使用されている場合は10桁。)基本的に、すべての文字をボックスで囲み、空白が最も少ない文字を確認します。それが最も可能性の高い手紙です。

これがOCRにあまり使用されない主な理由は、基本的に速度の必要性です。ステップ3a/bは、特にフォントスタイルを考慮する必要がある場合は、遅くなる傾向があります。


この回答を大きくしますが、コメントの1つに返信します。

画像をクリーンアップする方法はいくつかあります。カラーフィルタリング、ノイズリダクション、および画像全体のノイズの多い線を認識できるアルゴリズムが必要になります。デフコン_あなたが指摘したスライドショーは、ノイズの一部を取り除くためのいくつかの簡単なテクニックを示しています。これは、基本的な画像処理ツールによって、マシンが読み取るために画像をはるかに鮮明にすることができることを示しています。単純なぼかしはランダムなドットと細い線をクリーンアップし、カラーフィルターはノイズの多い色をフィルターで除去します。次のステップは、CAPTCHA内のすべての文字の周りにボックスを配置して、システムがそれらの場所を認識できることを期待することです。このための実用的なアルゴリズムはわかりませんが、それらを認識する方法があるはずです。ビットマップからベクター画像を作成できるソフトウェアがあるので、文字の周りのボックスを計算できるソフトウェアがあるはずです。このボックスには長方形の角がない可能性が高いため、同じボックスに一致するように52文字すべてを歪める必要があります。イタリックまたはボールドはすべきではありません これらのスタイルは単なる追加の歪みであるため、大きな違いがあります。ただし、SerifまたはSans-serifは違いを生みます。セリフフォントには、スパイクや装飾がいくつかある傾向があります。幸いなことに、ボックスを4つの角を持つ他の図に変換できるアルゴリズムがあります。

通常のOCRアプリケーションは、文字がほとんどまっすぐであると想定し、一致するものを見つけるためにいくつかのホットスポットをチェックするだけです。したがって、彼らは時々ノイズのためにそれを間違えます。CAPTCHAをクラックするには、より感度の高い一致が必要です。できれば、CAPTCHA文字の画像を52文字のいずれかの画像と「XOR」してから、黒と白のスポットの数を数えて比率を計算します。白=1および黒=0と仮定すると、XORの結果は、最良の一致のためにほぼ黒になるはずです。

いくつかのスパマーは、CAPTCHAを解読するためのいくつかの有用なアルゴリズムをすでに見つけていると思いますが、彼らにとって、これらのアルゴリズムを秘密にしておくことは、ビジネスを維持するだけです。


別のコメント、より多くのテキスト。:-)

セグメンテーションは問題になりますが、解決することは不可能ではありません。非常に複雑です。ただし、画像をクリーンアップすると、2行を計算できるようになります。すべての文字の下部に接する1行と、上部に接する2行目。ただし、優れたCAPTCHAは同じ行に文字を配置しなくなりますが、あまり優れていないCAPTCHAは、行をたどるだけで文字が割れる可能性があります。(推測?ReCAPTCHAは2行の間に文字を入れます!)2行では、最初の文字が左から始まることがわかります。したがって、一致するものが見つかるまで、52の可能性すべてをオーバーレイしてみることができます。1つを見つけたら、2番目のものを右に移動します。そしてさらにあなたがすべての手紙を読むまで。あなたを導くための2本の線で、あなたは完全な箱を必要としません。

文字は、幅と高さの間で一定の比率を使用する傾向があります。2行で、完全な文字の高さを計算できるため、一致する幅を適切に見積もることができます。

それでも、これをすべて計算するための正しいアルゴリズムを作成することは、私の貧弱な数学のスキルには少し多すぎます。このアルゴリズムを解読するには、専門の数学者が必要です。

于 2009-11-18T01:28:01.610 に答える
1

あなたの質問に対する私の答えは、「これらの問題は、多くのリソースと時間があっても本当に手に負えないものですか?」これがCAPTCHAが機能するまさにその理由であることを指摘することです。

私の理解では、CAPTCHAの目的は、あなたがスパムボットではなく人間であることを証明することです。reCAPTCHAは、OCR(光学式文字認識)エンジンでは解決できないテキストを表す画像を撮影するため、このテーマの斬新なテイクです。この場合の人と機械の違いは、特殊なアルゴリズムがこの画像を解釈しようとして失敗したのに対し、「通常の」人は一貫して人間の方法でテキストを解釈する固有の能力を持っていることです。そうは言っても、将来的には、誰かがより優れたOCRエンジンを考え出し、世界の情報をデジタル化する際の人間の介入を減らす必要があることを願っています。誰かがこの特定の問題に対する扱いやすい解決策を考え出すことを願っています。

CAPTCHAを視覚障害者(スパムボットではなく人であることを証明する必要がある)がアクセスしやすくするという観点から、コミュニティはこの問題を認識し、視覚中心の方法ではありません。

于 2009-11-18T01:17:50.477 に答える
0

CAPTCHAの導入により、視覚障害者がWebにアクセスしにくくなりました。これを、より注意と懸念に値する重要な問題として引用することに同意します。ただし、CAPTCHAは人気のあるWebサイトでバイパスされる可能性があり、一貫してバイパスされていませんが、これは必要としている人々にとって実行可能な長期的なソリューションではないと思います。実際、Facebook、Google、MySpaceなどのサイトに現在存在するCAPTCHAバリアントが確実かつ一貫して壊れている可能性がある日は、同じソリューションのより強力なバリアントまたはまったく新しいソリューションのいずれかのために廃止され、放棄される日です(あなたのように)暗黙のうちに、写真で猫と犬を区別することは、人気のある代替トレンドです)。

オンラインアクセシビリティに関して、障害を持つ人々が今最も必要としているのはアドボカシーです。より多くの人々がソフトウェア会社、オープンソースグループ、および標準化団体に連絡し、この必要性について話すほど、より多くの意識が高まり、それが(願わくば)開発コミュニティに代わってより多くの行動につながるでしょう。最終的には、GoogleやFacebookのようなサイトが、視覚障害のあるユーザーのためだけに代替のアクセス方法を提供しているのを見るのは素晴らしいことです。

イデオロギーはさておき、CAPTCHAボランティアネットワークで言及したような他の手段を追求することは生産的だと思います。おそらく、ユニバーサルフォーム検証パスとして、関連する障害を持つ人々のためのOpenIDのようなものの開発ですらあります。

あなたの質問の技術的な側面に関しては、追加の処理能力の可用性だけでは、CAPTCHAを確実かつ一貫して破ることができるとは思いません。スパムにはたくさんのお金があります、そしてあなたは日陰のSEO会社とスパマーが同様に彼らの処分でたくさんのサーバーを持っていると確信することができます。JohannesRösselが述べたように、これがどのように行われ、技術的な問題がどこにあるのかを知りたい場合は、光学式文字認識(OCR)を調べて、トラフィックの多いサイトで発生するさまざまな数字/文字のゆがみを調べてください。

于 2009-11-17T23:52:31.283 に答える
0

この関連するSOの質問には、複数のOCRを使用し、投票すると多くの単純なCAPTCHAが破られると主張するDEFCONの話など、多くの優れたアイデアが含まれています。これは、解決策の候補を示唆しています。問題を複数のサーバーに分散し、各サーバーが1つ以上のOCRツールを並行して実行し、結果を収集して、最も一般的な回答を取得します。コメントを歓迎します。

于 2009-11-18T01:02:35.503 に答える