資料介紹
。
?
2022 年 3 月 29 日更新。我盡我所能定期更新我的文章,并根據您在 YouTube/Hackster 評論部分的反饋。如果您想表達對這些努力的支持和贊賞,請考慮給我買杯咖啡(或披薩):)。
本質上, aXeleRate是基于我用于訓練圖像識別/對象檢測模型的腳本集合 - 組合成一個框架并針對 Google Colab 上的工作流程進行了優化。使用起來更方便,更新更及時。
對于舊版本的文章,你仍然可以在steemit.com 上看到。
第 1 步:CNN 和遷移學習:一些理論


卷積神經網絡或 CNN 是一類深度神經網絡,最常用于分析視覺圖像。互聯網上有很多關于該主題的文獻,我將在文章的最后部分提供一些鏈接。簡而言之,您可以將 CNN 視為一系列應用于圖像的過濾器,每個過濾器在圖像中尋找特定的特征——在較低的卷積層上,特征通常是線條和簡單的形狀,而在較高層上的特征可以更具體,例如身體部位、特定紋理、動物或植物的部分等。某些特征集的存在可以為我們提供關于圖像中對象可能是什么的線索。胡須,兩只眼睛和黑鼻子?一定是貓!綠葉,樹干?看起來像一棵樹!
我希望您現在了解 CNN 的工作原理。通常,深度神經網絡需要數千張圖像和數小時的訓練時間(取決于您用于訓練的硬件)來“開發”可用于識別您想要的對象類型的過濾器。但有一條捷徑。
一個被訓練來識別很多不同的常見物體(貓、狗、家用電器、交通工具等)的模型已經“開發”了很多有用的過濾器,所以我們不需要它來學習識別基本形狀和對象的一部分。我們可以重新訓練網絡的最后幾層來識別特定類別的對象,這對我們很重要。這被稱為“遷移學習”。通過遷移學習,你需要的訓練數據和計算時間要少得多,因為你只訓練網絡的最后幾層,可能由幾百個神經元組成。
聽起來很棒,對吧?讓我們看看如何實現它。
第 2 步:準備環境

使用 aXeleRate 有兩種方法:在 Ubuntu 機器上本地運行或在 Google Colab 中運行。要在 Google Colab 中運行,請查看以下示例:
現在在本地訓練您的模型并將其導出以用于硬件加速也變得更加容易。
我的工作環境是 Ubuntu 16.04,64 位。您可以使用虛擬機來運行 Ubuntu 映像,因為我們不會使用 GPU 進行訓練。通過一些修改,您還可以在 Windows 上運行訓練腳本,但是對于模型轉換,您需要使用 Linux 系統。因此,您執行本教程的首選環境是 Ubuntu 16.04,在本機或虛擬機中運行。
讓我們從安裝 Miniconda 開始,它是 Python 的環境管理器。我們將創建隔離環境,因此我們不會意外更改您系統 Python 環境中的任何內容。
在此處下載安裝程序
安裝完成后,新建環境:
conda create -n ml python=3.7
讓我們激活新環境
conda activate ml
bash shell 前的前綴將與環境名稱一起出現,表明您現在在該環境中工作。
第 3 步:安裝 aXeleRate 并運行測試

在本地機器上安裝 aXeleRate
pip install git+https://github.com/AIWintermuteAI/aXeleRate
要下載示例,請運行:
git clone https://github.com/AIWintermuteAI/aXeleRate
您可以使用 aXeleRate 文件夾中的 tests_training.py 運行快速測試。它將為每種模型類型運行訓練和推理,保存和轉換訓練好的模型。由于它只訓練 5 個 epoch 并且數據集非常小,您將無法獲得有用的模型,但此腳本僅用于檢查是否存在錯誤。
第 4 步:重新訓練模型,將 Keras 模型轉換為 Kmodel

對于這個玩具示例,我們將訓練模型識別圣誕老人和 Arduino Uno。顯然你可以選擇其他類。從這里下載數據集。在 config 文件夾中創建一個 classifier.json 文件的副本,然后進行相應的更改,類似于屏幕截圖中的配置文件 - 確保訓練和驗證文件夾的路徑正確!
從 aXeleRate 文件夾運行以下命令:
python axelerate/train.py - c configs/santa_uno.json
培訓將開始。如果驗證準確度(我們的驗證指標)在 20 個 epoch 內沒有提高,訓練將提前停止。每次驗證準確性提高時,模型都會保存在項目文件夾中。訓練結束后,aXeleRate 自動將最佳模型轉換為指定格式 - 您現在可以選擇“tflite”、“k210”或“edgetpu”。
第 5 步:在 Sipeed Maix Bit 上運行模型
有兩種方法可以在 Sipeed Maix 硬件上運行您現在擁有的模型:micropython 固件和 Arduino IDE。Micropython 硬件更易于使用,但它占用了很大一部分可用內存,因此留給模型的空間更少。Arduino IDE 基本上是 C 代碼,效率更高,內存占用更小。我的模型只有 1.9Mb,所以兩個選項都適用。您可以將 2.9 Mb 的模型與 Micropython 一起使用,對于需要考慮使用 Arduino IDE 的任何更大的模型。
從這里下載 OpenMV IDE 和從這里下載最小的 micropython固件。
使用kflash_gui 工具燒錄固件。 您也可以選擇將訓練好的模型也刻錄到 flash,如屏幕截圖所示。

或將其復制到 SD 卡(在這種情況下,將.kmodel復制到 SD 卡的根目錄并將 SD 卡插入 Sipeed Maix Bit)
打開 OpenMV IDE 并按下連接按鈕。從 example_scripts 文件夾打開santa_uno.py腳本,然后按開始按鈕。您應該會看到來自相機的實時流,如果您打開串行終端,您將獲得置信度得分最高的圖像識別結果!

要與 Arduino IDE 一起使用,首先您需要按照將 Sipeed 板添加到 Arduino IDE 的過程進行操作,此處記錄。添加板后,打開mobilenet_v1_transfer_learning.ino草圖并將其上傳到 Sipeed Maix Bit。將 SD 卡上的模型名稱更改為“模型”(或使用此名稱復制)。

您可以更改names.cpp中的標簽名稱。它將在 Sipeed Maix 屏幕上顯示實時攝像機流以及頂部圖像識別結果。
第 6 步:結論
以下是有關 CNN 和遷移學習主題的更多材料可供閱讀:
使用 Mobilenet 和 Keras進行遷移學習遷移學習的一個很好的解釋,本教程使用該文章中代碼的修改版本。
貓狗和卷積神經網絡解釋 CNN 背后的基礎知識并可視化一些過濾器。與貓!
在 Sipeed MaixPy 和 MaixDuino 上訓練、轉換、運行 MobileNet!Sipeed 團隊關于如何從頭開始訓練 Mobilenet 1000 類的教程(無遷移學習)。您可以下載他們的預訓練模型并嘗試一下!
希望您可以利用您現在擁有的知識來構建一些帶有機器視覺的很棒的項目!你可以在這里購買 Sipeed 板,它們是嵌入式系統上機器學習最便宜的選擇之一。
如果您有任何問題,請在LinkedIn上添加我,并訂閱我的 YouTube 頻道,以獲得有關機器學習和機器人技術的更多有趣項目的通知。
- 圖像識別技術原理 深度學習的圖像識別應用研究 4次下載
- 使用Sipeed MaiX板進行對象檢測(Kendryte K210)
- K210命令行開發環境搭建指南 5次下載
- K210學習記錄(1)——GPIO與軟件使用
- 基于K210的MNIST手寫數字識別
- [測試貼]K210在maixpy固件下,復位需要多長時間?
- 【堪智K210】 下載程序的過程原理 探索
- 亞博智能K210開發板學習筆記
- Maix Bit(K210) 裸機開發教程(八)實現簡易照相機
- k210單片機初學
- Kendryte K210開發板使用說明書 67次下載
- 使用FPGA平臺實現遺傳算法的圖像識別的研究設計說明 13次下載
- 實驗python進行圖像識別的示例代碼資料免費下載 3次下載
- 基于DSP的快速紙幣圖像識別技術研究 160次下載
- 圖像識別模組(包括PCB圖、圖像識別模組源代碼)
- 如何利用CNN實現圖像識別 3.5k次閱讀
- 神經網絡在圖像識別中的應用 1.6k次閱讀
- 圖像識別技術原理 圖像識別技術的應用領域 4.9k次閱讀
- 關于圖像識別的三大要點 2.2k次閱讀
- 新版Arduino IDE到底有何不同 7.9k次閱讀
- dfrobot開源圖像識別傳感器介紹 4.2k次閱讀
- 圖像識別技術在模擬器的游戲場景當中體現的尤為明顯 4.7k次閱讀
- 深度學習進軍太空領域——衛星實時圖像識別 5.8k次閱讀
- 淺析圖像識別背后的發展歷程 2.5w次閱讀
- 如何實現圖像識別?為什么要入局圖像識別? 8.8k次閱讀
- 圖像識別中的深度學習 5.5k次閱讀
- 淺談圖像識別技術 1.6w次閱讀
- iOS 11.3的更新讓ARKit支持垂直表面識別以及圖像識別 7.4k次閱讀
- 簡單介紹圖像識別技術在各類行業的應用 3.6w次閱讀
- 對于圖像識別的引入、原理、過程、應用前景的深度剖析 7.3k次閱讀
下載排行
本周
- 11節電池用電池保護IC S-8261D系列數據手冊
- 3.07 MB | 1次下載 | 1 積分
- 2PT8P2107 觸控 IO 型 8-Bit MCU規格書
- 3.73 MB | 次下載 | 免費
- 3PT8P2309 觸控 A/D 型 8-Bit MCU規格書
- 4.05 MB | 次下載 | 免費
- 4氮化鎵GaN FET/GaN HEMT 功率驅動電路選型表
- 0.10 MB | 次下載 | 免費
- 5AU-48雙麥多功能語音處理模組規格書(5)
- 2.24 MB | 次下載 | 免費
- 6WX-0813_AI_ENC語音處理模組規格書
- 907.46 KB | 次下載 | 免費
- 7電子管膽機中文資料
- 0.03 MB | 次下載 | 1 積分
- 8ESI Allegro XP 大尺寸MLCC測試分選機規格書
- 0.66 MB | 次下載 | 免費
本月
- 1美的電磁爐電路原理圖資料
- 4.39 MB | 20次下載 | 10 積分
- 2反激式開關電源設計解析
- 0.89 MB | 14次下載 | 5 積分
- 3耗盡型MOS FET產品目錄選型表
- 0.14 MB | 3次下載 | 免費
- 4簡易光伏控制器原理圖資料
- 0.07 MB | 1次下載 | 5 積分
- 5FP7135V060-G1/FP7125替代物料pin to pin
- 495.40 KB | 1次下載 | 免費
- 62EDL05x06xx系列 600V半橋門驅動器帶集成自舉二極管(BSD)手冊
- 0.69 MB | 1次下載 | 免費
- 7TI系列-米爾TI AM62L核心板開發板-高能效低功耗嵌入式平臺
- 1.51 MB | 1次下載 | 免費
- 81節電池用電池保護IC S-8261D系列數據手冊
- 3.07 MB | 1次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233095次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191457次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81605次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73831次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論