**非常詳細(xì)的視頻和文字教程,講解常見的openmv教程包括 巡線、物體識別、圓環(huán)識別、閾值自動獲取等。非常適合學(xué)習(xí)openmv、K210、K230等項(xiàng)目
視頻合集鏈接在
openmv教程合集 openmv入門到項(xiàng)目開發(fā) openmv和STM32通信 openmv和opencv區(qū)別 openmv巡線 openmv數(shù)字識別教程LCD
??痮penmv視覺文章鏈接:[https://blog.csdn.net/qq_46187594/category_12900902.html]
另外還有一個:是全網(wǎng)最詳細(xì)的STM32項(xiàng)目教學(xué)視頻。
功能:PID速度控制、PID循跡、PID跟隨、遙控、避障、PID角度控制、openmv視覺控制、電磁循跡、FreeRTOS、
智能車第一篇在這里:
視頻在這里:
3.5.4-自行訓(xùn)練數(shù)據(jù)集-(openmv神經(jīng)網(wǎng)絡(luò)訓(xùn)練 openmv模型訓(xùn)練)
1-使用訓(xùn)練集識別數(shù)字
本節(jié)這里我們使用線上訓(xùn)練的方式。
訓(xùn)練網(wǎng)站: Edge Impulse - The Leading Edge AI Platform https://edgeimpulse.com
注意此章節(jié)教學(xué)的采集-訓(xùn)練-識別過程不僅適用于openmv識別打印數(shù)字,也可以數(shù)字換成手寫體數(shù)字、也可以是把數(shù)字換成紅綠燈限速等交通標(biāo)志、要識別的一些垃圾比如殘缺的蘋果和易拉罐等垃圾分類場景、還可以識別色環(huán)定位、兩個及其以上不同顏色的小球識別、手勢識別、特定兩個及其以上物體抓取識別等。后面也會更新大家想看的垃圾分析、或者人形識別等。
由于模型訓(xùn)練是線上網(wǎng)站訓(xùn)練,所以可能網(wǎng)站布局可能發(fā)生變化,如果復(fù)現(xiàn)不了,筆記的教程,也可以嘗試搜索,其他相關(guān)最新或者之前的文檔或者視頻教程,下面一些參考教程鏈接,推薦大家出問題后也可以看一下下面的視頻:
訓(xùn)練神經(jīng)網(wǎng)絡(luò)目標(biāo)檢測實(shí)際道路環(huán)境交通標(biāo)志: https://www.bilibili.com/video/BV1Qr4y177xi/?share_source=copy_web&vd_source=f5d5850ab773377dff308188468fbc77
38-OpenMV4 Plus訓(xùn)練神經(jīng)網(wǎng)絡(luò)進(jìn)行口罩識別: https://www.bilibili.com/video/BV1uU4y1M71J/?share_source=copy_web&vd_source=f5d5850ab773377dff308188468fbc77
如果線上訓(xùn)練方式出現(xiàn)特殊情況,比如Edge Impulse 網(wǎng)站停止服務(wù)或者使用人數(shù)較多排隊(duì)擁擠現(xiàn)象,大家可以嘗試用自己電腦本地訓(xùn)練,由于本地訓(xùn)練對筆記本性能還有相關(guān)系統(tǒng)硬件要求高,所以我們暫時不更新本地訓(xùn)練方式,下面提供一些相關(guān)網(wǎng)站參考了解的鏈接:使用tensorflow2.3訓(xùn)練數(shù)字識別模型并量化為tflite后部署到openMV上_openmv部署識別模型-CSDN博客
獲得訓(xùn)練數(shù)據(jù)集
這里我們先采集數(shù)據(jù)集,可以使用別人采集好的、網(wǎng)絡(luò)下載收集、手機(jī)拍攝、openmv采集。
建議使用openmv+openmv IDE 根據(jù)小車實(shí)際使用環(huán)境采集數(shù)據(jù),比如小車上的openmv識別數(shù)字,那么可以把openmv安裝在小車上,然后采集數(shù)字照片數(shù)據(jù)
使用openmv IDE采集數(shù)據(jù)集
先在openmv上執(zhí)行下面代碼
# This work is licensed under the MIT license.
# Copyright (c) 2013-2023 OpenMV LLC. All rights reserved.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Hello World Example
#
# Welcome to the OpenMV IDE! Click on the green run arrow button below to run the script!
import sensor # 引入感光元件的模塊,用于操作攝像頭傳感器
import time # 引入時間模塊,用于控制時間延遲和FPS計算
# 初始化傳感器
sensor.reset() # Reset and initialize the sensor. 重置并初始化傳感器
sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE) 設(shè)置像素格式為RGB565(或者灰度)
sensor.set_framesize(sensor.QVGA) # Set frame size to QVGA (320x240) 設(shè)置幀大小為QVGA(320x240分辨率)
#***************************如果不需要鏡像就注釋掉 下面 的代碼********************
# 設(shè)置攝像頭鏡像/翻轉(zhuǎn)操作,根據(jù)攝像頭安裝的方向決定是否需要
sensor.set_vflip(True) # 垂直方向翻轉(zhuǎn)。根據(jù)實(shí)際攝像頭模塊的安裝位置調(diào)整是否需要此操作
#?。?!重要:不同攝像頭是否需要鏡像,根據(jù)實(shí)際情況定。如果不需要鏡像,請注釋掉以下代碼:
sensor.set_hmirror(True) # 水平方向反轉(zhuǎn)。根據(jù)實(shí)際攝像頭模塊的安裝位置調(diào)整是否需要此操作
#!?。≈匾翰煌瑪z像頭是否需要鏡像,根據(jù)實(shí)際情況定。如果不需要鏡像,請注釋掉上述代碼。
#***************************如果不需要鏡像就注釋掉 上面 的代碼********************
sensor.skip_frames(time=2000) # Wait for settings take effect. 等待2秒鐘讓設(shè)置生效
clock = time.clock() # Create a clock object to track the FPS. 創(chuàng)建一個時鐘對象,用于追蹤FPS(每秒幀數(shù))
while True:
clock.tick() # Update the FPS clock. 更新FPS時鐘
img = sensor.snapshot() # Take a picture and return the image. 拍攝一張照片并返回圖像
print(clock.fps()) # 輸出當(dāng)前的幀率(FPS),用來衡量攝像頭的拍攝速度
# Note: OpenMV Cam runs about half as fast when connected
# to the IDE. The FPS should increase once disconnected.
# 注意:當(dāng)OpenMV相機(jī)連接到IDE時,速度大約是平時的一半。斷開連接后,F(xiàn)PS應(yīng)該會提高。
點(diǎn)擊
如果使用的攝像頭需要鏡像畫面,我們就增加畫面鏡像的代碼增加到下面照片紅色圈出的位置
#***************************如果不需要鏡像就注釋掉 下面 的代碼********************
# 設(shè)置攝像頭鏡像/翻轉(zhuǎn)操作,根據(jù)攝像頭安裝的方向決定是否需要
sensor.set_vflip(True) # 垂直方向翻轉(zhuǎn)。根據(jù)實(shí)際攝像頭模塊的安裝位置調(diào)整是否需要此操作
#?。?!重要:不同攝像頭是否需要鏡像,根據(jù)實(shí)際情況定。如果不需要鏡像,請注釋掉以下代碼:
sensor.set_hmirror(True) # 水平方向反轉(zhuǎn)。根據(jù)實(shí)際攝像頭模塊的安裝位置調(diào)整是否需要此操作
#?。?!重要:不同攝像頭是否需要鏡像,根據(jù)實(shí)際情況定。如果不需要鏡像,請注釋掉上述代碼。
#***************************如果不需要鏡像就注釋掉 上面 的代碼********************
然后點(diǎn)擊新建數(shù)據(jù)文件夾
采集中盡量變化你的光照環(huán)境、還有可能拍攝的物體角度,和物體之間的距離。
每種要要識別的種類需要100張,比如能夠標(biāo)注出1的也就是要有100張。
比如室內(nèi)開燈、拉開窗簾,關(guān)閉窗簾、左邊傾斜一些角度、右邊傾斜一些角度、攝像頭距離近些、攝像頭距離遠(yuǎn)些、然后后面背景是黑色,或者灰色白色等。
如果訓(xùn)練后發(fā)現(xiàn)某個訓(xùn)練數(shù)字訓(xùn)練識別結(jié)果不好或者某種使用場景識別結(jié)果不好,可以再多補(bǔ)一下這個
數(shù)字或者場景的訓(xùn)練數(shù)據(jù)集。
這里我?guī)в?234的照片拍了大概100多張
然后繼續(xù)采集5 6 7 8數(shù)字的
新建一個文件夾
如果中間采集的圖片預(yù)覽都是灰色就重新啟動
創(chuàng)建文件夾
然后大概采集了140張
繼續(xù)采集0和數(shù)字9
然后采集了140多張
去網(wǎng)站 訓(xùn)練數(shù)據(jù)
我們使用的線上訓(xùn)練數(shù)據(jù)集網(wǎng)站是:Edge Impulse - The Leading Edge AI Platform https://edgeimpulse.com
由于網(wǎng)站是線上的,所以不定期操作網(wǎng)站的布局和操作會有更新,基礎(chǔ)差的朋友,仔細(xì)看課程多看幾遍,或者百度其他相關(guān)最新:openmv線上數(shù)據(jù)集訓(xùn)練教程,根據(jù)課程內(nèi)容和網(wǎng)站最新布局進(jìn)行操作訓(xùn)練數(shù)據(jù)。(課程也會不定期根據(jù)線上訓(xùn)練方法進(jìn)行更新,但是需要更新的其他教程也很多所以會有延遲,盡量遇到問題可以借助AI和百度解決)
登錄網(wǎng)站
如果沒有注冊過需要注冊一下,如果注冊過直接登錄
這個是注冊的
點(diǎn)擊這個,或者退到主頁
選擇一下我們使用的板子
這里openmv 只有一個openmv cam h7 plus 所以我們無論使用openmv H7 和openmv H7 plus都選擇這個
選擇上傳文件
然后選擇文件
每次上傳一些圖片,然后
問我們是否在圖像檢測可以點(diǎn)擊是
繼續(xù)
然后繼續(xù)上傳直到把 三個文件夾照片都傳上去
如果中間有偶爾幾個文件沒有傳上去,也不用管
然后我們?nèi)タ匆幌挛覀冃枰獦?biāo)注的隊(duì)列
使用鼠標(biāo)把數(shù)字部分選中(不需要選數(shù)字的框)
如果是數(shù)字1我們框選數(shù)字1 ,然后標(biāo)注標(biāo)簽,標(biāo)簽盡量簡介比如1
這樣
然后點(diǎn)擊保存后,自動下一張會自動標(biāo)注,如果不對去修改
當(dāng)標(biāo)注到 比如5678的時候 注意就新建5678標(biāo)簽了
盡量不要標(biāo)錯,如果偶爾標(biāo)錯一個也沒有關(guān)系
可以去網(wǎng)頁其他位置修改,或者偶爾一個標(biāo)錯可以不修改。
標(biāo)記完成后就會顯示0個需要標(biāo)記的
標(biāo)記完畢,可以標(biāo)記你覺得不合適的標(biāo)記數(shù)據(jù)
我們這里設(shè)置訓(xùn)練模型的參數(shù)
這里我們設(shè)置 96* 96或128 *128
這里openmv H7 因?yàn)閮?nèi)存比較小所以設(shè)置96*96 才有可能跑起來
? openmv H7 plus 也推薦設(shè)置 96**96 因?yàn)檫@樣分辨率低 幀率會高
我們先演示96*96 裁剪
選擇處理方式
選擇圖像
目標(biāo)點(diǎn)檢測
保存然后
太多了,大家可以從這個視頻下載文檔:
openmv教程合集 openmv入門到項(xiàng)目開發(fā) openmv和STM32通信 openmv和opencv區(qū)別 openmv巡線 openmv數(shù)字識別教程LCD
專刊openmv視覺文章鏈接:[https://blog.csdn.net/qq_46187594/category_12900902.html]