--- 教程---
1.首先进入官网,进入Maix Hub2.点击模型训练,然后新建模型
3.创建数据集
4.
点击查看
5.接下来就是上传照片了,照片需要很多很多张(至少60),越多训练的模型就会越好,识别度更高
照片来源:百度,还有各种购物平台:淘宝,拼多多等找到自己要需要训练识别的图片
但是,我教大家一种更快更好的照片采集方法,因为要找的照片实在太多了,所以!!!
我决定采用我的Maix bit板子来拍照保存图片到sd卡上面,然后自己直接上传数据集
6.下面我以训练识别火焰(预防火灾模型)的方法来教大家(我新建的是识别火灾的模型)
那么,怎么用保存图片到sd卡呢
下面是我写的源码
import sensor,image,lcd # 导入相关库
from board import board_info # 导入开发板信息
import os
from Maix import FPIOA,GPIO # 导入FPIOA和GPIO库
from fpioa_manager import fm # 导入fpioa_manager库
import time
import utime
# 按键配置
fm.register(board_info.BOOT_KEY, fm.fpioa.GPIOHS0) # 注册按键GPIO
key_gpio = GPIO(GPIO.GPIOHS0, GPIO.IN) # 初始化按键GPIO为输入
start_processing = False # 按键按下标志
BOUNCE_PROTECTION = 50 # 按键抖动保护时间(毫秒)
# 按键中断服务程序
def set_key_state(*_):
global start_processing #告诉函数start_processing是全局变量
start_processing = True # 设置按键按下标志为True
utime.sleep_ms(BOUNCE_PROTECTION)# 等待以消除按键抖动
key_gpio.irq(set_key_state, GPIO.IRQ_RISING, GPIO.WAKEUP_NOT_SUPPORT)# 设置按键中断
clock = time.clock() # 初始化系统时钟,计算帧率
lcd.init() # 初始化lcd
sensor.reset() #初始化sensor 摄像头
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_hmirror(1) #设置摄像头镜像Q
sensor.set_vflip(1) #设置摄像头翻转
lcd.rotation()
sensor.run(1) #使能摄像头
# 检查SD卡是否挂载
if 'sd' in os.listdir('/'):
# 列出SD卡中图片目录下的所有文件
image_files = [f for f in os.listdir('/sd/pic') if f.endswith('.jpg')]
# 计算图片文件数量
count = len(image_files)
print("Number of images:", count)
else:
print("SD card not mounted")
while(1): # 主循环
img = sensor.snapshot()#从摄像头获取一张图片
clock.tick() #记录时刻,用于计算帧率
img.draw_string(0, 200, "%d" %(count), scale=1, color=(255, 0, 0))
if start_processing:#识别到按键按下
img.save("/sd/pic/img{}.jpg".format(count)) # 保存图片到SD卡
count+=1
start_processing = False
a = lcd.display(img) #刷屏显示
功能:按下板子的BOOT按键就会保存一张图片到sd卡上面,count是定义变量,每按下一次BOOT键就会+1,相当于图片数量,另外这里我还搞了一个读取sd卡照片数量的代码,不然板子很容易断电重启,变量count又要从0开始,因为照片名字都是一样的格式,此时会替换掉sd卡里面已经拍好的照片数据,因此为了防止板子总是白屏重启,我在程序开头放了一段读取照片数量的代码,之后继续拍照会继续以上次存储的照片变量继续+1存放照片,屏幕左下角还会显示照片数量(这人怕不是个天才,哈哈哈哈哈!!!)
7.在sd卡新建文件夹pic用来存放照片,对应代码存放照片的路径
8.运行代码,加载到板子,随便先拍一张,然后看看有没有保存到sd卡
可以看到确实保存了
9.那么现在让我们肆无忌惮的来拍照片吧,百度上面找到一张就拍一张
(不知道兄弟们拍好了没有,反正我的手已经抽筋了)
10.然后就把sd卡的图片上传到模型训练那里
11.然后,就要进行标注了
12.终于标注好了(真的有点累),可以一张图多标注几个地方(成功率越高)
13.创建任务,选择板子型号
14.等待训练模型
18.训练成功,不过我这个识别率很低,想弄得更高就多传一些照片,多标注数据
19.训练成功后就点击手动部署,然后下载模型
20.将解压后得3个文件放到sd卡
21.运行main.c
如果你发现图像是倒过来的,改这里
22.最后检测火灾成功
总结:以上就是我学习K210训练模型的学习记录,有讲的不好的的地方,欢迎评论区纠正
欢迎评论区讨论,点赞支持,谢谢大家