sgcBiometrics w pięć minut

Uwierzytelnianie Windows Hello i odciskiem palca w Delphi, przez Windows Biometric Framework. Ta strona uruchamia czujnik, weryfikuje użytkownika przed nim i identyfikuje, kim jest. Dwa wywołania metod, gdy czujnik jest już zainicjowany.

Windows Hello: twarz i odcisk palca
Tylko Windows, przez winbio.dll
Jedna kompilacja, bez poziomów funkcji

Czego potrzebuje pierwsza weryfikacja

Jeden komponent, jedno wywołanie uruchamiające czujnik i jedno wywołanie zadające pytanie. Nie ma nic do wcześniejszego skonfigurowania.

Twarz

TsgcWinBioFacial na stronie palety SGC Biometrics, zadeklarowany w sgcBiometrics.pas. To komponent rozpoznawania twarzy Windows Hello.

Odcisk palca

TsgcWinBioFingerPrint, ta sama jednostka, ta sama strona palety. Ten sam kształt API, z dodatkową rejestracją i zarządzaniem szablonami.

Dwa dodatkowe komponenty

TsgcWinBioStorageFile i TsgcWinBioUsersINI, do przechowywania w puli prywatnej, gdy prowadzisz własną bazę szablonów zamiast używać puli systemowej.

Platforma

Tylko Windows. Biblioteka ładuje winbio.dll w czasie działania, a każda jednostka jest objęta {$IFDEF SGC_WINBIO}, więc w każdym innym środowisku jednostki kompilują się do niczego.

Wymagania i edycje

sgcBiometrics nie ma poziomów funkcji, więc ta tabela dotyczy kompilatorów i systemu operacyjnego, a nie edycji.

Co Wartość
IDE Delphi 7 oraz od Delphi 2007 do RAD Studio 13, a także odpowiadające im wersje C++Builder. SGC_WINBIO jest zdefiniowany w każdym bloku wersji kompilatora oprócz Delphi 2006, który definiuje tylko swój znacznik wersji, więc w Delphi 2006 produkt kompiluje się do niczego.
Klauzula uses Demo zawiera sgcBiometrics_WinBio_Types, sgcBiometrics, sgcBiometrics_WinBio_Storage, sgcBiometrics_WinBio_Storage_File, sgcBiometrics_Classes, sgcBiometrics_Client, sgcBiometrics_WinBio_Client, sgcBiometrics_WinBio_Client_Facial. Do zwykłej weryfikacji potrzeba znacznie mniej.
Edycje Nie ma żadnych. Własny sgcVer.inc produktu to wyłącznie mapa wersji kompilatora, bez żadnego definu SGC_EDT_*. Każdy komponent jest w każdej kompilacji.
Które API Windows Klasyczny Win32 Windows Biometric Framework, ładowany dynamicznie z winbio.dll. To nie jest WinRT, więc nie ma nowego minimum RAD Studio narzuconego przez powiązania WinRT.
Platforma Tylko Windows. Każda jednostka WinBio obejmuje swój interfejs i implementację w {$IFDEF SGC_WINBIO}, a każda z nich ma Windows w klauzuli uses. Bez definu jednostki nie zawierają żadnych typów.
Sprzęt Czujnik biometryczny, który Windows już rozpoznaje. Jeśli Windows Hello działa w aplikacji Ustawienia, komponent znajdzie ten sam czujnik.

Zdarzenia monitorowania obecności używane przez komponent rozpoznawania twarzy należą do generacji API z Windows 10. Jeśli na komputerze dostępne jest logowanie twarzą przez Windows Hello, komponent ma to, czego potrzebuje.

Zainstaluj i znajdź stronę palety

Skompiluj pakiet uruchomieniowy przed zainstalowaniem pakietu czasu projektowania, ponieważ ten drugi odwołuje się do pierwszego.

1. Rozpakuj

Rozpakuj pobrany plik do folderu, który poniżej nazywamy {$DIR}.

2. Ścieżka biblioteki

Tools, Options, Environment Options, Directories. Dodaj {$DIR}\source, co dotyczy każdej wersji RAD Studio.

3. Dodaj folder lib

Dodaj także folder zależny od wersji, na przykład {$DIR}\libD13\$(Platform) w RAD Studio 13, aż do {$DIR}\libD7 bez przyrostka platformy w najstarszych kompilatorach.

4. Tylko C++Builder

Umieść też folder lib na ścieżce System Include, a folder dcp\$(Platform), który zawiera pliki .bpi, na ścieżce biblioteki.

5. Zbuduj pakiety

Otwórz Packages\sgcBiometricsD13.groupproj dla swojej wersji IDE. Najpierw skompiluj sgcBiometricsD13.dpk, a potem zainstaluj dclsgcBiometricsD13.dpk. Pojawia się strona o nazwie SGC Biometrics z czterema komponentami.

Zweryfikuj użytkownika w około dziesięciu linijkach

Uruchom czujnik, a potem zadaj jedno z dwóch pytań: czy to oczekiwana osoba, czy kim jest ta osoba? Oba zwracają odpowiedź bezpośrednio.

FFacial.pas
uses
  SysUtils, Classes,
  // sgc
  sgcBiometrics, sgcBiometrics_WinBio_Client,
  sgcBiometrics_WinBio_Client_Facial;

procedure TFRMFacial.btnFacialRecognizeClick(Sender: TObject);
begin
  if not Facial.SessionIsOpen then
  begin
    if Facial.InitializeSensors(10000) then
    begin
      if Facial.FacialRecognize then
        DoLog('#Recognized');
    end;
  end
  else
  begin
    if Facial.FacialRecognize then
      DoLog('#Recognized');
  end;
end;

InitializeSensors zwraca Boolean i przyjmuje limit czasu w milisekundach. SessionIsOpen chroni przed otwarciem drugiej sesji na czujniku, który już ją ma. FacialRecognize zwraca True, gdy osoba przed kamerą została dopasowana.

FFacial.pas
procedure TFRMFacial.btnFacialIdentifyClick(Sender: TObject);
begin
  if not Facial.SessionIsOpen then
  begin
    if Facial.InitializeSensors(10000) then
      DoLog('#Identified: ' + Facial.FacialIdentify)
  end
  else
    DoLog('#Identified: ' + Facial.FacialIdentify);
end;

Różnica między tymi dwoma wywołaniami to zadawane pytanie. FacialRecognize pyta „czy to oczekiwana osoba" i zwraca Boolean. FacialIdentify pyta „kim jest ta osoba" i zwraca identyfikator konta jako string, pusty, gdy nikogo nie rozpoznano. Oba przyjmują opcjonalny limit czasu, domyślnie dziesięć sekund.

FFacial.pas
// Three parameters, and the third has a default.
// There is no OnCapture: the capture event is OnCaptureSample.
procedure TFRMFacial.FacialError(Sender: TObject; const aError: string;
  const aCode: Integer);
begin
  DoLog('Error: ' + aError + ' [' + IntToStr(aCode) + ']');
end;

Pozostałe zdarzenia niosą struktury Windows Biometric Framework, więc ich listy parametrów są dłuższe niż w typowym zdarzeniu Delphi. OnVerify przyjmuje sześć parametrów, a OnIdentify cztery. Wygeneruj je z Object Inspectora zamiast wpisywać ręcznie.

Wszystkie trzy karty pochodzą z dostarczanego dema Demos\Facial\FFacial.pas, z zachowanymi wywołaniami logu, ponieważ dzięki nim widzisz, co się stało. Drugie demo, Demos\FingerPrint, obejmuje rejestrację, zarządzanie szablonami i prywatną pulę czujników.

Odczytaj odpowiedź, którą daje wywołanie

Oba pytania zwracają wartość bezpośrednio, więc pierwsza wersja twojego kodu w ogóle nie potrzebuje procedury obsługi zdarzenia.

InitializeSensors

Zwraca True, gdy sesja otworzyła się na czujniku. False oznacza, że nie ma z czym rozmawiać i żadne późniejsze wywołanie nie zadziała.

FacialRecognize

Zwraca True, gdy osoba została dopasowana. Ta jedna wartość logiczna to cała odpowiedź dla monitu uwierzytelniania.

FacialIdentify

Zwraca identyfikator konta rozpoznanej osoby i pusty tekst, gdy nikogo nie rozpoznano. Użyj go, gdy musisz wiedzieć, kto, a nie czy.

OnError

procedure(Sender: TObject; const aError: string; const aCode: Integer = 0). Kod to błąd Windows Biometric Framework, czyli to, czego potrzebujesz, gdy sam komunikat nie wystarcza.

Co zwykle idzie nie tak za pierwszym razem

Sześć problemów odpowiada za niemal każdą pierwszą próbę.

Nic się nie dzieje i nie pojawia się błąd

Sesja czujnika nigdy nie została otwarta. InitializeSensors zwraca Boolean, a demo sprawdza go przed zrobieniem czegokolwiek innego. SessionIsOpen mówi, czy sesja jest już aktywna, więc nie otwierasz drugiej.

Wywołanie blokuje interfejs użytkownika

Weryfikacja czeka na osobę przed czujnikiem, a limit czasu wynosi domyślnie dziesięć sekund. Przekaż krótszy albo ustaw Asynchronous i obsługuj wynik przez zdarzenia.

Szukasz zdarzenia OnCapture

Zdarzenie o takiej nazwie nie istnieje. Zdarzenie przechwycenia to OnCaptureSample, a towarzyszy mu OnCaptureSampleReject dla próbki odrzuconej przez czujnik.

Sygnatura zdarzenia nie pasuje

Te zdarzenia niosą struktury Windows Biometric Framework, więc mają więcej parametrów, niż można się spodziewać. OnVerify przyjmuje sześć, w tym tożsamość, podczynnik i szczegóły odrzucenia. Pozwól IDE wygenerować procedurę obsługi zamiast wpisywać ją ręcznie.

Nie kompiluje się na innej platformie

Nie może. Każda jednostka WinBio jest objęta {$IFDEF SGC_WINBIO}, który jest definiowany tylko w blokach kompilatorów Windows, więc poza Windows jednostki nie zawierają żadnych typów. To biblioteka dla Windows.

Pula prywatna wymaga uprawnień administratora

Praca z własną bazą szablonów zamiast z pulą systemową jest operacją uprzywilejowaną i z tego powodu demo odcisku palca ma dla niej osobną kartę.

Poza pierwszą weryfikacją

Cztery kierunki, wszystkie w tej samej bibliotece.

Rejestruj własnych użytkowników

Komponent odcisku palca zawiera pełny cykl rejestracji: rozpocznij, przechwytuj wielokrotnie, a potem zatwierdź. Zdarzenia raportują liczbę przesunięć i to, czy szablon był nowy.

Funkcje sgcBiometrics

Prowadź własną bazę szablonów

Komponenty magazynu i użytkowników implementują pulę prywatną, więc szablony żyją w twoim pliku, a nie w systemowej puli Windows. To jest to, czego potrzebujesz, gdy ta sama tożsamość musi działać na maszynach, które kontrolujesz.

Funkcje sgcBiometrics

Obserwuj obecność, nie tylko monit

Komponent rozpoznawania twarzy może stale monitorować, kto jest przed kamerą, zgłaszając zdarzenia, gdy osoba przychodzi, zostaje rozpoznana lub odchodzi. Tak blokujesz ekran w chwili, gdy operator odchodzi.

Funkcje sgcBiometrics

Wylicz, co ma komputer

Zanim o cokolwiek poprosisz użytkownika, możesz wyświetlić listę jednostek biometrycznych, baz danych i istniejących rejestracji, co zamienia nieprzydatny błąd w jasny komunikat o brakującym sprzęcie.

Edycje i pakiety

Dokumentacja, dema i materiały

W pobranym pakiecie są dwa projekty demo, jeden dla twarzy i jeden dla odcisku palca.

Funkcje sgcBiometrics Co udostępniają komponenty odcisku palca i rozpoznawania twarzy.
Edycje i pakiety Jak produkt jest licencjonowany i co zawiera każdy pakiet.
Przegląd produktu Do czego służy sgcBiometrics i gdzie się sprawdza.
Pobierz wersję próbną Ten sam instalator co w wersji produkcyjnej, z ograniczeniem czasowym.
Skontaktuj się ze wsparciem Bezpośrednie wsparcie e-mailowe od programistów, którzy napisali kod.
Wszystkie produkty Cennik każdej biblioteki eSeGeCe w jednej tabeli.

sgcBiometrics jest dostępny tylko dla Delphi i C++Builder, bez odpowiednika .NET. Każdy produkt ma własny szybki start, wymieniony na stronie pierwszych kroków.

Pytania o szybki start sgcBiometrics

Dla rozpoznawania twarzy Windows Hello, TsgcWinBioFacial. Dla odcisku palca, TsgcWinBioFingerPrint. Oba są zadeklarowane w sgcBiometrics.pas i oba są na stronie palety SGC Biometrics, obok TsgcWinBioStorageFile i TsgcWinBioUsersINI, których potrzebujesz tylko do przechowywania w puli prywatnej. Razem cztery komponenty, a nie jeden.
W komponencie rozpoznawania twarzy FacialRecognize zwraca Boolean, true, gdy osoba przed kamerą została dopasowana. FacialIdentify zwraca string, czyli identyfikator konta rozpoznanej osoby, i pusty tekst, gdy nikogo nie rozpoznano. Oba przyjmują opcjonalny limit czasu, domyślnie dziesięć sekund, i oba wymagają sesji czujnika, którą otwierasz przez InitializeSensors.
Nie. Każda jednostka WinBio obejmuje cały swój interfejs i implementację w {$IFDEF SGC_WINBIO}, ten define pojawia się tylko w blokach kompilatorów Windows w sgcVer.inc produktu, a każda jednostka ma Windows w klauzuli uses. Bez definu jednostki nie zawierają żadnych typów. sgcBiometrics to biblioteka dla Windows.
Nie, to klasyczny Win32 Windows Biometric Framework. Biblioteka ładuje winbio.dll dynamicznie i wywołuje ją bezpośrednio. Ma to znaczenie z dwóch powodów: nie ma nowoczesnego minimum RAD Studio narzuconego przez powiązania WinRT, a powierzchnia API to ta udokumentowana przez Microsoft jako Windows Biometric Framework, a nie ta z WinRT.
Delphi 7 oraz od Delphi 2007 do RAD Studio 13, a także odpowiadające im wersje C++Builder. SGC_WINBIO jest zdefiniowany w każdym bloku wersji kompilatora od Delphi 7 wzwyż z jedną luką: blok Delphi 2006 definiuje tylko swój znacznik wersji, a nie SGC_WINBIO, więc w tym jednym kompilatorze produkt buduje się do niczego.
W kodzie nie ma edycji. sgcVer.inc produktu to mapa wersji kompilatora i w ogóle nie zawiera definu SGC_EDT_*, a nic nie jest ograniczone poziomem, więc każda kompilacja zawiera każdy komponent. Wszelkie poziomy widoczne na stronie cennika to komercyjne pakietowanie, a nie różne biblioteki.
Więcej niż trzy. Komponent rozpoznawania twarzy udostępnia dwanaście, a komponent odcisku palca osiemnaście. Niosą struktury Windows Biometric Framework, więc listy parametrów są dłuższe niż w typowym zdarzeniu Delphi: OnVerify ma sześć parametrów, OnIdentify cztery, a OnError trzy. Pozwól IDE wygenerować procedury obsługi. Zauważ, że nie ma OnCapture; zdarzenie przechwycenia to OnCaptureSample.
Potrzebujesz czujnika biometrycznego, który Windows już rozpoznaje, co w praktyce oznacza, że Windows Hello działa w aplikacji Ustawienia. Weryfikacja względem puli systemowej nie wymaga podniesienia uprawnień. Praca z pulą prywatną, w której prowadzisz własną bazę szablonów przez TsgcWinBioStorageFile, wymaga uprawnień administratora i dlatego dostarczane demo odcisku palca oddziela ją na własnej karcie.
Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Gotowy dodać Windows Hello do swojej aplikacji?

Pobierz wersję próbną i uruchom demo rozpoznawania twarzy na komputerze, który ma już skonfigurowane Hello.