对于一个根据模型识别物体的脚本,见到了好几种写法,差点把我弄晕了
比如有以下两种写法:

  • 有在if __name__ == "__main__":(# if name == ‘main’: 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的。)中调用main,在main函数中封装物体识别代码的,还加了一堆try,expect非常健壮
  • 也有直接按流程写下来的

所以,这里简单整理一下识别的基本调用函数,主要是围绕kpu函数进行的

  • 导入库(sensor, image, lcd, time,import KPU as kpu)和一些sensor初始化
  • 加载模型kpu.load,这里有使用地址和kmodel模型文件两种方法
    1.task = kpu.load(0x500000),使用之前需要先使用kflash_gui软件将smodel文件或kfpkg文件烧录到指定地址上
    2.task = kpu.load("/sd/m.kmodel"),使用前需要先将模型拷贝到sd卡中
  • kpu初始化_ = kpu.init_yolo2(task, 0.5, 0.3, 5, anchor),task在上一步生成,anchor是每一个模型唯一的数值数组,在训练模型下载下来的boot代码中有这个数组信息
  • 以下代码在死循环中进行:
  • 拍一张照img = sensor.snapshot()
  • objects = kpu.run_yolo2(task, img)在相机拍到的图像上跑模型,如果相似放到objects
  • 如果相似if objects:,整个方框把物体框起来
  • 对于for obj in objects:每个obj含有三个参数:置信度confidence = float(obj.value())范围itemROL = obj.rect() 对应物体的label名所在位置(比如classes = [‘unmask’,‘masks’]中0或1)classID = int(obj.classid()),可以根据置信度调整识别结果,范围画框框,根据id显示判断结果

最后附上一个没用if __name__ == 'main':写法的识别口罩的例子:

import sensor, image, lcd, time
import KPU as kpucolor_R = (255, 0, 0)
color_G = (0, 255, 0)
color_B = (0, 0, 255)class_IDs = ['no_mask', 'mask']def drawConfidenceText(image, rol, classid, value):text = ""_confidence = int(value * 100)if classid == 1:text = 'mask: ' + str(_confidence) + '%'else:text = 'no_mask: ' + str(_confidence) + '%'image.draw_string(rol[0], rol[1], text, color=color_R, scale=2.5)lcd.init()
sensor.reset(dual_buff=True)
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_hmirror(0)
sensor.run(1)task = kpu.load(0x500000)anchor = (0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823)
_ = kpu.init_yolo2(task, 0.5, 0.3, 5, anchor)
img_lcd = image.Image()clock = time.clock()
while (True):clock.tick()img = sensor.snapshot()code = kpu.run_yolo2(task, img)if code:totalRes = len(code)for item in code:confidence = float(item.value())itemROL = item.rect()classID = int(item.classid())if confidence < 0.52:_ = img.draw_rectangle(itemROL, color=color_B, tickness=5)continueif classID == 1 and confidence > 0.65:_ = img.draw_rectangle(itemROL, color_G, tickness=5)if totalRes == 1:drawConfidenceText(img, (0, 0), 1, confidence)else:_ = img.draw_rectangle(itemROL, color=color_R, tickness=5)if totalRes == 1:drawConfidenceText(img, (0, 0), 0, confidence)_ = lcd.display(img)print(clock.fps())_ = kpu.deinit(task)

k210识别物体的基本流程(kpu库函数)相关推荐

  1. Mixly K210 人脸识别 物体识别 齐护机器人发布AIstart K210人工智能学习主机,解决人工智能学习难的问题

    齐护机器人AIstart K210人工智能主机Mixly编程图像识别语音识别图像分析 K210 AIstart入门教程人工智能人脸识别物体识别算法KPU mixly人脸识别与指纹识别控制舵机 深圳齐护 ...

  2. K210视觉体验—物体识别

    K210视觉体验-物体识别 使用设备 ZTFR开发板 人脸识别 构造函数 导入模型 示例代码 基础测试 使用设备 ZTFR开发板 人脸识别 首先简单介绍一下 K210 的 KPU.KPU 是 K210 ...

  3. OpenCV开发笔记(七十二):红胖子8分钟带你使用opencv+dnn+tensorFlow识别物体

    本博客是转载的 本文章源博客地址:https://blog.csdn.net/qq21497936/article/details/109194717 各位读者,知识无穷而人力有穷,要么改需求,要么找 ...

  4. 训练自己haar-like特征分类器并识别物体(1)

    本系列文章旨在学习如何在opencv中基于haar-like特征训练自己的分类器,并且用该分类器用于模式识别.该过程大致可以分为一下几个大步骤: 1.准备训练样本图片,包括正例及反例样本 2.生成样本 ...

  5. wpf esc key 检测不到_自己动手丰衣足食!想让你的车能检测和识别物体?试试这个实验...

    全文共7733字,预计学习时长23分钟 来源:Pexels 几个月前,笔者有一些想法,想让自己的车能检测和识别物体.笔者之所以有如此想法,主要是因为已经见识了特斯拉的能力,虽然并不想马上买一辆特斯拉( ...

  6. 【触觉AI】麻省理工研发带550个传感器的触觉手套,通过触摸识别物体|湾区人工智能...

    点击上方蓝色字体,关注我们 麻省理工学院计算机科学与人工智能实验室(MIT-CSAIL)的研究人员近日开发了一种低成本的传感器手套,旨在使人工智能能够"弄清楚"人类如何通过触摸识别 ...

  7. 使用darknet-dnn-GPU方式识别物体(一)

    1.darknet darknet是一个c写的可以使用GPU方式来调用深度卷积网络来识别物体的深度学习框架,上手及其简单,易用. 1.1 编译 到官方网站下载后编译darknet,注意一定要下载cud ...

  8. openmv识别物体并与单片机通信(STM32)

    openmv识别物体并与单片机通信(STM32) OPENMV端 物体识别 感光元件 寻找色块 画图 距离判断 距离 实际距离 串口发送 STM32段 串口接收 串口2配置 数据处理 数据显示 Ope ...

  9. 数字图像处理与机器视觉_简单自动智能识别物体程序(机器视觉+数字图像处理)...

    非常好的识别物体的机器视觉程序.附有完整的说明文档和代码.代码由matlab写成,并附有测试图片.图片中含有各种物体,通过数字图像处理的知识,自动识别出图片中的各类物体. 文件:n459.com/f/ ...

最新文章

  1. java 闹钟代码_JAVA可视化闹钟源码
  2. Rus入门到放弃——HashMap和BTreeMap
  3. 解决Linux报错:/bin/bash^M: 坏的解释器: 没有那个文件或目录
  4. 迄今看到的较为客观的一篇分析编程语言的文章
  5. 【flask整合深度学习】ubuntu系统下显示深度学习视觉检测结果图片并可在web端访问,配置允许手机浏览器打开
  6. 目前最全的《Android面试题及解析》!面试真题解析
  7. linux python 图形界面开发_python在linux制作图形界面(snack)
  8. 非华为手机可以用鸿蒙吗,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  9. Kettle环境搭建及使用(数据迁移)
  10. Java 后端开发工程师进阶路线
  11. GPGGA NTRIP RTCM 笔记
  12. LDO:低压差线性稳压芯片
  13. scrapy IP代理池 scrapyd spiderkeeper docker flask uwsgi nginx
  14. 用例图包含关系、扩展关系、泛化关系解析
  15. webstorm热更新
  16. 大学生实习就业调研报告之二 - 共性问题与企业技术管理者探讨
  17. 毕业论文之转化为三线表格(wps)
  18. 一物一码溯源防伪系统
  19. 浅议项目施工合同文书5s管理制度实施办法
  20. 《完美软件》笔记3:测试无法做的事

热门文章

  1. Confluence 6 空间权限概述
  2. 深度学习LSTM模型对股票分析预测
  3. 原来是这样的,我明白了,
  4. 手机安装pem_使用HTTP网址分发并安装iOS程序
  5. 被吹爆的性能强者FastAPI,实际性能不到Flask一半
  6. java里什么是三目表达式_浅谈Java三目运算
  7. tabLayout当tab数目较多,一屏无法展示时,按键有时会没有反应
  8. 批处理bat提示 文件名、目录名或卷标语法不正确
  9. Vivado 下单端口RAM的配置使用
  10. 【哈夫曼树】JZOJ_4210 我才不是萝莉控呢