2023 电赛 E 题 K210 方案
第一章:K210 介绍
K210芯片是一款基于RISC-V架构的嵌入式人工智能芯片,具备低功耗、高性能的特点。它拥有强大的图像处理和机器学习能力,适用于边缘计算设备和物联网应用。为了方便开发者,K210芯片提供了丰富的外设接口,包括摄像头接口、显示接口、WiFi、蓝牙等,同时支持多种编程语言和开发环境,如MicroPython和C语言。在计算机视觉领域,K210芯片被广泛应用于对象检测、人脸识别、图像分类等任务,能够实现快速的图像处理和分析。
K210 官网
第二章:矩形识别的基本原理
矩形识别是计算机视觉领域中常见的任务之一,它主要涉及图像处理和机器学习算法。
-
对于图像的预处理,可以根据具体需求选择合适的方法进行降噪、分辨率调整和对比度增强等操作。例如,可以使用滤波器进行降噪,使用插值算法进行分辨率调整,使用直方图均衡化进行对比度增强。
-
特征提取阶段需要根据具体的矩形特征进行选择合适的方法。边缘检测算法可以帮助找到图像中的边界信息,常用的算法包括Sobel算子和Canny边缘检测算法。直线检测可以使用Hough变换来识别直线,而角点检测算法可以使用Harris角点检测或Shi-Tomasi角点检测等方法。
-
矩形检测阶段可以使用霍夫变换或其他算法来检测图像中的矩形。霍夫变换可以通过累加直线参数来找到直线,进一步组合成矩形。也可以使用基于角点特征的方法,例如使用RANSAC算法来拟合矩形模型。还可以结合机器学习算法,如基于深度学习的目标检测方法,来实现矩形检测。
-
矩形定位可以通过计算矩形的边界框或角点坐标来实现。根据具体需求,可以选择不同的方式表示矩形的位置和大小,例如使用左上角和右下角坐标、中心点和宽高等。
-
矩形识别应用广泛,根据具体场景和需求,可以进行目标检测、边缘检测等任务。例如,在自动驾驶中,矩形识别可以帮助车辆识别道路的边界和交通标志;在工业领域,矩形识别可以用于产品的质量检测和生产线的自动控制。此外,矩形识别还可以应用于机器人视觉、安防监控等领域。
第三章:图像预处理与特征提取
在矩形识别任务中,图像预处理和特征提取是非常关键的步骤。
3.1 图像采集与传输
在进行图像预处理和特征提取之前,需要先将图像从 K210 开发板采集并传输到计算机上进行处理。可以通过连接相机模块或者摄像头到 K210 开发板来实现。
3.2 图像预处理
图像预处理旨在提高图像质量,减少后续处理过程中的噪声和干扰。以下是一些常见的图像预处理方法:
- 降噪:使用滤波器(如高斯滤波器)对图像进行平滑处理,去除图像中的噪声。
- 阈值处理:使用阈值对图像进行处理,选取需要的区域。
- 对比度增强:通过直方图均衡等方法增强图像的对比度,使得图像中的信息更加明显。
- 光照校正:对图像的亮度进行调整,使得图像中的目标更加清晰可见。
3.3 特征提取
特征提取是矩形识别中的关键步骤,它从图像中提取出与矩形相关的特征信息。以下是几种常用的特征提取方法:
- 边缘检测:边缘是图像中物体之间的界限,通过使用边缘检测算法(如Canny算法、Sobel算法等),可以找到图像中的边缘信息。
- 直线检测:直线是矩形的基本组成部分,通过使用直线检测算法(如霍夫变换),可以找到图像中的直线段。
- 角点检测:角点是矩形的关键特征点,通过使用角点检测算法(如Harris角点检测、FAST角点检测等),可以找到图像中的角点位置。
这些提取到的特征可以作为后续矩形检测和定位的输入,帮助我们准确定位和识别图像中的矩形目标。
第四章:矩形检测与定位
在矩形识别任务中,矩形检测与定位是核心步骤之一。
4.1 矩形检测算法
矩形检测算法旨在从图像中找到可能的矩形目标。以下是几种常用的矩形检测算法:
- 霍夫变换:霍夫变换是一种常用的图像处理技术,可以用于检测直线和其他形状。在矩形检测中,可通过霍夫变换检测图像中的直线,并根据直线之间的关系推断出可能的矩形。
- 边缘连接:边缘连接是一种基于边缘信息的矩形检测方法。它通过将相邻的边缘线段进行连接,形成更大的轮廓,然后根据轮廓的形状和特征进行矩形的筛选。
- 模板匹配:模板匹配是一种基于图像相似度的矩形检测方法。它先使用一个预定义的矩形模板,在图像中进行滑动窗口式的匹配,找出与模板最相似的位置,从而检测出可能的矩形。
4.2 矩形定位
矩形定位是在检测到可能的矩形后,精确定位和判断矩形的位置和大小,以下是几种常用的矩形定位方法:
- 最小外接矩形:通过计算轮廓的最小外接矩形来定位矩形。最小外接矩形是能够完全包围住轮廓,并且具有最小面积的矩形。
- 长宽比筛选:根据矩形的长宽比进行筛选,排除不符合要求的矩形。例如,可以设定一个阈值,只保留长宽比接近于1的矩形。
- 角度筛选:检测矩形四条边的角度,排除角度不在一定范围内的矩形。例如,可以设定一个阈值,只保留角度接近于90度的矩形。
这些矩形检测和定位的方法可以根据实际需求进行选择和组合,以得到更准确的矩形识别结果。
4.3 K210深度算法
-
MobileNet-SSD:MobileNet-SSD是基于MobileNet和SSD(Single Shot MultiBox Detector)的目标检测算法。它在保持较高精度的同时,具有较低的计算复杂度,非常适合在K210芯片上进行实时的矩形检测与定位。
-
Tiny YOLO:Tiny YOLO是一种轻量级的目标检测算法,它是对YOLO算法的优化版本。通过减少网络结构和运算量,Tiny YOLO在保持较高检测精度的同时,能够在K210芯片上实现实时的矩形检测。
-
EfficientDet:EfficientDet是一种高效的目标检测算法,它结合了EfficientNet和BiFPN(Bi-directional Feature Pyramid Network)。该算法通过设计高效的网络结构和特征金字塔网络,能够在K210上实现准确且高效的矩形检测与定位。
-
CornerNet:CornerNet是一种基于角点的目标检测算法,它通过检测矩形的角点来实现矩形的定位和姿态估计。该算法具有较高的准确性和鲁棒性,在K210芯片上进行角点检测和矩形定位非常有效。
第五章:K210 实现矩形识别并返回坐标
5.1 K210 开发板配置
按照以下步骤进行操作:
-
获取 K210 开发板:购买或准备一块 K210 开发板,如 Sipeed Maixduino 等。
-
安装开发环境:在电脑上安装 K210 的开发环境,主要包括 K210 的工具链和 SDK。
-
连接开发板:将 K210 开发板通过 USB 线缆与电脑连接,并确保驱动程序正确安装。
-
编程与烧录:使用开发环境编写矩形识别的代码,将代码烧录到 K210 开发板中。
-
配置摄像头:如果需要从摄像头获取图像进行矩形识别,还需要配置和连接摄像头。
5.2 代码编写
在 K210 开发板上进行矩形识别的代码编写,可以使用 K210 提供的 SDK(Software Development Kit)。以下是一般的代码编写步骤:
-
引入必要的库和头文件:根据需要引入与矩形识别相关的库和头文件,如摄像头库、神经网络库等。
-
初始化开发板和摄像头:通过相应的函数调用初始化 K210 开发板和连接的摄像头。
-
图像采集和处理:使用摄像头获取图像数据,并进行预处理,如缩放、裁剪和色彩空间转换等操作。这些操作可根据具体的矩形识别算法来确定。
-
矩形识别与定位:使用选定的矩形识别算法进行图像的矩形检测和定位。根据具体的算法,可以获取矩形的位置、大小和角度等信息。
-
坐标返回:将识别到的矩形的坐标信息返回给主程序或其他设备,以便进行后续处理或显示。
-
清理资源:在完成矩形识别任务后,释放所使用的资源,如摄像头、内存等。
5.3 坐标应用
在实际应用中,可以使用矩形识别得到的坐标信息进行各种操作和应用,如图像分析、目标跟踪、自动驾驶等。以下是一些常见的应用场景:
-
目标跟踪:通过识别和返回的矩形坐标,可以实现对目标物体的跟踪和定位。例如,在视频监控系统中,可以通过矩形识别得到的坐标信息,实现对目标物体的自动追踪。
-
姿态估计:通过识别和返回的矩形坐标和角度信息,可以进行物体的姿态估计。例如,在机器人导航系统中,可以使用矩形识别结果来判断物体的朝向和姿态,从而实现更准确的导航和操作。
-
物体测量:通过识别和返回的矩形坐标和大小信息,可以进行物体的尺寸测量。例如,在生产线上,可以使用矩形识别结果来测量产品的长度、宽度等参数,以保证产品质量和一致性。
第六章:总结
本文系统地介绍了基于K210开发板的矩形识别技术的实现过程,并探讨了其在实际应用中的重要性和前景。通过对K210开发板的配置和编写相应的代码,可以在K210上实现准确和实时的矩形识别。未来,基于K210的矩形识别技术有望进一步优化算法、扩展功能,并在更多领域中得到应用。
下一章内容:使用K210进行实地测试,得到矩形的坐标
硬性的标准其实限制不了无限可能的我们,所以啊!少年们加油吧!
相关文章:
2023 电赛 E 题 K210 方案
第一章:K210 介绍 K210芯片是一款基于RISC-V架构的嵌入式人工智能芯片,具备低功耗、高性能的特点。它拥有强大的图像处理和机器学习能力,适用于边缘计算设备和物联网应用。为了方便开发者,K210芯片提供了丰富的外设接口ÿ…...
Python的正则表达式re模块的compile()方法有什么作用?
re模块是Python标准库中的正则表达式模块,它提供了对正则表达式的支持。re.compile()是re模块的一个方法,用于将正则表达式编译成可复用的正则对象。 正则表达式是用来匹配和处理文本模式的强大工具。当你需要在字符串中查找、替换或者提取符合特定模式…...

SQL 语句中 left join 后用 on 还是 where,区别大了!
目录 情况 小结 举例 情况 前天写SQL时本想通过 A left B join on and 后面的条件来使查出的两条记录变成一条,奈何发现还是有两条。 后来发现 join on and 不会过滤结果记录条数,只会根据and后的条件是否显示 B表的记录,A表的记录一定会显…...

uni-app 微信小程序自定义导航栏
一、效果图 二、导航栏的组成 上面的导航栏主要由状态栏(就是手机电量显示栏)和小程序的导航栏组成,android手机一般为48px,ios手机一般为44px 三、开发步骤 1、设置navigationStyle:custom {"path": "pages/v…...

电缆故障检测仪技术参数
一、电缆故障测试仪的技术参数 1.采样方法:低压脉冲法、冲击闪络法、速度测量法 2.电缆长度:50m、300m、1km、2km、5km、10km、30km、60km 3.波速设置:交联乙烯、聚氯乙烯、油浸纸、不滴油和未知类型自设定 4.冲击高压:35kV及以下…...

固定资产管理软件
固定资产全生命周期管理软件采用先进的RFID技术,从采购、入库、借用、总结、清理到损坏等方面准确统计资产,突破过去手工统计的复杂性,节省资产资源,减少调查时间,确保资产管理工作的准确性和快速性。 固定资产管理软…...

云安全攻防(四)之 云原生技术
云原生技术 容器技术 容器与虚拟化 虚拟化(Virtualization)和容器(Container)都是系统虚拟化的实现技术,可实现系统资源的”一虚多“共享。容器技术可以理解成一种”轻量的虚拟化“方式,此处的”轻量“主…...

线上通过Nginx部署前端工程,并且配置SSL
介绍、为了更好的帮助大家学习,减少歧义,IP地址我就不隐藏了,公司也是我自己的公司。你们就别来攻击了。 下面给出步骤: 一、前期准备工作 通过在目标服务器上安装宝塔面板、安装redis、mysql、nginx、jdk环境等 1、 2、前端工程通过npm run build 打…...

直播预告 | 开源运维工具使用现状以及可持续产品的思考
运维平台自上世纪90年代开始进入中国市场,曾形成以传统四大外企:IBM、BMC、CA、HP为代表的头部厂商,还有一众从网管起家的国内厂商。2010年前后,出现了以Zabbix、Nagios、Cacti为代表的开源工具,后来又陆续出现了Prome…...
GPT带我学-设计模式-工厂模式
1 你好,请问你知道设计模式的工厂模式吗 当然知道,工厂模式是一种创建型设计模式,它提供了一种创建对象的方式,而不需要暴露对象创建的逻辑细节。工厂模式通过使用工厂类来创建对象,从而将对象的实例化逻辑与客户端代…...

Docker 安装 Tomcat
目录 一、查看 tomcat 版本 二、拉取 Tomcat Docker 镜像 三、创建 Tomcat 容器 四、访问 Tomcat 五、停止和启动容器 一、查看 tomcat 版本 访问 tomcat 镜像库地址:https://hub.docker.com/_/tomcat,可以通过 Tags 查看其他版本的 tomcat; 二、拉…...
seata注册到nacos(docker)
1、安装:docker run --name seata-server2 -p 8091:8091 -p 7091:7091 seataio/seata-server:1.5.1 复制seata-server2到服务器,然后过河拆桥 2、创建挂载目录 mkdir -p /ssy/seata_docker 3、将容器 resources文件挂载到宿主机 docker cp seata-server2…...
ffmpeg综合应用示例(五)——多路视频合并(Linux版本)
本文的目的为方便Linux下编译运行多路视频合成Demo 原文:ffmpeg综合应用示例(五)——多路视频合并 Ubuntu 20.04 ffmpeg version ffmpeg-4.4-x86_64 编译 export LD_LIBRARY_PATH$LD_LIBRARY_PATH:/home/workspace/dengzr/linux-x64/lib…...

Node.js-http模块服务端请求与响应操作,请求报文与响应报文
简单案例创建HTTP服务端: // 导入 http 模块 const http require("http"); // 创建服务对象 const server http.createServer((request, response) > {// 设置编码格式,解决中文乱码问题response.setHeader("content-type", &…...

除了PS,还有那些软件可以打开PSD文件
设计师在交接文件时,会看到各种格式的扩展文件,不同的格式需要不同的软件来运行。大多数人都听说过流行的文件格式PSD,因为它是最常用的图片格式之一,还有JPG、PNG等。然而,与JPG和PNG不同的是,PSD格式文件…...

uniapp h5支付宝支付后端返回Form表单,前端如何处理
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1.调取接口拿到后端返回的form表单 前言 uniapp h5 支付宝支付,后端返回一串form表单,前端如何拿到支付串并且调用支付 1.调取接口拿到…...

【华秋干货铺】PCB布线技巧升级:高速信号篇
如下表所示,接口信号能工作在8Gbps及以上速率,由于速率很高,PCB布线设计要求会更严格,在前几篇关于PCB布线内容的基础上,还需要根据本篇内容的要求来进行PCB布线设计。 高速信号布线时尽量少打孔换层,换层优…...
c#:ObservableCollection<T>的用法
1.说明: ObservableCollection:表示一个动态数据收集,该集合在添加或删除项或刷新整个列表时提供通知。 2.使用: 首先声明一个类 public ObservableCollection ProItems;//具体情况具体写对应的信息 表格DataGrid案例ÿ…...
Linux 端口号占用如何处理(使用命令处理)
查看被占用端口号 sudo netstat -tlnp 端口号 示例: sudo netstat -tlnp 3380杀死进程 sudo kill 进程Id sudo kill 11032...

ubuntu git操作记录设置ssh key
用到的命令: 安装git sudo apt-get install git配置git用户和邮箱 git config --global user.name “用户名” git config --global user.email “邮箱地址”安装ssh sudo apt-get install ssh然后查看安装状态: ps -e | grep sshd4. 查看有无ssh k…...

C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...