大家好,我是痞子衡,是正經搞技術的痞子,本系列痞子衡給大家介紹的是機器視覺模塊OpenMV-RT初體驗,
近些年機器視覺應用一直是個很火的方向,想象一下機器如果能長上“眼睛”,是不是就可以做一些人類才能做的事情,因此機器視覺是人工智能實作的一個重要基礎,痞子衡當年碩士畢業論文課題就是工業相機影像處理相關的,算是機器視覺系統的前端核心,遙想十年以前,想要從事機器視覺系統的開發一直是比較復雜的,需要開發者有相當扎實的嵌入式開發基礎,而現在一些機器視覺相關研究小組為了能讓開發者把更多重心放在應用本身,推出了簡潔易用的機器視覺模塊,借助這些模塊,即使沒有太多嵌入式經驗,也可以輕松玩機器視覺,今天痞子衡就帶大家一起體驗恩智浦推出的一款輕量級的機器視覺模塊OpenMV-RT:
一、模塊簡介
今天痞子衡要講的模塊全稱是OpenMV-RT,這是一款基于恩智浦最近主打的i.MXRT超高性能系列MCU的視覺模塊,如下是模塊簡圖,從簡圖里可以看出,這款板子設計得非常簡潔,基本除了MCU最小系統之外,僅包含四大部件:640x480數字攝像頭傳感器、九軸姿態傳感器、串行SPI Flash(存放代碼)、SD卡槽(檔案系統):
除此以外,模塊還提供了標準OpenMV介面,可在OpenMV專案(關于OpenMV專案,痞子衡會在后續文章里細聊)生態里任意擴展其他功能模塊:
Note: 更詳細的模塊介紹可見該模塊設計者Rocky Song發表的微信文章 《基于i.MX RT1060的可編程視覺模塊》
二、安裝模塊
2.1 購買模塊和SD卡
首先你需要有一塊OpenMV-RT模塊,不帶SD卡的裸價是399元,鏡頭焦距有6種可選,此模塊為第14屆全國大學生智能車競賽參賽選手提供過50元專享抵扣,
- 淘寶鏈接: https://item.taobao.com/item.htm?id=585420906175&ns=1&abbucket=12#detail
2.2 下載i.MXRT韌體
拿到OpenMV-RT模塊后,為了保證模塊能夠正常運行,最好試著自己下載一次i.MXRT韌體程式(防止廠商發貨忘記燒錄韌體),韌體程式工程放在github網站上,源代碼是開源的,
- 專案地址: https://github.com/RockySong/micropython-rocky
如果你不熟悉Git,那就按下圖所示直接下載專案壓縮包(記得Step1一定要做),如果你熟悉Git,那就直接clone專案,并且checkout到omv_initial_integrate分支,
痞子衡在第一節模塊簡圖展示過模塊有一個6-Pin的SWD介面,這個介面便是用于連接J-Link仿真器去下載i.MXRT韌體程式進外部串行SPI Flash的,可按下圖連接模塊與J-Link仿真器:
- J-Link.Pin6 (GND) -> 模塊J1.6(GND)
- J-Link.Pin1 (VCC) -> 模塊J1.5(3.3V)
- J-Link.Pin7 (SWC) -> 模塊J1.3(SWC)
- J-Link.Pin9 (SWD) -> 模塊J1.2(SWD)
使用Keil MDK(需v5.20以上)打開韌體工程,選中“debug_flexspi” 然后編譯該工程(約4分鐘),最后點擊下載(約2分鐘),韌體下載完成后需要給模塊重新上電,
- i.MXRT韌體工程:\micropython-rocky\ports\prj_keil_rt1060\mpyrt1060.uvproj
2.3 安裝OpenMV IDE
因為OpenMV-RT模塊實作了OpenMV IDE的除錯監控協議,為了體驗無需存盤一鍵下載并且監視模塊幀緩沖的功能,以及啟用虛擬串口功能,模塊最好配合OpenMV IDE一起使用,
- OpenMV IDE下載地址: https://openmv.io/pages/download
三、運行模塊
關于OpenMV-RT模塊的運行,痞子衡將給大家演示一個基于CIFAR-10資料集的物體識別的應用,
3.1 插上SD卡(含CIFAR-10模型檔案)
OpenMV-RT模塊需要配合SD卡一起使用,模塊當前僅支持在SD上實作檔案系統,痞子衡要演示的物體識別的應用預訓練CIFAR-10資料集模型檔案需要存放在SD卡里,模型檔案包含兩個檔案:cifar10.network和cifar10_fast.network,
- 預訓練CIFAR-10資料集模型檔案路徑:\micropython-rocky\examples\rocky_test\multi_demos_extract_to_tfcard\
3.2 使用IDE連接模塊
先打開OpenMV IDE,然后給OpenMV-RT模塊上電(如果是第一次連接),系統可能花較長時間(可能超過1分鐘)來安裝和配置驅動,請耐心等待,當OpenMV IDE左下角狀態發生如下變化時,即表明驅動安裝成功,并已識別出模塊,
3.3 運行物體識別應用
使用OpenMV IDE打開物體識別應用的Python源程式(是的,OpenMV-RT支持MicroPython語言,關于其原理痞子衡會在后續文章細聊),這個源程式其實包含了2個應用,一個是基于CIFAR-10的物體識別,另一個是基于LENet的數字識別,痞子衡想要演示的是物體識別,因此需要將Python源代碼稍作如下修改:
- 物體識別應用主程式:\micropython-rocky\examples\rocky_test\multi_demos_extract_to_tfcard\main.py
#...省略
while (True):
pyb.LED(1).off()
pyb.LED(2).off()
pyb.LED(3).on()
pyb.LED(4).off()
#If you use RT1052, 'isFull' should be False
CIFAR10Test(40000000, isFull = True)
# RT1052 does not have enough RAM to run this
#LENetTest(40000000)
程式修改完畢后,點擊IDE左下角運行按鈕,OpenMV-RT模塊便開始運行Python程式,你可以在IDE里看到攝像頭實時采集視窗,去網上隨便找一張CIFAR-10訓練的10種物體(飛機、汽車、鳥、貓、鹿、狗、蛙、馬、船、卡車)的圖片,痞子衡找了一張鹿的圖片,并放在攝像頭面前,可以看到采集視窗最上面顯示了識別結果“deer”,
至此,OpenMV-RT模塊初體驗痞子衡便介紹完畢了,掌聲在哪里~~~
歡迎訂閱
文章會同時發布到我的 博客園主頁、CSDN主頁、微信公眾號 平臺上,
微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦,

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/24226.html
標籤:嵌入式
