【要約】OpenCVとAzure Document Intelligenceで書類の印鑑・サインを自動検出してみた [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
- ・印鑑検出時、文字の塗りつぶしや罫線との誤検知が発生する。
- ・サインは形状が多様であり、単純な形状比較では検出が困難である。
- ・OCRがラベルを検出できない、またはAIの手書き判定に失敗する場合の検知漏れリスクがある。
// Approach
1.印鑑検出(3段階構成):
- ・Stage 1: HSV色空間で朱色を抽出し、密度と弧の連続性で評価。
- ・Stage 2: OCRで「印」等の文字を特定し、その周辺をHough変換で解析。
- ・Stage 3: ページ全体にHough変換を適用し、密度評価とNMSで重複排除。
2.サイン検出(多層フォールバック):
- ・Azure DIの
isHandwrittenフラグと人名判定ロジックlooks_like_nameを活用。 - ・失敗時は、罫線を除去したROI内の連結成分解析による画像ベースの判定へ移行。
// Result
ルールベースとAIの併用により、幅広い書類への高精度な検出を実現。デバッグ画像(page.jpg等)による検証体制を構築。今後はYOLOv8等の物体検出モデルへの移行により、複雑なレイアウトへの対応を目指す。
Senior Engineer Insight
>
実戦投入を強く意識した堅牢な設計である。全てをAIに委ねず、OpenCVによる幾何学的検証を組み合わせることで、誤検知の抑制とコスト最適化を両立している。特に、サイン検出におけるフォールバック設計は、システムの可用性を高める上で極めて重要だ。ただし、ring_density や arc_ratio といった多数の閾値管理は、ドキュメントの多様化に伴うメンテナンス負荷(パラメータ・ドリフト)を招く恐れがある。長期的には、蓄積したログを用いたディープラーニングへの移行が不可避だろう。