iT邦幫忙

0

使用S3上傳包含車牌的圖片,透過Lambda應用Rekognition將車牌邊框畫出來並回傳至S3

  • 分享至 

  • xImage
  •  

使用S3上傳包含車牌的圖片,透過Lambda應用Rekognition將車牌邊框畫出來並回傳至S3

https://ithelp.ithome.com.tw/upload/images/20240430/20166873GMyARKerRU.png
功能架構圖

功能說明

將一包含車牌圖片上傳至S3 bucket,觸發Lambda函數並透過Rekognition進行車牌辨識,辨識完畢後將車牌位置回傳並將其位置框畫出來,最後將變更後的圖片回傳至 S3 bucket。

操作流程

1.建立 S3 儲存貯體,關閉封鎖所有公開存取權,並設定一個資料夾允許對外公開讀取。
2.建立 Lambda 函數。
3.測試並確認結果。

步驟一、創建 S3 Bucket

在AWS控制台搜尋S3並點擊,如下圖
https://ithelp.ithome.com.tw/upload/images/20240430/201668738NMoCOnR2T.png

點擊建立儲存貯體
https://ithelp.ithome.com.tw/upload/images/20240430/20166873JhZNi92fgm.png

命名貯體名稱
https://ithelp.ithome.com.tw/upload/images/20240430/20166873wah6txeYm9.png

取消勾選封鎖所有公開存取權,並勾選確認
https://ithelp.ithome.com.tw/upload/images/20240430/201668730GYclM13FR.png

點擊建立儲存貯體
https://ithelp.ithome.com.tw/upload/images/20240430/20166873Weojef6pKY.png

將使用到的程式碼上傳至 S3 ==>檔案連結
https://ithelp.ithome.com.tw/upload/images/20240430/20166873GyESSCmQCh.png

步驟二、創建 Lambda 函數

在AWS控制台搜尋 Lambda 並點擊,如下圖
https://ithelp.ithome.com.tw/upload/images/20240430/201668737Wui7gAqIk.png

進入 Lambda 儀表板後點擊建立函數
https://ithelp.ithome.com.tw/upload/images/20240430/20166873rmFyao0dwh.png

命名函數名稱,選擇版本"Python3.9",架構選擇x86_64
https://ithelp.ithome.com.tw/upload/images/20240430/20166873k7DGlD4rba.png

執行角色選擇"使用現有的角色"並選取"LabRole",完成後選擇建立函式
https://ithelp.ithome.com.tw/upload/images/20240430/20166873hzTFigcEL4.png

部署程式碼,選擇Amazon S3位置,輸入先前儲存在S3的程式碼的URL
https://ithelp.ithome.com.tw/upload/images/20240430/20166873sPVNWnm3Zq.png
https://ithelp.ithome.com.tw/upload/images/20240430/20166873412rUIhQqq.png

程式碼檔案開啟後,點擊"Deploy"部署https://ithelp.ithome.com.tw/upload/images/20240430/201668735vyJtTFlrc.png

由於程式碼中有使用到opencv,需要打包 Python 的 OpenCV 函式庫,並添加至layer
主要的操作內容是:

  • 創建一個新的 Python 虛擬環境
  • 檢查 Python 版本
  • 更新 pip
  • 安裝 opencv
  • 將安裝好的套件壓縮到 python 這個目錄下
  • 檢視壓縮內容
python3 -m venv opencv
cd opencv
. bin/activate
python -V
pip install pip -U
pip install opencv-python
cd lib/python3.9/
ln -s site-packages/ python
zip -r opencv39-48.zip python/
unzip -l opencv39-48.zip
aws s3 cp opencv37-45.zip s3://[S3存儲桶的名稱]

點擊左下方的CloudShell,並輸入上方程式碼,完成後打包檔會存在 S3 bucket 內
https://ithelp.ithome.com.tw/upload/images/20240430/20166873LbuMNjXysa.png

接著回到 Lambda 點擊"層",選擇建立Layer
https://ithelp.ithome.com.tw/upload/images/20240430/20166873CMn8La5upp.png
https://ithelp.ithome.com.tw/upload/images/20240430/20166873Gvb6kW1j5z.png

命名Layer名稱,選擇"上傳來自 Amazon S3 的檔案",填入剛才存在 S3 bucket 內 opencv 打包檔的 URL,架構選擇x86_64,版本選擇"Python3.9",最後選擇建立
https://ithelp.ithome.com.tw/upload/images/20240430/20166873vciNDTHZS8.png

回到 Lambda 頁面,配置剛剛建立的Layer,選擇"新增層"
https://ithelp.ithome.com.tw/upload/images/20240430/20166873ymZtz3F8od.png

選擇"自訂Layer",下方選取剛才建立的Layer,版本選擇"1"並新增
https://ithelp.ithome.com.tw/upload/images/20240430/20166873CeWChJiRQP.png

最後要使用Lambda函數需要設置觸發器,回到Lambda頁面選擇新增觸發
https://ithelp.ithome.com.tw/upload/images/20240430/20166873UpVNuy1fMP.png

來源選擇"S3",選擇要使用的 S3 bucket並新增
https://ithelp.ithome.com.tw/upload/images/20240430/20166873JdCNIH3eTY.png

步驟三、確認結果

回到 S3 bucket 頁面,將包含車牌的圖片上傳,並等待結果
https://ithelp.ithome.com.tw/upload/images/20240430/20166873Tf17vZ38pw.png

可以看到辨識前和辨識後的差別
https://ithelp.ithome.com.tw/upload/images/20240430/20166873C46VmW1X6D.png

參考資料

https://ithelp.ithome.com.tw/articles/10277760
https://blog.csdn.net/m0_50614038/article/details/128122934
https://ithelp.ithome.com.tw/articles/10282533


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言