去年からプログラミングをコツコツ勉強しているフルハです。
現在は、とある問題を解決するためにサービスを開発しているのですが(アンケート調査にご協力いただいた皆さん、ありがとうございます)、その過程でGoogleの力を借りた画像からテキスト情報を読み取るプログラムが副産物としてできました。
画像からテキストを読み取る精度がどれほどのものか、遊戯王カードで試してみました。
#100DaysOfCode Day 55
【オリジナルサービス②の開発】
Google Cloud Vision APIを使った画像認識を作成。
「遊戯王」というトレーディングカードのテキストを読み取れるかテスト。
結果をTweetするといろいろな方がアドバイスや情報を下さったので、開発に取り入れますカタカタ(*^-^)ヘ_/. pic.twitter.com/SxlzlOPWjN— フルハ@1日1冊本を紹介 (@althyphen) 2019年2月19日
無事に登録し終えたので、試しに『遊戯王カード』のテキストを読み取れるかテストしてみました。
なかなかの精度でした(笑) pic.twitter.com/Qf6xbdZhYW
— フルハ@1日1冊本を紹介 (@althyphen) 2019年2月19日
画像認識プログラムを作って遊戯王カードのテキストを読み込ませてみた
やり方としては、Macのターミナルで動かして、ターミナル上に結果を出力するという流れになります。
さっそく読み込ませてみるのはこちらのカード「神の通告」です。
読み込ませた結果がこちら。
ところどころうまく読み取れていない部分もありますがかなりの精度…。
収録弾が付いている部分は漏れがありますが、8桁の識別番号はしっかりと読み取れています。
(そして、カードを置いているマットのTRAもしっかり読み取っていますw)
他のカードも読み取らせてみた
せっかくなので他のカードの読み取らせてみました。
読み取らせてみたカードはこちらの4枚。
- セイクリッド・トレミスM7
- セイクリッド・プレアデス
- ブラック・ローズ・ドラゴン
- フルハウス
セイクリッド・トレミスM7を読み込んだ結果
読み取る画像は下記の画像の状態で読み取らせました。(原寸大)
結果は…
ルビの部分も読み取ってくれている…。(そして若干「ヴェルズ」っぽい文章になった)
今度は、収録弾の部分は読み取れています。
そして、「光属性(ひかりぞくせい)」の部分は読み取っていないので、このことからイラストとテキストの色合いが近い場合は認識されないのでは?という仮説ができました。
セイクリッド・プレアデスを読み込んだ結果
読み取る画像は下記の画像の状態で読み取らせました。(原寸大)
セイクリッドデス(笑)
(…海外版新規の日本語訳かな?)
光り方の加工によって「プレア」が読み取られませんでしたw
あと、なぜか効果テキストの順番が変わっています。
収録団の部分や8桁の番号はしっかりと読み取れています。
ブラック・ローズ・ドラゴン(英語版)を読み込んだ結果
読み取る画像は下記の画像の状態で読み取らせました。(原寸大)
この時点で薄っすらと「名前の部分は読み取られなさそう…」という仮説がw
やはり名前の部分は光沢によりうまく読み取られていません。
しかし、名前部分以外のテキストはしっかりと読み取られています。
今回は、名前部分以外かなりキレイに読み込まれました。
フルハウス(英語版)を読み込んだ結果
読み取る画像は下記の画像の状態で読み取らせました。(原寸大)
今までの結果から、今回はテキスト部分での光沢がほぼないのでうまくいきそうな予感。
完璧(笑)
考察と今後について
いくつかの種類でテキストを読み取らせてわかったこと
- 絵(イラスト)と文字(テキスト)の判別があいまいな箇所は読み込みが甘い。
- 画像をそのまま読み込むため、光沢でテキストの部分が光っていたりするともちろん読み込めない。
- 画像内にある文字として認識できるものはすべて読み込む。
- 数字部分の読み込み精度は良い。
今後の展開としては
- 画像認識の甘い箇所があるので、画像を取り込んだ時に画像を補正するプログラムを追加。
- このプログラムをWEB上で公開して、画像をアップロードすると誰でも使えるようにする。
- 読み込み機能を使って、遊戯王カードを読み込むとカードの相場情報が表示される。
ようにすると面白いかなと思っています。
思わぬ副産物として出来上がったプログラムでしたが、実際に使ってみると面白かったのでこれは引き続き開発を進めて公開したいと思います。
それでは、最後まで読んでいただきありがとうございましたカタカタ(*^-^)ヘ_/.