社内SEの話

日々起きたことの記録用

【製造業DX】紙からデータ読み取りする方法

こんにちは、はじめまして、めじろです。

DX化が叫ばれ、企業では様々な努力や工夫をされているかと思います。

DX化の最大の障壁が紙媒体の扱いです。

紙をデジタル化しようとするとOCR技術が真っ先に思い浮かびますが、精度が課題になります。

手書きをOCRした場合、ほぼ使い物になりません。

それでもデジタル化しなければなりません。

この場合どんな紙をどのようなデータにするかという要件を確認する必要があります。

流石に手書きデータをシステム入力するなどの処理は現実的ではありませんが、事前に印刷された用紙に手書きをし、作業終了時に取り込むと、ドキュメント管理サービスに自動保存するといった事は可能になります。

実は製造業では意外にあるあるな場面になります。

製作した品質情報は残す必要がありますが、システム化も難しいので手書きのチェックリストが今もなお残っています。バインダーで保存することもできますが、書類の量が膨大になるので、スキャンしてドキュメント管理サービスに登録する必要があります。

そしてドキュメント管理サービスに登録する人を専任を配置しているなんて会社は結構あると思います。

登録業務に対して改善策を講じたいと思います。

まず用紙に印刷するときに専用のQRコードを埋め込んでおき、作業者は手書き記入し、終わったらスキャナで取り込みまでおこなう。

その後システムがQRコードから情報を判別して、ドキュメント管理サービスにデータを登録する。

最後に担当者が正常に取り込めているか確認で終わらせる事が可能です。

こうすれば業務フローも変えずに、取り込み専任者の負担を軽減しかつミスも減らせます。

プログラム開発用のチェックリストを作成。

適当に作ったチェックリスト

Excelは簡単にQRコードを作る事ができます。保守性が高いかは今回は省いています。

このQRコードは区分コードや品目コードなどの情報を連結したQRコードになります。

作り方次第では様々なデータを作る事ができますが、いくつか注意点があります

QRコードはそこそこ大きく

QRコード化する文字はなるべく少なく

こんなところでしょう。注意点を考慮しないと正常に読み取りにくかったりすると思います。

この用紙を印刷して、作業者が記入し、スキャナーで取り込み先は決めたフォルダに取り込みます。

そしてこれから述べるプログラムを定期的に実行し、QRコードを読み込みをして決めた処理をします。

前置きが長くなりましたが、これらの処理をPythonで処理します。

Pythonで実装

インストール

pip install pdf2image

pip install pyzbar

popplerのインストール

PDFのページを画像化させるにはpopplerが必要になります。

windowsの場合popplerはpipでインストールできないため、ダウンロードしてパスを通す必要があります。

Githubで公開されているので、Githubからダウンロードします。

github.com

ダウンロードし展開します。

展開後はわかりやすい場所に配置します。

今回はpyファイルと同じ場所で展開しました。

Pythonプログラム

from pdf2image import convert_from_path

from pyzbar.pyzbar import decode

images = convert_from_path("CheckList.pdf\",poppler_path =\".\\poppler-22.04.0\\Library\\bin\")

for i in range(len(images)):

    data = decode(images\[i\])

    print(data\[0\]\[0\].decode(\'utf-8\', \'ignore\'))

※パスの部分はプログラムから修正を加えたものなので、任意に直してください

実行

QRコードの値が読み取れました

QR部分はSplitしてコードを分割後、各々処理したいプログラムを作成させればいいと思います。

作ってみて

特に難しい事なくプログラムを作れましたので、ローンチは難しくないと思います。

本番運用後に問題になるのはQRコード部分が汚れたり、欠損したりして正常に読み取れない事が予想されます。

汚さないでと注意して運用するしか方法がないのが一番の問題な気がします。

QRコードを使って紙媒体をデータ化させる一つの手段としても良いかも知れません。