1000 object classification models

    Can recognize 1000 objects

    Instructions

    • Use minimum version firmware
    • Download model file, download mobilenet_0x300000.kfpkg
    • Use kflash_gui to burn this file to Flash, the default address is 0x300000
    • Save the file labels.txt (Alternate Link) to the file system, see the introductory tutorial (use your ingenuity) for specific methods (reference answer: because there is too much content, if you use the REPL to copy and paste directly, data may be wrong. So use a tool to transfer. The easiest way is to put it on the SD card; if you want to put it in /flash, the minimum may not support IDE, you can use upyloader to send files)
    • Because this model has 4.2MiB, which is relatively large, so the firmware of minimum is used, and the memory used by GC is not too large. You can set a smaller size in the following way and leave the memory for the model
    from Maix import utils
    import machine
    
    utils.gc_heap_size(256*1024)
    machine.reset()
    
    • Import model
    import KPU as kpu
    task = kpu.load(0x300000)
    
    • Read in labels
    f=open('/sd/labels.txt','r')
    labels=f.readlines()
    f.close()
    
    • Initialize the camera, LCD

    You can set whether the camera is mirrored and whether the LCD is rotated according to your own hardware installation

    Slightly, please refer to the previous tutorial

    • Identify objects
    fmap = kpu.forward(task, img)
    plist=fmap[:]
    pmax=max(plist)
    max_index=plist.index(pmax)
    

    Here, the result of the operation is converted into a list object, and then the subscript of the maximum value is found. Through this subscript, we know what the label name is (labels[max_index])

    • show result
    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)
    

    See the complete example maixpy_scripts