图像预处理:优化原始扫描数据
灰度化处理:将彩色图像转换为灰度图,突出标记与背景的亮度差异(如铅笔填涂区域灰度值较低)。
二值化转换:通过设定阈值(如灰度值低于 128 视为标记),将图像转化为黑白二值图,简化后续计算(例:填涂框内黑色像素占比≥30% 视为有效标记)。
噪声过滤:利用中值滤波、高斯滤波等算法,消除纸张污渍、折叠阴影等干扰(如去除面积小于 10 像素的孤立黑点)。
几何校正:通过检测选票边缘的定位标记(如 registration marks),校正因传送歪斜导致的图像旋转或缩放,确保标记位置与预设模板对齐。
特征提取与判断:识别选民的选择意图
根据选票标记类型(填涂、勾选、手写符号等),算法采用不同的特征提取策略:
(1)填涂标记识别(常见场景)
面积占比法:计算填涂框内黑色像素占比,超过阈值(如 30%-50%)则判定为有效选择。
例:选民使用 2B 铅笔填涂候选人 A 的方框,扫描后该区域黑色像素占比达 45%,算法判定为有效投票。
边缘检测法:通过 Canny 或 Sobel 算子检测填涂区域的边缘轮廓,与标准填涂形状(如矩形、圆形)比对,排除不规则标记(如笔尖打滑形成的短线)。
浓度梯度分析:填涂越均匀的区域,灰度值分布越集中,算法可通过统计像素灰度方差来区分 “认真填涂” 与 “轻微触碰”。
(2)勾选或手写符号识别
形态学分析:通过膨胀、腐蚀等形态学运算,将勾选符号(√)或手写标记(如 “○”)转换为标准形状,再与预设模板匹配。
方向特征提取:对于斜线标记(如 “/”),计算像素分布的梯度方向,判断是否符合 “勾选” 的典型角度(如 45° 或 135°)。
(3)异常标记检测
多选判定:同一候选区域内检测到多个标记(如同时填涂两个候选人框),或单票标记数超过规定(如总统选举多选 1 人),则判定为无效票。
空白票识别:所有候选区域标记面积均低于阈值,判定为未投票。
4. 结果验证与输出:确保计数准确性
重复校验:对关键标记区域进行多次扫描(如两次独立图像采集),结果一致才确认有效。
人工复核接口:对算法判定存疑的选票(如填涂面积接近阈值、标记形状模糊),生成图像供选举工作人员人工审核(如美国部分州要求对 “争议票” 进行人工查验)。
数据输出:将识别结果转换为结构化数据(如候选人 ID、得票数),同步至中央数据库或打印纸质统计表。
选票预处理:通过红外光源扫描选票,生成灰度图像,同时检测选票边缘的定位孔(registration holes)以校准位置。
区域划分:根据选票模板,将图像划分为总统候选人区、参议员区、公投议题区等独立 ROI。
填涂分析:对每个候选人对应的椭圆填涂框,计算黑色像素占比,超过 35% 则判定为有效投票。
异常标记处理:若同一总统候选人区检测到 2 个及以上有效填涂,系统标记为 “多选票”(overvote),该区域投票无效。
数据同步:每台读票机实时将计数结果通过加密网络传输至选区服务器,同时保存原始图像供事后审计(如 2020 年佐治亚州重新计票时,人工核对了扫描图像与纸质选票)。
软件算法:从识别精度到防篡改机制
1. 多重校验算法架构
重复扫描比对:对每张选票进行至少 2 次独立扫描(间隔 50ms),比对两次图像的像素差异,若标记区域灰度值偏差超过 15%,则触发第三次扫描并人工介入(如日本选举法要求对争议票进行三次扫描)。
多特征融合判断:结合填涂面积、边缘轮廓、灰度梯度等多维度特征,采用加权投票机制(如面积占比权重 40%+ 边缘匹配度权重 30%+ 浓度均匀性权重 30%),避免单一特征误判(例:某区域面积达标但边缘锯齿状,可能被判为 “无意涂抹”)。
机器学习模型迭代:利用历史选举的有效 / 无效票数据(如美国 EAC 公开的选票数据集)训练 CNN 模型,对非标准标记(如超框填涂、轻描标记)的识别准确率提升至 99.2% 以上。
2. 防篡改与数据完整性保护
哈希值校验:对每张选票的扫描图像生成哈希值(如 SHA-256),存储于区块链节点或加密数据库,任何图像修改都会导致哈希值变更,可实时检测数据篡改(如德国部分州采用区块链存证选票图像)。
软件版本控制:读票机操作系统与识别算法采用签名固件更新机制,仅允许通过官方渠道推送的版本(附带数字证书)安装,防止恶意程序植入(如 2018 年美国佛罗里达州选举前,对所有读票机进行固件哈希值比对,拦截 3 台异常设备)。