Как добавить съемку документа и возможность сопоставления лиц в ваше веб- или мобильное приложение Пожалуйста, обратите внимание: в мобильных SDK Oz отсутствует интерфейс для съемки документов. Для этого вам потребуется ПО стороннего производителя или ваше собственное. В Web SDK возможность съемки документа есть.
Ниже описаны шаги, которые потребуется пройти для добавления сравнения лиц к Liveness-проверке.
К этому моменту вы, скорее всего, уже разобрались с тем, как снимать видео и проводить Liveness-проверки. Если нет, пожалуйста, ознакомьтесь со статьями:
Добавление съемки документа в Web SDK
Добавьте photo_id_front
в список действий для плагина.
Copy OzLiveness .open ({
lang : 'en' ,
action : [
'photo_id_front' ,
'video_selfie_blank'
] ,
...
});
Добавление сравнения лиц в Android SDK
Внимание: в данном случае мы предполагаем, что фотография (например, документа) хранится на устройстве под названием reference.jpg
.
Измените код, запускающий анализ:
Kotlin
Copy private fun analyzeMedia (mediaList: List < OzAbstractMedia >) {
val refFile = File (context.filesDir, "reference.jpg" )
val refMedia = OzAbstractMedia. OzDocumentPhoto (
OzMediaTag.PhotoIdFront , // OzMediaTag.PhotoSelfie для не являющегося документом фото
refFile.absolutePath
)
AnalysisRequest. Builder ()
. addAnalysis ( Analysis (Analysis.Type.QUALITY, Analysis.Mode.SERVER_BASED, mediaList))
. addAnalysis ( Analysis (Analysis.Type.BIOMETRY, Analysis.Mode.SERVER_BASED, mediaList + refMedia))
. build ()
. run ( object : AnalysisRequest . AnalysisListener {
override fun onSuccess (result: List < OzAnalysisResult >) {
result. forEach {
println (it.resolution.name)
println (it.folderId)
}
}
override fun onError (error: OzException ) {
error. printStackTrace ()
}
})
}
Java
Copy private void analyzeMedia( List< OzAbstractMedia > mediaList) {
File refFile = new File( context . getFilesDir() , "reference.jpg" ) ;
OzAbstractMedia refMedia = new OzAbstractMedia . OzDocumentPhoto (
OzMediaTag . PhotoIdFront , // OzMediaTag.PhotoSelfie for a non-ID photo
refFile . getAbsolutePath ()
);
ArrayList < OzAbstractMedia > mediaWithReferencePhoto = new ArrayList <>(mediaList);
mediaWithReferencePhoto . add (refMedia);
new AnalysisRequest . Builder ()
.addAnalysis(new Analysis(Analysis.Type.QUALITY, Analysis.Mode.SERVER_BASED, mediaList, Collections.emptyMap()))
.addAnalysis(new Analysis(Analysis.Type.BIOMETRY, Analysis.Mode.SERVER_BASED, mediaWithReferencePhoto, Collections.emptyMap()))
. build ()
. run ( new AnalysisRequest . AnalysisListener () {
@ Override public void onStatusChange(@ NonNull AnalysisRequest . AnalysisStatus analysisStatus) {}
@ Override
public void onSuccess(@ NonNull List< OzAnalysisResult > list) {
String folderId = list . get ( 0 ) . getFolderId ();
}
@ Override
public void onError(@ NonNull OzException e) { e . printStackTrace (); }
});
}
Для анализа на устройстве вместо Analysis.Mode.SERVER_BASED
укажите Analysis.Mode.ON_DEVICE
.
Код образца для Android находится здесь .
Добавление сравнения лиц в iOS SDK
Внимание: в данном случае мы предполагаем, что фотография (например, документа) хранится на устройстве под названием reference.jpg
.
Измените код, запускающий анализ:
Copy let imageURL = URL ( fileURLWithPath : NSTemporaryDirectory ())
. appendingPathComponent ( "reference.jpg" )
let refMedia = OZMedia. init ( movement : .selfie,
mediaType : .movement,
metaData : nil ,
videoURL : nil ,
bestShotURL : imageUrl,
preferredMediaURL : nil ,
timestamp : Date ())
var mediaBiometry = [OZMedia] ()
mediaBiometry. append ( refMedia )
mediaBiometry. append ( contentsOf : mediaToAnalyze )
let analysisRequest = AnalysisRequestBuilder ()
let analysisBiometry = Analysis. init ( media : mediaBiometry, type : .biometry, mode : .serverBased )
let analysisQuality = Analysis. init ( media : mediaToAnalyze, type : .quality, mode : .serverBased )
analysisRequest. addAnalysis ( analysisBiometry )
analysisRequest. addAnalysis ( analysisQuality )
analysisRequest. uploadMedia ( mediaBiometry )
analysisRequest. run (
scenarioStateHandler : { state in }, // обработчик шагов сценария
uploadProgressHandler : { (progress) in } // обработчик для загрузки файлов
) { ( analysisResults : [OzAnalysisResult], error) in
// получение и обработка анализов
for result in analysisResults {
print ( result.resolution )
print ( result.folderID )
}
}
Для анализа на устройстве вместо .serverBased
укажите .onDevice
.
Код образца для iOS находится здесь .
Для всех SDK
Чтобы получить доступ к снятым видео и результатам анализов, воспользуйтесь веб-консолью или API-запросами.
Методы как API, так и SDK могут гибко комбинироваться. Подробнее об этом вы можете прочитать в руководстве разработчика .