・処理工程の案
スクリーンショット撮影、OCR処理、chatGPTによる修正の工程がありますが、それら処理を一括でやって次の処理をするか、撮影・OCR・修正を1ページずつやる1サイクルごとにするか迷いました。
結果、処理を一括にすることにしました。
理由はデバッグが簡単だと思ったから。
全ての処理を行い、それを繰り返していく1サイクル形式だとデバッグが面倒だと思いました。
・画像のOCRの不具合
文字入りの図表の文字を読み込んでしまい、意図する動作になりません。
図表だけOCRしないということが難しいです。
今考えているのは、画像をそもそもOCRの対象にしないことです。
読み込んでしまってもchatGPTに直させればいいというやり方はだめでした。
OCRの対象から除外については以下を考えています。
・kindleの選択を利用
kindleで選択されると画像も文章もグレースケールで覆われます。
これを利用して、大きいグレースケールを画像と判断しOCRから除外します。
問題は、文章1行より縦の高さが低い画像があったとき除外できないことです。
さらに、ちゃんと選択できるかということです。
・類似性を利用
kindleで小さいフォント、大きいフォントに変更しそれぞれスクリーンショットをとります。
そして比較して同じ画像なら除外します。
問題は、余白も巻き込むこと、まったく同じなら文章も除外されること。
例えば、
「ありがとうございます」が小さいフォントで1行で表現されていて、
フォントを大きくしたら、
「ありがといます
ございます」
みたいに2行になります。
これは合致しないので除外されません。
しかし、「ありがとう」という短い文章なら、
フォントの大小で大きくしても、
「ありがとう」のままで、合致するとして除外されてしまいます。
・色のピクセル量を計測
画像は文字に使われている黒以外のものが多いはず。例えばオレンジなど。
それらを計測してその一帯は元々の画像とみなし、OCR対象から除外します。
ただしそれだと白や黒の画像は見逃されてしまいます。
・文章選択の問題
選択の動作で問題があります。
文章の選択で、カーソルがある程度離れると最後の行の選択が解除されてしまいます。
例えば以下のように選択できていたとします。
●:選択箇所
△:マウスカーソル
◯:選択されていない箇所
●●●●●●●●●●
●●●●●●●●●●
●●●●●△
カーソルを右側に動かすと以下のようにその行の選択が解除されてしまいます。
●●●●●●●●●●
●●●●●●●●●●
◯◯◯◯◯ △
このため、カーソルで全部を認識するのは難しいです。
また、文章を選択するとコピーなどのポップアップが表示されてしまいます。
ただ、このやり方なら大きな選択範囲は画像ということがわかるので、それで画像をあぶり出すことはできます。