<!DOCTYPE html>
|
<html class="writer-html5" lang="en" >
|
<head>
|
<meta charset="utf-8" />
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="author" content="岱特智能科技(上海)有限公司" />
|
<link rel="shortcut icon" href="../../../img/favicon.ico" />
|
<title>基于DLIB的人脸识别服务-手工部署说明 - DT-HA</title>
|
<link rel="stylesheet" href="../../../css/theme.css" />
|
<link rel="stylesheet" href="../../../css/theme_extra.css" />
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
|
|
<script>
|
// Current page data
|
var mkdocs_page_name = "\u57fa\u4e8eDLIB\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1-\u624b\u5de5\u90e8\u7f72\u8bf4\u660e";
|
var mkdocs_page_input_path = "Usages\\QA\\\u57fa\u4e8eDLIB\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1-\u624b\u5de5\u90e8\u7f72\u8bf4\u660e.md";
|
var mkdocs_page_url = null;
|
</script>
|
|
<!--[if lt IE 9]>
|
<script src="../../../js/html5shiv.min.js"></script>
|
<![endif]-->
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
|
<script>hljs.highlightAll();</script>
|
</head>
|
|
<body class="wy-body-for-nav" role="document">
|
|
<div class="wy-grid-for-nav">
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
|
<div class="wy-side-scroll">
|
<div class="wy-side-nav-search">
|
<a href="../../.." class="icon icon-home"> DT-HA
|
</a><div role="search">
|
<form id ="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
|
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
|
</form>
|
</div>
|
</div>
|
|
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
<ul>
|
<li class="toctree-l1"><a class="reference internal" href="../../..">首页</a>
|
</li>
|
</ul>
|
<ul>
|
<li class="toctree-l1"><a class="reference internal" href="../../../about/">关于</a>
|
</li>
|
</ul>
|
<p class="caption"><span class="caption-text">使用教程</span></p>
|
<ul>
|
<li class="toctree-l1"><a class="reference internal" href="../../../install-guide/installHa/">安装</a>
|
</li>
|
<li class="toctree-l1"><a class="reference internal" >使用</a>
|
<ul>
|
<li class="toctree-l2"><a class="reference internal" href="../../usage/">使用概述</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../../netconfig/netconfig/">配置网络</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../../initConfig/initConfig/">系统初始化配置</a>
|
</li>
|
</ul>
|
</li>
|
<li class="toctree-l1"><a class="reference internal" >Q/A</a>
|
<ul>
|
<li class="toctree-l2"><a class="reference internal" href="../%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/">透析中心HA环境温度发送到胜透的操作指南</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../errorsQA/">errorsQA</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../HA-%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E7%8A%B6%E6%80%81%E5%8F%8D%E8%BD%AC/">HA-如何实现状态反转</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/">TS88透析机联机通信-中文版</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/">VMware-ESXi扩展HomeAssistant硬盘指南</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/">如何集成和风天气组件到HA</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E5%8E%95%E9%A3%8E%E9%99%A9-%E4%BA%BA%E5%AD%98%E5%9C%A8%E4%BC%A0%E6%84%9F%E5%99%A8%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95/">如厕风险-人存在传感器配置方法</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../ubunte-desktop%E6%A1%8C%E9%9D%A2%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E5%8D%8F%E5%8A%A9/">Ubuntu-desktop桌面系统如何配置开启远程协助</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/">如何离线安装Docker(ubuntu24.04)</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/">如何在线Docker一键安装HomeAssistant</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/">如何离线Docker一键安装HomeAssistant</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/">基于Docker的方式安装HomeAssistant</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2frpc%E6%9C%8D%E5%8A%A1/">如何快速部署frpc服务</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/">windows不能访问HA的共享配置目录的解决办法</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a>
|
</li>
|
</ul>
|
</li>
|
</ul>
|
<p class="caption"><span class="caption-text">其它教程</span></p>
|
<ul>
|
<li class="toctree-l1"><a class="reference internal" >Node-red相关</a>
|
<ul>
|
<li class="toctree-l2"><a class="reference internal" href="../../../node-reds/%E5%AE%89%E8%A3%85node-red%E8%AE%B0%E5%BD%95/">安装node-red记录</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../../../node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/">如何把node-red安装到orangepiZero</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../../../node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/">ModbusPoll-v7.0.0使用教程</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../../../node-reds/node-red%E5%B8%B8%E7%94%A8%E7%BB%84%E4%BB%B6%E5%88%97%E8%A1%A8/">node-red常用组件列表</a>
|
</li>
|
<li class="toctree-l2"><a class="reference internal" href="../../../node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/">node-red如何连接modbus _slave设备</a>
|
</li>
|
</ul>
|
</li>
|
</ul>
|
</div>
|
</div>
|
</nav>
|
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
<a href="../../..">DT-HA</a>
|
|
</nav>
|
<div class="wy-nav-content">
|
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
|
<ul class="wy-breadcrumbs">
|
<li><a href="../../.." class="icon icon-home" aria-label="Docs"></a></li>
|
<li class="breadcrumb-item active">基于DLIB的人脸识别服务-手工部署说明</li>
|
<li class="wy-breadcrumbs-aside">
|
</li>
|
</ul>
|
<hr/>
|
</div>
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
<div class="section" itemprop="articleBody">
|
|
<h1 id="dlib-">基于DLIB的人脸识别服务-手工部署说明<a class="headerlink" href="#dlib-" title="Permanent link">¶</a></h1>
|
<h2 id="1">1. 简介<a class="headerlink" href="#1" title="Permanent link">¶</a></h2>
|
<p>DLIB是一个现代C++工具包,包含机器学习算法和工具,用于创建复杂的软件以解决现实世界中的问题。它在计算机视觉领域尤为出色,尤其是在面部识别任务中表现优异。DLIB的人脸识别功能基于深度学习技术,能够高效地检测和识别人脸。
|
本程序利用DLIB的强大功能,提供一个基于Python的简单人脸识别服务。用户可以通过HTTP请求上传图像,服务将返回图像中检测到的人脸信息。</p>
|
<h2 id="2">2. 环境准备<a class="headerlink" href="#2" title="Permanent link">¶</a></h2>
|
<p>在开始之前,请确保您的系统满足以下要求:</p>
|
<ul>
|
<li>操作系统:Linux(推荐使用Ubuntu)</li>
|
<li>Python版本:3.10及以上</li>
|
<li>必要的Python库:dlib, Flask, numpy, opencv-python</li>
|
<li>CMake(用于编译dlib)</li>
|
<li>编译工具链(如g++)</li>
|
</ul>
|
<h2 id="3">3. 安装步骤<a class="headerlink" href="#3" title="Permanent link">¶</a></h2>
|
<h3 id="31">3.1 安装依赖项<a class="headerlink" href="#31" title="Permanent link">¶</a></h3>
|
<p>首先,确保系统包是最新的:</p>
|
<div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>apt-get<span class="w"> </span>update
|
sudo<span class="w"> </span>apt-get<span class="w"> </span>upgrade
|
</code></pre></div>
|
|
<p>安装必要的依赖项:</p>
|
<div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>build-essential<span class="w"> </span>cmake<span class="w"> </span>libboost-all-dev<span class="w"> </span>libx11-dev<span class="w"> </span>libopenblas-dev<span class="w"> </span>liblapack-dev<span class="w"> </span>python3.12-venv
|
</code></pre></div>
|
|
<h3 id="32-python">3.2 创建Python虚拟环境<a class="headerlink" href="#32-python" title="Permanent link">¶</a></h3>
|
<p>创建并激活一个新的Python虚拟环境:名称为face-dt</p>
|
<div class="codehilite"><pre><span></span><code>python3<span class="w"> </span>-m<span class="w"> </span>venv<span class="w"> </span>face-dt
|
<span class="nb">source</span><span class="w"> </span>face-dt/bin/activate
|
</code></pre></div>
|
|
<h3 id="33-python">3.3 安装Python库<a class="headerlink" href="#33-python" title="Permanent link">¶</a></h3>
|
<p>先在项目根目录创建一个<code>requirements.txt</code>文件,内容如下:</p>
|
<div class="codehilite"><pre><span></span><code>dlib>=19.22.0
|
numpy>=1.19.0
|
opencv-python>=4.5.0
|
Pillow>=8.0.0
|
scikit-image>=0.18.0
|
pandas>=1.2.0
|
simplejson>=3.17.0
|
fastapi>=0.104.0
|
uvicorn>=0.24.0
|
python-multipart>=0.0.6
|
</code></pre></div>
|
|
<p>然后运行以下命令安装这些库:</p>
|
<div class="codehilite"><pre><span></span><code>pip<span class="w"> </span>install<span class="w"> </span>-r<span class="w"> </span>requirements.txt
|
</code></pre></div>
|
|
<p>系统会自安装程序所需要的所有依赖库,其中,dlib的安装可能需要一些时间,请耐心等待,不要中途终止。
|
根据计算机的配置不同,dlib的安装时间可能会有所不同,通常在几分钟到十几分钟不等。
|
<img alt="" src="https://qncdn.tairongkj.com/docs/images/20250929103043.png" />
|
安装完成后如下图所示:
|
<img alt="" src="https://qncdn.tairongkj.com/docs/images/20250929103931.png" /></p>
|
<h3 id="34">3.4 下载项目所需要的库与文件<a class="headerlink" href="#34" title="Permanent link">¶</a></h3>
|
<p>先创项目所需要的目录,在项目的根目录下运行:</p>
|
<div class="codehilite"><pre><span></span><code>mkdir<span class="w"> </span>-p<span class="w"> </span>data/data_dlib
|
mkdir<span class="w"> </span>-p<span class="w"> </span>data/db
|
mkdir<span class="w"> </span>-p<span class="w"> </span>data/data_faces_from_camera
|
|
sudo<span class="w"> </span>chmod<span class="w"> </span>-R<span class="w"> </span><span class="m">777</span><span class="w"> </span>./**
|
</code></pre></div>
|
|
<p>然后下载所需要的文件:</p>
|
<div class="codehilite"><pre><span></span><code><span class="nb">cd</span><span class="w"> </span>data/data_dlib
|
<span class="c1"># 下载人脸关键点预测模型</span>
|
wget<span class="w"> </span>https://datacdn.data-it.tech/faceRec/face-dt/shape_predictor_68_face_landmarks.dat
|
<span class="c1"># 下载人脸识别模型</span>
|
wget<span class="w"> </span>https://datacdn.data-it.tech/faceRec/face-dt/dlib_face_recognition_resnet_model_v1.dat
|
</code></pre></div>
|
|
<p>然后,回到项目根目录内,下载本项目的代码文件::</p>
|
<div class="codehilite"><pre><span></span><code><span class="c1"># 回到项目根目录</span>
|
<span class="nb">cd</span><span class="w"> </span>../../
|
wget<span class="w"> </span>https://datacdn.data-it.tech/faceRec/face-dt/FaceRecognitionServer_fastapi.py
|
</code></pre></div>
|
|
<h3 id="35">3.5 运行服务<a class="headerlink" href="#35" title="Permanent link">¶</a></h3>
|
<p>在项目根目录下,运行以下命令启动人脸识别服务:</p>
|
<div class="codehilite"><pre><span></span><code>uvicorn<span class="w"> </span>FaceRecognitionServer_fastapi:app<span class="w"> </span>--host<span class="w"> </span><span class="m">0</span>.0.0.0<span class="w"> </span>--port<span class="w"> </span><span class="m">12316</span><span class="w"> </span>--workers<span class="w"> </span><span class="m">1</span>
|
</code></pre></div>
|
|
<p>去行以上命令,人脸识别服务就启动成功了,默认监听12316端口。</p>
|
<h3 id="36">3.6 以服务方式运行<a class="headerlink" href="#36" title="Permanent link">¶</a></h3>
|
<p>可以使用<code>nohup</code>命令让服务在后台运行,即使关闭终端,服务也不会停止:</p>
|
<div class="codehilite"><pre><span></span><code>nohup<span class="w"> </span>uvicorn<span class="w"> </span>FaceRecognitionServer_fastapi:app<span class="w"> </span>--host<span class="w"> </span><span class="m">0</span>.0.0.0<span class="w"> </span>--port<span class="w"> </span><span class="m">12316</span><span class="w"> </span>--workers<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="p">&</span>
|
</code></pre></div>
|
|
<p>这样,服务将继续在后台运行,日志信息将被写入<code>nohup.out</code>文件中。</p>
|
<h3 id="37">3.7 停止服务<a class="headerlink" href="#37" title="Permanent link">¶</a></h3>
|
<p>如果需要停止服务,可以使用<code>ps</code>命令找到服务的进程ID,然后使用<code>kill</code>命令终止它:</p>
|
<div class="codehilite"><pre><span></span><code>ps<span class="w"> </span>aux<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>uvicorn
|
<span class="nb">kill</span><span class="w"> </span><PID>
|
</code></pre></div>
|
|
<p>将<code><PID></code>替换为实际的进程ID。</p>
|
<h3 id="38-services">3.8 以services方式运行<a class="headerlink" href="#38-services" title="Permanent link">¶</a></h3>
|
<p>也可以将人脸识别服务配置为系统服务,以便更方便地管理它
|
创建一个新的服务文件,例如<code>/etc/systemd/system/facerec.service</code>,内容如下:</p>
|
<div class="codehilite"><pre><span></span><code><span class="k">[Unit]</span>
|
<span class="na">Description</span><span class="o">=</span><span class="s">Face Recognition Service</span>
|
<span class="na">After</span><span class="o">=</span><span class="s">network.target</span>
|
<span class="k">[Service]</span>
|
<span class="na">User</span><span class="o">=</span><span class="s">your_username</span>
|
<span class="na">WorkingDirectory</span><span class="o">=</span><span class="s">/path/to/your/project</span>
|
<span class="na">ExecStart</span><span class="o">=</span><span class="s">/path/to/your/project/face-dt/bin/uvicorn FaceRecognitionServer_fastapi:app --host 0.0.0.0 --port 12316 --workers 1</span>
|
<span class="k">[Install]</span>
|
<span class="na">WantedBy</span><span class="o">=</span><span class="s">multi-user.target</span>
|
</code></pre></div>
|
|
<p>将<code>your_username</code>替换为运行服务的用户,将<code>/path/to/your
|
/project</code>替换为项目的实际路径。
|
然后,重新加载systemd以识别新的服务文件:</p>
|
<div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>systemctl<span class="w"> </span>daemon-reload
|
</code></pre></div>
|
|
<p>启动服务:</p>
|
<div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>systemctl<span class="w"> </span>start<span class="w"> </span>facerec.service
|
</code></pre></div>
|
|
<p>启用服务,使其在系统启动时自动运行:</p>
|
<div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>systemctl<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>facerec.service
|
</code></pre></div>
|
|
<p>检查服务状态:</p>
|
<div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>systemctl<span class="w"> </span>status<span class="w"> </span>facerec.service
|
</code></pre></div>
|
|
<p>停止服务:</p>
|
<div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>systemctl<span class="w"> </span>stop<span class="w"> </span>facerec.service
|
</code></pre></div>
|
|
<p>重启服务:</p>
|
<div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>systemctl<span class="w"> </span>restart<span class="w"> </span>facerec.service
|
</code></pre></div>
|
|
<h3 id="39">3.9 防火墙配置<a class="headerlink" href="#39" title="Permanent link">¶</a></h3>
|
<p>如果服务器启用了防火墙,请确保允许12316端口的流量:</p>
|
<div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>ufw<span class="w"> </span>allow<span class="w"> </span><span class="m">12316</span>
|
sudo<span class="w"> </span>ufw<span class="w"> </span>reload
|
</code></pre></div>
|
|
<h3 id="310">3.10 访问服务<a class="headerlink" href="#310" title="Permanent link">¶</a></h3>
|
<p>现在,您可以通过浏览器或API客户端访问人脸识别服务:
|
<code>http://<your_server_ip>:12316</code>
|
将<code><your_server_ip></code>替换为服务器的实际IP地址。 </p>
|
<h2 id="4">4. 总结<a class="headerlink" href="#4" title="Permanent link">¶</a></h2>
|
<p>通过以上步骤,您已经成功手动部署了基于DLIB的人脸识别服务。您可以根据需要进一步扩展和优化该服务,以满足特定的应用需求。</p>
|
|
</div>
|
</div><footer>
|
|
<hr/>
|
|
<div role="contentinfo">
|
<!-- Copyright etc -->
|
</div>
|
|
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
</footer>
|
|
</div>
|
</div>
|
|
</section>
|
|
</div>
|
|
<div class="rst-versions" role="note" aria-label="Versions">
|
<span class="rst-current-version" data-toggle="rst-current-version">
|
|
<span>
|
<a href="http://dh.leon056.com:7499/r/Embedded/HomeAssistantPtoject.git" class="fa fa-code-fork" style="color: #fcfcfc"> Dh</a>
|
</span>
|
|
|
|
</span>
|
</div>
|
<script src="../../../js/jquery-3.6.0.min.js"></script>
|
<script>var base_url = "../../..";</script>
|
<script src="../../../js/theme_extra.js"></script>
|
<script src="../../../js/theme.js"></script>
|
<script src="../../../search/main.js"></script>
|
<script>
|
jQuery(function () {
|
SphinxRtdTheme.Navigation.enable(true);
|
});
|
</script>
|
|
</body>
|
</html>
|