Raspberry Pi车牌识别系统
在這個項目中,您將學習如何使用Raspberry Pi和Node-RED構建汽車識別系統。 在此項目中,我們將使用自動許可位置識別的軟件,該軟件具有一個API,可用于基于圖像識別車牌和車型。
介紹
該項目分為兩個部分。
- 首先,我們將使用車牌識別庫和Node-RED確定一輛汽車
- 然后,我們將基于檢測到的汽車觸發事件(例如,當檢測到您的汽車回家時打開車庫);
下圖顯示了檢測過程的工作方式:
在此示例中,我們使用PIR運動傳感器來檢測汽車是否到了家。還有其他一些傳感器可能更適合檢測汽車,例如:
- 霍爾效應傳感器:感應在汽車靠近時的磁場變化;
- 超聲波傳感器:檢測到物體的距離
- 有源紅外探測器:通過檢測紅外光的反射來檢測物體的存在
識別汽車后,我們將進行一些驗證,如果找到授權的汽車,我們將觸發一個事件(例如,可以在車庫中打開)。 下圖包含顯示該過程的流程圖。
這就是發生的情況:確定了汽車后,我們將檢查車牌和汽車型號是否匹配。 如果匹配,我們將檢查汽車是否在授權車輛列表中。 如果是這樣,我們將觸發一個事件。 例如:打開車庫。 之后,我們要等待一段確定的時間,直到汽車進入車庫。 然后,您需要添加多個驗證以檢查汽車是否已經進入車庫。 如果是,您可以關閉車庫。
零件需求
連接Raspberry Pi相機模塊
關閉Pi后,如下圖所示將相機連接到Pi CSI端口。 確保以正確的方向連接相機,使帶狀藍色字母朝上.
您還應該在Pi中安裝Node-RED,并安裝node-red-contrib-camerapi節點:
原理圖
組裝電路以測試該項目。請遵循以下示意圖:
準備好Raspberry Pi并配置Node-RED軟件后,您可以繼續執行此項目。
車牌識別庫
創建免費賬戶
您可以創建一個免費帳戶。完成帳戶創建后,您應該可以訪問以下頁面:
打開Cloud API標簽以訪問您的密鑰。您需要它來向API發出請求。
將您的密鑰保存在安全的地方,因為您很快就會需要它。
測試攝像頭和服務
首先,您應該首先使用Pi Camera和服務識別您的汽車。 因此,從提供的示例流程開始,該示例流程會拍照并向Cloud API發出請求以識別您的汽車。 要導入提供的Node-RED流,首先復制提供的代碼。
接下來,在右上角的Node-RED窗口中,選擇菜單,然后轉到Import> Clipboard。
然后,粘貼提供的代碼,然后單擊導入。下一個節點應顯示在您的流中:
配置測試流
導入流后,您需要進行一些更改以使其適合您。打開“拍照”節點:
編輯節點,使其具有下圖所示的相同設置:
- 文件名:car-photo.jpeg
- 文件默認路徑:否
- 文件路徑:/ home / pi / Pictures /
重要提示:有時上一個節點可能會覆蓋默認設置。確保您再次檢查其設置正確。然后,單擊部署按鈕。
準備您的Cloud API請求
雙擊cURL POST節點:
然后,更改“命令”字段以包括您的密鑰和國家/地區代碼:
默認情況下,它應具有以下命令:
添加您之前檢索的密鑰和國家/地區代碼:
將確切的命令復制并粘貼到cURL POST節點的“命令”字段中,然后按Node-RED軟件中的“部署”按鈕以使所有更改生效:
測試流
部署流程后,讓我們測試一下汽車識別過程。將汽車移到可以使用Raspberry Pi拍照的地方:
將相機對準汽車,然后點擊時間戳節點旁邊的方塊以觸發流程。
那應該用您的Pi相機拍照,將其保存在/home/pi/Pictures/car-photo.jpeg并向云API發出請求以識別您的車牌和型號。它應該在“調試”窗口中打印JSON響應。
理解響應
打開調試窗口,您應該看到一個對象,其中包含有關JSON響應的所有詳細信息。 結果數組應至少有一個結果(數組[1]),否則它可能正在分析沒有汽車的照片或無法識別汽車(確保在拍照時將Pi Camera指向汽車) )。
單擊結果旁邊的箭頭:array [1]展開對象。您應該在車板上看到一個板物體。以API檢索的格式保存車牌。就我而言,它是“ 61CP–”。您稍后需要使用它來識別您的汽車:
展開車輛對象> make_model> 0:對象,您應該看到您的汽車名稱以及API如何識別汽車模型。 在我們的案例中,它以77.2%的置信度將該汽車確定為Toyota Yaris。 我們應該保存由API檢索的確切字符串“ toyota_yaris”,因為在下一個流程中需要它。 以API檢索的格式保存您的汽車模型。
如果您的響應返回無效結果,請確保仔細檢查以下詳細信息:
- ``拍攝照片’'節點將照片存儲在正確的文件路徑中:/ home / pi / Pictures /
- 確保相機拍攝的照片不錯(訪問/home/pi/Pictures/car-photo.jpeg的Raspberry Pi Pictures文件夾,查看所拍攝的照片是否看起來不錯)
- 查看照片中是否可見汽車和車牌,否則API可能無法正確識別汽車
- 確保在cURL POST命令中使用自己的API密鑰和國家/地區代碼輸入了正確的命令
車牌識別系統流程
在這一部分中,我們將汽車檢測和事件觸發添加到流程中。 當檢測到運動時,Pi相機會使用Pi相機拍攝照片并發出請求。 然后,根據響應,它將觸發一個事件(在這種情況下,我們將打開一個輸出以點亮LED)。
要導入提供的Node-RED流,復制提供的代碼。
接下來,在右上角的Node-RED窗口中,選擇菜單,然后轉到Import> Clipboard。
然后,粘貼提供的代碼,然后單擊導入。下一個節點應在您的流中加載:
配置流程
導入流后,您需要進行一些更改以使其適合您。打開“拍照”節點:
編輯節點,使其具有下圖所示的相同設置:
- 文件名:car-photo.jpeg
- 文件默認路徑:否
- 文件路徑:/ home / pi / Pictures /
準備您的Cloud API請求
雙擊cURL POST節點:
然后,更改“命令”字段以包括您的密鑰和國家/地區代碼:
默認情況下,它應具有以下命令:
添加您之前檢索的密鑰和國家/地區代碼:
將您的汽車詳細信息添加到流程中
打開功能節點“識別汽車”以添加汽車的車牌和型號。
您需要用自己的車牌和型號名稱(與前面檢索的格式完全相同)替換carPlate和carModel變量。在我們的例子中,我們得到:
下圖顯示了應在功能節點上添加車牌和模型的位置:
注意:如果要添加另一個車牌,則需要編輯“識別車”功能。聲明另一個carPlate2和carModel2:
然后,在else if語句之后,添加以下內容:
添加完汽車詳細信息后,按完成,然后單擊部署按鈕:
現在,當汽車到達時,PIR傳感器會檢測到運動,Pi相機會拍照,然后使用OpenALPR API識別汽車。
您的Node-RED應該標識您的汽車牌照和汽車型號。然后,它將觸發一個事件:它將GPIO 17打開幾秒鐘,然后關閉。這模擬了打開/關閉車庫門命令。
詳情參閱 - 亞圖跨際
總結
以上是生活随笔為你收集整理的Raspberry Pi车牌识别系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络视频流 -- ffmpeg 推流
- 下一篇: 2021美亚杯第七届中国电子数据取证团体