0 引言
开发环境:QT (windows、arm)、opencv 、linux、I.MX6ULL(ARM Cortex-A7)
项目介绍:系统分为上位机和下位机两端;下位机基于I.MX6ULL开发,完成spi总线框架下的rc522读卡器驱动程序编写,QT应用程序采用多线程,负责rfid卡号读取、网络数据传输与接收、
摄像头采集的图像动态显示以及人脸检测等功能;上位机负责用户信息管理、考勤状态判断、人脸检测与识别等。
项目技术:C/C++、linux C、QT、opencv、sqlite
硬件资源:I.MX6ULL开发板、摄像头、rc522以及白卡若干
参考链接:
[1]基于qt+opencv+seetaface人脸识别考勤系统,トニー木大,b站,2022.7.1.
[2]李明昆,钟丽辉,戴正权.基于人脸识别和RFID智能门禁考勤系统[J].电脑知识与技术,2021,17(9): 183-184.
[3]余嘉.基于RFID和面部识别的人事考勤管理系统的设计与实现[D].华东师范大学,2017.
[4]代懋玥. 基于Web和RFID技术的人事考勤管理系统的设计与实现[D].电子科技大学,2019.
[5]开源毕业设计:基于嵌入式ARM-Linux的应用OpenCV和QT实现的人脸识别系统(源码+论文)_基于嵌入式的毕业设计项目_曾哥zengzr的博客-CSDN博客其他:opencv编译与移植、上位机人脸识别检测模型选用的是中科视拓的SeetaFace6开源项目,编译时注意编译器版本即可,也可以下载别人编译好的库,注意编译环境、dll库位置等。参考链接:https://github.com/SeetaFace6Open/index
1 上位机
1.1 主界面
1.2 用户添加界面
1.3 用户信息显示界面
1.4 工作日期设置界面
1.5 其他服务界面
1.6 监测界面
签到返回信息
错误信息:信息不存在、人脸库未注册、请假、重复签到
正确信息:签到迟到、正常签到、早退签退、正常签退
调整工作日期设置测试如下:
人脸检测:
rfid卡检测:
1.7 其他
1.8 上位机各界面联系如下所示:
2 下位机(I.MX6ULL)
2.1 rc522驱动
2.1.1 设备树描述
rc522_rst{
compatible = "rc522_rst";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_spi_rst>;
rst-gpio = <&gpio1 1 GPIO_ACTIVE_LOW>;
status = "okay";
};
&ecspi2 {
fsl,spi-num-chipselects = <1>;
cs-gpio = <&gpio1 29 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi2>;
status = "okay";
spidev: rc522@0
{
compatible = "alientek,rc522";
spi-max-frequency = <2000000>;
reg = <0>;
};
pinctrl_ecspi2: ecspi2grp {
fsl,pins = <
MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x100b0
MX6UL_PAD_UART4_TX_DATA__ECSPI2_SCLK 0x100b1
MX6UL_PAD_UART5_TX_DATA__ECSPI2_MOSI 0x100b1
MX6UL_PAD_UART5_RX_DATA__ECSPI2_MISO 0x100b1
>;
};
pinctrl_spi_rst: rstgrp {
fsl,pins = <
MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0x100b0 /* rc522 rst_pin */
>;
};
2.1.2 rc522驱动与测试程序
参考5
2.2 下位机各界面联系如下
3 网络数据传输
4 总结
采用模块化设计方便各功能互不干扰,提供函数接口利用QT的信号槽机制就可以相互联系起来,容错率较高。
5 源码
三连留下邮箱,嘿嘿,会定时发送!