Skip to content

ssashir06/SignatureTool

Repository files navigation

About

用紙に記入された手書きサインの識別を行うプログラムです。

環境にもよりますが、作業現場において労働者が用紙に署名をして作業の記録を付ける機会があります。
紙媒体を用いた多数の作業記録を、作業後に集計するのは労力が必要となります。
そこで、効率的な紙媒体の電子化と自動集計の効率化を目指します。

*利用条件
##同一の労働者が複数回のサインを行う
##用紙のフォーマットがすべて共通である

注: OCRを行うわけではなく、労働者ごとにサインを集めたうえで学習します。

実現方法

署名の集計

半手動で署名を判別し、記入者ごとに作業量を集計します。
ここでの制限事項としては、用紙の所定欄に署名されているのを識別するとします。
識別の方法としては様々考えられますが、今回はSURF特徴量を利用し、登録されている署名と照らし合わせる事とします。
署名の特徴量はアプリケーションの初回利用時には登録されていないため、人力で識別する必要があります。
署名を人力もしくは自動で識別したうえで、必要ならば特徴量を新たに学習させます。
アプリケーションの利用を重ねて学習が進むごとに署名の識別が自動化されやすくなります。

紙媒体の電子化

スキャナを用いた方法と、ウェブカメラを用いた方法を考えます。
ウェブカメラを利用するのは、用紙が常にスキャナを通して電子化できるとは限らないためです。
カメラで撮影された画像を適切に変形し、スキャンした用紙と同様の画像として取り扱います。
カメラからの取り込みの際には、基本的な画像処理を行います。
はじめに、画像の前景と背景を決定するために、メディアンフィルタを用いて平滑化を行います。
この時、用紙は彩度が無く、かつ用紙は彩度があるテーブルに配置されていると仮定し、HSV変換を行います。
次に、彩度を元とした直線検出とk-Meansクラスタリングによる4辺検出などを行います。
最後に、用紙の形状を判別した上で、ホモグラフィ変換によりA4サイズの画像を得ます。

操作方法

ウェブカメラを接続した状態で、_SignatureCountingTool.exe_ を起動します。
接続がない場合はカメラからの取り込みはできません。
利用するフォームは4種類あります。

SignatoryEditor フォーム

署名の記入者の一覧を設定するウィンドウです。
IDとNameはそれぞれ重複が許されません。
IDは整数です。

ImageListing フォーム

取り込んだ画像一覧と画像のプレビューが表示されます。
署名欄の追加や削除をし、署名欄の位置情報が表示されます。
また、画像ごとの署名記入者の集計をファイルに出力します。

Scan フォーム

ImageListing フォームからスキャンを開始した際に表示されます。
接続されたウェブカメラの映像と、検出された紙の位置が表示されます。
スキャンボタンを押すと検出されている紙を取り込みます。

Signatures フォーム

ImageListing フォームで選択された画像に含まれる署名を列挙します。
マッチングを開始すると、候補順に記入者のNameが表示されます。
正しい記入者を設定するには、Nameの候補選択肢から選びなおす必要があります。
Determine列にチェックを入れると、その列の記入者が決定されます。
Use as a Trainer列にチェックを入れると、その列の署名が自動認識のための学習材料となります。

使用上の注意

このアプリケーションは開発段階であり正しく動作する事を保証しません。
また、利用の効率や識別の信頼性は検証されていません。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published