色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>基于ML的鳥類和松鼠檢測器(Raspberry Pi和AWS)

基于ML的鳥類和松鼠檢測器(Raspberry Pi和AWS)

2022-11-15 | zip | 0.49 MB | 次下載 | 免費

資料介紹

描述

系統總覽

如下圖所示,Raspberry Pi 將圖片從我的喂鳥器發送到 AWS 的 S3 存儲桶。當新圖像到達 S3 時,這會調用 Python Lambda 函數,將照片發送到 AWS Rekognition,后者使用其基于 ML 的圖像識別功能來確定照片中的內容。如果檢測到一只鳥,這會觸發一條發送至 SNS 主題的消息,您可以使用該消息來獲取文本或電子郵件。如果檢測到松鼠,則會向不同的 SNS 主題發送一條消息。因此,您可以使用文本通知自己發現了松鼠,這樣您就可以將其趕走,并使用電子郵件通知自己有趣的鳥類。或者你甚至可以連接 Raspberry Pi 以向任何入侵喂鳥器的松鼠射水(這可能是明年夏天的一個項目)。最后,我添加了一個使用AWS S3 靜態網站方式,讓您輕松查看最佳圖片。

要完成這個項目,您需要一些 Python 技能(我已經提供了我的代碼,但您需要根據自己的情況進行一些修改)和對 AWS 的中等程度的了解。

poYBAGNy2mCAaleCAABaemuQTmg675.png
系統架構
?

硬件

在封面照片中,您可以看到我的 Raspberry Pi 4 和高質量 (HQ) 相機。我開始使用適合 HQ 相機的 50 美元長焦鏡頭,但我已經改用從佳能 EOS 相機借來的佳能鏡頭。您需要購買一個適配器(來自 Arducam)才能將佳能鏡頭連接到相機(30 美元),但這非常值得。使用這樣的優質鏡頭,圖像非常好,而且與我原來的鏡頭不同,您可以盡可能近地放大。

樹莓派運動檢測

Raspberry Pi 只是一個帶有 ARM 處理器的非常小的 Linux 機器。有一個名為PI-TIMOLO的軟件包,我發現它非常有用。您可以在 Raspberry Pi 上運行它來檢測運動,并自動拍攝照片。您不需要將紅外運動檢測器連接到 Raspberry Pi(盡管這可能不是一個壞主意)。PI-TIMOLO 掃描來自您的相機的低分辨率流,如果它檢測到從一幀到下一幀的顯著差異,它會斷定某些東西已經移動,并暫時停止流,拍攝一張高分辨率照片并將其放入文件夾。

我將帶有長焦鏡頭的 Raspberry Pi 高質量 (HQ) 相機對準我的喂鳥器并設置了 PI-TIMOLO。您需要調整幾個 PI-TIMOLO 設置才能在特定情況下獲得良好的效果,但您可以忽略很多設置,例如與視頻和全景照片相關的設置。只需專注于圖像和運動設置。我將放一個我在 Github 存儲庫中使用的 PI-TIMOLO 設置的示例。

我在 Raspberry Pi 上運行了一個小型 Python 程序,它控制 PI-TIMOLO 放置照片的目錄。如果我的代碼在該文件夾中檢測到一張新照片,它會裁剪照片(稍后我將解釋)并進行 API 調用以將其發送到 AWS 中的 S3 存儲桶。這是代碼:

https://github.com/mesadowski/RaspberryPi-Bird-Image-Recognition/blob/main/s3_send_bird_pic_crop.py

要使此代碼正常工作,您需要在 Raspberry Pi 上安裝 boto(AWS Python 開發工具包),并在 AWS 中創建一個有權寫入 S3 的 IAM 用戶。您需要將該 IAM 用戶的 AWS 用戶憑證復制并粘貼到 Raspberry Pi 上 .aws 或 .boto 文件夾中的憑證文件中,以便您的 Python 代碼具有將文件放入 S3 存儲桶所需的憑證。

AWS S3、Lambda、Rekognition 和 SNS

一旦開始工作,您就可以在 AWS 中創建一個 lamdba 函數。Lambda 是 AWS 的旗艦無服務器計算服務。Lambda 是一段代碼,一旦被某個觸發器調用就會運行,觸發器可能是傳入的 API 調用或計時器,或者在我的情況下,是到達 S3 存儲桶的東西。一旦完成它的工作,Lambda 就會終止。這對我的基于 ML 的鳥和松鼠檢測器來說很好,因為它讓我無需運行單個服務器即可運行應用程序,因此非常經濟。在 AWS S3、Lambda、Rekognition 和 SNS 以及 S3 靜態網站之間,我擁有所有這些強大的功能,包括最先進的圖像識別、云存儲以及電子郵件和文本通知,而且它實際上是如果我可以接受標準的 Rekognition 服務(即,不是自定義標簽——稍后會詳細介紹),則免費。只需確保您的 Raspberry Pi 不會瘋狂地向 S3 發送太多照片,例如,如果您的運動檢測設置過于寬松,因為最終可能會增加太多的 API 調用。但是,如果相機每天拍攝大約 200 張照片,則運行成本很低,因為 AWS 免費套餐每月為您提供 5,000 次 Rekognition 調用。

要創建 Lambda,首先,您需要創建 Lambda 將代入的角色,該角色擁有 S3、Lambda、Rekognition 和 SNS 的權限。轉到 AWS 控制臺中的 IAM,并創建一個新角色并為其提供以下策略:

pYYBAGNy2mKAJLIyAADeY4jMy8Q674.png
?

然后轉到 AWS 控制臺中的 Lambda。單擊創建函數,然后選擇從頭開始作者。命名您的 Lambda,并選擇 Python 3.8 作為您的語言,并確保為其提供您之前創建的角色,以便它可以訪問 S3、Rekognition 和 SNS。

poYBAGNy2mWAEmtlAAC3jaGDNcY481.png
?

創建 Lambda 后,您希望將其設置為基于在 S3 中創建的新對象(即從 Raspberry Pi 發送的新照片)觸發。因此,您單擊 Trigger 按鈕并選擇 S3 存儲桶和文件夾(AWS 也稱為前綴),您的圖片將從 Raspberry Pi 發送到其中。然后,是時候輸入你的 Python 代碼了。這是我的,但您需要輸入自己的 SNS 主題標識符:

https://github.com/mesadowski/RaspberryPi-Bird-Image-Recognition/blob/main/BirdLambda.py

醒來后(新圖片到達 S3 時),Lambda 調用 Rekognition API 以查看照片中的內容。Rekognition 是一項 AWS 圖像識別服務。我在我博客上的一篇博文中描述了 Rekognition 簡而言之,如果您向 Rekognition 提供圖像,它會告訴您它認為其中的內容。我發現 Rekognition 的開箱即用訓練使其能夠識別鳥類,并且有時可以識別正確的鳥類種類。它還可以識別松鼠,松鼠是飼養者周圍常見的害蟲。在上面的代碼中,我使用了標準的 Rekognition 服務,該服務經過預先訓練,可以識別常見的物體、動物和名人(以防名人出現在我的喂鳥器周圍)。

所以無論如何,我的 Lambda 代碼調用 Rekognition API 并查看響應以查看 Rekognition 看到的是鳥還是松鼠。我使用 AWS 控制臺創建了兩個 AWS 簡單通知服務 (SNS) 主題:一個用于鳥類觀察,一個用于松鼠觀察。因此,根據 Rekognition 在圖像中看到的內容,我的 Lambda 使用 SNS API 將消息發布到適當的 SNS 主題。您可以通過電子郵件或 SMS 文本訂閱 SNS 主題,并獲得 Rekognition 看到的鳥類類型的通知,以及松鼠目擊事件的通知。

挑戰

將 Raspberry Pi 配置為具有正確的 PI-TIMOLO 和攝像頭設置需要一些時間。您希望 PI-TIMOLO 足夠靈敏以在檢測到鳥時觸發照片,但又不至于敏感到風中飄動的幾片葉子會觸發照片。

這是我第一次開發 Lambda 函數。我已經在我的 Mac 上對大部分代碼進行了原型設計和測試,但是當我在 AWS 控制臺中創建 Lambda 代碼時調試起來有點困難,因為我是通過查看 AWS Cloudwatch 來調試它以查看發生了什么。通常,在您檢查 Cloudwatch 以查看是否有任何錯誤之前,最多有 5 分鐘的延遲。AWS 有一個用于在本地調試 Lambda 的工具(稱為 SAM),因此如果您要創建復雜的 Lambda,這可能值得學習,但這次我設法克服了它。

結果

使用開箱即用的 Rekognition 服務,我很快收到許多通知,告訴我圖片中有喂鳥器(不是開玩笑)或草坪家具。所以很容易過濾掉那些。然后它開始告訴我每張照片中都有草或“自然”,所以我不得不將其過濾掉。最終,我發現 Rekognition 正在識別圖片中有一只鳥的事實,但它無法識別物種。問題是我的圖像質量。以前,當我向 Rekognition 提供專業品質的鳥類照片時,它通常可以識別物種。但是我的照片沒有那么好。我發現通過裁剪照片以使鳥占據圖像的更高部分,Rekognition 傾向于更多地關注鳥并且有時可以識別鳥類。因此,我使用 Python Pillow 庫在我的 Raspberry Pi 代碼中添加了一些裁剪邏輯。從我的 Raspberry Pi 相機裁剪啄木鳥圖像(下圖)并將其發送到 Rekognition 后,我從 SNS 收到了以下通知:

?
?

Detected labels for photo at time 2020-11-22-18:34:11
Bird (Confidence 99.25276184082031)
Flicker Bird (Confidence 78.45641326904297)
Woodpecker (Confidence 78.45641326904297)
Finch (Confidence 54.26727294921875)
in photo new-bird-images/2020-11-22-13-34-09.jpg

這是一只紅腹啄木鳥,因此 Rekognition 確實確定它是一只啄木鳥(有一定的信心),雖然不是紅腹啄木鳥。它還認為它可能是一只閃爍的鳥(和一只雀,信心不足)。那是錯誤的,雖然當我在康奈爾鳥類學網站上查找閃爍時,事實證明它們是啄木鳥的一種,所以這個答案并不完全離譜。然而,Rekognition 有時會給出一些奇怪的結果。例如,下面的照片被 Rekognition 標記為“家禽”。也許它看起來有點像一只小雞?還有一次,Rekognition 認為我后院的一張照片中有一只企鵝。我查了一下,確實是一張黑白鳥的照片。當然,ML 圖像識別模型只知道它們之前提供的訓練圖像(由訓練模型的人提供)。他們不了解圖像的上下文,這會讓他們知道報告我的后院有一只企鵝是荒謬的。

Rekognition 自定義標簽

要獲得真正準確的結果,您可以考慮訓練 Rekognition 自定義標簽(或其他一些涉及自定義訓練的基于 ML 的方法)。按照我之前博客文章中的方法,我使用來自加州理工學院-UCSD 鳥類圖像數據集的圖像來訓練 Rekognition 在我所在地區的常見鳥類上。我放入了一些松鼠的照片,以便 Rekognition 也可以識別它們。訓練模型花了大約 1.4 小時,但結果令人印象深刻(盡管我發現我能夠接近我用幾行 Python 編寫的 fast.ai 模型。你可以在我的博客上閱讀). 在下面,您可以看到 Rekognition 自定義標簽在測試圖像上對東北部各種鳥類(和松鼠)的表現 - 幾乎永遠不會出錯(至少在使用專業質量圖片時)!

poYBAGNy2myAboGMAADZiMqPzm0986.png
?

但是,雖然這項 ML 服務做得非常出色,但對于個人愛好者來說,整天運行的成本太高了。作為 AWS 免費套餐的一部分,您可以獲得幾個小時,但之后每小時收費 4.00 美元。幸運的是,我能夠在我的賬戶中獲得 100 美元的免費 AWS 積分,因此我可以免費試用。為了節省成本,AWS 建議您啟動服務、使用它,并在完成后將其關閉。所以你不能真正運行它幾個小時,這是我最初的設計。但是,對于企業而言,這項服務非常物有所值,而且與其他選項相比,它確實沒有那么貴。

要使用 Rekognition 自定義標簽,您需要稍微更改 Lambda 函數以使用detect_custom_labels API 調用而不是detect_labels調用(這里是 Github 中代碼的鏈接)然后,啟動模型(您可以為此使用 AWS CLI)。如果您在訓練完成后單擊 AWS 控制臺中的模型并滾動到底部,AWS 會為您提供 AWS 命令??行命令,您可以將其剪切并粘貼到終端窗口中。等待幾分鐘,AWS 控制臺最終會告訴您它正在運行。只需確保在完成后停止模型,這樣您就不會繼續收取費用 - 這些可以加起來!

當我嘗試使用 Raspberry Pi 相機拍攝的照片使用 Rekognition 自定義標簽時,最初我發現 Rekognition 自定義標簽無法識別任何內容。但是當我裁剪圖像時,Rekognition 正確地確定我的啄木鳥圖片(上圖)不僅僅是一只啄木鳥,而是一只紅腹啄木鳥。這非常酷,盡管當我向 Rekognition Custom Labels 發送大約 1200 張圖片時,我學到了一些關于訓練模型的艱難課程。鳥類 ID 通常是錯誤的,因為該模型已經在我的喂食器上不太可能看到的圖像上進行了訓練(例如,每年這個時候藍鳥在這里并不常見,但它認為它看到了很多藍鳥)。此外,我的圖像有時會因為鳥在移動而失焦。所以如果我要一直運行這個模型,我

考慮到 Rekognition 自定義標簽的成本,我可能會在一段時間內使用更便宜的現成 Rekognition 運行它,并考慮在未來轉向更便宜的自定義模型(例如fast.我的博客上描述的ai模型)。

PS Raspberry Pi 的人們為 Magpi(Raspberry Pi 官方雜志)寫了一篇關于這個項目的文章。你可以在這里找到它。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 国语自产精品一区在线视频观看 | 中国拍三a级的明星女 | 美女被艹网站 | 亚洲精品高清在线 | 男助理憋尿PLAY灌尿BL出去 | 全部免费特黄特色大片看片 | 妺妺窝人体色777777野大粗 | 亚洲色偷偷偷网站色偷一区人人藻 | 国产美熟女乱又伦AV | www.伊人网| 久久久免费观成人影院 | 国产成人综合高清在线观看 | 乳色吐息在线观看全集免费观看 | 黄小飞二人转 | 国产性色AV内射白浆肛交后入 | 国产精品AV色欲蜜臀在线 | 亚洲成a人不卡在线观看 | 亚洲在线国产日韩欧美 | 色影音先锋av资源网 | 色多多污版app下载网站 | 国产精品成人免费 | 嫩小幼处在线 | 伊人久久青草青青综合 | 亚洲视频国产在线精品 | 日本亚洲精品色婷婷在线影院 | 国产精品99久久久久久AV蜜臀 | 强奷乱码中文字幕熟女免费 | 欧美亚洲日韩国码在线观看 | 男插女高潮一区二区 | MELODY在线播放无删减 | 在线自拍综合亚洲欧美 | 日韩娇小性hd | 免费看毛片网 | 99久久国产露脸精品国产吴梦梦 | 美女脱内衣裸身尿口露出来 | 成人在线视频播放 | 久久九九亚洲精品 | 国产成人精品一区二区三区视频 | 成 人 动漫3d 在线看 | 亚洲欧美中文字幕先锋 | 纯h超级大尺度小黄文 |