Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
ONBON預約禮包(10.24之前):https://www.wanyx.com/shoujigonglue/355388.html
七天連續簽到禮包(長期):https://www.wanyx.com/shoujigonglue/355341.html
每周登錄禮包(長期):https://www.wanyx.com/shoujigonglue/355298.html
國慶節Q幣禮包(10.26之前):https://www.wanyx.com/shoujigonglue/355180.html
每日星幣禮包(長期):https://www.wanyx.com/shoujigonglue/355053.html
4399首發禮包(長期):https://www.wanyx.com/shoujigonglue/355056.html
微信禮包(長期):https://www.wanyx.com/shoujigonglue/354953.html
新手禮包(長期):https://www.wanyx.com/shoujigonglue/354950.html
QQ瀏覽器禮包(10.30之前):https://www.wanyx.com/shoujigonglue/354945.html
隨著科技的進步,人臉識別技術已經深入到各個領域中。在教育、企業、會議等場合,傳統的簽到方式如手工簽名、刷卡等存在諸多問題,如容易丟失、容易被偽造等。因此,人臉識別簽到系統應運而生,為各類場合提供了更加便捷、高效的簽到方式。這種簽到方式不僅方便快捷,而且安全性更高,能夠有效地避免傳統簽到方式的弊端。基于人臉識別的簽到系統是利用WEB框架做人員管理,注冊錄入相關人員的信息,再利用攝像機采集現成人臉的靜態圖像,并通過定點方式檢測人臉特征中的關鍵信息,把所有信息存儲到數據庫中,最后用QT界面再終端進行人臉識別用同樣的算法識別人臉并和數據庫中的人臉信息進行比對,來判斷參會人員是否為注冊人員。如果識別成功,系統將自動完成簽到操作并將簽到記錄存儲在數據庫中。
后臺:django
前端: html javascript
數據庫:mysql
人臉檢測算法:dlib
人臉模型算法: 卷積神經FACENET(pytorch、tensorflow實現)
用戶表:
簽到記錄表:
話不多說,以下是部分實施過程,篇幅有限,有興趣的朋友可私信找我要項目全部代碼或者根據需要定制你想要的系統:
1.安裝Django。您可以在終端或命令提示符下使用以下命令安裝最新版本的Django:
pip install django
#安裝'pymysql
pip install pymysql
2.創建Django項目。在終端或命令提示符下,轉到要創建項目的目錄,并運行以下命令:
#其中,“HuiChang”是您想要為項目選擇的名稱。
#此命令將創建一個名為“HuiChang”的新目錄,
#并在其中創建一個名為“manage.py”的文件。
django-admin startproject HuiChang
3.創建應用程序。應用程序是Django項目的組成部分,每個應用程序都可以包含特定于該應用程序的視圖、模板和模型。在項目目錄中運行以下命令以創建新的應用程序
#其中,“app_huichang”是您想要為應用程序選擇的名稱。
#此命令將創建一個名為“app_huichang”的新目錄,
#并在其中創建一個名為“models.py”的文件。
python manage.py startapp app_huichang
4.配置mysql數據庫。Django使用默認的SQLite數據庫配置。在“settings.py”文件中,確保DATABASES設置為以下內容:
# mysql 配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'douban',
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
'TEST':{
'CHARSET':'utf8',
'COLLATION':'utf8_general_ci'
},
}
}
5.數據庫創建
用戶權限表:
在app_huichang的新目錄里打開models.py,創建一個User、Role、Permission類,分別是用戶信息表、身份表、權限表。定義數據庫相關字段:
# 創建用戶表
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='會場', default="")
zuowei=models.CharField(max_length=32, verbose_name='座位',default="")
face_encoding=models.CharField(max_length=5000, verbose_name='人臉信息',default="")
# 與身份表的多對多外鍵字段,假設可以跨身份,跨部門
roles = models.ManyToManyField(to='Role')
def __str__(self):
return self.name
# 創建身份表
class Role(models.Model):
title = models.CharField(max_length=32, verbose_name='身份名稱')
# 和權限表的多對多關系字段,一個身份可以有多個權限,一個權限也可以被多個身份擁有
permissions = models.ManyToManyField(to='Permission')
def __str__(self):
return self.title
# 創建權限表
class Permission(models.Model):
name = models.CharField(max_length=32, verbose_name='權限名稱')
url = models.CharField(max_length=32, verbose_name='權限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='會場', default="")
zuowei = models.CharField(max_length=32, verbose_name='座位', default="")
Time= models.DateTimeField('簽到時間')
biaoshi=models.CharField(max_length=32, verbose_name='遲到標志', default="")
6.在模型文件中定義完類后,需要配置模型,在項目的配置文件setting.py中修改INSTALLED_APPS 中添加應用名稱"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文件中配置在后臺顯示的數據模型字段
admin.site.register(User)
admin.site.register(Role)
admin.site.register(Permission)
7.運行遷移。在終端或命令提示符下,進入項目目錄,并運行以下命令以創建數據庫表格:
python manage.py makemigrations app_huichang
python manage.py migrate
創建超級管理員來修改用戶權限:
8.注冊功能:
<div class="auth-form-light text-left py-5 px-4 px-sm-5">
<div class="brand-logo">
<h1>人臉簽到系統</h1>
</div>
<h4>賬號注冊</h4>
<h6 class="font-weight-light">請輸入相關信息</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="賬號" 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="參會證號" 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="會場名" 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="座位號" 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="重復密碼">
{{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">注冊</button>
</div>
<div class="text-center mt-4 font-weight-light">
已有賬號? <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>人臉簽到系統</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="賬號">
</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">
沒有賬號? <a href="/register" class="text-primary">去注冊</a>
</div>
</form>
</div>
9.權限分配:
10.主頁面:
普通權限:
管理權限:
11.前端識別程序UI設計:
12.簽到記錄:
12.修改信息頁面:
1.啟動django系統出現報錯:
解決方法:
pip install mysqlclient
安裝失敗:
經過多方查詢,最終解決方法為:
#項目(settings.py同級)目錄中__init__.py中添加
import pymysql
pymysql.install_as_MySQLdb()
2.注冊上傳人臉圖片報錯:
解決方法:更改上傳圖片文件路徑
3.上傳人臉圖片報錯:
原因:CascadeClassifier的文件路徑錯誤
近因為需要天津濱海新區的人口數據,看一看人口密度,了解哪些商圈聚集的人氣最多,哪些居民區的常住人口最多,哪些重要的休閑娛樂地點是人們常去的。但是戶籍人口在公安局,常住人口在街道,流動人口想要得到更是千難萬難。很多時候苦于沒有數據,就只能從公開數據下手。幸好生在互聯網時代,運營商手機信令數據,公交卡數據,社交軟件數據等提供了更多的選擇。本文就介紹一下微博簽到數據如何獲取,直接說思路:
(1)注冊微博開放平臺。登陸微博開放平臺http://open.weibo.com/,當然你先要有一個微博賬號,完善開發者信息。通過審核后,進入微連接-網站接入,公司開發者可以使用微服務-粉絲服務(以前個人開發者也可以,現在提示“個人開發者只可創建微連接應用,不可創建微服務應用”),創建應用,然后在我的應用-接口管理-授權機制中,編輯“OAuth2.0 授權設置”,兩項都可以設置為https://api.weibo.com/oauth2/default.html。這樣,我們就可以在應用信息中找到App Key和App Secret,在爬蟲中會用到。
(2)第二步,就是編寫爬蟲獲取坐標位置周邊的簽到數據。首先引用的庫中有一個微博的python SDK,可以在http://open.weibo.com/wiki/SDK下載。 引用的庫,以及微博開放平臺key
爬取數據部分,主要包含兩塊,一塊是獲取坐標周邊微博POI信息,用到了place.nearby.pois接口;一塊是查詢每個POI的簽到數,用到了place.pois.show接口。具體如下:
獲取坐標周邊的微博POI列表
獲取每個POI的當日簽到數
運行函數
獲取的數據是json格式,提取數據十分方便。建議大家看看微博API各個接口的介紹,上面有參數和返回結果的示例。不過微博API接口文檔最近好像有了改版,位置相關接口的介紹找不到了,但是我試了一下接口仍然可以用。
(3)那么小伙伴們就會問,我只知道我想查詢的地點的名稱,不知道坐標怎么辦呢,那就需要用到高德開發平臺(http://lbs.amap.com/),為什么不用百度的呢,因為微博開放平臺的坐標系用的就是高德的。高德開放平臺的坐標拾取工具(http://lbs.amap.com/console/show/picker)可以按地址名稱查詢坐標。
如果需要大批量的獲取地名的坐標,還可以通過高德開放平臺的API批量獲取地名的坐標,獲取POI數據,這個我們將在下一篇文章分享。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。