๐Ÿ“/cloudIOT

Amazon Rekognition ์ด๋ฏธ์ง€์—์„œ ํ…์ŠคํŠธ ๊ฐ์ง€ (nodejs)

sssbin 2022. 5. 16. 15:36

 

https://docs.aws.amazon.com/ko_kr/rekognition/latest/dg/text-detecting-text-procedure.html

 

์ด๋ฏธ์ง€์—์„œ ํ…์ŠคํŠธ ๊ฐ์ง€ - Amazon Rekognition

์ด ํŽ˜์ด์ง€์— ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค๋Š” ์ ์„ ์•Œ๋ ค ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์‹ค๋ง์‹œ์ผœ ๋“œ๋ ค ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ž ๊น ์‹œ๊ฐ„์„ ๋‚ด์–ด ์„ค๋ช…์„œ๋ฅผ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋ง์”€ํ•ด ์ฃผ์‹ญ์‹œ์˜ค.

docs.aws.amazon.com

 

1. AWS์—์„œ IAM ์‚ฌ์šฉ์ž ๋งŒ๋“ค๊ธฐ

 - AWS ์ž๊ฒฉ ์ฆ๋ช… ์œ ํ˜• ์„ ํƒ: ์•ก์„ธ์Šค ํ‚ค, ์•”ํ˜ธ

 - ์ฝ˜์†” ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •ํ•˜๊ธฐ

 - ์ •์ฑ… ์ถ”๊ฐ€: AdministerAccess, AmazonRekognitionFullAccess, AmazonS3ReadOnlyAccess

 *** ๋งˆ์ง€๋ง‰์— new_user_credentials.csv ํŒŒ์ผ ๋‹ค์šด ๋ฐ›์€ ํ›„ ๊ผญ ๊ธฐ์–ตํ•ด๋‘๊ธฐ ***

 

 

2. S3 ๋ฒ„ํ‚ท ๋งŒ๋“ค๊ธฐ -> ๋ฒ„ํ‚ท ์•ˆ์— ํ…์ŠคํŠธ ๊ฐ์ง€ํ•  ์‚ฌ์ง„ ์—…๋กœ๋“œ

** ์ฐธ๊ณ : ๋ฒ„ํ‚ท ์ด๋ฆ„์€ ๊ณ ์œ ํ•ด์•ผ ํ•˜๋ฉฐ, ๊ฐ์ฒด ์†Œ์œ ๊ถŒ ํ™œ์„ฑํ™”! ์•ก์„ธ์Šค ์ฐจ๋‹จ ํ’€์–ด์ฃผ๊ธฐ!

 

3. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ 

   -> npm install aws-sdk

   -> npm install uuid

   -> pip install awscli

 

4. aws configure

  -> new_user_credentials.csv ํŒŒ์ผ์˜ Access key ID, Secret access key ๋„ฃ์–ด์ฃผ๊ธฐ

5. Recog.js ์ฝ”๋“œ ์ž‘์„ฑ

 - bucket, photo ๋ถ€๋ถ„ ์ž์‹ ์ด ์„ค์ •ํ•œ ๋ฒ„ํ‚ท ์ด๋ฆ„๊ณผ ์—…๋กœ๋“œํ•œ ํŒŒ์ผ๋ช…์œผ๋กœ ๋ณ€๊ฒฝ

 - region ๋ถ€๋ถ„ ์ž์‹ ์ด ์„ค์ •ํ•œ ์ง€์—ญ์œผ๋กœ ๋ณ€๊ฒฝ (์„œ์šธ: ap-northeast-2)

 - ์œ„ ์ฒจ๋ถ€๋งํฌ์— ๋“ค์–ด๊ฐ€๋ฉด ๋‹ค๋ฅธ ์–ธ์–ด๋„ ์ œ๊ณตํ•œ๋‹ค

var AWS = require('aws-sdk');

const bucket = 'bucket' // 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,
}) 
AWS.config.update({region:'region'});
const client = new AWS.Rekognition();
const params = {
  Image: {
    S3Object: {
      Bucket: bucket,
      Name: photo
    },
  },
}
client.detectText(params, function(err, response) {
  if (err) {
    console.log(err, err.stack); // handle error if an error occurred
  } else {
    console.log(`Detected Text for: ${photo}`)
    console.log(response)
    response.TextDetections.forEach(label => {
      console.log(`Detected Text: ${label.DetectedText}`),
      console.log(`Type: ${label.Type}`),
      console.log(`ID: ${label.Id}`),
      console.log(`Parent ID: ${label.ParentId}`),
      console.log(`Confidence: ${label.Confidence}`),
      console.log(`Polygon: `)
      console.log(label.Geometry.Polygon)
    } 
    )
  } 
});

 

 

6. ๊ฒฐ๊ณผ

- ํ•œ๊ธ€์€ ์•ˆ๋จ,,,

 

 

์ถ”ํ›„ ์‘์šฉํ•ด๋ณด์žยทยทยท