整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          全網(wǎng)最齊的家國(guó)夢(mèng)禮包鏈接

          ONBON預(yù)約禮包(10.24之前):https://www.wanyx.com/shoujigonglue/355388.html

          七天連續(xù)簽到禮包(長(zhǎng)期):https://www.wanyx.com/shoujigonglue/355341.html

          每周登錄禮包(長(zhǎng)期):https://www.wanyx.com/shoujigonglue/355298.html

          國(guó)慶節(jié)Q幣禮包(10.26之前):https://www.wanyx.com/shoujigonglue/355180.html

          每日星幣禮包(長(zhǎng)期):https://www.wanyx.com/shoujigonglue/355053.html

          4399首發(fā)禮包(長(zhǎng)期):https://www.wanyx.com/shoujigonglue/355056.html

          微信禮包(長(zhǎng)期):https://www.wanyx.com/shoujigonglue/354953.html

          新手禮包(長(zhǎng)期):https://www.wanyx.com/shoujigonglue/354950.html

          QQ瀏覽器禮包(10.30之前):https://www.wanyx.com/shoujigonglue/354945.html

          隨著科技的進(jìn)步,人臉識(shí)別技術(shù)已經(jīng)深入到各個(gè)領(lǐng)域中。在教育、企業(yè)、會(huì)議等場(chǎng)合,傳統(tǒng)的簽到方式如手工簽名、刷卡等存在諸多問題,如容易丟失、容易被偽造等。因此,人臉識(shí)別簽到系統(tǒng)應(yīng)運(yùn)而生,為各類場(chǎng)合提供了更加便捷、高效的簽到方式。這種簽到方式不僅方便快捷,而且安全性更高,能夠有效地避免傳統(tǒng)簽到方式的弊端。基于人臉識(shí)別的簽到系統(tǒng)是利用WEB框架做人員管理,注冊(cè)錄入相關(guān)人員的信息,再利用攝像機(jī)采集現(xiàn)成人臉的靜態(tài)圖像,并通過(guò)定點(diǎn)方式檢測(cè)人臉特征中的關(guān)鍵信息,把所有信息存儲(chǔ)到數(shù)據(jù)庫(kù)中,最后用QT界面再終端進(jìn)行人臉識(shí)別用同樣的算法識(shí)別人臉并和數(shù)據(jù)庫(kù)中的人臉信息進(jìn)行比對(duì),來(lái)判斷參會(huì)人員是否為注冊(cè)人員。如果識(shí)別成功,系統(tǒng)將自動(dòng)完成簽到操作并將簽到記錄存儲(chǔ)在數(shù)據(jù)庫(kù)中。


          框架

          后臺(tái):django

          前端: html javascript

          數(shù)據(jù)庫(kù):mysql

          人臉檢測(cè)算法:dlib

          人臉模型算法: 卷積神經(jīng)FACENET(pytorch、tensorflow實(shí)現(xiàn))

          流程圖

          數(shù)據(jù)庫(kù)

          用戶表:

          簽到記錄表:


          話不多說(shuō),以下是部分實(shí)施過(guò)程,篇幅有限,有興趣的朋友可私信找我要項(xiàng)目全部代碼或者根據(jù)需要定制你想要的系統(tǒng)

          實(shí)現(xiàn)過(guò)程

          1.安裝Django。您可以在終端或命令提示符下使用以下命令安裝最新版本的Django:

          pip install django
          #安裝'pymysql
          pip install pymysql

          2.創(chuàng)建Django項(xiàng)目。在終端或命令提示符下,轉(zhuǎn)到要?jiǎng)?chuàng)建項(xiàng)目的目錄,并運(yùn)行以下命令:

          #其中,“HuiChang”是您想要為項(xiàng)目選擇的名稱。
          #此命令將創(chuàng)建一個(gè)名為“HuiChang”的新目錄,
          #并在其中創(chuàng)建一個(gè)名為“manage.py”的文件。
          
          django-admin startproject HuiChang

          3.創(chuàng)建應(yīng)用程序。應(yīng)用程序是Django項(xiàng)目的組成部分,每個(gè)應(yīng)用程序都可以包含特定于該應(yīng)用程序的視圖、模板和模型。在項(xiàng)目目錄中運(yùn)行以下命令以創(chuàng)建新的應(yīng)用程序

          #其中,“app_huichang”是您想要為應(yīng)用程序選擇的名稱。
          #此命令將創(chuàng)建一個(gè)名為“app_huichang”的新目錄,
          #并在其中創(chuàng)建一個(gè)名為“models.py”的文件。
          
          python manage.py startapp app_huichang

          4.配置mysql數(shù)據(jù)庫(kù)。Django使用默認(rèn)的SQLite數(shù)據(jù)庫(kù)配置。在“settings.py”文件中,確保DATABASES設(shè)置為以下內(nèi)容:

          # mysql 配置
          DATABASES = {
              'default': {
                  'ENGINE': 'django.db.backends.mysql',
                  'NAME': 'douban',
                  'USER': '',
                  'PASSWORD': '',
                  'HOST': '',
                  'PORT': '',
                  'TEST':{
                      'CHARSET':'utf8',
                      'COLLATION':'utf8_general_ci'
                  },
              }
          }

          5.數(shù)據(jù)庫(kù)創(chuàng)建

          用戶權(quán)限表:

          在app_huichang的新目錄里打開models.py,創(chuàng)建一個(gè)User、Role、Permission類,分別是用戶信息表、身份表、權(quán)限表。定義數(shù)據(jù)庫(kù)相關(guān)字段:

          # 創(chuàng)建用戶表
          class User(models.Model):
              name = models.CharField(max_length=32, verbose_name='用戶名稱')
              password = models.CharField(verbose_name='密碼',max_length=64,default="")
              number = models.IntegerField(default=0)
              huichang=models.CharField(max_length=32, verbose_name='會(huì)場(chǎng)', default="")
              zuowei=models.CharField(max_length=32, verbose_name='座位',default="")
              face_encoding=models.CharField(max_length=5000, verbose_name='人臉信息',default="")
              # 與身份表的多對(duì)多外鍵字段,假設(shè)可以跨身份,跨部門
              roles = models.ManyToManyField(to='Role')
          
              def __str__(self):
                  return self.name
          # 創(chuàng)建身份表
          class Role(models.Model):
              title = models.CharField(max_length=32, verbose_name='身份名稱')
              # 和權(quán)限表的多對(duì)多關(guān)系字段,一個(gè)身份可以有多個(gè)權(quán)限,一個(gè)權(quán)限也可以被多個(gè)身份擁有
              permissions = models.ManyToManyField(to='Permission')
          
              def __str__(self):
                  return self.title
          
          # 創(chuàng)建權(quán)限表
          class Permission(models.Model):
              name = models.CharField(max_length=32, verbose_name='權(quán)限名稱')
              url = models.CharField(max_length=32, verbose_name='權(quán)限url')
          
              def __str__(self):
                  return self.name
          
          class Userinfo(models.Model):
              first_name = models.CharField(max_length=32, verbose_name='姓')
              last_name = models.CharField(max_length=32, verbose_name='名')
              phone = models.IntegerField()
              addr = models.CharField(max_length=64, verbose_name='住址')

          簽到信息表:

          class qiandao(models.Model):
              name = models.CharField(max_length=32, verbose_name='姓')
              number = models.IntegerField(default=0)
              huichang = models.CharField(max_length=32, verbose_name='會(huì)場(chǎng)', default="")
              zuowei = models.CharField(max_length=32, verbose_name='座位', default="")
              Time= models.DateTimeField('簽到時(shí)間')
              biaoshi=models.CharField(max_length=32, verbose_name='遲到標(biāo)志', default="")
          

          6.在模型文件中定義完類后,需要配置模型,在項(xiàng)目的配置文件setting.py中修改INSTALLED_APPS 中添加應(yīng)用名稱"app_huichang"

          INSTALLED_APPS = [
              "django.contrib.admin",
              "django.contrib.auth",
              "django.contrib.contenttypes",
              "django.contrib.sessions",
              "django.contrib.messages",
              "django.contrib.staticfiles",
              'app_huichang'
          ]

          在admin.py文件中配置在后臺(tái)顯示的數(shù)據(jù)模型字段

          admin.site.register(User)
          admin.site.register(Role)
          admin.site.register(Permission)

          7.運(yùn)行遷移。在終端或命令提示符下,進(jìn)入項(xiàng)目目錄,并運(yùn)行以下命令以創(chuàng)建數(shù)據(jù)庫(kù)表格:

          python manage.py makemigrations app_huichang
          
          python manage.py migrate
          

          創(chuàng)建超級(jí)管理員來(lái)修改用戶權(quán)限:

          8.注冊(cè)功能:

            <div class="auth-form-light text-left py-5 px-4 px-sm-5">
                          <div class="brand-logo">
                                <h1>人臉簽到系統(tǒng)</h1>
                          </div>
                          <h4>賬號(hào)注冊(cè)</h4>
                          <h6 class="font-weight-light">請(qǐng)輸入相關(guān)信息</h6>
                          <form class="pt-3" action="{% url 'register' %}" method="post" enctype="multipart/form-data">
                             {% csrf_token %}
                            <div class="form-group">
                              <input type="text"  name="user" class="form-control form-control-lg" id="exampleInputUsername1" placeholder="賬號(hào)"  value="{% if form1.user.value %} {{ form1.user.value }} {% endif %}">
                              {{ form1.errors.user.0 }}
                            </div>
                            {% if errMsg %}
                            <h4>{{ errMsg }}</h4>
                             {% endif %}
                            <div class="form-group">
                              <input type="email" name="email" class="form-control form-control-lg" id="exampleInputEmail1" placeholder="郵箱" value="{% if form1.email.value %} {{ form1.email.value }} {% endif %}">
                              {{ form1.errors.email.0 }}
                            </div>
          
                            <div class="form-group">
                              <input type="text" name="number" class="form-control form-control-lg" id="exampleInputEmail1" placeholder="參會(huì)證號(hào)" value="{% if form1.number.value %} {{ form1.number.value }} {% endif %}">
                              {{ form1.errors.number.0 }}
                            </div>
                            {% if errMsg1 %}
                            <h4>{{ errMsg1 }}</h4>
                             {% endif %}
          
                              <div class="form-group">
                              <input type="text" name="Class" class="form-control form-control-lg" id="exampleInputEmail1" placeholder="會(huì)場(chǎng)名" value="{% if form1.Class.value %} {{ form1.Class.value }} {% endif %}">
                              {{ form1.errors.Class.0 }}
                            </div>
          
                              <div class="form-group">
                              <input type="text" name="sushe" class="form-control form-control-lg" id="exampleInputEmail1" placeholder="座位號(hào)" value="{% if form1.sushe.value %} {{ form1.sushe.value }} {% endif %}">
                              {{ form1.errors.sushe.0 }}
                            </div>
          
                            <div class="form-group">
                              <input type="password" name="password" class="form-control form-control-lg" id="exampleInputPassword1" placeholder="密碼">
                              {{ form1.errors.password.0 }}
                            </div>
          
                               <div class="form-group">
                              <input type="password" name="rePassword" class="form-control form-control-lg" id="exampleInputPassword2" placeholder="重復(fù)密碼">
                                 {{form1.errors.rePassword.0}}
                            </div>
          
          
                              <div class="form-group">
                                <label for="exampleInputConfirmPassword1">上傳人臉照片</label>
                                  <input type="file" name="myfile" class="form-control file-upload-info"  placeholder="Upload Image">
                                   {% if err %}
                            <h4>{{ err }}</h4>
                             {% endif %}
          
                              </div>
          
                              {% if error %}
                              <h3>{{ error }}</h3>
                               {% endif %}
                            <div class="mt-3">
          
                              <button type="submit" class="btn btn-block btn-primary btn-lg font-weight-medium auth-form-btn">注冊(cè)</button>
                            </div>
                            <div class="text-center mt-4 font-weight-light">
                              已有賬號(hào)? <a href="/login" class="text-primary">去登陸</a>
                            </div>
                          </form>
                        </div>

          8.登錄功能:

          <div class="auth-form-light text-left py-5 px-4 px-sm-5">
                          <div class="brand-logo">
                            <h2>人臉簽到系統(tǒng)</h2>
                          </div>
                          <h4>你好! 歡迎登陸</h4>
                          <h6 class="font-weight-light"></h6>
                          <form class="pt-3" action="{% url 'login' %}" method="post">
                            {% csrf_token %}
                            <div class="form-group">
                              <input type="username"  name ="username" class="form-control form-control-lg" id="exampleInputEmail1" placeholder="賬號(hào)">
                            </div>
                            <div class="form-group">
                              <input type="password" name="password" class="form-control form-control-lg" id="exampleInputPassword1" placeholder="密碼">
                            </div>
                             {% if errMsg %}
                            <h4 style="background-color: #fef0f0";>{{ errMsg.error }}</h4>
          
                             {% endif %}
                            <div class="mt-3">
                               <button type="submit" class="btn btn-block btn-primary btn-lg font-weight-medium auth-form-btn">登陸</button>
                            </div>
          
          
                            <div class="text-center mt-4 font-weight-light">
                              沒有賬號(hào)? <a href="/register" class="text-primary">去注冊(cè)</a>
                            </div>
                          </form>
                        </div>

          9.權(quán)限分配:


          10.主頁(yè)面:


          普通權(quán)限:

          管理權(quán)限:

          11.前端識(shí)別程序UI設(shè)計(jì):

          12.簽到記錄:

          12.修改信息頁(yè)面:


          出現(xiàn)問題

          1.啟動(dòng)django系統(tǒng)出現(xiàn)報(bào)錯(cuò):

          解決方法:

          pip install mysqlclient

          安裝失敗:

          經(jīng)過(guò)多方查詢,最終解決方法為:

          #項(xiàng)目(settings.py同級(jí))目錄中__init__.py中添加
          import pymysql
          pymysql.install_as_MySQLdb()

          2.注冊(cè)上傳人臉圖片報(bào)錯(cuò):

          解決方法:更改上傳圖片文件路徑

          3.上傳人臉圖片報(bào)錯(cuò):

          原因:CascadeClassifier的文件路徑錯(cuò)誤

          近因?yàn)樾枰旖驗(yàn)I海新區(qū)的人口數(shù)據(jù),看一看人口密度,了解哪些商圈聚集的人氣最多,哪些居民區(qū)的常住人口最多,哪些重要的休閑娛樂地點(diǎn)是人們常去的。但是戶籍人口在公安局,常住人口在街道,流動(dòng)人口想要得到更是千難萬(wàn)難。很多時(shí)候苦于沒有數(shù)據(jù),就只能從公開數(shù)據(jù)下手。幸好生在互聯(lián)網(wǎng)時(shí)代,運(yùn)營(yíng)商手機(jī)信令數(shù)據(jù),公交卡數(shù)據(jù),社交軟件數(shù)據(jù)等提供了更多的選擇。本文就介紹一下微博簽到數(shù)據(jù)如何獲取,直接說(shuō)思路:

          (1)注冊(cè)微博開放平臺(tái)。登陸微博開放平臺(tái)http://open.weibo.com/,當(dāng)然你先要有一個(gè)微博賬號(hào),完善開發(fā)者信息。通過(guò)審核后,進(jìn)入微連接-網(wǎng)站接入,公司開發(fā)者可以使用微服務(wù)-粉絲服務(wù)(以前個(gè)人開發(fā)者也可以,現(xiàn)在提示“個(gè)人開發(fā)者只可創(chuàng)建微連接應(yīng)用,不可創(chuàng)建微服務(wù)應(yīng)用”),創(chuàng)建應(yīng)用,然后在我的應(yīng)用-接口管理-授權(quán)機(jī)制中,編輯“OAuth2.0 授權(quán)設(shè)置”,兩項(xiàng)都可以設(shè)置為https://api.weibo.com/oauth2/default.html。這樣,我們就可以在應(yīng)用信息中找到App Key和App Secret,在爬蟲中會(huì)用到。

          (2)第二步,就是編寫爬蟲獲取坐標(biāo)位置周邊的簽到數(shù)據(jù)。首先引用的庫(kù)中有一個(gè)微博的python SDK,可以在http://open.weibo.com/wiki/SDK下載。 引用的庫(kù),以及微博開放平臺(tái)key

          爬取數(shù)據(jù)部分,主要包含兩塊,一塊是獲取坐標(biāo)周邊微博POI信息,用到了place.nearby.pois接口;一塊是查詢每個(gè)POI的簽到數(shù),用到了place.pois.show接口。具體如下:

          獲取坐標(biāo)周邊的微博POI列表

          獲取每個(gè)POI的當(dāng)日簽到數(shù)

          運(yùn)行函數(shù)

          獲取的數(shù)據(jù)是json格式,提取數(shù)據(jù)十分方便。建議大家看看微博API各個(gè)接口的介紹,上面有參數(shù)和返回結(jié)果的示例。不過(guò)微博API接口文檔最近好像有了改版,位置相關(guān)接口的介紹找不到了,但是我試了一下接口仍然可以用。

          (3)那么小伙伴們就會(huì)問,我只知道我想查詢的地點(diǎn)的名稱,不知道坐標(biāo)怎么辦呢,那就需要用到高德開發(fā)平臺(tái)(http://lbs.amap.com/),為什么不用百度的呢,因?yàn)槲⒉╅_放平臺(tái)的坐標(biāo)系用的就是高德的。高德開放平臺(tái)的坐標(biāo)拾取工具(http://lbs.amap.com/console/show/picker)可以按地址名稱查詢坐標(biāo)。

          如果需要大批量的獲取地名的坐標(biāo),還可以通過(guò)高德開放平臺(tái)的API批量獲取地名的坐標(biāo),獲取POI數(shù)據(jù),這個(gè)我們將在下一篇文章分享。


          主站蜘蛛池模板: 狠狠色婷婷久久一区二区三区| 日韩一区二区三区无码影院| 天堂国产一区二区三区| 亚洲国产精品一区二区成人片国内| 色欲AV蜜臀一区二区三区| 国产精品一区二区av不卡| 97精品国产一区二区三区| 亚洲日韩一区二区一无码| 精品无码综合一区| 亚洲熟妇AV一区二区三区浪潮| 无码精品久久一区二区三区 | 亚洲V无码一区二区三区四区观看| 国产乱人伦精品一区二区| 大伊香蕉精品一区视频在线| 中文字幕在线不卡一区二区| 久久久久一区二区三区| 日本一区午夜爱爱| 韩国精品一区视频在线播放| 日韩精品中文字幕无码一区 | 加勒比无码一区二区三区| 无码国产精品一区二区免费vr| 精品一区二区三区水蜜桃| 日本福利一区二区| 欧美日本精品一区二区三区| 男女久久久国产一区二区三区| 伊人久久精品无码av一区| 久久精品国产一区二区| 激情内射亚州一区二区三区爱妻| 国产伦精品一区二区三区免.费 | 精品人妻一区二区三区四区| 濑亚美莉在线视频一区| 亚洲欧美国产国产综合一区| 亚洲日韩AV一区二区三区中文| 韩国福利一区二区美女视频| 在线观看国产一区二三区| 在线成人一区二区| 成人精品一区二区三区校园激情| 毛片一区二区三区无码| 日本一区二区三区久久| 一区二区三区观看| 国产一区二区在线视频|