内部境界で分割された輪郭断片のマージ救済は fill 比とギャップの厳しい閾値で誤結合を防ぐ
画像処理
設計判断
OpenCV
アルゴリズム
知識
判断
対象内部に端まで達する線や色境界があると、二値化・エッジベースの輪郭検出では対象が複数の断片に分割され、各断片が期待アスペクト比のフィルタで棄却されて検出ゼロになる。この場合、断片ペアの合成矩形(union)が期待アスペクトに一致するならマージ候補として救済する後処理が有効。
判断基準
- 真の分割断片は互いにほぼ密着(ギャップ≈0)し、合成矩形をほぼ埋め尽くす(fill 比≈1)。この性質を利用し、ギャップ許容は合成サイズの数%、fill 比は 0.85 以上のような厳しい閾値にする。緩い閾値(例: fill 0.6、ギャップ 15%)にすると、近くに並んだ別オブジェクト同士が誤結合され、複数オブジェクトのシーンで検出数・位置が壊れる回帰が起きる。
- fill 比の計算では断片同士の交差面積の二重加算に注意する。面積の単純加算を union 面積で割ると、重なりの大きいペアで比が 1 を超えて不当にゲートを通過する。交差面積を引いた実カバレッジで計算する。
- 片方がもう片方に包含されるペアの union は元候補の複製にしかならないため除外する。同一形状の合成矩形の量産は、後段の高価な判定(テクスチャ・ピント等)前に IoU で重複排除する。
- 合成矩形から作った矩形コンターは形状スコアがほぼ満点になり形状フィルタを素通りする点に注意し、救済候補にも内容ベースの判定(内部テクスチャ等)を適用する。
検証方法
分割が起きる実写サンプル(内部に線・色境界を持つ対象)で全体が1件検出されること、および複数オブジェクトが近接して並ぶサンプルで誤結合による検出数・位置の回帰がないことを両方テストする。救済系の変更は「救えたか」だけでなく「壊していないか」の回帰が必須。