Пожалуйста, обратите внимание: в мобильных 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 Java
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()
}
})
}
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 могут гибко комбинироваться. Подробнее об этом вы можете прочитать в руководстве разработчика .