导航

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

    mgvl

    @mgvl

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

    mgvl 关注

    mgvl 发布的帖子

    • openmv云台串口通信传输云台角度
       pan_output=pan_pid.get_pid(pan_error,1)
       pan_servo.angle(int(pan_servo.angle()+pan_output))
                         
        print(pan_output)
      print(int(pan_servo.angle()+pan_output))
       angle=int(pan_servo.angle()+pan_output)
        uart.write(angle)
      

      如果我想用串口通信穿这个角度的话应该怎么办我这样写他会报错:“TypeError: object with buffer protocol required”

      发布在 OpenMV Cam
      M
      mgvl
    • 知道物体x,y坐标如何控制openmv云台追踪

      如果我知道一个物体的x,y坐标,如何控制云台追踪,可以只用控制底部的舵机,应该怎么改代码

      pan_error = max_blob.cx()-img.width()/2
              tilt_error = max_blob.cy()-img.height()/2
              print("pan_error: ", pan_error)
              img.draw_rectangle(max_blob.rect()) # rect
              img.draw_cross(max_blob.cx(), max_blob.cy()) # cx, cy
              pan_output=pan_pid.get_pid(pan_error,1)/2
              tilt_output=tilt_pid.get_pid(tilt_error,1)
              pan_servo.angle(pan_servo.angle()+pan_output)
              tilt_servo.angle(tilt_servo.angle()-tilt_output)
      
      发布在 OpenMV Cam
      M
      mgvl
    • openmv目标点检测并且控制云台进行追踪
      while(True):
          clock.tick()
      
          img = sensor.snapshot()
      
          # detect() returns all objects found in the image (splitted out per class already)
          # we skip class index 0, as that is the background, and then draw circles of the center
          # of our objects
          result=net.detect(img, thresholds=[(math.ceil(min_confidence * 255), 255)])#检测目标
          print(result)
          if (state==1):
              for i, detection_list in enumerate(result):
                  if (i == 0): continue # background class
                  if (len(detection_list) == 0): continue # no detections for this class?
                  #print("********** %s **********" % labels[i])
                  #print(i)
                  if (i==2):#识别草莓
                  for d in detection_list:
                      [x, y, w, h] = d.rect()
                      center_x = math.floor(x + (w / 2))#中心坐标的计算
                      center_y = math.floor(y + (h / 2))
                      img.draw_circle((center_x, center_y, 12), color=colors[i], thickness=2)
                      pan_error = center_x
                      tilt_error = center_y
                      if(center_x>0 and center_y>0)
                          pan_output=pan_pid.get_pid(pan_error,1)/2
                          tilt_output=tilt_pid.get_pid(tilt_error,1)
                          pan_servo.angle(pan_servo.angle()+pan_output)
                          tilt_servo.angle(tilt_servo.angle()-tilt_output)
      
                  else :#识别南瓜
                      for d in detection_list:
                          [x, y, w, h] = d.rect()
                          center_x = math.floor(x + (w / 2))
                          center_y = math.floor(y + (h / 2))
                          #print('x %d\ty %d' % (center_x, center_y))
                          img.draw_circle((center_x, center_y, 12), color=colors[i], thickness=2)
                          if(center_x>0 and center_y>0)
                              pan_output=pan_pid.get_pid(pan_error,1)/2
                              tilt_output=tilt_pid.get_pid(tilt_error,1)
                              print("pan_output",pan_output)
                              pan_servo.angle(pan_servo.angle()+pan_output)
                              tilt_servo.angle(tilt_servo.angle()-tilt_output)
      

      我这里会报错然后我想问一下我这里哪里错了,还有就是我这种代码思路正确吗,报错的时if(i==2)哪里,然后我先把if(i==2)注释掉之后, pan_output=pan_pid.get_pid(pan_error,1)/2这里也报错了

      发布在 OpenMV Cam
      M
      mgvl
    • openmv目标追踪,控制云台追物体

      想问一下,因为他那个目标点检测代码里面是一直在追踪,如何在追踪到一种物体之后停止检测

      发布在 OpenMV Cam
      M
      mgvl
    • edge impulse 目标点检测两种,是什么原因其中一种还可以,另一种结果很差

      0_1717075021135_8c1f5299-1726-4a94-b58c-a2eac9c1550c-image.png
      是因为我的错误那种数量很少还是其他问题,请问一下

      发布在 OpenMV Cam
      M
      mgvl
    • openmv想实现目标追踪
      # Edge Impulse - OpenMV Object Detection Example
      
      import sensor, image, time, os, tf, math, uos, gc
      
      from pid import PID
      from pyb import Servo
      from pyb import UART
      import json
      
      pan_servo=Servo(1)   #p7
      tilt_servo=Servo(2)  #p8
      
      #设置对应的脉宽,分别对应为:允许的最小脉宽:500、允许的最大脉冲:2500、中心/零位置对应的脉宽:500
      pan_servo.calibration(500,2500,500)
      tilt_servo.calibration(500,2500,500)
      
      red_threshold  = (11, 100, 6, 127, -128, 127)
      
      #pid包的函数,设置舵机的pid参数,一般只需要调整p,如果云台抖动的很厉害(速度过快),可以将p调小
      pan_pid = PID(p=0.07, i=0, imax=90) #脱机运行或者禁用图像传输,使用这个PID
      tilt_pid = PID(p=0.05, i=0, imax=90) #脱机运行或者禁用图像传输,使用这个PID
      #pan_pid = PID(p=0.1, i=0, imax=90)#在线调试使用这个PID
      #tilt_pid = PID(p=0.1, i=0, imax=90)#在线调试使用这个PID
      
      sensor.reset()                         # Reset and initialize the sensor.
      sensor.set_pixformat(sensor.RGB565)    # Set pixel format to RGB565 (or GRAYSCALE)
      sensor.set_framesize(sensor.QVGA)      # Set frame size to QVGA (320x240)
      sensor.set_windowing((240, 240))       # Set 240x240 window.
      sensor.skip_frames(time=2000)          # Let the camera adjust.
      sensor.set_vflip(True)
      
      net = None
      labels = None
      min_confidence = 0.5
      
      try:
          # load the model, alloc the model file on the heap if we have at least 64K free after loading
          net = tf.load("trained.tflite", load_to_fb=uos.stat('trained.tflite')[6] > (gc.mem_free() - (64*1024)))
      except Exception as e:
          raise Exception('Failed to load "trained.tflite", did you copy the .tflite and labels.txt file onto the mass-storage device? (' + str(e) + ')')
      
      try:
          labels = [line.rstrip('\n') for line in open("labels.txt")]
      except Exception as e:
          raise Exception('Failed to load "labels.txt", did you copy the .tflite and labels.txt file onto the mass-storage device? (' + str(e) + ')')
      
      colors = [ # Add more colors if you are detecting more than 7 types of classes at once.
          (255,   0,   0),
          (  0, 255,   0),
          (255, 255,   0),
          (  0,   0, 255),
          (255,   0, 255),
          (  0, 255, 255),
          (255, 255, 255),
      ]
      
      clock = time.clock()
      while(True):
          clock.tick()
      
          img = sensor.snapshot()
      
          # detect() returns all objects found in the image (splitted out per class already)
          # we skip class index 0, as that is the background, and then draw circles of the center
          # of our objects
      
          for i, detection_list in enumerate(net.detect(img, thresholds=[(math.ceil(min_confidence * 255), 255)])):
              if (i == 0): continue # background class
              if (len(detection_list) == 0): continue # no detections for this class?
      
              print("********** %s **********" % labels[i])
              for d in detection_list:
                  [x, y, w, h] = d.rect()
                  center_x = math.floor(x + (w / 2))
                  center_y = math.floor(y + (h / 2))
                  print('x %d\ty %d' % (center_x, center_y))
                  img.draw_circle((center_x, center_y, 12), color=colors[i], thickness=2)
                  pan_error=center_x
                  tilt_error=center_y
                  pan_output=pan_pid.get_pid(pan_error,1)/2
                  tilt_output=tilt_pid.get_pid(tilt_error,1)
                  pan_servo.angle(pan_servo.angle()+pan_output)
                  tilt_servo.angle(tilt_servo.angle()-tilt_output)
      
          print(clock.fps(), "fps", end="\n\n")
      

      请问一下这个能控制云台进行追踪吗,我上电之后发现舵机会没有规律乱动,请问一下该怎么改正

      发布在 OpenMV Cam
      M
      mgvl
    • edge impluse追踪

      我使用edge impluse训练出来的目标检测,如果还要控制云台的话,是不是直接在生成的ei_object_detection.py中编写其他部分模块的代码,就相当于把这个.py文件当成main.py来用

      发布在 OpenMV Cam
      M
      mgvl
    • openmv识别分类追踪

      如何将edge impluse训练出来的.py文件与main.py文件一起使用?(如何在主程序里面使用到训练出来的.py文件)

      发布在 OpenMV Cam
      M
      mgvl
    • RE: opemv识别追踪三种植物

      然后怎么把这个ei_image_classification.py加入到main.py里面,求大佬指点一下

      发布在 OpenMV Cam
      M
      mgvl