人工智能大作业——人脸识别系统(最终)

这篇具有很好参考价值的文章主要介绍了人工智能大作业——人脸识别系统(最终)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面
  时间过得飞快,时间已经距离我发第一篇文章过去2年多了,也不再从事代码工作,偶然间上到csdn翻看文章经过,看到还是有些人关注人脸识别系统的后续的,我猜大概率是学弟学妹们正在被期末实验折磨中,翻了翻原先的代码还能找到就一并更完了吧,如果抄了我的作业记得来学长的评论区表示一下感谢哦(代码完全照抄必被老师发现,别那么傻)。
  一、作业要求
  基本任务:开发一个人脸识别系统,要求以ORL人脸数据库为实验数据,构造出一个完整的人脸识别系统,要求有界面,可选择输入单张图像并显示该图像,然后实现该图像的识别,并输出对应的识别结果图像。要求数据库中每个人的5张照片作为训练集,另外5张照片作为测试集,并统计其识别正确率。(实验采用的程序语言不限、人脸识别算法不限)
扩展任务:1、实现一个完整的人脸识别系统,照片自己采集,要求30人以上,实现摄像头与照片两种模式作为输入的人脸检测与识别,正确率要求95%以上。2、实现一个完整的多人人脸识别系统,照片自己采集,要求30人以上,实现摄像头与照片两种模式作为输入的多人脸检测与识别,正确率要求95%以上。
  二、算法原理
  基本思路是利用knn算法实现人脸识别,orl数据集的人脸识别系统与自定义数据集的多人人脸识别系统的系统大致逻辑为:模型训练,加载模型查找最邻近解,显示匹配到的信息。
  模型训练过程为利用face_recognition模块识别出人脸位置,加上人脸信息标签后利用sklearn模块进行训练,得到相应的.clf分类器并保存,识别过程为利用保存的分类器进行相邻判断并找到最相邻的解的图像。
  在机器的学习以及图像处理显示方面,调用sklearn、PIL、face_recognition等模块。在界面的展示以及用户的交互上,调用了tkinter模块。
  三、人脸识别系统流程图与步骤说明
  (一)orl数据集的人脸识别系统 流程图:人工智能大作业,人工智能,人工智能,人脸识别,计算机视觉,python,开发语言
步骤说明:
(1)选择训练集路径
在使用该系统前,需要先对人脸图像进行训练,所以首先得先指定训练集的路径位置。注意:训练集路径不能为空,且目录结构应大致为./train/s1/img1 img2 … ./train/s2 ./train/s3/img1 im2 …
(2)训练模型
进行模型训练,提示用户会造成系统卡顿,请耐心等待。
注意:①卡顿属于正常现象,是因为在模型训练过程中需要对大量图片进行处理,需要耐心等待。训练后会生成“trained_knn_model_orl.clf”文件,表示训练后形成的Knn分类器。默认保存路径是与该python文件同级目录下的位置。②训练过后系统会自动读取对应目录下的knn分类器,故下次使用时可不必再次训练。
(3)显示识别准确率
在模型训练完成后会自动对orl数据集中200张人像进行识别匹配进而计算正确率并显示。
(4)选择数据集中的待匹配图像
选择数据集中待匹配的图像进行检测,若格式不正确,系统会给予相应的提示。
(5)输出匹配的图像
从对应的训练集中查找到对应人像的照片进行显示。
(二)自定义数据集的多人人脸识别系统 流程图:
人工智能大作业,人工智能,人工智能,人脸识别,计算机视觉,python,开发语言
步骤说明:
(1)选择训练集路径
在使用该系统前,需要先对人脸图像进行训练,所以首先要先指定训练集的路径位置。注意:目录结构应大致为./train/s1/img1 img2 … ./train/s2 ./train/s3/img1 im2 …(这一步流程与上一个系统要求一致,如:目录结构要合理,训练集目录下有n个文件夹表示n个人的训练数据,文件夹名表示人物的名字,目录内的图片文件只能是这个人的单人的照片,否则不会训练成功)
(2)训练模型
进行模型训练,提示用户会造成系统卡顿,请耐心等待。训练后会在于文件同级目录上保存trained_knn_model_manyface_video.clf文件,这样下次使用时系统就会自动利用上面这个分类器进行图像识别。
(3)本地识别多人像照片
按下按钮后,会打开文件管理器,让用户选择一张照片进行识别。系统会利用trained_knn_model_manyface_video.clf这个分类器找出图像中所有人物的头像并利用knn算法匹配与它最相近的人物。之后系统会打开用户选中的图片并在图片上对人物图像加框和显示匹配到人物的名字。
(4)从摄像头识别多人像照片
按下按钮后,会打开摄像头采集用户当前的场景,对场景中的人物进行最近相邻匹配人物,并加框显示识别结果。

四、部分核心代码文章来源地址https://www.toymoban.com/news/detail-792175.html

训练模型的算法:
#模型训练,得到分类器,即同级目录下的.clf文件
def train_model(train_dir):
    #指定KNN算法训练后分类器的文件名
    model_save_path = "trained_knn_model_orl.clf"
    X = []
    y = []
    #flag变量用于判断训练集的有效性
    flag=False
    # 对训练集中每个人的目录进行遍历,如C:/Users/Haifeng/OneDrive/桌面/face_identity_orl/knn_examples_orl2/train\s1..s2..s3....
    for class_dir in os.listdir(train_dir):
        #判断当前路径是目录,若s1 s2 s3 不是目录是文件则抛弃
        if not os.path.isdir(os.path.join(train_dir, class_dir)):
            continue
        #对图像进行格式转换,转成jpg格式的图像,便于训练
        bmpTojpg(os.path.join(train_dir, class_dir))
        # 对每个人的图像进行遍历
        for img_path in image_files_in_folder(os.path.join(train_dir, class_dir)):
            # 将图片导入到numpy数组中
            image = face_recognition.load_image_file(img_path)
            # 查找图片中人脸(上下左右)的位置,图像中可能有多个人脸  face_locations的值类似[(135,536,198,474),()]
            face_bounding_boxes = face_recognition.face_locations(image)
            #若训练集中的图像只存在一张人脸,说明这是张合格的训练集,则加入集合进一步处理
            if len(face_bounding_boxes) == 1:
                #只要有一张脸被训练到,即为训练成功
                flag=True
                # 将现在图像的脸部编码加载到训练集中
                X.append(face_recognition.face_encodings(image, known_face_locations=face_bounding_boxes)[0])
                y.append(class_dir)
            # X加的是这个图像和人脸的位置Y加的是图像外面的文件夹名字
    # 创建并训练KNN分类器
    knn_clf = neighbors.KNeighborsClassifier(n_neighbors=2, algorithm='ball_tree', weights='distance')
    knn_clf.fit(X, y)
    # 以保存路径的格式要求保存分类器
    if model_save_path is not None:
        with open(model_save_path, 'wb') as f:
            pickle.dump(knn_clf, f)

#人脸预测匹配,根据传入的图像路径,进行人脸的匹配,返回匹配到人物的名字,以及原图像中相应的人脸坐标,以及是否存在匹配的人脸
def predict(X_img_path):
    #读入knn_clf模型
    if knn_clf is None:
        with open(model_path, 'rb') as f:
            knn_clf = pickle.load(f)
    # 加载图像和找到脸的位置
    X_img = face_recognition.load_im

到了这里,关于人工智能大作业——人脸识别系统(最终)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能-OpenCV+Python实现人脸识别(人脸检测)

    在OpenCV中使用Haar特征检测人脸,那么需要使用OpenCV提供的xml文件(级联表)在haarcascades目录下。这张级联表有一个训练好的AdaBoost训练集。首先要采用样本的Haar特征训练分类器,从而得到一个级联的AdaBoost分类器。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征

    2024年02月06日
    浏览(85)
  • 人工智能:人脸识别技术应用场景介绍

    目录 人脸识别介绍 什么是人脸识别技术 人脸识别的流程 1、场景分类 2、认证对比 3、金融领保险应用 3.1 金融行业 3.2 保险行业 4、安防交通领域 4.1 公园景点人脸识别闸机 4.2 高铁站进站人脸识别闸机 5、警务领域 5.1 抓拍交通违法 人脸识别技术是一种通过计算机技术和

    2024年02月04日
    浏览(72)
  • 强人工智能与人脸识别技术:未来的应用与挑战

    人工智能(Artificial Intelligence, AI)是一门研究如何让计算机模拟人类智能的学科。人工智能的主要目标是开发一种能够理解自然语言、学习自主地从经验中抽象出规律、进行推理和解决问题的计算机系统。人工智能的研究范围广泛,包括机器学习、深度学习、计算机视觉、自然

    2024年02月21日
    浏览(44)
  • 人工智能:人脸识别技术在医疗领域中的应用

    作者:禅与计算机程序设计艺术 人工智能(Artificial Intelligence,AI)已经逐渐成为当今的热点词汇。近年来,随着人工智能技术的不断进步,尤其是生物识别、图像处理、语音理解等领域取得重大突破,人工智能在医疗领域也逐渐走向成熟。目前,我国医疗卫生行业已经进入

    2024年02月08日
    浏览(45)
  • 云端人工智能在人脸识别行业的应用:安全识别和个性化服务

    人脸识别技术是人工智能领域的一个重要分支,它通过对人脸特征进行分析和比较,实现对个体的识别和认证。随着云计算和人工智能技术的发展,云端人工智能在人脸识别行业的应用得到了广泛的关注和推广。本文将从以下几个方面进行阐述: 1.1 人脸识别技术的发展历程

    2024年02月21日
    浏览(34)
  • 人工智能 - 人脸识别:发展历史、技术全解与实战

    本文全面探讨了人脸识别技术的发展历程、关键方法及其应用任务目标,深入分析了从几何特征到深度学习的技术演进。 关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证

    2024年02月05日
    浏览(38)
  • 社交软件的最终归宿-人工智能结合

    随着人工智能技术的不断发展,社交软件与AI人工智能的结合已经成为一种趋势。这种结合不仅可以提升用户体验,还可以优化内容推荐、智能化程度和内容质量。本文将从三个方面探讨社交软件和AI人工智能结合的话题,并分析其发展前景和挑战。 社交软件与AI人工智能的结

    2024年02月08日
    浏览(56)
  • 实验二、人工智能:产生式系统(动物识别系统)

    把一组产生式放在一起,让它们互相配合、协同作用,一个产生式生成的结果可以供另一个产生式作为已知事实使用,以求得问题的解,这样的系统成为产生是系统。 产生式系统的例子:动物识别系统 本系统为识别虎、金钱豹、斑马、长颈鹿、企鹅、鸵鸟、信天翁等七种动

    2024年04月14日
    浏览(40)
  • 【人工智能】从零开始的口罩识别系统

    本文是从零开始搭建口罩识别系统的学习过程总结,涉及到的软件环境、硬件环境、代码、操作都会一一给出。 在开始之前,我们首先整理一下需要的软件环境清单. 软件环境: 1. Python 2. labelimg 3. AI Studio 4. YOLO2COCO 5. PaddleUtils 6. paddleyolo 首先,笔者的电脑是安装了Python的,但

    2024年02月16日
    浏览(39)
  • 人工智能实验:动物识别系统(C++代码实现)

    建立一个动物识别系统的规则库,编写程序用以识别虎、豹、斑马、长颈鹿、企鹅、鸵鸟、信天翁等7种动物。 为了识别这些动物,可以根据动物识别的特征,建立包含下述规则库: R1:if 动物有毛发 then 动物是哺乳动物 R2:if 动物有奶 then 动物是哺乳动物 R3:if 动物有羽毛

    2024年02月03日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包