基于人脸匹配算法的名人识别模型

celeb-detector的Python项目详细描述


名人识别PyPI versionDocumentation StatusAnaconda-Server Badge

使用人脸匹配算法识别名人的模型。在

这个模型是基于一个数据集,包括60位名人(每人100张)的6000张照片。在

有关详细文档,请参阅this。在

算法的基本工作包括:

  • 采用MTCNN人脸检测模型进行人脸检测。在

  • 人脸编码是使用keras中的VGGFace模型创建的。在

  • 人脸匹配是使用annoy库(spotify)完成的。在

正在安装依赖项

  • 运行pip install -r requirements.txt安装所有依赖项(最好是在虚拟环境中)。在

PyPI包

安装

  • 要确保您拥有所有必需的附加包,请先运行pip install -r requirements.txt。在
  • 要安装pip包,请运行:
    # pip release version
    pip install celeb-detector
    # also install additional dependencies with this (if not installed via requirements.txt file)
    pip install annoy keras-vggface keras-applications
    # Directly from repo
    pip install git+https://github.com/shobhit9618/celeb_recognition.git
    
  • 如果在linux或ubuntu上使用conda,可以使用以下命令创建并使用一个名为celeb detector的新环境: ^{pr2}$ 这将安装所有必需的依赖项。要确保您使用的是包的最新版本,请同时运行(在环境中):
    pip install --upgrade celeb-detector
    

使用pip pakcage

  • 要使用我的模型进行预测,请在安装后使用以下代码行:

    importceleb_detector# on running for the first time, this will download vggface modelimg_path='sample_image.jpg'celeb_detector.celeb_recognition(img_path)# on running for the first time, 2 files (celeb_mapping.json and celeb_index_60.ann) will downloaded to the home directory# if you want to use an image url, just provide the url and add url=Trueurl='https://sample/sample_image_url.jpg'celeb_detector.celeb_recognition(url,url=True)

    这将返回一个字典列表,每个字典包含bbox坐标、名人姓名和在图像中检测到的每个人脸的可信度(如果没有检测到匹配的人脸,则名人姓名将是未知的)。在

  • 要使用您自己的自定义模型,还需要提供json和ann文件的路径,如下所示:

    importceleb_detectorimg_path='sample_image.jpg'ann_path='sample_index.ann'celeb_map='sample_mapping.json'celeb_detector.celeb_recognition(img_path,ann_path,celeb_map)
  • 创建您自己的模型(有关用法的详细信息,请参阅this),并按如下方式运行:

    importceleb_detectorfolder_path='celeb_images'celeb_detector.create_celeb_model(folder_path)

创建你自己的名人模型

  • 在以下目录结构中创建名人数据集:
    celeb_images/
        celeb-a/
            celeb-a_1.jpg
            celeb-a_2.jpg
            ...
        celeb-b/
            celeb-b_1.jpg
            celeb-b_1.jpg
            ...
        ...
    
  • 每个文件夹名称都将被视为模型对应的名人名(警告:名称中不要提供任何特殊字符或空格)。在
  • 确保每个图像只有一张脸(所需的名人),如果有多张脸,则只考虑第一张检测到的脸。在
  • 提供create_celeb_model.py文件中数据集文件夹(例如,celeb_images文件夹)的路径。在
  • 运行create_celeb_model.py文件。在
  • 成功完成代码后,我们得到celeb_mapping.json(用于存储索引与名人姓名)、celeb_index.ann(用于搜索编码的ann文件)和{}文件(用于存储每个名人的编码与索引)。 (警告:您需要提供存储这些文件的路径,默认情况下存储在当前目录中)

jupyter模型预测

  • 提供celeb_recognition.ipynb文件中celeb_mapping.jsonceleb_index.ann文件的路径。如果你想试试我的模型,忽略这一步。在
  • 运行celeb_recognition.ipynb文件中的所有单元格,最终单元格将提供用于上载图像和进行预测的小部件 (这也将下载必要的模型文件)。在
  • 注意:celeb_recognition.ipynb是一个独立文件,运行时不需要来自repo的任何其他文件。在

python中的模型预测

  • 提供celeb_recognition.pyceleb_utils.py文件中celeb_mapping.jsonceleb_index.ann文件的路径。如果你想试试我的模型,忽略这一步。在
  • 运行celeb_recognition.py文件,提供文件中图像的路径。在
  • 输出包括已识别的面、边界框和预测的名人姓名(如果找不到,则未知)。在
  • 它还显示带有边界框的输出。在

示例图像输出

Image

粘合剂

单击以下链接可以运行活页夹应用程序:

Binder

{a1vo7}你也可以通过点击图片绑定器来上传图片。在

谷歌Colab

要在google colab中打开并运行celeb_recognition.ipynb文件,请单击以下链接:

Open In Colab

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX SwingWorker等价物?   java如何检查一个字符串只包含数字和一个小数点?   java遇到了异常组织。阿帕奇。卡塔琳娜。LifecycleException:无法启动组件   java如何从日期格式获取最低计时单位?   java应用服务器与开发过程的集成   java我无法运行Junit测试   无法在java多线程处理中维护生产者任务的顺序   java如何在CLI应用程序中“拦截”Ctrl+C?   java如何使用JSch进行原子SFTP文件传输,以便在写入过程完成之前无法访问该文件?   java当用户摆弄html范围滑块时,如何更改内容(文本)?   如何在Java中向现有文件追加文本?   JUnit测试中的java模拟Apache驼峰位置   java Maven更新项目和依赖项