基于亚博K210开发板——物体检测测试

article/2025/8/13 7:07:14

开发板

亚博K210开发板
在这里插入图片描述

实验目的

本次测试主要学习 K210 如何物体检测,然后通过 LCD 显示屏实时框出检测物体然后以不同颜色标记名称。

实验元件

OV2640 摄像头/OV9655 摄像头/GC2145 摄像头、LCD 显示屏
在这里插入图片描述

硬件连接

K210 开发板出厂默认已经安装好摄像头和显示器,只需要使用 Type-C 数据线连接 K210 开发板与电脑即可。

实验原理

Kendryte K210 具备机器视觉能力,是零门槛机器视觉嵌入式解决方案。它可以在低功耗情况下进行卷积神经网络计算。相关介绍请看前面所述。
物体检测是计算机视觉中的经典问题之一,其任务是用框去标出图像中物体的位置,并给出物体的类别。从传统的人工设计特征加浅层分类器的框架,到基于深度学习的端到端的检测框架,物体检测一步步变得愈加成熟。具体训练过程这里省略掉,下面只介绍 K210 如何对训练好的模型进行部署并输出识别结果。

K210 实时物体检测方案步骤

1、 训练模型
2、 模型转换成 kmodol
3、 K210 加载模型
4、 K210 获取视频图像
5、 图像转换成模型需要的尺寸大小
6、 运行模型获取 KPU 处理结果
7、 获取输出层的结果
8、 在图片中圈出识别结果显示

实验步骤

  1. 代码流程
    系统内部初始化部分:
系统时钟初始化
串口初始化
硬件引脚初始化
IO 电压设置
系统中断初始化
Flash 初始化

外部硬件初始化

 Lcd 初始化Ov2640 初始化

物体检测初始化

模型加载
物体检测层配置初始化

人脸检测业务逻辑层

等待摄像头采集完成
传入摄像头采集的图像到 KPU 运行模型
等待 KPU 处理完成
获取 KPU 最终处理的结果
把 KPU 处理的结果带入区域层计算最终识别位置和结果
根据识别到的结果逐一标记
  1. 核心代码如下:
int main(void)
{sysclock_init();   /* 系统时钟初始化*/uarths_init();     /* 串口初始化*/hardware_init();   /* 硬件引脚初始化*/io_set_power();    /* 设置IO口电压*/plic_init();       /* 系统中断初始化 */lable_init();      /* 层初始化*//* flash init */printf("flash init\n");w25qxx_init(3, 0);w25qxx_enable_quad_mode();
#if LOAD_KMODEL_FROM_FLASHmodel_data = (uint8_t*)malloc(KMODEL_SIZE + 255);uint8_t *model_data_align = (uint8_t*)(((uintptr_t)model_data+255)&(~255));w25qxx_read_data(0xA00000, model_data_align, KMODEL_SIZE, W25QXX_QUAD_FAST);
#elseuint8_t *model_data_align = model_data;
#endif// 初始化LCDlcd_init();lcd_draw_picture_half(0, 0, 320, 240, logo);lcd_draw_string(100, 40, "Hello Yahboom!", RED);lcd_draw_string(100, 60, "object detection demo!", BLUE);sleep(1);/* 初始化摄像头*/int OV_type;OV_type=OVxxxx_read_id();/* 初始化摄像头 */if(OV_type == OV_9655){ov9655_init();}   else if(OV_type == OV_2640) {ov2640_init();}else //读取gc2145摄像头{uint16_t device_id;gc2145_read_id(&device_id);printf("device_id:0x%04x\n", device_id);if(device_id != GC2145_ID){printf("Camera failure\n");return 0;//打不开摄像头,结束}printf("This is the GC2145 camera\n");gc2145_init();//初始化}/* 初始化物体检测模型 */if (kpu_load_kmodel(&obj_detect_task, model_data_align) != 0){printf("\nmodel init error\n");while (1);}obj_detect_rl.anchor_number = ANCHOR_NUM;obj_detect_rl.anchor = anchor;obj_detect_rl.threshold = 0.5;obj_detect_rl.nms_value = 0.2;region_layer_init(&obj_detect_rl, 10, 8, 125, 320, 240);/* enable global interrupt */sysctl_enable_irq();/* system start */printf("System start\n");while (1){g_dvp_finish_flag = 0;while (!g_dvp_finish_flag);/* run obj detect */memset(g_ai_od_buf, 127, 320*256*3);for (uint32_t cc = 0; cc < 3; cc++){memcpy(g_ai_od_buf + 320 * (cc * 256 + (256 - 240) / 2), g_ai_buf_in + cc * 320 * 240, 320 * 240);}/*运行模型*/g_ai_done_flag = 0;kpu_run_kmodel(&obj_detect_task, g_ai_od_buf, DMAC_CHANNEL5, ai_done, NULL);while(!g_ai_done_flag);/*获取KPU处理结果*/float *output;size_t output_size;kpu_get_output(&obj_detect_task, 0, (uint8_t **)&output, &output_size);/*获取输出层的结果*/obj_detect_rl.input = output;region_layer_run(&obj_detect_rl, &obj_detect_info);/* 显示视频图像*/lcd_draw_picture(0, 0, 320, 240, (uint32_t *)display_buf_addr);/* 画识别结果 */region_layer_draw_boxes(&obj_detect_rl, drawboxes); //g_dvp_finish_flag = 0;}return 0;
}
  1. 编译调试,烧录运行
    进入自己项目 build目录,运行以下命令编译。
cmake .. -DPROJ=watchdog -G "MinGW Makefiles"
make
  1. 代码烧录方法
    打开 kflash 将 object_detection.bin 文件烧录到 K210 开发板上。
    如果想把代码和模型文件分开烧录,需要修改代码
#define  LOAD_KMODEL_FROM_FLASH  0

改为

#define  LOAD_KMODEL_FROM_FLASH  1

然后重新生成 bin 文件,这个时候我们需要把模型文件和 bin 文件打包成一个kfpkg 文件在烧录

实验现象

LCD 显示器先显示图片 logo 和文字,一秒后打开摄像头采集的画面,并且实时检测 20 种物体并标记位置和显示识别的结果。

实验总结

  • 物体检测与人脸检测大部分是相同的。
  • 物体检测可以检测多种物体。

http://www.hkcw.cn/article/xOFRHpnlTl.shtml

相关文章

Glide源码解析

前言 Glide是一款专为Android设计的开源图片加载库。有以下特点&#xff1a;1.支持高效加载网络、本地及资源图片&#xff1b;2.具备良好的缓存策略及生命周期管理策略&#xff1b;3.提供了简易的API和强大的功能。本文将对其源码进行剖析。 基本使用 dependencies {compile …

01.认识Kubernetes

什么是Kubernets 套用官方文档对Kubernetes的定义&#xff0c;翻译成中文的意思是&#xff1a; Kubernetes&#xff0c;也称为k8&#xff0c;是一个用于自动化部署、扩展和管理容器化应用程序的开源系统。 它将组成应用程序的容器分组为逻辑单元&#xff0c;以便于管理和发现…

印把PL-15残骸给日本 中国有防备吗 国防部回应让16亿人松口气

印巴冲突虽然已经结束20多天,但其影响仍在持续。印度方面将此前获得的PL-15空空导弹残骸交由日本团队研究,外界对此表示担忧,担心技术泄密或被反向研制。针对这一情况,国防部的回应让许多人松了一口气。在印巴冲突期间,两国分别使用中式武器和西式武器进行对抗,展示了各自…

美的集团董事长兼总裁再谈小米 战略上已输

5月30日,美的集团董事长兼总裁方洪波在2024年度股东大会上回应投资者提问时表示,小米进入家电业在战略上已失败。今年小米在空调市场掀起低价竞争,其大家电业务一季度收入同比翻倍增长。此前,方洪波曾表示“在战术上重视小米、在战略上不惧怕小米”。针对这一表述,他解释说…

莫迪想对中企下黑手的动机是什么 稀土牌反制威力显现

莫迪政府试图对中企采取行动,其动机和影响引发关注。莫迪政府的外交政策逐渐极端化,最近要求监控设备商提交硬件、软件和源代码供评估,声称是为了防止所谓的“安全问题”。这显然针对的是中国企业在印度市场的份额,如海康威视、小米和大华等。这种要求无理且超出正常安全审…

余承东展示尊界S800新功能 挥手关门科技感十足

鸿蒙智行的百万级豪华轿车尊界 S800 将于今晚正式发布。华为常务董事、终端BG董事长余承东在微博上持续预热这款新车,并发布了一则新视频,展示了尊界S800挥手关门的新功能。视频中,尊界S800不仅能够自动开门,乘客落座后向内挥手,车门还能自动轻轻关上。此外,视频还展示了…

摄像头探测器APP:守护隐私的防偷拍利器

在当今社会&#xff0c;隐私保护成为越来越多人关注的焦点。无论是入住酒店、民宿&#xff0c;还是在其他公共场所&#xff0c;我们都有可能面临被偷拍的风险。摄像头探测器APP的出现&#xff0c;为用户提供了一种便捷、高效的检测手段&#xff0c;能够有效识别并防范潜在的偷拍…

8天Python从入门到精通【itheima】-54~56

目录 54节-函数传入的参数 1.函数传入数据的定义和功能 2.函数传入参数的实例 3.代码实战 4.形参和实参的概念 5.函数传入参数的注意事项 6.小节总结 55节-案例练习-升级版自动查核酸 1.案例需求 2.代码实战 56节-函数的返回值定义语法 1.学习目标 2.返回值的生活案…

ROS云课基础篇-02-C++-250529

ROS云课基础篇-01-Linux-250529-CSDN博客 基于Zsh的C机器人编程基础实验报告 ——结合AutomaticAddison教程与ROS开发环境 一、实验目标 掌握C基础语法及面向对象编程&#xff08;OOP&#xff09;在机器人开发中的应用配置Zsh终端环境&#xff0c;结合ROS Kinetic实现C机器人…

黄金现货期货双跌 市场避险情绪降温

5月30日,国际黄金价格在经历前一日的回调和反弹后依旧低迷。5月29日,国际黄金市场遭遇显著回调,现货黄金价格盘中一度下探至3245.19美元/盎司,创本周以来新低,COMEX黄金期货价格也同步回落。当天伦敦金现货价格跌破3330美元/盎司,一度触及3245.19美元/盎司的新低。截至当…

青岛即墨通报店铺涉嫌传销 市场监管部门发布情况

本文转自【即墨市场监管】;5月30日,即墨市场监管发布情况通报:责任编辑:0764

成都发生持刀伤人案 警方通报 因感情纠纷引发

成都市公安局锦江区分局5月30日发布警情通报,当天下午3点左右,中纱帽街8号负一层发生一起持刀伤人事件。警方接到报警后迅速赶到现场,并控制了犯罪嫌疑人陆某某,他今年26岁。经初步调查,陆某某因感情纠纷前往前女友胡某某的工作单位。胡某某今年24岁,在与陆某某发生口角后…

A股打破“端午劫”魔咒?专家建议 持股过节乐观看待

5月30日,A股迎来端午节前最后一个交易日,整体走势较为平淡。上证指数、深证成指和创业板指均呈现窄幅震荡,市场涨停个股不足50只。体育、养殖、银行等板块涨幅居前,而近期火爆的可控核聚变概念出现回调。回顾过去十年A股在端午节前后的表现,整体涨少跌多,因此有“端午劫”…

美国防长拿什么来取信亚洲国家 承诺可信度受质疑

第22届香格里拉对话会将于5月30日至6月1日在新加坡举行。美国国防部长赫格塞思计划在会议上发表演讲,阐述美国在“印太地区”的防务政策。自上任以来,赫格塞思主要关注国内问题,抵制军队中的多元、平等与包容政策,并对媒体持批评态度。此次访问亚洲,他将试图向该地区的国防…

App识别安卓系统弹授权框包含某段文字-并自动点击确定按钮

安卓App识别手机系统弹授权框包含某段文字-并自动点击确定按钮 --蓝牙电话App自动部署 上一篇&#xff1a;手机打电话时将对方DTMF数字转为RFC2833发给局域网SIP坐席 下一篇&#xff1a;编写中。 一、前言 蓝牙电话方案中&#xff0c;我们提供了将手机通话的语音拦截后转发到…

上海高考报名人数逆势上涨 招生计划调整引关注

2025年上海秋季高考考生人数预计将超过6万人,比2024年增加近万人。上海市教育考试院透露了这一数据,并表示已经与全国高校沟通在沪招生计划增量。预计今年在沪招生的本科计划数将有所增加,但受限于高校教育资源承载力等因素,本科计划增量不一定能完全匹配生源的增长。对于今…

长了痣到底要不要除掉 专家建议关注“问题痣”

近日,演员孙俪出席时尚芭莎年度派对。亮相时,网友发现她的唇下痣消失了,随后话题#孙俪唇下痣没了#登上热搜。其实,在《甄嬛传》播出期间,孙俪唇下的一个小黑点就引发过观众的关注。到《芈月传》和《那年花开月正圆》播出期间,这颗痣已经成为她面部轮廓的一个标志。然而,…

62岁俞敏洪骑行摔倒受伤:犯困睡着了 网友刷屏关注

5月29日,俞敏洪在青海骑行时不小心摔倒,膝盖等部位受伤出血,引起了许多网友的关注。30日凌晨1点多,俞敏洪发文表示自己只是皮外伤,骨头没有问题,并感谢大家的关心。他在文中写道:“今天骑车有点睡着了,摔了一下,感谢广大朋友关心。皮外伤,不用担心,报平安。”俞敏洪…

德国将向乌提供军援传递何种信号 加大军事支持

乌克兰总统泽连斯基计划于当地时间28日访问德国,期间将与德国总理默茨讨论俄乌和平谈判等议题。默茨表示,德国及其盟友已不再限制提供给乌克兰的武器射程,这使得乌克兰能够攻击俄罗斯本土深处的军事目标。他还强调,德国将继续在军事上支持乌克兰,但未明确是否会向乌方提供…

郑钦文晋级法网16强 状态火热再创佳绩

北京时间5月30日,法国网球公开赛女单第三轮比赛中,郑钦文以2比0战胜18岁加拿大小将姆博科,顺利晋级法网16强。首盘比赛仅耗时36分钟,郑钦文轰出3记ACE球,成功完成两次破发,以6-3率先拿下第一盘。这是郑钦文职业生涯第二次闯入法网16强,在罗兰加洛斯的连胜场次也达到了九…