مهارة تحليل الصور المعرفية

تستخرج مهارة تحليل الصور مجموعة غنية من الميزات المرئية استنادا إلى محتوى الصورة. على سبيل المثال، يمكنك إنشاء تسمية توضيحية من صورة أو إنشاء علامات أو تحديد المشاهير والمعالم. تستخدم هذه المهارة نماذج التعلم الآلي التي توفرها رؤية الكمبيوتر في الخدمات المعرفية.

يعمل تحليل الصور على الصور التي تلبي المتطلبات التالية:

  • يجب تقديم الصورة بتنسيق JPEG أو PNG أو GIF أو BMP
  • يجب أن يكون حجم ملف الصورة أقل من 4 ميجابايت (MB)
  • يجب أن تكون أبعاد الصورة أكبر من 50 × 50 بكسل

ملاحظة

ترتبط هذه المهارة بالخدمات المعرفية وتتطلب موردا قابلا للفوترة للمعاملات التي تتجاوز 20 مستندا لكل مفهرس يوميا. يتم فرض رسوم على تنفيذ المهارات المضمنة بسعر الخدمات المعرفية الحالي للدفع أولا بأول.

بالإضافة إلى ذلك، يمكن فوترة استخراج الصور بواسطة Azure Cognitive Search.

@odata.type

Microsoft.Skills.Vision.ImageAnalysisSkill

معلمات المهارة

المعلمات حساسة لحالة الأحرف.

اسم المعلمة الوصف
defaultLanguageCode سلسلة تشير إلى اللغة المراد إرجاعها. تقوم الخدمة بإرجاع نتائج التعرف بلغة محددة. إذا لم يتم تحديد هذه المعلمة، فإن القيمة الافتراضية هي "en".

اللغات المدعومة هي:
en - الإنجليزية (افتراضي)
es - الأسبانية
ja - اليابانية
pt - البرتغالية
zh - الصينية المبسطة
visualFeatures مجموعة من السلاسل تشير إلى أنواع الميزات المرئية المراد إرجاعها. تتضمن أنواع الميزات المرئية الصالحة ما يلي:
  • الكبار - يكتشف ما إذا كانت الصورة إباحية بطبيعتها (تصور العري أو الفعل الجنسي) ، أو دموية (تصور العنف الشديد أو الدم). يتم أيضا اكتشاف المحتوى الموحي جنسيا (المعروف أيضا باسم المحتوى العنصري).
  • العلامات التجارية - يكتشف العلامات التجارية المختلفة داخل الصورة، بما في ذلك الموقع التقريبي. الميزة المرئية للعلامات التجارية متوفرة باللغة الإنجليزية فقط.
  • الفئات - يصنف محتوى الصورة وفقا لتصنيف محدد في وثائق رؤية الكمبيوتر للخدمات المعرفية.
  • الوصف - يصف محتوى الصورة بجملة كاملة باللغات المدعومة.
  • الوجوه - يكتشف ما إذا كانت الوجوه موجودة. إذا كان موجودا ، يولد الإحداثيات والجنس والعمر.
  • الكائنات - يكتشف كائنات مختلفة داخل الصورة ، بما في ذلك الموقع التقريبي. الميزة المرئية للكائنات متوفرة باللغة الإنجليزية فقط.
  • العلامات - يضع علامات على الصورة بقائمة مفصلة من الكلمات المتعلقة بمحتوى الصورة.
أسماء الميزات المرئية حساسة لحالة الأحرف. لاحظ أنه تم إهمال الميزات المرئية للألوان و imageType ، ولكن لا يزال من الممكن الوصول إلى هذه الوظيفة عبر مهارة مخصصة.
details مجموعة من السلاسل التي تشير إلى التفاصيل الخاصة بالمجال التي تريد إرجاعها. تتضمن أنواع الميزات المرئية الصالحة ما يلي:
  • المشاهير - يحدد المشاهير إذا تم اكتشافهم في الصورة.
  • المعالم - يحدد المعالم إذا تم اكتشافها في الصورة.

مدخلات المهارات

اسم الإدخال الوصف
image نوع معقد. يعمل حاليا فقط مع الحقل "/document/normalized_images" ، الذي ينتجه مفهرس Azure Blob عند imageAction تعيينه إلى قيمة أخرى غير none. راجع العينة لمزيد من المعلومات.

نموذج تعريف المهارة

        {
            "description": "Extract image analysis.",
            "@odata.type": "#Microsoft.Skills.Vision.ImageAnalysisSkill",
            "context": "/document/normalized_images/*",
            "defaultLanguageCode": "en",
            "visualFeatures": [
                "tags",
                "categories",
                "description",
                "faces",
                "brands"
            ],
            "inputs": [
                {
                    "name": "image",
                    "source": "/document/normalized_images/*"
                }
            ],
            "outputs": [
                {
                    "name": "categories"
                },
                {
                    "name": "tags"
                },
                {
                    "name": "description"
                },
                {
                    "name": "faces"
                },
                {
                    "name": "brands"
                }
            ]
        }

نموذج فهرس (لحقول الفئات والوصف والوجوه والعلامات فقط)

{
    "fields": [
        {
            "name": "id",
            "type": "Edm.String",
            "key": true,
            "searchable": true,
            "filterable": false,
            "facetable": false,
            "sortable": true
        },
        {
            "name": "blob_uri",
            "type": "Edm.String",
            "searchable": true,
            "filterable": false,
            "facetable": false,
            "sortable": true
        },
        {
            "name": "content",
            "type": "Edm.String",
            "sortable": false,
            "searchable": true,
            "filterable": false,
            "facetable": false
        },
        {
            "name": "categories",
            "type": "Collection(Edm.ComplexType)",
            "fields": [
                {
                    "name": "name",
                    "type": "Edm.String",
                    "searchable": true,
                    "filterable": false,
                    "facetable": false
                },
                {
                    "name": "score",
                    "type": "Edm.Double",
                    "searchable": false,
                    "filterable": false,
                    "facetable": false
                },
                {
                    "name": "detail",
                    "type": "Edm.ComplexType",
                    "fields": [
                        {
                            "name": "celebrities",
                            "type": "Collection(Edm.ComplexType)",
                            "fields": [
                                {
                                    "name": "name",
                                    "type": "Edm.String",
                                    "searchable": true,
                                    "filterable": false,
                                    "facetable": false
                                },
                                {
                                    "name": "faceBoundingBox",
                                    "type": "Collection(Edm.ComplexType)",
                                    "fields": [
                                        {
                                            "name": "x",
                                            "type": "Edm.Int32",
                                            "searchable": false,
                                            "filterable": false,
                                            "facetable": false
                                        },
                                        {
                                            "name": "y",
                                            "type": "Edm.Int32",
                                            "searchable": false,
                                            "filterable": false,
                                            "facetable": false
                                        }
                                    ]
                                },
                                {
                                    "name": "confidence",
                                    "type": "Edm.Double",
                                    "searchable": false,
                                    "filterable": false,
                                    "facetable": false
                                }
                            ]
                        },
                        {
                            "name": "landmarks",
                            "type": "Collection(Edm.ComplexType)",
                            "fields": [
                                {
                                    "name": "name",
                                    "type": "Edm.String",
                                    "searchable": true,
                                    "filterable": false,
                                    "facetable": false
                                },
                                {
                                    "name": "confidence",
                                    "type": "Edm.Double",
                                    "searchable": false,
                                    "filterable": false,
                                    "facetable": false
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        {
            "name": "description",
            "type": "Collection(Edm.ComplexType)",
            "fields": [
                {
                    "name": "tags",
                    "type": "Collection(Edm.String)",
                    "searchable": true,
                    "filterable": false,
                    "facetable": false
                },
                {
                    "name": "captions",
                    "type": "Collection(Edm.ComplexType)",
                    "fields": [
                        {
                            "name": "text",
                            "type": "Edm.String",
                            "searchable": true,
                            "filterable": false,
                            "facetable": false
                        },
                        {
                            "name": "confidence",
                            "type": "Edm.Double",
                            "searchable": false,
                            "filterable": false,
                            "facetable": false
                        }
                    ]
                }
            ]
        },
        {
            "name": "faces",
            "type": "Collection(Edm.ComplexType)",
            "fields": [
                {
                    "name": "age",
                    "type": "Edm.Int32",
                    "searchable": false,
                    "filterable": false,
                    "facetable": false
                },
                {
                    "name": "gender",
                    "type": "Edm.String",
                    "searchable": false,
                    "filterable": false,
                    "facetable": false
                },
                {
                    "name": "faceBoundingBox",
                    "type": "Collection(Edm.ComplexType)",
                    "fields": [
                        {
                            "name": "x",
                            "type": "Edm.Int32",
                            "searchable": false,
                            "filterable": false,
                            "facetable": false
                        },
                        {
                            "name": "y",
                            "type": "Edm.Int32",
                            "searchable": false,
                            "filterable": false,
                            "facetable": false
                        }
                    ]
                }
            ]
        },
        {
            "name": "tags",
            "type": "Collection(Edm.ComplexType)",
            "fields": [
                {
                    "name": "name",
                    "type": "Edm.String",
                    "searchable": true,
                    "filterable": false,
                    "facetable": false
                },
                {
                    "name": "confidence",
                    "type": "Edm.Double",
                    "searchable": false,
                    "filterable": false,
                    "facetable": false
                }
            ]
        }
    ]
}

نموذج تعيين حقل المخرجات (للفهرس أعلاه)

    "outputFieldMappings": [
        {
            "sourceFieldName": "/document/normalized_images/*/categories/*",
            "targetFieldName": "categories"
        },
        {
            "sourceFieldName": "/document/normalized_images/*/tags/*",
            "targetFieldName": "tags"
        },
        {
            "sourceFieldName": "/document/normalized_images/*/description",
            "targetFieldName": "description"
        },
        {
            "sourceFieldName": "/document/normalized_images/*/faces/*",
            "targetFieldName": "faces"
        },
        {
            "sourceFieldName": "/document/normalized_images/*/brands/*/name",
            "targetFieldName": "brands"
        }

التباين في تعيينات حقول المخرجات (الخصائص المتداخلة)

يمكنك تحديد تعيينات حقول المخرجات إلى خصائص المستوى الأدنى، مثل المعالم أو المشاهير فقط. في هذه الحالة، تأكد من أن مخطط الفهرس يحتوي على حقل يحتوي على معالم على وجه التحديد.

    "outputFieldMappings": [
        {
            "sourceFieldName": "/document/normalized_images/*/categories/detail/celebrities/*",
            "targetFieldName": "celebrities"
        }

عينة الإدخال

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "image": {
                    "data": "BASE64 ENCODED STRING OF A JPEG IMAGE",
                    "width": 500,
                    "height": 300,
                    "originalWidth": 5000,
                    "originalHeight": 3000,
                    "rotationFromOriginal": 90,
                    "contentOffset": 500,
                    "pageNumber": 2
                }
            }
        }
    ]
}

عينة الإخراج

{
  "values": [
    {
      "recordId": "1",
      "data": {
        "categories": [
          {
            "name": "abstract_",
            "score": 0.00390625
          },
          {
            "name": "people_",
            "score": 0.83984375,
            "detail": {
              "celebrities": [
                {
                  "name": "Satya Nadella",
                  "faceBoundingBox": [
                        {
                            "x": 273,
                            "y": 309
                        },
                        {
                            "x": 395,
                            "y": 309
                        },
                        {
                            "x": 395,
                            "y": 431
                        },
                        {
                            "x": 273,
                            "y": 431
                        }
                    ],
                  "confidence": 0.999028444
                }
              ],
              "landmarks": [
                {
                  "name": "Forbidden City",
                  "confidence": 0.9978346
                }
              ]
            }
          }
        ],
        "adult": {
          "isAdultContent": false,
          "isRacyContent": false,
          "isGoryContent": false,
          "adultScore": 0.0934349000453949,
          "racyScore": 0.068613491952419281,
          "goreScore": 0.08928389008070282
        },
        "tags": [
          {
            "name": "person",
            "confidence": 0.98979085683822632
          },
          {
            "name": "man",
            "confidence": 0.94493889808654785
          },
          {
            "name": "outdoor",
            "confidence": 0.938492476940155
          },
          {
            "name": "window",
            "confidence": 0.89513939619064331
          }
        ],
        "description": {
          "tags": [
            "person",
            "man",
            "outdoor",
            "window",
            "glasses"
          ],
          "captions": [
            {
              "text": "Satya Nadella sitting on a bench",
              "confidence": 0.48293603002174407
            }
          ]
        },
        "requestId": "0dbec5ad-a3d3-4f7e-96b4-dfd57efe967d",
        "metadata": {
          "width": 1500,
          "height": 1000,
          "format": "Jpeg"
        },
        "faces": [
          {
            "age": 44,
            "gender": "Male",
            "faceBoundingBox": [
                {
                    "x": 1601,
                    "y": 395
                },
                {
                    "x": 1653,
                    "y": 395
                },
                {
                    "x": 1653,
                    "y": 447
                },
                {
                    "x": 1601,
                    "y": 447
                }
            ]
          }
        ],
        "objects": [
          {
            "rectangle": {
              "x": 25,
              "y": 43,
              "w": 172,
              "h": 140
            },
            "object": "person",
            "confidence": 0.931
          }
        ],
        "brands":[  
           {  
              "name":"Microsoft",
              "confidence": 0.903,
              "rectangle":{  
                 "x":20,
                 "y":97,
                 "w":62,
                 "h":52
              }
           }
        ]
      }
    }
  ]
}

حالات الخطأ

في حالات الخطأ التالية، لا يتم استخراج أي عناصر.

التعليمات البرمجية للأخطاء الوصف
NotSupportedLanguage اللغة المقدمة غير مدعومة.
InvalidImageUrl عنوان URL للصورة منسق بشكل سيئ أو لا يمكن الوصول إليه.
InvalidImageFormat بيانات الإدخال ليست صورة صالحة.
InvalidImageSize صورة الإدخال كبيرة جدا.
NotSupportedVisualFeature نوع الميزة المحدد غير صالح.
NotSupportedImage صورة غير مدعومة ، على سبيل المثال ، المواد الإباحية للأطفال.
InvalidDetails نموذج خاص بالمجال غير معتمد.

إذا حصلت على خطأ مشابه ل "One or more skills are invalid. Details: Error in skill #<num>: Outputs are not supported by skill: Landmarks"، فتحقق من المسار. كل من المشاهير والمعالم هي عقارات تحت detail.

"categories":[  
      {  
         "name":"building_",
         "score":0.97265625,
         "detail":{  
            "landmarks":[  
               {  
                  "name":"Forbidden City",
                  "confidence":0.92013400793075562
               }
            ]

راجع أيضًا