🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    running mobilenet on m5stickv

    M5Stick V
    1
    1
    3.7k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      brunovianna
      last edited by

      hello

      I'm trying to run the mobilenet classifier script:
      https://github.com/sipeed/MaixPy_scripts/tree/master/machine_vision/mobilenet_1000_class

      The tutorial says we should use the minimum firmware:
      https://cn.maixpy.sipeed.com/maixpy/en/course/ai/image/1000_type_classifier.html

      So I compiled a minimum firmware with only support for video and k4. It ended up with 1.2Mb. I also change the gc heap size as the tutorial says. But when I run the script, it says it doesn't have enough memory.

      E (2704939464) SYSCALL: Out of memory

      The error happens before I feed the images the the kpu, in the line where I define the sensor.framesize

      Is it even possible to run this script on the m5stickV?

      import lcd, sensor
      import KPU as kpu

      def lcd_init():
      lcd.init(type=3)
      lcd.register(0x3A, 0x05)
      lcd.register(0xB2, [0x05, 0x05, 0x00, 0x33, 0x33])
      lcd.register(0xB7, 0x23)
      lcd.register(0xBB, 0x22)
      lcd.register(0xC0, 0x2C)
      lcd.register(0xC2, 0x01)
      lcd.register(0xC3, 0x13)
      lcd.register(0xC4, 0x20)
      lcd.register(0xC6, 0x0F)
      lcd.register(0xD0, [0xA4, 0xA1])
      lcd.register(0xD6, 0xA1)
      lcd.register(0xE0, [0x23, 0x70, 0x06, 0x0C, 0x08, 0x09, 0x27, 0x2E, 0x34, 0x46, 0x37, 0x13, 0x13, 0x25, 0x2A])
      lcd.register(0xE1,[0x70, 0x04, 0x08, 0x09, 0x07, 0x03, 0x2C, 0x42, 0x42, 0x38, 0x14, 0x14, 0x27, 0x2C])

      task = kpu.load(0x300000)
      f=open('/flash/labels.txt','r')
      labels=f.readlines()
      f.close()

      print ('ok load kpu and labels')

      lcd_init()
      lcd.rotation(2) #Rotate the lcd 180deg

      sensor.reset()
      sensor.set_pixformat(sensor.RGB565)
      sensor.set_framesize(sensor.QVGA)
      #sensor.set_framesize(sensor.B128X128)
      sensor.run(1)
      sensor.skip_frames()

      print ('ok sensor')

      while (True):

      img = sensor.snapshot()
      img.crop(x_size=224, y_size=224)

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

      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)

      1 Reply Last reply Reply Quote 0
      • First post
        Last post