當(dāng)前位置:首頁 > 工業(yè)控制 > 電路設(shè)計(jì)項(xiàng)目集錦
[導(dǎo)讀]雖然我當(dāng)然不認(rèn)為自己是數(shù)據(jù)科學(xué)家,但多年來我在各種簡單但功能強(qiáng)大的Edge AI項(xiàng)目上進(jìn)行了實(shí)驗(yàn)。為什么?可能是因?yàn)槲彝ǔJ褂玫南鄬κ芟薜挠布m合于構(gòu)建更簡單、不那么雄心勃勃的產(chǎn)品。但有了Edge AI,我們可以執(zhí)行以前認(rèn)為在小型硬件上不可能完成的艱巨任務(wù)。

雖然我當(dāng)然不認(rèn)為自己是數(shù)據(jù)科學(xué)家,但多年來我在各種簡單但功能強(qiáng)大的Edge AI項(xiàng)目上進(jìn)行了實(shí)驗(yàn)。為什么?可能是因?yàn)槲彝ǔJ褂玫南鄬κ芟薜挠布m合于構(gòu)建更簡單、不那么雄心勃勃的產(chǎn)品。但有了Edge AI,我們可以執(zhí)行以前認(rèn)為在小型硬件上不可能完成的艱巨任務(wù)。

作為嵌入式設(shè)備上機(jī)器學(xué)習(xí)的早期先驅(qū)(又名TinyML或Edge AI), Edge Impulse已經(jīng)發(fā)展成為開發(fā)人員最喜歡的,當(dāng)涉及到構(gòu)建,測試和部署機(jī)器學(xué)習(xí)模型時,從小型esp32到最新的Jetson Orin Nano Super都可以運(yùn)行。

在這個項(xiàng)目中,我通過展示如何構(gòu)建一個“多模型”項(xiàng)目,在我的邊緣人工智能之旅中邁出了下一步。由于單個ML模型不能總是執(zhí)行我們需要的每個計(jì)算或生成我們需要的每個推理,我們可能需要有效地將多個模型鏈接在一起以實(shí)現(xiàn)我們產(chǎn)品的目的。

具體來說,我們將學(xué)習(xí)如何:

?利用邊緣脈沖建立一個目標(biāo)檢測模型。

?并利用邊緣脈沖建立了異常檢測模型。

?編寫一個Python應(yīng)用程序,并將應(yīng)用程序+模型部署到Raspberry Pi 5上。

?生成實(shí)時短信和電子郵件警報時,檢測到異常,使用藍(lán)調(diào)筆記卡蜂窩。

今天,我們的假冒公司生產(chǎn)磚。具體來說,就是那些帶有藍(lán)軍標(biāo)志的小磚塊。隨著這些新磚從傳送帶上下來,我們想分析它們的問題。當(dāng)發(fā)現(xiàn)“壞磚”時,我們也想要即時通知。

因此,我們將看到當(dāng)應(yīng)用程序運(yùn)行時,我們的對象(磚塊)將被對象檢測模型檢測到,然后被異常檢測模型掃描異常。如果達(dá)到指定的異常計(jì)數(shù),將生成警報并通過蜂窩發(fā)送到云,用于SMS和電子郵件通知(附帶異常圖像!)。

想看看實(shí)際的項(xiàng)目嗎?加入我們2月27日的網(wǎng)絡(luò)研討會:智能視覺,智能工業(yè):邊緣脈沖和藍(lán)色異常檢測

首先,讓我們快速看看我們今天將使用的兩個關(guān)鍵平臺:Edge Impulse和Blues。

Edge Impulse簡介

如果你還不熟悉Edge Impulse,他們提供了一個強(qiáng)大的平臺,用于在受限設(shè)備上構(gòu)建、測試、部署和優(yōu)化Edge AI模型。

我們將使用Edge Impulse Studio來構(gòu)建部署到樹莓派5的對象檢測和異常檢測ML模型。

藍(lán)調(diào)簡介

bluesnotecard及其配套的云服務(wù)Notehub允許在幾乎任何主機(jī)微控制器或單板計(jì)算機(jī)(如樹莓派)上添加無線連接。

Notecard提供蜂窩,LoRa,Wi-Fi和衛(wèi)星選項(xiàng),是各種規(guī)模的物聯(lián)網(wǎng)項(xiàng)目的易于使用的低功耗選項(xiàng)。

Notecard是用基于json的API編程的,它可以在所有無線電類型中工作,以及用于流行語言(如C, Arduino和Python)的sdk。

正如我們今天將看到的,Blues云服務(wù)Notehub與Notecard配對以提供安全的雙向通信。您可以發(fā)送/接收事件(或blue語言中的Notes),并將這些出站Notes路由到任何云服務(wù)(現(xiàn)在是AWS)。

好了,讓我們開始建造吧!

構(gòu)建目標(biāo)檢測模型

我們的第一步是獲取足夠的圖像來構(gòu)建一個機(jī)器學(xué)習(xí)模型,該模型可以準(zhǔn)確地識別傳送帶上的磚塊。

我們可以從這個Python腳本開始,它使用Pi Camera模塊每1.5秒拍攝一次移動的傳送帶的照片。

注意:這個項(xiàng)目的完整Python源代碼可以在GitHub上找到,物體檢測邊緣脈沖項(xiàng)目也可以在這里找到。

允許Python腳本運(yùn)行并保存足夠的磚塊在傳送帶上不同位置的圖像(我開始時大約有100個)。有了保存到Pi的圖像,是時候在邊緣脈沖工作室創(chuàng)建一個新項(xiàng)目了。

轉(zhuǎn)到Data acquisition選項(xiàng)卡并上傳您剛剛保存的所有圖像。請注意,它會自動將圖像分為訓(xùn)練集和測試集。(稍后我們將回到測試方面。)

接下來,每個圖像需要將每個磚標(biāo)記為這樣。這有點(diǎn)乏味,但Edge Impulse Studio內(nèi)部的工具確實(shí)使這成為一個相對痛苦的過程!

下一步是創(chuàng)建你的“沖動”(Edge impulse用來描述完整的ML管道)。前往Impulse設(shè)計(jì)選項(xiàng)卡并遵循提供的默認(rèn)選項(xiàng)(Edge Impulse在幫助您根據(jù)已提供的數(shù)據(jù)選擇正確選項(xiàng)時非常聰明!)。

然后,您將前往圖像選項(xiàng)卡,從標(biāo)記的圖像生成功能。在我們的例子中,我們只創(chuàng)建了一個功能:“磚塊”。

接下來,訪問Object detection選項(xiàng)卡來訓(xùn)練模型。所有的培訓(xùn)都發(fā)生在云端,所以不需要本地工具或花哨的gpu !

一旦您的模型得到訓(xùn)練,就轉(zhuǎn)到模型測試選項(xiàng)卡。還記得分配給測試集的映像嗎?好吧,因?yàn)檫@些被標(biāo)記但不用于訓(xùn)練模型,它們是模型快速測試的完美候選者。

你應(yīng)該會發(fā)現(xiàn)80-90%的對象(磚塊)被成功檢測!

現(xiàn)在可以在樹莓派上下載模型文件。有關(guān)如何在Pi上設(shè)置Edge Impulse CLI的說明,請參閱Edge Impulse文檔。

要登錄到Edge Impulse并下載剛剛創(chuàng)建的模型文件,您將在Pi上使用這樣的命令:

建立異常檢測模型

在這一點(diǎn)上,我們有一個功能對象檢測模型,將識別傳送帶上的磚塊。很好,但現(xiàn)在我們要仔細(xì)檢查每塊磚是否有異常。

和上一個模型一樣,我們的第一步是獲取磚塊的圖像。不幸的是,我們不能使用與前一步相同的圖像,因?yàn)槲覀冃枰@些新圖像特定于磚塊本身,而不需要任何其他周圍環(huán)境。

幸運(yùn)的是,Edge Impulse的Louis Moreau構(gòu)建了一個基于flask的python應(yīng)用程序,讓我們可以使用我們剛剛創(chuàng)建的對象檢測模型來保存磚塊的單個圖像。

注意:這個Python腳本是從前面提到的項(xiàng)目派生出來的。這個版本包含了一些輕微的調(diào)整,但所有的功勞都是路易斯的!此外,你可以在Edge Impulse Studio找到我的這個ML項(xiàng)目版本。

當(dāng)你將——save-images-interval標(biāo)志傳遞給這個Python腳本時,它會按照你指定的節(jié)奏(以秒為單位)簡單地保存檢測到的對象圖像:

讓一些磚塊在傳送帶上運(yùn)行,這個Python應(yīng)用程序?qū)⒃诙虝r間內(nèi)生成許多有用的磚塊圖像。

回到Edge Impulse Studio,為異常檢測模型創(chuàng)建一個新項(xiàng)目。

轉(zhuǎn)到圖像采集選項(xiàng)卡并上傳您剛剛保存的所有圖像。這一次,您可以指定一個標(biāo)簽,而不是單獨(dú)標(biāo)記圖像。“無異?!?上載時,所有圖片。

進(jìn)入沖量選項(xiàng)卡,設(shè)置沖量:

之后,完成模型的步驟與之前相同:

前往圖像選項(xiàng)卡生成功能。

轉(zhuǎn)到視覺異常檢測選項(xiàng)卡來訓(xùn)練你的模型。

在model testing選項(xiàng)卡下測試您的模型。

您可以點(diǎn)擊一個單獨(dú)的測試樣本,看看是否/為什么邊緣脈沖檢測到任何異常在您的測試圖像。在接下來的例子中,我意識到傳送帶的一小部分反射了很多光,導(dǎo)致模型認(rèn)為這是磚的異常!

使用與上面相同的命令下載模型文件,但這次使用——clean參數(shù)切換到新項(xiàng)目:

這樣,我們就完成了Edge Impulse。是時候了解更多關(guān)于安全無線連接的信息了!

設(shè)置藍(lán)調(diào)記事卡和Notehub

這個項(xiàng)目的Blues Notecard和Notehub的優(yōu)點(diǎn)是能夠使用蜂窩,LoRa, Wi-Fi或衛(wèi)星連接,同時使用相同的,簡單的基于json的API。

現(xiàn)在,雖然許多基于pi的項(xiàng)目可以使用機(jī)載Wi-Fi,但通常部署在Wi-Fi范圍之外,或者本地IT不希望為不安全/未知的設(shè)備提供Wi-Fi訪問。

當(dāng)您選擇Notecard和Notehub,你有一個交鑰匙,完全安全的云管道在您的處置!

記事卡硬件設(shè)置

在這個項(xiàng)目中,我們將使用即將發(fā)布的“中頻”Notecard Cellular。這款Notecard變體使用LTE Cat-1 bis,這是一種用于支持物聯(lián)網(wǎng)應(yīng)用的LTE協(xié)議。它提供與Cat-1相同的吞吐量和延遲,在任何支持LTE的地方都支持,但更便宜,只需要一個天線設(shè)計(jì)即可運(yùn)行。

記事卡插到一個叫做記事卡的載體板上。目前使用的是專用于Raspberry Pi兼容的單板計(jì)算機(jī),稱為Notecarrier Pi Hat。這個帽子然后通過提供的頭插入樹莓派。

記事卡軟件設(shè)置

Notecard的API都是基于json的。這意味著您向Notecard發(fā)送(和從Notecard接收)的所有內(nèi)容都是JSON。例如,要獲得Notecard的GPS位置,您可以使用該卡。位置API:

...并以JSON格式返回請求的數(shù)據(jù):

但是,在使用Python這樣的語言時,最好使用note-python庫與Notecard進(jìn)行接口。

在提供的Python腳本中,您將看到發(fā)送了幾個命令來配置Notecard以與云通信。讓我們快速瀏覽一下:

首先,我們使用樞紐。設(shè)置API來告訴Notecard在Notehub中使用哪個云項(xiàng)目(是的,我們將在稍后創(chuàng)建一個免費(fèi)的Notehub項(xiàng)目):

其次,可選地創(chuàng)建一個模板,有效地為Notecard提供一個“提示”,以便更有效地存儲數(shù)據(jù)并將數(shù)據(jù)發(fā)送到Notehub。模板API:

被語法弄糊涂了?“異?!焙汀癷mage_data”旁邊的那些值只是作為提示告訴Notecard異常計(jì)數(shù)將是2字節(jié)帶符號的整數(shù),圖像數(shù)據(jù)將是字符串(base64編碼的圖像字符串)。

再往下,我們將得到最后一個Notecard命令,那就是筆記。添加API。這將在每次檢測到異常圖像時創(chuàng)建一個注釋(或事件),并將異常計(jì)數(shù)(以及前面提到的二進(jìn)制圖像數(shù)據(jù)的base64編碼字符串)發(fā)送到云:

注意:同樣,請務(wù)必查閱該項(xiàng)目的完整源代碼,以便在上下文中更好地理解這些命令。

Notehub云設(shè)置

前往notehub。創(chuàng)建您的免費(fèi)藍(lán)調(diào)Notehub帳戶。

創(chuàng)建您的第一個項(xiàng)目并復(fù)制您的全局唯一產(chǎn)品標(biāo)識符:

這個字符串表示Python腳本中使用的NOTEHUB_PRODUCT_UID的值。

當(dāng)您使用Notecard和Notehub時,這就是將您的產(chǎn)品連接到云所需要的全部!

運(yùn)行Python應(yīng)用

是時候開始談?wù)铝?。如果此時運(yùn)行Python腳本,它將執(zhí)行以下操作:

掃描視頻饋送中的物體(磚塊)。

如果發(fā)現(xiàn)了磚塊,它將使用第二個ML模型掃描異常情況。

如果在一張圖像中發(fā)現(xiàn)足夠多的異常,它將發(fā)送一個事件(一個筆記)到Notehub。

事實(shí)上,你會看到這些數(shù)據(jù)開始出現(xiàn)在Notehub:

這很棒,但是我們?nèi)匀蝗鄙倥c我們的云服務(wù)的集成,今天的云服務(wù)是一個AWS Lambda函數(shù),用于接收來自Notehub的數(shù)據(jù),而Twilio + SendGrid用于接收短信和電子郵件通知。

創(chuàng)建AWS Lambda函數(shù)

lambda是非常容易創(chuàng)建的云函數(shù),它允許您處理來自任意源的入站數(shù)據(jù)(從Notehub路由數(shù)據(jù)的完美候選)。

Lambda函數(shù)的完整源代碼可以在GitHub上找到。

我將指出一些關(guān)鍵部分:

將圖像保存到S3

當(dāng)Notehub將事件路由到Lambda時,我們希望將base64編碼的字符串作為jpeg圖像保存到S3桶中(是的,這意味著您還必須在AWS中設(shè)置S3桶):

然后,我們需要在S3中為該圖像生成一個安全的URL,以便我們可以將其傳遞給Twilio和SendGrid以發(fā)出警報:

最后,我們將使用Twilio和SendGrid sdk來發(fā)送SMS和電子郵件通知。

以下是Twilio所需的代碼:

注意:我正在掩蓋設(shè)置Twilio和SendGrid帳戶的一些要求。要完成這一步,您將需要兩個服務(wù)中的一些密鑰、id和令牌,因此請查看Twilio文檔和SendGrid文檔。

最后,確保部署Lambda函數(shù)并從Configuration選項(xiàng)卡復(fù)制function URL,因?yàn)槟鷮⒃谙乱徊街杏玫剿?

將數(shù)據(jù)從Notehub路由到AWS

我們的最后一步(我保證)是在Notehub中配置一條路由,將事件發(fā)送給Lambda函數(shù)。

返回到Notehub并單擊Routes選項(xiàng)卡。

使用“AWS”選項(xiàng)創(chuàng)建一條新路由:

確保在Type下拉框中選擇Lambda(這是默認(rèn)的),并將函數(shù)URL粘貼到URL字段中:

向下滾動一點(diǎn),確保你的異常。qo選擇Notefile作為唯一將被路由到Lambda函數(shù)的Note/事件(否則,來自您的Notecard的所有事件也將被發(fā)送到AWS):

一定要保存路線,這樣你就萬事通了!

回到你的樹莓派,讓我們再次運(yùn)行Python應(yīng)用程序:

嘗試切換對象的位置,混淆其中的一些,或者以其他方式制造一個“異常”。如果你觀察Pi終端的輸出,你應(yīng)該會看到檢測到的異常:

在一個重要的異常檢測后,在幾秒鐘內(nèi),你會看到這些事件顯示在Notehub和圖像文件將出現(xiàn)在你的S3桶:

最后,您將看到短信和電子郵件通知,讓您知道檢測到異常情況(以及在對象本身上識別異常的有用圖像!):

下一個步驟

我希望你能體驗(yàn)到使用Edge Impulse實(shí)現(xiàn)多模型邊緣人工智能解決方案是多么容易,并將其與Blues, AWS和Twilio + SendGrid連接到云。

今天用你自己的Notecard和noteccarrier Pi Hat開始使用Blues(或者如果你想使用基于stm32的微控制器,可以查看Blues Starter Kit for Cell+WiFi)。

本文編譯自hackster.io

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉