You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何精准识别网格单元格内的4类卡片与空单元格?

网格板件卡片识别解决方案

场景说明

带网格的板件每个网格单元格可放置以下卡片或留空:
Card0/Blue
Card1/White
Card2/Yellow
Card3/Gourney

当前已完成板件图像变换处理,可独立裁剪出每个单元格区域,先后尝试直方图比对、模板匹配方案识别效果较差;后续采用平均HSV值区间判断的方案存在分类不稳定问题,典型问题为白色卡片的Hue值检测结果在350、1之间跳变,无法稳定分类。


现有方案失效核心原因

  • 直方图比对、全尺寸模板匹配对光照波动、裁剪位置偏移、卡片轻微印刷色差的容忍度极低,只要实际拍摄图像和模板有轻微偏差就会匹配错误
  • 直接使用全图平均HSV做判断存在两个硬伤:一是Hue通道是环形取值(0和360对应同一个红色端点,350和1本质属于相邻色相区间,线性区间判断必然会把同色分到两类);二是白、灰、黑这类低饱和度像素的Hue值本身是无意义的随机噪声,混入统计会直接带偏整体结果。

可直接落地的稳定识别方案

1. 单元格预处理消除基础干扰

  • 对裁剪得到的单元格图像,先裁掉边缘10%~15%的区域,仅保留中心主体部分,彻底避开网格线、单元格边框、卡片边缘阴影、印刷白边的干扰
  • 对保留的中心区域做光照归一化:将RGB三个通道的像素值做线性拉伸,把通道内亮度最低的0.5%像素映射为0,亮度最高的0.5%像素映射为255,抵消环境光强弱变化带来的整体明暗偏差

2. 优化HSV统计逻辑,解决数值跳变问题

不要直接计算全图平均HSV,先筛选有效像素再做分类统计

  • 逐像素判定有效性:将饱和度低于10%、亮度低于15%、亮度高于95%的像素标记为无效像素——这类像素对应高光、阴影、白色印刷区域,本身没有明确色相,Hue值为随机噪声,不参与后续统计
  • 对剩余有效彩色像素做环形Hue区间适配:判定色相时不要用线性区间切割,比如红色邻域同时覆盖Hue值[0,20]和[340,360]两个段,从根源解决Hue值在0/360边界跳变导致的分类错误
  • 基于三类统计特征做分类,不要仅依赖平均值:
    • 无效像素占比:占比超过90%时,直接判定为白色卡片或空单元格,二者可通过平均亮度区分:空单元格为板件底色,平均亮度比白色卡片低15%以上
    • 有效像素的Hue值众数(不要用平均值,平均值易被少量杂色拉偏):众数落在220250区间为蓝色卡片,落在4570区间为黄色卡片
    • 有效像素占比:带图案的旅程卡彩色像素占比在30%~70%区间,远低于纯色蓝、黄卡片85%以上的彩色像素占比,且旅程卡的Hue值不会集中在单一区间,会出现多个明显的色相峰值,可和纯色卡明确区分

3. 低置信度兜底方案

当上述规则判断的置信度低于阈值(比如两类目标的特征差值小于10%),可采用轻量匹配兜底,不需要部署重模型:

  • 将预处理后的单元格中心区域缩放到16*16分辨率的灰度图,和提前存储的5类标准样本(空、蓝卡、白卡、黄卡、旅程卡)计算像素差的绝对值之和,取差值最小的类别作为结果即可。该方法比全尺寸模板匹配运算速度快两个数量级,抗偏移、抗光照干扰能力更强,足够覆盖所有边缘场景。

内容的提问来源于stack exchange,提问作者Marvin Gornicec

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 14:36:13