Анализ изображения с использованием пакета SDK API компьютерного зрения для C#

Завершено

Чтобы проанализировать изображение, можно использовать метод REST Анализ изображений или эквивалентный метод в пакете SDK для предпочитаемого вами языка программирования, указав визуальные особенности, которые вы хотите включить в анализ (и, если выбрать категории, можно включить сведения о знаменитостях или достопримечательностях). Этот метод возвращает документ JSON, содержащий запрошенную информацию.

Примечание.

Определение знаменитостей потребует утверждения с помощью политики ограниченного доступа. Вы можете узнать больше о добавлении этой политики к стандарту Ответственного использования ИИ. Распознавание знаменитостей можно увидеть на некоторых снимках экрана, но оно не входит в задание.

using Azure.AI.Vision.ImageAnalysis;

ImageAnalysisClient client = new ImageAnalysisClient(
    Environment.GetEnvironmentVariable("ENDPOINT"),
    new AzureKeyCredential(Environment.GetEnvironmentVariable("KEY")));

ImageAnalysisResult result = client.Analyze(
    new Uri("<url>"),
    VisualFeatures.Caption | VisualFeatures.Read,
    new ImageAnalysisOptions { GenderNeutralCaption = true });
from azure.ai.vision.imageanalysis import ImageAnalysisClient
from azure.ai.vision.imageanalysis.models import VisualFeatures
from azure.core.credentials import AzureKeyCredential

client = ImageAnalysisClient(
    endpoint=os.environ["ENDPOINT"],
    credential=AzureKeyCredential(os.environ["KEY"])
)

result = client.analyze(
    image_url="<url>",
    visual_features=[VisualFeatures.CAPTION, VisualFeatures.READ],
    gender_neutral_caption=True,
    language="en",
)

Доступные визуальные функции содержатся в VisualFeatures перечислении:

  • VisualFeatures.Tags: определяет теги о изображении, включая объекты, пейзажи, параметры и действия
  • VisualFeatures.Objects: возвращает ограничивающее поле для каждого обнаруженного объекта.
  • VisualFeatures.Caption: создает подпись изображения на естественном языке
  • VisualFeatures.DenseCaptions: создает более подробные подпись для обнаруженных объектов
  • VisualFeatures. Люди. Возвращает ограничивающий прямоугольник для обнаруженных людей
  • VisualFeatures.SmartCrops: возвращает ограничивающий прямоугольник указанного пропорции для интересующей области
  • VisualFeatures.Read: извлекает доступный для чтения текст
  • VisualFeatures.TAGS: определяет теги изображения, включая объекты, пейзажи, параметры и действия
  • VisualFeatures.OBJECTS: возвращает ограничивающее поле для каждого обнаруженного объекта.
  • VisualFeatures.CAPTION: создает подпись изображения на естественном языке
  • VisualFeatures.DENSE_CAPTIONS. Создает более подробные подпись для обнаруженных объектов
  • VisualFeatures.PEOPLE: возвращает ограничивающий прямоугольник для обнаруженных людей
  • VisualFeatures.SMART_CROPS. Возвращает ограничивающий прямоугольник указанного пропорции для интересующей области.
  • VisualFeatures.READ: извлекает доступный для чтения текст

Указание визуальных функций, которые необходимо проанализировать на изображении, определяет, какие сведения будут содержать ответ. Большинство ответов будет содержать ограничивающий прямоугольник (если расположение в изображении разумно) или оценку достоверности (для таких функций, как теги или подпись).

Ответ JSON для анализа изображений выглядит примерно так, как в зависимости от запрошенных функций:

{
  "apim-request-id": "abcde-1234-5678-9012-f1g2h3i4j5k6",
  "modelVersion": "<version>",
  "denseCaptionsResult": {
    "values": [
      {
        "text": "a house in the woods",
        "confidence": 0.7055229544639587,
        "boundingBox": {
          "x": 0,
          "y": 0,
          "w": 640,
          "h": 640
        }
      },
      {
        "text": "a trailer with a door and windows",
        "confidence": 0.6675070524215698,
        "boundingBox": {
          "x": 214,
          "y": 434,
          "w": 154,
          "h": 108
        }
      }
    ]
  },
  "metadata": {
    "width": 640,
    "height": 640
  }
}