顔認証端末を入れると、通行記録が貯まっていきます。多くの現場では、月末に管理画面へログインして、期間を指定して、Excel で書き出して、加工して、業務システムに取り込む。人手がかかるうえ、手元に届くころには情報が 1 か月前のものになっています。FaceAccess™ 端末は、その逆ができます。認証したその瞬間に、端末のほうから社内のサーバへ記録を送ってきます。これを PUSH と呼びます。この記事では、その仕組みで何ができるのかをご説明したうえで、実際に手元で動かせるサンプルプログラムを無償公開します。
「取りに行く」から「届く」へ
取りに行くのではなく、届く。この一点が、顔認証の使い道を大きく広げます。
これまで — 取りに行く
FaceAccess 端末
↓ 記録が貯まる
管理画面
↓ 月末にログインして Excel で書き出し
Excel ファイル
↓ 人が加工して取り込む
業務システム
PUSH — 届く
FaceAccess 端末
↓ 認証したその瞬間に自動送信
社内のサーバ(=今回公開するサンプル)
↓ 必要な値だけを取り出して振り分け
・社内データベースへ登録
・勤怠システムへ連携
・Teams / Slack へ通知
・他システムへ指示を送る
「届く」と、何が変わるのか
記録が認証の瞬間に届くということは、「誰がいつ認証したか」を起点にして、社内の業務をその場で自動的に動かせるということです。使い道は、大きく4つに分かれます。
1. 記録する
出退勤の打刻、作業日報、入退館記録。「誰が、いつ」を人が転記する作業がなくなります。勤怠システムとの連携は、この一例にすぎません。
2. 知らせる
来客が受付で認証したら、担当者のチャットに到着を通知する。時間外の入館を警備担当へ即座に知らせる。学校であれば、登下校を保護者へ通知する。リアルタイムだからこそ意味を持つ使い方です。月末のファイルでは成立しません。
通知に、そのとき端末が撮影した画像を添えることもできます。「誰が来たか」を文字だけで伝えるより判断が早くなる場面では有効です。なお、本サンプルは既定では画像を保存しません(第8章)。
3. 動かす
受け取った側のプログラムから、他のシステムへ指示を送れます。入室に合わせて照明や空調の制御システムに信号を送る、作業端末にログオンさせる、次工程へ指示を出す。認証を「合図」として使う発想です。
4. 数える
いま館内に誰がいるか(災害時の点呼名簿)。プロジェクトごとの工数と原価。食堂や設備の利用実績。締めを待たずに、常に最新の数字が手元にあります。
公開したサンプルと、動かすまでの手順
| できること | 端末が送ってくる認証記録を受け取り、内容を確認できる形(CSV)に書き出す |
|---|---|
| 必要なもの | 無償の Python のみ(Windows / macOS / Linux) |
| 動かす機器 | 処理が軽いため、ふだん使いのパソコンでも動きます。本番では社内サーバへそのまま移せます |
| 追加費用 | なし(ライセンス購入・サーバ契約・クラウド契約はいずれも不要) |
| ライセンス | MIT ライセンス。改変して自社システムに組み込んでいただけます |
| 価格 | 無償 |
- パソコンに Python を入れる(無償。数分で終わります)
- ダウンロードしたファイルを実行する
- 画面に表示された URL を、端末の設定画面に入力する
実行はこの 1 行だけです。
python3 push2csv.py --port 2000
あとは端末の前に立つだけ。認証した瞬間に、パソコンの画面へ受信した記録が 1 行ずつ流れます。名前、社員番号、通行時刻、IC カード番号、認証結果、体温(対応機種のみ)。同じ内容が CSV にも貯まり、Excel で開いても日本語が文字化けしません。
ここまでで、おおむね 10 分ほどです(ご利用の環境により前後します)。
先に試していただいて構いません。▶ サンプルをダウンロードする(ZIP / 約 24 KB)
CSV はデモの終点であって、実務の終点ではありません
端末が送ってくるのは JSON という形式のデータです。この中に、氏名・社員番号・認証時刻・IC カード番号・認証結果・体温(対応機種のみ)・認証時に撮影した顔画像まで入っています。
今回公開するサンプルは、そこから必要な項目を抜き出して CSV ファイルに書き出します。CSV にしているのは、中身をそのまま読めるからです。
実務では、CSV を経由する必要はありません。受け取った JSON から必要な値を取り出して、そのまま業務システムへ渡す。これが本来の姿です。書き出す先を差し替えることで、
- 社内データベースへ直接登録する
- 基幹システムや勤怠システムの取り込み口(API)へ送る
- チャットやメールで通知する
- 条件に合う記録だけを選んで、別のシステムへ回す
といったことができます。加工は受け取り側で完結するので、社内のコード体系に合わせて変換する、必要な項目だけに絞る、といった調整も自由です。
そのため、連携先に API や取り込み口(CSV 取り込み、データベース連携など)がすでに用意されている場合は、既存の業務システム側を大きく改修せずに連携できるケースがあります。逆に、連携先にそうした受け口がない場合は、相手側の改修や別の手段が必要になります。どちらに当たるかは、連携先の仕様によります。
受け取り側の開発は、思ったより小さい
「連携開発」と聞くと身構えてしまいますが、受け取り側がやることは単純です。
届いたデータを受け取って、「受け取りました」と一言返す。これが基本の形です。受信そのものに、専用の開発キットの導入も、メーカーとの API 契約も、クラウドの利用契約も必要ありません。
今回のサンプルは、この受け取り部分が書かれた状態で提供されます。ゼロから設計する必要がなく、そのまま雛形として使えます。本番実装で押さえるべき注意点も、同梱の説明書(README)に日本語でまとめてありますので、開発をご依頼される場合はそのまま開発会社さんへお渡しいただけます。
動かすのに、専用のサーバは要りません
受け取る処理そのものが、とても軽いためです。認証のたびに届く数百バイトのデータを受け取って、必要な値を渡すだけ。ふだん使いのパソコンでも十分に務まる程度の負荷しかありません。だからこそ、お試しの段階で新しく何かを買う必要がないわけです。
本番でも事情は同じで、この処理のために専用のサーバを新規に用意する必要はありません。社内ですでに稼働しているサーバに相乗りさせることもできます。
プログラムは Windows・macOS・Linux のいずれでも動き、ファイルを 1 つ置くだけで移せます。設置先を変えるための作り替えは不要です。まずパソコンで試して、置き場所はあとから決める、という進め方ができます。
検討の場面で効いてくる4つのこと
1. 顔情報を外部のクラウドへ送らない構成にできます
記録は端末から社内の受信側へ直接届きます。外部のクラウドを経由しないため、情報システム部門で確認されることの多い「顔情報を外部クラウドへ送信するか」という点について、社内ネットワーク内で完結する構成を取ることができます。
通信の暗号化(HTTPS)にも対応しています。起動時の指定を 1 つ足すだけで、追加のソフトも購入も必要ありません。端末は送信先の証明書の内容を検証しないため、公的な認証局の証明書も、インターネット上のドメイン名も、外部の中継サービスも不要です。なお、本サンプルが自動生成する証明書は検証用です(起動のたびに作り、終了時に破棄します)。
2. 追加の購入がありません
連携用のミドルウェアや、月額のクラウドサービスを契約する必要がありません。パソコン 1 台と、すでにお持ちの端末だけで試せます。稟議を通す前に、現場で動くところまで確認できます。
3. 受け取る側を止めても記録が残ります
受け取る側が落ちている間、端末は記録を自分の中に持ち続け、復旧したあとでまとめて送ってきます。メンテナンスや再起動、ネットワークの一時的な切断で記録が失われにくい構成です。実機で確認済みです(端末が保持できる件数には上限があるため、長期間の停止は想定していません)。
4. 第三者のライブラリを使っていません
プログラムは Python に最初から入っている機能だけで書かれています。外部のライブラリをひとつも使っていないため、第三者ライブラリの脆弱性管理やサプライチェーン審査の対象となる部品がありません(Python 本体と OS は通常どおり管理の対象になります)。社内に持ち込む際の確認が、実務上かなり軽くなります。
そのまま本番で使えますか
いいえ。これは検証用のサンプルです。誤解のないよう、線を引いておきます。
本サンプルに入っていないもの
- 利用者の認証やアクセス制御はありません。閉じた社内ネットワークでお使いください
- 二重化やディスク容量の監視といった、継続運用のための仕組みはありません
- 同じ記録が重複して届くことがあります。本番実装では重複を弾く処理が必要です
- HTTPS の証明書は、起動のたびに自動生成される検証用のものです。本番用の証明書は含まれません(お手持ちの証明書を指定して使えます)
- 個別のサポートやお問い合わせ対応は行っておりません
このサンプルの役目は、「自社の業務に組み込めるかどうか」を、開発費をかける前に自分の目で確かめていただくことです。動くことを確認したうえで、本番の実装をどうするかをご判断ください。
お試しの前に、2 点だけ
稼働中の端末には向けないでください
端末は、記録を送り終えて受け取り側から成功の応答を受け取ると、その記録を端末から削除します。受け取った側が唯一の保管場所になる仕組みです。すでに運用中の端末にこのサンプルを向けると、本来の記録先にデータが届かなくなります。検証は、テスト用の端末か、記録を消しても支障のない状態で行ってください。
出力されるデータの取り扱いについて
出力されるファイルには、氏名・社員番号・IC カード番号といった個人情報が含まれる場合があります。ご利用の事業者様において、個人情報保護法その他の適用法令および社内規程に従って適切に管理してください。
顔画像は、既定では保存しません。保存するには、起動時に画像保存の指定(--photos)を明示的に付ける必要があります。付けない限り、顔画像がファイルとして手元に残ることはありません。
なお、当社は、本サンプルを利用して生成されたデータへアクセスしません。詳しくは README の「個人情報の取り扱い」をご覧ください。
ダウンロード
▶ FaceAccess 端末 PUSH 受信サンプル v1.0(ZIP / 約 24 KB)
説明書(日本語)、プログラム本体、サンプルデータ、ライセンス文が入っています。解凍してそのままお使いいただけます。
ご相談ください
「認証をきっかけに、この処理を自動で走らせたい」「この項目を、あのシステムへ渡せるか」といったご相談は、通常の窓口で承っております。サンプルを実際に動かしたうえでのご相談は、話が早く、見積もりの精度も上がります。まずは 10 分、お手元で動かしてみてください。
FaceSec® は FaceSec Japan株式会社の登録商標です(登録第6451078号)。FaceAccess™ は同社の商標です。Windows は Microsoft Corporation の、Mac は Apple Inc. の、Python は Python Software Foundation の商標または登録商標です。
本記事の記載は本サンプルプログラムの動作を説明するものであり、法令への適合その他を保証するものではありません。本サンプルプログラムは現状有姿で提供され、明示・黙示を問わずいかなる保証もありません。本プログラムの使用により生じた損害について、当社は責任を負いません。詳細は同梱の LICENSE をご確認ください。




顔認証製品の導入をご検討の方へ
FaceSec Japan株式会社は、東京を拠点に顔認証タイムレコーダーと顔認証入退室管理システムを企画・販売しています。いずれの製品も、構内LAN内のWeb管理画面から設定・運用する構成です。
設置環境に合わせた機種選定、既存の勤怠・入退室運用との整合、電気錠との接続可否などは、機種ごとに条件が異なります。導入前のご相談は日本語で承ります。
Share:
顔認証タイムレコーダーと紙・ICカード・クラウド・指紋の違い|5つの打刻方式を費用と運用で比較
顔認証端末の記録を、iPhone からその場で確認する。FaceSecアプリの使い方