バイセル Tech Blog

バイセル Tech Blogは株式会社BuySell Technologiesのエンジニア達が知見・発見を共有する技術ブログです。

バイセル Tech Blog

生成AIのOCRを用いた切手集計業務の改善

はじめに

こちらはバイセルテクノロジーズ Advent Calendar 2024の24日目の記事です。
昨日は今井さんによるシステムリプレイス時のアプリケーション開発における課題と解決策でした。

こんにちは。テクノロジー戦略本部DX推進部の馬場です。
私は現在、技術やITツールを用いて社内の様々な業務プロセスの効率化と改善を行なっています。

今回、OCRを用いて社内の切手集計業務における技術的負債からの脱却・効率化を行いました。
本記事では、生成AIを活用した業務の効率化やOCR制度の向上のための工夫をご紹介します。

切手集計業務の課題

バイセルにおける切手集計業務というのは、買取をしてきた切手を1買取案件毎、1日平均で150案件ほどを種類や額面毎などに集計し、在庫の確定をすることです。
今まで長年にわたり変わらずに運用されてきた業務フローで、さまざまな課題を抱えていました。

改善前の切手集計業務

今までは、10年以上前に構築されたExcelマクロを使用しそれに依存した業務フローでした。手動での入力作業や、目視による複数の確認作業が発生し、多くの時間が取られるとともに集計・転記ミスが多く発生していました。また、データがExcelに閉じているためその後の集計・在庫管理・データ分析などへの活用がしずらい状況でした。具体的には以下のような流れで集計業務を行なっていました。

  1. 買収1案件ごとに切手の種類や額面・枚数を集計し、紙の集計シートに記入
  2. 1案件ごとにExcelファイルを作成し、紙集計シートを見ながらデータを手入力
    • 例: 「12/24 切手 1」「12/24 切手 2」「12/24 切手 3」...
  3. Excelマクロを使用し、1買収日単位で全案件をさらにExcelファイルにまとめる
    • 例:「12/24 切手 1」「12/24 切手 2」→「12/24 切手集計」
  4. 1買収日のExcelファイル→スプレッドシートに転記
    • 以降の業務ではスプレッドシートを使用しているため

改善案の検討

技術的負債であるExcelマクロからの脱却・集計作業の効率化を図るために、以下の3つの改善案を検討しました。

紙集計シートを廃止し、最初からデータを入力する

紙集計シートを使わず、データを直接デジタルで入力する方法を検討しました。この場合、15名以上のアルバイトスタッフに入力用デバイスを支給する必要があります。しかし、手作業での集計スピードが非常に速い現状では、デバイス入力に切り替えることでコスト対効果が悪いという結論になりました。

切手そのものをOCRで読み取り

切手自体をOCRで直接読み取る方法も検討しましたが、この方法では切手を並べる、写真を撮るといった新たな作業が必要になります。また、技術的な精度の課題や切手データベース(切手マスタ)の構築・整備が必要です。1日平均で150案件ほどの大量の切手を処理するには非効率という結論になりました。

紙集計シートに記入後、OCRで読み取る

現在の紙集計シートでの運用を維持しつつ、記入後画像ファイルにしOCRでデータ化する方法を検討しました。この方法では、複合機を用いて紙の集計シートをスキャンし、その画像ファイルをOCRで読み取ります。ただし、OCR結果が100%正確ではないため、読み取り結果を確認・修正する作業が必要です。

検討の結果「紙集計シートに記入後、OCRで読み取る」が今回の集計作業に効果的であると考えました。しかし、作業時間の削減効果はOCR精度と修正量に依存するため、OCR精度が重要な課題となります。まずはOCRの精度検証を行いました。

OCR精度検証とチューニング

OCR技術選定

OCRの精度検証をするにあたり、開発時に複数の候補技術を比較検討しました。検討したのはGPT-4o、Cloud Vision API、Document AIの3つです。いずれも費用には大きな差はありませんでした。

今回の要件は、手書きの数字や文字列を認識してデータ化することが中心であり、GPT-4oは結果をシンプルなJSON形式で返してくれる点が優れていると判断しました。そのため、まずGPT-4oを使用して精度を検証することにしました。

最初の検証段階では90%ほどの精度でしたが、OCRの結果に一定の傾向が見られることが分かり、さらに精度を向上させる余地があると判断しました。

OCRチューニング

OCR精度の向上には、デジタル面からのアプローチはもちろんですが、実際の現場が絡むものに関してはアナログ面からの改善も精度の向上に大きく貢献します。今回、デジタル面とアナログ面の両方から様々な改善を行いました。

画像ファイルの解像度

  • 複合機スキャン時のPDF解像度を600dpiに固定し、quality90で高画質jpgに変換しました。

情報の関連性を明確にする

  • 画像データを座標pxで分けて関連情報だけを読み込ませるようにしました。
    • 紙集計シートを座標指定しやすいフォーマットに変更
    • 画像を分割し、ブロック毎にプロンプトを適用

プロンプトで情報の内容・形式を固定する

  • 名前: 選択肢を提示し、その中から該当者を選ぶ形に変更。名前はカタカナで処理。
  • 日時: 日付や時間であることを明確に指定。
  • 数字: 桁数や範囲を明確に指定。
  • チェックボックス: チェックの有無を認識させ、出力結果を2択に固定。
  • プロンプトとリクエストパラメータの両方を利用し、安定したJSONレスポンスに統一。
// プロンプト例
SHOW the result in JSON format as: {"rows":[{"No":"","額面":"","連結枚数":"","合計枚数":""}]}
// リクエストパラメータ
ResponseFormat: &goopenai.ChatCompletionResponseFormat{
        Type: goopenai.ChatCompletionResponseFormatTypeJSONObject,
},

その他の改善

  • 合計金額などの自動計算が可能な項目を省略し、情報量の削減を実施。
  • コントラストを上げる: ボールペンの太さを太くし、APIリクエスト前に画像コントラストを1.5倍に加工。
  • 空欄や記号を許容しないよう、出力結果の変換処理を追加。
    • 例: スラッシュ・パイプ文字を「1」に変換、スペースやドット、カンマ等の削除。

今回は実施しませんでしたが、未記入のテンプレートの画像ファイルと一緒にAPIリクエストすることで、記入されたものとの差分を取るなども大きく精度を上げることが出来ると思います。

様々なチューニングを繰り返した結果、OCRの精度は飛躍的に向上しました。初期段階で90.05%だった精度は改善を重ねるごと上がり、最終的には99.93%にまで達しました。

改善後の業務フロー

OCR精度をクリアしたことで、切手集計業務において新しいシステムを導入しました。具体的な業務フローは以下のように変更しました。

  1. 買収1案件毎に切手の種類や額面・枚数を集計し、紙の集計シートに記入
  2. 紙集計シートを複合機でスキャンして画像ファイル化
  3. システムへアップロードしOCRで読み取り
  4. OCR結果をチェック・修正

導入効果

今回システム導入により、OCRを活用した業務効率化が実現され、以下のような成果を得ることができました。

定量効果

アルバイトスタッフの業務においては、74h/月の削減が実現しました。

これは、自動計算項目を導入したことで紙の集計シートへの記入時間が短縮されたことや、案件ごとに手動でExcelに入力していた作業がOCRに置き換わったことが要因です。

社員の業務でも、35h/月の削減することが出来ました。

スプレッドシートへの手入力作業が完全になくなったことで、作業時間が短縮されただけでなく、これまで発生していた集計ミスの原因を追求する時間も削減できました。

定性効果

これまで必要だった目視による入力や複数回の確認作業が不要となったこと、自動計算へ移行したことなどから、集計ミスを大幅に削減することができました。

また、技術的負債であったExcelマクロを廃止することで、将来的なシステム運用のリスクも軽減しました。

最後に

AIを活用した業務改善では、特にOCRのような技術の場合、デジタル面だけでなくアナログ面での工夫が求められます。今回のプロジェクトでは、地道な検証と改善の積み重ねにより、ほぼ完璧な99.93%にまで向上させることができました。この成果は、デジタル技術と実際の現場運用をうまく融合させた結果だと考えています。

本記事がOCR精度の向上や、生成AIの活用、さらにはシステムへの組み込みについての参考になれば幸いです。

バイセルではエンジニアを募集しています。少しでも気になった方はぜひご応募お待ちしています。

herp.careers