基于Docker的交互式人脸识别应用

本文详述如何构建一个使用Tkinter GUI、Docker和人脸识别框架的交互式应用程序,通过摄像头进行实时人脸识别。通过Docker实现环境隔离,确保所有依赖项。文章涵盖环境设置、Dockerfile构建、Tkinter界面设计、OpenCV捕获摄像头图像及人脸识别算法的实现。读者可以按照指南创建自己的人脸识别应用。
摘要由CSDN通过智能技术生成

7ca008f8c0efaa871a26faffd5b73c70.png

本文将介绍如何开发一个交互式应用程序,利用Adam Geitgey的人脸识别框架,从摄像头或网络摄像头设备识别人脸。

为了创建一个交互式应用程序,我们将使用Tkinter,Docker将用于确保一个包含所有必要依赖项的隔离环境。本文可以作为你自己项目的起点,因为使用哪些框架和库并不重要。

了解如何通过Docker创建一个利用摄像头设备、GPU加速和深度学习框架的交互式应用程序有很多可能性。

如果只希望通过Docker运行GUI,我创建了本文,你可以按照以下内容进行操作:

https://towardsdatascience.com/empowering-docker-using-tkinter-gui-bf076d9e4974


如果你想立即运行应用程序,可以下载我的Github存储库,并按照本文末尾的“运行应用程序”部分进行操作。

阅读教程

在本文中,将介绍应用程序中的脚本,之后将介绍运行应用程序的教程。文章将按照以下顺序进行。

目录
  1. 环境

  2. 应用程序概述

  3. Docker

  4. 编程

  5. 摄像设备

  6. 计算机视觉

  7. Shell脚本

  8. 运行应用程序

  9. 结论


环境

此应用程序仅使用Linux进行了测试,但是,它的工作原理应该与其他操作系统类似,其中一些参数可能不同,例如在运行Docker时。

对于先决条件,你应该安装摄像头或网络摄像头、Docker、CUDA和CuDNN。我已使用以下方法测试了应用程序:

  • Docker 20.10.8

  • CUDA 11.4

  • CuDNN 8.2.2

  • OS:Manjaro 21.1.2 Phavo

  • GPU:NVIDIA GeForce GTX 1080 Ti

  • 摄像头设备:罗技网络摄像头C930e

目录结构

本项目的目录结构如下所示。你可以事先创建这些文件,或者直接从我的Github存储库下载所有文件。

此外,你需要在dataset目录中创建自己的目录,并插入所需的图像。在我的例子中,如下所示,我在Kasper目录中添加了四个图像。你在不同场景中为同一个人添加的图像越多,你的预测就越可靠。关于脚本,本文将介绍它们的内容。

注意:encodings.pkl将在以后自动生成。

应用程序的目录结构:

9a78ced965bd5269b3a7ab1e3064996e.png


应用程序概述

该应用程序包含一个GUI,其中有一个用于显示相机设备输出的面板。此外,还有一个用于激活/禁用人脸识别的按钮。

当前打开人脸识别的应用程序。

b2fa9fe73d6342d3e089000a7281efaa.png


Docker

为了创建一个安装人脸识别、OpenCV、Dlib、Python等的隔离环境,使用了以下Docker代码。

Dockerfile创建隔离环境:

FROM nvidia/cuda:11.4.1-cudnn8-devel-ubuntu20.04

ARG DEBIAN_FRONTEND=noninteractive

# Install dependencies
RU
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值