国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

采用 TinyML 和 OpenMV 實(shí)現(xiàn)機(jī)器視覺 - 第 1 部分

發(fā)布時(shí)間:2022-7-7 14:25    發(fā)布者:eechina
關(guān)鍵詞: TinyML , OpenMV , 機(jī)器視覺
機(jī)器學(xué)習(xí)和 tinyML 可以為嵌入式系統(tǒng)工程師解決許多應(yīng)用問題。有一個(gè)很難從頭開始編碼的獨(dú)特問題,那就是圖像中物體的檢測(cè)和識(shí)別。恰好,物體的檢測(cè)和識(shí)別是 tinyML 的一個(gè)完美應(yīng)用。然而,啟動(dòng) tinyML 和機(jī)器視覺 (MV) 項(xiàng)目可能會(huì)很復(fù)雜。在接下來的幾篇文章中,我們將探討如何使用 OpenMV 攝像頭啟動(dòng) MV。

介紹 OpenMV Cam H7

假設(shè)你對(duì)使用微控制器的低功率應(yīng)用 MV 感興趣。在這種情況下,你要么定制設(shè)計(jì)攝像頭模塊,要么找一個(gè)市面上有售的攝像頭模塊。從頭創(chuàng)建模塊會(huì)很有趣,但費(fèi)錢、耗時(shí)。一個(gè)有趣的市售解決方案是 OpenMV Cam。

OpenMV Cam 是一款類似 Arduino 的小型開發(fā)板,包括開發(fā)者實(shí)現(xiàn) MV 入門所需的一切。首先,必須明白硬件是有不同版本的。最新版本是 OpenMV Cam H7(圖 1)。Cam H7 基于 STMicroelectronics STM32H743VI 的微控制器,采用 Arm Cortex-M7 架構(gòu),時(shí)鐘速度為 480 MHz。該零件還具有 1 MB SRAM 和 2 MB 閃存。在使用 MV 和學(xué)習(xí)應(yīng)用工作時(shí),有大量的內(nèi)存可用總是一件好事。Cam H7 使用 MT9M114 攝像頭模塊,可以每秒 40 幀 (fps) 的速度捕捉 640 x 320 8 位灰度圖像,或以 40 - 80 fps 的速度捕捉 320 x 240 QVGA 圖像。可以根據(jù)應(yīng)用需求改變攝像頭模塊。


圖 1:OpenMV Cam H7 模塊擁有開始 MV 設(shè)計(jì)所需的一切。(圖片來源:OpenMV)

OpenMV 的開發(fā)環(huán)境

OpenMV 集成開發(fā)環(huán)境 (IDE) 如圖 2 所示,是開發(fā)者與 Cam H7 的互動(dòng)途徑。有了 IDE,開發(fā)者能夠?qū)⒃谀K上運(yùn)行的 Python 腳本進(jìn)行編輯。Cam H7 使用 MicroPython,這是一個(gè)專門用于在基于微控制器的系統(tǒng)上運(yùn)行的 C Python 端口。開發(fā)人員可以連接 Cam H7,將腳本加載到設(shè)備上并運(yùn)行應(yīng)用。集成開發(fā)環(huán)境也可用于獲取 Cam H7 幀緩沖器圖像的實(shí)時(shí)反饋。


圖 2:OpenMV 的開發(fā)環(huán)境包括開發(fā)者對(duì) Cam H7 進(jìn)行編程并與之互動(dòng)所需的一切,如文本編輯器、終端和圖像捕捉顯示窗口。(圖片來源:OpenMV)

對(duì)于那些希望使用該模塊實(shí)現(xiàn)機(jī)器視覺并最終進(jìn)行機(jī)器學(xué)習(xí)的開發(fā)者,不需要看得很遠(yuǎn)。OpenMV 集成開發(fā)環(huán)境包含的示例腳本涵蓋從將系統(tǒng)置于低功耗模式,到物體和人臉檢測(cè)等示例腳本。還有將模塊與諸如 Wi-Fi、慣性測(cè)量裝置 (IMU) 等外部開發(fā)板連接的示例,以及其他選項(xiàng)。

檢測(cè)圖像中的一個(gè)圓

OpenMV IDE 包括一個(gè) HelloWorld 腳本,允許開發(fā)人員連接攝像頭并拍攝圖片,為幀緩沖器提供信息。在這篇文章中,用具體的示例講解更能激發(fā)我們的興趣。在本示例中,可以檢測(cè)圖像中的一些東西,比如圓。

如果你打開 OpenMV IDE,點(diǎn)擊 File->Examples->Feature-Detection->find_circles.py(見圖 3),就會(huì)出現(xiàn)用于檢測(cè)圓的腳本。測(cè)試這個(gè)腳本超級(jí)簡單;首先,我們需要準(zhǔn)備一張紙或一張便條,畫一個(gè)圓(請(qǐng)不要評(píng)價(jià)我的繪畫能力,會(huì)驚掉你的下巴!)。接下來,在 IDE 左下方,你會(huì)發(fā)現(xiàn)一個(gè)連接按鈕。點(diǎn)擊該按鈕,連接 Cam H7。然后,點(diǎn)擊連接按鈕下房的綠色播放按鈕。最后,將 Cam H7 對(duì)準(zhǔn)你畫的圓圈,并在 OpenMV IDE 中監(jiān)視幀緩沖區(qū)。


圖 3:在 OpenMV IDE 中導(dǎo)航至 find_circles.py 示例腳本。(圖片來源:Beningo Embedded Group)

你將看到,在幀緩沖器中會(huì)周期性地畫出一個(gè)紅色的圓,與你畫的圓重疊,如圖 4 所示。請(qǐng)注意,盡管我的繪畫能力有待提高,但 Cam H7 仍然能夠檢測(cè)到所拍攝的圖像中有一個(gè)類似圓的圖形。在這個(gè)系列博客文章中,這是我們第一次檢測(cè)圓圈,但不是最后一次!讓我們看一下示例腳本,了解其工作原理。


圖 4:find_circles.py 示例腳本將在幀緩沖區(qū)添加一個(gè)紅色的圓,并在檢測(cè)到圓時(shí)突出顯示。(圖片來源:Beningo Embedded Group)

分析 find_circles.py 示例

OpenMV IDE 提供的圓檢測(cè)腳本直截明了。首先,該腳本導(dǎo)入所需的 Python 庫,并初始化攝像頭傳感器和時(shí)鐘,如列表 1 所示。

副本
import sensor, image, time

sensor.reset()
sensor.set_pixformat(sensor.RGB565) # grayscale is faster
sensor.set_framesize(sensor.QQVGA)
sensor.skip_frames(time = 2000)
clock = time.clock()

列表 1:攝像頭傳感器的初始化示例代碼。(代碼來源:OpenMV)

接下來,一個(gè)無限循環(huán)會(huì)持續(xù)運(yùn)行該應(yīng)用,就像在任何標(biāo)準(zhǔn)嵌入式應(yīng)用中一樣。然后,也是最后,就是促使檢測(cè)進(jìn)行的魔法。我們花點(diǎn)時(shí)間來研究列表 2。

副本
while(True):
  clock.tick()
  img = sensor.snapshot().lens_corr(1.8)

  for c in img.find_circles(threshold = 2000, x_margin = 10, y_margin = 10, r_margin = 10,
      r_min = 2, r_max = 100, r_step = 2):
    img.draw_circle(c.x(), c.y(), c.r(), color = (255, 0, 0))
    print(c)

  print("FPS %f" % clock.fps())

列表 2:讀取攝像頭傳感器并搜索圖像中的圓代碼示例。(代碼來源:OpenMV)

列表 2 中的代碼從截取圖像開始。然后,使用 OpenMV 庫中一種名為 find_circles 的方法搜索圖像中的圓。你可以閱讀實(shí)際源代碼例子中的注釋,了解參數(shù)細(xì)節(jié),但我們最感興趣的是 r_min、r_max 和 r_step 參數(shù)。r_min 參數(shù)指定可以檢測(cè)的圓的最小半徑。r_max 參數(shù)設(shè)定圓的最大半徑值。在此例子中,程序?qū)⒖吹?2 到 100 像素之間的圓。

檢測(cè)到圓時(shí),draw_circle 方法以及圓的 x、y 和半徑值被用來在檢測(cè)到的圓上畫一個(gè)圓。你會(huì)注意到,顏色是用 R、G 和 B 符號(hào)指定的,在此例中,所畫的圓為紅色。

總結(jié)

開發(fā)者可以使用機(jī)器視覺和 TinyML,并應(yīng)用于幾乎無限的用例。在這篇博客中,我們只是介紹了 OpenMV Cam H7 和 OpenMV IDE,讓你開始運(yùn)行,檢測(cè)圓。不過,檢測(cè)圓并不需要 tinyML,只需要一些庫函數(shù)。在下一篇博客中,我們將探索內(nèi)置的機(jī)器學(xué)習(xí)示例,然后再引入一個(gè)更復(fù)雜的示例,然后以此為例訓(xùn)練、部署我們的檢測(cè)項(xiàng)目。
本文地址:http://m.qingdxww.cn/thread-795495-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • PIC32CM LS00 Curiosity Pro評(píng)估工具包
  • 實(shí)時(shí)控制解決方案的正確選擇——數(shù)字信號(hào)控制器(DSC)或通用MCU
  • 探索PIC16F13145 MCU系列——快速概覽
  • PIC32CM LS60 Curiosity Pro評(píng)估工具包
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日日操天天操夜夜操| 亚洲国产一区二区三区最新| 日本高清视频一区二区| 色哟哟国产成人精品| 性夜黄a爽爽免费视频国产| 日本免费一区尤物| 欧美日韩在线视频| 一级美国乱色毛片| 一级二级三级黄色片| 午夜操| 亚洲国产精品久久久久| 亚洲高清视频一区| 天天操天天干天天操| 欧美一区在线观看视频| 亚洲精品私拍国产福利在线| 亚洲伦理中文字幕| 欧美一级中文字幕| 无限观看社区在线视频| 日本免费人爱做在线观看视频| 色四虎| 欧美日韩午夜视频| 亚洲精品乱码久久久久| 午夜美女福利视频| 视频黄色片| 青青青青爽极品在线视频| 午夜一区二区免费视频| 亚洲热视频| 一级片免费观看| 欧美日韩在线观看视频| 三级网站大全| 亚洲爆操| 天天色综| 日韩亚洲国产综合久久久| 欧洲国产伦久久久久久久| 欧美亚洲激情视频| 青青国产在线观看| 亚洲夜夜操| 日韩免费专区| 亚洲免费视| 青青草国产精品| 欧美国产精品不卡在线观看|