网易首页 > 网易号 > 正文 申请入驻

打造本地人脸门禁系统(一)——数据采集

0
分享至

目前很多中小学创客项目中有关“人脸识别”都是通过使用百度的AI开放平台来实现的。需要提前注册账号并采集“人脸库”信息,然后借助于个人账号的API Key和Secret Key进行在线数据的调用比对,最终获取置信度百分比实现对人脸的识别判断。这种方式的优点是用户编程时人脸识别的底层算法及实现过程是一个黑箱,只需通过接口进行数据的双向传输即可。缺点是必须保证网络的通畅,而且免费账号可能有时间段或有效使用次数等限制。

我们以树莓派为基础平台,借助开源计算机视觉库OpenCV、多维数组计算的Numpy库、连接硬件设备的PinPong库以及PIL库、os库等,就可以通过摄像头采集人脸进行数据的本地训练,最终实现脱离网络环境的人脸识别本地门禁系统。

0111

实验器材及连接

实验器材包括:树莓派3B和古德微扩展板各一块,带数据排线的P5V04A SUNNY定焦摄像头一个,SG90舵机一个,RGB三合一红绿灯模块一个,小型面包板一块,杜邦线若干。

首先,将树莓派主板CSI卡槽接口(标注为“CAMERA”)的锁扣两端向上轻轻拉起,再将摄像头数据排线末端的“金手指”一面小心插至卡槽底部,并从两端压紧锁扣。接着,将古德微扩展板四角对齐,轻轻压进树莓派的边槽引脚组,注意将摄像头的数据排线从另一侧引出。

然后,将RGB红绿灯模块的四个引脚并列插入面包板,再使用红色、黄色和绿色杜邦线分别将红绿灯模块的R、Y和G引脚对应连接至扩展板的5号、6号和12号引脚的“+”极,用白色杜邦线将红绿灯模块的GND引脚连接至扩展板5号引脚的“-”极;接着,将舵机插入扩展板的18号引脚组,注意黄色、红色和棕色线分别对应D数据端、VCC和GND端;最后,给树莓派通电,启动操作系统(如图1)。

0211

获取人脸图片的源数据

通过编程让树莓派的摄像头拍摄一批我的脸部图片,作为训练AI的源数据。

运行Windows的“远程桌面连接”程序,输入树莓派的IP地址(192.168.1.120)后点击“连接”按钮,进入树莓派的操作系统,准备开始Python代码编程。

1.安装库模块及

笔者的树莓派操作系统中Python版本是3.7.3,需要在“LX终端”先安装OpenCV库,命令是“pip3 install opencv-python”;用“pip3 install numpy”命令安装Numpy库。同样安装好PIL库、os库以及PinPong库。

2.拷贝人脸识别文件

接下来,在/home/pi/pycode中建立Recognize_Face项目文件夹,文件夹中分别建立PicData和Data两个空目录,前者用来保存摄像头捕获人脸的照片文件,后者则用来保存训练好的trainner.yml数据文件。

然后,从/usr/local/share/opencv4/haarcascades文件夹中将已经训练好的人脸正面识别检测模型haarcascade_frontalface_default.xml文件复制进来,待调用(如图2)。

3.采集并将人脸图转灰度

为了提高人脸图片的识别度,要将摄像头捕获的BGR格式人脸照片转换成GRAY灰度图。

首先,导入numpy和opencv库:“import numpy as np”“import cv2”;接着,建立变量cap,赋值为“cv2.VideoCapture(0)”,作用是控制摄像头开始抓拍生成视频画面;建立变量face_cascade,赋值为“cv2.CascadeClassifier("haarcascade_frontalface_default.xml")”,作用是使用人脸检测的级联分类器读取之前保存在当前文件夹中的识别检测模型文件haarcascade_frontalface_default.xml;建立变量sampleNum,赋值为0,对人脸采集的数目进行零初始化计数;建立变量ID,赋值为“input("请输入您的数字ID:")”,作用是在屏幕上输出提示信息并为人脸采集照片文件进行命名的归类。

在“while True”循环结构中,先通过语句“ret, img = cap.read()”对摄像头的人脸捕获画面进行读取,其中的ret返回值为布尔型,读取正确则返回True,变量img中存储的是矩阵形式的一帧图片信息;再建立变量gray,赋值为“cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)”,作用是将读取到的BGR格式图片进行GRAY灰度颜色转换,生成对应的灰度图片(目的是提高图片的识别度);建立变量faces,赋值为“face_cascade.detectMultiScale(gray,1.3,5)”,作用是设置缩放参数为1.3、人脸确定的最小次数为5,实现对应精度的人脸识别,返回值是OpenCV对图片的探测结果;在“for (x,y,w,h) in faces”内循环中,(x,y)是左上角的像素点的二维坐标值,w和h则分别表示宽度和高度;对变量img进行二次处理并赋值为“cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)”,作用是使用rectangle进行人脸的矩形框标记,其中的“(x+w,y+h)”表示矩阵右下角像素的坐标值,“(255,0,0)”所对应的是BGR格式的蓝色Blue颜色值,“2”表示画框的线宽;语句“sampleNum = sampleNum + 1”的作用是进行人脸采集“加1”计数。

4.保存采集数据

通过cv2.imwrite进行图片文件的保存操作,文件主名由四部分组成:“"PicData/user."+str(ID)+"."+str(sampleNum)”,然后是扩展名“".jpg"”(最终的文件名格式为“user.id.num.jpg”),“gray[y:y+h,x:x+w]”的作用是将灰度图片作为二维数组进行人脸区域的检测;语句“cv2.imshow("img", img)”的作用是显示变量img所存储的图片,该显示窗口的名称也同为“img”;接下来,通过两个if条件语句实现摄像头拍照和图片存储操作的break中断,一个条件为“cv2.waitKey(1) & 0xFF == ord("q")”,表示延时1毫秒的切换来等待键盘是否按下字母“q”(quit);另一个条件为“sampleNum == 1000”,表示人脸采集的数目是否超过1000张。

最后,添加摄像头的资源释放语句“cap.release()”,并且关闭图像窗口:“cv2.destroyAllWindows()”,将程序保存为“01Capture_Face.py”(如图3)。

5.测试人脸采集程序

运行程序,在“请输入您的数字ID:”提示信息后面输入数字“1”后回车,此时会弹出一个名为“img”的摄像头预览窗口,显示的内容即为摄像头的实时拍摄画面;尽量保持正脸或是小角度的侧脸及仰视和俯视,摄像头会将识别到的人脸区域用蓝色矩形框进行标识(如图4)。

经过一段时间的人脸采集后,按一下键盘的q键退出,摄像头的实时预览窗口画面关闭;此时进入PicData文件夹查看,是不是保存着若干张人脸照片文件(134张)?眼神和姿态可能各不相同,但共同点是均对人脸区域进行了截取——即蓝色矩形框内的“人脸”信息(如图5)。

下一期,我们将用这些“源数据”来训练人脸数据模型。

编辑|张毅

审核|吴新

爆料联系:cpcfan1874(微信)

壹零社:用图文、视频记录科技互联网新鲜事、电商生活、云计算、ICT领域、消费电子,商业故事。《中国知网》每周全文收录;中国科技报刊100强;2021年微博百万粉丝俱乐部成员;2022年抖音优质科技内容创作者

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
经典重现?C罗怒踢水瓶砸中人画面在国外疯传,球迷:赶紧道歉

经典重现?C罗怒踢水瓶砸中人画面在国外疯传,球迷:赶紧道歉

侧身凌空斩
2024-06-27 06:35:30
A股医药公司“补税”风波:科兴制药、北大医药补缴4000万元,国家税务总局回应“没倒查20年安排”

A股医药公司“补税”风波:科兴制药、北大医药补缴4000万元,国家税务总局回应“没倒查20年安排”

华夏时报
2024-06-27 16:55:19
曝:大s给汪小菲两孩子办台胞证,网友:看马筱梅怀孕,她害怕了

曝:大s给汪小菲两孩子办台胞证,网友:看马筱梅怀孕,她害怕了

郑丁嘉话
2024-06-27 10:24:46
李尚福、魏凤和被开除党籍!

李尚福、魏凤和被开除党籍!

江南晚报
2024-06-27 19:27:13
恭喜!湖人17号签捡漏21+4神枪,曾被预测第六顺位,詹皇曾称赞他

恭喜!湖人17号签捡漏21+4神枪,曾被预测第六顺位,詹皇曾称赞他

李喜林篮球绝杀
2024-06-27 10:44:35
玉石俱焚!赖清德毁掉立法机构法案,国民党无可奈何,执政权不再

玉石俱焚!赖清德毁掉立法机构法案,国民党无可奈何,执政权不再

欧崇敬
2024-06-27 14:42:24
中菲军舰交锋,菲舰将炮口指向黄山舰,24小时后,解放军南海亮剑

中菲军舰交锋,菲舰将炮口指向黄山舰,24小时后,解放军南海亮剑

挪威小熊一家
2024-06-25 14:41:18
“亏本卖”的合资车!从17万一口气跌至9万,配魔毯悬架,比奥迪Q5舒适

“亏本卖”的合资车!从17万一口气跌至9万,配魔毯悬架,比奥迪Q5舒适

隔壁说车老王
2024-06-27 15:39:35
我44岁怀孕,儿子反对,我和丈夫坚持要生二胎,儿子提出和我分家

我44岁怀孕,儿子反对,我和丈夫坚持要生二胎,儿子提出和我分家

肖寒先僧
2024-06-26 10:55:02
中央纪委怒批国内重点高校

中央纪委怒批国内重点高校

拾壹叔
2024-06-27 17:43:06
不愧是韩国!直接威胁俄罗斯……

不愧是韩国!直接威胁俄罗斯……

枢密院十号
2024-06-25 23:27:49
美国最害怕的不是歼20,也不是高超音速导弹,而是中国的电动汽车

美国最害怕的不是歼20,也不是高超音速导弹,而是中国的电动汽车

文史达观
2024-06-26 14:39:39
镇书记欺负女副镇长,后来女副镇长升任县纪委书记,将镇书记双规

镇书记欺负女副镇长,后来女副镇长升任县纪委书记,将镇书记双规

乔生桂
2024-06-25 11:09:24
三中会会时间定了,我们要有什么样的期待呢?

三中会会时间定了,我们要有什么样的期待呢?

古老板的老巢
2024-06-27 15:05:55
53岁韩红晒新疆日常饮食!满桌子大盆耗牛生肉,直接生吃引人热议

53岁韩红晒新疆日常饮食!满桌子大盆耗牛生肉,直接生吃引人热议

快乐娱文
2024-06-26 17:28:01
山东两市最新人事任免,涉多名局长等!

山东两市最新人事任免,涉多名局长等!

鲁中晨报
2024-06-27 10:43:02
复旦教授建议姜萍,直接去浙大读研究生,父亲的回应却说明问题

复旦教授建议姜萍,直接去浙大读研究生,父亲的回应却说明问题

熙熙说教
2024-06-27 15:57:49
曝华为将在7月发布至少4款新品 全新Sound X终于来了

曝华为将在7月发布至少4款新品 全新Sound X终于来了

手机中国
2024-06-26 09:58:05
亚洲第一控卫诞生,远超郭艾伦、赵继伟,男篮大喜讯

亚洲第一控卫诞生,远超郭艾伦、赵继伟,男篮大喜讯

体坛狗哥
2024-06-27 12:23:28
外网疯传“中国游客坐鹿”视频,日本网友骂翻了,真相却疯狂打脸…

外网疯传“中国游客坐鹿”视频,日本网友骂翻了,真相却疯狂打脸…

东京新青年
2024-06-26 18:31:25
2024-06-27 19:44:49
壹零社
壹零社
最新鲜的互联网产业资讯
2118文章数 1352关注度
往期回顾 全部

科技要闻

朱啸虎:高度怀疑GPT-5还能不能做出来

头条要闻

李尚福、魏凤和被开除党籍、军籍 取消上将军衔

头条要闻

李尚福、魏凤和被开除党籍、军籍 取消上将军衔

体育要闻

和布朗尼一样菜的人,咋进NBA?

娱乐要闻

李雪琴北大学历情况被扒,牵扯多人

财经要闻

争5亿房产、传4P丑闻,百亿大佬又开打了

汽车要闻

32万公里实车直播拆解 极氪凭事实证明实力!

态度原创

艺术
亲子
房产
数码
教育

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

亲子要闻

【社论】别让幼儿园“突然跑路”

房产要闻

大动作来了!丁村城市更新征收补偿方案曝光!

数码要闻

笔记本上的“吃灰”配置,你的电脑中了几个?

教育要闻

成都首个“移动家长学校”即将在怡心街道启动!100多位名师名校(园)长等你来

无障碍浏览 进入关怀版