【CloudVisonAPI】シフト表からカレンダーに予定を入れる作業を自動化したい【Python】


はじめに

実装したアプリケーションについて、使い物にはならなかったのですが、学びにはつながったため知見を共有します。主にGoogle Cloud Vision APIに関する学習成果が中心です。

プロジェクト概要

月単位のシフト表がカレンダー形式PDFで共有されていたため、画像認識技術を活用して自動化を検討。個人のカレンダーに自動取り込みする仕組みを構築しようと試みました。

実装機能

  • PDFからJPEG形式への変換プログラム
  • Google Cloud Vision APIを使用したテキスト抽出
  • 抽出テキストから個人シフト情報を抽出・リスト化

主な課題

元のPDF画質が低解像度で、一部の文字がつぶれていたり、薄くかすれてしまっている状態でした。結果として、APIによるテキスト認識精度が低下し、カレンダー形式の複雑な構造からシフト情報のみを抽出することが困難になりました。

開発環境

  • Windows 10
  • Python 3.11.3
  • Poppler 0.86.0 x86

技術的知見

PDF変換: pdf2imageライブラリを使用。DPI値で解像度調整可能で、高値指定により精度向上が期待できます。

Vision API設定: Google Cloud Consoleでプロジェクト作成、サービスアカウント設定、JSON認証キー生成、環境変数GOOGLE_APPLICATION_CREDENTIALS設定が必要です。

今後の改善案

GCS(Google Cloud Storage)活用でPDF直接処理や、pdf2image以外の高品質変換方法の検討を提案しています。