目录
总结:结合主机上的人脸识别,自动记录拍摄的人脸照片。 无需像传统设备那样快速搜索人脸照片,追踪更加便捷。 通过串口接收回调接收上位机发送的拍摄指令,调用接口进行拍摄。
文章内容
1 简介 2 项目简介 2 主要器件 3 硬件效果 4 软件设计 4.1 功能架构 4.2 软件程序流程图 5 部分实现代码 6演示效果6 最后
1简介
大家好,我是淡生-前辈,今天给大家介绍一个高年级学生创建的微控制器项目,是一个基于微控制器的面部识别跟踪。Trace
可用于课程设计或毕业设计
毕业设计技术方案帮助:<Q>746876041
2 项目介绍
传统的图像监控设备功能非常单一。 它仅具有图像采集和显示功能,不能满足现代技术的要求。
该项目旨在结合物联网的概念。 它不仅实现了传统的视频录制功能,还实现了当今非常流行的面部识别技术。
本项目优点:
只要有电源插座,就可以通过WIFI传输数据,可以作为视频监控点。
通过WIFI传输,可以远程控制摄像机的运行模式(运行、停止、低功耗),提高实时性。
结合上位机人脸识别,可自动记录人脸并拍照。 无需在传统设备上快速搜索人脸,追踪更加便捷。
两个主要器件
开发板:NUCLEO-64 STM32F446
主控MCU:STM32F446RET6
功能特点:数码相机具有DCMI接口。 可以直接连接并行相机,无需 FIFO。 片内有128KB SRAM,存储空间大。
WIFI模块:3080B
功能特点:具有STATION和AP功能,提供TCP SOCKET通讯,可以通过UART直接切换为TCP通讯,非常方便。 摄像头:OV2640 200万像素特点:提供QVGA图像帧多种分辨率选择(分辨率320*240)RGB565需要15虽然3600字节的空间不足以容纳该主控的SRAM,但OV2640配备了JPEG压缩技术。 经过JPEG压缩后,QVGA图像的帧小于10KB,节省了大量的SRAM存储空间。
相机转接板:
功能:连接开发板和相机,减少因传输干扰造成的图像数据丢失。
主控引脚连接图:
3 硬件效果
4 软件设计
4.1 功能架构
采用的开发平台:ST官方HAL,由于MBED平台目前不支持camera接口,暂时不支持。 用过的。 所有功能实现后,将移植到MBED平台。
开发工具:keil 5.17
上位机开发:.C++和QT5.1、可视化库opencv
开发工具:Visual stdio 2017
从机软件驱动:
串口UART驱动:与WIFI模块3080B进行UART通信。
I2C驱动:初始化相机设置。
DCMI驱动:设置相机的图像采集接口。
MCO1驱动程序:为相机模块提供时钟。
4.2软件程序流程图
5部分实现代码
下位机:
当您打开系统时,串口和相机将被初始化并准备拍照。
利用串口接收回调接收上位机发送的拍照指令,并调用DCMI接口进行拍照。
DCMI 的帧完成回调函数可以让您知道图像采集何时完成,并将图像发送回主机。
从机核心逻辑代码:
while (1) { /* 用户代码结束时 */if(takePhoto==1){ takePhoto= 0 ;if(Rxbuffer[0]==0x12 &&Rxbuffer[1]==0x34){ Rxbuffer[0]=0; Rxbuffer [1]=0;//__HAL_DCMI_ENABLE(&DCMI_hdcmi); __HAL_DCMI_ENABLE_IT(&DCMI_hdcmi, DCMI_IT_FRAME); //每次都会收到帧完成后while(HAL_DCMI_Start_DMA (&DCMI_hdcmi, DCMI_MODE_SNAPSHOT, (uint32_t)JpegBuffer,pictureBufferLength)!=HAL_OK);//启用图像捕获} HAL_UART_Receive_IT(&UartHandle, (uint8_t *)Rxbuffer, 2);}if( getPicture ==1){uint8_t dataHead[8 ]={“J”,"P","E","G"};pictureLength=pictureBufferLength-DCMI_hdcmi。DMA_Handle [ k4]>实例->NDTR; //这个NDTR有JPEGpictureLength*=4; //DCMI FIFO是4个字节,DMA也一次传输4个字节,所以图像的实际长度=传输次数*4;getPicture=0;(*(uint32_t*)( dataHead+4))=(uint32_t)图片长度; //数据为8个字节,前4个字节用于存储“JPEG”,后4个字节用于存储图像的实际长度while (HAL_UART_Transmit_IT(&UartHandle, (uint8_t*)dataHead , 8)!=HAL_OK ); //数据先将长度发送给上位机n class="token function">HAL_Delay(20 ) ;while(HAL_UART_Transmit_IT(&UartHandle, (uint8_t* )JpegBuffer,pictureLength)!=HAL_OK);//发送数据到上位机} /* 用户代码开始 3 */ }
6个演示效果
图片采集和人脸跟踪效果:
图片采集和人脸跟踪效果:
6 最后
技术方案完成帮助:<Q >746876041
MCU 校友项目完整列表:
https : // blog.csdn.net/huawei123444/article/details/119822845
评论前必须登录!
注册