日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

我用AI回怼美女汽车销售系列[yolo车牌识别](二)

發布時間:2023/12/15 ChatGpt 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我用AI回怼美女汽车销售系列[yolo车牌识别](二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前期回顧:

在上一期介紹了事情的起因,為什么要做yolo車牌識別,以及最終的網絡結構。(鏈接在這里:(141條消息) 我用AI回懟美女汽車銷售系列[yolo車牌識別](一)_cjnewstar111的專欄-CSDN博客https://blog.csdn.net/cjnewstar111/article/details/123160063)但是為了驗證和編碼的方便,我們基于下圖的網絡結構開發。即將yolo檢測網絡和識別網絡分開,驗證通過了,再將識別功能集成到yolo上面,這樣可以大大降低風險。回顧一下流程,首先圖片經過檢測網絡YoloX,識別出藍牌或者綠牌。然后根據矩形框坐標從原圖中剪裁出牌照圖片,將裁剪出的藍牌圖片送入到藍牌分類網絡進行牌照的識別;綠牌則送入到綠牌分類網絡進行識別。本期將要根據開源數據集CCPD,對三個網絡(YoloX車牌檢測網絡),藍牌識別網絡和綠牌識別網絡進行訓練。

?

檢測網絡訓練

檢測網絡使用普通的目標檢測網絡即可,這里我選擇YoloX。這是一個AnchorFree的Yolo系列,速度和精度都還不錯。由于YoloX目標檢測需要使用coco格式的數據集。因此需要將CCPD的格式進行轉換。在上一期已經介紹過CCPD通過文件名來標注車牌信息。我們可以編寫一個python腳本,將CCPD轉換成COCO格式。

?

轉換好之后,就可以使用YoloX進行訓練。可以直接使用YoloX官方的代碼進行訓練,也可以使用我之前開源的YoloX EasyTrain進行訓練。我這里使用YoloX EasyTrain進行訓練,因為只需要點點鼠標,并且所有配置信息可以在界面中編輯,而且訓練過程中還有實時的曲線信息,非常的方便。在YoloX EasyTrain中新建一個工程:CCPD,然后選擇基于YoloX Nano(小模型訓練快),然后配置一下CCPD的路徑(注意是轉換成coco格式的CCPD),點擊訓練。出去喝一杯咖啡,再回來看看效果吧。

?

訓練了5個epoch之后,map0.5以及map0.75已經達到了0.99,精度是非常的高,那就直接停止訓練,使用第5個epoch的結果來測試一下推理,看看從百度上隨意下載的圖片,能否準確的檢測出車牌。效果非常理想!!!

?

藍牌網絡訓練

首先對CCPD數據集進行一個轉換。由于藍牌網絡輸入的是車牌圖片,而不是整張圖片。因此需要對CCPD進行裁剪,裁剪出車牌圖片,然后進行保存。可以寫一個python腳本,進行自動的裁剪。裁剪后的圖片與原始圖片對比:

有了圖片就可以訓練了,我這里使用shufflenetv2進行車牌的分類和識別。大家對分類任務應該非常熟悉,需要輸入多少個類別,就讓shufflenetv2最終輸出多少維度的向量。由于藍牌識別需要對7個位置進行分類,且每個位置有非常多的可能。例如省份有31中可能,而普通的字符位置有34種可能,那么我們就定義藍牌網絡最終的輸入是7*34維的向量。對于第一位的省份來說,34位是冗余的,因為省份只有31位,不過這沒有關系,最后幾位不用關注即可。訓練過程也非常簡單,使用常見的sgd優化器,訓練60epoch,step學習率下降。最后top1測試精度達到了95%。非常nice!

?

綠牌網絡訓練

最后訓練綠牌網絡,和藍牌網絡幾乎一樣。不同的是需要使用CCPD中的新能源車的圖片進行裁剪和訓練。然后網絡的輸出是8*34維度,而不是藍牌的7*34維度。因為綠牌比藍牌多了一位。

?

ONNX轉換

由于訓練好的模型是pytorch的,不利于部署,因此我們將yolox模型和分類模型直接通過pytorch的接口導出為onnx模型,然后利用onnxruntime進行推理。使用如下代碼進行導出:

torch.onnx._export(model,

dummy_input,

"yolox.onnx",

verbose=True,

opset_version=11,

input_names=['input'], output_names=['output'])

對于yolox來說,直接導出會報如下錯誤:

Exporting the operator silu to ONNX opset version 11 is not supported

意思是onnx不支持yolox中的silu激活函數。最簡單的方式是修改一下pytorch的源代碼,將silu的實現修改為如下圖所示,然后在調用上面的接口可以順利導出。

?

DEMO開發

有了上面訓練完的三個onnx網絡之后,為了測試的方便,我們用PyQt編寫一個簡單的demo。支持從圖片,視頻,以及攝像頭獲取圖片,然后將圖片輸入給檢測網絡進行車牌檢測,根據檢測出的車牌矩形框,從原始圖片中裁剪出車牌圖片。然后根據車牌的類型(藍牌還是綠牌)再送入到對應的網絡中進行分類識別。如下圖所示:

?

正當我覺得效果流逼,可以馬上上路檢測的時候,卻發現在視頻中同一個車牌被檢測出來不同的車牌號。導致一輛車會被識別成很多輛車。按照之前的邏輯,就會被識別出不同的車輛。這對于統計道路上的新能源車占比來說,是無法容忍的。因此需要解決該問題。

冷靜分析,通過上面的測試視頻來看,車牌的檢測倒是非常準確(紅框基本沒有問題),但是車牌識別的不夠準確。那么如何解決該問題,從而實現準確的車牌檢測呢?留在下期去解決吧。(說實話:我自己還沒有想好!)

總結

感謝各位觀眾老爺又看到了最后。這期主要是數據集的準備和網絡的調通。原以為可以馬上上路測試了,卻遇到了在視頻中識別不準的問題,嚴重影響實驗的精度。用這種精度統計出來的新能源車占比,我自己都不信,更不要說讓銷售相信了。下一期還是先解決識別精度的問題,盡情期待哦!

總結

以上是生活随笔為你收集整理的我用AI回怼美女汽车销售系列[yolo车牌识别](二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。