ページ 11

HTTPレスポンスから画像を解析

Posted: 2010年12月23日(木) 01:34
by ポム
Perlで掲示板を作成しています。
不正防止のため簡単な画像認証を付けました。
0-9a-zの5文字です。
背景には線、文字は歪んでたりしません。

C言語で作成したWinSockでGETを送り返って来たレスポンスを見ると
一部(3文字)がそれらしき文字列を取得しました。
それ以外は文字化けです。
文字を16進表示しましたが、文字化けしているところは結局
0x0D,0x0A,0xFF,0xD8
こんな感じで特に解析には必要ないかな?という感じでした。

画像にはJPGを使用していますが、背景にも文字列にもコーティングを加えないで表示すると
簡単に解析できてしまうものなのでしょうか?

たまになんて書いてあるのかわからないくらい雑な画像認証とかありますけど
不便なのでそこまでぐちゃぐちゃにしたくありません。
どこまで画像をコーティングすれば解析できないのかを少しずつ画像編集していきたいと思ってます。
どのように解析すればよろしいのでしょうか?

※Perlはローカルでは動かしていません。レンタルサーバーでCGIとして動かしています。

Re: HTTPレスポンスから画像を解析

Posted: 2010年12月23日(木) 04:34
by bitter_fox
ポム さんが書きました: 0-9a-zの5文字です。
背景には線、文字は歪んでたりしません。

画像にはJPGを使用していますが、背景にも文字列にもコーティングを加えないで表示すると
簡単に解析できてしまうものなのでしょうか?

たまになんて書いてあるのかわからないくらい雑な画像認証とかありますけど
不便なのでそこまでぐちゃぐちゃにしたくありません。
どこまで画像をコーティングすれば解析できないのかを少しずつ画像編集していきたいと思ってます。
どのように解析すればよろしいのでしょうか?
文字に角度はついているのでしょうか??

実物を見ていないのでなんともいえませんが、もしホントに何も工夫をしていないのでしたら、OCRソフトを使えば簡単に解読できてしまうような気がします。。。
むしろ、コンピュータに読まれないために、分かりにくくしているので、それをしなかったらコンピュータに読まれてしまいますよね・・・

どこまでか、といわれると専門家ではないでよく分かりませんが、表示される文字を日本語にするだけでも若干の違いはあると思いますよ。

あと、時々出てくる「解析」とは、どういった意味での解析なのでしょう?

[hr]でも、ホントになんて書いてるのか分からないくらいの画像認証ってありますよねwww

Re: HTTPレスポンスから画像を解析

Posted: 2010年12月23日(木) 12:58
by YuO
プログラムによる自動投稿対策だと思うので,簡単な解析,という点だと,OCRをプログラムから呼び出すことが考えられます。
その方法として,一番簡単なのはOffice 2003/2007のMODIを使うことでしょう。
Office 2003/2007のDocument Imagign機能をインストールすると,COMコンポーネントとしてOCR機能が使えます。
e.g.) まちみのな::C#で文字認識を行う

Office 2010だと,OneNote 2010に統合されてしまい,プログラムから呼び出しにくくなった感もありますが……。
Microsoft Office Document Imaging (MODI) の機能を回復する代替の方法

これらのOCR,CDの歌詞入力が面倒なのでスキャナから読み込ませたブックレットの文字列を解析させていますが,
明朝やゴシックなどの系統だと結構な精度で解析できます。
手書き系の文字になるとだいぶ厳しいですが,それよりも文字の背景が写真で文字が背景に溶け込むような場合の方が解析に失敗しやすいです。
# その場合,人も読めないのですが……。


MODIがなく,OneNote 2010も持っていないのであれば,Office Home and Business 2010のトライアル版を使ってみるのも良いでしょう。
Microsoft OneNote 2010 - Microsoft Office > Office 2010 をお試しください > > 試してみましょう
期限付きですが,「OCRでどこまで解析ができるか」のひとつの指標にはなると思います。

Re: HTTPレスポンスから画像を解析

Posted: 2010年12月23日(木) 23:31
by ポム
いろいろとありがとうございました。
怖いので文字を斜めにしたり背景に線を入れたりしたいと思います。
一応教えていただいた
Office Home and Business 2010のトライアル版
使ってみます。