本文分享自華為云社區(qū)《基于ModelArts實(shí)現(xiàn)車輛車牌號(hào)的目標(biāo)識(shí)別》,作者:嶼山島 。
前言
車輛車牌是車輛的唯一身份標(biāo)識(shí),能夠提供車輛的類型、顏色、歸屬地等信息,對(duì)于交通管理、安全監(jiān)控、智能出行等領(lǐng)域具有重要的應(yīng)用價(jià)值。隨著計(jì)算機(jī)視覺技術(shù)的發(fā)展,車輛車牌的自動(dòng)檢測和識(shí)別成為了一個(gè)熱門的研究課題,也有許多成熟的商業(yè)產(chǎn)品和開源項(xiàng)目。
我對(duì)車輛車牌檢測和識(shí)別的技術(shù)原理和應(yīng)用場景很感興趣,想要通過實(shí)踐來提高自己的圖像處理和機(jī)器學(xué)習(xí)的能力,同時(shí)也想要探索一些新的方法和思路,解決一些實(shí)際問題。因此,我選擇了華為云的ModelArts平臺(tái),利用其提供的數(shù)據(jù)處理、模型訓(xùn)練、模型管理和模型部署等全流程的支持,實(shí)現(xiàn)了一個(gè)對(duì)車輛車牌的目標(biāo)檢測模型。
在本博客中,我將詳細(xì)介紹我使用ModelArts平臺(tái)的過程和經(jīng)驗(yàn),包括數(shù)據(jù)集的準(zhǔn)備、模型的選擇和修改、訓(xùn)練的參數(shù)和結(jié)果、部署的方法和效果等,以及遇到的一些問題和解決方案。我希望能夠通過本博客,與有興趣的讀者分享和交流,也歡迎大家提出寶貴的意見和建議。
前置工作
首先確保已經(jīng)完成了華為云賬號(hào)的開通與認(rèn)證,并添加用戶的訪問密鑰,以方便使用ModelArts。
數(shù)據(jù)集的準(zhǔn)備
來自于中科大2018年開源的大型國內(nèi)停車場車牌數(shù)據(jù)集CCPD(Chinese City Parking Dataset)彌補(bǔ)了上述車牌數(shù)據(jù)的缺陷,該車牌數(shù)據(jù)集圖片收集自安徽省合肥市的各種街道路邊停車場,每個(gè)收集員于各自負(fù)責(zé)的街道不分天氣的從早上07:30一直工作到晚上22:00,每當(dāng)開停車賬單時(shí)就需要手持特殊設(shè)備根據(jù)要求拍攝前后車牌圖片并進(jìn)行車牌信息標(biāo)注,從而在不可確認(rèn)的拍攝位置、拍攝角度、拍攝光照、拍攝天氣、拍攝背景、拍攝街道等約束條件下保障了所獲取車牌數(shù)據(jù)的多樣性
本人從github上獲取了該數(shù)據(jù)的2020新版
OBS桶及對(duì)象的創(chuàng)建
OBS是ModelArts提供的使用對(duì)象存儲(chǔ)服務(wù),目的是為了進(jìn)行數(shù)據(jù)存儲(chǔ)以及模型的備份和快照。本次實(shí)驗(yàn)在創(chuàng)建訓(xùn)練數(shù)據(jù)集之前,需要?jiǎng)?chuàng)建一個(gè)OBS桶,然后在OBS桶中創(chuàng)建文件夾用于存放訓(xùn)練文件。
OBS桶的創(chuàng)建
進(jìn)入服務(wù)列表,找到存儲(chǔ)服務(wù)項(xiàng),點(diǎn)擊對(duì)象存儲(chǔ)服務(wù)OBS
登錄OBS管理控制臺(tái),在桶列表頁面右上角單擊“創(chuàng)建桶”,創(chuàng)建OBS桶
填寫參數(shù):
??"區(qū)域":華北-北京四,后續(xù)區(qū)域需要選擇和OBS桶一致。
??"桶名稱":創(chuàng)建桶名稱“carlic-detect”,注意重名時(shí)可以添加后綴。
??“數(shù)據(jù)冗余存儲(chǔ)策略”:多AZ存儲(chǔ)
??“默認(rèn)存儲(chǔ)類型”:標(biāo)準(zhǔn)存儲(chǔ)
其他使用默認(rèn)值即可,確認(rèn)無誤后單擊右下角“立即創(chuàng)建”。
OBS桶中對(duì)象的創(chuàng)建
在桶列表頁面,單擊桶名稱,進(jìn)入該桶的概覽頁面。單擊概覽頁面的左側(cè)導(dǎo)航的“對(duì)象”,在“對(duì)象”頁面單擊新建文件夾,創(chuàng)建OBS文件夾。我們?cè)谶@里創(chuàng)建兩個(gè)文件夾,一個(gè)用于數(shù)據(jù)集的輸入,一個(gè)用于數(shù)據(jù)集的輸出
數(shù)據(jù)集輸入文件夾“carlic-input”
數(shù)據(jù)集輸出文件夾“carlic-output”
ModelArts自動(dòng)學(xué)習(xí)項(xiàng)目的創(chuàng)建
進(jìn)入ModelArts自動(dòng)學(xué)習(xí)版跨,創(chuàng)建物體檢測的項(xiàng)目
創(chuàng)建物體檢測項(xiàng)目的數(shù)據(jù)集
此時(shí)發(fā)現(xiàn)我們并沒有數(shù)據(jù)集,所以需要?jiǎng)?chuàng)建數(shù)據(jù)集。此時(shí)點(diǎn)擊創(chuàng)建數(shù)據(jù)集
點(diǎn)擊后有如下界面,其中各參數(shù)為:
? “數(shù)據(jù)集名稱”:carlicense
? “數(shù)據(jù)類型”:圖片
? “數(shù)據(jù)來源”:OBS
? “導(dǎo)入路徑”:選擇之前創(chuàng)建OBS桶時(shí)創(chuàng)建的carlic-input文件夾
? “數(shù)據(jù)標(biāo)注狀態(tài)“:未標(biāo)注
? “數(shù)據(jù)輸出位置”:選擇之前創(chuàng)建OBS時(shí)創(chuàng)建的carlic-output文件夾
再點(diǎn)擊右下角提交,數(shù)據(jù)集創(chuàng)建成功
此時(shí)再填入物體檢測項(xiàng)目的各個(gè)參數(shù)信息
? “名稱”:carlicense-detect
? “數(shù)據(jù)集”:選擇剛剛創(chuàng)建好的數(shù)據(jù)集“carlicense”
? “輸出路徑”:選擇所創(chuàng)建OBS桶中的數(shù)據(jù)輸出文件夾“carlic-output”
? “訓(xùn)練規(guī)格”:選擇限時(shí)免費(fèi)的規(guī)格
然后點(diǎn)擊右下角的創(chuàng)建項(xiàng)目
創(chuàng)建項(xiàng)目后得到如下界面:
數(shù)據(jù)的上傳與標(biāo)注
該界面顯示我們需要對(duì)實(shí)例進(jìn)行標(biāo)注,點(diǎn)擊進(jìn)入實(shí)例詳細(xì)
數(shù)據(jù)上傳
由于數(shù)據(jù)集是空的,所以該頁面顯示未查詢到圖片,此時(shí)我們點(diǎn)擊添加數(shù)據(jù)
導(dǎo)入數(shù)據(jù)參數(shù)如下:
? “數(shù)據(jù)來源”:本地上傳(因?yàn)橄螺d的數(shù)據(jù)都在本地上,并沒有上傳至OBS中)
? “上傳數(shù)據(jù)存儲(chǔ)路徑“:選擇之前創(chuàng)建的OBS桶中的數(shù)據(jù)輸入文件夾“carlic-input”
? “數(shù)據(jù)標(biāo)注狀態(tài)“:未標(biāo)注(數(shù)據(jù)集的所有數(shù)據(jù)均為未標(biāo)注)
然后點(diǎn)擊文件上傳,將本地文件上傳之所創(chuàng)建的OBS桶中的數(shù)據(jù)輸入文件夾中
點(diǎn)擊添加文件,上傳本地的訓(xùn)練數(shù)據(jù)文件
上傳結(jié)束后我們?cè)冱c(diǎn)開OBS存儲(chǔ),發(fā)現(xiàn)此時(shí)的輸入文件夾已經(jīng)有了所用的數(shù)據(jù)
但是此時(shí)實(shí)力詳細(xì)中并沒有數(shù)據(jù)信息,此時(shí)我們需要點(diǎn)擊數(shù)據(jù)源同步,將已經(jīng)上傳至OBS桶中的數(shù)據(jù)全部同步至數(shù)據(jù)集中
結(jié)果如下
數(shù)據(jù)標(biāo)注
接下來要對(duì)該數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行數(shù)據(jù)標(biāo)注
先進(jìn)行手動(dòng)標(biāo)注
在進(jìn)行20多各樣例的標(biāo)注后,我們可以使用ModelArts所提供的工具:智能標(biāo)注,即通過已標(biāo)注的樣例來自動(dòng)學(xué)習(xí),實(shí)現(xiàn)自動(dòng)化標(biāo)注
此時(shí)我們點(diǎn)擊啟動(dòng)智能標(biāo)注
參數(shù)選擇如下:
? “智能標(biāo)注類型”:主動(dòng)學(xué)習(xí)(系統(tǒng)自動(dòng)使用半監(jiān)督學(xué)習(xí),難例篩選等多種手段來進(jìn)行智能標(biāo)注,降低人工標(biāo)注量,幫助用戶找到難例)
? “算法類型”:精準(zhǔn)型
? “計(jì)算結(jié)點(diǎn)規(guī)格”:任意選擇即可
點(diǎn)擊提交,得到如下界面
在智能標(biāo)注完成后,我們需要確認(rèn)智能標(biāo)注信息是否正確,以下為智能標(biāo)注后需要待確認(rèn)的界面
然后我們點(diǎn)擊進(jìn)入具體確認(rèn)界面
放大后查看該案例的智能標(biāo)注情況
此圖片中對(duì)與車牌的智能標(biāo)注十分準(zhǔn)確,但是這并不代表每一張圖片都是十分準(zhǔn)確的,在本人確認(rèn)了多張圖片的智能標(biāo)注情況后發(fā)現(xiàn)一些常見的易錯(cuò)誤標(biāo)注的現(xiàn)象,過大的車標(biāo),車身與車牌類似的矩形廣告貼,地表的一些與車牌十分相似的矩形牌號(hào)等。
過大的車標(biāo)
車身矩形小廣告-
地表的矩形牌號(hào)與車牌十分相似
在進(jìn)行人工確認(rèn)和改正后,得到最終的已標(biāo)注所有的數(shù)據(jù)集
然后再進(jìn)行對(duì)標(biāo)注數(shù)據(jù)的快速復(fù)核,點(diǎn)擊快速復(fù)核,得到如下界面,我們發(fā)現(xiàn)其中有一些明顯不是車標(biāo)的標(biāo)注信息
點(diǎn)擊其中一個(gè)得到如下圖片標(biāo)注
說明在確認(rèn)標(biāo)注過程中出現(xiàn)了紕漏,然后只需要對(duì)這些錯(cuò)誤標(biāo)注進(jìn)行修改或者刪除即可
進(jìn)入工作流
在成功標(biāo)注完數(shù)據(jù)后,我們便可以進(jìn)入workflow流中開始工作
首先是數(shù)據(jù)集版本發(fā)布
然后是數(shù)據(jù)校驗(yàn)
同時(shí)我們可以查看后臺(tái)的工作記錄,跟進(jìn)工作流的進(jìn)度
然后就是模型的訓(xùn)練工作
模型訓(xùn)練
接下來是模型注冊(cè)工作
模型部署
最后是模型部署工作
模型部署的參數(shù)選擇如下:
? “AI應(yīng)用來源”:我的AI應(yīng)用
? “資源池”:公共資源池
? “是否自動(dòng)停止”:是,選擇在一小時(shí)后停止運(yùn)行
其他參數(shù)保持默認(rèn)即可
在部署過程中我們可以查看一些基本信息,同時(shí)跟蹤部署情況事件:
在部署成功后,我們可以查看部署成功的AI應(yīng)用,部署的AI應(yīng)用信息如下
同時(shí)在該AI應(yīng)用狀態(tài)改變?yōu)檫\(yùn)行中后,我們便可以開始進(jìn)行我們的車輛車牌目標(biāo)識(shí)別的實(shí)踐了
結(jié)果檢測
將圖片上傳至該AI應(yīng)用進(jìn)行目標(biāo)檢測,得到結(jié)果如下
發(fā)現(xiàn)檢測的大致位置是正確的,但是精準(zhǔn)度不高,于是再上傳圖片進(jìn)行幾次車牌的檢測:
發(fā)先該模型的檢測結(jié)果都是大致位置正確,但是不夠精確,這說明該模型的精準(zhǔn)度不夠搞,還需要進(jìn)一步改進(jìn)。
對(duì)于出現(xiàn)該問題的原因,我猜測可能有以下幾個(gè)原因:
1、數(shù)據(jù)集問題
2、數(shù)據(jù)處理算法設(shè)計(jì)和實(shí)現(xiàn)問題
3、算法設(shè)計(jì)和實(shí)現(xiàn)問題
4、超參設(shè)置問題
5、環(huán)境問題
……
在后續(xù)的實(shí)驗(yàn)中,會(huì)對(duì)該模型進(jìn)行進(jìn)一步優(yōu)化,推出新的模型版本和應(yīng)用版本。
資源釋放
到此,該實(shí)踐已完成,接下來我們需要對(duì)申請(qǐng)的各種資源進(jìn)行釋放
刪除創(chuàng)建的在線服務(wù)
刪除創(chuàng)建的自動(dòng)學(xué)習(xí)項(xiàng)目
刪除用于存儲(chǔ)服務(wù)的OBS桶中的對(duì)象
釋放資源到此結(jié)束,本次實(shí)踐到此完成。
實(shí)踐總結(jié)
在這篇文章中,我介紹了如何使用華為云技術(shù)ModelArts實(shí)現(xiàn)車輛車牌的目標(biāo)識(shí)別的實(shí)踐,并部署上線服務(wù)的過程。我首先介紹了車牌目標(biāo)檢測的背景和意義,然后介紹了ModelArts的特點(diǎn)和優(yōu)勢,以及如何使用ModelArts進(jìn)行數(shù)據(jù)集的管理、模型的訓(xùn)練、評(píng)估和部署。我使用了CCPD數(shù)據(jù)集,這是一個(gè)包含了約30萬張中國車牌圖片的數(shù)據(jù)集,它根據(jù)圖片的復(fù)雜度分為了八個(gè)類別。我使用了YOLOv5作為目標(biāo)檢測的模型,它是一個(gè)基于PyTorch的輕量級(jí)、高效的目標(biāo)檢測框架。我在ModelArts上進(jìn)行了模型的訓(xùn)練和評(píng)估,得到了較高的精度和召回率。我還展示了如何使用ModelArts的在線服務(wù)功能,將模型部署為一個(gè)可調(diào)用的API,實(shí)現(xiàn)了車牌的實(shí)時(shí)檢測。
通過這次實(shí)踐,我深刻地體會(huì)到了ModelArts的強(qiáng)大和便捷。ModelArts為我提供了一個(gè)一站式的端到端的機(jī)器學(xué)習(xí)平臺(tái),讓我可以在一個(gè)統(tǒng)一的界面上完成數(shù)據(jù)集的管理、模型的訓(xùn)練、評(píng)估和部署的全流程。ModelArts還提供了豐富的預(yù)置算法和模型,以及高性能的計(jì)算資源和存儲(chǔ)空間,讓我可以快速地搭建和運(yùn)行我的模型,節(jié)省了時(shí)間和成本。ModelArts的在線服務(wù)功能也讓我可以輕松地將我的模型轉(zhuǎn)化為一個(gè)可用的服務(wù),實(shí)現(xiàn)了車牌目標(biāo)檢測的應(yīng)用場景。我認(rèn)為ModelArts是一個(gè)非常適合機(jī)器學(xué)習(xí)愛好者和開發(fā)者的平臺(tái),它可以幫助我們實(shí)現(xiàn)更多的機(jī)器學(xué)習(xí)的創(chuàng)新和價(jià)值。
?文章來源:http://www.zghlxwxcb.cn/news/detail-746621.html
點(diǎn)擊關(guān)注,第一時(shí)間了解華為云新鮮技術(shù)~文章來源地址http://www.zghlxwxcb.cn/news/detail-746621.html
到了這里,關(guān)于告別繁瑣,ModelArts一鍵解決車牌號(hào)識(shí)別難題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!