跳至主要内容

從物聯網設備檢查水果質量

本課程的手繪筆記概述

手繪筆記由 Nitya Narasimhan 提供。點擊圖片查看大圖。

課前測驗

課前測驗

介紹

在上一課中,你學習了圖像分類器,以及如何訓練它們來檢測好壞水果。要在物聯網應用中使用這個圖像分類器,你需要能夠使用某種相機捕捉圖像,並將這個圖像發送到雲端進行分類。

在本課中,你將學習相機傳感器,以及如何使用它們與物聯網設備捕捉圖像。你還將學習如何從你的物聯網設備調用圖像分類器。

在本課中,我們將涵蓋:

相機傳感器

顧名思義,相機傳感器是你可以連接到物聯網設備的相機。它們可以拍攝靜態圖像,或捕捉流媒體視頻。有些會返回原始圖像數據,其他則會將圖像數據壓縮成JPEG或PNG等圖像文件。通常,與物聯網設備配合使用的相機比你可能習慣的要小得多,分辨率也低得多,但你可以獲得與高端手機媲美的高分辨率相機。你可以獲得各種可互換鏡頭、多相機設置、紅外熱成像相機或紫外線相機。

場景中的光線通過鏡頭並聚焦在CMOS傳感器上

大多數相機傳感器使用圖像傳感器,其中每個像素都是一個光電二極管。鏡頭將圖像聚焦到圖像傳感器上,成千上萬或數百萬個光電二極管檢測到每個光電二極管上的光,並將其記錄為像素數據。

💁 鏡頭會將圖像倒置,相機傳感器會將圖像翻轉回正確的方向。這與你的眼睛相同——你看到的圖像在你的眼睛後部是倒置的,你的大腦會將其校正。

🎓 圖像傳感器被稱為主動像素傳感器(APS),最流行的APS類型是互補金屬氧化物半導體傳感器,或CMOS。你可能聽過CMOS傳感器這個術語用於相機傳感器。

相機傳感器是數字傳感器,將圖像數據作為數字數據發送,通常借助提供通信的庫。相機使用SPI等協議連接,以允許它們發送大量數據——圖像比溫度傳感器等傳感器的單個數字大得多。

✅ 物聯網設備在圖像大小方面有哪些限制?考慮特別是微控制器硬件的限制。

使用物聯網設備捕捉圖像

你可以使用你的物聯網設備捕捉圖像進行分類。

任務 - 使用物聯網設備捕捉圖像

通過相關指南使用你的物聯網設備捕捉圖像:

發布你的圖像分類器

你在上一課中訓練了你的圖像分類器。在你能從物聯網設備使用它之前,你需要發布模型。

模型迭代

當你的模型在上一課中訓練時,你可能注意到性能標籤顯示了側面的迭代。在你第一次訓練模型時,你會看到迭代1在訓練中。當你使用預測圖像改進模型時,你會看到迭代2在訓練中。

每次你訓練模型,你都會得到一個新的迭代。這是一種跟踪在不同數據集上訓練的不同版本模型的方法。當你進行快速測試時,有一個下拉菜單可以用來選擇迭代,以便你可以比較多個迭代的結果。

當你對某個迭代滿意時,你可以發布它,使其可以從外部應用程序使用。這樣,你可以有一個發布的版本供你的設備使用,然後在多個迭代中工作一個新版本,然後在你滿意時發布它。

任務 - 發布一個迭代

迭代從Custom Vision門戶發布。

  1. CustomVision.ai啟動Custom Vision門戶並登錄,如果你還沒有打開它。然後打開你的fruit-quality-detector項目。

  2. 從頂部選項中選擇性能標籤

  3. 從側面的迭代列表中選擇最新的迭代

  4. 選擇該迭代的發布按鈕

    發布按鈕

  5. 發布模型對話框中,將預測資源設置為你在上一課中創建的fruit-quality-detector-prediction資源。將名稱保留為Iteration2,然後選擇發布按鈕。

  6. 發布後,選擇預測URL按鈕。這將顯示預測API的詳細信息,你需要這些來從你的物聯網設備調用模型。下部標有如果你有圖像文件,這是你需要的詳細信息。複製顯示的URL,類似於:

    https://<location>.api.cognitive.microsoft.com/customvision/v3.0/Prediction/<id>/classify/iterations/Iteration2/image

    其中<location>是你創建自定義視覺資源時使用的位置,<id>是一個由字母和數字組成的長ID。

    還要複製預測密鑰值。這是一個安全密鑰,你在調用模型時必須傳遞。只有傳遞此密鑰的應用程序才允許使用該模型,其他任何應用程序都會被拒絕。

    預測API對話框顯示URL和密鑰

✅ 當發布新迭代時,它將有不同的名稱。你認為如何更改物聯網設備使用的迭代?

從你的物聯網設備分類圖像

你現在可以使用這些連接詳細信息從你的物聯網設備調用圖像分類器。

任務 - 從你的物聯網設備分類圖像

通過相關指南使用你的物聯網設備分類圖像:

改進模型

你可能會發現,使用連接到你的物聯網設備的相機時,得到的結果與你預期的不符。預測結果並不總是像從你的計算機上傳的圖像那樣準確。這是因為模型是在不同的數據上訓練的,而不是用於預測的數據。

要獲得圖像分類器的最佳結果,你希望使用與預測圖像盡可能相似的圖像來訓練模型。例如,如果你使用手機相機捕捉圖像進行訓練,圖像質量、清晰度和顏色將與連接到物聯網設備的相機不同。

2張香蕉圖片,一張是物聯網設備拍攝的低分辨率、光線差的圖片,另一張是手機拍攝的高分辨率、光線好的圖片

在上圖中,左邊的香蕉圖片是使用樹莓派相機拍攝的,右邊的是在相同位置使用iPhone拍攝的同一香蕉。質量有明顯差異——iPhone圖片更清晰,顏色更亮,對比度更高。

✅ 還有什麼可能導致你的物聯網設備捕捉的圖像預測不準確?考慮物聯網設備可能使用的環境,哪些因素會影響捕捉的圖像?

要改進模型,你可以使用從物聯網設備捕捉的圖像重新訓練它。

任務 - 改進模型

  1. 使用你的物聯網設備分類多張成熟和未成熟水果的圖像。

  2. 在Custom Vision門戶中,使用預測標籤上的圖像重新訓練模型。

    ⚠️ 如果需要,你可以參考第1課中重新訓練分類器的說明

  3. 如果你的圖像與用於訓練的原始圖像非常不同,你可以通過在訓練圖像標籤中選擇它們並選擇刪除按鈕來刪除所有原始圖像。要選擇圖像,將光標移到圖像上,會出現一個勾選,選擇該勾選以選擇或取消選擇圖像。

  4. 訓練模型的新迭代,並使用上述步驟發布它。

  5. 更新代碼中的端點URL,並重新運行應用程序。

  6. 重複這些步驟,直到你對預測結果滿意為止。


🚀 挑戰

圖像分辨率或光線對預測有多大影響?

嘗試在設備代碼中更改圖像的分辨率,看看是否對圖像質量有影響。還可以嘗試更改光線。

如果你要創建一個銷售給農場或工廠的生產設備,你將如何確保它始終提供一致的結果?

課後測驗

課後測驗

回顧與自學

你使用門戶訓練了你的自定義視覺模型。這依賴於有可用的圖像——在現實世界中,你可能無法獲得與設備相機捕捉的圖像匹配的訓練數據。你可以通過使用訓練API直接從設備進行訓練來解決這個問題,使用從你的物聯網設備捕捉的圖像訓練模型。

作業

回應分類結果