ابزار Microsoft Cognitive Computer Vision

نوید بهرامی  ۱۳۹۶/۰۵/۲۵
Computer Vision
استخراج اطلاعات یک تصویر بوسیله ماشین، یکی از چالش های مهم در حوزه هوش مصنوعی می باشد که در دسته پردازش تصویر و بینایی ماشین قرار می گیرد. ابزار های مختلفی برای درک تصاویر و استخراج داده از آن وجود دارد. در این مطلب قصد داریم یک ابزار ساده برای کار با تصاویر را معرفی کنیم.

استخراج اطلاعات یک تصویر بوسیله ماشین، یکی از چالش های مهم در حوزه هوش مصنوعی می باشد که در دسته پردازش تصویر و بینایی ماشین قرار می گیرد. در این مطلب قصد معرفی ابزار Microsoft Cognitive Compute Vision را داریم که یک API پردازش تصویر و استخراج داده های آن می باشد. با استفاده از این API برنامه نویسان به یک الگوریتم پردازش تصویر دسترسی دارند که اطلاعات استخراج شده را در قالب داده JSON ارائه می کند. در ادامه اطلاعات استخراج شده توسط این API را شرح می دهیم.

1- برچسب گذاری تصاویر براساس محتوا

این API قابلیت برچسب گذاری بیش از 2000 شی، موجود زنده و نما و صحنه های موجود در طبیعت را داراست. برچسب گذاری بصورت نامحدود صورت می گیرد و محدودیتی در تعداد اشیا موجود در یک تصویر وجود ندارد.خروجی JSON ارائه شده برای شکل1 بصورت زیر می باشد که شامل اشیا موجود در تصویر و ضریب اطمینان در رابطه با هر شی می باشد. 

computer vision tags

  شکل1

خروجی JSON

[

      {

         "name":"grass",

         "confidence":0.999999761581421

      },

      {

         "name":"outdoor",

         "confidence":0.999970674514771

      },

      {

         "name":"sky",

         "confidence":999289751052856

      },

      {

         "name":"building",

         "confidence":0.996463239192963

      },

      {

         "name":"house",

         "confidence":0.992798030376434

      },

      {

         "name":"lawn",

         "confidence":0.822680294513702

      },

      {

         "name":"green",

         "confidence":0.641222536563873

      },

      {

         "name":"residential",

         "confidence":0.314032256603241

      }

]

2- طبقه بندی تصاویر

این API امکان طبقه بندی تصاور را نیز فراهم می کند. طبقه بندی ساخته شده شامل 86 مفهوم بوده که بصورت سلسله مراتب Parent-Child می باشد. (لیست طبقه بندی ها) برای مثال یک نمونه از طبقه بندی های مشخص شده در شکل 2 قابل مشاهده است.

 Computer Vision categoryشکل2 طبقه بندی food_bread

 3- امکان تشخیص تصاویر طبیعی از مصنوعی

این امکان نیز وجود دارد که بتوان تصاویر واقعی عکاسی شده را از تصاویر مصنوعی که با نرم افزار های مختلف تولید شده است، را به اندازه قابل قبولی تشخیص داد. خروجی ارائه شده برای تصاویر مختلف بصورت زیر می باشد.

مقدار معنی

0 تصویر طبیعی

1 عدم تشخیص نوع تصویر

2 تصویر مصنوعی با کیفیت مصنوعی

3  تصویر مصنوعی با کیفیت خوب

4- تشخیص چهره

یکی دیگر از امکانات این API استخراج اطلاعات افراد از قبیل سن تقریبی، ژست فرد و... از روی تصویر می باشد که در قالب JSON ارائه می شود. شکل3 یک نمونه از این قابلیت را نشان می دهد.

Computer Vision Face

شکل3، تشخیص چهره افراد از طریق چهره

خروجی JSON

[

  {

    "age": 11,

    "gender": "Male",

    "faceRectangle": {

      "left": 113,

      "top": 314,

      "width": 222,

      "height": 222

    }

  },

  {

    "age": 11,

    "gender": "Female",

    "faceRectangle": {

      "left": 1200,

      "top": 632,

      "width": 215,

      "height": 215

    }

  },

  {

    "age": 41,

    "gender": "Male",

    "faceRectangle": {

      "left": 514,

      "top": 223,

      "width": 205,

      "height": 205

    }

  },

  {

    "age": 37,

    "gender": "Female",

    "faceRectangle": {

      "left": 1008,

      "top": 277,

      "width": 201,

      "height": 201

    }

  }

]

5- توضیحات تصویر

در خروجی JSON ارائه شده می توان توضیحاتی در رابطه با تصویر نیز فراهم کرد. این توضیحات بصورت خلاصه شده بوده و همراه با ضریب اطمینان ارائه می شود. شکل 4 و خروجی JSON آن بیان کننده این موضوع می باشد. 

Computer Vision Descriptionشکل4

خروجی JSON

'description':{

   "captions":[

      {

         "type":"phrase",

         'text':'a black and white photo of a large city',

         'confidence':0.607638706850331

      }

   ]  

   "captions":[

      {

         "type":"phrase",

         'text':'a photo of a large city',

         'confidence':0.577256764264197

      }

   ]  

   "captions":[

      {

         "type":"phrase",

         'text':'a black and white photo of a city',

         'confidence':0.538493271791207

      }

   ]  

   'description':[

      "tags":{

         "outdoor",

         "city",

         "building",

         "photo",

         "large",

      }

   ]

}

6- OCR و تشخیص دست نوشته

این API بخوبی قابلیت OCR را برای 25 زبان پشتیبانی می کند(در زمان نگارش این مطلب زبان فارسی پشتیبانی نمی شود) و همچنین قابلیت تشخیص دست نوشته ها را در مطالب و تصاویر نیز فراهم می سازد. 

7- نحوه استفاده از این API

برای استفاده از این API ابتدا باید یک کلید از Microsoft Cognitive Service دریافت نمایید که این سرویس یکی از سرویس های موجود در Microsoft Azure می باشد. سپس کلید دریافتی و آدرس تصویر را از طریق آدرس URL به سروس ارسال کرده و خروجی JSON را دریافت نمایید. برای مثال یک نمونه آدرس در خواستی برای استخراج اطلاعات تصویر بصورت زیر می باشد.(اطلاعات کامل پیاده سازی این ابزار را در آدرس مشاهده نمایید)

 

https://westus.api.cognitive.microsoft.com/vision/v1.0/analyze?visualFeatures=Categories&language=en HTTP/1.1

Content-Type: application/json

Host: westus.api.cognitive.microsoft.com

Ocp-Apim-Subscription-Key: [Valid Key]

{"url":"Media URL Address"}

ابزار Microsoft Cognitive Computer Vision

ابزار Microsoft Cognitive Computer Vision
استخراج اطلاعات یک تصویر بوسیله ماشین، یکی از چالش های مهم در حوزه هوش مصنوعی می باشد که در دسته پردازش تصویر و بینایی ماشین قرار می گیرد. ابزار های مختلفی برای درک تصاویر و استخراج داده از آن وجود دارد. در این مطلب قصد داریم یک ابزار ساده برای کار با تصاویر را معرفی کنیم.

استخراج اطلاعات یک تصویر بوسیله ماشین، یکی از چالش های مهم در حوزه هوش مصنوعی می باشد که در دسته پردازش تصویر و بینایی ماشین قرار می گیرد. در این مطلب قصد معرفی ابزار Microsoft Cognitive Compute Vision را داریم که یک API پردازش تصویر و استخراج داده های آن می باشد. با استفاده از این API برنامه نویسان به یک الگوریتم پردازش تصویر دسترسی دارند که اطلاعات استخراج شده را در قالب داده JSON ارائه می کند. در ادامه اطلاعات استخراج شده توسط این API را شرح می دهیم.

1- برچسب گذاری تصاویر براساس محتوا

این API قابلیت برچسب گذاری بیش از 2000 شی، موجود زنده و نما و صحنه های موجود در طبیعت را داراست. برچسب گذاری بصورت نامحدود صورت می گیرد و محدودیتی در تعداد اشیا موجود در یک تصویر وجود ندارد.خروجی JSON ارائه شده برای شکل1 بصورت زیر می باشد که شامل اشیا موجود در تصویر و ضریب اطمینان در رابطه با هر شی می باشد. 

computer vision tags

  شکل1

خروجی JSON

[

      {

         "name":"grass",

         "confidence":0.999999761581421

      },

      {

         "name":"outdoor",

         "confidence":0.999970674514771

      },

      {

         "name":"sky",

         "confidence":999289751052856

      },

      {

         "name":"building",

         "confidence":0.996463239192963

      },

      {

         "name":"house",

         "confidence":0.992798030376434

      },

      {

         "name":"lawn",

         "confidence":0.822680294513702

      },

      {

         "name":"green",

         "confidence":0.641222536563873

      },

      {

         "name":"residential",

         "confidence":0.314032256603241

      }

]

2- طبقه بندی تصاویر

این API امکان طبقه بندی تصاور را نیز فراهم می کند. طبقه بندی ساخته شده شامل 86 مفهوم بوده که بصورت سلسله مراتب Parent-Child می باشد. (لیست طبقه بندی ها) برای مثال یک نمونه از طبقه بندی های مشخص شده در شکل 2 قابل مشاهده است.

 Computer Vision categoryشکل2 طبقه بندی food_bread

 3- امکان تشخیص تصاویر طبیعی از مصنوعی

این امکان نیز وجود دارد که بتوان تصاویر واقعی عکاسی شده را از تصاویر مصنوعی که با نرم افزار های مختلف تولید شده است، را به اندازه قابل قبولی تشخیص داد. خروجی ارائه شده برای تصاویر مختلف بصورت زیر می باشد.

مقدار معنی

0 تصویر طبیعی

1 عدم تشخیص نوع تصویر

2 تصویر مصنوعی با کیفیت مصنوعی

3  تصویر مصنوعی با کیفیت خوب

4- تشخیص چهره

یکی دیگر از امکانات این API استخراج اطلاعات افراد از قبیل سن تقریبی، ژست فرد و... از روی تصویر می باشد که در قالب JSON ارائه می شود. شکل3 یک نمونه از این قابلیت را نشان می دهد.

Computer Vision Face

شکل3، تشخیص چهره افراد از طریق چهره

خروجی JSON

[

  {

    "age": 11,

    "gender": "Male",

    "faceRectangle": {

      "left": 113,

      "top": 314,

      "width": 222,

      "height": 222

    }

  },

  {

    "age": 11,

    "gender": "Female",

    "faceRectangle": {

      "left": 1200,

      "top": 632,

      "width": 215,

      "height": 215

    }

  },

  {

    "age": 41,

    "gender": "Male",

    "faceRectangle": {

      "left": 514,

      "top": 223,

      "width": 205,

      "height": 205

    }

  },

  {

    "age": 37,

    "gender": "Female",

    "faceRectangle": {

      "left": 1008,

      "top": 277,

      "width": 201,

      "height": 201

    }

  }

]

5- توضیحات تصویر

در خروجی JSON ارائه شده می توان توضیحاتی در رابطه با تصویر نیز فراهم کرد. این توضیحات بصورت خلاصه شده بوده و همراه با ضریب اطمینان ارائه می شود. شکل 4 و خروجی JSON آن بیان کننده این موضوع می باشد. 

Computer Vision Descriptionشکل4

خروجی JSON

'description':{

   "captions":[

      {

         "type":"phrase",

         'text':'a black and white photo of a large city',

         'confidence':0.607638706850331

      }

   ]  

   "captions":[

      {

         "type":"phrase",

         'text':'a photo of a large city',

         'confidence':0.577256764264197

      }

   ]  

   "captions":[

      {

         "type":"phrase",

         'text':'a black and white photo of a city',

         'confidence':0.538493271791207

      }

   ]  

   'description':[

      "tags":{

         "outdoor",

         "city",

         "building",

         "photo",

         "large",

      }

   ]

}

6- OCR و تشخیص دست نوشته

این API بخوبی قابلیت OCR را برای 25 زبان پشتیبانی می کند(در زمان نگارش این مطلب زبان فارسی پشتیبانی نمی شود) و همچنین قابلیت تشخیص دست نوشته ها را در مطالب و تصاویر نیز فراهم می سازد. 

7- نحوه استفاده از این API

برای استفاده از این API ابتدا باید یک کلید از Microsoft Cognitive Service دریافت نمایید که این سرویس یکی از سرویس های موجود در Microsoft Azure می باشد. سپس کلید دریافتی و آدرس تصویر را از طریق آدرس URL به سروس ارسال کرده و خروجی JSON را دریافت نمایید. برای مثال یک نمونه آدرس در خواستی برای استخراج اطلاعات تصویر بصورت زیر می باشد.(اطلاعات کامل پیاده سازی این ابزار را در آدرس مشاهده نمایید)

 

https://westus.api.cognitive.microsoft.com/vision/v1.0/analyze?visualFeatures=Categories&language=en HTTP/1.1

Content-Type: application/json

Host: westus.api.cognitive.microsoft.com

Ocp-Apim-Subscription-Key: [Valid Key]

{"url":"Media URL Address"}

برای نظر دادن ابتدا باید به سیستم وارد شوید. برای ورود به سیستم روی کلید زیر کلیک کنید.