1000 种物体分类模型

    可以识别 1000 种物体

    使用方法

    • 使用minimum 版本固件
    • 下载模型文件
    • 使用 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