[vc_row el_class=”blog-info”][vc_column][vc_single_image source=”featured_image” img_size=”full” style=”vc_box_rounded”][vc_empty_space height=”40px”][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text el_class=”font-weight-bold”]
Reconocimiento de imagen / video AI con Node.js y AWS Rekognition
AWS Rekognition — Hoy en día, muchos proveedores brindan servicios relacionados con la detección de etiquetas de objetos de imagen/video. He enumerado algunos de los proveedores que brindan un servicio de detección de visión AI/AutoML con una alta tasa de precisión y rentable.
– https://aws.amazon.com/rekognition
– https://azure.microsoft.com/en-in/services/cognitive-services/computer-vision/#features
– https://cloud.google.com/vision/automl/object-detection/docs
[/vc_column_text][vc_empty_space height=”40px”][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text]
Como estoy más familiarizado con AWS y tengo un conocimiento sólido y nuestro servidor también estaba configurado en AWS, preferí usar AWS Rekognition en lugar de Azure o GCP.
Amazon Rekognition facilita la adición de análisis de imágenes y videos a sus aplicaciones mediante tecnología de aprendizaje profundo comprobada y altamente escalable que no requiere experiencia en aprendizaje automático para su uso. Con Amazon Rekognition, puede identificar objetos, personas, texto, escenas y actividades en imágenes y videos, así como detectar cualquier contenido inapropiado.
Para Node.js, hay 2 formas de detectar las etiquetas de imagen/video usando AWS Rekognition.
Requisito previo :
Cree o actualice un usuario de IAM con permisos AmazonRekognitionFullAccess y AmazonS3ReadOnlyAccess . Para obtener más detalles, consulte el Paso 1: Configure una cuenta de AWS y cree un usuario de IAM.
#1 Mediante el uso de SDK de AWS
De esta manera, puede detectar los objetos de las etiquetas de la imagen y el video, pero es como si hubiera cargado el archivo adjunto en s3 y ese objeto cargado tiene que pasarlo al método detectLabels de AWS Rekognition.
Veamos cómo podemos hacer esto.
- Instale y configure los SDK de AWS. Para obtener más detalles, consulte el Paso 2: Configurar la CLI de AWS y los SDK de AWS.
- Utilice el siguiente ejemplo de Node.js para detectar los objetos lable.
// Load the SDK
var AWS = require(‘aws-sdk’);
const bucket = your_bucket_name’ // the bucketname without s3://
const photo = ‘photo’ // the name of file
const config = new AWS.Config({
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
region: process.env.AWS_REGION
})const client = new AWS.Rekognition();
const params = { Image: { S3Object: { Bucket: bucket, Name: photo }, }, MaxLabels: 10 }
client.detectLabels(params, function(err, response) {
if (err) {
console.log(err, err.stack); // if an error occurred
} else {
console.log(`Detected labels for: ${photo}`);
console.log(‘Detected labled’, response);
} // if
});
#2 Usando el reconocimiento de nodos
Al usar esta forma, puede detectar las etiquetas de objetos de imagen/video con el código de secuencia de comandos mínimo y lograr un resultado superior. Además, al usar esta biblioteca de reconocimiento de nodos, puede hacer 2 cosas para detectar las etiquetas de los objetos.
- Puede detectar las etiquetas de imagen/video usando el objeto s3 después de cargarlo en s3.
- Pase los datos de imagen/video en formato de bytes y puede recuperar el resultado.
La biblioteca de reconocimiento de nodos admite muchas acciones, incluidas detectLabels, detectFaces, compareFaces y muchas más.
Volvamos a la integración usando node-rekognition.
- Instale el paquete npm usando
npm install node-rekognition - Inicialice la biblioteca y establezca los parámetros de AWS requeridos.
const Rekognition = require(‘node-rekognition’)
const fs = require(“fs”);// Set your AWS credentials
const AWSParameters = {
“accessKeyId”: “XXXXXXXX”,
“secretAccessKey”: “XXXXXX”,
“region”: “YOUR_REGION”,
“bucket”: “YOUR_BUCKET_NAME”,
// “ACL”: “XXX” // optional
}const rekognition = new Rekognition(AWSParameters);
if(req.file){
#2.a To detect labels by using s3 object
const s3Images = await rekognition.uploadToS3(req.file.path, ‘FOLDER_WHERE_YOU_WANT_UPLOAD_FILE’);
const imageLabels = await rekognition.detectLabels(s3Images)
console.log(imageLabels);#2.b To detect labels by using image buffer data
const base64 = fs.readFileSync(req.file.path, “base64”);
// Convert base64 to buffer => <Buffer ff d8 ff db 00 43 00 …
const buffer = Buffer.from(base64, “base64”);
const imageLabels = await rekognition.detectLabels(buffer)
console.log(imageLabels);}
Sample response format :
{
Labels: [
{
Name: ‘Pc’,
Confidence: 99.83708190917969,
Instances: [],
Parents: [Array]
},
{
Name: ‘Computer’,
Confidence: 99.83708190917969,
Instances: [],
Parents: [Array]
},
{
Name: ‘Electronics’,
Confidence: 99.83708190917969,
Instances: [],
Parents: []
},
{
Name: ‘Laptop’,
Confidence: 99.5391845703125,
Instances: [],
Parents: [Array]
},
{
Name: ‘Person’,
Confidence: 89.86421203613281,
Instances: [Array],
Parents: []
},
{
Name: ‘Human’,
Confidence: 89.86421203613281,
Instances: [],
Parents: []
}
],
LabelModelVersion: ‘2.0’
}
Enlace de referencia:
Aquí, puede encontrar y explorar más sobre el reconocimiento de IA y otras acciones requeridas.
- https://docs.aws.amazon.com/rekognition/latest/dg/labels-detect-labels-image.html
- https://github.com/oleurud/node-rekognition
- https://docs.aws.amazon.com/rekognition/latest/dg/API_Operations.html
- https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Rekognition.html
Footnotes
Avíseme si ha encontrado mejores ideas o si hay un error en mi código o en la descripción. Si tiene alguna consulta o confusión con respecto a la implementación, deje un comentario. Estaré encantado de ayudarlo lo antes posible.
[/vc_column_text][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row][vc_row el_class=”social-info”][vc_column width=”1/6″][/vc_column][vc_column width=”2/3″][vc_row_inner][vc_column_inner width=”1/2″][vc_column_text][social_share_button themes=’theme1′][/vc_column_text][/vc_column_inner][vc_column_inner el_class=”youtube-inner-col” width=”1/2″][vc_column_text][likebtn theme=”youtube” lang=”auto” show_like_label=”0″ white_label=”1″ alignment=”right”][/vc_column_text][/vc_column_inner][/vc_row_inner][vc_row_inner el_class=”social-info-inner”][vc_column_inner width=”1/4″][vc_single_image image=”921″][/vc_column_inner][vc_column_inner width=”3/4″][vc_column_text]
Diego Pacheco
Ingeniero en Sitemas, MBA (Babson College). Desarrollador PHP/Java/JavaScript. Fundador & CEO de EpicStudio. Entusiasta de las tecnologías web (JavaScript, Vue, Laravel, AWS, Docker) Viajes, Negocios, Surf y Growth.[/vc_column_text][asvc_list_item icon_fontawesome=”fa fa-calendar-o” icon_size=”14px”]Programar una reunión[/asvc_list_item][/vc_column_inner][/vc_row_inner][/vc_column][vc_column width=”1/6″][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
Recent Post
[/vc_column_text][lvca_posts_carousel posts_query=”size:3|order_by:rand|post_type:post” image_linkable=”true” image_size=”full” taxonomy_chosen=”post_tag” display_title=”true” display_post_date=”true” display_summary=”true” autoplay_speed=”3000″ animation_speed=”300″ display_columns=”3″ scroll_columns=”3″ gutter=”3″ tablet_display_columns=”2″ tablet_scroll_columns=”2″ tablet_gutter=”3″ tablet_width=”800″ mobile_display_columns=”1″ mobile_scroll_columns=”1″ mobile_gutter=”3″ mobile_width=”480″][vc_empty_space height=”20px”][/vc_column][/vc_row]
