智能送药小车(二)——K210物体检测,训练模型与部署

这篇具有很好参考价值的文章主要介绍了智能送药小车(二)——K210物体检测,训练模型与部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


线上训练模型参考这篇: Maixhub模型训练平台整体流程
下面仅介绍利用Mx-yolov3训练模型并部署在k210上的整体流程。

采集图片

利用K210采集数据集
使用说明:插上合适的SD卡(最大32GB),采集不同类别图像时要在代码相应位置进行修改(有注释提示),程序运行后按下KEY会进行图像采集并存放在相应类别的文件夹中。

#import os
#print(os.listdir())

##import os
##os.remove("1.jpg")

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

# 自定义变量
KeyState = 0        # 按键中断标志位
PicName = 0         # 拍摄照片号
SetWindowing = (224, 224)  # 设置图片大小

# 注册 IO,高速 GPIO 口才有中断
fm.register(12, fm.fpioa.GPIO0)
fm.register(16, fm.fpioa.GPIOHS0)

#摄像头初始化
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_vflip(1) #摄像头后置方式
sensor.set_windowing(SetWindowing) # 设置图片大小
lcd.init() #LCD 初始化
clock = utime.clock()

# 初始化IO
LED_B = GPIO(GPIO.GPIO0, GPIO.OUT, value=1)
KEY = GPIO(GPIO.GPIOHS0, GPIO.IN, GPIO.PULL_UP)

# 按键中断回调函数
def fun(KEY):
    global KeyState
    utime.sleep_ms(10) #消除抖动
    # 当按键按下后
    if KEY.value() == 0:
        KeyState = 1

# 开启按键中断,下降沿触发
KEY.irq(fun, GPIO.IRQ_FALLING)

while True:
    clock.tick()

    img = sensor.snapshot()

    # 当按键按下,蓝灯闪烁,并存储照片
    if KeyState == 1:

        KeyState = 0

        LED_B.value(0)
        utime.sleep_ms(500)
        LED_B.value(1)

        # 修改目录“/sd/One”
        img.save("/sd/One" + str(PicName) + ".jpg")
        print(PicName, "CAPTURED!")
        PicName+=1

    lcd.display(img)
    #print(clock.fps())

LabelImg数据集标注

labelimg使用教程参考: 数据集制作——使用labelimg制作数据集

Mx-yolov3训练模型

我安装的是Mx-yolov3的3.0版本
链接:https://pan.baidu.com/s/1Gl3Qfw5s8LZuu2wc1GTITg 提取码:dvsf
使用教程参考的这一篇:MX-Yolov3本地训练模型的安装和使用

K210端物体检测代码

修改的时候注意以下几点:文章来源地址https://www.toymoban.com/news/detail-633809.html

  1. sensor.set_windowing((224, 224)) 和训练模型采集图片时保持一致
  2. classes 名称修改
  3. task = kpu.load(“/sd/model.kmodel”) 模型名称修改
  4. 网络参数修改成Mx-yolov3 计算出的anchor
import sensor,image,lcd,time
import KPU as kpu

#摄像头初始化
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_windowing((224, 224))
sensor.set_vflip(1)  #摄像头后置方式

lcd.init() #LCD初始化

clock = time.clock()

#模型分类,按照20class顺序
classes = ['One', 'Two']

#下面语句需要将模型(20class.kfpkg)烧写到flash的 0x500000 位置
#task = kpu.load(0x500000)

#将模型放在SD卡中。
task = kpu.load("/sd/model.kmodel") #模型SD卡上

#网络参数
anchor = (3.0078, 1.1641, 3.5278, 1.3924, 3.7373, 1.5579, 4.2359, 1.6781, 4.4162, 1.89)

#初始化yolo2网络,识别可信概率为0.7(70%)
a = kpu.init_yolo2(task, 0.7, 0.3, 5, anchor)

while(True):

    clock.tick()

    img = sensor.snapshot()
    code = kpu.run_yolo2(task, img) #运行yolo2网络


    if code:
        for i in code:
            a=img.draw_rectangle(i.rect())
            a = lcd.display(img)

            lcd.draw_string(i.x(), i.y(), classes[i.classid()], lcd.RED, lcd.WHITE)
            lcd.draw_string(i.x(), i.y()+12, '%f1.3'%i.value(), lcd.RED, lcd.WHITE)
    else:
        a = lcd.display(img)

    print(clock.fps())#打印FPS

到了这里,关于智能送药小车(二)——K210物体检测,训练模型与部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • k210部署自行训练的口罩识别模型

    因为培训需要,开坑K210,前后忙活了3天终于把自行训练的口罩模型部署成功了,实测还行,分享一下经(ni)验(keng): 本人学过一段时间python,见过别人玩开源硬件(没动过手),接触过一点人工智能项目的理论知识(观课议课),先自己体验一下半个项目的过程。 1.资

    2023年04月09日
    浏览(48)
  • Yahboom亚博K210线上模型训练

          Yahboom亚博K210开发板 的官方套件资料介绍使用方法比较笼统,在实际项目开发的过程中,对于小白来说很不友好,而且 B站等视频平台也没有亚博开发板的使用教程 。本次使用 Maixhub平台 对亚博K210进行开发,限于本人学识和开发经验,对开发过程还是比较浅,对深层

    2024年02月14日
    浏览(40)
  • K210学习笔记——MaixHub在线训练模型(新版)

      最近sipeed推出了新版的maixhub在线训练平台,因为前端时间比较忙没有时间来体验新版的功能,最近闲下来后赶忙来体验一下。新版maixhub对浏览器有要求的,比如不支持qq浏览器,推荐使用Chrome、Microsoft Edge、Firefox、Safari等浏览器。点击这里跳转新版maixhub。   新版mai

    2023年04月08日
    浏览(38)
  • K210学习篇(八)在MaixHub训练模型

    本文着重于如何使用K210拍摄图片,并将图片上传到MaixHub平台进行模型训练。补充一下一些经验心得,比如一些训练参数的设置。 在我们训练模型之前,我们需要获取一些数据集,其实也就是需要识别的物体图片。这里记得我们在获取数据集的时候,尽量使用手里的k210去进行

    2024年02月17日
    浏览(48)
  • Canmv K210开发板训练自己的模型

    关于Canmv开发板的介绍: CanMV K210 AI开发板全网首发,项目代码完全开源,千套开发板限时优惠! 本文参考:使用CanMV进行多物体识别   便宜!便宜!便宜!淘宝200即可买到一个能带摄像头和LCD屏等等的开发板,到手即用,对于我们这种学生党来作为学习、打比赛等在性价

    2024年02月01日
    浏览(49)
  • K210学习笔记(十二)——MaixHub本地训练模型(Windows)

    MaixHub虽然可以在线训练模型,但是数据集限制大小为20M以下,而且大多数时候都需要排队才能训练模型,这可能就不能满足我们对模型的需求,所以我在Windows系统下搭建环境,本地训练模型。对于本地训练的纯小白来说,虽然MaixHub本地训练不需要虚拟机,但是还是要严格按

    2023年04月26日
    浏览(48)
  • 神经网络:训练模型+转化为k210上跑的kmodel

    目录 前言 第一种 第二种 第三种 第四种 结语

    2024年02月16日
    浏览(41)
  • Maix Bit(K210)保姆级入门上手教程---自训练模型之云端训练

    Maix Bit(K210)保姆级入门上手教程—环境搭建 Maix Bit(K210)保姆级入门上手教程—外设基本使用 这是K210快速上手系列文章,主要内容是,介绍MaixHub这个线上训练模型的使用,以及如何部署到K210中。 阅读本文的前提:读者对基本的监督式学习有一定的了解,之道学习率、迭

    2024年02月16日
    浏览(87)
  • K210学习笔记(十一)——MaixHub在线训练模型(旧版在线炼丹)

    个人觉得K210与openmv最大的区别就是可以跑模型了,虽然不能跑yolov5得这类大型模型,但是还是可以使用一些yolov2、Mobilenet V1等轻量化模型。 想要训练一个可用得模型,奈何电脑显卡不给力,没关系,我们可以使用Spieed的MaixHub模型在线训练来训练模型。Maixhub 模型训练平台帮

    2024年02月05日
    浏览(68)
  • 使用Mx-Yolov3与Maixhub,本地及线上训练K210模型文件

    声明: 本文谢绝转载! CSDN地址:https://blog.csdn.net/weixin_58068682 个人博客:https://amnesia-f.gitee.io/ 目前提供两种训练: 目标分类: 识别图片所属的种类, 比如图中是苹果还是杯子, 没有坐标。 如下图,识别到了苹果,是苹果的概率为0.8 目标检测: 检测图片中物体的位置, 并

    2024年02月15日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包