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