pythonでOCRを使用しドラッグ領域の翻訳 ~①事前検討~

python,ドラッグ領域の翻訳,python,tkinter

今回はOCRを使用し、マウスでドラッグした領域を即時翻訳してくれるようなツールをpythonで作成してみます。

業務でいろいろな英文と向き合う機会はあるのですが、今回は個人的にアメコミを読みたいがために作りました。

MCUが話題になる前は翻訳本もあまりなく、専門店や通販で洋書を手に入れるしかありませんでした。

現在、様々なアメコミ映画がヒットするようになってから、需要も増えその辺の書店でもアメコミの翻訳本を見かけるようになりました。

しかし、それでもまだまだ販売されている翻訳済みの本は、各ヒーローの壮大な歴史のごく一部です。

そうなるとやはりコアなファンを自称するためには洋書を手に取る必要があります。

事前準備 (アメコミの購入)

今回はkindleで無料で購入できるスポーンの1巻を使用します。

スポーンはマーベル、DCとも出版社が異なるマイナーなヒーローではありますが、私が初めて手にしたアメコミ翻訳本の一つです。

まさにダークヒーローというビジュアルがとてもかっこよく、実写映画をまたやってほしい。

処理の概要

ざっくりとした処理の流れは以下を想定しています。

① ツール起動
② 領域取得画面を表示                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
③ 翻訳開始ボタン押下 
④ 翻訳領域取得 (複数領域を選択可能)
⑤ 領域取得画面を閉じる
⑥ 画像作成
 OCRで画像から英文を抽出
⑧ 翻訳実施 (→選択した領域の数だけ⑥、⑦、⑧を繰り返す)
⑨ すべての翻訳結果を画面に表示する

④における翻訳領域取得のイメージは以下です。吹き出しの部分をユーザがドラッグすることで、翻訳対象の英文を抽出できるようにします。また、複数個所のドラッグ、翻訳を同時にできるようにもします。

使用するライブラリ、ソフト

使用する主なライブラリは以下になります。詳細については関連記事にて各種使用方法など説明していきます。

  • PySimpleGUI → メインのGUI
  • tkinter → PySimpleGUIで対応しきれないGUI処理(画像のドラッグなど)
  • pyocr → テキストの読み出し(以下Tesseractを呼び出すためのAPI)
  • googletrans → 簡単に翻訳できるライブラリ

別途必要なソフトです。PCにインストールする必要があります。こちらも詳細については別記事参照。

  • Tesseract → 画像ファイル中の文字を、テキストファイルとして読み込む、オープンソースのOCR エンジン