Python項目實戰篇——常用驗證碼標注&識別(前端+后端實現高效率數據標注)
大家好,我是Snowball。
一、前言
今天給大家分享的實戰項目是常用驗證碼標注&識別,前面兩篇文章講解了文章的創作靈感、需求分析和實現思路、數據采集/預處理/字符圖切割等知識,Python項目實戰篇——常用驗證碼標注和識別(需求分析和實現思路),Python項目實戰篇——常用驗證碼標注&識別(數據采集/預處理/字符圖切割),這篇文章來給大家講解下高效率數據標注。
二、高效率數據標注
根據第一大步的實現思路描述,大家應該可以了解到,在最初圖片驗證碼數據的標注過程中,都是手動改文件名進行標注的,這種方式對小數據量標注是比較有效的,但是要標注個幾百個圖片,那效率是非常低,而且容易出錯。于是,筆者思考怎么能提升通用圖片驗證碼數據標注的效率,且能把文件管理起來,隨時查詢、修改、下載。
最開始,是想著用python的gui框架寫個簡單工具滿足,在嘗試了Tkinter、PyQT框架API使用之后,發現其列表組件操作非常麻煩,而且自定義item項也很復雜,于是就放棄了這種方案。最終采用現在主流的Web頁面+后端的應用方案,這塊后端技術棧筆者是比較熟練的,前端技術就很一般,基本現學現用,只需要找一個上手快的前端后臺管理模板項目改改就行。這里感謝下之前工作的前端同事妹子,給我推薦了直接上手的開源工程,同時也幫助我解決了修改過程的大部分問題。以下是Vue后臺管理系統模板開源項目地址:
- [Vue-Admin-Template](https://github.com/PanJiaChen/vue-admin-template)
在確定好應用方案后,就需要考慮需要實現的通用圖片驗證碼的需求和功能模塊,這里由于文章篇幅所致,就不把所有的具體功能細節分析、設計、實現過程寫出來了,這里貼一下主要的功能。以下是通用圖片驗證碼數據標注的相關功能模塊:
1.用戶模塊:登錄/注冊、角色、權限控制等
2.文件模塊:用戶附件表增刪改查、分用戶目錄存儲落盤
3.驗證碼圖片模塊:標注驗證碼拉取生成、標注數據提交/修改、分頁查詢、批量下載
4.驗證碼圖片模型預測:支持多模型切換預測(時間關系,只做了單模型)
數據標注前后端系統的相關代碼這里就不寫了,有相關基礎的可以拉取文章開頭的項目鏈接閱讀相關模塊代碼,下面只給出項目中前后端系統功能實現的主要相關技術中間件、開源框架。
前端技術框架:
- vue、vuex、vue-router、axios、element-ui等
后端技術框架:
Spring Boot、Spring Security、Spring MVC、Spring Data Jpa、Redis、Mysql等
這里稍微提一下,后端這塊采用傳統的單機Web/Session技術架構,個人項目勉強夠用,企業應用可改成分布式/微服務架構。
以上就是通用圖片驗證碼數據標注系統前后端的功能大概實現內容,有問題的讀者可留言或聯系小編交流討論。在筆者經過1-2周空閑時間的數據庫設計、前后端項目搭建、功能編碼/測試工作后,功能初步實現,接下來來看看項目在windows上的運行效果吧。
前端運行效果:
- 使用IDE:Visual Studio Code
- 測試環境終端運行:npm run dev
后端運行效果:
- 使用IDE:IntelliJ Idea 2019
- 運行:點擊工具欄運行按鈕
下面是前端系統的部分操作效果演示效果:
拉取圖片驗證碼生成:
標注圖片驗證碼-提交:
已標注圖片-分頁查詢/下載/編輯:
模型預測產生數據(40個字符錯了2個~~):
以上就是核心功能的演示效果了,這里注意的點是,CNN模型預測識別功能是需要部署python的神經網絡模型項目,這塊功能部署的相關內容在下一個步驟會詳細描述,這里就只是演示一下效果。
三、總結
我是Snowball。這篇內容主要講解了高效率數據標注,在之前我們還講解了數據采集/預處理/字符圖切割知識,Python項目實戰篇——常用驗證碼標注&識別(數據采集/預處理/字符圖切割),經過上面兩塊功能實現后,我們可以知道圖片驗證碼標注管理可以高效率了,字符圖片分割可以批量進行了,那么基礎數據都有了,接下來就進入到本篇文章最核心的功能分析和實現內容:字符特征提取-CNN神經網絡模型訓練。