One To One para Android

Empezando


Para proceder, es indispensable generar una clave API con un tiempo de expiración definido.

Este proceso puede completarse fácilmente mediante el panel de administrado. Esto garantiza un acceso seguro y gestionado a los recursos necesarios durante el tiempo estipulado.

Para más detalles, consulta la documentación específica de cada método disponible a través de los siguientes enlaces:


Verificar V1


POST basePath/api/v1/oto/verify

Este endpoint compara dos imágenes con rostros, examinando cuidadosamente las características faciales como la forma de los ojos, nariz y boca. Para ser consideradas, la cara debe ocupar al menos el 25% de la imagen y debe estar directamente frente a la cámara. En caso de haber múltiples rostros, se seleccionará el más grande. El resultado es una puntuación de similitud entre los rostros analizados así como detalles respecto a la distancia y códigos de error.


Descripción de la Solicitud

Petición

 @POST("api/v1/oto/verify")
    suspend fun otoVerify(@Header("Authorization") auth: String,
@Body request: OtoVerifyRequest): Response<OtoVerifyResponse>

Agrega localización

Si deseas agregar localización a la ejecución del evento agrega las cabeceras Longitude y Latitude con los valores numericos de la ubicación de la cual se esta ejecutando tu petición.

 @POST("api/v1/oto/verify")
    suspend fun otoVerify(@Header("Authorization") auth: String, @Header("Latitude") latitude: String, @Header("Longitude") longitude: String, @Body request: OtoVerifyRequest): Response<OtoVerifyResponse>

Petición

data class OtoVerifyRequest(
    @SerializedName("image1") val image1: String, //base64
    @SerializedName("image2") val image2: String, //base64
)

Descripción de los parámetros

ParámetroDescripción
image1Cadena codificada en Base64 que representa la primera imagen.
image2Cadena codificada en Base64 que representa la segunda imagen.
eventIdIdentificador único del evento .

Respuesta

{
    "Verifyinfo": {
        "score": "float"
    },
    "eventId": "string",
    "state": {
        "rejectedBadQuality": "boolean",
        "rejectedAccessories": "boolean",
        "isSamePerson": "boolean",
        "message": "string"
    }
}
data class OtoVerifyResponse(
    @SerializedName("Verifyinfo") val verifyInfo: VerifyInfo,
    @SerializedName("eventId") val eventId: String,
    @SerializedName("state") val state: State
)

data class VerifyInfo(
    @SerializedName("score") val score: Float
)

data class State(
    @SerializedName("rejectedBadQuality") val rejectedBadQuality: Boolean,
    @SerializedName("rejectedAccessories") val rejectedAccessories: Boolean,
    @SerializedName("isSamePerson") val isSamePerson: Boolean,
    @SerializedName("message") val message: String
)

Descripción de los parámetros

ParámetroDescripción
VerifyinfoObjeto que contiene información de verificación.
scorePuntuación de tipo flotante que indica el resultado de la verificación.
eventIdIdentificador único del evento.
stateDescribe el estado de la validación de una imagen facial en comparación de rostros, determinando si pertenecen a la misma persona y evaluando la calidad y el uso de accesorios.
Ejemplos de Solicitudes
{
 "image1": "imageBase64",
 "image2": "imageBase64"
}
{
    "Verifyinfo": {
      "score": 98.9
    },
    "state": {
      "rejectedBadQuality": false,
      "rejectedAccessories": false,
      "isSamePerson": true,
      "message": ""
    }
    "eventId": "095a04cc-2ccd-4aca-9b46-5628c0511927"
}

Verificar V1.1


POST basePath/api/v1/oto/verify-codes

Este endpoint compara dos imágenes con rostros, examinando cuidadosamente las características faciales como la forma de los ojos, nariz y boca. Para ser consideradas, la cara debe ocupar al menos el 25% de la imagen y debe estar directamente frente a la cámara. En caso de haber múltiples rostros, se seleccionará el más grande. El resultado es una puntuación de similitud entre los rostros analizados.

>Descripción de la Solicitud

Petición

 @POST("api/v1/oto/verify-codes")
    suspend fun otoVerifyCodes(@Header("Authorization") auth: String, 
@Body request: OtoVerifyCodesRequest): Response<OtoVerifyCodesResponse>

Agrega localización

Si deseas agregar localización a la ejecución del evento agrega las cabeceras Longitude y Latitude con los valores numericos de la ubicación de la cual se esta ejecutando tu petición.

 @POST("api/v1/oto/verify-codes")
    suspend fun otoVerifyCodes(@Header("Authorization") auth: String, @Header("Latitude") latitude: String, @Header("Longitude") longitude: String, @Body request: OtoVerifyCodesRequest): Response<OtoVerifyCodesResponse>
data class OtoVerifyCodesRequest(
    @SerializedName("image1") val image1: String, //base64
    @SerializedName("image2") val image2: String, //base64
)

Descripción de los parámetros

ParámetroDescripción
image1Cadena codificada en Base64 que representa la primera imagen.
image2Cadena codificada en Base64 que representa la segunda imagen.
eventIdIdentificador único del evento .

Respuesta

{
    "Verifyinfo": {
        "score": "double",
        "code": ["integer"],
        "distance": "double"
    },
    "state": {
        "rejectedBadQuality": "boolean",
        "rejectedAccessories": "boolean",
        "isSamePerson": "boolean",
        "message": "string"
    },
    "eventId": "string"
}
data class OtoVerifyCodesResponse(
    @SerializedName("Verifyinfo") val verifyInfo: VerifyInfo,
    @SerializedName("state") val state: State,
    @SerializedName("eventId") val eventId: String
)

data class VerifyInfo(
    @SerializedName("score") val score: Double,
    @SerializedName("code") val code: List<Int>,
    @SerializedName("distance") val distance: Double
)

data class State(
    @SerializedName("rejectedBadQuality") val rejectedBadQuality: Boolean,
    @SerializedName("rejectedAccessories") val rejectedAccessories: Boolean,
    @SerializedName("isSamePerson") val isSamePerson: Boolean,
    @SerializedName("message") val message: String
)

Descripción de los parámetros

ParámetroDescripción
VerifyinfoObjeto que contiene información de verificación.
scorePuntuación de tipo flotante que indica el resultado de la verificación.
codeLista de enteros que representan códigos de estado o resultado.
distanceValor flotante que indica la distancia calculada, en este contexto, es 0.0.
eventIdIdentificador único del evento.
stateDescribe el estado de la validación de una imagen facial en comparación de rostros, determinando si pertenecen a la misma persona y evaluando la calidad y el uso de accesorios.
Ejemplos de Solicitudes
{
 "image1": "imageBase64",
 "image2": "imageBase64"
}
{
    "Verifyinfo": {
      "score": 98.9,
      "code": [1, 2],
      "distance": 0.0
    },
    "eventId": "095a04cc-2ccd-4aca-9b46-5628c0511927",
   	"state": {
      "rejectedBadQuality": false,
      "rejectedAccessories": false,
      "isSamePerson": true,
      "message": ""
    }
}

Verificar V2


POST basePath/api/v2/oto/verify

Este endpoint compara dos imágenes con rostros, examinando cuidadosamente las características faciales como la forma de los ojos, nariz y boca. Para ser consideradas, la cara debe ocupar al menos el 25% de la imagen y debe estar directamente frente a la cámara. En caso de haber múltiples rostros, se seleccionará el más grande. El resultado es una puntuación de similitud entre los rostros analizados.

Descripción de la Solicitud

Petición

 @POST("api/v2/oto/verify")
    suspend fun otoVerifyV2(@Header("Authorization") auth: String, 
@Body request: OtoVerifyV2Request): Response<OtoVerifyV2Response>

Agrega localización

Si deseas agregar localización a la ejecución del evento agrega las cabeceras Longitude y Latitude con los valores numericos de la ubicación de la cual se esta ejecutando tu petición.

 @POST("api/v2/oto/verify")
    suspend fun otoVerifyV2(@Header("Authorization") auth: String, @Header("Latitude") latitude: String, @Header("Longitude") longitude: String, @Body request: OtoVerifyV2Request): Response<OtoVerifyV2Response>
data class OtoVerifyV2Request(
    @SerializedName("image1") val image1: String, //base64
    @SerializedName("image2") val image2: String, //base64
)

Descripción de los parámetros

ParámetroDescripción
image1Cadena codificada en Base64 que representa la primera imagen.
image2Cadena codificada en Base64 que representa la segunda imagen.
eventIdIdentificador único del evento .

Respuesta

{
    "eventId": "string",  // Tipo: String
    "requestId": "string",  // Tipo: String
    "score": "double",  // Tipo: Double
    "distance": "double",  // Tipo: Double
    "process_time": "long",  // Tipo: Long
    "metadata": {  // Tipo: Object (contiene sub-objetos)
        "image1": {  // Tipo: Object
            "accessories": {  // Tipo: Object
                "glass": "boolean",  // Tipo: Boolean
                "sunGlass": "boolean",  // Tipo: Boolean
                "hat": "boolean",  // Tipo: Boolean
                "mask": "boolean"  // Tipo: Boolean
            },
            "image_quality": "string"  // Tipo: Nullable (Puede ser null o String)
        },
        "image2": {  // Tipo: Object
            "accessories": {  // Tipo: Object
                "glass": "boolean",  // Tipo: Boolean
                "sunGlass": "boolean",  // Tipo: Boolean
                "hat": "boolean",  // Tipo: Boolean
                "mask": "boolean"  // Tipo: Boolean
            },
            "image_quality": "string"  // Tipo: Nullable (Puede ser null o String)
        }
    },
    "codes": "nullable",  // Tipo: Nullable (Puede ser null o Array de enteros)
    "state": {  // Tipo: Object
        "rejectedBadQuality": "boolean",  // Tipo: Boolean
        "rejectedAccessories": "boolean",  // Tipo: Boolean
        "isSamePerson": "boolean",  // Tipo: Boolean
        "message": "string"  // Tipo: String
    }
}
data class OtoVerifyV2Response(
    @SerializedName("eventId") val eventId: String,
    @SerializedName("requestId") val requestId: String,
    @SerializedName("score") val score: Double,
    @SerializedName("distance") val distance: Double,
    @SerializedName("process_time") val processTime: Long,
    @SerializedName("metadata") val metadata: Metadata,
    @SerializedName("codes") val codes: List<Int>?,
    @SerializedName("state") val state: State
)

data class Metadata(
    @SerializedName("image1") val image1: ImageMetadata,
    @SerializedName("image2") val image2: ImageMetadata
)

data class ImageMetadata(
    @SerializedName("accessories") val accessories: Accessories,
    @SerializedName("image_quality") val imageQuality: String?
)

data class Accessories(
    @SerializedName("glass") val glass: Boolean,
    @SerializedName("sunGlass") val sunGlass: Boolean,
    @SerializedName("hat") val hat: Boolean,
    @SerializedName("mask") val mask: Boolean
)

data class State(
    @SerializedName("rejectedBadQuality") val rejectedBadQuality: Boolean,
    @SerializedName("rejectedAccessories") val rejectedAccessories: Boolean,
    @SerializedName("isSamePerson") val isSamePerson: Boolean,
    @SerializedName("message") val message: String
)

Descripción de los parámetros

ParámetroDescripción
eventIdIdentificador único del evento de la solicitud.
requestIdIdentificador único de la solicitud.
scorePuntuación de comparación en porcentaje.
distanceDistancia de comparación. Rango de 0.0 a 1.0.
process_timeTiempo de procesamiento de la solicitud en milisegundos.
metadataObjeto que contiene datos sobre la calidad de la imagen y accesorios en las caras.
codesLista de enteros que representan códigos de error encontrados en las imágenes.
stateDescribe el estado de la validación de una imagen facial en comparación de rostros, determinando si pertenecen a la misma persona y evaluando la calidad y el uso de accesorios.

Objeto metadata

ParámetroDescripción
image1Datos de la primera imagen.
accessoriesObjeto que indica la presencia de accesorios como gafas, sombreros y mascarillas.
glassBooleano que indica si hay gafas.
sunGlassBooleano que indica si hay gafas de sol.
hatBooleano que indica si hay sombrero.
maskBooleano que indica si hay mascarilla.
image_qualityCalidad de la imagen (puede ser nulo).
image2Datos de la segunda imagen, con la misma estructura que image1.
jemplos de Solicitudes
{
 "image1": "imageBase64",
 "image2": "imageBase64"
}
{
    "eventId": "a733fe01-c28c-4adf-b699-1d1b8e226cf5",
    "requestId": "a733fe01-c28c-4adf-b699-1d1b8e226cf5",
    "score": 96.77462,
    "distance": 0.503788,
    "process_time": 1270,
    "metadata": {
        "image1": {
            "accessories": {
                "glass": false,
                "sunGlass": false,
                "hat": false,
                "mask": true
            },
            "image_quality": null
        },
        "image2": {
            "accessories": {
                "glass": true,
                "sunGlass": false,
                "hat": true,
                "mask": false
            },
            "image_quality": null
        }
    },
    "codes": null,
   	"state": {
      "rejectedBadQuality": false,
      "rejectedAccessories": false,
      "isSamePerson": true,
      "message": ""
    }
}