Multimodal AI Intermediario
~35 min
Image Understanding
Topico 34 de 35
visao imagem multimodal
Progresso do Topico 0%
Image Understanding
Image Understanding em IA multimodal refere-se a capacidade de modelos de interpretar, analisar e extrair informacoes de imagens. Combinando dados visuais com outras modalidades como texto, sistemas de IA podem reconhecer objetos, cenas e acoes enquanto entendem contexto e conceitos relacionados.
O Que e Image Understanding?#
Vai alem de simplesmente "ver" uma imagem. Envolve:
- Reconhecimento: Identificar objetos, pessoas, lugares
- Compreensao: Entender relacoes entre elementos
- Raciocinio: Inferir informacoes nao explicitas
- Descricao: Gerar texto que descreve a imagem
Niveis de Compreensao Visual#
1. Baixo Nivel (Low-Level)#
- Bordas, texturas, cores
- Formas geometricas basicas
2. Medio Nivel (Mid-Level)#
- Objetos individuais
- Partes de objetos
3. Alto Nivel (High-Level)#
- Cenas completas
- Acoes e eventos
- Emocoes e intencoes
APIs de Vision#
OpenAI Vision API#
Python
from openai import OpenAI
client = OpenAI()
# Analise basica
response = client.chat.completions.create(
model="gpt-4-vision-preview",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "Descreva detalhadamente o que voce ve nesta imagem."
},
{
"type": "image_url",
"image_url": {
"url": "https://exemplo.com/foto.jpg",
"detail": "high" # low, high, ou auto
}
}
]
}
],
max_tokens=500
)
print(response.choices[0].message.content)
Modos de Fidelidade#
Low Fidelity (detail: "low"):
- Imagem redimensionada para 512x512
- Mais rapido e barato
- Bom para visao geral
High Fidelity (detail: "high"):
- Processa imagem em resolucao maior
- Divide em tiles de 512x512
- Melhor para detalhes finos
Python
# Exemplo com multiplas imagens
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "Compare estas duas imagens:"},
{
"type": "image_url",
"image_url": {"url": url1, "detail": "low"}
},
{
"type": "image_url",
"image_url": {"url": url2, "detail": "low"}
}
]
}
]
Casos de Uso Praticos#
1. Analise de Documentos#
Python
prompt = """
Analise este documento e extraia:
1. Titulo
2. Data
3. Valores monetarios
4. Assinaturas (se houver)
Retorne em formato JSON.
"""
2. Descricao para Acessibilidade#
Python
prompt = """
Crie uma descricao detalhada desta imagem para uma pessoa
com deficiencia visual. Inclua:
- Elementos principais
- Cores predominantes
- Atmosfera/emocao transmitida
- Texto visivel
"""
3. Analise de Produtos#
Python
prompt = """
Analise esta foto de produto e identifique:
- Tipo de produto
- Marca (se visivel)
- Condicao aparente
- Defeitos visiveis
"""
4. Moderacao de Conteudo#
Python
prompt = """
Analise esta imagem quanto a:
- Conteudo adulto
- Violencia
- Discurso de odio
- Informacoes sensiveis visiveis
Classifique como: seguro, sensivel, ou inadequado.
"""
Integracao com RAG Visual#
Python
from langchain.vectorstores import Chroma
from langchain.embeddings import OpenAIEmbeddings
# 1. Processar imagens e gerar descricoes
def process_image_for_rag(image_path):
# Gerar descricao com Vision API
description = analyze_image(image_path)
# Criar embedding da descricao
embedding = embeddings.embed_query(description)
return {
"image_path": image_path,
"description": description,
"embedding": embedding
}
# 2. Indexar no vector store
vectorstore = Chroma.from_texts(
texts=[img["description"] for img in processed_images],
metadatas=[{"path": img["image_path"]} for img in processed_images]
)
# 3. Buscar imagens relevantes
results = vectorstore.similarity_search("foto de praia ao por do sol")
Limitacoes e Cuidados#
O Que Modelos NAO Fazem Bem#
- Contar objetos com precisao
- Ler texto muito pequeno ou distorcido
- Entender relacoes espaciais complexas
- Identificar pessoas especificas (por design)
Consideracoes Eticas#
- Privacidade de pessoas nas imagens
- Vieses em reconhecimento facial
- Uso indevido para vigilancia
Otimizacao de Custos#
Python
# Reduzir tamanho antes de enviar
from PIL import Image
def optimize_for_vision(image_path, max_size=1024):
img = Image.open(image_path)
img.thumbnail((max_size, max_size))
# Salvar em buffer e enviar
Boas Praticas#
- Seja especifico no prompt: Diga exatamente o que procura
- Use fidelidade apropriada:
lowpara tarefas gerais,highpara detalhes - Combine com texto: Forneca contexto junto com a imagem
- Valide outputs criticos: Modelos podem alucinar detalhes
- Respeite privacidade: Cuidado com imagens de pessoas
Resources#
- Low or High Fidelity Image Understanding - OpenAI
- Vision API Documentation - OpenAI
- Claude Vision - Anthropic
Checklist#
3 recursos
Este topico tambem pode ser acessado em /topicos/image-understanding