【要約】印鑑検出の誤検出を潰す ─ Hough円変換からRANSAC円フィット+接線一致度へ [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発チームは、書類の押印・サイン検出機能において、実務レベルの精度に達しないという課題に直面した。従来のHough変換を用いた手法では、以下の問題が発生していた。
- ・Hough変換が点の位置のみを評価するため、丸囲み文字や網掛けを誤検出する。
- ・全ページを探索するフォールバック処理が、誤検出を増幅させていた。
- ・「印鑑の有無」の判定のみで、押すべき箇所への押印もれを数える仕組みが欠如していた。
// Approach
開発チームは、検出と判定を分離し、形状の連続性を厳格に検証する新しいプロセスを構築した。具体的には以下の手法を採用している。
- ・OCRのword単位座標を利用し、押印すべき「印」の数を特定する。
- ・赤色印は、YCrCb色空間と外枠連結方式により、1つの塊として抽出する。
- ・黒色印は、RANSACによる円候補抽出と、接線一致度による吸着を行う。
- ・弧長比検証により、円周上のインクの連続性を直接測定し、偽円を排除する。
- ・探索範囲を「印」マーカー周辺と署名欄に限定し、不要な探索を廃止した。
// Result
開発チームは、新プロセスの導入により、検証用サンプル100件において誤検出をゼロに抑えることに成功した。成果は以下の通りである。
- ・誤検出の削減により、押印もれ判定の信頼性が大幅に向上した。
- ・実行時間は、最適化により従来比約1.5倍に抑えられた。
- ・今後は、蓄積したデータを教師データとし、学習器による判定への移行を目指す。
Senior Engineer Insight
> 非常に実践的な改善だ。古典的な画像処理の限界を、接線一致度や弧長比といった幾何学的な指標の導入で突破している。特に、計算コスト増をキャッシュや枝刈りで制御し、1.5倍に抑え込んだ実装は、実運用を意識したプロフェッショナルな仕事だ。ただし、閾値のハードコーディングは、帳票様式の変更に伴う運用コストを増大させるリスクがある。将来的な機械学習への移行を見据え、検出結果を逐次保存して教師データ化する設計は、スケーラビリティの観点からも高く評価できる。