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