2023 电赛 E 题 K210 方案--K210实现矩形识别

这篇具有很好参考价值的文章主要介绍了2023 电赛 E 题 K210 方案--K210实现矩形识别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

相关库介绍

sensor(摄像头)

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(10)

reset():重置并初始化单目摄像头

set_pixformat():设置摄像头输出格式,可选的帧格式有GRAYSCALERGB565YUV422,需要根据自己的摄像头进行修改

set_framesize():设置摄像头输出帧大小,最大支持VGA格式,推荐设置为QVGA格式

skip_frames():跳过指定帧数或者跳过指定时间内的图像,主要作用为让摄像头识别的图像稳定下来,画面不抖动

代码介绍

识别的具体思路可以看2023 电赛 E 题 K210方案 第五章

矩形阈值设定

2023 电赛 E 题 K210 方案--K210实现矩形识别,K210,K210,电赛,矩形识别

 图1 选择阈值编辑器

2023 电赛 E 题 K210 方案--K210实现矩形识别,K210,K210,电赛,矩形识别  图2 阈值调节框

通过调节LAB值来得到让图中矩形框为白或为黑。

得到LAB阈值:(73, 16, -67, 30, 55, -56)

2023 电赛 E 题 K210 方案--K210实现矩形识别,K210,K210,电赛,矩形识别

  图3 阈值调节结果

注:在实际情况中,这个阈值需要进行调整,在不同环境因素下,即使在同一个地方,由于不同的距离和光线,都会影响阈值的最终结果。

建议:在进行阈值设定时,可以多考虑不同的情况下,不同的阈值情况,让代码选择在不同的情况下的不同阈值;或则收集到足够多的阈值,使用聚类方法将其得到一个中间值。

关键代码

    # 寻找轮廓
    contours = img.find_blobs(region_thresholds1[i], invert=False, area_threshold=100, pixels_threshold=10, merge=True)
    if contours:
        max_blob = find_min(contours)
        if max_blob:
            img.draw_rectangle(max_blob[0:4], color=(0,255,0))

find_blobs():查找图像中所有色块,并返回一个包括每个色块的色块对象的列表。

thresholds: 必须是元组列表. [(minL, minA, minB, maxL, maxA, maxB)],就是阈值

invert:反转阈值操作,像素在已知颜色范围之外进行匹配,而非在已知颜色范围内。

即:在调节的阈值中需要的为黑色,通过反转后,就会检测白色部分,返回白色部分的色块。

area_threshold:若一个色块的边界框区域小于该值,则会被过滤掉。

pixels_threshold:若一个色块的像素数小于该值,则会被过滤掉。

merge :True,则合并所有没有被过滤掉的色块,这些色块的边界矩形互相交错重叠。

通过调用该方法就可以找到在画面中所需要的所有结果。

返回值:[{'x': 140, 'y': 88, 'w': 15, 'h': 7, 'pixels': 43, 'cx': 147, 'cy': 91}]
(x, y, w, h)表示色块的外框,pixels表示色块的像素大小,(cx, cy)表示色块的中心点。

def find_min(blobs):
    use_ = [20,20, 280,200]
    max_size = float("inf")
    min_blob = None
    for blob in blobs:
        if blob[0] != 0 and blob[1] != 0:
            if is_rect_in_rect(use_, blob[0:4]) or abs(abs(blob[0] - blob[2]) - abs(blob[1] - blob[3])) < max_size:
                print(blob)
                min_blob = blob
                min_size = abs(abs(blob[0] - blob[2]) - abs(blob[1] - blob[3]))
    return min_blob

find_min():该函数的作用时从得到的矩形框中选出我们需要的,剔除掉不合适的。

在这个函数里面我们限定识别到的矩形框应该在整个画面的中心位置,不能出现在画面的边界位置。

并且我们还去掉了一种特殊情况,就是当摄像头什么都没有识别到或识别画面为空(显示为黑色)时,就会把整个画面进行框起来,这种是一种特殊情况,在代码中通过判断矩形的起始坐标是否w为0,如果为0,就去掉该种情况。

出现的问题

1、当画面距离摄像头太远时,识别的效果会不佳。

2、在移动过程中,会出现识别不佳。

3、画面模糊。

4、代码频频报错,不知道什么原因。

解决的问题

1、可以等摄像头稳定时,看看它的识别效果怎样,尽量不要用手去移动,可以使用一个支架。

2、在移动过程中,可以考虑给摄像头加一个跳帧识别,或则选用一个高性能的摄像头。

3、这个可能时在初始化摄像头时没有设置对,或则摄像头已经损坏。

4、K210中使用的Python语言并不是一个完整的Python,简称MicroPython,与Python是有区别的,因此在编写代码中要额外注意,不能混淆两则。如果语法正确,那就可能是当前安装的固件中不支持当前代码的库,这样就需要去更新固件。

实现效果

2023 电赛 E 题 K210 方案--K210实现矩形识别,K210,K210,电赛,矩形识别

 图4 识别效果1

2023 电赛 E 题 K210 方案--K210实现矩形识别,K210,K210,电赛,矩形识别

 图5 识别效果2

下一章内容:对当前代码进行修改和完善,使其在远距离也能够进行识别。

 硬性的标准其实限制不了无限可能的我们,所以啊!少年们加油吧!文章来源地址https://www.toymoban.com/news/detail-623332.html

到了这里,关于2023 电赛 E 题 K210 方案--K210实现矩形识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • K210实现单目测算距离—以21年电赛F题为例

    单目测距在无人驾驶,路径规划中的地位越来越重要,比激光雷达和深度相机的成本更低,更适合于项目的开发。 单目测算距离的原理就是初中物理上学的小孔成像原理,但是由于我们不知道高度,所以会造成深度丢失。所以我们第一步就是测量我们要测量物体的真实宽度和

    2024年02月14日
    浏览(29)
  • 电赛备赛日记(一):K210与STM32串口通信

       拖更了n久的备赛日记终于来啦,最近实现了关于K210图像识别并将所需数据(即目标类别,目标在图像中的加权坐标)其中,加权坐标指K210识别到的目标并框出的框的宽和高与框左上顶点的坐标加权,希望以此来判断目标所处的位置并方便后续进行诸如寻迹,目标跟随等

    2024年02月04日
    浏览(46)
  • K210——声源定位、声音识别

    来了,K210的声源定位。 2022电赛] 声源定位跟踪系统(E题)k210 麦克风阵列效果实测! sipeed官方做的,效果还不错。 sipeed家的声源定位模块,K210常用的都可以用 将麦克风阵列模块与 pyAI-K210 使用 FPC 10P 排线进行连接,接口在开发板背部(排线金手指下接)。 麦克风阵列扩

    2024年02月16日
    浏览(37)
  • k210部署自行训练的口罩识别模型

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

    2023年04月09日
    浏览(26)
  • K210学习笔记(七):画图与颜色识别

    在之前我们学会了关于K210的摄像头与lcd的一些应用,那么今天我们了解一些关于K210的一些画图的方法和利用K210进行颜色识别。 首先我们明确,什么是画图,为什么要画图。画图指在图片上画出圆,方框,箭头,十字交叉或者字符。我们为什么要画图,其实一个基础的应用就

    2024年02月15日
    浏览(28)
  • K210学习笔记(八):颜色识别计数与二维码识别

    宿醉断更enmmm(喝多太难受了)。前面我们介绍了使用K210进行颜色识别,在实际工程中,我们可能不止需要单纯的识别出来颜色,可能还需要计数(比如前段时间看到的有串串店利用摄像头拍照识别签子数的),当然,识别签子数肯定不是简单的颜色识别计数能解决的,为了

    2024年02月13日
    浏览(24)
  • K210学习笔记(九):KPU之人脸识别

    K210进入到这里总算是要进入这块板子的精髓部分了,超低功耗配备的超强算力,所谓的KPU可以理解成显卡,可以给模型的运算提提速。我们来简单介绍一下KPU部分(来源MicorPython从0到1): KPU 是 K210 内部一个神经网络处理器, 它可以在低功耗的情况下实现卷积神经网络计算

    2024年02月12日
    浏览(36)
  • K210学习笔记(十):KPU之物体识别

    进行到KPU的又一个应用咯,其实跟前一个人脸识别的应用没有太多的不同。物体识别这里可是分类二十个物体,而人脸识别只是一个简单的二分类问题。(理论上机器学习也能做但是效果咋样就不知道了)。 大概的程序思路跟上一个实验也是一致的,将该用的函数库导入之后

    2024年02月13日
    浏览(31)
  • K210识别应用:基于yolov2模型的数字识别控制舵机

              注:此文章转载于本人的微信公众号:Young L童鞋                                                                           关注我,走进嵌入式江湖  电赛期间,在实验室学长的引领下入手了一块K210,在很多比赛中,K210的作用是用来做视觉部分,当然也可以用到

    2024年02月15日
    浏览(25)
  • 【01Studio MaixPy AI K210】13.颜色识别

    目录 导包: image库 LAB模型 例程: 测试图片  

    2024年02月14日
    浏览(27)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包