K210学习笔记(十):KPU之物体识别

文章介绍了使用KPU进行物体识别的过程,通过加载预训练的Yolo2模型来检测20种不同的物体。开发者强调了在编程过程中需要注意的细节,如区分数字1和字母L。作者计划转向研究Yolo的本地训练和模型转换,并分享STM32的学习笔记,包括电赛备赛过程中的项目和经验。
摘要由CSDN通过智能技术生成

进行到KPU的又一个应用咯,其实跟前一个人脸识别的应用没有太多的不同。物体识别这里可是分类二十个物体,而人脸识别只是一个简单的二分类问题。(理论上机器学习也能做但是效果咋样就不知道了)。

大概的程序思路跟上一个实验也是一致的,将该用的函数库导入之后(time,lcd,sensor,maix.KPU,image,gc)进行对应的初始化,初始化完成后就可以开始代码的编写。主要流程就是拍摄照片,导入模型就行识别,如果识别出存在对应物体,就框起来做标识。流程图如下:

代码如下啦:!!!!


import sensor, image, time,lcd
from maix import KPU
import gc

#初始化部分
lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_vflip(1)#设置摄像头后置即所见即所得
sensor.skip_frames(20)#跳过二十帧等待摄像头初始化
clock=time.clock()#初始化定时器用来计算帧率
od_img=image.Image(size=(320,256))
#20种物体的名称
obj_name = ("aeroplane","bicycle", "bird","boat","bottle","bus","car","cat","chair","cow","diningtable", "dog","horse", "motorbike","person","pottedplant", "sheep","sofa", "train", "tvmonitor")
#初始化KPU对象,用来加速模型运行
kpu=KPU()
print("ready lode model")
#加载KPU模型
kpu.load_kmodel("/sd/voc20_detect.kmodel")
anchor = (1.3221, 1.73145, 3.19275, 4.00944, 5.05587, 8.09892, 9.47112, 4.84053, 11.2364, 10.0071)
kpu.init_yolo2(anchor,anchor_num=5,img_w=320,img_h=240,net_w=320,net_h=256,layer_w=10,layer_h=8,threshold=0.5,nms_value=0.2,classes=20)
i=0
while True:
      i+=1
      print("cnt",i)
      clock.tick()
      img=sensor.snapshot()#拍摄照片
      a=od_img.draw_image(img,0,0)
      od_img.pix_to_ai()
      #将摄像头采集到的图片输送到KPU和yolo模型中运算
      kpu.run_with_output(od_img)
      dect=kpu.regionlayer_yolo2()
      fps=clock.fps()
      if len(dect)>0:#识别到物体
         print("dect",dect)
         for l in dect:#画矩形框
             a=img.draw_rectangle(l[0],l[1],l[2],l[3],color=(0,255,0))
             a=img.draw_string(l[0],l[1],obj_name[l[4]],color=(0,128,0),scale=1.5)

      a=img.draw_string(0,0,"%2.1ffps"%(fps),color=(0,60,128),scale=1.0)#显示屏显示FPS
      lcd.display(img)
      gc.collect()#内存回收


kpu.deinit()

在这里有一个问题,就是一定一定一定要把1和L(小写)分开,真的真的太像了,真的真的都是泪啊都是泪,我搜了半小时啊,最后发现是打错了。

后续可能不会继续更新KPU系列了,或者就更新一下例程,然后我要研究一下yolo的本地训练以及模型转换的问题了。后续会更新stm32的学习笔记!!!!电赛!!备赛!!!stm32学习笔记会出现在电赛的备赛日记里!!!!当然电赛的备赛日记里还会出现我做的往年的电赛题(我会学习着做一部分)主要是控制类的,然后备赛日记里还会有K210的部分内容(这部分可能就不是简单的例程啦,我要开始写程序了),有EDA的部分内容(嘉立创的电赛活动太动人了),如果可以的话还会更一部分stc32(国产芯片!)嗯大概就是这样,有问题评论或者私信。K210学习笔记暂时告一段落啦(当然后续可能还是会更部分内容,主要是我真的不太想拿K210去驱动电机舵机啥的)

嵌入式开发/计算机视觉/QT界面设计相关技术指导可私聊加V

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

cointreau97

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

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

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

打赏作者

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

抵扣说明:

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

余额充值