背景:

當前還有很多工廠、國企、小規模公司等都采用手工登記考勤的方式進行考勤,每月月底需要花大量時間將手工考勤進行手工錄入并生成考勤表或將考勤記錄導入到考勤系統中,這樣就產生了大量重復工作,希望能做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+%。也可以把時間公布在聯網機器上,讓人自己在手機上核查。甚至,在識別時直接根據概率分布,把相對不可信的識別顯示出來人工核查。


您可以返回【考勤系統】首頁或進入【新聞資訊】閱讀更多資訊