Signed-off-by: sairate <sairate@sina.cn>
|
@ -6,8 +6,20 @@
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="c512d54a-7f5f-4cfb-af24-29d5821a33bf" name="更改" comment="Signed-off-by: sairate <sairate@sina.cn>">
|
<list default="true" id="c512d54a-7f5f-4cfb-af24-29d5821a33bf" name="更改" comment="Signed-off-by: sairate <sairate@sina.cn>">
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/face_database.db" beforeDir="false" afterPath="$PROJECT_DIR$/face_database.db" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/captured_faces/face_1.jpg" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/run_programs.py" beforeDir="false" afterPath="$PROJECT_DIR$/run_programs.py" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/captured_faces/face_10.jpg" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/captured_faces/face_2.jpg" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/captured_faces/face_3.jpg" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/captured_faces/face_4.jpg" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/captured_faces/face_5.jpg" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/captured_faces/face_6.jpg" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/captured_faces/face_7.jpg" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/captured_faces/face_8.jpg" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/captured_faces/face_9.jpg" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/db_image/test.jpg" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/db_image/test3.jpg" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/face_database.db" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/match_log.txt" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/scanf_face.py" beforeDir="false" afterPath="$PROJECT_DIR$/scanf_face.py" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/scanf_face.py" beforeDir="false" afterPath="$PROJECT_DIR$/scanf_face.py" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
@ -49,30 +61,30 @@
|
||||||
<option name="hideEmptyMiddlePackages" value="true" />
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
<option name="showLibraryContents" value="true" />
|
<option name="showLibraryContents" value="true" />
|
||||||
</component>
|
</component>
|
||||||
<component name="PropertiesComponent"><![CDATA[{
|
<component name="PropertiesComponent">{
|
||||||
"keyToString": {
|
"keyToString": {
|
||||||
"ASKED_ADD_EXTERNAL_FILES": "true",
|
"ASKED_ADD_EXTERNAL_FILES": "true",
|
||||||
"DefaultHtmlFileTemplate": "HTML File",
|
"DefaultHtmlFileTemplate": "HTML File",
|
||||||
"JavaScript 调试.index.html.executor": "Run",
|
"JavaScript 调试.index.html.executor": "Run",
|
||||||
"Python.add_face.executor": "Run",
|
"Python.add_face.executor": "Run",
|
||||||
"Python.app.executor": "Run",
|
"Python.app.executor": "Run",
|
||||||
"Python.match_face.executor": "Run",
|
"Python.match_face.executor": "Run",
|
||||||
"Python.run_programs.executor": "Run",
|
"Python.run_programs.executor": "Run",
|
||||||
"Python.scanf_face.executor": "Run",
|
"Python.scanf_face.executor": "Run",
|
||||||
"Python.sqlite.executor": "Run",
|
"Python.sqlite.executor": "Run",
|
||||||
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
||||||
"git-widget-placeholder": "master",
|
"git-widget-placeholder": "master",
|
||||||
"node.js.detected.package.eslint": "true",
|
"node.js.detected.package.eslint": "true",
|
||||||
"node.js.detected.package.tslint": "true",
|
"node.js.detected.package.tslint": "true",
|
||||||
"node.js.selected.package.eslint": "(autodetect)",
|
"node.js.selected.package.eslint": "(autodetect)",
|
||||||
"node.js.selected.package.tslint": "(autodetect)",
|
"node.js.selected.package.tslint": "(autodetect)",
|
||||||
"nodejs_package_manager_path": "npm",
|
"nodejs_package_manager_path": "npm",
|
||||||
"settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable",
|
"settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable",
|
||||||
"vue.rearranger.settings.migration": "true"
|
"vue.rearranger.settings.migration": "true"
|
||||||
}
|
}
|
||||||
}]]></component>
|
}</component>
|
||||||
<component name="RunManager" selected="Python.run_programs">
|
<component name="RunManager" selected="Python.run_programs">
|
||||||
<configuration name="index.html" type="JavascriptDebugType" temporary="true" nameIsGenerated="true" uri="http://localhost:63342/face/templates/index.html" useBuiltInWebServerPort="true">
|
<configuration name="index.html" type="JavascriptDebugType" temporary="true" nameIsGenerated="true" uri="http://localhost:63342/face/templates/index.html" useBuiltInWebServerPort="true">
|
||||||
<method v="2" />
|
<method v="2" />
|
||||||
|
@ -213,7 +225,8 @@
|
||||||
<workItem from="1724546711749" duration="3708000" />
|
<workItem from="1724546711749" duration="3708000" />
|
||||||
<workItem from="1724557160088" duration="579000" />
|
<workItem from="1724557160088" duration="579000" />
|
||||||
<workItem from="1724557783554" duration="5379000" />
|
<workItem from="1724557783554" duration="5379000" />
|
||||||
<workItem from="1724564705666" duration="337000" />
|
<workItem from="1724564705666" duration="1021000" />
|
||||||
|
<workItem from="1724566889942" duration="100000" />
|
||||||
</task>
|
</task>
|
||||||
<task id="LOCAL-00001" summary="sairate">
|
<task id="LOCAL-00001" summary="sairate">
|
||||||
<option name="closed" value="true" />
|
<option name="closed" value="true" />
|
||||||
|
@ -268,7 +281,7 @@
|
||||||
<option name="LAST_COMMIT_MESSAGE" value="Signed-off-by: sairate <sairate@sina.cn>" />
|
<option name="LAST_COMMIT_MESSAGE" value="Signed-off-by: sairate <sairate@sina.cn>" />
|
||||||
</component>
|
</component>
|
||||||
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
||||||
<SUITE FILE_PATH="coverage/face$run_programs.coverage" NAME="run_programs 覆盖结果" MODIFIED="1724564971141" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
<SUITE FILE_PATH="coverage/face$run_programs.coverage" NAME="run_programs 覆盖结果" MODIFIED="1724566942229" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
||||||
<SUITE FILE_PATH="coverage/face$sqlite.coverage" NAME="sqlite 覆盖结果" MODIFIED="1724310603865" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
<SUITE FILE_PATH="coverage/face$sqlite.coverage" NAME="sqlite 覆盖结果" MODIFIED="1724310603865" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
||||||
<SUITE FILE_PATH="coverage/face$match_face.coverage" NAME="match_face 覆盖结果" MODIFIED="1724314395402" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
<SUITE FILE_PATH="coverage/face$match_face.coverage" NAME="match_face 覆盖结果" MODIFIED="1724314395402" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
||||||
<SUITE FILE_PATH="coverage/face$app.coverage" NAME="app 覆盖结果" MODIFIED="1724563184328" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
<SUITE FILE_PATH="coverage/face$app.coverage" NAME="app 覆盖结果" MODIFIED="1724563184328" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
||||||
|
|
10
README.md
|
@ -57,6 +57,16 @@ pip install -r requirements.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. 启动程序
|
### 2. 启动程序
|
||||||
|
|
||||||
|
- 一定要向数据库中添加图片,在scanf_face.py中
|
||||||
|
|
||||||
|
``` python
|
||||||
|
# 向数据库中添加人脸
|
||||||
|
add_face_to_database("李四", "快递", "./db_image/test1.jpg")
|
||||||
|
add_face_to_database("张三", "居民", "./db_image/test2.jpg")
|
||||||
|
add_face_to_database("王五", "居民", "./db_image/test3.jpg")
|
||||||
|
```
|
||||||
|
|
||||||
使用 `run_programs.py` 脚本同时启动 Flask 应用和人脸捕捉脚本:
|
使用 `run_programs.py` 脚本同时启动 Flask 应用和人脸捕捉脚本:
|
||||||
```bash
|
```bash
|
||||||
python run_programs.py
|
python run_programs.py
|
||||||
|
|
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 5.5 KiB |
BIN
face_database.db
|
@ -1,8 +0,0 @@
|
||||||
匹配成功: 屈礼 (居民) 在 ./captured_faces\face_4.jpg 时间: 2024-08-25 12:56:06
|
|
||||||
屈礼,居民,./captured_faces\face_2.jpg
|
|
||||||
屈礼,居民,./captured_faces\face_1.jpg
|
|
||||||
屈礼,居民,./captured_faces\face_1.jpg
|
|
||||||
岳老师,居民,./captured_faces\face_1.jpg
|
|
||||||
岳老师,居民,./captured_faces\face_1.jpg
|
|
||||||
岳老师,居民,./captured_faces\face_1.jpg
|
|
||||||
屈礼,居民,./captured_faces\face_3.jpg
|
|
|
@ -102,9 +102,9 @@ def log_match(name, identity, image_path, db_name, log_file):
|
||||||
create_face_database()
|
create_face_database()
|
||||||
|
|
||||||
# 向数据库中添加人脸
|
# 向数据库中添加人脸
|
||||||
add_face_to_database("小霖老师", "居民", "./db_image/test2.jpg")
|
add_face_to_database("李四", "外卖员", "./db_image/test1.jpg")
|
||||||
add_face_to_database("屈礼", "外卖员", "./db_image/test.jpg")
|
add_face_to_database("张三", "居民", "./db_image/test2.jpg")
|
||||||
add_face_to_database("岳老师", "居民", "./db_image/test3.jpg")
|
add_face_to_database("王五", "居民", "./db_image/test3.jpg")
|
||||||
|
|
||||||
# 主程序循环
|
# 主程序循环
|
||||||
while True:
|
while True:
|
||||||
|
|