Skip to content
This repository has been archived by the owner on Sep 8, 2022. It is now read-only.
/ openmv_identify Public archive

2020年TI杯大学生电子设计竞赛-简易无接触温度测量与身份识别装置(F题)识别部分

Notifications You must be signed in to change notification settings

InImpasse/openmv_identify

Repository files navigation

2020年TI杯大学生电子设计竞赛

简易无接触温度测量与身份识别装置(F题)识别部分

本方案是在星瞳科技所提供的OPENMV例程基础上进行的修改 分辨不同人脸

主要修改部分:

1、将每次识别人脸时只采集1次样本数据修改为采集3次样本数据,每次分别与图像库中图片进行比对。每次比对后都会输出1个结果,循环3次后,输出出现次数最多的那个结果,减小识别误差率。
2、原例程是比对样本与图像库整张的图片中黑白像素数量,取最相近的结果进行输出。本方案将识别范围向中间缩小了1/8,可以一定程度上避免因为背景因素对结果造成的影响。
3、新定义了一些输入IO口和输出IO口,实现通过按键切换模式(身份识别、口罩判别、学习模式选择、学习后身份识别)、通过高低电平输出表示结果的功能(见附表)。
4、修改了图像库保存的位置,身份识别模式的图像库保存在"face/f%d"中,口罩判别模式的图像库保存在"mask/m%d"中,学习模式的图像库保存在"identify/i%s"中。因此,在使用此方案时,您需要先将github上的几个文件夹提前下载至您的OPENMV的根目录当中。
5、添加了相机参数自动调节的功能(自动增益、自动白平衡、自动曝光),一定程度上避免光线原因造成的识别结果误差。(该功能不确定一定有效)
Image text

比赛结果:

除题目第3项身份不符报警功能没有加入之外,题目其余要求均实现。识别部分得分为45分(总分50分)

仍需改进部分:

1、未加入身份不符报警功能,原因是因为没有找到合适的报警阈值。且阈值可能因为环境因素发生较大变化,造成队员身份识别错误,风险较大,故不加入。
2、为方便用LED灯表示结果,最后的输出结果没有将各模式编号后按照二进制结果输出高低电平,造成了一些结果的重复。
3、最后的学习后身份识别功能本来想添加两个模式,一个模式是针对学习模式的图像库单独进行识别,另一个模式是对学习模式和身份识别库的图像库一起进行识别,这两个模式之间通过按键进行切换。但最后因为时间问题,及按键数量问题,没有加入该模式,只选择了第一种模式作为默认功能。
4、因为OPENMV的精度问题,在识别过程中出现了几次的识别错误(包括穿黑色衣服无法识别是否戴口罩、因为角度问题识别错人等),因此该方案的识别功能对各方面的要求较高,某些情况下识别难度较大。
5、比赛准备过程中,有尝试过用haar算子追踪人脸(参考人眼追踪方案),再在此基础上圈定人脸范围进行身份识别,但是由于两种模式相机参数不同,故无法实现。
6、比赛准备过程中,也有尝试过用OPENCV官方库中的haar算子,进行人鼻子和嘴巴的追踪,以判断是否佩戴口罩,但在转制xml文件至cascade文件时报错,后判断是xml文件的问题。(OPENMV官方调用的haarcascades_cuda库,该库内的文件可转制成功。但haarcascades库转制失败,cuda库中不包括鼻子和嘴巴的文件。)
7、因为是第一次接触OPENMV,所以文件中较多方案的代码是重复的,一方面是为了方便修改,另外也是由于时间有限。欢迎大家对该方案进行修改,有什么问题可在issues中提出。

我的微信公众号:【万能的小江江】

About

2020年TI杯大学生电子设计竞赛-简易无接触温度测量与身份识别装置(F题)识别部分

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages