智能圖像識別產品開發流程 OCR 圖像識別

如何快捷高效地開發智能圖像識別產品

本文將結合筆者多次智能圖像識別產品、OCR識別項目開發經歷,從工程技術角度對這一流程進行總結和介紹

明確識別任務

在項目開發之前,要明確產品需求,即識別任務到底是什麼。
例如在做身份證信息識別之前,需要溝通如下內容:

  • 識別應用的場景如何,用戶通過API調用我們的雲端識別服務程序,還是識別程序直接在移動端直接部署
  • 用戶上傳的身份證圖像是規範矯正過的,還是隨意角度放置的
  • 用戶需要識別哪些關鍵字段,身份證反面需不需要識別

確定工程技術路線

在瞭解大概的識別任務後,可以着手進行工程技術路線調研和設計了。

開發分兩條線,工程一條線,技術一條線

技術線先行,在確定了技術可行,原型通過驗證後,可快速啓動工程線。

毫無疑問技術線是智能圖像識別產品的開發重點。

例如在身份證識別項目中,我結合使用場景設計了目標檢測,校正,文本檢測,文本識別和信息抽取等幾個步驟。
對於每塊內容需要進行技術調研和評估:

  • 目標檢測的方法如YOLO、Faster RCNN、SSD等有哪些有缺點 校正。
  • 如何進行透視變換,求解變換矩陣。
  • 如何進行文本檢測,CTPN有哪些限制。
  • 文本識別需要多少樣本,樣本如何獲取。
  • 信息如何抽取,需不需要NLP支持。

工程線:重要的是規劃

工程線需要設計前後端架構,明確開發要點。
本文着重從技術實現方向介紹智能圖像識別產品的開發流程

數據準備

數據準備包含以下步驟內容:

  • 原始數據收集
    由於原始數據內容可能涉及隱私,比如身份證,銀行卡圖像,
    在不觸犯法律情況下可通過內部資源貢獻,或者通過網絡途徑獲取。
  • 數據標籤化
    對獲取的原始圖集進行打標籤,可交由外包專業團隊。
    這部分需要設計標籤的格式以及儲存方式。建議採用 labelme 進行標註
    例如可以使用create polygons 創建文本檢測和識別標籤,使用create points 創建關鍵點標籤
  • 增強數據
    由於原始數據集規模有限,需要通過透視變換,模糊,抖動,背景融合進行圖像增強,提升訓練效果。
  • 數據生成(部分情況可用)
    對於印刷文字識別等,可通過工具機器生成出以假亂真的字符文本圖像集。一個比較好用的 工具

模型訓練

從數據集中分割出訓練,測試用數據,使用訓練數據集進行模型測試。
對於某個產品的開發過程,可能需要訓練多個模型來滿足功能需求。

例如在身份證識別應用中,我們需要訓練一下模型:

  • 目標定位模型,實現身份證目標的位置大小座標檢測。
  • 關鍵點檢測模型,實現身份證關鍵點的座標檢測,求解透視變換矩陣,校正圖像。
  • 文本檢測模型,實現文本區域的定位。
  • 文本識別模型,實現文本區域內字符序列的預測。

各個模型需要根據具體場景選擇合適的開發算法。

模型訓練可能持續一天甚至一週,需要不時觀察模型訓練輸出,根據loss變化調整訓練姿勢。

測試評估

這裏的測試評估不僅關注單模型的表現效果,同時對模型集成後的表現效果進行測試
對建立的測試集進行測試,評估單模型精度和集成後整體精度。

模型發佈

在測試集上表現出色的可以進行模型發佈。
一般需要freeze graph,將模型文件和權重文件整合合併爲一個文件,便於發佈。
一些應用場景,還需要對模型進行壓縮,向目標設備進行適配。
多模型發佈需要根據技術路線和方案進行集成,以實現完整的產品能力。

可通過建立開放平臺對外提供識別服務,對外輸出AI能力。

總結

好啦, 如何快捷高效地開發智能圖像識別產品,你學會了嗎??

歡迎同學們訪問如下鏈接,測試評估交流!!

Email:[email protected]

身份證信息識別服務

銀行卡信息識別服務

通用卡證信息高精度識別流程
智能圖像識別產品開發流程
如何設計一個開放平臺

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章