背景:

当前还有很多工厂、国企、小规模公司等都采用手工登记考勤的方式进行考勤,每月月底需要花大量时间将手工考勤进行手工录入并生成考勤表或将考勤记录导入到考勤系统中,这样就产生了大量重复工作,希望能做OCR识别减低工作量,手工登记考勤的记录如下:

格式一:

格式二:

限制条件:
1.不使用考勤机、人脸考勤、手机移动考勤等考勤设备进行打卡。

2.不使用云考勤平台、考勤系统、考勤软件打卡管理功能


难点:
是手写体并且有连写、部份超格或一定量涂改,这些都不受控制。网上的OCR识别都是以单个不连体数字举例。

突破要点:
1、表格格式固定。手写体只有0-9共计10个数字和两个符号:冒号":"和点'."。
2、手写时间识别相对较难,但格式有一定规律:格式为HH:MM,其中MM固定为00或者30。穷举HH:MM的所有组合也才几十个。
3、考勤人员虽有流动性但相对还是固定,也就是说每个人的字体具有连贯性。

个人感觉这个任务比较适合有监督的机器学习来解决,但只会简单的一些python,没实际操作过机器学习或文字识别,请指点:
1、基于现状,是否有现成的商业考勤软件考勤管理系统(可以辅助少量人工)可以实现?
2、如果没有合适的现成软件,是否有合适的开源库之类可以直接实现?
3、如果以上都没有,推荐一下合适的技术方案(有大概的步骤和实现难度估算)

问题分析:

1.分析常用时间种类:

(1)开始时间:从9:00到15:00共13种。

(2)结束时间:从15:00到23:00共17种。

2.时间写法特征:

(1)以整点或半点的形式出现。

(2)开始时间与结束时间是分开的。

(3)同一格内的时间符号有交叉、出格。

3.解决方案:

(1)对开始时间和结束时间分开训练,分开识别。同一格内的时间整体识别,不分字符。

(2)对超出上面分析的时间种类的其他特殊时间,在考勤表上注明填写要求,比如写在第三列和第四列,或者换张特殊时间考勤表,然后人工辅助处理。

(3)扫描时间获取样本时,识别出格子线,截取时,上下增加范围,可兼容出格。

(4)其他慢慢考虑。

4.实现难度:

(1)按表格线分割出开始和结束时间。难度在如何识别出表格线。算法应该有现成的,容易获得。

(2)模型设计。可能需要多次尝试。但标签种类较少,计算量不大,训练时间不长,可以试验很多个模型。

(3)识别率问题。如果识别率不高,人工核查将很困难。考虑到分类数少,时间整体写法也不乱(与单个字符无关),样本质量很高,识别率应该不错的,好的模型可能会上99+%。也可以把时间公布在联网机器上,让人自己在手机上核查。甚至,在识别时直接根据概率分布,把相对不可信的识别显示出来人工核查。