Top Banner
Face Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation Plan and API VERSION 0.5 THIS DOCUMENT IS OPEN FOR COMMENTS: EMAIL TO FRVT@NIST.GOV Patrick Grother Mei Ngan Kayee Hanaoka Information Access Division Information Technology Laboratory October 26, 2017
18

Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

Mar 15, 2018

Download

Documents

vodien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTestFRVT2018

PerformanceofAutomatedFaceIdentificationAlgorithmsConcept,EvaluationPlanandAPI

VERSION0.5

THISDOCUMENTISOPENFORCOMMENTS:[email protected]

PatrickGrotherMeiNgan

KayeeHanaokaInformationAccessDivision

InformationTechnologyLaboratory

October26,2017

Page 2: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page2of18

TableofContents11. FRVT2018.........................................................................................................................................................................32

1.1. Scope......................................................................................................................................................................331.2. Audience.................................................................................................................................................................341.3. Schedule.................................................................................................................................................................351.4. Reporting................................................................................................................................................................361.5. VersionControl.......................................................................................................................................................371.6. Background.............................................................................................................................................................481.7. FRVT2018:Changesfrompriorevaluations...........................................................................................................491.8. Relationtothe1:1FRVTevaluation.......................................................................................................................4101.9. Coreaccuracymetrics.............................................................................................................................................4111.10. Applicationrelevance.............................................................................................................................................512

2. Rulesforparticipation......................................................................................................................................................5132.1. Participationagreement.........................................................................................................................................5142.2. Validation................................................................................................................................................................5152.3. Hardwarespecification...........................................................................................................................................5162.4. Operatingsystem,compilation,andlinkingenvironment......................................................................................6172.5. Softwareanddocumentation.................................................................................................................................6182.6. Runtimebehavior...................................................................................................................................................7192.7. Timelimits..............................................................................................................................................................8202.8. Templatesizelimits................................................................................................................................................821

3. DatastructuressupportingtheAPI..................................................................................................................................9223.1. Requirement...........................................................................................................................................................9233.2. Fileformatsanddatastructures.............................................................................................................................924

4. APIspecification.............................................................................................................................................................13254.1. Namespace...........................................................................................................................................................13264.2. Overview...............................................................................................................................................................13274.3. API.........................................................................................................................................................................1528

29ListofTables30

Table1–Scheduleandallowednumberofsubmissions.........................................................................................................331Table3–Processingtimelimitsinseconds,per640x480colorimage,onasingleCPU.......................................................832Table4–Structureforasingleimage......................................................................................................................................933Table5–LabelsdescribingcategoriesofImages.....................................................................................................................934Table6–Structureforasetofimagesfromasingleperson...................................................................................................935Table7–Structureforapairofeyecoordinates...................................................................................................................1036Table8–Labelsdescribingtemplaterole..............................................................................................................................1037Table9–Enrollmentdatasettemplatemanifest...................................................................................................................1138Table10–Labelsdescribinggallerycomposition..................................................................................................................1239Table11–Structureforacandidate......................................................................................................................................1240Table12–Enumerationofreturncodes................................................................................................................................1241Table13–ReturnStatusstructure.........................................................................................................................................1342Table16–Proceduraloverviewofthe1:Ntest.....................................................................................................................1343Table17–Templatecreationinitialization............................................................................................................................1544Table19–Enrollmentfinalization..........................................................................................................................................1645Table21–Identificationsearch.............................................................................................................................................1746Table23–Insertionoftemplateintoagallery......................................................................................................................1847Table24–Removaloftemplatefromagallery.....................................................................................................................184849

50

Page 3: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page3of18

1. FRVT201851

1.1. Scope52Thisdocumentestablishesaconceptofoperationsandanapplicationprogramminginterface(API)forevaluationofone-53to-manyfacerecognitionalgorithmsappliedtofacesappearingin2Dstillphotographs.Theprimaryfocusofthetestis54cooperativeportraitimages,e.g.mugshots1.Thetestwillincludealsosearchofnon-cooperativeimages.TheAPI55communicatesthetypeofimagetothealgorithm.56

1.2. Audience57

Participationisopentoanyorganizationworldwide,primarilyresearchersanddevelopersofFRalgorithms.WhileNIST58intendstoevaluatestabletechnologiesthatcouldbereadilymadeoperational,thetestisalsoopentoexperimental,59prototypeandothertechnologies.AllalgorithmsmustbesubmittedasimplementationsoftheAPIdefinedinthis60document.Thereisnochargeforparticipation.61

1.3. Schedule62InconsultationwithUSGovernmentcollaborators,NISTwillexecutetheFRVT2018ontheschedulegiveninTable1.Note63thatNISTwillreportresultspubliclyattheendofPhases2and3.TheendofPhase2correspondscloselytotheendof64thefinancialyearandresultsfromtheFRVTarerequiredbythatdate.65

Developersmaysubmitthenumberofalgorithmsidentifiedintherightmostcolumn.66

Table1–Scheduleandallowednumberofsubmissions67Phase Date Milestone Maximumnumberof

implementationsAPIDevelopment

2017-10-26 Draftevaluationplanavailableforpubliccomments 2017-11-16 Finalevaluationplanpublished

Phase1

2018-01-22 Participationstarts:AlgorithmsmaybesenttoNIST 2018-02-16 LastdayforsubmissionofalgorithmstoPhase1 32018-05-23 Interimresultsreleased

Phase2

2018-06-21 LastdayforsubmissionofalgorithmstoPhase2 22018-09-20 Resultsreleased

Phase3

2018-10-19 LastdayforsubmissionofalgorithmstoPhase3 22018-12-19 Releaseoffinalpublicreport

1.4. Reporting68AttheconclusionofPhase1,NISTwillprovideresultsforallalgorithmstoalldevelopers,andtoUSGovernmentpartners.69

AttheconclusionofPhase2,NISTwillpublishresultsforallalgorithmsonitswebsite.70

AttheconclusionofPhase3,NISTwillpublishanInteragencyReportsummarizingtheentireFRVT1:N.71

Important:ThisisanopentestinwhichNISTwillidentifythealgorithmandthedevelopingorganization.Algorithm72resultswillbeattributedtothedeveloper.Resultswillbemachinegenerated(i.e.scripted)andwillincludetiming,73accuracyandotherperformanceresults.Thesewillbepostedalongsideresultsfromotherimplementations.74

NISTmayadditionallyreportresultsinworkshops,conferences,conferencepapersandpresentations,journalarticlesand75technicalreports.76

1.5. VersionControl77Developersmustsubmitaversion.txtfileinthedoc/folderthataccompaniestheiralgorithm–seeSection2.5.3.The78stringinthisfileshouldallowthedevelopertoassociateresultsthatappearinNISTreportswiththesubmittedalgorithm.791TheMEDSdatabaseincludessamplemugshots.

Page 4: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page4of18

Thisisintendedtoallowend-userstoobtainproductizedversionsoftheprototypessubmittedtoNIST.NISTwillpublish80thecontentsofversion.txt.NISThaspreviouslypublishedMD5hashesofthecorelibrariesforthispurpose.81

1.6. Background82NISThasconductedevaluationsoffacerecognitionprototypessincethefirstFRVTin2000.Until2006,thosetrials83simulatedone-to-manysearchaccuracyusingsetsofone-to-onecomparisons.In2010,insupportoftheFBI’s84procurementofafacesearchcapability,NISTreported[NISTIR7709]accuracyandspeedofend-to-endone-to-many85searchimplementationswithenrolledpopulationsupto1.8million.Usingupdatedalgorithms,thattestwasrepeated86andextendedin2013[NIST8009].Thosetestsfocusedoncooperativeportraitimages.Inlate2017,NISTwillpublishthe87resultsfromtheFaceRecognitionPrizeChallengewhichassessedcapabilityofcontemporarysearchalgorithmsonless88constrainedimages[FRPC2017].89

1.7. FRVT2018:Changesfrompriorevaluations90Givenmassivechangesinfacerecognitionsincethelastone-to-manyevaluationin2013,NISTseekstoassessbenefits91thathaveaccruedtotheuseofthosetechnologieswithcooperativeimages.92

Thefollowingarenewaspects:93

― Effectofincreasedpopulationsize:Nisexpectedtoexceed107representinganorderofmagnitudeincreasinginthe94numberofuniquefaces.95

― Accuracywithencounter-basedgalleries:PriorNISTevaluationsconstructedgalleriesinwhichallknownimagesof96anenrolleewereprovidedtothealgorithmtogether,underasingleidentity.Thissupportedalgorithmswhichmight97fuseimagesortemplates.However,thissubject-basedenrollmentdiffersfromthat(minorityof)operational98deployments–encounter-basedapplications-inwhichmultipleimagesofapersonarepresentinadatabase99withoutanyspecifiedidentityorlink.Thistestwillcompareaccuracyforbothsubject-basedandencounter-based100galleries.Section3.2.6containsnarrativeandAPIsupporttoinformthealgorithmofthegallerytype.101

― Expenseofdeletionandinsertionfunctions:PriorNISTevaluationsconstructedagallerywhichwassearched102withoutanymodification.Thisfacilitatedmeasurementofaccuracyandspeedbutdidnotallowformeasurementof103computationalexpenseofaddingordeletingelementsfromthegallery.Thesefunctionsmaynotbetrivial,for104example,iftheunderlyingimplementationusesfast-searchdatastructures.105

1.8. Relationtothe1:1FRVTevaluation106SinceFebruary2017,NISThasbeenrunninganongoingevaluationofone-to-onefaceverificationalgorithms,FRVT1:1.107Thisallowsanydevelopertosubmitalgorithmsatanytime,onceeverythreecalendarmonths,therebybetteraligning108developmentandevaluationschedules.TheFRVT1:1includessixdifferentdatasets,oneofwhichismugshots,similarto109theprimarysetproposedforinclusionontheFRVT1:Ndefinedherein.Itmaybenefitdeveloperstosubmittheircore1:1110recognitionalgorithmstotheFRVT1:1processbytheFRVT1:Ndeadline.Ifsuchcpu-basedalgorithmsaresubmittedby111January22,wewillpublishresultsbeforethe1:Ndeadline.112

ParticipationintheFRVT1:1isnotrequiredforparticipationinFRVT1:N.113

1.9. Coreaccuracymetrics114Thistestwillexecuteopen-universesearches.Thatis,someproportionofsearcheswillnothaveanenrolledmate.From115thecandidatelistsreturnedbyalgorithms,NISTwillcomputeandreportaccuracymetrics,primarily:116

― Falsenegativeidentificationrate(FNIR)–theproportionofmatedsearcheswhichdonotyieldamatewithinthetop117Rranksandatorabovethreshold,T.118

― Falsepositiveidentificationrate(FPIR)–theproportionofnon-matedsearchesreturningany(1ormore)candidates119atoraboveathreshold,T.120

― Selectivity–thenumberofnon-matedcandidatesreturnedatoraboveathreshold,T.Thisquantityhasavalue121runningfrom0toL,thenumberofcandidatesrequested.Itmaybefractional,asitisestimatedasacountdividedby122thenumberofnon-matesearches.123

Page 5: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page5of18

ThesequantitiesareestimatedfromcandidatelistsproducedbyrequestingthetopLmostsimilarcandidatestothe124search.Wedonotintendtoexecutesearchesrequestingonlythosecandidatesaboveaspecifiedinputthreshold.125

WewillreportFNIRandFPIRbysweepingthethresholdovertheinterval[0,infinity).Errortradeoffplots(FNIRvs.FPIR,126parametriconthreshold)willbetheprimaryreportingmechanism.127

WewillreportalsoFNIRbysweepingarankRovertheinterval[1,L]toproduce(thecomplementof)thecumulative128matchcharacteristic(CMC).129

1.10. Applicationrelevance130NISTanticipatesreportingFNIRintwoFPIRregimes:131

― Investigationmode:Givencandidatelistsandathresholdofzero,theCMCmetricisrelevanttoinvestigational132applicationswherehumanexaminerswilladjudicatecandidatesindecreasingorderofsimilarity.Thisiscommonin133lawenforcement“leadgeneration”.134

― Identificationmode:Wewillapply(high)thresholdstocandidatelistsandreportFNIRvaluesrelevantto135identificationapplicationswherehumanlaborismatchedtothetolerablenumberoffalsepositivesperunittime.136Thisisusedinduplicatedetectionsearchesforcredentialissuanceand,moreso,insurveillanceapplications.137

Giventhatmultiplealgorithmsmaybesubmitted,developersareencouragedtosubmitvariantstailoredtominimizeFNIR138inthetwoFPIRregimes,andtoexplorethespeed-accuracytradespace.139

2. Rulesforparticipation140

2.1. Participationagreement141Aparticipantmustproperlyfollow,complete,andsubmittheFRVTParticipationAgreement.Thismustbedoneonce,142eitherpriororinconjunctionwiththeveryfirstalgorithmsubmission.Itisnotnecessarytodothisforeachsubmitted143implementationthereafter.144

NOTE OrganizationsthathavealreadysubmittedaparticipationagreementforongoingFRVT1:1donotneedtosend145inanewparticipationagreement,astheirsubmissionofa1:Nalgorithmindicatestheyagreetothesametermsand146conditionsarticulatedinthatagreement.147

NOTE Ifanorganizationupdatestheircryptographicsigningkey,theymustsendanewcompletedparticipation148agreementsubmissionforthisevaluation,withthefingerprintoftheirpublickey.149

150

2.2. Validation151AllparticipantsmustruntheirsoftwarethroughtheprovidedFRVT1:Nvalidationpackagepriortosubmission.The152validationpackagewillbemadeavailableathttps://github.com/usnistgov/frvt.Thepurposeofvalidationistoensure153consistentalgorithmoutputbetweentheparticipant’sexecutionandNIST’sexecution.154

2.3. Hardwarespecification155NISTintendstosupporthighperformancebyspecifyingtheruntimehardwarebeforehand.Thereareseveraltypesof156computerbladesthatmaybeusedinthetesting.Eachmachinehasatleast192GBofmemory.Weanticipatethat16157processescanberunwithouttimeslicing,thoughNISTwillhandleallmultiprocessingworkviafork()2.Participant-158initiatedmultiprocessingisnotpermitted.159

Allimplementationsshalluse64bitaddressing.160

NISTintendstosupporthighlyoptimizedalgorithmsbyspecifyingtheruntimehardware.Thereareseveraltypesof161computersthatmaybeusedinthetesting.Thefollowinglistgivessomedetailsaboutpossiblecomputearchitectures:162

2http://man7.org/linux/man-pages/man2/fork.2.html

Page 6: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page6of18

― DualIntel®Xeon®X56903.47GHzCPUs(6coreseach)3163

― DualIntel®Xeon®[email protected](10coreseach)4164

― DualIntel®Xeon®[email protected](14coreseach)4165

ThistestwillnotsupporttheuseofGraphicsProcessingUnits(GPUs).TheFRVT1:1activity,whichremainsopen,166documentsrelativeGPUvsCPUspeed.167

2.4. Operatingsystem,compilation,andlinkingenvironment168

Theoperatingsystemthatthesubmittedimplementationsshallrunonwillbereleasedasadownloadablefileaccessible169fromhttp://nigos.nist.gov:8080/evaluations/CentOS-7-x86_64-Everything-1511.iso,whichisthe64-bitversionofCentOS1707.2runningLinuxkernel3.10.0.171

Forthistest,MacOSandWindows-compiledlibrariesarenotpermitted.AllsoftwaremustrununderCentOS7.2.172

NISTwilllinktheprovidedlibraryfile(s)toourC++languagetestdrivers.Participantsarerequiredtoprovidetheirlibrary173inaformatthatisdynamically-linkableusingtheC++11compiler,g++version4.8.5.174

Atypicallinklinemightbe175g++ -std=c++11 -I. -Wall -m64 -o frvt1N frvt1N.cpp -L. –lfrvt1N_acme_0 176

TheStandardC++libraryshouldbeusedfordevelopment.Theprototypesfromthisdocumentwillbewrittentoafile177"frvt1N.h"whichwillbeincludedvia#include.178

Theheaderfileswillbemadeavailabletoimplementersathttps://github.com/usnistgov/frvt.Allalgorithmsubmissions179willbebuiltagainsttheofficiallypublishedheaderfiles–developersshouldnotaltertheheaderfileswhencompilingand180buildingtheirlibraries.181

Allcompilationandtestingwillbeperformedonx86_64platforms.Thus,participantsarestronglyadvisedtoverify182library-levelcompatibilitywithg++(onanequivalentplatform)priortosubmittingtheirsoftwaretoNISTtoavoidlinkage183problemslateron(e.g.symbolnameandcallingconventionmismatches,incorrectbinaryfileformats,etc.).184

2.5. Softwareanddocumentation185

2.5.1. Libraryandplatformrequirements186ParticipantsshallprovideNISTwithbinarycodeonly(i.e.nosourcecode).Theimplementationshouldbesubmittedin187theformofadynamically-linkedlibraryfile.188

ThecorelibraryshallbenamedaccordingtoTable2.Additionalsupplementallibrariesmaybesubmittedthatsupport189this“core”libraryfile(i.e.the“core”libraryfilemayhavedependenciesimplementedintheseotherlibraries).190Supplementallibrariesmayhaveanyname,butthe“core”librarymustbedependentonsupplementallibrariesinorder191tobelinkedcorrectly.TheonlylibrarythatwillbeexplicitlylinkedtotheFRVTtestdriveristhe“core”library.192

IntelIntegratedPerformancePrimitives(IPP)®librariesarepermittediftheyaredeliveredasapartofthedeveloper-193suppliedlibrarypackage.Itistheprovider’sresponsibilitytoestablishproperlicensingofalllibraries.TheuseofIPP194librariesshallnotpreventrunningonCPUsthatdonotsupportIPP.PleasetakenotethatsomeIPPfunctionsare195multithreadedandthreadedimplementationsareprohibited.196

NISTwillreportthesizeofthesuppliedlibraries.1973cat/proc/cpuinforeturnsfpuvmedepsetscmsrpaemcecx8apicsepmtrrpgemcacmovpatpse36clflushdtsacpimmxfxsrssesse2sshttmpbesyscallnxpdpe1gbrdtscplmconstant_tscarch_perfmonpebsbtsrep_goodnoplxtopologynonstop_tscaperfmperfpnipclmulqdqdtes64monitords_cplvmxsmxesttm2ssse3cx16xtprpdcmpciddcasse4_1sse4_2popcntaeslahf_lmidaaratdthermtpr_shadowvnmiflexpriorityeptvpid4cat/proc/cpuinforeturnsfpuvmedepsetscmsrpaemcecx8apicsepmtrrpgemcacmovpatpse36clflushdtsacpimmxfxsrssesse2sshttmpbesyscallnxpdpe1gbrdtscplmconstant_tscarch_perfmonpebsbtsrep_goodnoplxtopologynonstop_tscaperfmperfeagerfpupnipclmulqdqdtes64monitords_cplvmxsmxesttm2ssse3fmacx16xtprpdcmpciddcasse4_1sse4_2x2apicmovbepopcnttsc_deadline_timeraesxsaveavxf16crdrandlahf_lmabm3dnowprefetchidaaratepbplnptsdthermtpr_shadowvnmiflexpriorityeptvpidfsgsbasetsc_adjustbmi1hleavx2smepbmi2ermsinvpcidrtmcqmrdseedadxsmapxsaveoptcqm_llccqm_occup_llc

Page 7: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page7of18

Table2–Implementationlibraryfilenameconvention198Form libfrvt1N_provider_sequence.endingUnderscoredelimitedpartsofthefilename

libfrvt1N provider sequence ending

Description Firstpartofthename,requiredtobethis.

Singleword,non-infringingnameofthemainproviderEXAMPLE:Acme

Aonedigitdecimalidentifiertostartat0andincrementedby1foreachdistinctalgorithmsenttoNIST.Donotincrementthisnumberwhensubmittingbug-fixedupdates.

.so

Example libfrvt1N_acme_0.so

2.5.2. Configurationanddeveloper-defineddata199Theimplementationundertestmaybesuppliedwithconfigurationfilesandsupportingdatafiles.Thesemightinclude,200forexample,model,calibrationorbackgroundfeaturedata.NISTwillreportthesizeofthesuppliedconfigurationfiles.201

2.5.3. Submissionfolderhierarchy202Participantsubmissionsshallcontainthefollowingfoldersatthetoplevel203

― lib/-containsallparticipant-suppliedsoftwarelibraries204

― config/-containsallconfigurationanddeveloper-defineddata205

― doc/-containsversion.txt,whichdocumentsversioninginformationforthesubmittedsoftwareandanyother206participant-provideddocumentationregardingthesubmission207

― validation/-containsvalidationoutput208

2.5.4. Installationandusage209Theimplementationshallbeinstallableusingsimplefilecopymethods.Itshallnotrequiretheuseofaseparate210installationprogramandshallbeexecutableonanynumberofmachineswithoutrequiringadditionalmachine-specific211licensecontrolproceduresoractivation.Theimplementationshallnotusenorenforceanyusagecontrolsorlimitsbased212onlicenses,numberofexecutions,presenceoftemporaryfiles,etc.Theimplementationshallremainoperableforat213leasttwelvemonthsfromthesubmissiondate.214

2.6. Runtimebehavior215

2.6.1. Modesofoperation216ImplementationsshallnotrequireNISTtoswitch“modes”ofoperationoralgorithmparameters.Forexample,theuseof217twodifferentfeatureextractorsmusteitheroperateautomaticallyorbesplitacrosstwoseparatelibrarysubmissions.218

2.6.2. Interactivebehavior,stdout,logging219Theimplementationwillbetestedinnon-interactive“batch”mode(i.e.withoutterminalsupport).Thus,thesubmitted220libraryshall:221

― Notuseanyinteractivefunctionssuchasgraphicaluserinterface(GUI)calls,oranyothercallswhichrequireterminal222interactione.g.readsfrom“standardinput”.223

― Runquietly,i.e.itshouldnotwritemessagesto"standarderror"andshallnotwriteto“standardoutput”.224

― OnlyifrequestedbyNISTfordebugging,includealoggingfacilityinwhichdebuggingmessagesarewrittentoalog225filewhosenameincludestheproviderandlibraryidentifiersandtheprocessPID.226

Page 8: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page8of18

2.6.3. Exceptionhandling227Theapplicationshouldincludeerror/exceptionhandlingsothatinthecaseofafatalerror,thereturncodeisstill228providedtothecallingapplication.229

2.6.4. Externalcommunication230ProcessesrunningonNISThostsshallnotside-effecttheruntimeenvironmentinanymanner,exceptformemory231allocationandrelease.Implementationsshallnotwriteanydatatoexternalresource(e.g.server,file,connection,or232otherprocess),norreadfromsuch,norotherwisemanipulateit.Ifdetected,NISTwilltakeappropriatesteps,including233butnotlimitedto,cessationofevaluationofallimplementationsfromthesupplier,notificationtotheprovider,and234documentationoftheactivityinpublishedreports.235

2.6.5. Statelessbehavior236Allcomponentsinthistestshallbestateless,exceptasnoted.Thisappliestofacedetection,featureextractionand237matching.Thus,allfunctionsshouldgiveidenticaloutput,foragiveninput,independentoftheruntimehistory.NIST238willinstituteappropriateteststodetectstatefulbehavior.Ifdetected,NISTwilltakeappropriatesteps,includingbutnot239limitedto,cessationofevaluationofallimplementationsfromthesupplier,notificationtotheprovider,and240documentationoftheactivityinpublishedreports.241

2.6.6. Single-threadrequirementandparallelization242Implementationsmustruninsingle-threadedmode,becauseNISTwillparallelizethetestbydividingtheworkloadacross243manycoresandmanymachines.Implementationsmustensurethattherearenoissueswiththeirsoftwarebeing244parallelizedviathefork()function.245

2.7. Timelimits246TheelementalfunctionsoftheimplementationsshallexecuteunderthetimeconstraintsofTable3.Thesetimelimits247applytothefunctioncallinvocationsdefinedinsection4.Assumingthetimesarerandomvariables,NISTcannotregulate248themaximumvalue,sothetimelimitsare90-thpercentiles.Thismeansthat90%ofalloperationsshouldtakelessthan249theidentifiedduration.Timingwillbeestimatedfromatleast1000separateinvocationsofeachelementalfunction.250

Thetimelimitsapplyperimage.251

Table3–Processingtimelimitsinseconds,per640x480colorimage,onasingleCPU252

Function 1:NTemplateGeneration 11:Nfinalization(ongalleryof1millionenrolledtemplates) 400001:Nsearchfor:

- N=1millionenrolledtemplates- L=100returnedcandidates

25

2.8. Templatesizelimits253NISTanticipatesevaluatingperformancewithNwellinexcessof107.Forimplementationsthatrepresentagalleryin254memorywithalineardatastructure,thememoryofourmachinesimpliesalimitontemplatesizes.Thus,foratemplate255sizeB,thetotalmemoryrequirementwouldbeaboutNB.NISTanticipatesrunningthelargestNvaluesonmachines256equippedwith768GBormemory.WithN=25million,templatesshouldnotexceed32KB.257

TheAPI,however,supportsmulti-stagesearchesandreadaccessofthediskduringthe1:Nsearch.Diskaccesswould258likelybeveryslow.Inallcases,algorithmsshallconformtothesearchdurationlimitsgiveninTable3,withlinearscaling.259

Page 9: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page9of18

3. DatastructuressupportingtheAPI260

3.1. Requirement261FRVT1:NparticipantsshallimplementtherelevantC++prototypedinterfacesofsection4.C++waschoseninorderto262makeuseofsomeobject-orientedfeatures.263

3.2. Fileformatsanddatastructures264

3.2.1. Overview265

Inthisfacerecognitiontest,anindividualisrepresentedbyK³1two-dimensionalfacialimages.Mostimageswillcontain266exactlyoneface.Inasmallfractionoftheimages,other,smaller,faceswillappearinthebackground.Algorithmsshould267detectoneforegroundface(thebiggestone)ineachimageandproduceonetemplate.268

Table4–Structureforasingleimage269C++codefragment Remarkstypedef struct Image { uint16_t width; Numberofpixelshorizontally uint16_t height; Numberofpixelsvertically uint16_t depth; Numberofbitsperpixel.Legalvaluesare8and24. std::shared_ptr<uint8_t> data; Managedpointertorasterscanneddata.EitherRGBcoloror

intensity.Ifimage_depth==24thispointsto3WHbytesRGBRGBRGB...Ifimage_depth==8thispointstoWHbytesIIIIIII

Label description; Singledescriptionoftheimage.TheallowedvaluesforthisfieldarespecifiedintheenumerationinTable5.

} Image;

AnImagewillbeaccompaniedbyoneofthelabelsgivenbelow.Facerecognitionimplementationsshouldtolerate270Imagesofanycategory.271

Table5–LabelsdescribingcategoriesofImages272LabelasC++enumeration Meaningenum class Label { UNKNOWN=0, Eitherthelabelisunknownorunassigned. ISO, Frontal,intendedtobeinconformitytoISO/IEC19794-5:2005. MUGSHOT, Fromlawenforcementbookingprocesses.Nominallyfrontal. PHOTOJOURNALISM, Theimagemightappearinanewssourceormagazine.Theimagesare

typicallytakenbyprofessionalphotographerandarewellexposedandfocusedbutexhibitposeandilluminationvariations.

EXPLOITATION, Theimageistakenfromachildexploitationdatabase.Thisimageryhashighlyunconstrainedposeandillumination,expressionandresolution.

WILD Unconstrainedimage,takenbyanamateurphotographer,exhibitingwidevariationsinpose,illumination,andresolution.

};

Table6–Structureforasetofimagesfromasingleperson273C++codefragment Remarksusing Multiface = std::vector<Image>; VectorofImageobjects

Page 10: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page10of18

3.2.2. Datastructureforeyecoordinates274Implementationsshallreturneyecoordinatesofeachfacialimage.Thisfunction,whilenotnecessaryforarecognition275test,willassistNISTinassuringthecorrectnessofthetestdatabase.TheprimarymodeofusewillbeforNISTtoinspect276imagesforwhicheyecoordinatesarenotreturned,ordifferbetweenimplementations.277

TheeyecoordinatesshallfollowtheplacementsemanticsoftheISO/IEC19794-5:2005standard-thegeometric278midpointsoftheendocanthionandexocanthion(seeclause5.6.4oftheISOstandard).279

Sense:Thelabel"left"referstosubject'slefteye(andsimilarlyfortherighteye),suchthatxright<xleft.280

Table7–Structureforapairofeyecoordinates281C++codefragment Remarkstypedef struct EyePair { bool isLeftAssigned; Ifthesubject’slefteyecoordinateshavebeencomputedandassigned

successfully,thisvalueshouldbesettotrue,otherwisefalse. bool isRightAssigned; Ifthesubject’srighteyecoordinateshavebeencomputedandassigned

successfully,thisvalueshouldbesettotrue,otherwisefalse. uint16_t xleft; XandYcoordinateofthecenterofthesubject'slefteye.Iftheeye

coordinateisoutofrange(e.g.x<0orx>=width),isLeftAssignedshouldbesettofalse.

uint16_t yleft;

uint16_t xright; XandYcoordinateofthecenterofthesubject'srighteye.Iftheeyecoordinateisoutofrange(e.g.x<0orx>=width),isRightAssignedshouldbesettofalse.

uint16_t yright;

} EyePair;

3.2.3. Templaterole282Labelsdescribingthetype/roleofthetemplatetobegeneratedwillbeprovidedasinputtotemplategeneration.This283supportsasymmetricalgorithmswheretheenrollmentandrecognitiontemplatesmaydifferincontentandsize.284

Table8–Labelsdescribingtemplaterole285LabelasC++enumeration Meaningenum class TemplateRole { Enrollment_1N, Enrollmenttemplatefor1:Nidentification Search_1N Searchtemplatefor1:Nidentification};

3.2.4. Datatypeforsimilarityscores286Identificationandverificationfunctionsshallreturnameasureofthesimilaritybetweenthefacedatacontainedinthe287twotemplates.Thedatatypeshallbeaneight-bytedoubleprecisionreal.Thelegalrangeis[0,DBL_MAX],wherethe288DBL_MAXconstantislargerthanpracticallyneededanddefinedinthe<climits>includefile.Largervaluesindicatemore289likelihoodthatthetwosamplesarefromthesameperson.290

Providersarecautionedthatalgorithmsthatnativelyproducefewuniquevalues(e.g.integerson[0,127])willbe291disadvantagedbytheinabilitytosetathresholdprecisely,asmightberequiredtoattainafalsepositiveidentification292rateofexactly0.0001,forexample.293

3.2.5. Filestructureforenrolledtemplatecollection294Tosupportthis1:Ntest,NISTwillconcatenateenrollmenttemplatesintoasinglelargefile,theEDB(forenrollment295database).TheEDBisasimplebinaryconcatenationofproprietarytemplates.Thereisnoheader.Thereareno296delimiters.TheEDBmaybemanygigabytesinlength.297

Page 11: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page11of18

Thisfilewillbeaccompaniedbyamanifest;thisisanASCIItextfiledocumentingthecontentsoftheEDB.Themanifest298hastheformatshownasanexampleinTable9.IftheEDBcontainsNtemplates,themanifestwillcontainNlines.The299fieldsarespace(ASCIIdecimal32)delimited.Therearethreefields.Strictlyspeaking,thethirdcolumnisredundant.300

Important:Ifacalltothetemplategenerationfunctionfails,ordoesnotreturnatemplate,NISTwillincludetheTemplate301IDinthemanifestwithsize0.Implementationsmusthandlethisappropriately.302

Table9–Enrollmentdatasettemplatemanifest303Fieldname TemplateID TemplateLength PositionoffirstbyteinEDBDatatyperequired std::string uint64_t uint64_tExamplelinesofamanifestfileappeartotheright.Lines1,2,3andNappear.

90201744 1024 0person01 1536 10247456433 512 2560... subject12 1024 307200000

304TheEDBschemeavoidsthefilesystemoverheadassociatedwithstoringmillionsofsmallindividualfiles.305

3.2.6. GalleryType306

307Figure1–Illustrationofconsolidatedversusunconsolidatedenrollmentdatabase5308

Figure1illustratestwotypesofgalleries:309

― Consolidated:Thedatabaseisformedbyenrollingallimagesofasubjectunderacommonidentitylabel.Theresult310isagallerywithNidentitiesandNtemplates.Thistypeofgallerypresentsuswiththecleanestexperimentaldesign,311“oneneedleinahaystack”scenario.Itallowsalgorithmstoperformimageandfeaturelevelfusion.Operationallyit312requireshighintegritybiographicalinformationtomaintain.313

― Unconsolidated:Thedatabaseisformedbyenrollingphotographswithoutregardtowhetherthesubjectalreadyhas314alreadybeenenrolledornot.Underthisscheme,differentimagesofthesamepersoncanexistinthegalleryunder315differentsubjectidentifiers,thatis,thereareNidentities,andM>Ndatabaseentries.316

Duringgalleryfinalization,algorithmswillbeprovidedwithanenumeratedlabelfromTable10whichspecifiesthetypeof317gallerybeingprocessed.318

5ThefaceimagescontainedinthisfigurearefromthepubliclyavailableSpecialDatabase32-MultipleEncounterDataset(MEDS).https://www.nist.gov/itl/iad/image-group/special-database-32-multiple-encounter-dataset-meds

Page 12: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page12of18

Table10–Labelsdescribinggallerycomposition319LabelasC++enumeration Meaningenum class GalleryType { Consolidated, Consolidated,subject-basedenrollment Unconsolidated Unconsolidated,event-basedorphoto-basedenrollment};

3.2.7. Datastructureforresultofanidentificationsearch320AllidentificationsearchesshallreturnacandidatelistofaNIST-specifiedlength.Thelistshallbesortedwiththemost321similarmatchingentrieslistfirstwithlowestrank.ThedatastructureshallbethatofTable11.322

Table11–Structureforacandidate323 C++codefragment Remarks1. typedef struct Candidate 2. { 3. bool isAssigned; Ifthecandidatecomputationsucceeded,thisvalueissettotrue.Falseotherwise.

Ifvalueissettofalse,similarityScoreandtemplateIdwillbeignoredentirely.4. std::string templateId; TheTemplateIDfromtheenrollmentdatabasemanifestdefinedinclause3.2.5.5. double similarityScore; Measureofsimilaritybetweentheidentificationtemplateandtheenrolledcandidate.

Higherscoresmeanmorelikelihoodthatthesamplesareofthesameperson.

Analgorithmisfreetoassignanyvalue[0,DBL_MAX]toacandidate.Thedistributionofvalueswillhaveanimpactonthefalse-negativeandfalse-positiveidentificationrates.

6. } Candidate;

3.2.8. DatastructureforreturnvalueofAPIfunctioncalls324

Table12–Enumerationofreturncodes325ReturncodeasC++enumeration Meaningenum class ReturnCode { Success=0, Success ConfigError, Errorreadingconfigurationfiles RefuseInput, Electiverefusaltoprocesstheinput,e.g.becausecannothandlegreyscale ExtractError, Involuntaryfailuretoprocesstheimage,e.g.aftercatchingexception ParseError, Cannotparsetheinputdata TemplateCreationError, Electiverefusaltoproducea“non-blank”template(e.g.insufficientpixels

betweentheeyes) VerifTemplateError, Formatching,eitherorbothoftheinputtemplateswereresultoffailed

featureextraction FaceDetectionError, Unabletodetectafaceintheimage NumDataError, Theimplementationcannotsupportthenumberofimages TemplateFormatError, Templatefileisinanincorrectformatordefective EnrollDirError, Anoperationontheenrollmentdirectoryfailed(e.g.permission,space) InputLocationError, Cannotlocatetheinputdata–theinputfilesornamesseemincorrect MemoryError, Memoryallocationfailed(e.g.outofmemory) NotImplemented, Functionisnotimplemented VendorError, Vendor-definedfailure.Vendorerrorsshallreturnthiserrorcodeand

documentthespecificfailureintheReturnStatus.infostringfromTable13.};

326327328

Page 13: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page13of18

Table13–ReturnStatusstructure329C++codefragment Meaningstruct ReturnStatus { ReturnCode code; ReturnCode std::string info; Optionalinformationstring // constructors };

330

4. APIspecification331

PleasenotethatincludedwiththeFRVT1:Nvalidationpackage(availableathttps://github.com/usnistgov/frvt)isa“null”332implementationofthisAPI.Thenullimplementationhasnorealfunctionalitybutdemonstratesmechanicallyhowone333couldgoaboutimplementingthisAPI.334

4.1. Namespace335AlldatastructuresandAPIinterfaces/functioncallswillbedeclaredintheFRVTnamespace.336

4.2. Overview337The1:Nidentificationapplicationproceedsinthreephases:enrollment,finalizationandidentification.Theidentification338phaseincludesseparateprobefeatureextractionandsearchstages.339

Thedesignreflectsthefollowingtestingobjectivesfor1:Nimplementations.340

- supportdistributedenrollmentonmultiplemachines,withmultipleprocessesrunninginparallel- allowrecoveryafterafatalexception,andmeasurethenumberofoccurrences- allowNISTtocopyenrollmentdataontomanymachinestosupportparalleltesting- respecttheblack-boxnatureofbiometrictemplates- extendcompletefreedomtotheprovidertousearbitraryalgorithms- supportmeasurementofdurationofcorefunctioncalls- supportmeasurementoftemplatesize- supportmeasurementoftemplateinsertionandremovaltimesintoanenrollmentdatabase

Table14–Proceduraloverviewofthe1:Ntest341

Phase # Name Description PerformanceMetricstobe

reportedbyNIST

Enrollm

ent

E1 Initialization initializeTemplateCreation(TemplateRole=Enrollment_1N)

Givetheimplementationthenameofadirectorywhereanyprovider-suppliedconfigurationdatawillhavebeenplacedbyNIST.Thislocationwillotherwisebeempty.

Theimplementationispermittedread-onlyaccesstotheconfigurationdirectory.

E2 ParallelEnrollment createTemplate(TemplateRole=Enrollment_1N)

ForeachofNindividuals,passK=1imageoftheindividualtotheimplementationforconversiontoatemplate.Theimplementationwillreturnatemplatetothecallingapplication.

NIST'scallingapplicationwillberesponsibleforstoringalltemplatesasbinaryfiles.Thesewillnotbeavailabletotheimplementationduringthisenrollmentphase.

Multipleinstancesofthecallingapplicationmayrunsimultaneouslyorsequentially.Thesemaybeexecutingondifferentcomputers.

Statisticsofthetimesneededtoenrollanindividual.

Statisticsofthesizesofcreatedtemplates.

Theincidenceoffailedtemplatecreations.

E3 Finalization finalizeEnrollment()

Permanentlyfinalizetheenrollmentdirectory.Thissupports,forexample,adaptation

Sizeoftheenrollmentdatabaseasafunctionof

Page 14: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page14of18

oftheimage-processingfunctions,adaptationoftherepresentation,writingofamanifest,indexing,andcomputationofstatisticalinformationovertheenrollmentdataset.

Theimplementationispermittedread-write-deleteaccesstotheenrollmentdirectoryduringthisphase.

populationsizeN.

Durationofthisoperation.Thetimeneededtoexecutethisfunctionshallbereportedwiththeprecedingenrollmenttimes.

Prob

eTemplateCreatio

n

S1 Initialization initializeTemplateCreation(TemplateRole=Search_1N)

Givetheimplementationthenameofadirectorywhereanyprovider-suppliedconfigurationdatawillhavebeenplacedbyNIST.Thislocationwillotherwisebeempty.

Theimplementationispermittedread-onlyaccesstotheconfigurationdirectory.

Statisticsofthetimeneededforthisoperation.

S2 Templatepreparation

createTemplate(TemplateRole=Search_1N)

Foreachprobe,createatemplatefromK>=1image.

Theresultofthisstepisasearchtemplate.Multipleinstancesofthecallingapplicationmayrunsimultaneouslyorsequentially.Thesemaybeexecutingondifferentcomputers.

Statisticsofthetimeneededforthisoperation.

Statisticsofthesizeofthesearchtemplate.

Search

S3 Initialization initializeIdentification()

Telltheimplementationthelocationofanenrollmentdirectory.Theimplementationshouldreadallorsomeoftheenrolleddataintomainmemory,sothatsearchescancommence.

Theimplementationispermittedread-onlyaccesstotheenrollmentdirectoryduringthisphase.

Statisticsofthetimeneededforthisoperation.

S4 Search identifyTemplate()

Atemplateissearchedagainsttheenrollmentdatabase.

DevelopersshallnotattempttoimprovethedurationoftheidentifyTemplate()functionbyoffloadinganyofitsprocessingintothecreateTemplate()function.

Statisticsofthetimeneededforthisoperation.

Accuracymetrics-TypeI+IIerrorrates.

Failurerates.

GalleryIn

sertand

Rem

ove

G1 Initialization initializeIdentification()

Telltheimplementationthelocationofanenrollmentdirectory.Theimplementationshouldreadallorsomeoftheenrolleddataintomainmemory,sothatsearchescancommence.

Theimplementationispermittedread-onlyaccesstotheenrollmentdirectoryduringthisphase.

Statisticsofthedurationoftheoperation.

G2 Templateinsertion/removalinto/fromgallery

galleryInsertID()/galleryDeleteID()

galleryInsertID()isexecutedoneormoretimestoinsertatemplatecreatedwithcreateTemplate(TemplateRole=Enrollment_1N)intothegallery.

galleryDeleteID()isexecutedoneormoretimestoremoveatemplatefromthegallery.

Statisticsofthedurationoftheoperation.

G3 Search identifyTemplate()

Atemplateissearchedagainsttheenrollmentdatabase.

Statisticsofthedurationoftheoperation.

Accuracymetrics-TypeI+IIerrorrates.

342

343

Page 15: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page15of18

4.3. API344

4.3.1. Interface345ThesoftwareundertestmustimplementtheinterfaceIdentInterfacebysubclassingthisclassandimplementing346eachmethodspecifiedtherein.347

C++codefragment Remarks1. Class IdentInterface 2. {

public:

3. static std::shared_ptr<IdentInterface> getImplementation(); FactorymethodtoreturnamanagedpointertotheIdentInterfaceobject.ThisfunctionisimplementedbythesubmittedlibraryandmustreturnamanagedpointertotheIdentInterfaceobject.

4. // Other functions to implement 5. };

Thereisoneclass(static)methoddeclaredinIdentInterface.getImplementation()whichmustalsobe348implemented.Thismethodreturnsasharedpointertotheobjectoftheinterfacetype,aninstantiationofthe349implementationclass.Atypicalimplementationofthismethodisalsoshownbelowasanexample.350

C++codefragment Remarks #include “frvt1N.h”

using namespace FRVT; NullImpl:: NullImpl () { } NullImpl::~ NullImpl () { } std::shared_ptr<IdentInterface> IdentInterface::getImplementation() { return std::make_shared<NullImpl>(); } // Other implemented functions

4.3.2. Initializationoftemplatecreation351Beforeanyfeatureextraction/templatecreationcallsaremade,theNISTtestharnesswillcalltheinitializationfunctionof352Table15.ThisfunctionwillbecalledBEFOREanycallstofork()aremade.353

Table15–Templatecreationinitialization354

Prototype ReturnStatusinitializeTemplateCreation( conststd::string&configDir, InputTemplateRolerole); Input

Description

Thisfunctioninitializestheimplementationundertestandsetsallneededparametersinpreparationfortemplatecreation.ThisfunctionwillbecalledN=1timesbytheNISTapplication,priortoparallelizingM>=1callstocreateTemplate()viafork(). Thisfunctionwillbecalledfromasingleprocess/thread.

InputParameters configDir Aread-onlydirectorycontaininganydeveloper-suppliedconfigurationparametersorrun-timedatafiles.

role AvaluefromtheTemplateRoleenumerationthatindicatestheintendedusageofthetemplatetobegenerated.Inthiscase,eitherEnrollment_1NorSearch_1N.

OutputParameters

None

ReturnValue SeeTable12forallvalidreturncodevalues.

Page 16: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page16of18

4.3.3. TemplateCreation356AMultifaceisconvertedtoasingletemplateusingthefunctionofTable16.357

Table16–TemplateCreation/FeatureExtraction358

Prototypes ReturnStatuscreateTemplate( constMultiface&faces, InputTemplateRolerole, Inputstd::vector<uint8_t>&templ,std::vector<EyePair>&eyeCoordinates);

OutputOutput

Description TakesaMultifaceandoutputsaproprietarytemplateandassociatedeyecoordinates.Thevectortostorethetemplatewillbeinitiallyempty,anditisuptotheimplementationtopopulateitwiththeappropriatedata.

Note:Intheeventthatmorethanonefaceisdetectedinanimage,featuresshouldbeextractedfromtheforegroundface,thatis,thelargestfaceintheimage.

Forenrollmenttemplates(TemplateRole=Enrollment_1N):Ifthefunctionexecutescorrectly(i.e.returnsasuccessfulreturncode),thetemplatewillbeenrolledintoagallery.TheNISTcallingapplicationmaystoretheresultingtemplate,concatenatemanytemplates,andpasstheresulttotheenrollmentfinalizationfunction(seesection4.3.4).Theresultingtemplatemayalsobeinsertedimmediatelyintopreviouslyfinalizedgallery.Whentheimplementationfailstoproduceatemplate(i.e.returnsanon-successfulreturncode),itshallstillreturnablanktemplate(whichcanbezerobytesinlength).Thetemplatewillbeincludedintheenrollmentdatabase/manifestlikeallotherenrollmenttemplates,butisnotexpectedtocontainanyfeatureinformation.

IMPORTANT:NIST'sapplicationwritesthetemplatetodisk.Anydataneededduringsubsequentsearchesshouldbeincludedinthetemplate,orcreatedfromthetemplatesduringtheenrollmentfinalizationfunctionofsection4.3.4.

Foridentification/probetemplates(TemplateRole=Search_1N):TheNISTcallingapplicationmaycommitthetemplatetopermanentstorage,ormaykeepitonlyinmemory(thedeveloperimplementationdoesnotneedtoknow).Ifthefunctionreturnsanon-successfulreturnstatus,theoutputtemplatewillnotbeusedinsubsequentsearchoperations.

InputParameters

face InputMultifacerole Labeldescribingthetype/roleofthetemplatetobegenerated.Inthiscase,itwilleitherbe

Enrollment_1NorSearch_1N.OutputParameters

templ Theoutputtemplate.Theformatisentirelyunregulated.Thiswillbeanemptyvectorwhenpassedintothefunction,andtheimplementationcanresizeandpopulateitwiththeappropriatedata.

eyeCoordinates Thefunctionshallreturntheestimatedeyecentersfortheinputfaceimage.ReturnValue SeeTable12forallvalidreturncodevalues.

4.3.4. Finalization359Afteralltemplateshavebeencreated,thefunctionofTable17willbecalled.Thisfreezestheenrollmentdata.Afterthis360calltheenrollmentdatasetwillbeforeverread-only.361

Thefunctionallowstheimplementationtoconduct,forexample,statisticalprocessingofthefeaturedata,indexingand362datare-organization.Thefunctionmayalterthefilestructure.Itmayincreaseordecreasethesizeofthestoreddata.363Nooutputisexpectedfromthisfunction,exceptareturncode.364

Implementationsshallnotmovetheinputdata.Implementationsshallnotpointtotheinputdata.Implementations365shouldnotassumetheinputdatawillbereadableafterthecall.Implementationsmust,ataminimum,copytheinput366dataorotherwiseextractwhatisneededforsearch.367

Table17–Enrollmentfinalization368

Prototypes ReturnStatusfinalizeEnrollment( conststd::string&enrollmentDir, Inputconststd::string&edbName, Inputconststd::string&edbManifestName, InputGalleryTypegalleryType); Input

Page 17: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page17of18

Description Thisfunctiontakesthenameofthetop-leveldirectorywheretheenrollmentdatabase(EDB)anditsmanifesthavebeenstored.Thesearedescribedinsection3.2.5.Theenrollmentdirectorypermissionswillberead+write.

Thefunctionsupportspost-enrollment,developer-optional,book-keepingoperations,statisticalprocessinganddatare-orderingforfastin-memorysearching.Thefunctionwillgenerallybecalledinaseparateprocessafteralltheenrollmentprocessesarecomplete.

Thisfunctionshouldbetolerantofbeingcalledtwoormoretimes.Secondandthirdinvocationsshouldprobablydonothing.

Thisfunctionwillbecalledfromasingleprocess/thread.

InputParameters

enrollmentDir Thetop-leveldirectoryinwhichenrollmentdatawasplaced.Thisvariableallowsanimplementationtolocateanyprivateinitializationdataitelectedtoplaceinthedirectory.

edbName Thenameofasinglefilecontainingconcatenatedtemplates,i.e.theEDBofsection3.2.5.Whilethefilewillhaveread-write-deletepermission,theimplementationshouldonlyalterthefileifitpreservesthenecessarycontent,inotherfilesforexample.Thefilemaybeopeneddirectly.Itisnotnecessarytoprependadirectoryname.ThisisaNIST-providedinput–implementersshallnotinternallyhard-codeorassumeanyvalues.

edbManifestName ThenameofasinglefilecontainingtheEDBmanifestofsection3.2.5.Thefilemaybeopeneddirectly.Itisnotnecessarytoprependadirectoryname.ThisisaNIST-providedinput–implementersshallnotinternallyhard-codeorassumeanyvalues.

galleryType AlabelfromTable10specifyingthecompositionofthegallery.

OutputParameters

None

ReturnValue SeeTable12forallvalidreturncodevalues.

369

4.3.5. SearchInitialization370ThefunctionofTable18willbecalledoncepriortooneormorecallsofthesearchingfunctionofTable19.Thefunction371mightsetstaticinternalvariablessothattheenrollmentdatabaseisavailabletothesubsequentidentificationsearches.372ThisfunctionwillbecalledBEFOREanycallstofork()aremade.373

Table18–Identificationinitialization374

Prototype ReturnStatusinitializeIdentification( conststring&configDir, Inputconststring&enrollmentDir); Input

Description ThisfunctionreadswhatevercontentispresentintheenrollmentDir,forexampleamanifestplacedtherebythefinalizeEnrollment()function.Thisfunctionwillbecalledfromasingleprocess/thread.

InputParameters configDir Aread-onlydirectorycontaininganydeveloper-suppliedconfigurationparametersorrun-timedatafiles.

enrollmentDir Theread-onlytop-leveldirectoryinwhichenrollmentdatawasplaced.ReturnValue SeeTable12forallvalidreturncodevalues.

4.3.6. Search375ThefunctionofTable19comparesaproprietaryidentificationtemplateagainsttheenrollmentdataandreturnsa376candidatelist.377

Table19–Identificationsearch378

Prototype ReturnStatusidentifyTemplate( conststd::vector<uint8_t>&idTemplate, Inputconstuint32_tcandidateListLength, Inputstd::vector<Candidate>&candidateList, Outputbool&decision); Output

Page 18: Face Recognition Vendor Test FRVT 2018 Performance of ... · PDF fileFace Recognition Vendor Test FRVT 2018 Performance of Automated Face Identification Algorithms Concept, Evaluation

FaceRecognitionVendorTest1:N

NIST Concept,EvaluationPlanandAPI Page18of18

Description

Thisfunctionsearchesatemplateagainsttheenrollmentset,andoutputsalistofcandidates.ThecandidateListvectorwillinitiallybeempty,andtheimplementationshallpopulatethevectorwithcandidateListLengthentries.

InputParameters idTemplate AtemplatefromcreateTemplate(TemplateRole=Search_1N)-Ifthevaluereturnedbythatfunctionwasnon-zerothecontentsofidTemplatewillnotbeusedandthisfunction(i.e.identifyTemplate)willnotbecalled.

candidateListLength ThenumberofcandidatesthesearchshouldreturnOutputParameters

candidateList Avectorcontaining"candidateListLength"objectsofcandidates.Thedatatypeisdefinedinsection3.2.6.Eachcandidateshallbepopulatedbytheimplementation.Thecandidatesshallappearindescendingorderofsimilarityscore-i.e.mostsimilarentriesappearfirst.

decision Abestguessatwhetherthereisamatewithintheenrollmentdatabase.Iftherewasamatefound,thisvalueshouldbesettotrue,Otherwise,false.ManysuchdecisionsallowasinglepointtobeplottedalongsideaDET.

ReturnValue SeeTable12forallvalidreturncodevalues.379

NOTE: Ordinarilythecallingapplicationwillsettheinputcandidatelistlengthtooperationallytypicalvalues,say0£L£380200,andL<<N.WewillmeasurethedependenceofsearchdurationonL.381

4.3.7. Galleryinsertionandremovaloftemplates382Thefunctionsofthissectioninsertanewtemplateinto,andremovesanexistingtemplatefrom,afinalizedgallery,383respectively.384

Table20–Insertionoftemplateintoagallery385

Prototype ReturnStatusgalleryInsertID( conststd::vector<uint8_t>&templ, Inputconststd::string&id); Input

Description

Thisfunctioninsertsatemplatewithanassociatedidintoanexistingfinalizedgallery.InvocationofthisfunctionwillalwaysbeprecededbyacalltoinitializeIdentification(),whichwillprovidethelocationofthefinalizedgallerytobeloadedintomemory.OneormorecallstoidentifyTemplate()maybemadeaftercallingthisfunction.

ThetemplateIDwillnotexistinthedatabasealready,soa1:Nduplicatesearchisnotnecessary.

Thisfunctionwillbecalledfromasingleprocess/thread.

InputParameters templ AtemplatecreatedviacreateTemplate(TemplateRole=Enrollment_1N)id Anidentifierassociatedwiththeenrollmenttemplate

ReturnValue SeeTable12forallvalidreturncodevalues.

Table21–Removaloftemplatefromagallery386

Prototype ReturnStatusgalleryDeleteID( conststd::string&id); Input

Description

Thisfunctiondeletesanexistingtemplatefromafinalizedgallery.InvocationofthisfunctionwillalwaysbeprecededbyacalltoinitializeIdentification(),whichwillprovidethelocationofthefinalizedgallery.OneormorecallstoidentifyTemplatemaybemadebeforeandaftercallingthisfunction.

ThetemplateIDwillexistinthedatabase.

Thisfunctionwillbecalledfromasingleprocess/thread.

InputParameters id AnidentifierassociatedwiththeenrollmenttemplateReturnValue SeeTable12forallvalidreturncodevalues.387