待望のWeb顔認識ログインのフルバージョンが登場しました。気に入っています

待望のWeb顔認識ログインのフルバージョンが登場しました。気に入っています

[[436944]]

この記事はWeChatの公開アカウント「Programmer Insider Things」から転載したもので、著者はProgrammer Insider Thingsです。この記事を転載する場合は、Programmer Insider 公式アカウントまでご連絡ください。

記事を書き始めた頃は、Java で実装した顔認識についての記事を書きました。書き始めたばかりで何を書いたらいいのかわからなかったので、単純に顔認識のデモを作りました。

しかし、予想外だったのは、この 1 年間で多くのファンが私を友達として追加し、この小さなデモについて問い合わせてきたことです。デモには小さなバグがあり、初心者の友人の中にはデモを正常に起動できない人もいたからです。

それからというもの、私は精力的に様々な質問に答え始めましたが、やはりエネルギーに限界がありました。結局、すべての質問に答えることはできず、ファン同士が経験を共有するグループを立ち上げることにしました。

大規模に問題が起こったとき、デモの完全版をリリースしようと思ったのですが、家での仕事が多くて気力がなかったので、今まで先延ばしにしてきました。たまたまこの顔認証ログイン機能を自分のプロジェクトで使ってみたので、この機会に皆さんにシェアしたいと思います。今回はバグを残さないように頑張ります、ハハハ。

具体的な操作の前に、完成品の効果を見てみましょう。オンラインプレビューアドレスはhttps://fire100.topです。顔写真はここで収集されませんのでご安心ください。顔の特徴のみが抽出され、クラウドにアップロードされません。効果を確認するためにデモをしてみましょう。認識速度と成功率は依然として良好です。

機能フロー

機能全体のロジックは非常にシンプルです。フロントエンドはカメラをオンにし、顔を認識し、写真を撮影してバックエンドにアップロードします。バックエンドの SDK は写真の顔の特徴を認識し、データベース内のユーザーの顔の特徴と比較します。比較が成功した場合 (類似度が 0.8 ~ 1 の場合、同一人物とみなされます)、ユーザーはログインします。顔が認識されてもデータベース内の比較が成功しなかった場合は、新規ユーザー登録とみなされます。

注意: オンラインで使用する場合は、https を使用してカメラを呼び出す必要があります。ローカルテストには制限はありません。

SDKを申請する

プロジェクトを開始する前に、いくつかの準備を行ってください。サードパーティの顔認識 SDK を使用しているため、まずプラットフォームでアカウントを申請し、対応するバージョンの SDK をダウンロードする必要があります。

公式ウェブサイトアドレス:https://ai.arcsoft.com.cn/ucenter/resource/build/index.html#/login

なぜ独自の顔認識ソフトウェアを書かないのかと尋ねる人もいるかもしれません。私に聞かないでください。私にはそれができないのです。

現在、Linux、Windows、IOS、Android 版に対応しています。実名認証アカウント 1 つにつき、100 台のデバイスをアクティベートできます。つまり、同じアカウントで申し込んだ SDK は 100 台のデバイスで動作し、通常はこれで十分です。

ダウンロードした SDK パッケージのディレクトリ構造では、libs が最も重要であり、samplecode にはサンプル コードが含まれ、doc には API ドキュメントが含まれます。必要なのは、ライブラリ内の arcsoft-sdk-face-3.0.0.0.jar と、platform.dll または .so サフィックス ファイルに対応する 3 つのエンジン ファイルです。

プロジェクト構成

プロジェクト自体は、フロントエンドとバックエンドが分離された springboot + vue ですが、友人がすぐに使えるように、この機能のフロントエンドとバックエンドを統合し、永続化のために jpa を使用しました。テーブルを自分で構築する必要がないため、誰もが時間を節約できます。

SDK を使用する際にいくつか小さな落とし穴に遭遇したので、以下で詳しく説明します。

まず、springboot スタートアップクラスが配置されているプロジェクトのルートディレクトリに lib ディレクトリを作成し、その中に SDK から抽出した arcsoft-sdk-face-3.0.0.0.jar を配置し、この Jar を pom.xml ファイルに導入します。

  1. <依存関係>
  2. <groupId>com.arcsoft.face</groupId>
  3. <artifactId>arcsoft-sdk-face</artifactId>
  4. <バージョン>3.0.0.0</バージョン>
  5. <scope>システム</scope>
  6. <システムパス>${basedir}/lib/arcsoft-sdk-face-3.0.0.0.jar</システムパス>
  7. </依存関係>

Maven パッケージ構成には特に注意してください。includeSystemScope を必ず追加してください。これにより、Maven はパッケージ化中に外部から導入された jar パッケージ (ルート ディレクトリまたはリソース ファイルへの新しい外部 jar パッケージの追加など) をプロジェクト jar にパッケージ化し、プロジェクトをサーバー上で実行できるようになります。

この構成がない場合、外部パッケージはローカルの lib で見つかりますが、サーバー上の jar にはないため、ローカルで実行できます。

  1. <プラグイン>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-maven-plugin</artifactId>
  4. <バージョン>${spring-boot.version}</バージョン>
  5. <構成>
  6. <includeSystemScope>が true </includeSystemScope>
  7. <fork></fork>
  8. <mainClass>com.firebook.FireBookApplication</mainClass>
  9. <スキップ></スキップ>
  10. </構成>
  11. </プラグイン>

application.yml ファイルの構成はよりシンプルです。顔の特徴データを格納するデータベースを作成し、SDK 申請時に取得した appId と sdkKey を入力し、パスはエンジン ファイルが格納されている .dll または .so サフィックスのファイル パスです。

  1. 春:
  2. データソース:
  3. # タイプ: com.zaxxer.hikari.HikariDataSource
  4. ドライバークラス: com.mysql.cj.jdbc.Driver
  5. url: jdbc:mysql://127.0.0.1:3306/face?useUnicode= true &characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
  6. ユーザー名: root
  7. パスワード: 123456
  8. # 顔認識ウィンドウ
  9. 顔:
  10. アプリID: #************************
  11. SDKキー: #************************
  12. パス: D://face

これらを設定したら、FireControllerApplication を直接実行し、127.0.0.1:8081/login/face にアクセスします。

ここではソース コードを大きなセクションに分けて投稿しません。興味のある方はリンクを取得してソース コードをダウンロードし、試してみてください。

<<:  ウォータールー大学はヒートマップ回帰を放棄し、複数人の姿勢推定のための新しい方法を提案した。

>>:  2021年11月のドローン業界の最新動向を3分で振り返る

ブログ    
ブログ    

推薦する

将来のAIの世界における興味深い仕事

現在、人工知能 (AI) システムは反復的で非創造的なタスクを実行するのが得意ですが、スクリプトから...

...

人間を超えた最初の専門家! OpenAIが混乱に陥る中、Googleのマルチモーダル大規模モデルGeminiがそれを打ち負かす

OpenAIが混乱に陥っている間、Googleは「全員を殺す」準備をしている。ちょうど昨夜、Goog...

...

...

JD X ロボティクス チャレンジが終了、BUPT チームのインテリジェント ロボットが優勝

3月25日、北京郵電大学のウォータードロップチームが優勝トロフィーを掲げ、JD X部門主催のJD 2...

ディープラーニングのこれらの概念をすべて理解できましたか? TF、TLT、TRT、DS....

最近、NVIDIA GPU 製品や SDK を使用してディープラーニングを学習している学生に多く出会...

テクノロジー大手はAI人材の獲得に競い合い、新卒でも巨額の給与を得られる

編集者注: 将来は AI の時代であるため、あらゆる規模のテクノロジー企業が人材獲得を競っています。...

インタビュアー: よく使用する暗号化アルゴリズムについて教えてください。

[[335623]]暗号化アルゴリズムは、一般的に、可逆暗号化と不可逆暗号化に分けられます。可逆暗...

人工知能の3つの柱:アルゴリズム、計算能力、データ

AlphaGoとイ・セドルの世紀のマンマシン対決で、ついにAlphaGoが勝利した。では、人工知能の...

AIは中国のインターネットを狂ったように汚染している

AIは中国のインターネットを汚染する「犯人」の1つとなった。問題はこれです。最近、誰もが AI に相...

ガートナーなど権威ある組織:人工知能、国内外のどのAI技術が強いのか?

2020年末、我が国は第14次5カ年計画を発表し、2035年までの中国の長期目標を策定しました。 ...

Appleは以前から独自のChatGPT AIツールを開発してきた。

何年もの間、自社のソフトウェアとデバイスすべてに機械学習を統合してきたAppleは、WWDCでは自社...

...

ディープラーニングと通常の機械学習の違いは何ですか?

[[212077]]本質的に、ディープラーニングは、ディープニューラルネットワーク構造(多くの隠れ...