待望の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分で振り返る

ブログ    
ブログ    

推薦する

ChatGPT の残念な欠点 10 選: チャットボットの限界を探る

ChatGPT は、翻訳、作詞作曲、リサーチ、コーディングなど、さまざまなスキルに優れています。しか...

コーディング能力はGPT-4を超え、このモデルはBig Codeランキングでトップとなり、YC創設者も賞賛している

GPT-4を上回るコーディング能力を持つと主張するモデルが、多くのネットユーザーの注目を集めている。...

清華大学張北院士:融合乗算による第三世代人工知能の三空間融合モデルの解釈

人工知能は今どの段階に達しているのでしょうか?どのような問題や限界があるのか​​?どのように突破する...

...

人工知能技術の出発点と終着点

1. 人工知能技術の定義人工知能技術は、複雑な生産労働において機械が人間に取って代わることを可能にす...

医療AIの将来に注目すべき3つのトレンド

COVID-19の流行、メンタルヘルスの危機、医療費の高騰、人口の高齢化により、業界のリーダーたちは...

OpenAIを批判した後、ルカン氏はこう答えた。「意識は単なる幻想だと思う」

ヤン・ルカンは演説中に、フランス革命の有名な絵画「民衆を導く自由の女神」を再生し、「革命は監視されな...

...

驚きですか、それともショックですか?機械学習アルゴリズムの「高エネルギー」な瞬間を評価する

編集者注: 「水は船を運ぶこともできるが、転覆させることもできる。」この古いことわざは、誰もが知って...

...

...

星が輝くとき - WOT グローバル テクノロジー イノベーション カンファレンス 2021 が間もなく開催されます

【51CTO.comオリジナル記事】​​​ 100年前、シュテファン・ツヴァイクは彼の有名な著作「星...

UniVision: BEV 検出と Occ、デュアル SOTA の統合フレームワーク!

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

分散フロー制御アルゴリズムを5分で理解する

フロー制御は、複雑なシステムでは必ず考慮しなければならない問題です。この記事では、さまざまなフロー制...