3.5.4-自行训练数据集-(openmv神经网络训练 openmv模型训练) 1-使用训练集识别数字 3.5.4-自行训练数据集-(openmv神经网络训练 openmv模型训练)openmv K2

**非常详细的视频和文字教程,讲解常见的openmv教程包括 巡线、物体识别、圆环识别、阈值自动获取等。非常适合学习openmv、K210、K230等项目
视频合集链接在

openmv教程合集 openmv入门到项目开发 openmv和STM32通信 openmv和opencv区别 openmv巡线 openmv数字识别教程LCD


专刊openmv视觉文章链接:[https://blog.csdn.net/qq_46187594/category_12900902.html]

另外还有一个:是全网最详细的STM32项目教学视频。
功能:PID速度控制、PID循迹、PID跟随、遥控、避障、PID角度控制、openmv视觉控制、电磁循迹、FreeRTOS、

智能车第一篇在这里:
视频在这里:

STM32智能小车V3-STM32入门教程-openmv与STM32循迹小车-stm32f103c8t6-电赛 嵌入式学习 PID控制算法 编码器电机 跟随

3.5.4-自行训练数据集-(openmv神经网络训练 openmv模型训练)

1-使用训练集识别数字

本节这里我们使用线上训练的方式。

训练网站: Edge Impulse - The Leading Edge AI Platform https://edgeimpulse.com

注意此章节教学的采集-训练-识别过程不仅适用于openmv识别打印数字,也可以数字换成手写体数字、也可以是把数字换成红绿灯限速等交通标志、要识别的一些垃圾比如残缺的苹果和易拉罐等垃圾分类场景、还可以识别色环定位、两个及其以上不同颜色的小球识别、手势识别、特定两个及其以上物体抓取识别等。后面也会更新大家想看的垃圾分析、或者人形识别等。

由于模型训练是线上网站训练,所以可能网站布局可能发生变化,如果复现不了,笔记的教程,也可以尝试搜索,其他相关最新或者之前的文档或者视频教程,下面一些参考教程链接,推荐大家出问题后也可以看一下下面的视频:

训练神经网络目标检测实际道路环境交通标志: 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

如果线上训练方式出现特殊情况,比如Edge Impulse 网站停止服务或者使用人数较多排队拥挤现象,大家可以尝试用自己电脑本地训练,由于本地训练对笔记本性能还有相关系统硬件要求高,所以我们暂时不更新本地训练方式,下面提供一些相关网站参考了解的链接:使用tensorflow2.3训练数字识别模型并量化为tflite后部署到openMV上_openmv部署识别模型-CSDN博客

获得训练数据集

这里我们先采集数据集,可以使用别人采集好的、网络下载收集、手机拍摄、openmv采集。

建议使用openmv+openmv IDE 根据小车实际使用环境采集数据,比如小车上的openmv识别数字,那么可以把openmv安装在小车上,然后采集数字照片数据

使用openmv IDE采集数据集

先在openmv上执行下面代码

# 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. 创建一个时钟对象,用于追踪FPS(每秒帧数)



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时,速度大约是平时的一半。断开连接后,FPS应该会提高。

点击
在这里插入图片描述
在这里插入图片描述
如果使用的摄像头需要镜像画面,我们就增加画面镜像的代码增加到下面照片红色圈出的位置

#***************************如果不需要镜像就注释掉 下面 的代码********************
# 设置摄像头镜像/翻转操作,根据摄像头安装的方向决定是否需要
sensor.set_vflip(True)  # 垂直方向翻转。根据实际摄像头模块的安装位置调整是否需要此操作
#!!!重要:不同摄像头是否需要镜像,根据实际情况定。如果不需要镜像,请注释掉以下代码:
sensor.set_hmirror(True)  # 水平方向反转。根据实际摄像头模块的安装位置调整是否需要此操作
#!!!重要:不同摄像头是否需要镜像,根据实际情况定。如果不需要镜像,请注释掉上述代码。
#***************************如果不需要镜像就注释掉 上面 的代码********************

在这里插入图片描述
然后点击新建数据文件夹
在这里插入图片描述
在这里插入图片描述
采集中尽量变化你的光照环境、还有可能拍摄的物体角度,和物体之间的距离。

每种要要识别的种类需要100张,比如能够标注出1的也就是要有100张。

比如室内开灯、拉开窗帘,关闭窗帘、左边倾斜一些角度、右边倾斜一些角度、摄像头距离近些、摄像头距离远些、然后后面背景是黑色,或者灰色白色等。

如果训练后发现某个训练数字训练识别结果不好或者某种使用场景识别结果不好,可以再多补一下这个

数字或者场景的训练数据集。

这里我带有1234的照片拍了大概100多张
在这里插入图片描述
然后继续采集5 6 7 8数字的

新建一个文件夹

如果中间采集的图片预览都是灰色就重新启动
在这里插入图片描述
创建文件夹
在这里插入图片描述
然后大概采集了140张
在这里插入图片描述
继续采集0和数字9
在这里插入图片描述
然后采集了140多张
在这里插入图片描述

去网站 训练数据

我们使用的线上训练数据集网站是:Edge Impulse - The Leading Edge AI Platform https://edgeimpulse.com

由于网站是线上的,所以不定期操作网站的布局和操作会有更新,基础差的朋友,仔细看课程多看几遍,或者百度其他相关最新:openmv线上数据集训练教程,根据课程内容和网站最新布局进行操作训练数据。(课程也会不定期根据线上训练方法进行更新,但是需要更新的其他教程也很多所以会有延迟,尽量遇到问题可以借助AI和百度解决)

登录网站
在这里插入图片描述
如果没有注册过需要注册一下,如果注册过直接登录

这个是注册的
在这里插入图片描述
在这里插入图片描述
点击这个,或者退到主页
在这里插入图片描述
选择一下我们使用的板子

这里openmv 只有一个openmv cam h7 plus 所以我们无论使用openmv H7 和openmv H7 plus都选择这个
在这里插入图片描述
在这里插入图片描述
选择上传文件
在这里插入图片描述
在这里插入图片描述
然后选择文件
在这里插入图片描述
每次上传一些图片,然后
在这里插入图片描述
问我们是否在图像检测可以点击是
在这里插入图片描述
继续
在这里插入图片描述
然后继续上传直到把 三个文件夹照片都传上去
在这里插入图片描述
如果中间有偶尔几个文件没有传上去,也不用管

在这里插入图片描述
在这里插入图片描述
然后我们去看一下我们需要标注的队列
在这里插入图片描述
使用鼠标把数字部分选中(不需要选数字的框)

如果是数字1我们框选数字1 ,然后标注标签,标签尽量简介比如1
在这里插入图片描述
这样
在这里插入图片描述
在这里插入图片描述
然后点击保存后,自动下一张会自动标注,如果不对去修改

当标注到 比如5678的时候 注意就新建5678标签了

在这里插入图片描述
尽量不要标错,如果偶尔标错一个也没有关系

可以去网页其他位置修改,或者偶尔一个标错可以不修改。

标记完成后就会显示0个需要标记的

标记完毕,可以标记你觉得不合适的标记数据
在这里插入图片描述
在这里插入图片描述
我们这里设置训练模型的参数

这里我们设置 96* 96或128 *128

这里openmv H7 因为内存比较小所以设置96*96 才有可能跑起来

​ openmv H7 plus 也推荐设置 96**96 因为这样分辨率低 帧率会高

我们先演示96*96 裁剪
在这里插入图片描述
选择处理方式
在这里插入图片描述选择图像
在这里插入图片描述
目标点检测
在这里插入图片描述

在这里插入图片描述
保存然后
在这里插入图片描述
太多了,大家可以从这个视频下载文档:

openmv教程合集 openmv入门到项目开发 openmv和STM32通信 openmv和opencv区别 openmv巡线 openmv数字识别教程LCD


专刊openmv视觉文章链接:[https://blog.csdn.net/qq_46187594/category_12900902.html]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好家伙VCC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值