OpenMV:20追踪其他物体的云台

该博客介绍了如何使用OpenMV进行物体追踪,包括追踪人脸、AprilTags和圆形物体。通过获取目标物体的xy坐标并调整云台舵机的pid运动来实现追踪。主要区别在于针对不同物体的搜索函数及其返回值。只需修改main.py中的相应函数,就能实现不同类型的物体追踪。
摘要由CSDN通过智能技术生成


和追踪小车的原理是一样的

首先获得目标物体的x,y坐标,然后通过目标物体的xy坐标来控制我们云台的两个舵机的pid运动

无论追踪什么物体,都是通过物体的x,y坐标来控制云台的运动,对于云台的舵机来说,它只知道传给它的是x,y坐标,并不知道OpenMV传给它的是小球的xy坐标还是人脸的xy坐标

所以我们只需要修改main.py中的函数即可

追踪人脸的云台

搜索函数:objects = img.find_features(face_cascade,threshold ,scale)

记得要载入haar算子,并且寻找小球的函数find_blob()和寻找人脸的函数find_feartures()的返回值是不一样的!

import sensor, image, time

from pid import PID
from pyb import Servo

pan_servo=Servo(1)
tilt_servo=Servo(2)

pan_servo.calibration(500,2500,500)
tilt_servo.calibration(500,2500,500)

red_threshold  = (13, 49, 18, 61, 6, 47)

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() # Initialize the camera sensor.
sensor.set_contrast(1)  # 插入:设置对比度
sensor.set_gainceiling(16)  # 插入:设置增益

# 由于云台上的OpenMV是反着装的,而检测人脸的haar算子是正着看的,所以就必须把照片倒过来才能检测成功
    # 我们不用那么麻烦:直接设置图像为镜像模式,是垂直方向的翻转即可
sensor.set_vflip(True)

sensor.set_pixformat(sensor.GRAYSCALE) # 人脸识别最好采用灰度图模式
sensor.set_framesize(sensor.QQVGA) # use QQVGA for speed.
sensor.skip_frames(10) # Let new settings take affect.
sensor.set_auto_whitebal(False) # turn this off.
clock = time.clock() # Tracks FPS.


# 加载人脸的haar算子
face_cascade = image.HaarCascade("frontalface" , stages = 25)

def find_max(blobs):
    max_size=0
    for blob in blobs:
        if blob[2]*blob[3] > max_size:
            max_blob=blob
            max_size = blob[2]*blob[3]
    return max_blob


while(True):
    clock.tick() # Track elapsed milliseconds between snapshots().
    img = sensor
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值