星瞳实验室APP,快速收到回复
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 在人脸识别的例程中进行改造当差异度小于7000是红灯亮3S大于7000时蓝灯亮3S可是无论差异度怎么变都是红灯亮求解



    • #使用LBP描述符的人脸识别。

      import sensor, time, image, pyb

      sensor.reset() # 初始化相机传感器
      sensor.set_pixformat(sensor.GRAYSCALE) # 设置摄像头像素模式
      sensor.set_framesize(sensor.B128X128) # 设置摄像机模块的帧的阿晓
      sensor.set_windowing((92,112)) # 设置采集图像的相框大小
      sensor.skip_frames(10) # 让新设置生效
      sensor.skip_frames(time = 5000) # 等待5s

      blueled = pyb.LED(3) # Red LED = 1, Green LED = 2, Blue LED = 3, IR LEDs = 4.
      redled = pyb.LED(1) # Red LED = 1, Green LED = 2, Blue LED = 3, IR LEDs = 4.

      #SUB = "s1"
      NUM_SUBJECTS = 1 #图像库中不同人数,一共6人
      NUM_SUBJECTS_IMGS = 20 #每人有20张样本图片

      拍摄当前人脸。

      img = sensor.snapshot()
      #img = image.Image("singtown/%s/1.pgm"%(SUB))
      d0 = img.find_lbp((0, 0, img.width(), img.height()))
      #d0为当前人脸的lbp特征
      img = None
      pmin = 999999
      num=0

      def min(pmin, a, s):
      global num
      if a<pmin:
      pmin=a
      num=s
      return pmin

      global dist
      for s in range(1, NUM_SUBJECTS+1):
      dist = 0
      for i in range(2, NUM_SUBJECTS_IMGS+1):
      img = image.Image("singtown/s%d/%d.pgm"%(s, i))
      d1 = img.find_lbp((0, 0, img.width(), img.height()))
      #d1为第s文件夹中的第i张图片的lbp特征
      dist += image.match_descriptor(d0, d1)#计算d0 d1即样本图像与被检测人脸的特征差异度。

      if dist>7000:
          redled.on()
          time.sleep(3000)
          redled.off()
      else :
          blueled.on()
          time.sleep(3000)
          blueled.off()       
      print("Average dist for subject %d: %d"%(s, dist/NUM_SUBJECTS_IMGS))


    • 不好意思 麻烦各位,问题已经解决了