• 免费好用的星瞳AI云服务上线!简单标注,云端训练,支持OpenMV H7和OpenMV H7 Plus。可以替代edge impulse。 https://forum.singtown.com/topic/9519
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • H7 固定曝光时间等参数后,调用 snapshot 耗时不稳定,请问如何改善?



    • 这两天实测了一下,使用全局快门 sensor,连续 snapshot (每次调用 snapshot 几乎没有间隔) 情况下,每次 snapshot 耗时非常接近,约 2.6ms。

      但如果间歇性调用 snapshot (间隔5~1000ms),每次调用 snapshot 的耗时则不稳定,最大达到 2-3 倍时间。

      测试过程禁用 ide 图像缓冲区,代码如下

      sensor.reset()                      # Reset and initialize the sensor.
      sensor.set_pixformat(sensor.GRAYSCALE) # Set pixel format to RGB565 (or GRAYSCALE)
      sensor.set_framesize(sensor.QQQVGA)   # Set frame size to QVGA (320x240)
      
      sensor.ioctl(sensor.IOCTL_SET_TRIGGERED_MODE, True)
      sensor.set_auto_gain(False)
      sensor.set_auto_whitebal(False)
      sensor.set_auto_exposure(False, exposure_us = int(20))
      sensor.set_auto_gain(False, 18)
      sensor.skip_frames(time = 500)
      
      # 连续调用 snapshot,基本没有间隔,每次调用约 2.6 ms
      while(True):
          start = pyb.micros()
          img = sensor.snapshot()
          end = pyb.micros()
          print("%d" % (end-start))
      
      
      # 连续调用 snapshot,存在间隔,每次调用约 5-6 ms
      while(True):
          start = pyb.micros()
          img = sensor.snapshot()
          end = pyb.micros()
          print("A:%d" % (end-start))
          pyb.delay(1)             # 延迟 1ms
      
          start = pyb.micros()
          img = sensor.snapshot()
          end = pyb.micros()
          print("B:%d" % (end-start))
          pyb.delay(1000)             # 延迟 1000ms
      

      请问如何改善?谢谢



    • 按照最长时间来计算就行。

      https://github.com/openmv/openmv/blob/master/src/omv/sensor.c#L864
      snapshot是用的DMA,我猜有其他的代码可能让管道不通畅。(个人猜测)

      最长时间大概5ms,这个问题很重要吗?如果很重要可以让他们改代码,但是很难改善了。



    • @kidswong999
      您好,产品应用需要通过 1 组 2 个外部 IO 信号触发拍照正在运动的物体,2 个信号的间隔最小在 3-4ms,(触发信号每组间隔 > 200ms)

      目前由于 snapshot 时间不稳定,导致第 2 个信号到来时,程序仍然在处理上 1 张 snapshot 的拍摄,

      待程序完成并执行第 2 次拍照,运动物体已经移出了拍摄区 😖

      这个问题希望得到解决,我们想在产品上保持使用 OpenMV 🙏🏻 ,前期开发做了很多努力。

      谢谢



    • @ugai 看一下io响应部分的代码?看看延时是不是稳定



    • 我没看懂什么意思。

      什么叫第二次拍照?