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