"画像"で掲載される接触確認アプリ(COCOA)の利用状況を解析する / Tesseract


厚生労働省から”画像”で発表されるCOCOAの利用状況を解析するProgramの構築

はじめに

  • 私自身、接触確認アプリ(COCOA)のダウンロード数と陽性登録数の推移をグラフでまとめている。毎日18:00頃に公式サイトを訪れデータをGoogle Sheetに書き込み、グラフ作成をするという作業をしていた。
  • しかし、この手間が大変になってきたため、単純作業を自動化できないかと思ったのがきっかけである。
  • 厚生労働省から掲載される情報はテキストが画像化されており、このデータを自動解析できれば全体の自動化も可能だろうと思い、試しに制作した。

厚生労働省 COCOA特設サイト(8/11現在)

今回のポイント

  • 掲載される情報は、テキストデータで掲載されていないため、画像を取得し文字認識(OCR)をする必要があった。そこで、OCRツールの候補に挙がったのが「GCP Cloud Vision」及び「Tesseract」である。

  • 今回は、TesseractがPythonでPyOCRのライブラリを用いることで手軽に利用できるとあったため、こちらを採用し、認識精度についても検証していく。今後はCloudVisionも利用してみて、双方の文字認識の精度についても検討したい。

実装した機能(すべてPythonで構築)

  • スクレイピング機能
  • OCR機能
  • データ抽出機能
  • Googleスプレッドシートへのデータ書き込み機能
  • Googleスプレッドシートで作成されたグラフの画像取得機能(Tweet用素材)
  • TwitterへCOCOAの利用状況をグラフを添付し投稿する機能(API未取得の為、動作未確認)

スクレイピング機能に関して
 本プロジェクトは厚生労働省のrobot.txt(https://www.mhlw.go.jp/robots.txt)によるクローラ許可範囲や,利用規約・リンク・著作権等の規約に則り制作している。
 アクセス先サーバへの負担軽減やDoS状態を防ぐため,スクレイピングプログラムは公式情報が更新される時間帯(17:00-18:30)のみ作動させている。この時間帯の中で,プログラムは作動し,更新が確認されるまで再アクセスを行う。再アクセスのリトライ間隔は余裕を持たせた「5分」に設定している。

Tesseractとは

多様なオペレーティングシステム上で動作するオープンソースソフトウェアであり、Apache License 2.0 の下で配布されている。文字認識を行うライブラリと、それを用いたコマンドラインインターフェイスを持つ。バージョン4.0からは、従来の認識エンジンに加え、LSTMベースのニューラルネットワークによる認識エンジンが搭載されている。開発元:Google
--wikipediaより

実行したOCRの結果

  • OCR処理前(サイトから取得した画像)
  • OCR処理後
接触確認アプリは、iOS・Androidともに、現在、「1.1.2」を配布しています。
古いバージョンのアプブリをご利用の方は、App StoreまたはGoogle Playから「接触確
認アプリ」を検索いただき、 アップデートをお願いします。

ダウンロード数は、8月7日17:00現在、合計で約1.205万件です。

・iOS、Android両方の合計の数になります。

・ダウンロード後に削除し、再度ダウンロードした場合は、複数回カウントされる場
合があります。

陽性登録件数は、8月7日17:00現在、合計で165件です。

OCRの認識精度は高く安定

誤字は、2行目の「アプリ」を「アプブリ」と認識している点のみ。そのため、データを抽出する際のダウンロード数や、陽性登録数のデータ抽出には支障がないことが分かった。複数枚のOCR処理を行ったが、かなり安定しておりデータ抽出は正確に行われていた。

まとめ

  • 本システムは、Twitter投稿機能以外については正常に動作しており、データ抽出からグラフの自動作成などにより、更新作業の簡素化を実現することができた。
  • 現在は、ツイートの投稿のみ手作業となっている。
  • 課題として今後は、TwitterAPI交付後にツイート機能も稼働させて、解析から情報発信まで自動化させたいと考えている。

Google Sheetより自動取得した、ダウンロード数と陽性登録数の推移のグラフ

※誤った記述が存在する可能性があります。ご注意ください。

本プロジェクトの詳細について

出典・参考リンク