• 大小: 1.06MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-26
  • 语言: 其他
  • 标签: STM32  人脸识别  

资源简介

STM32人脸识别代码,正点原子探索者板使用。

资源截图

代码片段和文件信息

#include “atk_frec.h“ 
#include “malloc.h“
#include “ff.h“
#include “stdio.h“
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//本人脸识别程序由ALIENTEK提供我们提供1个LIB(即:ATKFREC.lib)供大家使用 

//功能:利用摄像头实现人脸识别.
//说明:本识别库需要用到内存管理内存总占用数在560KB左右(20个人脸).每增加一张人脸内存占增加10KB左右.
//限制:由于本识别库以M3/M4为目标处理器内存有限算法上进行了大量阉割所以很多功能不太完善效果也不是
//     很好.且没有做识别有效检查(输入错误的人脸也会有结果输出).所以次代码仅供大家参考用.
//
//其他需求:
//1摄像头模块一个.
//2SD卡一张
//
//使用方法:    
//第一步:调用atk_frec_initialization函数初始化人脸识别库
//第二步:调用atk_frec_add_a_face函数添加人脸模板(如果已经有了可以忽略次步)
//第三步:调用atk_frec_load_data_model函数加载所有模板到内存里面(仅在添加新模板后需要如没有添加新模板则可忽略此步)
//第四步:调用atk_frec_recognition_face函数获取识别结果.
//第五步:调用atk_frec_delete_data函数可以删除一个人脸模板
//第六步:如果不想再用识别库则调用atk_frec_destroy函数释放所有内存结束人脸识别.
//
//版本:V1.0
//正点原子@ALIENTEK
//Copyright(C) 广州市星翼电子科技有限公司 2009-2019
//All rights reserved        
//版权所有,盗版必究。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//内存设置函数
void atk_frec_memset(char *pchar cunsigned long len) 
{
mymemset((u8*)p(u8)c(u32)len);
}     
//内存申请函数
void *atk_frec_malloc(unsigned int size) 
{
return mymalloc(SRAMEXsize);
}
//内存释放函数
void atk_frec_free(void *ptr) 
{
myfree(SRAMEXptr);
}

//保存人脸识别所需的数据
//index:要保存的数据位置(一张脸占一个位置)范围:0~MAX_LEBEL_NUM-1
//buf:要保存的数据缓存区首地址
//size:要保存的数据大小
//返回值:0正常
//    其他错误代码
u8 atk_frec_save_data(u8 indexu8* bufu32 size)
{
u8* path;
FIL *fp; 
u32 fw;
u8 res;
path=atk_frec_malloc(30); //申请内存
fp=atk_frec_malloc(sizeof(FIL)); //申请内存
if(!fp)
{
atk_frec_free(path);
return ATK_FREC_MEMORY_ERR;
}
sprintf((char*)pathATK_FREC_DATA_PNAMEindex);
f_mkdir(ATK_FREC_DATA_PDIR); //创建文件夹
res=f_open(fp(char*)pathFA_WRITE|FA_CREATE_NEW);
if(res==FR_OK)
{
res=f_write(fpbufsize&fw); //写入文件
}
f_close(fp);
if(res)res=ATK_FREC_READ_WRITE_ERR;
atk_frec_free(path);
atk_frec_free(fp);
return res;
}
//读取人脸识别所需的数据
//index:要读取的数据位置(一张脸占一个位置)范围:0~MAX_LEBEL_NUM-1
//buf:要读取的数据缓存区首地址
//size:要读取的数据大小(size=0则表示不需要读数据出来)
//返回值:0正常
//    其他错误代码
u8 atk_frec_read_data(u8 indexu8* bufu32 size)
{
u8* path;
FIL *fp; 
u32 fr;
u8 res;
path=atk_frec_malloc(30); //申请内存
fp=atk_frec_malloc(sizeof(FIL)); //申请内存
if(!fp)
{
atk_frec_free(path);
return ATK_FREC_MEMORY_ERR;
}
sprintf((char*)pathATK_FREC_DATA_PNAMEindex); 
res=f_open(fp(char*)pathFA_READ);
if(res==FR_OK&&size)
{
res=f_read(fpbufsize&fr); //读取文件
if(fr==size)res=0;
else res=ATK_FREC_READ_WRITE_ERR;

f_close(fp);
if(res)res=ATK_FREC_READ_WRITE_ERR;
atk_frec_free(path);
atk_frec_free(fp);
return res;

//删除一个人脸数据
//index:要保存的数据位置(一张脸占一个位置)范围:0~MAX_LEBEL_NUM-1  
//返回值:0正常
//    其他错误代码
u8 atk_frec_delete_data(u8 index)
{
u8* path;  
u8 res;
path=atk_frec_malloc(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-10-17 15:43  人脸识别代码\
     目录           0  2015-10-02 16:19  人脸识别代码\ATKFREC\
     文件      118374  2015-10-02 12:57  人脸识别代码\ATKFREC\ATKFREC.lib
     文件        3792  2015-10-02 16:08  人脸识别代码\ATKFREC\atk_frec.c
     文件        4653  2015-10-02 16:08  人脸识别代码\ATKFREC\atk_frec.h
     文件        1405  2015-10-02 16:08  人脸识别代码\ATKFREC\readme.txt
     目录           0  2015-10-02 16:19  人脸识别代码\FATFS\
     目录           0  2015-10-02 16:19  人脸识别代码\FATFS\doc\
     文件        3248  2014-01-15 00:31  人脸识别代码\FATFS\doc\css_e.css
     文件        3661  2014-01-15 00:31  人脸识别代码\FATFS\doc\css_j.css
     目录           0  2018-10-17 15:43  人脸识别代码\FATFS\doc\en\
     目录           0  2015-10-02 16:19  人脸识别代码\FATFS\doc\img\
     文件        1063  2013-09-18 21:47  人脸识别代码\FATFS\doc\img\app1.c
     文件        1597  2013-10-18 21:41  人脸识别代码\FATFS\doc\img\app2.c
     文件        3811  2014-01-13 20:56  人脸识别代码\FATFS\doc\img\app3.c
     文件       10365  2014-01-07 15:10  人脸识别代码\FATFS\doc\img\app4.c
     文件        1414  2011-09-02 22:10  人脸识别代码\FATFS\doc\img\f1.png
     文件        1458  2007-02-10 03:12  人脸识别代码\FATFS\doc\img\f2.png
     文件        1039  2007-02-10 03:12  人脸识别代码\FATFS\doc\img\f3.png
     文件        2335  2008-01-05 20:27  人脸识别代码\FATFS\doc\img\f4.png
     文件        2479  2008-01-05 20:27  人脸识别代码\FATFS\doc\img\f5.png
     文件        1436  2010-08-21 10:13  人脸识别代码\FATFS\doc\img\f6.png
     文件       11388  2013-05-12 12:31  人脸识别代码\FATFS\doc\img\f7.png
     文件       11421  2014-02-19 22:38  人脸识别代码\FATFS\doc\img\funcs.png
     文件        2401  2009-03-20 21:57  人脸识别代码\FATFS\doc\img\layers.png
     文件        2379  2009-06-13 21:48  人脸识别代码\FATFS\doc\img\layers3.png
     文件        7932  2013-12-27 12:20  人脸识别代码\FATFS\doc\img\modules.png
     文件       19068  2008-10-18 19:31  人脸识别代码\FATFS\doc\img\rwtest.png
     文件        8153  2010-09-13 10:55  人脸识别代码\FATFS\doc\img\rwtest2.png
     文件        3011  2009-06-15 00:03  人脸识别代码\FATFS\doc\img\rwtest3.png
     目录           0  2018-10-17 15:43  人脸识别代码\FATFS\doc\ja\
............此处省略198个文件信息

评论

共有 条评论