不論是人臉、文本或其他圖像數據,使用嵌入式系統執行現場圖像識別的需求與日俱增。許多實現需要昂貴的高端應用處理器以及昂貴的定制應用代碼。此外,圖像處理是在片上執行的,這可能讓成本和開發時間翻倍,令設計人員難以證明資源投入的合理性。
一種潛在的解決方案是,使用可連接至 Google 云平臺 (GCP) 的嵌入式微控制器,并使用 Google 視覺 API 來執行分析。這在利用低成本硬件優勢的同時,還能將處理操作分流到云。
本文將探討嵌入式開發人員如何利用 GCP 和 STMicroelectronics 的 STM32F779 微控制器來設置和執行圖像識別。
機器視覺簡介
識別圖像中的對象并加以標識,這一功能見諸于各類廣泛應用中,包括自主駕駛車輛中的障礙物識別,以及為離開裝配線的產品進行編目分類。有鑒于此,機器視覺正致力于幫助嵌入式系統實現全新的智能水平。
一般而言,在嵌入式系統中實現機器視覺往往會采用高性能處理器或應用處理器,例如 Pi Supply 的 Raspberry Pi Zero(圖 1)。這一低成本的開發板擁有一個相機連接器,用于捕捉可供機器視覺算法進行分析的圖像。
圖 1:Raspberry Pi Zero 是一款低成本的開發板,它擁有一個相機接口,用于捕捉可供機器視覺算法進行分析的圖像。(圖片來源:Pi Supply)
在這些應用中,開發人員可能會使用 OpenCV 等工具進行人臉檢測,或使用更高級的軟件包來執行對象檢測。
在深度嵌入式應用中,應用處理器解決方案存在的問題在于,功耗和外形尺寸往往過大,無法滿足要求,更不用說 BOM 成本。
基于云的計算為開發人員提供了一種引人關注的折衷。與其將前期成本花在獲取集成式解決方案所需的高端計算、軟件和時間上,開發人員不如使用一個深度嵌入式目標來捕捉圖像,然后將其傳輸到云中進行處理。這使得開發人員可以使用高能效、低成本的硬件平臺,并將圖像識別和計算留給云服務器來處理。
使用云服務和視覺識別 API 會帶來少量相關成本;但考慮到大多數物聯網解決方案已經連接到 Web,此額外成本極低,具體則視特定云服務提供商而異。
選擇機器視覺平臺
有興趣在深度嵌入式處理器上使用機器視覺的開發團隊可以選擇的處理器和平臺非常之多。目標平臺應該能夠提供可快速啟動和運行的構件,并且已包含基本連接軟件。Renesas 的 AE-Cloud1 便是一個很好的例子,該器件旨在幫助開發人員在不超過 10 分鐘的時間內,連接至 Amazon Web Services (AWS) 等云服務提供商(圖 2)。
AE-Cloud1 基于 Renesas S5 處理器,并包含 Renesas 的 YSAEWIFI-1 Wi-Fi 模塊,該模塊旨在幫助開發人員快速、輕松地連接到 AWS。開發套件還包含一個調試器。
圖 2:Renesas AE-Cloud1 開發板基于 Renesas S5 處理器并包含 Wi-Fi 模塊和調試器。(圖片來源:Renesas)
開發團隊也可能會使用 STMicroelectronics 的 STM32 物聯網 Discovery 開發板,該器件運行 Amazon FreeRTOS 操作系統,開發人員可輕松將其連接到 AWS。
開發人員可以使用多種不同的軟硬件組合來創建機器視覺解決方案,包括 STMicroelectronics 的 STM32F779 評估板(圖 3)。其眾多功能中包括了板載相機、以太網連接和一塊 LCD。所有功能可結合使用,來捕捉圖像和驗證機器視覺應用。
圖 3:STM32F779 評估板基于 STM32F779 微處理器,包含一個板載相機、以太網連接,以及一塊可用于采集、查看和監視機器視覺應用的顯示屏。(圖片來源:Digi-Key Electronics)
該開發板使用 Texas Instruments 的 DP83848CVV 控制器,提供以太網物理層 (PHY),使總體解決方案適合各種工業環境。
設置用于機器視覺的 Google 云平臺
嵌入式開發人員可在其應用中使用基于云的多種不同機器視覺服務。其中包括 Google 云平臺和 Amazon Rekognition。在本文中,我們將了解如何設置 Google 云平臺視覺 API。
要設置視覺 API,最簡單的方法是訪問“Before You Begin”(準備工作)頁面。此頁包含設置和配置視覺 API 需要遵循的所有指示。開始之前,開發人員需要擁有一個 Google 帳戶,用于登錄和配置視覺項目。首次使用 GCP 的用戶將獲得一年的免費使用權,用于原型開發和平臺試驗。
圖 4:設置用于機器視覺的 Google 云平臺需要遵循的主要步驟。提供 12 個月的免費試用期。(圖片來源:Beningo Embedded Group)
開發人員配置視覺 API 需要遵循的主要步驟包括:
-
創建新項目
-
確保啟用賬單(最初提供 12 個月的試用,之后的費用不超過 300 美元,但未經明示許可不會收取費用)
-
啟用云視覺 API
創建新項目是通過 GCP 控制臺完成的,只需單擊“New Project”(新建項目)并提供項目名稱便可,例如“Embedded Vision”。啟用 API 的方法是,單擊“Enable API”(啟用 API)按鈕,然后選擇剛剛創建的項目。這將啟用 API,但真正重要的是生成 API 憑據,這一過程其實也相當簡單。
通過在項目界面中選擇“API Services and Credentials”(API 服務和憑據)可以找到憑據。然后,開發人員將通過單擊“Create Credentials”(創建憑據)按鈕創建憑據(圖 5)。
圖 5:GCP 視覺 API 鍵是通過 GCP 界面創建的。嵌入式平臺必須使用此鍵,以便訪問視覺識別功能。(圖片來源:Beningo Embedded Group)
至此,視覺 API 設置完畢,隨時可用于嵌入式系統中。嵌入式系統需要采集圖像,然后使用視覺 API 將圖像傳輸到云中進行圖像識別。
STM32F779 上的機器識別
在嵌入式系統上用于連接到 GCP 的軟件將會根據開發人員選擇使用或決定自行創建的系統而異。我最近曾將 STM32F779 與 Express Logic X-Ware 物聯網平臺搭配使用,該平臺已創建一個將機器視覺與 GCP 配合使用的簡單演示。
該演示非常簡單;用戶可以通過 LCD 觸摸屏,使用 STM32F779 評估板上的相機拍攝一張照片。拍攝照片后,用戶可以選擇對對象還是文本進行圖像分析。我決定進行一項有趣的測試,即在閃卡上書寫“Hello World!”,然后將其提供給相機。從軟件開發人員的角度而言,“Hello World!”看起來無疑是首次機器視覺測試的合理選擇。
測試結果非常成功!捕捉到圖像后,GCP 視覺 API 成功一致地識別并確定文本,以及我所提供的其他文字。我決定嘗試一種極端情形,即提供快速書寫的有些模糊的圖像,看看系統能否識別書寫內容。捕捉的圖像和結果如圖 6 所示。這種情況下,除了書寫潦草的字母“d”被識別為“j”之外,幾乎完全正確地識別了模糊的“Hello World!”。
圖 6:從 Express Logic X-Ware 物聯網平臺的 GCP 視覺 API 所返回結果的屏幕截圖?!癢orld”中的字母“d”的識別結果很有趣。(圖片來源:Beningo Embedded Group)
有趣的是,我多次將完全相同的書寫內容提供給相機,由于我書寫的字母“d”比較潦草且偏離了焦點,因此得到的正確識別率約為 50%。查看終端日志后可以發現,識別結果為“Hello World”和“Hello WorlJ”的次數各半(圖 7)。
圖 7:GCP 視覺 API 響應產生的終端輸出顯示所提交圖像中被識別的文本。(圖片來源:Beningo Embedded Group)
現在,在此示例中,我從人類的角度可以了解云視覺算法為何難以識別該字符。即便在我自己看來,它也有兩種形式,所以這的確是項有趣的測試。
在嵌入式系統上實現機器視覺的技巧和訣竅
開發人員在開發機器視覺應用時可以遵循多項技巧和訣竅。其中包括:
-
如果視覺識別沒有實時或確定的截止期限,則將圖像識別分流到云中。
-
使用嵌入式軟件平臺簡化到基于云的機器視覺服務的連接。
-
默認情況下,Google 視覺 API 處于禁用狀態,必須手動啟用才能使用該項服務。
-
不要忘了在所用的軟件平臺中輸入您的 Google API 鍵:它將用于驗證使用該 API 的權限。
-
GCP 提供了基本的一年免費試用,可用于開發系統和制作系統原型。
-
確保圖像或文本已正確定位并且清晰可見,以便減少識別錯誤。
總結
通過利用云中的高性能處理,可以大幅簡化基于低成本嵌入式系統的機器視覺應用。傳統上,有興趣使用機器視覺的開發人員必須針對其應用,使用應用處理器,并且開發先進的軟件或獲得許可。
有了 Google 云平臺和低成本的微控制器及開發套件,開發人員便能以極低的成本獲取圖像和文本識別功能。開發人員還可以使用廣泛提供的可擴展軟件平臺,幫助簡化安全的云連接,同時簡化應用開發。
-
STM32
+關注
關注
2266文章
10876瀏覽量
354923 -
機器視覺
+關注
關注
161文章
4348瀏覽量
120133 -
圖像識別
+關注
關注
9文章
519瀏覽量
38240
發布評論請先 登錄
相關推薦
評論