导航

    • 登录
    • 搜索
    • 版块
    • 产品
    • 教程
    • 论坛
    • 淘宝
    1. 主页
    2. udy5
    U
    • 举报资料
    • 资料
    • 关注
    • 粉丝
    • 屏蔽
    • 帖子
    • 楼层
    • 最佳
    • 群组

    udy5

    @udy5

    0
    声望
    1
    楼层
    452
    资料浏览
    0
    粉丝
    0
    关注
    注册时间 最后登录

    udy5 关注

    udy5 发布的帖子

    • 如何用神经网络识别一串手写数字

      Untitled - By: Administrator - 周三 十月 21 2020

      """
      手写数字识别例程
      分类模型:训练好的Lenet
      数据集:MNIST
      """

      导入相应的库

      import sensor, image, time, os, nn

      初始化摄像头

      sensor.reset()

      设置相机图像的对比度

      sensor.set_contrast(3)

      设置采集到照片的格式:灰色图像

      sensor.set_pixformat(sensor.GRAYSCALE)

      设置采集到照片的大小:320*240

      sensor.set_framesize(sensor.QVGA)

      设置128*128窗口

      sensor.set_windowing((128, 128))

      设置延时等待摄像头配置完成

      sensor.skip_frames(time = 2000)

      关闭自动摄像头增益

      sensor.set_auto_gain(False)
      sensor.set_auto_exposure(False)

      加载Lenet网络模型

      加载之前我们需要将官方的网络“lenet.network”拷贝到OpenMV-H7的内存中

      net = nn.load('/lenet.network')

      十个标签

      labels = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

      clock = time.clock()

      while(True):
      clock.tick()
      # 拍摄图片并返回img
      img = sensor.snapshot()

      # copy()表示创建一个图像副本储存在MicroPython堆中而不是帧缓冲区
      # 二值化是为了方便处理,阈值可以自己设定
      
      out = net.search(img.copy().binary([(50, 255)], invert=True))
      
      max_id = out.value()#运行到此处面提示错误‘list’object has no attribute value
      
      # 将0-1之间的值扩大到百分制
      score = int(max_id*100)
      
      # 70分以上算识别成功
      if(score < 70):
          score_str = "??:??%"
      else:
          score_str = "%s:%d%% "%(labels[max_id], score)
          img.draw_rectangle(out.rect())
      
      # 显示分类结果
      
      img.draw_string(0, 0, score_str, color = (255, 0, 0))
      
      print(clock.fps())
      发布在 OpenMV Cam
      U
      udy5