Salta el contingut

1. Guia Pràctica: Azure AI Vision (Capa Gratuïta)

1.1. Introducció

Azure AI Vision és un servei de visió per computadora que permet analitzar imatges i vídeos mitjançant models d'intel·ligència artificial preentrenats. No cal entrenar cap model propi per começar.

1.1.1. Límits de la capa gratuïta (F0)

  • 5.000 transaccions/mes gratuïtes
  • Sense cost de desplegament
  • Accessible des del portal d'Azure

1.2. Prerequisits

  • Compte d'Azure actiu (gratuït a azure.microsoft.com)
  • Python 3.8 o superior instal·lat
  • Connexió a internet

1.3. Pas 1: Crear el recurs al portal d'Azure

  1. Ves a portal.azure.com
  2. Cerca "Computer Vision" o "Azure AI Vision" a la barra de cerca
  3. Fes clic a "Crear"
  4. Omple els camps:
  5. Subscripció: la teva subscripció activa
  6. Grup de recursos: crea'n un de nou (p.ex. rg-ia-practica)
  7. Regió: West Europe o East US
  8. Nom: un nom únic (p.ex. vision-practica-2024)
  9. Nivell de preus: F0 (Gratuït)
  10. Fes clic a "Revisar i crear""Crear"

Una vegada creat, ves al recurs i copia: - Endpoint (p.ex. https://vision-practica-2024.cognitiveservices.azure.com/) - Clau (a "Claus i punt de connexió")


1.4. Pas 2: Instal·lar les dependències

Bash
pip install azure-ai-vision-imageanalysis pillow requests

1.5. Pas 3: Anàlisi d'imatges bàsica

Crea un fitxer vision_basic.py:

Python
from azure.ai.vision.imageanalysis import ImageAnalysisClient
from azure.ai.vision.imageanalysis.models import VisualFeatures
from azure.core.credentials import AzureKeyCredential

# Configura les teves credencials
ENDPOINT = "https://<el-teu-endpoint>.cognitiveservices.azure.com/"
KEY = "<la-teva-clau>"

# Crear el client
client = ImageAnalysisClient(
    endpoint=ENDPOINT,
    credential=AzureKeyCredential(KEY)
)

# URL d'una imatge pública per analitzar
image_url = "https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/PNG_transparency_demonstration_1.png/280px-PNG_transparency_demonstration_1.png"

# Analitzar la imatge
result = client.analyze_from_url(
    image_url=image_url,
    visual_features=[
        VisualFeatures.CAPTION,
        VisualFeatures.TAGS,
        VisualFeatures.OBJECTS
    ],
    language="en"  # CAPTION i OBJECTS només suporten "en"; per TAGS sol es pot usar "ca", "es", etc.
)

# Mostrar resultats
print("=== DESCRIPCIÓ ===")
if result.caption:
    print(f"Descripció: {result.caption.text}")
    print(f"Confiança: {result.caption.confidence:.2f}")

print("\n=== ETIQUETES ===")
if result.tags:
    for tag in result.tags.list:
        print(f"  - {tag.name} (confiança: {tag.confidence:.2f})")

print("\n=== OBJECTES DETECTATS ===")
if result.objects:
    for obj in result.objects.list:
        print(f"  - {obj.tags[0].name} a {obj.bounding_box}")

Executa'l:

Bash
python vision_basic.py


1.6. Pas 4: Extracció de text (OCR)

Crea un fitxer vision_ocr.py:

Python
from azure.ai.vision.imageanalysis import ImageAnalysisClient
from azure.ai.vision.imageanalysis.models import VisualFeatures
from azure.core.credentials import AzureKeyCredential

ENDPOINT = "https://<el-teu-endpoint>.cognitiveservices.azure.com/"
KEY = "<la-teva-clau>"

client = ImageAnalysisClient(
    endpoint=ENDPOINT,
    credential=AzureKeyCredential(KEY)
)

# Imatge amb text (pots usar una captura de pantalla o document escanejat)
image_url = "https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png"

result = client.analyze_from_url(
    image_url=image_url,
    visual_features=[VisualFeatures.READ]
)

print("=== TEXT EXTRET (OCR) ===")
if result.read:
    for block in result.read.blocks:
        for line in block.lines:
            print(line.text)

1.7. Exercicis proposats

  1. Nivell bàsic: Analitza 3 imatges diferents (paisatge, persona, document) i compara les etiquetes obtingudes.
  2. Nivell mitjà: Crea un script que, donada una carpeta d'imatges local, generi un fitxer CSV amb les descripcions i etiquetes de cada imatge.
  3. Nivell avançat: Construeix una petita aplicació web amb Flask que permeti pujar una imatge i mostrar el resultat de l'anàlisi.

1.8. Errors habituals

Error Causa Solució
AuthenticationFailure Clau incorrecta Verifica la clau al portal
ResourceNotFound Endpoint incorrecte Copia l'endpoint exacte del portal
QuotaExceeded Superat el límit gratuït Espera al mes següent o canvia a S1
InvalidImageUrl URL no accessible Usa una URL pública vàlida

1.9. Recursos addicionals