{"id":29147,"date":"2019-02-05T00:00:00","date_gmt":"2019-02-04T23:00:00","guid":{"rendered":"https:\/\/blexin.com\/riconoscimento-delle-immagini-nel-cloud\/"},"modified":"2021-05-20T19:27:09","modified_gmt":"2021-05-20T17:27:09","slug":"image-recognition-in-the-cloud","status":"publish","type":"post","link":"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/","title":{"rendered":"Image recognition in the Cloud"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"608\" data-attachment-id=\"29070\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/c9ceb597-064d-4bfb-b3b1-00bdcf278022-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/c9ceb597-064d-4bfb-b3b1-00bdcf278022.png?fit=1024%2C608&amp;ssl=1\" data-orig-size=\"1024,608\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"c9ceb597-064d-4bfb-b3b1-00bdcf278022\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/c9ceb597-064d-4bfb-b3b1-00bdcf278022.png?fit=1024%2C608&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/c9ceb597-064d-4bfb-b3b1-00bdcf278022.png?resize=1024%2C608&#038;ssl=1\" alt=\"\" class=\"wp-image-29070\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/c9ceb597-064d-4bfb-b3b1-00bdcf278022.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/c9ceb597-064d-4bfb-b3b1-00bdcf278022-980x582.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/c9ceb597-064d-4bfb-b3b1-00bdcf278022-480x285.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">During one of the Azure&nbsp;academy we held for Overnet Education, our partner for training, we dealt with the subject of image recognition, that generated&nbsp;interest among students. I believe it could be interesting a comparison on this argument between different cloud providers, using Node.js and Typescript.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"introduzione\">Foreword<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">All major Cloud service providers offer tools for images analysis based on the artificial intelligence. You only need to provide an image (even a video in Amazon Rekognition) and the service can identify things, people, text, scenes and activities, as well as possible inappropriate contents.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this article, we will use the Amazon, Azure and Google SDK Javascript, in a Node project written in Typescript, which analyze locally uploaded images. Each Cloud is different from others for the way of use, services offered and for the returned output. For this reason, I will only refer to the analysis that is possible to make on the three SDK.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For Amazon, the main requisite is the creation of an AWS account and an IAM user. A complete guide, that shows the whole procedure, is available at this&nbsp;<a href=\"https:\/\/docs.aws.amazon.com\/en_us\/rekognition\/latest\/dg\/setting-up.html\" target=\"_blank\" rel=\"noreferrer noopener\">link<\/a>. If you don\u2019t have an Amazon account yet, you can access through the&nbsp;<a href=\"https:\/\/aws.amazon.com\/it\/free\/\" target=\"_blank\" rel=\"noreferrer noopener\">AWS free program<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For Azure, the procedure to create a free account of&nbsp;<strong>Computer Vision<\/strong>&nbsp;is available at this&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/cognitive-services\/computer-vision\/vision-api-how-to-topics\/howtosubscribe\" target=\"_blank\" rel=\"noreferrer noopener\">address<\/a>. If you don\u2019t have an account on the Azure cloud, you can access through a&nbsp;<a href=\"https:\/\/azure.microsoft.com\/it-it\/free\" target=\"_blank\" rel=\"noreferrer noopener\">Initial free program&nbsp;<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The documentation to start working with&nbsp;<strong>Google Vision<\/strong>&nbsp;on Google Cloud, is available at this&nbsp;<a href=\"https:\/\/cloud.google.com\/vision\" target=\"_blank\" rel=\"noreferrer noopener\">address<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"setup-del-progetto-nodejs\">Setup of the project Node.js<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The access to AI services requires the execution of calls to REST services. We will use Node.js to do that, the natural platform to manage this kind of problems. We create a Node.js project from scratch and we will add later all needed dependencies.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Requisites to install are as follows:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Node.js from&nbsp;<a href=\"https:\/\/nodejs.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/nodejs.org<\/a>&nbsp;(in the LTS version)<\/li><li>Typescript with the command npm install -g typescript<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">To do this, we open the command line in an empty folder and digit inside it the command&nbsp;<strong>npm init<\/strong>. We answer to wizard questions and, at the end of the process, we will find in the folder the file&nbsp;<strong>package.json<\/strong>, which contains all needed settings. Usually, in the same folder, I run the command&nbsp;<strong>git init<\/strong>&nbsp;to initialize git and&nbsp;<strong>git remote add<\/strong>&nbsp;to configure the remote repository of the code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now we should modify the file package.json. First of all, the scripts section, we insert a section&nbsp;<strong>\u201cbuild\u201d: \u201ctsc\u201d<\/strong>&nbsp;to indicate that we will use the typescript compilator during the build stage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We need then some dependencies for the development stage:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>npm install @types\/node \u2013save-dev that is the definition of types for Typescript of Node;<\/li><li>npm install ts-node &#8211;save-dev that we will use to compile and run the code in node;<\/li><li>npm install typescript &#8211;save-dev;<\/li><li>npm install tslint &#8211;save-dev that is a linter for the Typescript language.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"995\" height=\"672\" data-attachment-id=\"29075\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture1-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture1.png?fit=995%2C672&amp;ssl=1\" data-orig-size=\"995,672\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture1.png?fit=995%2C672&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture1.png?resize=995%2C672&#038;ssl=1\" alt=\"\" class=\"wp-image-29075\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture1.png 995w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture1-980x662.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture1-480x324.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 995px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Since we are using Typescript, it\u2019s necessary to add another configuration file, called&nbsp;<strong>tsconfig.json<\/strong>&nbsp;in the root directory. We will use only the bare minimum, that is options to compile and the path of source files (with extension&nbsp;<strong>.ts<\/strong>).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"300\" data-attachment-id=\"29077\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture2-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture2.png?fit=550%2C300&amp;ssl=1\" data-orig-size=\"550,300\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture2.png?fit=550%2C300&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture2.png?resize=550%2C300&#038;ssl=1\" alt=\"\" class=\"wp-image-29077\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture2.png 550w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture2-480x262.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 550px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s add now the configuration needed to execute the debug of the code inside Visual Studio Code. It\u2019s possible to manually create this configuration, adding a folder&nbsp;<strong>.vscode<\/strong>&nbsp;and a file called&nbsp;<strong>launch.json<\/strong>&nbsp;to this folder<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"995\" height=\"504\" data-attachment-id=\"29079\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture3-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture3.png?fit=995%2C504&amp;ssl=1\" data-orig-size=\"995,504\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture3\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture3.png?fit=995%2C504&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture3.png?resize=995%2C504&#038;ssl=1\" alt=\"\" class=\"wp-image-29079\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture3.png 995w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture3-980x496.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture3-480x243.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 995px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In this file,&nbsp;<strong>runtimeArgs<\/strong>&nbsp;serves to indicate to Node that&nbsp;<strong>ts-node<\/strong>&nbsp;must be loaded before the code runs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verify now if the configuration works, writing some code in index.ts and running a debug session in VS Code<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"579\" height=\"270\" data-attachment-id=\"29082\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture4-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture4.png?fit=579%2C270&amp;ssl=1\" data-orig-size=\"579,270\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture4\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture4.png?fit=579%2C270&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture4.png?resize=579%2C270&#038;ssl=1\" alt=\"\" class=\"wp-image-29082\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture4.png 579w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture4-480x224.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 579px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Finish the configuration with the installation of:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>npm install aws-sdk \u2013save, thanks to which we will be able to use the functions of Rekognition;<\/li><li>npm install @google-cloud\/vision. for the Google SDK;<\/li><li>npm install &#8211;save request request-promise, to directly execute REST calls (in case of Azure);<\/li><li>npm install &#8211;save-dev @types\/request, to have in Typescript the request types;<\/li><li>npm install &#8211;save-dev @types\/request-promise, to have in Typescript request-promise types.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"496\" height=\"477\" data-attachment-id=\"29084\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture16-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture16.png?fit=496%2C477&amp;ssl=1\" data-orig-size=\"496,477\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture16\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture16.png?fit=496%2C477&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture16.png?resize=496%2C477&#038;ssl=1\" alt=\"\" class=\"wp-image-29084\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture16.png 496w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture16-480x462.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 496px, 100vw\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"configurazione-ed-utilizzo-di-azure-computer-vision\">Configuration and use of Azure Computer Vision<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">From Azure portal, it\u2019s possible to extract the service endpoint and the two secret keys. To simplify the use, we can insert a configuration file:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nexport let config = {\n\u00a0\u00a0\u00a0\u00a0azureVisionConfig: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0azureEndPoint: &quot;https:\/\/westeurope.api.cognitive.microsoft.com\/vision\/v1.0\/&quot;,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0azureKey1: &quot;yourkey1&quot;,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0azureKey2: &quot;yourkey2&quot;,\n\u00a0\u00a0\u00a0\u00a0},\n};\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/westus.dev.cognitive.microsoft.com\/docs\/services\/56f91f2d778daf23d8ec6739\/operations\/56f91f2e778daf14a499e1fa\" target=\"_blank\">official documentation<\/a>&nbsp;of the API shows that http calls to be run are of type:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"771\" data-attachment-id=\"29087\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture17-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture17.png?fit=1070%2C806&amp;ssl=1\" data-orig-size=\"1070,806\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture17\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture17.png?fit=1024%2C771&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture17.png?resize=1024%2C771&#038;ssl=1\" alt=\"\" class=\"wp-image-29087\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture17-1024x771.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture17-980x738.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture17-480x362.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">We need then an efficient system to build the query string, with which we interrogate the sevice. We create an interface to build request paramenters:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"673\" data-attachment-id=\"29090\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture18-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture18.png?fit=1238%2C814&amp;ssl=1\" data-orig-size=\"1238,814\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture18\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture18.png?fit=1024%2C673&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture18.png?resize=1024%2C673&#038;ssl=1\" alt=\"\" class=\"wp-image-29090\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture18-1024x673.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture18-980x644.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture18-480x316.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The documentation shows also the json returned from a request. We can convert this result in an interface to typify the response:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nexport interface ICategory {\n\u00a0\u00a0\u00a0\u00a0name: string;\n\u00a0\u00a0\u00a0\u00a0score: number;\n}\nexport interface IImageType {\n\u00a0\u00a0\u00a0\u00a0clipArtType: number;\n\u00a0\u00a0\u00a0\u00a0lineDrawingType: number;\n}\nexport interface ITag {\n\u00a0\u00a0\u00a0\u00a0name: string;\n\u00a0\u00a0\u00a0\u00a0confidence: number;\n}\nexport interface ICaption {\n\u00a0\u00a0\u00a0\u00a0text: string;\n\u00a0\u00a0\u00a0\u00a0confidence: number;\n}\nexport interface IDescription {\n\u00a0\u00a0\u00a0\u00a0tags: string&#x5B;];\n\u00a0\u00a0\u00a0\u00a0captions: ICaption&#x5B;];\n}\nexport interface IMetadata {\n\u00a0\u00a0\u00a0\u00a0width: number;\n\u00a0\u00a0\u00a0\u00a0height: number;\n\u00a0\u00a0\u00a0\u00a0format: string;\n}\nexport interface IAzureCognitiveServiceResponse {\n\u00a0\u00a0\u00a0\u00a0categories: ICategory&#x5B;];\n\u00a0\u00a0\u00a0\u00a0imageType: IImageType;\n\u00a0\u00a0\u00a0\u00a0tags: ITag&#x5B;];\n\u00a0\u00a0\u00a0\u00a0description: IDescription;\n\u00a0\u00a0\u00a0\u00a0faces: any&#x5B;];\n\u00a0\u00a0\u00a0\u00a0requestId: string;\n\u00a0\u00a0\u00a0\u00a0metadata: IMetadata;\n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Create then an unique method in a class, that will take in input the path of a local file and an object of&nbsp;<strong>AzureRequestParameters<\/strong>&nbsp;type and that returns a&nbsp;<strong>IAzureCognitiveServiceResponse<\/strong>. The library&nbsp;<strong>request-promise<\/strong>&nbsp;allows us to create an async method, that returns a typified&nbsp;<strong>Promise<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"970\" height=\"771\" data-attachment-id=\"29092\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture20-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture20.png?fit=970%2C771&amp;ssl=1\" data-orig-size=\"970,771\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture20\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture20.png?fit=970%2C771&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture20.png?resize=970%2C771&#038;ssl=1\" alt=\"\" class=\"wp-image-29092\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture20.png 970w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture20-480x382.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 970px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A simple example of call&nbsp;is:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nconst responseAzure1 = helperAzure.AnalyzeImage(&quot;..\/images\/laurie.jpg&quot;, new AzureRequestParameters({\n\u00a0\u00a0\u00a0\u00a0language: &quot;en&quot;,\n\u00a0\u00a0\u00a0\u00a0visualFeatures: &#x5B;&quot;Faces&quot;, &quot;ImageType&quot;],\n})).then((data: IAzureCognitiveServiceResponse) =&gt; {\n\u00a0\u00a0\u00a0\u00a0data.faces.forEach( (face) =&gt; {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0console.log(face);\n\u00a0\u00a0\u00a0\u00a0});\n});\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">The image passed in input is as below:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"235\" height=\"307\" data-attachment-id=\"29095\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/laurie-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/laurie.jpg?fit=235%2C307&amp;ssl=1\" data-orig-size=\"235,307\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"laurie\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/laurie.jpg?fit=235%2C307&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/laurie.jpg?resize=235%2C307&#038;ssl=1\" alt=\"\" class=\"wp-image-29095\" srcset=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/laurie.jpg?w=235&amp;ssl=1 235w, https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/laurie.jpg?resize=230%2C300&amp;ssl=1 230w\" sizes=\"auto, (max-width: 235px) 100vw, 235px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This is the analysis result:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"918\" height=\"310\" data-attachment-id=\"29097\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture21-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture21.png?fit=918%2C310&amp;ssl=1\" data-orig-size=\"918,310\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture21\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture21.png?fit=918%2C310&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture21.png?resize=918%2C310&#038;ssl=1\" alt=\"\" class=\"wp-image-29097\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture21.png 918w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture21-480x162.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 918px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You only need to slightly modify the request, in order to try to identify a celebrity in the image:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"191\" data-attachment-id=\"29100\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture22-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture22.png?fit=1080%2C201&amp;ssl=1\" data-orig-size=\"1080,201\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture22\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture22.png?fit=1024%2C191&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture22.png?resize=1024%2C191&#038;ssl=1\" alt=\"\" class=\"wp-image-29100\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture22-1024x191.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture22-980x182.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture22-480x89.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The answer is that, with a confidence level over 99%, in the picture appears the actor Hugh Laurie.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"200\" data-attachment-id=\"29102\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture23-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture23.png?fit=1457%2C284&amp;ssl=1\" data-orig-size=\"1457,284\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture23\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture23.png?fit=1024%2C200&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture23.png?resize=1024%2C200&#038;ssl=1\" alt=\"\" class=\"wp-image-29102\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture23-980x191.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture23-480x94.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For example, we consider the following image:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1023\" height=\"682\" data-attachment-id=\"29105\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/cena-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/cena.jpg?fit=1023%2C682&amp;ssl=1\" data-orig-size=\"1023,682\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"cena\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/cena.jpg?fit=1023%2C682&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/cena.jpg?resize=1023%2C682&#038;ssl=1\" alt=\"\" class=\"wp-image-29105\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/cena.jpg 1023w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/cena-980x653.jpg 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/cena-480x320.jpg 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1023px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The following search parameters provide in output a description of the elements in the picture.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"985\" height=\"338\" data-attachment-id=\"29107\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture24-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture24.png?fit=985%2C338&amp;ssl=1\" data-orig-size=\"985,338\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture24\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture24.png?fit=985%2C338&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture24.png?resize=985%2C338&#038;ssl=1\" alt=\"\" class=\"wp-image-29107\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture24.png 985w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture24-980x336.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture24-480x165.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 985px, 100vw\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"982\" height=\"346\" data-attachment-id=\"29110\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture25-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture25.png?fit=982%2C346&amp;ssl=1\" data-orig-size=\"982,346\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture25\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture25.png?fit=982%2C346&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture25.png?resize=982%2C346&#038;ssl=1\" alt=\"\" class=\"wp-image-29110\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture25.png 982w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture25-980x345.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture25-480x169.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 982px, 100vw\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"configurazione-ed-utilizzo-di-amazon-rekognition\">Configuration and use of Amazon Rekognition<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">From the Amazon portal is possible to extract the&nbsp;<strong>Access Key<\/strong>&nbsp;and the&nbsp;<strong>Secret Access Key<\/strong>&nbsp;that will be used to validate the calls to Rekognition library. The complete documentation is available at this&nbsp;<a href=\"https:\/\/docs.aws.amazon.com\/rekognition\/latest\/dg\/rekognition-dg.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">address<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s possible to install these credential on our computer, in a file globally available for all our projects or create a file, that contains the keys, in the single project. In this article, we will use the latter option.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"995\" height=\"416\" data-attachment-id=\"29115\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture5-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture5.png?fit=995%2C416&amp;ssl=1\" data-orig-size=\"995,416\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture5\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture5.png?fit=995%2C416&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture5.png?resize=995%2C416&#038;ssl=1\" alt=\"\" class=\"wp-image-29115\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture5.png 995w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture5-980x410.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture5-480x201.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 995px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Create a Typescript class (called AWSRekognition), that contains the authentication code (pay attention to indicate the IdentityPoolID, as required in Rekognition documentation) and all methods to analyze images.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nimport * as AWS from &quot;aws-sdk&quot;;\n\u00a0\nexport class AWSRekognition {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0private rekognition: AWS.Rekognition;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0constructor() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0AWS.config.region = &quot;eu-west-1&quot;; \/\/ Region\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0AWS.config.credentials = new AWS.CognitoIdentityCredentials({\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0IdentityPoolId: &quot;eu-west-YOURPOOLID&quot;,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0AWS.config.loadFromPath(&quot;.\/src\/configuration\/credentials.json&quot;);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.rekognition = new AWS.Rekognition();\n\u00a0\u00a0\u00a0\u00a0}\n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">The first method, we are going to add to this class, analyzes a local image file and try to extract information on faces possibly contained in it through Rekognition. First of all, we read the file and convert it in a string on base64. Then we convert this string in a Buffer, that is an integer array. Rekognition accepts this format for images in input. We create then a helper function, that performs the convertion.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nimport * as fs from &quot;fs&quot;;\n\u00a0\nexport function readImage(path: string): Buffer {\n\u00a0\u00a0\u00a0const fileData = fs.readFileSync(path).toString(&quot;base64&quot;);\n\u00a0\u00a0\u00a0return new Buffer(fileData, &quot;base64&quot;);\n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">The method that Rekognition uses is the following instead:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\npublic DetectFacesOnLocalImage(filePath: string):\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Promise&lt;PromiseResult&lt;AWS.Rekognition.DetectFacesResponse, AWS.AWSError&gt;&gt; {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0const buffer = readImage(filePath);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0const params = {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Attributes: &#x5B;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;ALL&quot;,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Image: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Bytes: buffer,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0};\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return this.rekognition.detectFaces(params).promise();\n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">The method returns a typed Promise, that we can wait in index.ts. Information passed in output are extremely detailed. The maximum estimated age is equal to 52 years.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nimport {AWSRekognition} from &quot;.\/aws-rekognition&quot;;\n\u00a0\nconst helperAWS: AWSRekognition = new AWSRekognition();\nconst response = helperAWS.DetectFacesOnLocalImage(&quot;.\/images\/laurie.jpg&quot;).then(\n\u00a0\u00a0\u00a0\u00a0(data) =&gt; {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0console.log(data.FaceDetails&#x5B;0].AgeRange.High);\n}).catch((err) =&gt; {\n\u00a0\u00a0\u00a0\u00a0console.error(err);\n});\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"537\" data-attachment-id=\"29118\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture7-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture7.png?fit=1090%2C572&amp;ssl=1\" data-orig-size=\"1090,572\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture7\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture7.png?fit=1024%2C537&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture7.png?resize=1024%2C537&#038;ssl=1\" alt=\"\" class=\"wp-image-29118\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture7-1024x537.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture7-980x514.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture7-480x252.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The same method can be simplified if the image has been uploaded in a&nbsp;<strong>bucket S3<\/strong>. The image shows in the web console AWS the content of a bucket called immaginisalvatore. Simply pass the bucket name and the image key to the method&nbsp;<strong>detectFaces<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"315\" data-attachment-id=\"29120\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture8-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture8.png?fit=1676%2C515&amp;ssl=1\" data-orig-size=\"1676,515\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture8\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture8.png?fit=1024%2C315&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture8.png?resize=1024%2C315&#038;ssl=1\" alt=\"\" class=\"wp-image-29120\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture8-980x301.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture8-480x147.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\npublic DetectFacesOnS3Images(bucketName: string, key: string):\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Promise&lt;PromiseResult&lt;AWS.Rekognition.DetectFacesResponse, AWS.AWSError&gt;&gt; {\n\u00a0\u00a0\u00a0\u00a0const params = {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Attributes: &#x5B;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;ALL&quot;,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Image: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0S3Object: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Bucket: bucketName,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Name: key,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\u00a0\u00a0\u00a0\u00a0};\n\u00a0\u00a0\u00a0\u00a0return this.rekognition.detectFaces(params).promise();\n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">We can try to ask to Rekognition if it is able to associate the face to a celebrity:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\npublic DetectCelebritiesOnS3Image(bucketName: string, key: string) {\n\u00a0\u00a0\u00a0\u00a0const params = {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Image: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0S3Object: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Bucket: bucketName,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Name: key,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\u00a0\u00a0\u00a0\u00a0};\n\u00a0\u00a0\u00a0\u00a0return this.rekognition.recognizeCelebrities(params).promise();\n<\/pre><\/div>\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nconst response = helperAWS.DetectCelebritiesOnS3Image(&quot;immaginisalvatore&quot;, &quot;laurie.jpg&quot;).then(\n\u00a0\u00a0\u00a0\u00a0(data) =&gt; {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0console.log(data.CelebrityFaces&#x5B;0].Name + &quot; &quot; + data.CelebrityFaces&#x5B;0].MatchConfidence);\n}).catch((err) =&gt; {\n\u00a0\u00a0\u00a0\u00a0console.error(err);\n});\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">The answer is clear: the image shows the actor Hugh Laurie with a confidence of 99,99%.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"335\" data-attachment-id=\"29123\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture9-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture9.png?fit=1255%2C410&amp;ssl=1\" data-orig-size=\"1255,410\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture9\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture9.png?fit=1024%2C335&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture9.png?resize=1024%2C335&#038;ssl=1\" alt=\"\" class=\"wp-image-29123\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture9-1024x335.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture9-980x320.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture9-480x157.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This is instead the method we can invoke to analyze the image of the table prepared for dinner:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\npublic DetectLabelsOnS3Image(bucketName: string, key: string):\n\u00a0\u00a0\u00a0\u00a0Promise&lt;PromiseResult&lt;AWS.Rekognition.DetectLabelsResponse, AWS.AWSError&gt;&gt; {\n\u00a0\u00a0\u00a0\u00a0const params = {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Image: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0S3Object: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Bucket: bucketName,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Name: key,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\u00a0\u00a0\u00a0\u00a0};\n\u00a0\u00a0\u00a0\u00a0return this.rekognition.detectLabels(params).promise();\n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Identified elements are the following:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nconst response = helperAWS.DetectLabelsOnS3Image(&quot;immaginisalvatore&quot;, &quot;cena.jpg&quot;).then(\n\u00a0\u00a0\u00a0\u00a0(data) =&gt; {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0data.Labels.forEach((label) =&gt; {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0console.log(label.Name + &quot;: &quot; + label.Confidence);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n}).catch((err) =&gt; {\n\u00a0\u00a0\u00a0\u00a0console.error(err);\n});\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"913\" height=\"550\" data-attachment-id=\"29126\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture10-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture10.png?fit=913%2C550&amp;ssl=1\" data-orig-size=\"913,550\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture10\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture10.png?fit=913%2C550&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture10.png?resize=913%2C550&#038;ssl=1\" alt=\"\" class=\"wp-image-29126\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture10.png 913w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture10-480x289.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 913px, 100vw\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"configurazione-ed-utilizzo-di-google-vision\">Configuration and use of Google Vision<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The API in Google Vision require:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>the creation of a Google Cloud project;<\/li><li>the abilitation in the project of Vision API;<\/li><li>the creation of a json file, that contains the security keys and the&nbsp;<strong>projectId.<\/strong><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Unfortunately, files for the definition of types in the SDK, we installed in setup stage, still don\u2019t exist. The class that uses the API is the following:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"902\" height=\"813\" data-attachment-id=\"29129\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture26-1-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture26-1.png?fit=902%2C813&amp;ssl=1\" data-orig-size=\"902,813\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture26-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture26-1.png?fit=902%2C813&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture26-1.png?resize=902%2C813&#038;ssl=1\" alt=\"\" class=\"wp-image-29129\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture26-1.png 902w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture26-1-480x433.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 902px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The code to analyze the image of Hugh Laurie is the following:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"827\" height=\"178\" data-attachment-id=\"29131\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture27-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture27.png?fit=827%2C178&amp;ssl=1\" data-orig-size=\"827,178\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture27\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture27.png?fit=827%2C178&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture27.png?resize=827%2C178&#038;ssl=1\" alt=\"\" class=\"wp-image-29131\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture27.png 827w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture27-480x103.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 827px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The result is as follows (including the detail on the face elements)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"335\" data-attachment-id=\"29134\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture28a-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture28a.png?fit=1430%2C468&amp;ssl=1\" data-orig-size=\"1430,468\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture28a\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture28a.png?fit=1024%2C335&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture28a.png?resize=1024%2C335&#038;ssl=1\" alt=\"\" class=\"wp-image-29134\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture28a-980x321.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture28a-480x157.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"483\" data-attachment-id=\"29136\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture28b-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture28b.png?fit=750%2C483&amp;ssl=1\" data-orig-size=\"750,483\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture28b\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture28b.png?fit=750%2C483&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture28b.png?resize=750%2C483&#038;ssl=1\" alt=\"\" class=\"wp-image-29136\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture28b.png 750w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture28b-480x309.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 750px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The call to analyze the table for dinner is:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"928\" height=\"307\" data-attachment-id=\"29141\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture30-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture30.png?fit=928%2C307&amp;ssl=1\" data-orig-size=\"928,307\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture30\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture30.png?fit=928%2C307&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture30.png?resize=928%2C307&#038;ssl=1\" alt=\"\" class=\"wp-image-29141\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture30.png 928w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture30-480x159.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 928px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">And this is the output detail:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"710\" height=\"941\" data-attachment-id=\"29143\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/attachment\/picture31-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture31.png?fit=710%2C941&amp;ssl=1\" data-orig-size=\"710,941\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Picture31\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture31.png?fit=710%2C941&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture31.png?resize=710%2C941&#038;ssl=1\" alt=\"\" class=\"wp-image-29143\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture31.png 710w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/Picture31-480x636.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 710px, 100vw\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusioni\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We tested the Typescript code on Node.js, that uses the Javascript SDK of AI, provided by main Cloud providers. The simplicity in use and the abundance of methods and information returned, make it an instrument of infinite potentiality. For example, in an application client Angular (or React) or in a serverless scenario, where the execution of a function in the cloud is triggered from the upload of an image on a storage, and this function uses the AI to moderate the image itself. We would like to remind you the Cloud offers to analyze text inside images is equally rich.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can find the code here:&nbsp;<a href=\"https:\/\/github.com\/sorrentmutie\/image-recognition\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/sorrentmutie\/image-recognition<\/a><\/p>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>How to use Azure Cognitive Services, Amazon Rekognition and Google Vision AI libraries in Typescript<\/p>\n","protected":false},"author":196716245,"featured_media":29070,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_crdt_document":"","inline_featured_image":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[688637524],"tags":[688637381,688637450,688637413],"class_list":["post-29147","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-en","tag-azure-en","tag-cloud-en","tag-typescript-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Image recognition in the Cloud - Blexin<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Image recognition in the Cloud - Blexin\" \/>\n<meta property=\"og:description\" content=\"How to use Azure Cognitive Services, Amazon Rekognition and Google Vision AI libraries in Typescript\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/\" \/>\n<meta property=\"og:site_name\" content=\"Blexin\" \/>\n<meta property=\"article:published_time\" content=\"2019-02-04T23:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-20T17:27:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/c9ceb597-064d-4bfb-b3b1-00bdcf278022.png?fit=1024%2C608&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"608\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Salvatore Sorrentino\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Salvatore Sorrentino\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/image-recognition-in-the-cloud\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/image-recognition-in-the-cloud\\\/\"},\"author\":{\"name\":\"Salvatore Sorrentino\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#\\\/schema\\\/person\\\/354db2bc97cac71c2ceeca21a92d5bed\"},\"headline\":\"Image recognition in the Cloud\",\"datePublished\":\"2019-02-04T23:00:00+00:00\",\"dateModified\":\"2021-05-20T17:27:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/image-recognition-in-the-cloud\\\/\"},\"wordCount\":1495,\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/image-recognition-in-the-cloud\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/c9ceb597-064d-4bfb-b3b1-00bdcf278022.png?fit=1024%2C608&ssl=1\",\"keywords\":[\"Azure\",\"Cloud\",\"Typescript\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/image-recognition-in-the-cloud\\\/\",\"url\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/image-recognition-in-the-cloud\\\/\",\"name\":\"Image recognition in the Cloud - Blexin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/image-recognition-in-the-cloud\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/image-recognition-in-the-cloud\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/c9ceb597-064d-4bfb-b3b1-00bdcf278022.png?fit=1024%2C608&ssl=1\",\"datePublished\":\"2019-02-04T23:00:00+00:00\",\"dateModified\":\"2021-05-20T17:27:09+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#\\\/schema\\\/person\\\/354db2bc97cac71c2ceeca21a92d5bed\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/image-recognition-in-the-cloud\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/image-recognition-in-the-cloud\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/image-recognition-in-the-cloud\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/c9ceb597-064d-4bfb-b3b1-00bdcf278022.png?fit=1024%2C608&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/c9ceb597-064d-4bfb-b3b1-00bdcf278022.png?fit=1024%2C608&ssl=1\",\"width\":1024,\"height\":608},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/image-recognition-in-the-cloud\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blexin.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Image recognition in the Cloud\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/blexin.com\\\/en\\\/\",\"name\":\"Blexin\",\"description\":\"Con noi \u00e8 semplice\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blexin.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#\\\/schema\\\/person\\\/354db2bc97cac71c2ceeca21a92d5bed\",\"name\":\"Salvatore Sorrentino\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a6ec0dc827d2acaa55df9dbf1007e23f6fcb8c9436df52ab48274bb2221085bf?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a6ec0dc827d2acaa55df9dbf1007e23f6fcb8c9436df52ab48274bb2221085bf?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a6ec0dc827d2acaa55df9dbf1007e23f6fcb8c9436df52ab48274bb2221085bf?s=96&d=identicon&r=g\",\"caption\":\"Salvatore Sorrentino\"},\"url\":\"https:\\\/\\\/blexin.com\\\/en\\\/author\\\/salvatore-sorrentinoblexin-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Image recognition in the Cloud - Blexin","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/","og_locale":"en_US","og_type":"article","og_title":"Image recognition in the Cloud - Blexin","og_description":"How to use Azure Cognitive Services, Amazon Rekognition and Google Vision AI libraries in Typescript","og_url":"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/","og_site_name":"Blexin","article_published_time":"2019-02-04T23:00:00+00:00","article_modified_time":"2021-05-20T17:27:09+00:00","og_image":[{"width":1024,"height":608,"url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/c9ceb597-064d-4bfb-b3b1-00bdcf278022.png?fit=1024%2C608&ssl=1","type":"image\/png"}],"author":"Salvatore Sorrentino","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Salvatore Sorrentino","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/#article","isPartOf":{"@id":"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/"},"author":{"name":"Salvatore Sorrentino","@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/354db2bc97cac71c2ceeca21a92d5bed"},"headline":"Image recognition in the Cloud","datePublished":"2019-02-04T23:00:00+00:00","dateModified":"2021-05-20T17:27:09+00:00","mainEntityOfPage":{"@id":"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/"},"wordCount":1495,"image":{"@id":"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/c9ceb597-064d-4bfb-b3b1-00bdcf278022.png?fit=1024%2C608&ssl=1","keywords":["Azure","Cloud","Typescript"],"articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/","url":"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/","name":"Image recognition in the Cloud - Blexin","isPartOf":{"@id":"https:\/\/blexin.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/#primaryimage"},"image":{"@id":"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/c9ceb597-064d-4bfb-b3b1-00bdcf278022.png?fit=1024%2C608&ssl=1","datePublished":"2019-02-04T23:00:00+00:00","dateModified":"2021-05-20T17:27:09+00:00","author":{"@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/354db2bc97cac71c2ceeca21a92d5bed"},"breadcrumb":{"@id":"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/#primaryimage","url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/c9ceb597-064d-4bfb-b3b1-00bdcf278022.png?fit=1024%2C608&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/c9ceb597-064d-4bfb-b3b1-00bdcf278022.png?fit=1024%2C608&ssl=1","width":1024,"height":608},{"@type":"BreadcrumbList","@id":"https:\/\/blexin.com\/en\/blog-en\/image-recognition-in-the-cloud\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blexin.com\/en\/"},{"@type":"ListItem","position":2,"name":"Image recognition in the Cloud"}]},{"@type":"WebSite","@id":"https:\/\/blexin.com\/en\/#website","url":"https:\/\/blexin.com\/en\/","name":"Blexin","description":"Con noi \u00e8 semplice","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blexin.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/354db2bc97cac71c2ceeca21a92d5bed","name":"Salvatore Sorrentino","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a6ec0dc827d2acaa55df9dbf1007e23f6fcb8c9436df52ab48274bb2221085bf?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a6ec0dc827d2acaa55df9dbf1007e23f6fcb8c9436df52ab48274bb2221085bf?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a6ec0dc827d2acaa55df9dbf1007e23f6fcb8c9436df52ab48274bb2221085bf?s=96&d=identicon&r=g","caption":"Salvatore Sorrentino"},"url":"https:\/\/blexin.com\/en\/author\/salvatore-sorrentinoblexin-com\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/c9ceb597-064d-4bfb-b3b1-00bdcf278022.png?fit=1024%2C608&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/pcyUBx-7A7","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/29147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/users\/196716245"}],"replies":[{"embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/comments?post=29147"}],"version-history":[{"count":4,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/29147\/revisions"}],"predecessor-version":[{"id":32013,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/29147\/revisions\/32013"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/media\/29070"}],"wp:attachment":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/media?parent=29147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/categories?post=29147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/tags?post=29147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}