k210学习记录(数字识别)

示例代码:

import sensor, image, time, lcd
from maix import KPU
import gc

lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_windowing((224, 224))
sensor.skip_frames(time = 100)
clock = time.clock()

kpu = KPU()
kpu.load_kmodel("/sd/KPU/mnist/uint8_mnist_cnn_model.kmodel")


while True:
    gc.collect()
    img = sensor.snapshot()
    img_mnist1=img.to_grayscale(1)
    img_mnist2=img_mnist1.resize(112,112)
    img_mnist2.invert()
    img_mnist2.strech_char(1)
    img_mnist2.pix_to_ai()

    out = kpu.run_with_output(img_mnist2, getlist=True)
    max_mnist = max(out)
    index_mnist = out.index(max_mnist)
    score = KPU.sigmoid(max_mnist)
    if index_mnist == 1:
        if score > 0.999:
            display_str = "num: %d" % index_mnist
            print(display_str, score)
            img.draw_string(4,3,display_str,color=(0,0,0),scale=2)
    elif index_mnist == 5:
        if score > 0.999:
            display_str = "num: %d" % index_mnist
            print(display_str, score)
            img.draw_string(4,3,display_str,color=(0,0,0),scale=2)
    else:
        display_str = "num: %d" % index_mnist
        print(display_str, score)
        img.draw_string(4,3,display_str,color=(0,0,0),scale=2)
    lcd.display(img)

kpu.deinit()

解析:

1、导入相关库,初始化摄像头和LCD屏

import sensor, image, time, lcd
from maix import KPU
import gc

lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_windowing((224, 224))
sensor.skip_frames(time = 100)
clock = time.clock()

2、加载模型文件

kpu = KPU()
kpu.load_kmodel("/sd/KPU/mnist/uint8_mnist_cnn_model.kmodel")

3、新建while循环读取摄像头画面,然后复制一个112*112大小的画面,对像素进行取反等处理,再将图像传入KPU里进行计算,与模型文件做运算,最终得到最优识别结果和识别分数

while True:
    gc.collect()
    img = sensor.snapshot()
    img_mnist1=img.to_grayscale(1)
    img_mnist2=img_mnist1.resize(112,112)
    img_mnist2.invert()
    img_mnist2.strech_char(1)
    img_mnist2.pix_to_ai()

    out = kpu.run_with_output(img_mnist2, getlist=True)
    max_mnist = max(out)
    index_mnist = out.index(max_mnist)
    score = KPU.sigmoid(max_mnist)

4、背景全白或全黑会出现误识别问题(将全黑识别为5,全白识别为1),所以对数字1和5进行额外分析

if index_mnist == 1:
        if score > 0.999:
            display_str = "num: %d" % index_mnist
            print(display_str, score)
            img.draw_string(4,3,display_str,color=(0,0,0),scale=2)
    elif index_mnist == 5:
        if score > 0.999:
            display_str = "num: %d" % index_mnist
            print(display_str, score)
            img.draw_string(4,3,display_str,color=(0,0,0),scale=2)
    else:
        display_str = "num: %d" % index_mnist
        print(display_str, score)
        img.draw_string(4,3,display_str,color=(0,0,0),scale=2)
    lcd.display(img)

kpu.deinit()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
K210是一款基于ARM架构的芯片,由中国飞思卡尔公司开发。作为一款功能强大的边缘计算芯片,K210可用于各种人工智能应用。在电赛中,我们可以使用K210芯片进行数字识别训练。 数字识别是一项常见的人工智能任务,可以在识别手写数字、验证码、车牌号等方面发挥重要作用。使用K210芯片进行数字识别有以下几个步骤: 1. 数据准备:首先,我们需要收集一些已经标注好的数字图片作为训练集和测试集。可以使用各种方法进行数据采集,如在网上下载、自己手写等。将采集的数据集划分为训练集和测试集,确保模型的泛化能力。 2. 数据预处理:在进行数字识别训练之前,我们需要对数据进行预处理。预处理包括图像尺寸调整、灰度化、归一化等操作,以便提高模型的训练效果。 3. 模型选择和训练:K210芯片支持各种深度学习模型,在训练数字识别任务时,可以选择一些经典的模型结构,如卷积神经网络(CNN)。使用K210的硬件特性,我们可以利用其高性能进行模型训练,加快训练速度。 4. 模型评估和优化:训练完成后,我们需要对模型进行评估。可以使用测试集对模型进行测试,计算模型在测试集上的准确率、精确率等指标。如果模型表现不佳,可以通过调整模型结构、优化超参数等方式进行模型优化。 5. 部署和应用:经过训练和优化的模型可以在K210芯片上进行部署和应用,实现数字识别功能。可以通过调用模型进行实时的数字识别,为各种应用场景提供支持。 综上所述,使用K210芯片进行数字识别训练,需要进行数据准备、数据预处理、模型选择和训练、模型评估和优化、部署和应用等步骤。通过充分发挥K210芯片的硬件优势,可以实现高效准确的数字识别任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不吃橘子的橘猫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值