构建实时人脸跟踪的二自由度舵机云台系统

版权申诉
0 下载量 146 浏览量 更新于2024-11-12 1 收藏 9.59MB ZIP 举报
资源摘要信息:"基于opencv和stm32单片机的二自由度人脸跟踪舵机云台" 知识点: 1. 图像采集:在本系统中,使用USB摄像头作为图像采集设备,它可以直接得到数字图像,无需进行数模转换,并且成本较低。USB摄像头通过USB数据线与电脑连接,可以在PC端实时获取图像数据。这种摄像头适用于对精度要求不是特别高的情况。 2. 人脸检测:在PC端编写用于人脸检测的Python程序。使用OpenCV库,这是开源计算机视觉和机器学习软件库。首先对每一帧实时图像进行预处理,然后利用OpenCV提供的Haar特征分类器来检测图像中人脸的位置。一旦人脸被检测到,系统会计算人脸中心点的坐标,并通过串口通信将这些坐标发送给STM32单片机。 3. 舵机控制:STM32单片机接收到PC端发送的人脸中心点坐标后,会根据这些数据对两个舵机进行独立的位置控制。实现这个控制需要将图像中心点的坐标与人脸中心点坐标进行比较,计算出偏差。然后,将这个偏差输入到由STM32实现的两个比例-微分(PD)控制器中。PD控制器会计算出必要的占空比,以产生两路PWM波形信号,驱动舵机向减少偏差的方向转动,从而实现对人脸的跟踪。 4. OpenCV库:OpenCV是一个跨平台的计算机视觉和机器学习软件库,它包括了众多的图像处理和计算机视觉函数。OpenCV提供了一套完整的功能,如图像处理、视频分析、特征提取、物体检测以及更多的功能。在这个系统中,OpenCV的Haar特征分类器被用于人脸检测。 5. STM32单片机:STM32是一系列基于ARM Cortex-M微控制器的产品线,由STMicroelectronics生产。这类单片机广泛应用于嵌入式系统,它们以其高性能、低功耗和丰富的外设接口而闻名。在本系统中,STM32单片机负责接收人脸中心点坐标,并控制舵机转动。 6. 串口通信:系统中PC端的Python程序与STM32单片机之间的通信是通过串口完成的。串口通信是一种常用的计算机与设备间通信方式,它简单、可靠,且实现成本低。在这个案例中,PC端程序通过串口发送人脸中心点坐标给STM32,STM32则根据这些坐标控制舵机。 7. PD控制器(比例-微分控制器):PD控制器是控制系统中的一种常见控制器类型,它通过比例(P)和微分(D)两个参数对系统的输出进行调节,以减小误差。在本系统中,PD控制器根据人脸中心点坐标与图像中心点坐标之间的偏差,计算出适合的PWM波形信号,以控制舵机转动,实现对人脸的精确跟踪。 8. PWM(脉冲宽度调制):PWM是一种常见的控制电机速度和转向的技术,它通过调整脉冲宽度来控制输出功率。在这个二自由度人脸跟踪舵机云台中,STM32单片机产生PWM波形信号来驱动舵机转动。舵机的转动角度和速度可以通过改变PWM信号的占空比来控制。 9. 舵机(Servo):舵机是一种可以精确控制角度的伺服马达,广泛用于模型和机器人等应用。在本系统中,舵机用来实现摄像头的俯仰和旋转动作,以便跟踪移动中的人脸。通过调整PWM信号的占空比,STM32单片机控制舵机转动到指定的位置。