trphoenix
2025-09-30 ddedaacd4ec684502afa91708ac5129f8101e5f5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
<!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">&para;</a></h1>
<h2 id="1">1. 简介<a class="headerlink" href="#1" title="Permanent link">&para;</a></h2>
<p>DLIB是一个现代C++工具包,包含机器学习算法和工具,用于创建复杂的软件以解决现实世界中的问题。它在计算机视觉领域尤为出色,尤其是在面部识别任务中表现优异。DLIB的人脸识别功能基于深度学习技术,能够高效地检测和识别人脸。
本程序利用DLIB的强大功能,提供一个基于Python的简单人脸识别服务。用户可以通过HTTP请求上传图像,服务将返回图像中检测到的人脸信息。</p>
<h2 id="2">2. 环境准备<a class="headerlink" href="#2" title="Permanent link">&para;</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">&para;</a></h2>
<h3 id="31">3.1 安装依赖项<a class="headerlink" href="#31" title="Permanent link">&para;</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">&para;</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">&para;</a></h3>
<p>先在项目根目录创建一个<code>requirements.txt</code>文件,内容如下:</p>
<div class="codehilite"><pre><span></span><code>dlib&gt;=19.22.0
numpy&gt;=1.19.0
opencv-python&gt;=4.5.0
Pillow&gt;=8.0.0
scikit-image&gt;=0.18.0
pandas&gt;=1.2.0
simplejson&gt;=3.17.0
fastapi&gt;=0.104.0
uvicorn&gt;=0.24.0
python-multipart&gt;=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">&para;</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">&para;</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">&para;</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">&amp;</span>
</code></pre></div>
 
<p>这样,服务将继续在后台运行,日志信息将被写入<code>nohup.out</code>文件中。</p>
<h3 id="37">3.7 停止服务<a class="headerlink" href="#37" title="Permanent link">&para;</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>&lt;PID&gt;
</code></pre></div>
 
<p>将<code>&lt;PID&gt;</code>替换为实际的进程ID。</p>
<h3 id="38-services">3.8 以services方式运行<a class="headerlink" href="#38-services" title="Permanent link">&para;</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">&para;</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">&para;</a></h3>
<p>现在,您可以通过浏览器或API客户端访问人脸识别服务:
<code>http://&lt;your_server_ip&gt;:12316</code>
将<code>&lt;your_server_ip&gt;</code>替换为服务器的实际IP地址。      </p>
<h2 id="4">4. 总结<a class="headerlink" href="#4" title="Permanent link">&para;</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>