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:
- Generación de clave API el panel de administrador API Keys Panel de Administrador
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ámetro | Descripción |
---|---|
image1 | Cadena codificada en Base64 que representa la primera imagen. |
image2 | Cadena codificada en Base64 que representa la segunda imagen. |
eventId | Identificador ú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ámetro | Descripción |
---|---|
Verifyinfo | Objeto que contiene información de verificación. |
score | Puntuación de tipo flotante que indica el resultado de la verificación. |
eventId | Identificador único del evento. |
state | Describe 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ámetro | Descripción |
---|---|
image1 | Cadena codificada en Base64 que representa la primera imagen. |
image2 | Cadena codificada en Base64 que representa la segunda imagen. |
eventId | Identificador ú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ámetro | Descripción |
---|---|
Verifyinfo | Objeto que contiene información de verificación. |
score | Puntuación de tipo flotante que indica el resultado de la verificación. |
code | Lista de enteros que representan códigos de estado o resultado. |
distance | Valor flotante que indica la distancia calculada, en este contexto, es 0.0. |
eventId | Identificador único del evento. |
state | Describe 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ámetro | Descripción |
---|---|
image1 | Cadena codificada en Base64 que representa la primera imagen. |
image2 | Cadena codificada en Base64 que representa la segunda imagen. |
eventId | Identificador ú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ámetro | Descripción |
---|---|
eventId | Identificador único del evento de la solicitud. |
requestId | Identificador único de la solicitud. |
score | Puntuación de comparación en porcentaje. |
distance | Distancia de comparación. Rango de 0.0 a 1.0. |
process_time | Tiempo de procesamiento de la solicitud en milisegundos. |
metadata | Objeto que contiene datos sobre la calidad de la imagen y accesorios en las caras. |
codes | Lista de enteros que representan códigos de error encontrados en las imágenes. |
state | Describe 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ámetro | Descripción |
---|---|
image1 | Datos de la primera imagen. |
accessories | Objeto que indica la presencia de accesorios como gafas, sombreros y mascarillas. |
glass | Booleano que indica si hay gafas. |
sunGlass | Booleano que indica si hay gafas de sol. |
hat | Booleano que indica si hay sombrero. |
mask | Booleano que indica si hay mascarilla. |
image_quality | Calidad de la imagen (puede ser nulo). |
image2 | Datos 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": ""
}
}
Updated about 2 months ago