Maix Bit K210识别色块(确定目标颜色)【保姆级教程】

上一篇 MaixPy IDE Maix Bit K210人脸识别(内有获取机器码步骤)

使用方法

MaixPy 已经在 image 模块中实现有查找色块方法,需要使用非 minimum 固件版本。
image模块的解释与mininum固件可在MaixPy文档中找到。

识别基本步骤

从摄像头获取图片
import image, sensor
img=sensor.snapshot()

从图片中查找所有色块对象(image.blob)列表, 传入的颜色阈值参数按照 LAB 格式(l_lo,l_hi,a_lo,a_hi,b_lo,b_hi)
green_threshold   = (0,   80,  -70,   -10,   -0,   30)
blobs = img.find_blobs([green_threshold])

操作色块对象
根据自己的需求操作色块对象, 例如将色块对象在图像中用矩形框标识出来
tmp=img.draw_rectangle(b[0:4])

例程 找绿色色块

import sensor
import image
import lcd
import time
lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
green_threshold   = (0,   80,  -70,   -10,   -0,   30)
while True:
    img=sensor.snapshot()
    blobs = img.find_blobs([green_threshold])
    if blobs:
        for b in blobs:
            tmp=img.draw_rectangle(b[0:4])
            tmp=img.draw_cross(b[5], b[6])
            c=img.get_pixel(b[5], b[6])
    lcd.display(img)

打开MaixPy IDE,将以上代码复制
在这里插入图片描述
提前百度一张关于绿色的照片。连上板子,点击运行,可以看到右上角的预览中被识别的部分已经被框选,绿色被识别。

那么我们如何识别别的颜色呢?

确定颜色阈值

在识别基本步骤中,可以看到,代码被分为了三部分。
我们要特别注意第二部分,如何确定目标颜色。在官方开发工具中,按以下步骤打开
在这里插入图片描述
选择图像文件并打开,拖动六个滑块,可以实时的看到阈值的结果,我们想要的结果就是,将我们的目标颜色变成白色,其他颜色全变为黑色,下图我们采用的黄色。
在这里插入图片描述
上图被框选内容就是我们需要的"颜色"。将数据复制到下图框选范围内,即可完成对目标颜色的改变。
在这里插入图片描述
再次点击左下角运行按钮,可以看到,屏幕中黄色被识别。

下一篇 Maix Bit K210在线训练模型

### 使用Maix Bit K210进行图像分类识别 #### 准备工作 为了实现基于Maix Bit K210的图像分类识别功能,需先完成必要的准备工作。这包括但不限于安装并配置好K210的开发环境,确保可以编译和下载代码至该板子上[^2]。 #### 安装所需库文件和支持固件 由于K210与OpenMV存在一定的互通性,部分OpenMV中的函数可以直接应用于K210项目中,但这依赖于特定版本的支持固件[^1]。因此,在开始之前,请确认已加载适合用于机器学习任务的最新版MaixPy固件,并通过官方文档获取更多关于如何更新固件的信息。 #### 加载预训练模型 对于初学者来说,最简单的方法是从现有的预训练神经网络入手。这里推荐使用由Sipeed团队提供的轻量卷积神经网络(CNN),它已经被优化以适应资源受限设备上的运行需求。可以通过如下方式加载此模型: ```python from maix import nn, camera, display model_path = "/path/to/your/model_file" labels = ["label_1", "label_2"] # 替换为实际类别名称列表 interpreter = nn.Interpreter(model_path=model_path) ``` #### 获取实时视频流数据 利用内置摄像头模块捕捉当前场景的画面作为输入源供后续处理分析。下面是一段简单的脚本用来展示这一过程: ```python while True: img = camera.capture() # 抓取一帧图片 if not img: continue resized_img = img.resize((96, 96)) # 调整大小匹配模型预期尺寸 input_data = np.array(resized_img).reshape(-1,) / 255.0 # 归一化像素值范围到[0,1] output = interpreter.run(input_data)[0] top_k_results = sorted(enumerate(output), key=lambda x:x[1], reverse=True)[:3] predicted_label_index = top_k_results[0][0] confidence_score = round(top_k_results[0][1]*100, 2) result_text = f"{labels[predicted_label_index]} ({confidence_score}%)" print(result_text) display.show(img.draw_string(0, 0, result_text)) ``` 上述代码片段实现了连续捕获图像帧并对每一张执行预测操作的功能;同时会在屏幕上显示最高概率对应的标签及其置信度得分。
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

动态比特

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

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

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

打赏作者

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

抵扣说明:

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

余额充值