【01Studio MaixPy AI K210】25.云训练模型文件

news2024/11/18 11:20:51

采集数据

       根据它云训练平台的要求,它要求的图片格式必须是224*224(重点之重点),所以可以利用K210跑脚本直接采集数据。

数据采集脚本

'''
main.py

实验名称:照相机
说明:通过按键拍照并在LCD上显示(本实验需要SD卡)。
'''

import sensor, lcd, utime
from Maix import GPIO
from fpioa_manager import fm

#注册KEY的外部IO
fm.register(16, fm.fpioa.GPIOHS0, force=True)
fm.register(18, fm.fpioa.GPIOHS1, force=True)

#构建KEY对象
KEY1=GPIO(GPIO.GPIOHS0, GPIO.IN, GPIO.PULL_UP)
KEY2=GPIO(GPIO.GPIOHS1, GPIO.IN, GPIO.PULL_UP)

#摄像头初始化
set_windowing = (224, 224)  #采集图片的格式  
sensor.reset() # Initialize the camera sensor.
sensor.set_pixformat(sensor.RGB565) # or sensor.GRAYSCALE
sensor.set_framesize(sensor.QVGA) # or sensor.QVGA (or others)
sensor.set_windowing(set_windowing)
sensor.skip_frames(30) # Let new settings take affect.
flag=1
sensor.set_vflip(flag)    #摄像头后置模式

#LCD初始化
lcd.init()

key_num = 0  #按键标志位
name_num = 0  #照片名字

##############################################
#  按键和其回调函数
##############################################
def fun1(KEY1):
    global key_num
    utime.sleep_ms(10) #消除抖动
    if KEY1.value()==0: #确认按键被按下
        key_num = 1

def fun2(KEY2):
    global key_num
    utime.sleep_ms(10) #消除抖动
    if KEY2.value()==0: #确认按键被按下
        key_num = 2

#开启中断,下降沿触发
KEY1.irq(fun1, GPIO.IRQ_FALLING)
KEY2.irq(fun2, GPIO.IRQ_FALLING)

while True:

    lcd.display(sensor.snapshot()) # LCD实时显示

    if key_num==1: #按键1被按下
        key_num = 0 #清空按键标志位

        #拍照并保存
        lcd.display(sensor.snapshot().save("/sd/"+str(name_num)+".jpg"))
        name_num=name_num+1 #名字编码加1

        print("Done! Reset the camera to see the saved image.")
        lcd.draw_string(100,100,"Tu_Pian_Yi_Bao_Cun!!!",lcd.RED,lcd.WHITE)

        #延时3秒,观看拍摄图片
        utime.sleep_ms(1000)
    elif key_num==2:#更换摄像头模式
        key_num=0
        if flag==1:
            flag=0
            sensor.set_vflip(flag)
        elif flag==0:
            flag=1
            sensor.set_vflip(flag)

处理数据

搭建环境

软件

环境

安装相关依赖,输入下面即可:

pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple

 安装完成:

使用

1.文件预处理

建好如下的文件目录,图片放到images文件夹中。

datasets
|
|----images
|        |
|        |---0.jpg
|        |
|        |---1.jpg
|
|------xml
|        
|----labels.txt

labels.txt文件里写上需要的标签重点重点重点如下所示:

 

2.软件处理

进入datasets文件夹,复制该目录的路径

 

 win+R,输入cmd,进入终端,进入到该目录下

 

 继续输入下面命令行

labelimg images labels.txt
#这里应该是打开images文件夹和labels.txt文件的意思

 

 这里需要对软件进行一些调整

 

 这个是保存xml文件的路径一定要优先选好路径,就把路径放到xml文件夹里,如下图。

 

 

 上图无须更改,直接VOC即可。

 

 上图一定要勾选上,打标签的时候会方便很多。

 

 上图是打错标签的时候可用,选中打好标签的区域,按下del键即可删除。下图所示。

3.快捷键

A:切换到上一张图片

D:切换到下一张图片

W:调出标注十字架

del :删除标注框框

 上图,十字架被调出。

       上图,框出关键区域后,会自动弹出标签可供选择,这些标签就是labels.txt里面的内容,选中相应的标签,点击“OK”,一张图片的标签就打完了。按下“D”,继续打一张图片的标签。  

      (注意,每一类的图片数量一定要超过40张,云训练硬性要求,数据图片每一张都要打标签,别想着偷懒,重点重点重点)

打包数据

数据打好标签后,对datasets文件夹进行压缩。

 

文件结构

datasets.zip
|
|----datasets
     |
     |----images
     |        |
     |        |---0.jpg
     |        |
     |        |---1.jpg
     |
     |------xml
     |        |
     |        |---0.xml
     |        |
     |        |---1.xml
     |
     |----labels.txt

上传数据

云训练平台

MaixHub提供数据采集、在线AI模型训练、模型部署到设备完整生态,快速实现 tinyML 和 AIOT 应用https://www.maixhub.com/

选择“模型训练”,选择“物体检测”,不管是啥,都是这样选。

 点击“下一个”

 上传打包好的数据压缩包文件,点击“下一个”,就等它平台训练完就行了。

 

 

下载模型文件

训练完后,下载按钮会变成蓝色,点击就会下载。

下载好后,解压出来就有kmodel模型文件,这样就可以直接在本地进行识别了

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/185844.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows自建免费无限的开源图片识别公式转换为Latex

一、准备 python3.9.6下载 在最开始勾选添加环境变量 https://www.python.org/ftp/python/3.9.6/python-3.9.6-amd64.exe 验证,右键终端(管理员),输入:python --version安装Anaconda https://mirrors.bfsu.edu.cn/ana…

算法拾遗二十五之暴力递归到动态规划三

算法拾遗二十五之暴力递归到动态规划三最长回文子串返回象棋从一个位置到另一个位置的方法有多少种返回咖啡机从开始到干净的最短时间最长回文子串 测试链接:https://leetcode.cn/problems/longest-palindromic-subsequence/ 子序列:是可以不连续的 子…

kafka基本概念、springboot整合kafka、kafka常见问题

kafka基本概念 Kafka是一种高吞吐量、分布式、基于发布/订阅的消息系统。 基本概念: broker:就是一个kafka服务,可以有多个broker形成集群 toptic:每个broker里面可以有若干个toptic(类似于标签,将消息分…

从Bug中学习--Bug根因分析法

从Bug中学习--Bug根因分析法 目录:导读 1、认识Bug 2、Bug的发现 3、Bug的产生 4、Bug的改进 5、总结 一提起测试,大多数人很容易就会联想到Bug。的确,测试的日常工作离不开Bug,测试工作很重要的一部分就是发现Bug。但是&#xf…

Coraza:一款功能强大的企业级OWASP Web应用程序防火墙

关于Coraza Coraza是一款功能强大的企业级OWASP Web应用程序防火墙框架,该工具基于Golang开发,不仅支持Modsecurity的Seclang语言,而且能够100%兼容OWASP核心规则集。 该工具完全开源,任何开发人员都可以根据自己的需求轻松完成…

GPDB中AOCO列存页的checksum

GPDB中AOCO列存页的checksum为了保证数据的正确性,AOCO列存页采用CRC32即循环冗余校验算法来进行校验。首先看下页结构。页类型有四种:AOSmallContentHeader、AOLargeContentHeader、AONonBulkDenseContentHeader和AOBulkDenseContentHeader。页头的大小…

【初阶数据结构】——详解几个常见的经典排序算法

文章目录1. 排序的概念及其运用1.1 排序的概念1.2 排序的应用1.3 常见的排序算法2. 插入排序2.1 直接插入排序算法思想举例(升序)代码实现直接插入排序特性总结2.2 希尔排序( 缩小增量排序 )算法思想代码实现希尔排序特性总结3. 选择排序3.1 直接选择排序…

Hadoop基础之《(7)—Hadoop三种运行模式》

一、hadoop有三种运行模式 1、本地模式 数据存储在linux本地,不用 2、伪分布式集群 数据存储在HDFS,测试用 3、完全分布式集群 数据存储在HDFS,同时多台服务器工作。企业大量使用 二、单机运行 单机运行就是直接执行hadoop命令 1、例子-…

AntV结合Vue实现导出图片功能

一、业务场景: AntV 组织图操作完毕以后,需要点击按钮将画布以图片的形式导出 二、问题描述: 官网上有4个方法,我用的是 graph.toFullDataURL(callback, type, imageConfig) 三、具体实现步骤: (1&#x…

Three.js纹理投影简明教程

纹理投影是一种将纹理映射到 3D 对象并使其看起来像是从单个点投影的方法。 把它想象成投射到云上的蝙蝠侠符号,云是我们的对象,蝙蝠侠符号是我们的纹理。 它用于游戏和视觉效果,以及创意世界的更多部分。 工具:使用 NSDT场景编辑…

Linux 入门教程||Linux 简介||Linux 安装

Linux 简介 Linux内核最初只是由芬兰人李纳斯托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。…

pdf文件怎么压缩?pdf文件变小的简单方法

工作中,pdf文件的使用是非常广泛的,一些特殊的场景下对于pdf文件的大小是有着严格规定的,所以pdf文件压缩成了必备的一项技能,那么怎么将pdf压缩(https://www.yasuotu.com/pdfyasuo)呢?下面介绍…

一个完整的渗透学习路线是怎样的?如何成为安全渗透工程师?

前言 1/我是如何学习黑客和渗透? 我是如何学习黑客和渗透测试的,在这里,我就把我的学习路线写一下,让新手和小白们不再迷茫,少走弯路,拒绝时间上的浪费! 2/学习常见渗透工具的使用 注意&…

2023年江苏建筑安全员精选真题题库及答案

百分百题库提供建筑安全员考试试题、安全员证考试真题、安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 250.施工升降机防坠安全器在装机使用时,应按吊笼额定载重量进行坠落试验,以后至少()个月应进行一次额定载重量的坠落试验 …

辨析Web Service, SOAP, REST, OData之间的关系与区别

最近发现,对于刚刚接触HTTP服务的同学,在一些基础概念上容易混乱。很多同学搞不清楚Web Service,SOAP,REST以及OData这些技术之间的关系与区别。文本会尽量用最简洁的方式,解释这几个概念,并附上一些资料的…

第一章:在Mac OS上安装Go语言开发包

各位朋友们大家好! 本节主要为大家讲解如何在Mac OS上安装Go语言开发包,大家可以在Go语言官网下载对应版本的的安装包,如下图所示。 安装Go语言开发包 Mac OS 的Go语言开发包是 .pkg 格式的,双击我们下载的安装包即可开始安装。…

I.MX6ULL内核开发1:内核模块实验

目录 一、实验环境 二、编译4.19.35版内核 1、下载linux内核源码 2、安装必要的环境工具库 3、一键编译内核 4、获取编译出来的内核相关文件(与makefile文件一致) 三、内核模块代码分析 1、内核模块头文件 2、内核模块打印函数 3、文中语法分析…

filter滤镜实现网页置灰(纪念日)效果

目录 前言关键代码兼容ie的做法定位错乱的原因 前言 一些特殊纪念日的时候,很多网站的首页进行置灰处理。这种效果实际上是用滤镜filter实现的,几行css就可以实现。 在实现整个页面置灰的过程中,要注意页面中有定位的元素,就需…

java中 == 和 equels

1、 和 equals的区别 是操作符 操作符专门用来比较变量的值是否相同。对于基本类型变量来说,只能使用 ,因为基本类型的变量没有方法。使用比较是值比较。对于引用类型的变量来说,比较的两个引用对象的地址是否相等。 equals 是方法 equals方…

Linux kdump配置步骤和注意事项(基于debian、OpenEuler和自定义编译内核的Linux)

1、kdump简单描述 kdump是Linux中的一个内核转储机制,主要用于当Linux内核发生崩溃时,将该内核相关的信息和崩溃原因通过转储的形式保留下来,在debian系统中,相关信息会存储在dump文件中,在OpenEuler和CentOS等系统中…