python图像识别追踪算法_基于python利用AI模型打造在线人脸追踪系统,实现以及原理讲解...

由于科技的发展,人脸识别已经是司空见惯,尤其手机的刷脸开锁、进站刷脸验证、和刷脸支付。但是人脸识别还有更好的用途,比如在线追踪,此时我们可以将目标图片作为对比数据输入系统,系统将自动在线识别目标,并将追踪结果实时显示在屏幕,还记的《冰封:重生之门》吗?华哥利用炫酷系统在茫茫人海追踪到了甄子丹的踪迹。

今天我就分享一下我学习制作的在线人脸识别系统的成果,首先我们需要准备一台带摄像头的电脑,成功安装了python3.5,另外我们还需要安装人脸识别模型库,在DOS命令行下利用pip install face_recognition命令安装,该库主要用于人脸识别,也需要安装OpenCV库,详见我的历史文章,将图片转视频一文,该库主要用于实现在线识别,安装方法如图所示。

首先我们需要导入人脸识别模块:face_recognition、电脑摄像头操作的OpenCV模块和用于数值计算的numpy模块,该模块在人工智能和大数据处理中使用特别方便,尤其矩阵运算,计算效率高,便于操作。同时我们还需要定义摄像头,加载目标图像(作为识别目标)并且编码为机器码,为了计算机的识别做准备,同时我们在识别之前还需要定义一些变量存储中间信息,这一步都属于预处理阶段。

由于是在线识别,因此我们一般是在一个无限循环之中进行的,首先第一步,我们需要从摄像头获取一帧图片,一般由于处理器性能和考虑到在线效率问题,我们需要将图片做一个缩小的处理,然后调用人脸位置计算函数face_locations()函数计算出图中所有的人脸位置,再对所有位置处的人脸进行编码处理,与开始预处理类似。

在识别过程中,我们可能会同时识别多个目标,本文以一个为例,在识别一个已知目标时,由于一帧图像中一般会存在多个人脸,因此需要一个循环在此处对多有的人脸进行遍历比较,比较人脸算法使用了numpy库中的最小距离法,如果未识别出,可将人物标为未知,如果识别出了目标后将目标名字存入face_names列表。

我们接下来需要将识别结果实时标注在屏幕上,这时我们需要在一个循环中对图中的人脸进行全部标注,对识别出的目标标注出名字,对未识别出的标注成“Unknown”,在标注时由于人脸的位置是已知的存在face_locations变量中,因此我们可以得到人脸的上下左右位置坐标,从而画框标注出人脸。

有没有发现我们的程序在一个死循环里边,因此我们需要在程序里边设置可退出的方法,在此我设置了按“q”键退出,详见上图的最后一个if语句判断“q”退出的方法,记得退出后释放摄像头资源,不然摄像头一直处于开启状态。

由于本人电脑比较挫,打开摄像头后比较卡,但是可以看出识别成功了,是已知目标的名字:my_face,并且将目标框出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值