【RT-Thread作品秀】基于ART-PI的数字图像处理与识别

RT-Thread实时操作系统简介 阅读详情

一.概览

本人虽然是电子信息技术专业出身,在毕业后从事的是偏软件的工作,大多数是PC软件的开发,但一直以来,闲暇时间会利用STM32做些小的作品。对于RT-Thread这国内的物联网操作系统,其实早有耳闻,期间也参加过深圳的一次RT-Thread线下交流活动,所以对于RT-Thread是有所了解而未实际应用的程度。


借着此次RT-Thread大赛的机会,我想将PC的一些图像处理和图像识别算法放到art-pi试跑一下看看效果如何,所以本次参赛将会使用art-pi获取OV7670的图像来做像处理和图像识别。

二.开发环境

硬件:PC、ART-PI、OV7670、RGB_LCD


RT-Thread版本:rt-thread4 .0.3,art-pi adk 1.1.0


开发工具及版本:立创EDA,RT-Studio,SecureCRT

三.RT-Thread使用情况概述


线程:创建图像处理线程用于通过DCMI获取OV7670的图像,图像处理后完显示在LCD上


信号量:用于DCMI图像获取,当捕捉完一帧图像后,释放信号量给图像处理线程。


驱动:使用了drv_dcmi驱动并参考drv_ov2640移植drv_ov7670驱动

四.实现功能展示

通过摄像头采集图像进行图像识别,然后将结果显示在LCD屏幕上。

五.硬件框架

本次的硬件核心由ART-PI、OV7670、LCD三部分组成:


ART-PI:stm32H750作为控制核心部分,采集图像源数据、处理图像源生成处理结果、将处理结果送到LCD显示


OV7670:作为图像源,提供320*240的RGB565图像


LCD:实时显示图像源图像和显示处理结果

六.软件流程图

1.    硬件初始化:时钟、I2C、DCMI、SDRAM、LTDC
2.    进入图像处理线程,启动拍照并等待拍照完成信号量
3.    完成拍照释放拍照完成信号量
4.    得到图像后,进行图像处理与图像识别
5.    将图像识别结果在LCD上显示
6.    回到步骤2

七.图像识别功能介绍

通过DCMI驱动获取OV7670的分辨率为320*240的RGB565原始图像。RGB565每个像素使用用下图的方式存储,每个像素占用2个字节。所以每帧320*240的图像所需内存为320*240*2=153600字节。

 


实际上,我们在这次项目中并不需要使用到彩色特征,所以先将RGB565转换为灰色度。灰度图其实就是每个像素占用一字节,用0-255值来形容一个像素的灰度值。因此320*240所占用的内存为76800字节。
RGB565转灰度图公式如下: Gray = R*0.299 + G*0.587 + B*0.114

提取的灰度图后,我们还需要再进行一次二值化处理,因此设定一个阈值,当灰色像素大于这个阈值我们将它改为255,低于这个值变成0。这样就得到一帧只有0和225值的图像。

得到二值化图像后,我们便可以寻找要识别物体了。在此使用九宫格的方式提取连通分量,原理其实很简单,就是在九宫格里寻找连在一起的像素,如果能找到便将该像素便将该像素的坐标(位于X行,y列)写入到链表里。如此循环,直到找完所有像素。

完成连通分量的提取后便是特征提取了,我们还是采用九宫格分割法,将取得的图像平均分割为9个区域,再计算9个区域中值为255像素的个数。通过这一步算法,我们得到了9组特征数据。

本次用了两种特征提取方式:
1. 通过水平与垂直方向的穿越数找出部分数字
以数字0和7为例,在1/2宽度处,0和7稳定的得到垂直穿越数是2.而在1/2高度,0的水平穿越数是2,7的水平穿越数是1.
 


2. 在图像的水平和垂直的中间切分成四块,根据四个部分不同像素比例找出其他数字。以2和3为例 ,在右下角部分,3的每一行都会有像素点,而2会缺几行。因此2的像素更少从而区分2和3。

 

最终检测效果如下图:

八.比赛感悟       

       虽然标题是比赛感悟,实际上比赛并不是我的目的。RT-Thread我知道它更久了,但是一直没有去更进一步使用RT-Thread。这次比赛让我深入了解了RT-Thread的生态系统,给我的感觉真的太惊喜了。RT-Thread平台拥有丰富的组件,完善的各种外设驱动,通过官方的RT-Studio基本上做到入手即用了。


       当时拿到ART-PI,通过RT-Thread SETTING进行勾选,再使用CubeMX选择外设,生成引脚初始化代码后。我本次项目的软件基本平台已经完成了,我只需要专注于我的应用层开发便可以了,这真的是太便利了。


       通过本次比赛,让我对RT-Thread获得相当大的好感,我想未来硬件项目当中,我会毫不犹豫的选择RT-Thread代替其他实时操作系统。

资料下载地址

链接:https://pan.baidu.com/s/1FqOfC6SUgKnaUoDfx2z7Kg

提取码:V5RT


???????????? 点击阅读原文进入RT-Thread官网

【ART-Pi与RT-Thread入门】①ART-Pi上手初体验 文章目录关于ART-Pi实物照片板载资源、扩展接口及驱动支持扩展引脚默认固件蓝牙配网微信扫描二维码设备选择 ART-Pi,输入所要连接的 WIFI SSID 和密码配网成功会显示IP地址打开IP地址Finsh控制台配网WindowsmacOS 关于ART-Pi ART-Pi是 RT-Thread 团队为嵌入式软件工程师、开源创客设计的一款极具扩展功能的 DIY 开源硬件。致力打造一个开源的软硬件平台。 实物照片 板载资源、扩展接口及驱动支持 扩展引脚 其中P1排扩展引脚座兼容树莓派的扩展接口,并 阅读详情

相关推荐

RT-Thread在嵌入式图像处理系统中的应用

通过与图像处理算法库、图形界面库等组件的结合,RT-Thread可以实现图像采集、预处理、特征提取、图像编解码、图形界面显示等功能。最后,RT-Thread拥有丰富的软件生态和强大的移植性,为开发人员提供了更多的选择和便利,助力嵌入式图像处理系统的创新和发展。RT-Thread可以与图像编解码库和通信协议结合使用,实现图像的编码、解码和传输。RT-Thread提供了丰富的组件和功能,包括线程管理、任务调度、进程间通信、设备驱动、文件系统等,可以帮助开发人员快速构建嵌入式系统。

weixin_66608063的博客 479

基于RT-Thread开发智能视觉组智能车 - 温州大学 - 春华秋实

学校:温州大学队伍名称:春华秋实参赛队员:陈俊达、程先春、倪世杰带队教师:王峰 简 介: 目前自动驾驶话题非常火热,近几年华为、特斯拉、谷歌、百度等大型互联网公司都在进行关于这方面的研究。本文设计了基于恩智浦 RT1064芯片的智能小车,以 keil5为开发环境,利用基于 MT9V03X的总钻风数字摄像头作为传感器实现道路识别,使用 S3010转向舵机控制小车转向,依靠 RS380大电机和编码器构成闭环回路控制小车速度。该小车车模利用摄像头采集到赛道数据,根据差比和判断出图像上灰度跳变点即为赛道边缘,计.

TSINGHUAJOKING 9543

ART PI在RT-Thread Studio上开发体验

RT-Thread Studio上开发ART有点树莓派开发的感觉,底层驱动很多情况下根据社区文章推荐,下载配置即可,但是也只是有点树莓派开发的感觉。

qq_26175393的博客 749

基于AI+RT-THREAD的人检测入侵检测摄像头(二 图像数据处理)

二、图像数据的处理 思路: OV2640组件的完善 rgb565数据转灰度图 双线性插值算法压缩图片 1.OV2640组件的完善 RT-THREAD提供了对摄像头OV2640的组件支持,我们在RT-THREAD SETTINGS中设置开启OV2640 尝试编译会发现失败,6errors,2warnings 查看报错我们可以发现是因为有类型未被定义 打开stm32h7xx_hal_conf.h查看没有打开的宏定义 打开DCMI、JPEG的宏 此时编译虽然不报错,但还有程序上的欠缺,RT-THREAD的O

Kejane的博客 2385

ART-Pi软件I2C驱动MPU6050:RT-Thread嵌入式开发实战指南

I2C(Inter-Integrated Circuit)是一种广泛应用于嵌入式系统的同步串行通信协议,通过时钟线(SCL)和数据线(SDA)实现主从设备间的数据传输。其工作原理基于起始/停止信号、地址帧、数据帧和应答位的时序组合,具有接口简洁、支持多主多从的特点。在资源受限的微控制器开发中,当硬件I2C外设引脚被占用或存在兼容性问题时,软件模拟I2C(Soft I2C)成为关键技术方案,它利用通用GPIO通过程序代码精确控制时序,实现了通信协议的灵活部署。这项技术的核心价值在于突破硬件限制,提升引脚配置的

weixin_30915275的博客 493

在RT-Thread的ART-PI平台,进行图片识别

摘要最近在完成2020年没有完成的一个DIY项目,去年年底整个人有点泄气,导致一直搁置的。现在重新把他做好因为项目DIY项目中想引入图片识别,但是我的DIY作品不方便使用烧录等,所以我想用...

Rice开发经验分享 1357

RT-Thread 7.19 记录 深度学习 人形识别

1.直接烧录二进制.bin 1.1准备 ART-Pi_W25Q64.stldr以及rtthread.bin文件下载链接:https://pan.baidu.com/s/1tFP60TIHSvbUqHM8IPSvvw 提取码:1111 1.2操作步骤 第一步:打开RT-Thread Studio,创建RT-Thread项目 并创建示例工程:art_pi_bootloader 第二步:把ART-Pi_W25Q64.stldr以及rtthread.bin这两个文件都拷贝在下面这个路径里: ...

weixin_45263278的博客 1017

手把手教你用6轴IMU跑通LIO-SAM:参数配置与代码修改保姆级教程

本文提供了一套完整的6轴IMU适配LIO-SAM的解决方案,包括参数配置与代码修改的详细步骤。从理解6轴与9轴IMU的关键差异入手,逐步指导如何调整核心配置文件params.yaml、重构utility.h关键函数、优化mapOptimization.cpp的位姿融合逻辑,并给出编译验证与性能调优建议,帮助开发者快速实现6轴IMU在LIO-SAM中的稳定运行。

weixin_28717807的博客 356

放榜时刻!RT-Thread x STM32 全连接创意创客大赛获奖作品一览

近日,由RT-Thread联合ST、广和通、立创EDA、Gitee、正点原子举办,与非网承办的RT-Thread x STM32 全连接创意创客大赛圆满落幕。大赛吸引了超过的300位开发...

rtthreadiotos的博客 2370

泰森多面体Voronoi 3D-V5.0 功能介绍

Abaqus Voronoi3D

qq_34840441的博客 3364

Spring AI 实战:5 分钟搭建你的第一个 AI 应用(含完整代码)

能力关键 API适用场景基础对话简单问答、文本生成流式输出实时打字机效果@Bean模型需要调用外部工具结构化输出需要返回 Java 对象多轮对话聊天机器人场景Spring AI 让 Java 开发者可以用最熟悉的方式(Spring Boot + Maven)进入 AI 应用开发领域,不用学新语言,不用换框架,这是它最大的优势。但目前为止,我们的 AI 应用只能回答"它脑子里已有的知识"。如果让它读懂你自己的技术文档、公司内部知识库呢?这就是下一篇文章的主题——RAG(检索增强生成)实战。

qq_17204557的博客 642

RT-AK DEMO 实战教程,教你实现单个人像识别~

让 AI 在你的板子上尽情舞蹈~本次实验的是识别摄像头中的人,就一个人,而不是多个。从多类别检测模型改编而来,只保留 person 这个类别,根据各位看官的能力完全可以改成识别多类项目开源...

rtthreadiotos的博客 3077

iOS马甲包过审实战:如何用5天时间搞定4.3审核(附完整代码混淆方案)

本文提供了一套为期五天的高效实战方案,专门解决iOS应用因重复或抄袭问题而被App Store的4.3条款拒绝的难题。方案涵盖深度分析、代码混淆、资源翻新及环境隔离等系统性步骤,并附有完整的代码混淆示例,旨在帮助开发者在合规框架内重塑应用,显著提升过审成功率。

weixin_29234239的博客 147

Windows 下使用bpg 图片 - 查看,转换,预览

介绍一下windows 下怎么使用bpg 格式压缩图片体积,同时可以和流行的图片格式一样不影响日常使用便利。

刻[苦] 的 blog 5822

无线充电效率从75%到90%+:深入拆解LCC补偿网络如何成为电动汽车和智能车竞赛的‘稳压器’

本文深入探讨了LCC补偿网络如何显著提升无线充电效率至90%以上,成为电动汽车和智能车竞赛中的关键技术。通过分析LCC的三元件结构和双模式切换特性,揭示了其在负载突变和线圈错位情况下的稳定性优势,并展示了实际应用中的效率提升和产业化挑战。

weixin_42528191的博客 396

【Telephony】Telephony总纲!Phone进程流程(AOSP)

整个Framework层的Telephony框架运行在一个叫做Phone(com.android.phone)的进程中。 Phone进程启动的过程中,会初始化非常多的分支功能,SIM卡流程初始化就是其中之一,所以我觉得有必要写一下Phone进程的框架

weixin_44513784的博客 1975

RT-Thread ART-PI 学习笔记:TouchGFX通过文件系统读取图片

前言 TouchGFX界面中可能会存在占用空间比较大的图片资源,在默认情况下,图片资源会随着其他只读数据一起放入芯片的已经经过内存映射的闪存中,系统可以直接通过地址访问到图片 这个机制虽然对art-pi没什么影响,因为art-pi的只读段放在片外空间比较大的8M NOR FLASH里,空间还算大。而且这块FLASH因为是NOR FLASH,经过内存映射,也可以通过地址直接访问指令和数据,和片内ROM的访问方式一样了。这就是是常说的代码(.text段)在片外flash上运行 但是对于ROM空间比较小的单片机,

张竞豪的博客 1523

TMS320F280039 CMD文件配置避坑指南:从.map文件看懂内存分配与溢出排查

本文详细解析了TMS320F280039芯片的CMD文件配置问题,通过.map文件分析内存分配与溢出排查。文章提供了实用的诊断技巧和解决方案,帮助开发者有效应对段溢出、地址重叠和栈堆冲突等常见问题,优化DSP程序的内存管理。

weixin_29168813的博客 442

ART-PI2 上手记录(一)

底板原理图:documents\board\STM32H7\ART-Pi2_Base_A_SCH_V1.0_preview.pdf。截至2025.3.10,主仓库没有art-pi2的bsp(stm32h7r7)快速上手:documents\ART-Pi2 快速上手.md。打开sdk管理器,选中art-pi2的工具包安装。sdk安装完后,查看sdk中的readme文档。核心板蓝灯闪烁,成功点灯~

my_fly_dream的博客 1210

多尺度仿真软件:Copasi_(1).Copasi概述

Copasi(Complex Pathway Simulator)是一款开源的多尺度仿真软件,专为生物化学、系统生物学和合成生物学领域的研究人员设计。它不仅能够模拟细胞内和细胞间的生化反应网络,还能处理代谢途径、信号传导途径和基因调控网络等多种复杂系统。Copasi提供了用户友好的图形界面和强大的命令行接口,支持多种仿真算法和分析工具,使用户能够高效地进行模型构建、仿真和分析。Copasi允许用户创建自定义报告,以便生成特定格式的仿真结果。用户可以通过图形界面或命令行创建自定义报告。

kkchenjj的博客 856

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

简说RT-Thread

简说RT-Thread1.RT-Thread 简介2.RT-Thread 概述3.许可协议4.RT-Thread 的架构5.亮点6.建议7.总结 1.RT-Thread 简介 作为一名 RTOS 的初学者,也许你对 RT-Thread 还比较陌生。然而,随着你的深入接触,你会逐渐发现 RT-Thread 的魅力和它相较于其他同类型 RTOS 的种种优越之处。RT-Thread 是一款完全由国内团队开发维护的嵌入式实时操作系统(RTOS),具有完全的自主知识产权。经过近 12 个年头的沉淀,伴随着物联网的兴起

qq_46359697的博客 4784

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

art-pi2 上手记录(二)

介绍了STM32H7系列芯片在ART-Pi2开发板上的启动流程和运行机制

my_fly_dream的博客 1133

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

STM32单片机RT Thread + Micropython + OpenMV + USB摄像头移植整合过程

按照之前设定的计划,利用业余时间做了这么一个项目。目标是基于RT Thread实时操作系统,将Micropython、OpenMV、USB摄像头+模拟摄像头+STM32本身自带的DVP摄像头,在OpenMV框架下,全部引入进来。这样的话,该软件平台同时具备了RTOS、Python脚本、USB OpenMV串口驱动、存储设备如SPI flash驱动,SD卡驱动、U盘驱动(和OpenMV串口组成一个USB Composite驱动,用来连电脑),其中U盘驱动可以用SD卡或者SPI flash作为介质。并实现了一个

chummyhe的博客 8696

ART-Pi上手体验

一、先来张照片 art-pi的做工我看着是真的舒服。很符合RT-Thread官网的那句话"小而美"了。 二、出厂程序体验 出厂例程是通过蓝牙对开发板进行配网,内置一个web服务器,配网成功后能够通过网页显示开发板的基本信息,并对开发板的板载LED进行简单的控制。 蓝牙配网流程直接看GitHub的文档即可 配网成功以后,这个网页是真的骚,可以查看内存、norflash、SD等信息。 三、驱动I2C的OLED屏幕 其实拿到art-pi之后,并没有什么好的创意来发挥H7的实力。RT-Thread最近半年多也

qq_42913442的博客 2522

ART-Pi 电路原理图浅析

2020-10-24(各位同行1024程序员节节日快乐,码出新世界) Just for Fun Linux之父 – Linus Torvalds 一、前言 ART-Pi — RT-Thread团队历时半年精心打磨,能很好的满足绝大多数开发人员的 DIY 想法,其具备性能强大的主控,实用的外设,丰富的扩展接口。此外,基于它来学习 RT-Thread 能时刻得到官方团队的原生技术支持!(关注公众号 RTThread物联网操作系统,并在后台回复”ART“即可获取ART-Pi详细资料) 除此之外,AR.

Eureka1024的博客 7811

ART-Pi SDK v1.2.0 正式发布 ,更多 DEMO,欢迎体验

距ART-Pi与大家见面已经半年有余,从上市的爆火到现在的供不应求,感谢各位伙伴对ART-Pi的认可。自从SDK V1.1.0 发布后,我们先后举办了《全连接创意大赛》,《ART-Pi 扩...

rtthreadiotos的博客 1418
上一篇: 明晚直播预告:基于ART-PI+RT-Thread的工业网关的实现
下一篇: 【20210319期AI简报】AMD发布7nm服务器芯片、利用废旧笔记本屏DIY便携显示器
RT-Thread物联网操作系统
博客等级 码龄6年 2万+粉丝 392原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值