Maix bit K210 模型训练(保姆级教程)+拍照存储sd卡教程

 系列文章目录

         一、关于K210 sd卡的学习教程

         二、Maxi bit K210人脸识别新手教程

         三、Maix bit K210 人脸识别(掉电存储)附详细代码解析

         四、Maix bit K210 模型训练教程


                                                --- 教程---

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训练模型的学习记录,有讲的不好的的地方,欢迎评论区纠正

欢迎评论区讨论,点赞支持,谢谢大家

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值