データベースを作る

データベース
データベース

今日は Face01 をベースとして、サンプルデータベースを作ってみたいと思います。


【追記】
最新のコードは「データベースと GUI のサンプルを紹介!」をご参照ください


顔認証システムを作るとき、なにはなくともデータベースは必要になると思います。今日は、データベースの作成とそこからデータを取り出す工程を簡単に説明したいと思います。

データベースのサンプルなので、 Python の標準モジュールである SQLite を使っていきます。

import face01 as f
import sqlite3
# Face01 を呼び出す
known_face_encodings, known_face_names = f.load_priset_image()
xs = f.face_attestation( known_face_encodings, known_face_names )

# SQLite の用意
con = sqlite3.connect('sample.db')
cursor = con.cursor()
cursor.executescript("""
DROP TABLE IF EXISTS data_set;
CREATE TABLE data_set(id integer, name, pict text, date)
""")
id = 1
persons = []
for x in xs:
	persons.append( (id, x['name'], x['pict'], x['date']) )
	# ~ con.commit()
	id = id + 1
cursor.executemany("INSERT INTO data_set VALUES(?,?,?,?)", persons)

これで同じディレクトリに sample.db ができました。

出来上がった sample.db
出来上がった sample.db のアイコン

次に、データベースからデータを読み込んでみます。

cursor.execute('SELECT * FROM data_set')
datas = cursor.fetchall()
for data in datas:
	for n in data:
		print n
出力される端末
出力される端末

結果は上図のようになりました。

また、各顔画像ファイルは以下のように保存されています。

保存された各顔画像の様子
保存された各顔画像の様子

以上のようにとても簡単にデータベースを作ることができました。
また、この時に保存された動画データは以下のようになります。

【追記】記事内容が古くなっております。
・Python2 系
・顔認証画面の表示が変更前
・CUDA 未対応のため低速
・顔認証精度が低い(変更前)
最新の記事をご参照ください。

Follow me!

前の記事

顔認証の活用例

次の記事

GUI をつけるサンプル