【新手基础教程】1000 种物体分类模型

2021-03-254242
AI 快速预览详细 收起
1000 种物体分类模型是一种基于 MaixPy 平台的物体识别模型,可以识别 1000 种不同物体。使用方法包括下载模型文件、烧录到 Flash、导入模型并读取标签文件,然后初始化摄像头和 LCD,最后显示识别结果。通过设置内存大小和使用 minimum 固件,确保模型在有限资源下顺利运行。

1000 种物体分类模型

可以识别 1000 种物体

1. 使用方法

  • 使用minimum  版本固件
  • 下载模型文件, 下载mobilenet_0x300000.kfpkg
  • 使用  kflash_gui  烧录这个文件到  Flash, 默认地址是  0x300000
  • 保存文件labels.txt  (备用链接) 到文件系统,具体方法见入门教程(发挥你的聪明才智)(参考答案:因为内容太多,如果使用 REPL 直接复制粘贴可能数据会出错, 所以要使用 工具传输。最简单的是放到 SD 卡; 如果要放到  /flash,minimum 可能不支持 IDE, 可以使用upyloader发送文件)
  • 因为这个模型有4.2MiB,比较大,所以使用了minimum的固件,同时保证GC使用的内存不要太大,可以通过以下方式设置小一点,把内存留给模型使用
from Maix import utils
import machine

utils.gc_heap_size(256*1024)
machine.reset()
  • 导入模型
import KPU as kpu
task = kpu.load(0x300000)
  • 读入 labels
f=open('/sd/labels.txt','r')
labels=f.readlines()
f.close()
  • 初始化摄像头, LCD

可以根据自己的硬件安装情况设置摄像头是否镜像,以及 LCD 是否旋转等

略,请参考前面的教程

  • 识别物体
fmap = kpu.forward(task, img)
plist=fmap[:]
pmax=max(plist)
max_index=plist.index(pmax)

这里把运行的结果转换成了一个list对象, 然后找到了最大值的下标, 通过这个下标我们就知道标签名是什么了(labels[max_index]

  • 显示结果
img = img.draw_string(0, 0, "%.2f : %s" %(pmax, labels[max_index].strip()), color=(255, 0, 0))
lcd.display(img, oft=(0,0))
print(fps)

完整例程看  maixpy_scripts

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -