説明

アンチロボットテストシステム、アンチロボットテスト方法、アンチロボットテストサーバ

【課題】可視情報を認識する機能を有する「ボット」による迷惑行為の実施をより困難にするアンチロボットテストシステム、アンチロボットテスト方法及びアンチロボットテストサーバを提供することを目的とする。
【解決手段】被判読情報を可視情報として含む画像データを提供したサーバ12が、前記被判読情報の要求元12から取得した判読結果情報が被判読情報と一致するか否かにより、要求元11が人間か否かを判別するアンチロボットテストシステム100であって、サーバ12は、被判読情報をラスタライズした元画像40を分割して、複数のサブ画像を生成するサブ画像生成手段21と、前記サブ画像の画像データを、人間が目視する画面における前記サブ画像の位置情報と共に前記要求元11に送信するサブ画像送信手段22と、を有することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人間かロボットかを判定するアンチロボットテストシステム、アンチロボットテスト方法及びアンチロボットテストサーバに関する。
【背景技術】
【0002】
インターネット上の電子掲示板やいわゆるブログ、Wikiといったユーザ参加型のコンテンツ生成システムが広く利用されるようになってきた。このようなシステムにおいては、利用者は情報を閲覧できるだけでなく、簡単なユーザ登録を行なうだけで自由に情報を投稿することが可能となっていることが多い。
【0003】
しかし、このような特徴を悪用し、サーバとのやり取りを自動で行なういわゆる「ボット」とよばれるコンピュータプログラムを用いて、無差別かつ大量にこのようなサイトのアカウントを取得し、各サイトの内容とは全く無関係な広告を投稿する、あるいは利用者を詐欺に陥れたり、利用者の個人情報を不正取得するなど犯罪的な目的を持ったサイトに誘導するリンクを投稿する、といった迷惑行為も増加している。また、「ボット」を電子メールアドレス取得サービスに適用して、「ボット」を用いて無料かつ自動的に大量のアドレスを取得し、不正に大量に取得した電子メールアドレスを用いて、不特定多数への無差別な迷惑メールを送信する迷惑行為も指摘されている。あるいは前述のユーザ参加型のコンテンツ生成システムに対する迷惑行為を行なう目的に用いる等、「ボット」がインターネット上の様々な迷惑行為のために用いられることも多い。
【0004】
このような迷惑行為を防止するため、利用者が実際の人間なのか、あるいは前述した「ボット」なのかを判別し、人間と判別された場合のみ投稿を許可するようなシステムが考案されている。このようなシステムは一般にアンチロボットテストシステムと呼ばれ、人間には識別可能だが、現在のコンピュータプログラムでは識別不能、あるいは困難な情報をシステムがユーザに提示し、ユーザがこれを識別した場合のみ投稿を許可するシステムとなっている。具体的には、前述の「ボット」と呼ばれるプログラムが、主に文字情報でやり取りされるクライアントとサーバ間のメッセージを解析し、クライアント側からの偽装されたメッセージを自動的に生成するため、システムは、サーバ側から文字情報以外でかつ実際の人間以外には解釈困難と思われる情報をクライアントに提示し、ユーザにそれを解釈した結果を要求する。
【0005】
このような文字情報以外の情報として、ラスタライズされた複数の文字や記号を含む画像を提示し、画像中にある文字、記号列を読み取った結果を別途用意した入力フォームに入力させる視覚型アンチロボットテストが用いられることが多い。これは、人間は画像中の文字を読むことが容易であるのに対し、コンピュータプログラムでこれを行なうことが困難であること、あるいは、前述した迷惑行為によって得られる利益と、このようなプログラムを実行するコストを比較すると見合わないことを利用したシステムである。
【0006】
しかし、OCR等コンピュータによる画像中の文字認識技術が進むにつれて、ラスタライズされた画像中にある文字、記号列をボットが読み取り可能となっているためこのような防御は年々弱体化してきているのもまた事実である。
【0007】
そこで、OCRによる文字認識を妨害する試みとして、Captcha(登録商標)と呼ばれる技術が知られている。Captchaは、歪められたり覆い隠されたりしている文字や記号を用いた画像データを用いている。このような文字や記号は人間には比較的容易に判読可能だが、OCRによる認識が困難であるため、ボットを排除できる場合がある。
【0008】
しかしながら、文字や記号の歪めかたや変形の程度が大きくなると、高齢者など人間によっても判読できないことがあると指摘されている。
【0009】
また、Captchaと同様にボットによる判別を困難にした画像が提案されている(例えば、特許文献1参照。)。特許文献1には、第一のテクスチャからなる背景上に、第一のテクスチャと異なる第二のテクスチャにて構成した文字や記号を配置したアンチロボットテスト用画像が開示されている。このようなアンチロボットテスト用画像は、輝度の一次微分を取得しても、テクスチャそのもののエッジが抽出されるため、文字や記号を背景から分離するためエッジを抽出できない。
【発明の概要】
【発明が解決しようとする課題】
【0010】
昨今のコンピュータによる画像認識技術の向上を鑑みれば、ボットがシステムを欺いて認証を突破することもいずれは技術的に容易になり、コストも低下し、システムの強度が弱体化していく可能性がある。
【0011】
本発明は、上記課題に鑑み、可視情報を認識する機能を有する「ボット」による迷惑行為の実施を、より困難にするアンチロボットテストシステム及びアンチロボットテスト方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
上記課題に鑑み、本発明は、被判読情報を可視情報として含む画像データを提供したサーバが、前記被判読情報の要求元から取得した判読結果情報が前記被判読情報と一致するか否かにより、要求元が人間か否かを判別するアンチロボットテストシステムであって、前記サーバは、前記被判読情報をラスタライズした元画像を分割して、複数のサブ画像を生成するサブ画像生成手段と、前記サブ画像の画像データを、人間が目視する画面における前記サブ画像の位置情報と共に前記要求元に送信するサブ画像送信手段と、を有する、ことを特徴とする。
【0013】
テスト用の画像を複数のサブ画像に分割することで、「ボット」による迷惑行為の実施をより困難にすることができる。
【発明の効果】
【0014】
可視情報を認識する機能を有する「ボット」による迷惑行為の実施をより困難にするアンチロボットテストシステム、アンチロボットテスト方法及びアンチロボットテストサーバを提供することができる。
【図面の簡単な説明】
【0015】
【図1】視覚型アンチロボットテストシステムの概略構成図の一例である。
【図2】サーバとクライアントのハードウェア構成図の一例である。
【図3】クライアントとサーバの動作手順の一例を示すフローチャート図である。
【図4】従来のアンチロボットテスト用画像の一例を示す図である。
【図5】クライアントとサーバの動作手順を示すフローチャート図の別の一例である。
【図6】クライアントとサーバの動作手順を示すフローチャート図の別の一例である。
【図7】視覚型アンチロボットテストシステムの機能ブロック図の一例である。
【図8】クライアントのディスプレイに表示されたアンチロボットテスト用画像の一例を示す図である。
【図9】サブ画像の一例を示す図である(実施例1)。
【図10】図8の被判読情報の分割例を模式的に示す図である。
【図11】クライアントのディスプレイに表示された画面の一例を示す図ある。
【図12】クライアントとサーバの動作手順の一例を示すフローチャート図である。
【図13】クライアントのディスプレイに表示された画面の一例を示す図である。
【図14】クライアントのディスプレイに表示された画面の一例を示す図である。
【図15】クライアントのディスプレイに表示されるアンチロボットテスト用画像の一例を示す図である(実施例2)。
【図16】サブ画像の一例を示す図である(実施例2)。
【図17】アンチロボットテスト用画像の生成手順を示すフローチャート図の一例である(実施例2)。
【図18】クライアントのディスプレイに表示されるアンチロボットテスト用画像の一例を示す(実施例3)。
【図19】サブ画像の一例を示す図である(実施例3)。
【図20】アンチロボットテスト用画像の生成手順を示すフローチャート図の一例である(実施例3)。
【図21】クライアントのディスプレイに表示されるアンチロボットテスト用画像の一例を示す(実施例4)。
【図22】サブ画像の一例を示す図である(実施例4)。
【図23】アンチロボットテスト用画像の生成手順を示すフローチャート図の一例である(実施例4)。
【図24】クライアントのディスプレイに表示されるアンチロボットテスト用画像の一例を示す(実施例5)。
【図25】サブ画像の一例を示す図である(実施例5)。
【図26】アンチロボットテスト用画像の生成手順を示すフローチャート図の一例である(実施例5)。
【図27】クライアントのディスプレイに表示されるアンチロボットテスト用画像の一例を示す(実施例6)。
【図28】サブ画像の一例を示す図である(実施例6)。
【図29】アンチロボットテスト用画像の生成手順を示すフローチャート図の一例である(実施例6)。
【図30】クライアントのディスプレイに表示されるアンチロボットテスト用画像の一例を示す(実施例7)。
【図31】サブ画像の一例を示す図である(実施例7)。
【図32】アンチロボットテスト用画像の生成手順を示すフローチャート図の一例である(実施例7)。
【図33】クライアントのディスプレイに表示されるアンチロボットテスト用画像の一例を示す(実施例8)。
【図34】サブ画像の一例を示す図である(実施例8)。
【発明を実施するための形態】
【0016】
以下、本発明を実施するための形態について図面を参照しながら実施例を挙げて説明する。なお、本実施形態では視覚型アンチロボットテストシステム100を例に説明するが、テストを受ける対象が人間のみ又はロボットのみであってもよく、視覚型アンチロボットテスト用の画像(以下、「アンチロボットテスト用画像」という)の提供対象に制限はない。また、本実施形態では、視覚型アンチロボットテストシステム100の一例としてサーバ・クライアント型を例にして説明するが、1台のコンピュータがスタンドアローン型で視覚型アンチロボットテストを実行してもよい。
【0017】
〔視覚型アンチロボットテストシステム100〕
図1は、視覚型アンチロボットテストシステム100の概略構成図の一例を示す。視覚型アンチロボットテストシステム100では、一台以上のクライアント11a、11b…11n(以降、区別しない場合「クライアント11」と称す)が、ネットワーク13を介してサーバ12と接続されている。
【0018】
視覚型アンチロボットテストシステム100のサーバ12は、クライアント11のユーザが実際の人間であるのか、又は、自動化されたコンピュータプログラム(ボット)であるのかを判別する。したがって、本実施形態の「ユーザ」には人間だけでなくボットも含まれるものとする。ネットワーク13は、インターネットやLAN、WANなどである。また、ネットワーク13の一部又は全体が無線で構成されていてもよい。
【0019】
本実施形態の視覚型アンチロボットテストの特徴は、サーバ12がアンチロボットテスト用画像を複数のサブ画像に分割してクライアント11に送信することである。「ボット」は複数のサブ画像を適切に連結しないと可視情報を解読できないので、「ボット」による迷惑行為の実施をより困難にすることができる。
【0020】
図2(a)はサーバ12のハードウェア構成図の一例を、図2(b)はクライアント11のハードウェア構成図の一例を、それぞれ示す。いずれもコンピュータを実体とするが、コンピュータの機能を有していれば、その呼称は、PC(パーソナルコンピュータ)、ワークステーション、画像形成装置、携帯電話、無線LAN端末、PDA(Personal Digital Assistant)等、どのようなものでもよい。
【0021】
サーバ12は、それぞれバスで相互に接続されているCPU101、RAM102、ROM103、記憶媒体装着部104、通信装置105、入力装置106、表示制御部107及びHDD(Hard Disk Drive)108を有する。CPU101は、OS(Operating System)やプログラム110をHDD108から読み出して実行することで種々の機能を提供すると共に、サーバ12が行う処理を統括的に制御する。すなわち、サーバ12はプログラム110により視覚型アンチロボットテストに係る機能を提供する。
【0022】
RAM102はCPU101がプログラム110を実行する際に必要なデータを一時保管する作業メモリ(主記憶メモリ)になり、ROM103はBIOS(Basic Input Output System)やOSを起動するためのプログラム、設定ファイルが記憶されている。
【0023】
記憶媒体装着部104は記憶媒体111が着脱可能に構成されており、記憶媒体111に記録されたプログラム110やデータを読み込み、HDD108にインストールする際と、記憶媒体111にデータを書き込む際に使用される。なお、記憶媒体111は、CDやDVDの光記録媒体やSDカードなどフラッシュメモリを実装した不揮発性のメモリであればよい。
【0024】
通信装置105は、インターネットなどのネットワーク13に接続するためのインターフェイスであり、TCP/IPより下層のプロトコル(物理層、データリンク層)にしたがいクライアント11と通信する。サーバ12が実行する通信プログラムは、HTTP(HyperText Transfer Protocol)又は暗号化されたHTTPであるHTTPS(HyperText Transfer Protocol Security)に従い、TCP/IP以上のプロトコルに必要な処理(例えばデータをカプセル化する等)を提供してクライアント11と通信する。なお、通信プロトコルはどのようなものであってもよい。通信プログラムは、視覚型アンチロボットテスト用のプログラム110から受け取った画像データをクライアント11に送信し、また、クライアント11から受信したデータ(後述の判読結果情報)をプログラム110に通知する。通信プログラムは、クライアント11からの要求に応じて、主にHTML(HyperText Markup Language)形式の情報をクライアント11との間で送受信する。
【0025】
入力装置106は、キーボードやタッチパッド(マウス)などであり、サーバ12の管理者の様々な操作指示を受け付ける。表示制御部107は、プログラム110が指示する画面情報に基づき所定の解像度や色数等で液晶などのディスプレイ109に描画する。
【0026】
HDD108は、SSD(Flash Solid State Drive)等の不揮発メモリでもよく、プログラム110、視覚型アンチロボットテストの画像データにラスタライズされる送信用テキストデータ27が記憶されている。プログラム110は、記憶媒体111に記憶して配布されたり、ネットワークを介して接続された不図示のコンピュータからダウンロードされ、HDD108にインストールされる。
【0027】
続いて、クライアント11のハードウェア構成図について説明する。サーバ12と同一構成部の説明は省略する。クライアント11は、同様に、それぞれバスで相互に接続されているCPU201、RAM202、ROM203、記憶媒体装着部204、通信装置205、入力装置206、表示制御部207及びHDD208を有する。
【0028】
クライアント11のHDD208にも通信用のプログラム210が記憶されている。通信用のプログラム210は例えばブラウザソフトウェアであり、クライアント11のCPUがプログラム210を実行して、サーバ12のIPアドレスを指定することで、サーバ12と通信が可能になる。プログラム210は、サーバ12から送信されたHTMLファイルを解釈して、種々の画面の表示を表示制御部207に要求する。視覚型アンチロボットテスト用の画面の場合、HTMLファイルにはアンチロボットテスト用画像の画面データが埋め込まれるか又はリンクされており(以下、単に「埋め込まれている」という)、また、判読結果情報の入力欄41を表示するためのタグが記述されている。
【0029】
クライアント11のユーザは、入力装置206を操作して、アンチロボットテスト用画像の解読結果(文字、記号、数字等のテキスト)を判読結果情報の入力欄41に入力する。また、ユーザが「送信」ボタン等を押下すると、クライアント11はその操作を受け付け、判読結果情報をサーバ12に送信する。
【0030】
〔動作例〕
図3は、クライアント11とサーバ12の動作手順の一例を示すフローチャート図である。サーバ12は、クライアント11のユーザが実際の人間なのか否かを判別する視覚型アンチロボットテストを行う。図3の手順は以下の各実施例1〜8に共通に利用できる。
【0031】
ユーザはクライアント11を介してサーバ12に対して認証の要求を行なう。サーバ12のIPアドレスはユーザ又はクライアント11にとって既知である。なお、認証の要求は、サーバ12へのログインまで要求するものである必要はなく、ユーザがサービスを受けるための前処理の要求という意味での認証要求であればよい。
【0032】
サーバ12は、認証の要求を受信すると、クライアント11にアンチロボットテスト用画像の画像データが埋め込まれたHTMLファイルを送信する(S21)。クライアント11はこのHTMLファイルを受信すると、HTMLファイルから生成されたアンチロボットテスト用画像を含む画面をディスプレイ209に表示する。
図4は、従来のアンチロボットテスト用画像の一例を示す図である。この画像は、記号、文字及び数字等が変形したり傾いた態様で含まれている。区別するため、アンチロボットテスト用画像に含まれる、一連の記号、文字又は/及び数字を「被判読情報」という。
【0033】
ユーザはこのアンチロボットテスト用画像に記述されている文字、記号及び数字列を判読し、読み取った結果(テキストデータ)をサーバ12側に送信する。
【0034】
ユーザが人間であれば図4の画像から「NkpGJN」というテキストを判読することができる。ユーザは、画像を判読したテキスト(判読結果情報)を入力装置206から入力する。クライアント11は、判読結果情報をサーバ12に送信する(S12)。
【0035】
次にサーバ12は、判読結果情報を受信して、アンチロボットテスト用画像の画像データの生成の際、ラスタライズした被判読情報と一致するか否かを判定する(S22)。
【0036】
一致する場合(S22のYes)、サーバ12は、ユーザ識別用文字列(ユーザID)とパスワードの入力欄を備えた入力用フォームからなるユーザ認証用画面を生成するHTMLファイルをクライアント11に送信する(S23)。なお、一致しない場合(S22のNo)、サーバ12は、別のアンチロボットテスト用画像を表示するHTMLファイルをクライアント11に送信する(S21)。
【0037】
クライアント11は、ユーザ認証用のHTMLファイルを受信して、入力フォームをディスプレイ209に表示する。そして、ユーザは、入力装置206を使って入力フォームからユーザIDとパスワードを入力する。クライアント11は、入力されたユーザIDとパスワードをサーバ12に送信する(S13)。
【0038】
サーバ12は、ユーザIDとパスワードを受信して、予め登録されているユーザIDとパスワードと整合するか否かに基づき、正規のユーザか否かを判定する(S24)。サーバ12は、正規のユーザであると判定した場合(S24のYes)、図4の処理を終了して、コンテンツ投稿用フォームを表示する等、実際に目的とするサービスの提供を開始する。サーバ12が正規のユーザでないと判定した場合(S24のNo)、サーバ12は所定回数を上限に、再度、ユーザ認証用画面のHTMLファイルをクライアント11に送信する(S23)。
【0039】
なお、サーバ12が、アンチロボットテスト用画像の画像データを送信する処理(視覚型アンチロボットテスト)と、ユーザ認証用画面のHTMLファイルを送信する処理(ユーザ認証)の順序は、順不同である。
【0040】
図5は、クライアント11とサーバ12の動作手順を示すフローチャート図の別の一例である。図3と比較して、ステップS21とS22が、ステップS23とS24の後に実行されている。このように、視覚型アンチロボットテストとユーザ認証は図3とは逆の順番で実行されてもよい。
【0041】
また、サーバ12は、視覚型アンチロボットテストをのみを実行してもよい。図6は、クライアント11とサーバ12の動作手順を示すフローチャート図の別の一例である。図6ではユーザ認証の処理が省略されている。例えば、ユーザIDとパスワードの登録がこれからの場合、図6に示した視覚型アンチロボットテストの後、サーバ12はユーザ登録を開始する。
【0042】
このように、図4のようなアンチロボットテスト用画像から、人間であれば正しいテキストを読み取ることができる。しかしながら、このアンチロボットテスト用画像から文字、記号及び数字をコンピュータプログラムが認識するためにはOCRのような特殊な文字認識機能をもたなければならず、しかも、図4のように歪められたり覆い隠されたりしている文字や記号、数字をOCRで認識するのは困難である。
【0043】
すなわち、クライアント11側がいわゆる「ボット」であれば、最低限OCR機能を備えていなければならず、たとえOCR機能を備えていたとしても、図4のように歪められたり覆い隠されたりしている文字や記号、数字を画像から読み取ることは困難である。このため、より高度な学習機能を備えたOCRが必要とされる。このようなOCRは、技術的に非常に高度でありかつコストもかかるため、コンピュータプログラムを用いて、無差別、大量にかつ低コストでアンチロボットテスト用画像から判読結果情報を抽出することは非常に困難であるとされている。以上のように、従来の視覚型アンチロボットテストはボットによる迷惑行為の低減に有効であると考えられる。
【0044】
しかし、昨今のOCR技術の高度化、低コスト化を鑑みると、従来の視覚型アンチロボットテストは、決して安全な方法とは言えなくなってきている。
【実施例1】
【0045】
〔本実施形態の視覚型アンチロボットテスト〕
図7は、本実施形態の視覚型アンチロボットテストシステム100の機能ブロック図の一例を示す。サーバ12は、テスト情報生成部21、テスト情報送信部22、判読結果情報受信部23、一致判定部24、認証部25、及び、サービス提供部26、を有する。これらの機能は、サーバ12のCPU101がプログラム110を実行して、一部ハードウェアと協働して実現するものである。
【0046】
テスト情報生成部21は、送信用テキストデータ27から選択した被判読情報を用いて、アンチロボットテスト用画像を生成する。送信用テキストデータ27は、文字(あ・い・う・え・お…、A・B・C…、特・許…)、記号(#・$・%・¥・<・>…)及び数字(1・2・3…)等である。字体(フォント)は特に制限されないが、字体毎に同じ文字、記号及び数字の送信用テキストデータ27を用意しておいてもよい。
【0047】
図8は、クライアント11のディスプレイ209に表示されたアンチロボットテスト用画像40の一例を示す。アンチロボットテスト用画像40には、被判読情報がラスタライズされている。換言すれば、被判読情報をラスタライズしたものがアンチロボットテスト用画像40である。図8では、送信用テキストデータ27として大文字のアルファベットを7個用いた「AB CD EF G」が被判読情報である。
【0048】
テスト情報生成部21は、被判読情報を画像データにラスタライズしてから複数のサブ画像に分割する。図9(a)〜(d)は、サブ画像の一例を示す。図9ではサブ画像は4つである。実際にはこれらのサブ画像は単体ではディスプレイ209に表示されない。クライアント11がユーザに提供する被判読情報は、図8のように1つのアンチロボットテスト用画像40として表示され、人間が各サブ画像を独立に峻別することはできないか又は困難である。しかし、サーバ12とクライアント11は、各サブ画像の画像データを、それぞれ別個の画像データとして扱う。
【0049】
なお、図9(a)〜(d)では、画像の周囲に太い枠線が描画されているが、これは説明の便宜のために描画したものであり、クライアント11がディスプレイ209にアンチロボットテスト用画像40を表示する際は枠線は描画されない。
【0050】
テスト情報生成部21は、例えば、送信用テキストデータ27からランダムに所定数の文字等を読み出し、ビットマップ等のフォーマットの画像データにラスタライズする。文字のラスタライズは、例えばアウトラインフォント用のラスタライザを用いればよい。
【0051】
そして、テスト情報生成部21は、画像データを予め決まった数に分割する。視覚型アンチロボットテストの性能上、分割数は多いほど好ましい。また、決まった数に分割するのでなく、読み出した文字等の数に応じて可変としてもよい。
【0052】
図10は、図8の被判読情報をラスタライズした画像データの分割例を模式的示す図である。図10では、元の画像データが4つに分割されている。分割により図9(a)〜(d)のサブ画像が生成される。なお、テスト情報生成部21は、サブ画像を所定のフォーマット(Tiff、Jpeg BMPデータ)の画像データに変換してもよい。
【0053】
また、テスト情報生成部21は、被判読情報を一致判定部24に送出し、テスト情報生成部21は、サブ画像の画像データをテスト情報送信部22に送出する。
【0054】
テスト情報送信部22は、複数のサブ画像の画像データを、HTMLファイルに埋め込んでクライアント11に送信する。HTMLファイルには、4つのサブ画像が1つの画像であるかのように表示されるよう位置と大きさが指定されている。
【0055】
判読結果情報受信部23は、クライアント11から判読結果情報を受信して、一致判定部24に送出する。ユーザが人間の場合、クライアント11が送信する判読結果情報は、分割前の全ての被判読情報を含むと考えられる。したがって、一致判定部24は、被判読情報と判読結果情報とが一致するか否かに基づき、クライアント11のユーザが人間か否かを判定する。被判読情報と判読結果情報とが一致する場合、一致判定部24は、例えば認証部25にユーザ認証を要求し、一致しない場合、一致判定部24は、テスト情報生成部21に、再度のサブ画像の生成を要求する。なお、視覚型アンチロボットテストの画像に含まれる文字、記号及び数字等はセッション毎に毎回異なることが望ましい。
【0056】
認証部25が、ユーザの認証が成立したと判定すると、認証部25はサービス提供部26にサービスの提供を要求する。サービス提供部26は、ブログ等のユーザ参加型のコンテンツ生成サービスの提供を開始する。
【0057】
次に、クライアント11の機能ブロックについて説明する。クライアント11は、テスト情報受信部31、画面表示部32、判読結果情報送信部34、及び、判読結果情報受付部33を有する。これらの機能は、クライアント11のCPUがプログラム210を実行して、一部ハードウェアと協働して実現するものである。
【0058】
テスト情報受信部31は、サーバ12からHTMLファイルを受信して画面表示部32に送出する。画面表示部32は、HTMLファイルを解釈してディスプレイ209に表示する。上述したように、このHTMLファイルには複数のサブ画像が含まれ、4つのサブ画像が1つの画像であるかのように表示されるよう位置と大きさが指定されている。
【0059】
図11は、クライアント11のディスプレイ209に表示された画面の一例を示す。図11には、被判読情報がラスタライズされたアンチロボットテスト用画像40、「上記の文字、記号、数字を入力してください」というメッセージ、判読結果情報の入力欄41、及び、送信ボタン42、が表示されている。アンチロボットテスト用画像40は、4つのサブ画像がシームレスに表示されたものであり、画像データのファイルはそれぞれ別々に存在する。ユーザは、入力装置206を使って、4つのサブ画像を左(又は右でもよい)から順番に判読し、判読結果情報の入力欄41に同じ順番でテキスト(判読結果情報)を入力する。
【0060】
判読結果情報受付部33は、判読結果情報の入力欄41に入力された判読結果情報を受け付けて、RAM202等に記憶しておく。そして、判読結果情報送信部34は、ユーザが入力装置206を操作して送信ボタン42を押下したことを検出すると、判読結果情報をサーバ12に送信する。
【0061】
通常の視覚型アンチロボットテストシステム100では、「ボット」等のコンピュータプログラムがアンチロボットテスト用画像40から文字列を判読する際には、1個の画像のデータファイルを取得して文字列を判別するだけでよい。しかし、図11に示したように、1つの被判読情報を複数のサブ画像に分割することで、ボットの処理量が増大し、迷惑行為を防止しやすくなる。すなわち、本実施形態の視覚型アンチロボットテストシステム100においては、「ボット」等のコンピュータプログラムがサブ画像のデータファイルから被判読情報を判別するためには、複数のサブ画像のデータファイルを取得することが要求される。そして、ボットは、これらをメモリ等の記憶手段上にて空間的に連結した後、文字列の判別を行なうか、又は、個々の画像のデータファイルを取得し、個々の文字列を判別し、判別した各文字列を連結する必要がある。
【0062】
このように、本実施形態の視覚型アンチロボットテストシステム100では、ボットが視覚型アンチロボットテストシステム100をパスするため、ボットのコンピュータプログラムに一般的な視覚型アンチロボットテストに対して必要とされるよりも複雑なアルゴリズムが必要となる。このため、必然的にボットのプログラミングのためのコストも上昇する。視覚型アンチロボットテストをパスするための技術的な困難さ及びコストがともに上昇するため、「ボット」を用いて迷惑行為を成そうとする者は、より高性能なハードウエアを用意するか、単位時間あたりの迷惑行為の数を減少せざるを得なくなってしまい、迷惑行為の実施はより現実的ではなくなる。
【0063】
図12は、クライアント11とサーバ12の動作手順の一例を示すフローチャート図である。この手順は従来の図6の動作手順と同じであり、被判読情報の表示態様が異なる。
【0064】
ユーザはクライアント11の入力装置206を操作してサーバ12に接続する。クライアント11は、サーバ12に認証を要求する(S11)。例えば、クライアント11は、HTTPリクエストというメッセージによりWebページのデータをサーバ12に要求する。
【0065】
サーバ12は、認証の要求(HTTPリクエスト)を受信する。サーバ12のテスト情報生成部21は、HTTPリクエストのレスポンスとして、被判読情報をラスタライズしてアンチロボットテスト用画像40を生成し、これを複数のサブ画像に分割する。そして、テスト情報送信部22は、アンチロボットテスト用画像40をクライアント11に送信する(S21)。すなわち、テスト情報送信部22は、複数のサブ画像の画像データが埋め込まれたHTMLファイルをクライアントに送信する。
【0066】
クライアント11のテスト情報受信部31はこのHTMLファイルを受信する。そして、画面表示部32が、図11のような画面を表示する。ユーザが判読結果情報を入力すると、判読結果情報受付部33はこれを受け付け、判読結果情報送信部34がサーバ12に送信する(S12)。
【0067】
サーバ12の判読結果情報受信部23は判読結果情報を受信する。一致判定部24は、判読結果情報と被判読情報とが一致するか否かを判定する(S22)。一致する場合(S22のYes)、図12の処理は終了し、サービス提供部26がサービスの提供を開始する。一致しない場合(S22のNo)、テスト情報生成部21は新たな被判読情報からサブ画像を生成してステップS21以下の処理を繰り返す。
【0068】
本実施例の被判読情報の表示態様によれば、被判読情報を複数に分割してサブ画像を生成するという比較的単純な方法で、ボットによる視覚型アンチロボットテストのパスを困難にすることができる。
【0069】
〔サブ画像及び判読結果情報の変形例〕
サブ画像の表示態様について変形例を説明する。
図13(a)は、クライアント11のディスプレイ209に表示された画面の一例を示す。図13(a)において、図11と同一部には同一の符号を付しその説明は省略する。図13(a)では、4つのサブ画像がそのまま独立した4つの画像のように表示されている。このように、サブ画像が別々に表示されても、ユーザが人間であれば一連の被判読情報として認識できる。一方、ボットにとっては、本実施例と同様にメモリ等の記憶手段上にて空間的に連結した後、文字列の判別を行なうか、又は、個々のサブ画像のデータファイルを取得し、個々の文字列を判別し、判別した各文字列を連結する必要がある。よって、「ボット」を用いて迷惑行為を成そうとする者を減らすことや迷惑行為そのものを低減できる。
【0070】
また、図13(b)は、クライアント11のディスプレイ209に表示された画面の一例を示す。図13(b)ではサブ画像に番号「1〜4」が付されている。また、「上記の文字、記号、数字のうち1番と4番を入力してください」というメッセージが表示されている。したがって、判読結果情報は「ABG」となる。サーバ12のテスト情報生成部21は、被判読情報からランダムに番号(この場合は1と4)を指定して、図13のメッセージに含めておくと共に、一致判定部24に送出する。したがって、一致判定部24は、被判読情報の1番目と4番目を抽出した文字、記号及び数字が、判読結果情報と一致するか否かを判定する。
【0071】
図13(b)のような表示態様では、ボットが視覚型アンチロボットテストをパスするためには、メッセージ(テキストデータ)からその意味を解釈する必要があり、日本語や英語などの文法解析の機能を搭載する必要がある。したがって、「ボット」を用いての迷惑行為の実施がより現実的でなくなり、ボットによる迷惑攻撃を低減できる。
【0072】
図14は、クライアント11のディスプレイ209に表示された画面の一例を示す。図13において、図11と同一部には同一の符号を付しその説明は省略する。図11や図13では、サブ画像の被判読情報を、変形したり傾けたり歪めることについて触れていないが、当然、本実施形態においても、被判読情報を変形等してもよい。また、第一のテクスチャからなる背景上に、第一のテクスチャと異なる第二のテクスチャにて被判読情報を構成して重畳して配置してもよい。
【0073】
サーバ12のテスト情報生成部21は、被判読情報に変形等を施したり、第一のテクスチャの背景に第二のテクスチャにて被判読情報を構成して重畳して配置した後、複数のサブ画像に区分する。クライアント11は4つのサブ画像を1つの画像のように表示するので、図14のようなアンチロボットテスト用画像40を表示できる。
【0074】
被判読情報に変形等を施せば、ボットの処理量がさらに増大するので、プログラムが大型化するなどコストが増大し、ボットによる迷惑攻撃を低減できる。
【実施例2】
【0075】
本実施例では、ボットによる判読がさらに困難なサブ画像を用いたアンチロボットテスト用画像40について説明する。実施例1では、被判読情報は1つの文字、記号及び数字を分割していなかったが、本実施例では被判読情報の1つの文字、記号及び数字が、複数のサブ画像に分割されるようにサブ画像を生成する。
【0076】
図15は、クライアント11のディスプレイ209に表示されるアンチロボットテスト用画像40の一例を示す。図15に示すように、目視されるアンチロボットテスト用画像40は実施例1と同様であるが、このアンチロボットテスト用画像40は実施例1よりも多くの数のサブ画像から成っている。
【0077】
図16(a)〜(h)は、サブ画像の一例を示す。また、図16(i)は被判読情報の分割を模式的に示す図の一例である。テスト情報生成部21は、送信用テキストデータ27からランダムにテキストデータを抽出し、それを被判読情報とする。ここまでは、実施例1と同様である。しかし、本実施例では、テスト情報生成部21は、被判読情報をラスタライズしたアンチロボットテスト用画像40を、実施例1よりも多くのサブ画像に分割する。具体的には、各サブ画像の分割の位置が、文字(記号、数字)と文字(記号、数字)の間には存在せず、文字が占める領域の内部に存在する。例えば、1つの文字、記号及び数字の高さよりも短い間隔で上下に分割すること、又は、被判読情報の数(図では7個)よりも多くの数で横方向に分割すること、の少なくともいずれかにより、各サブ画像の分割の位置が、文字が占める領域の内部に存在するようになる。より簡単には、十分に多くの数のサブ画像に分割すればよい。
【0078】
なお、図16(a)〜(h)では、全てのサブ画像の分割位置が、文字が占める領域の内部に存在している例を例示したが、必ずしも全てのサブ画像の分割位置がこのような位置にある必要はない。例えば、少なくとも1カ所以上の分割位置が、文字が占める領域の内部にあればよい。ただし、ボットによる、視覚型アンチロボットテストのパスを阻害するには、分割位置が、文字が占める領域の内部に存在する数は多い方がよい。
【0079】
また、図16(a)〜(h)では、画像の周囲に枠線が描画されている、説明の便宜のために描画しているのであり、実際にはこのような枠線は描画されない。同様に、図16(i)に描画された格子線も分割位置の説明のために便宜的に描画しているのであり、実際にはこれは描画されない。
【0080】
このように、サブ画像の分割位置が、文字が占める領域の内部に存在していることで、サブ画像の1つからは被判読情報を判読することが困難になる。
【0081】
図17は、アンチロボットテスト用画像40の生成手順を示すフローチャート図の一例である。このフローチャート図は図6のステップS21をより詳細に説明したものである。
【0082】
まず、テスト情報生成部21は、送信用テキストデータ27から被判読情報を決定する(S110)。被判読情報を構成する文字等の数は所定の範囲で予め決まっている。
【0083】
テスト情報生成部21は、被判読情報をラスタライズしてアンチロボットテスト用画像40を生成する(S120)。クライアント11のディスプレイ209に表示される画像は、このアンチロボットテスト用画像40である。したがって、人間のユーザがアンチロボットテスト用画像40が複数のサブ画像から構成されていることを意識することはない。
【0084】
テスト情報生成部21は、アンチロボットテスト用画像40を、文字の分割位置が文字が占める領域の内部に来るように分割する(S130)。このような分割は、分割数を多くすれば自然に実現することができる。テスト情報送信部22はサブ画像をHTMLファイルに埋め込んでクライアント11に送信する。以降の処理は、実施例1と同様なので省略する。
【0085】
本実施例のアンチロボットテスト用画像40は、サブ画像の分割の位置は、文字と文字の間には存在せず、文字が占める領域の内部に存在するため、たとえ人間であってもサブ画像単位で文字を正確に判読することはできない。一般的な視覚型アンチロボットテストシステム100において、「ボット」等のコンピュータプログラムが画像データから被判読情報を判読する際は、1個の画像のデータファイルを取得して文字列を判別するだけでよい。しかし、本実施例のアンチロボットテスト用画像40から、「ボット」等のコンピュータプログラムが文字列を判別するためには、複数のサブ画像の画像データの全てを取得し、これらをメモリ等記憶手段上にて空間的に連結した後、文字列の判別を行なう必要がある。
【0086】
このように、本実施形態の視覚型アンチロボットテストシステム100をパスするためには、「ボット」等のコンピュータプログラムには一般的な視覚型アンチロボットテストシステム100に対して必要とされるよりも複雑なアルゴリズムが必要となり、必然的にこれを実施するためのコストも上昇する。ボットを作成するための技術的な困難さ及びコストがともに上昇するため、「ボット」を用いて迷惑行為を成そうとする者は、より高性能なハードウエアを必要とするか、単位時間あたりの迷惑行為の数を減少せざるを得なくなってしまい、迷惑行為の実施はより現実的ではなくなる。
【実施例3】
【0087】
本実施例では、実施例1又は2の複数のサブ画像に対し画像データのフォーマットを統一しない視覚型アンチロボットテストシステム100について説明する。実施例1又は2のどちらのサブ画像にも本実施例を適用できるが、本実施例を含め以下の実施例では実施例2のサブ画像を例にして説明する。
【0088】
図18は、クライアント11のディスプレイ209に表示されるアンチロボットテスト用画像40の一例を示す。図18に示すように、目視されるアンチロボットテスト用画像40は実施例1と同様であるが、このアンチロボットテスト用画像40は各種のフォーマットによる画像データのサブ画像から成っている。
【0089】
図19(a)〜(h)は、サブ画像の画像データの一例を示す。また、図19(i)は被判読情報の分割を模式的に示す図の一例である。図19(a)〜(h)に示すように、サブ画像の画像データのフォーマットは統一されていない。図19(a)のサブ画像はjpegフォーマットであり、図19(b)のサブ画像はTIFFフォーマットであり、図19(c)のサブ画像はjpegフォーマットであり、図19(d)のサブ画像はjpegフォーマットであり、図19(e)のサブ画像はjpeg2000フォーマットであり、図19(f)のサブ画像はpngフォーマットであり、図19(g)のサブ画像はTIFFフォーマットであり、図19(h)のサブ画像はjpegフォーマットである。
【0090】
このように各サブ画像のデータファイルは、全てが同一のフォーマットではなく、jpeg、TIFF、png、jpeg2000等の複数の画像データ用のフォーマットが混在している。サブ画像のデータファイルのフォーマットが異なれば、ボットは全てのフォーマットに対応する必要があり、実施例2だけを適用したアンチロボットテスト用画像40よりもさらに困難にすることができる。
【0091】
なお、図19(a)〜(h)では、画像の周囲に枠線を描画しているが、これは説明の便宜のために描画しているのであり、実際にはこのような枠線は描画されない。同様に、図19(i)に描画された格子線も説明のために便宜的に描画しているのであり、実際にはこれは描画されない。
【0092】
図20は、アンチロボットテスト用画像40の生成手順を示すフローチャート図の一例である。このフローチャート図は図6のステップS21をより詳細に説明したものである。
【0093】
まず、テスト情報生成部21は、送信用テキストデータ27から被判読情報を決定する(S110)。被判読情報を構成する文字等の数は所定の範囲で予め決まっている。
【0094】
テスト情報生成部21は、被判読情報をラスタライズしてアンチロボットテスト用画像40を生成する(S120)。この時点におけるアンチロボットテスト用画像40のデータファイルのフォーマットは、例えばビットマップである。クライアント11のディスプレイ209に表示される画像は、このアンチロボットテスト用画像40である。したがって、人間のユーザがアンチロボットテスト用画像40が複数のサブ画像から構成されていることを意識することはない。
【0095】
テスト情報生成部21は、アンチロボットテスト用画像40を、文字の分割位置が文字が占める領域の内部に来るように分割する(S130)。このような分割は、分割数を多くすれば自然に実現することもできる。
【0096】
ついで、テスト情報生成部21は、サブ画像のデータファイルのフォーマットを変換する(S140)。例えば、TIFFがデフォルトのフォーマットであるとすると、テスト情報生成部21は、フォーマットの種類の数(例えば4つ)以上のサブ画像を任意に選択し、選択したサブ画像のフォーマットをTIFFから別のフォーマットに変換する。こうすることで、サブ画像の画像データのフォーマットを種々のフォーマットに変換できる。なお、サブ画像のデータファイルのフォーマットは、セッション毎に毎回異なることが望ましい。
【0097】
なお、クライアント11の画面表示部32は、種々のフォーマットに対応しており、各サブ画像のフォーマットに応じて画像データを伸張、変換してビットマップデータに戻す。したがって、人間のユーザがアンチロボットテスト用画像40がデータファイルのフォーマットが異なる複数のサブ画像から構成されていることを意識することはない。以降の処理は、実施例1と同様なので省略する。
【0098】
本実施例においては、サブ画像のデータファイルのフォーマットが統一されてないので、「ボット」等のコンピュータプログラムがサブ画像から文字列を判別するためには、サブ画像のデータファイルを全て取得し、異なるフォーマットのデータファイルを全てビットマップ等のフォーマットに再度変換して、これらをメモリ等記憶手段上にて空間的に連結した後、文字列の判別を行なう必要がある。
【0099】
このように、本実施形態の視覚型アンチロボットテストシステム100をパスするためには、「ボット」等のコンピュータプログラムには一般的な視覚型アンチロボットテストシステム100に対して必要とされるよりも複雑なアルゴリズムが必要となり、必然的にこれを実施するためのコストも上昇する。ボットを作成するための技術的な困難さ及びコストがともに上昇するため、「ボット」を用いて迷惑行為を成そうとする者は、より高性能なハードウエアを必要とするか、単位時間あたりの迷惑行為の数を減少せざるを得なくなってしまい、迷惑行為の実施はより現実的ではなくなる。
【実施例4】
【0100】
本実施例では、サブ画像を異なる色空間(以下、カラーモードという)で表してアンチロボットテスト用画像40を構成する視覚型アンチロボットテストシステム100について説明する。
【0101】
図21は、クライアント11のディスプレイ209に表示されるアンチロボットテスト用画像40の一例を示す。図21に示すように、目視されるアンチロボットテスト用画像40は実施例1と同様であるが、このアンチロボットテスト用画像40は各種のカラーモードのサブ画像から成っている。
【0102】
図22(a)〜(h)は、サブ画像のカラーモードの一例を示す。また、図22(i)は被判読情報の分割を模式的に示す図の一例である。図22(a)〜(h)に示すように、サブ画像のカラーモードは統一されていない。図22(a)のサブ画像はRGBモードであり、図22(b)のサブ画像はグレーモードであり、図22(c)のサブ画像はCMYKモードであり、図22(d)のサブ画像はグレーモードであり、図22(e)のサブ画像はL*a*b*モードであり、図22(f)のサブ画像はRGBモードであり、図22(g)のサブ画像はRGBモードであり、図22(h)のサブ画像はCMYKモードである。
【0103】
このように各サブ画像のカラーモードは、全てが同一でなく、各種のカラーモードが混在している。サブ画像のカラーモードが異なれば、ボットは、サブ画像のカラーモードをメモリ等の記憶手段上にて統一しないと、OCR処理が困難になる。例えばカラーモードが異なるサブ画像間でエッジが発生する可能性がある等のためである。このため、ボットは全てのサブ画像のカラーモードに対応する必要があり、実施例2及び3だけを適用したアンチロボットテスト用画像40よりもさらに困難にすることができる。
【0104】
なお、図22(a)〜(h)では、画像の周囲に枠線を描画しているが、これは説明の便宜のために描画しているのであり、実際にはこのような枠線は描画されない。同様に、図22(i)に描画された格子線も説明のために便宜的に描画しているのであり、実際にはこれは描画されない。
【0105】
図23は、アンチロボットテスト用画像40の生成手順を示すフローチャート図の一例である。このフローチャート図は図6のステップS21をより詳細に説明したものである。
【0106】
まず、テスト情報生成部21は、送信用テキストデータ27から被判読情報を決定する(S110)。被判読情報を構成する文字等の数は所定の範囲で予め決まっている。
【0107】
テスト情報生成部21は、被判読情報をラスタライズしてアンチロボットテスト用画像40を生成する(S120)。この時点の画像データのカラーモードは、例えばRGBモードである。
【0108】
テスト情報生成部21は、アンチロボットテスト用画像40を、文字の分割位置が文字が占める領域の内部に来るように分割する(S130)。このような分割は、分割数を多くすれば自然に実現することもできる。
【0109】
ついで、テスト情報生成部21は、サブ画像の画像データのカラーモードを変換する(S150)。例えば、RGBモードがデフォルトのカラーモードであるとすると、テスト情報生成部21は、カラーモードの種類の数(例えば4つ)以上のサブ画像を任意に選択し、選択したサブ画像のカラーモードをRGBモードから別のカラーモードに変換する。なお、各サブ画像のカラーモードはセッション毎に毎回異なることが望ましい。
【0110】
このようにして、サブ画像のカラーモードを種々のカラーモードに変換できる。なお、ステップS150の前又は後に、実施例3と同様にフォーマットを変換してもよい。
【0111】
ここで、クライアント11の画面表示部32がアンチロボットテスト用画像40を表示する態様は2つある。すなわち、画面表示部32は、サブ画像のカラーモードを統一してからアンチロボットテスト用画像40を表示してもよいし、統一せずに表示してもよい。
【0112】
例えば、画面表示部32は、カラーモードの異なる複数のサブ画像を、そのまま1つのアンチロボットテスト用画像40として表示する。例えば、アンチロボットテスト用画像40が白黒2値であれば、サブ画像のカラーモードが異なってもユーザはほとんど違和感を覚えない。また、仮に、アンチロボットテスト用画像40がカラーで生成されていても、ユーザが人間なら色合いの異なる画像から一連の被判読情報を判読することができる。
【0113】
また、画面表示部32は、カラーモードの異なる画像データを所定のカラーモードに統一してアンチロボットテスト用画像40を表示してもよい。統一するカラーモードはいくつか考えられるが、グレーモードのサブ画像には元のラスタデータの色情報が含まれていないので、画面表示部32は例えばグレーモードに統一する。また、サーバ12のテスト情報生成部21が生成するサブ画像のカラーがグレーモードに固定されているような場合、グレーモードのサブ画像をCMYKモードやRGBモードに変換しても、サーバ12から送られた時点でCMYKモードやRGBモードのサブ画像と大きく色が異なることはないので、CMYKモードやRGBモードに統一してもよい。
【0114】
サブ画像を全てグレーモードに統一すれば、例えば、文字の領域は黒、背景は白のように、サブ画像を1つのアンチロボットテスト用画像40に表示した場合、人間のユーザが目視した際の違和感をほぼなくすことができる。
以降の処理は、実施例1と同様なので省略する。
【0115】
本実施例においては、サブ画像のカラーモードが同一ではないので、「ボット」等のコンピュータプログラムがサブ画像から文字列を判別するためには、サブ画像の画像データを全て取得し、異なるカラーモードを全て同一のカラーモードに変換して、これらをメモリ等記憶手段上にて空間的に連結した後、文字列の判別を行なう必要がある。
【0116】
このように、本実施形態の視覚型アンチロボットテストシステム100をパスするためには、「ボット」等のコンピュータプログラムには一般的な視覚型アンチロボットテストシステム100に対して必要とされるよりも複雑なアルゴリズムが必要となり、必然的にこれを実施するためのコストも上昇する。ボットを作成するための技術的な困難さ及びコストがともに上昇するため、「ボット」を用いて迷惑行為を成そうとする者は、より高性能なハードウエアを必要とするか、単位時間あたりの迷惑行為の数を減少せざるを得なくなってしまい、迷惑行為の実施はより現実的ではなくなる。
【実施例5】
【0117】
本実施例では、サブ画像毎に背景色と前景色の組み合わせを可変にしてアンチロボットテスト用画像40を構成する視覚型アンチロボットテストシステム100について説明する。
【0118】
図24は、クライアント11のディスプレイ209に表示されるアンチロボットテスト用画像40の一例を示す。図24に示すように、目視されるアンチロボットテスト用画像40は実施例1と同様であるが、このアンチロボットテスト用画像40は、背景色と前景色の組み合わせが統一されていない。
【0119】
図25(a)〜(h)は、サブ画像の画像データの一例を示す。また、図25(i)は被判読情報の分割を模式的に示す図の一例である。図25(a)〜(h)に示すように、サブ画像の背景色(文字、記号、数字以外)と前景色(文字、記号、数字)は、各サブ画像毎に様々である。
【0120】
図25(a)のサブ画像は「背景色:白 前景色:黒」であり、図25(b)のサブ画像は「背景色:黒 前景色:白」であり、図25(c)のサブ画像は「背景色:緑 前景色:赤」であり、図25(d)のサブ画像は「背景色:青 前景色:白」であり、図25(e)のサブ画像は「背景色:白 前景色:緑」であり、図25(f)のサブ画像は「背景色:白 前景色:黒」であり、図25(g)のサブ画像は「背景色:青 前景色:白」であり、図25(h)のサブ画像は「背景色:白 前景色:緑である。
【0121】
このように各サブ画像は、背景色と前景色の組み合わせが様々である。背景色と前景色の組み合わせが異なるサブ画像は、ボットが単にこれらを連結しても、OCR処理はできない。背景色が異なるサブ画像間でエッジが発生する可能性がある等のためである。すなわち、ボットは、サブ画像の背景色と前景色をメモリ等の記憶手段上に配置して統一しないと、OCR処理が困難になる。図示したような2値画像であれば、一方の画素値を白に、他方を黒に置き換えることで、全てのサブ画像の背景色と前景色を統一することができる。しかし、サブ画像から、一方の画素値と他方の画素値のどちらが背景色でどちらが前景色かをボットが判別することは困難である。図25の例では、画素数の多い方が背景色であるが、文字、数字、記号を太くするなどして、背景色と前景色の画素数の比率は調整できる。
【0122】
したがって、ボットが図25のようなサブ画像から被判読情報を判読するには、少なくとも、背景色と前景色を判別する処理、及び、背景色と前景色をサブ画像間で統一する処理、が必要であり、被判読情報の判読を、実施例2〜4だけを適用したアンチロボットテスト用画像40よりもさらに困難にすることができる。
【0123】
なお、図25(a)〜(h)では、画像の周囲に枠線を描画しているが、これは説明の便宜のために描画しているのであり、実際にはこのような枠線は描画されない。同様に、図25(i)に描画された格子線も説明のために便宜的に描画しているのであり、実際にはこれは描画されない。
【0124】
図26は、アンチロボットテスト用画像40の生成手順を示すフローチャート図の一例である。このフローチャート図は図6のステップS21をより詳細に説明したものである。
【0125】
まず、テスト情報生成部21は、送信用テキストデータ27から被判読情報を決定する(S110)。被判読情報を構成する文字等の数は所定の範囲で予め決まっている。
【0126】
テスト情報生成部21は、被判読情報をラスタライズしてアンチロボットテスト用画像40を生成する(S120)。例えば、この時点のサブ画像の背景色は白、前景色は黒である。
【0127】
テスト情報生成部21は、アンチロボットテスト用画像40を、文字の分割位置が文字が占める領域の内部に来るように分割する(S130)。このような分割は、分割数を多くすれば自然に実現することもできる。
【0128】
ついで、テスト情報生成部21は、サブ画像の背景色と前景色をサブ画像毎に変更する(S160)。背景色と前景色を変換する方法には種々の方法がある。例えば、サブ画像に分割する前に、テスト情報生成部21は被判読情報の画素にラベリングしておく(画素に番号を振って被判読情報の画素であることを示す情報を持たせる)。そして、テスト情報生成部21は、被判読情報の画素を前景色に、その他の画素を背景色に変更する。
【0129】
なお、背景色と前景色の組み合わせは、セッション毎に毎回異なることが望ましい。また、ステップS160の後に、実施例4と同様にカラーモードを変換してもよいし、実施例3と同様にフォーマットを変換してもよい。
【0130】
ここで、クライアント11の画面表示部32がアンチロボットテスト用画像40を表示する態様は2つある。すなわち、画面表示部32は、サブ画像の背景色と前景色の組み合わせを統一してからアンチロボットテスト用画像40を表示してもよいし、統一せずに表示してもよい。
【0131】
例えば、画面表示部32は、背景色と前景色の組み合わせの異なる複数のサブ画像を、そのまま1つのアンチロボットテスト用画像40として表示する。人間のユーザはエッジ情報に注目して被判読情報を判読するので、このようなアンチロボットテスト用画像40でも一連の被判読情報を判読することができる。
【0132】
また、画面表示部32は、背景色と前景色の組み合わせの異なる画像データを所定の背景色(白)と前景色(黒)の組み合わせに統一してもよい。背景色の画素値と前景色の画素値を区別するため、画面表示部32は、サブ画像のある辺に接している2種類の画素値の数の比率、2値化処理やエッジ処理を施して得られた画素数の大小等から、背景色と前景色を判定して、サブ画像の背景色と前景色の組み合わせを統一する。サブ画像のある辺とは、サブ画像を囲む四辺の1以上をいい、画面表示部32が着目する辺はサブ画像毎に決まっている。以降の処理は、実施例1と同様なので省略する。
【0133】
本実施例においては、サブ画像の背景色と前景色の組み合わせが同一ではないので、「ボット」等のコンピュータプログラムがサブ画像から文字列を判別するためには、サブ画像の画像データを全て取得し、各サブ画像の背景色と前景色を全て統一して、これらをメモリ等記憶手段上にて空間的に連結した後、文字列の判別を行なう必要がある。
【0134】
このように、本実施形態の視覚型アンチロボットテストシステム100をパスするためには、「ボット」等のコンピュータプログラムには一般的な視覚型アンチロボットテストシステム100に対して必要とされるよりも複雑なアルゴリズムが必要となり、必然的にこれを実施するためのコストも上昇する。ボットを作成するための技術的な困難さ及びコストがともに上昇するため、「ボット」を用いて迷惑行為を成そうとする者は、より高性能なハードウエアを必要とするか、単位時間あたりの迷惑行為の数を減少せざるを得なくなってしまい、迷惑行為の実施はより現実的ではなくなる。
【実施例6】
【0135】
本実施例では、サブ画像毎に解像度を可変にしてアンチロボットテスト用画像40を構成する視覚型アンチロボットテストシステム100について説明する。
【0136】
図27は、クライアント11のディスプレイ209に表示されるアンチロボットテスト用画像40の一例を示す。図27に示すように、目視されるアンチロボットテスト用画像40は実施例1と同様であるが、このアンチロボットテスト用画像40は各種の解像度のサブ画像から成っている。
【0137】
図28(a)〜(h)は、サブ画像の画像データの一例を示す。また、図28(i)は被判読情報の分割を模式的に示す図の一例である。図28(a)〜(h)に示すように、サブ画像の解像度は各サブ画像毎に様々である。
【0138】
図28(a)のサブ画像は75dpiであり、図28(b)のサブ画像は100dpiであり、図25(c)のサブ画像は100dpiであり、図28(d)のサブ画像は50dpiであり、図28(e)のサブ画像は100dpiであり、図28(f)のサブ画像は150dpiであり、図28(g)のサブ画像は50dpiであり、図28(h)のサブ画像は150dpiである。
【0139】
このように各サブ画像の解像度は様々である。解像度が異なるサブ画像は、ボットが単にこれらを連結しても、元の被判読情報を再現できない。解像度が異なるサブ画像は大きさが一致しないので単純な連結は困難なためである。すなわち、ボットは、サブ画像の解像度を統一してメモリ等の記憶手段上に配置しないと、OCR処理が困難になる。
【0140】
したがって、ボットが図28のようなサブ画像から被判読情報を判読するには、少なくとも、解像度を統一する処理が必要であり、被判読情報の判読を実施例2〜5だけを適用したアンチロボットテスト用画像40よりもさらに困難にすることができる。
【0141】
なお、図28(a)〜(h)では、画像の周囲に枠線を描画しているが、これは説明の便宜のために描画しているのであり、実際にはこのような枠線は描画されない。同様に、図28(i)に描画された格子線も説明のために便宜的に描画しているのであり、実際にはこれは描画されない。
【0142】
図29は、アンチロボットテスト用画像40の生成手順を示すフローチャート図の一例である。このフローチャート図は図6のステップS21をより詳細に説明したものである。
【0143】
まず、テスト情報生成部21は、送信用テキストデータ27から被判読情報を決定する(S110)。被判読情報を構成する文字等の数は所定の範囲で予め決まっている。
【0144】
テスト情報生成部21は、被判読情報をラスタライズしてアンチロボットテスト用画像40を生成する(S120)。アンチロボットテスト用画像40の解像度は、例えば150dpi等である。
【0145】
テスト情報生成部21は、アンチロボットテスト用画像40を、文字の分割位置が文字が占める領域の内部に来るように分割する(S130)。このような分割は、分割数を多くすれば自然に実現することもできる。
【0146】
ついで、テスト情報生成部21は、サブ画像の解像度をサブ画像毎に変更する(S170)。解像度の変更には種々の方法がある。解像度を小さくする場合、テスト情報生成部21は、縦・横それぞれの方向に所定画素毎に1画素を取り出す、又は、隣接した数個の画素の画素値の平均を解像度の変更後の画素値にすることで、解像度を変更する。また、解像度を大きくする場合、ニアレストネイバー、バイリニア、バイキュービックなどの手法で、テスト情報生成部21が解像度を変更する。
【0147】
なお、ステップS170の前又は後に、実施例5と同様に背景色と前景色の組み合わせを変更してもよいし、実施例4と同様にカラーモードを変換してもよいし、実施例3と同様にフォーマットを変換してもよい。
【0148】
画面表示部32が解像度の異なるサブ画像をそのまま1つのアンチロボットテスト用画像40として表示すると、ユーザが人間でも判読が困難なので、画面表示部32はサブ画像の解像度を統一する。サブ画像の解像度の統一は、解像度を小さく又は大きくすることと同じなので、テスト情報生成部21が解像度を変更した際の手法を使うことができる。HTMLファイルの解釈時には画像データの高さと横幅の記述に応じて、画面における画像データの大きさが自動的に調整されるので、この機能を利用してもよい。
【0149】
画面表示部32は、予め定められた目標の解像度(例えば、テスト情報生成部21がアンチロボットテスト用画像40を生成した際の解像度(150dpi))になるよう、各サブ画像の解像度を変更する。以降の処理は、実施例1と同様なので省略する。
【0150】
本実施例においては、サブ画像の解像度が同一ではないので、「ボット」等のコンピュータプログラムがサブ画像から文字列を判別するためには、サブ画像の画像データを全て取得し、各サブ画像の解像度を全て統一して、これらをメモリ等記憶手段上にて空間的に連結した後、文字列の判別を行なう必要がある。
【0151】
このように、本実施形態の視覚型アンチロボットテストシステム100をパスするためには、「ボット」等のコンピュータプログラムには一般的な視覚型アンチロボットテストシステム100に対して必要とされるよりも複雑なアルゴリズムが必要となり、必然的にこれを実施するためのコストも上昇する。ボットを作成するための技術的な困難さ及びコストがともに上昇するため、「ボット」を用いて迷惑行為を成そうとする者は、より高性能なハードウエアを必要とするか、単位時間あたりの迷惑行為の数を減少せざるを得なくなってしまい、迷惑行為の実施はより現実的ではなくなる。
【実施例7】
【0152】
本実施例では、ファイル名をランダム(無作為)に定めたサブ画像から成るアンチロボットテスト用画像40を用いた視覚型アンチロボットテストシステム100について説明する。
【0153】
図30は、クライアント11のディスプレイ209に表示されるアンチロボットテスト用画像40の一例を示す。図30に示すように、目視されるアンチロボットテスト用画像40は実施例1と同様であるが、このアンチロボットテスト用画像40は、データファイルのファイル名がランダムの各サブ画像から成っている。
【0154】
図31(a)〜(h)は、サブ画像の画像データの一例を示す。また、図31(i)は被判読情報の分割を模式的に示す図の一例である。図31(a)〜(h)に示すように、サブ画像のファイル名は各サブ画像間で何ら関連のないものになっている。
【0155】
図31(a)のサブ画像のファイル名は「fp2nbAg0q.jpg」であり、図31(b)のサブ画像のファイル名は「d9dsidf.jpg」であり、図31(c)のサブ画像のファイル名は「Anspkij.jpg」であり、図31(d)のファイル名は「qk0s9cSD.jpg」であり、図31(e)のファイル名は「0disd1jd.jpg」であり、図31(f)のファイル名は「lk0idhs8lL.jpg」であり、図31(g)のファイル名は「1-sud9_+f.jpg」であり、図31(h)のファイル名は「m1023kd.jpg」である。
【0156】
このように、各サブ画像のファイル名は、これらサブ画像を連結することにより1個の画像を構成することが安易に推測できないようなっている。元の画像を分割する場合、一般的に、基本名に連番を付与するなど(pic_1.jpg,pic_2.jpg ... 等)の方法が採用されることが多い。このためボットもファイル名を手がかりにサブ画像を連結することが考えらえる。本実施例では、テスト情報生成部21が、例えばランダムなファイル名をサブ画像に付与するので、ボットがサブ画像を連結することを推測しにくいようになっている。
【0157】
したがって、ボットが図31のようなサブ画像から被判読情報を判読するには、少なくとも、サブ画像が複数存在することを検知し、それらの配置をHTMLファイルから解読する処理が必要であり、被判読情報の判読を実施例2〜6だけを適用したアンチロボットテスト用画像40よりもさらに困難にすることができる。
【0158】
クライアント11の画面表示部32は、サブ画像のファイル名から連結する順番を決定することはないので、ファイル名がランダムか否かに関係なくHTMLファイルの記述に従いアンチロボットテスト用画像40を表示できる。
【0159】
なお、図31(a)〜(h)では、画像の周囲に枠線を描画しているが、これは説明の便宜のために描画しているのであり、実際にはこのような枠線は描画されない。同様に、図31(i)に描画された格子線も説明のために便宜的に描画しているのであり、実際にはこれは描画されない。
【0160】
図32は、アンチロボットテスト用画像40の生成手順を示すフローチャート図の一例である。このフローチャート図は図6のステップS21をより詳細に説明したものである。
【0161】
まず、テスト情報生成部21は、送信用テキストデータ27から被判読情報を決定する(S110)。被判読情報を構成する文字等の数は所定の範囲で予め決まっている。
【0162】
テスト情報生成部21は、被判読情報をラスタライズしてアンチロボットテスト用画像40を生成する(S120)。
【0163】
テスト情報生成部21は、アンチロボットテスト用画像40を、文字の分割位置が文字が占める領域の内部に来るように分割する(S130)。このような分割は、分割数を多くすれば自然に実現することもできる。
【0164】
ついで、テスト情報生成部21は、サブ画像にランダムなファイル名を付与する(S180)。なお、ステップS180の前に、実施例6と同様に解像度を変更してもよいし、実施例5と同様に背景色と前景色の組み合わせを変更してもよいし、実施例4と同様にカラーモードを変換してもよいし、実施例3と同様にフォーマットを変換してもよい。
【0165】
画面表示部32は、HTMLファイルの指示に従い各サブ画像を配置するので、ファイル名がランダムでもサブ画像から1つのアンチロボットテスト用画像40を表示できる。したがって、人間のユーザは、被判読情報を判読できる。以降の処理は、実施例1と同様なので省略する。
【0166】
本実施例においては、サブ画像のファイル名がサブ画像の連結が必要であることを予測させるものでないので、「ボット」等のコンピュータプログラムがサブ画像をメモリ等記憶手段上にて空間的に連結することを困難にできる。
【0167】
このように、本実施形態の視覚型アンチロボットテストシステム100をパスするためには、「ボット」等のコンピュータプログラムには一般的な視覚型アンチロボットテストシステム100に対して必要とされるよりも複雑なアルゴリズムが必要となり、必然的にこれを実施するためのコストも上昇する。ボットを作成するための技術的な困難さ及びコストがともに上昇するため、「ボット」を用いて迷惑行為を成そうとする者は、より高性能なハードウエアを必要とするか、単位時間あたりの迷惑行為の数を減少せざるを得なくなってしまい、迷惑行為の実施はより現実的ではなくなる。
【実施例8】
【0168】
実施例1〜7では、サブ画像の数を8個程度として説明したが、本実施例では、セッション毎にサブ画像の数を可変にした視覚型アンチロボットテストシステム100について説明する。
【0169】
図33は、クライアント11のディスプレイ209に表示されるアンチロボットテスト用画像40の一例を示す。図33に示すように、目視されるアンチロボットテスト用画像40は実施例1と同様であるが、このアンチロボットテスト用画像40を構成するサブ画像の数は不定である。
【0170】
図34(a)は、アンチロボットテスト用画像40から2つ分割されたサブ画像の一例を、図34(b)は4つに分割されたサブ画像の一例をそれぞれ示す。この他、6つに分割してもよいし、10以上に分割してもよい。また、必ずしも四角形に分割する必要はなく、三角形、六角形、その他の多角形に分割してもよい。また、各サブ画像の角数が異なっていてもよい。
【0171】
実施例2〜7にて説明したように、テスト情報生成部21は文字の分割位置が文字が占める領域の内部に来るように分割する(S130)。本実施例のテスト情報生成部21は、さらにセッション毎に分割数をランダムに決定する。分割数をあまりに大きくする必要はないので、テスト情報生成部21は、例えば20〜30を上限に分割数を決定する。
【0172】
サーバ12が、セッションをクッキーに添付したセッションIDにより管理する場合、サーバ12は、クライアント11から解読結果情報が送られると、過去のセッションIDを無効にする。これにより、同じクライアント11から認証要求がサーバ12にあっても、サーバ12は新たなセッションを開始できる。したがって、解読結果情報が送られる毎に、分割数を可変にすることができる。
【0173】
テスト情報生成部21は、決定された分割数で、アンチロボットテスト用画像40の横の長さ(画素数)を割った位置を分割位置に決定する。縦方向の分割数は2又は3程度であり、分割数が変わってもその分割位置は固定されている。
【0174】
セッション毎にサブ画像の数が異なれば、「ボット」等のコンピュータプログラムは、セッション毎に異なる分割数のサブ画像の全てを取得し、これらの空間的配置を推測し、メモリ等記憶手段上にて空間的に連結した後、文字列の判別を行なう必要がある。したがって、被判読情報の判読をより困難にすることができる。
【0175】
このように、本実施形態の視覚型アンチロボットテストシステム100をパスするためには、「ボット」等のコンピュータプログラムには一般的な視覚型アンチロボットテストシステム100に対して必要とされるよりも複雑なアルゴリズムが必要となり、必然的にこれを実施するためのコストも上昇する。ボットを作成するための技術的な困難さ及びコストがともに上昇するため、「ボット」を用いて迷惑行為を成そうとする者は、より高性能なハードウエアを必要とするか、単位時間あたりの迷惑行為の数を減少せざるを得なくなってしまい、迷惑行為の実施はより現実的ではなくなる。
【符号の説明】
【0176】
11 クライアント
12 サーバ
21 テスト情報生成部
22 テスト情報送信部
23 判読結果情報受信部
24 一致判定部
25 認証部
26 サービス提供部
27 送信用テキストデータ
31 テスト情報受信部
32 画面表示部
33 判読結果情報受付部
34 判読結果情報送信部
100 視覚型アンチロボットテストシステム
【先行技術文献】
【特許文献】
【0177】
【特許文献1】特開2008−262549号公報

【特許請求の範囲】
【請求項1】
被判読情報を可視情報として含む画像データを提供したサーバが、前記被判読情報の要求元から取得した判読結果情報が前記被判読情報と一致するか否かにより、前記要求元が人間か否かを判別するアンチロボットテストシステムであって、
前記サーバは、
前記被判読情報をラスタライズした元画像を分割して、複数のサブ画像を生成するサブ画像生成手段と、
前記サブ画像の画像データを、人間が目視する画面における前記サブ画像の位置情報と共に前記要求元に送信するサブ画像送信手段と、を有する、
ことを特徴とするアンチロボットテストシステム。
【請求項2】
前記被判読情報は1つ以上の文字、記号又は数字から構成され、
前記サブ画像生成手段は、前記被判読情報の1つ以上の文字、記号又は数字が2つ以上の部分に分断されるように、前記元画像を分割する、
ことを特徴とする請求項1記載のアンチロボットテストシステム。
【請求項3】
前記サブ画像生成手段は、
前記サブ画像の画像データのファイルフォーマットが全ての前記サブ画像で同一とならないよう、2種類以上の異なるファイルフォーマットで前記サブ画像の各画像データを生成する、
ことを特徴とする請求項1又は2記載のアンチロボットテストシステム。
【請求項4】
前記サブ画像生成手段は、
前記サブ画像の画像データのカラーモードが全ての前記サブ画像で同一とならないよう、2種類以上の異なるカラーモードで前記サブ画像の各画像データを生成する、
ことを特徴とする請求項1〜3いずれか1項記載のアンチロボットテストシステム。
【請求項5】
前記サブ画像生成手段は、
前記サブ画像のうち、前記被判読情報が占める画素の第1の画素値と、それ以外の画素の第2の画素値の組み合わせが、全ての前記サブ画像で同一とならないよう、2種類以上の異なる前記組み合わせで各サブ画像の第1及び第2の画素値を決定する、
ことを特徴とする請求項1〜4いずれか1項記載のアンチロボットテストシステム。
【請求項6】
前記サブ画像生成手段は、
前記サブ画像の解像度が全ての前記サブ画像で同一とならないよう、2種類以上の異なる解像度で前記サブ画像を生成する、
ことを特徴とする請求項1〜5いずれか1項記載のアンチロボットテストシステム。
【請求項7】
前記サブ画像生成手段は、
前記サブ画像のデータファイルのファイル名が連番を含まないよう、
複数の前記サブ画像のデータファイルにそれぞれ無作為のファイル名を付与する、
ことを特徴とする請求項1〜6いずれか1項記載のアンチロボットテストシステム。
【請求項8】
前記サブ画像生成手段は、
セッション毎に、元画像の分割数を可変にする
ことを特徴とする請求項1〜7いずれか1項記載のアンチロボットテストシステム。
【請求項9】
被判読情報を可視情報として含む画像データを提供したサーバが、前記被判読情報の要求元から取得した判読結果情報が前記被判読情報と一致するか否かにより、前記要求元が人間か否かを判別するアンチロボットテスト方法であって、
サブ画像生成手段が、前記被判読情報をラスタライズした元画像を分割して、複数のサブ画像を生成するステップと、
サブ画像送信手段が、前記サブ画像の画像データを、人間が目視する画面における前記サブ画像の位置情報と共に前記要求元に送信するステップと、
を有することを特徴とするアンチロボットテスト方法。
【請求項10】
被判読情報を可視情報として含む画像データを提供し、前記被判読情報の要求元から取得した判読結果情報が前記被判読情報と一致するか否かにより、前記要求元が人間か否かを判別するアンチロボットテストサーバであって、
前記被判読情報をラスタライズした元画像を分割して、複数のサブ画像を生成するサブ画像生成手段と、
前記サブ画像の画像データを、人間が目視する画面における前記サブ画像の位置情報と共に前記要求元に送信するサブ画像送信手段と、を有する、
ことを特徴とするアンチロボットテストサーバ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図4】
image rotate


【公開番号】特開2011−48497(P2011−48497A)
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願番号】特願2009−194734(P2009−194734)
【出願日】平成21年8月25日(2009.8.25)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】