Claude peut localiser et étiqueter des régions d'une image (par exemple, renvoyer des « bounding boxes » (boîtes englobantes) pour des tableaux, des champs de formulaire, des éléments de graphique ou des composants d'interface utilisateur). Ce guide explique comment Claude redimensionne les images avant de les traiter et comment travailler avec les coordonnées en pixels qu'il renvoie, afin que les boîtes et les points s'alignent avec votre image d'origine.
Vous en aurez besoin pour les pipelines d'OCR, l'extraction de formulaires, l'analyse de graphiques, la localisation d'éléments d'interface utilisateur, et toute tâche où vous agissez sur une région spécifique d'une image. Pour l'envoi d'images, les formats pris en charge et les limites de résolution par modèle, consultez Vision.
Claude fonctionne mieux avec des coordonnées en pixels absolues. Demandez-les explicitement dans votre prompt. Par exemple : « Renvoie la boîte englobante de chaque tableau sous la forme [x1, y1, x2, y2] (coins supérieur gauche et inférieur droit) en coordonnées de pixels. » Claude ne fonctionne pas bien lorsque vous demandez des coordonnées normalisées, par exemple : « Renvoie les coordonnées de la boîte englobante entre 0 et 1000. » Demandez toujours des coordonnées en pixels et normalisez dans votre propre code si nécessaire. Pour obtenir les coordonnées sous forme de JSON lisible par machine plutôt qu'en prose, définissez un schéma avec les sorties structurées, par exemple un objet avec un tableau [x1, y1, x2, y2] par élément détecté.
Les coordonnées suivent la convention standard des images : l'origine (0, 0) est le coin supérieur gauche de l'image, avec x croissant vers la droite et y croissant vers le bas. Les coordonnées que Claude renvoie sont des positions en pixels dans l'image que Claude voit : votre image après que Claude l'a redimensionnée pour correspondre à la résolution native du modèle (voir Comment Claude redimensionne et remplit les images). Pour obtenir des coordonnées que vous pouvez utiliser directement, soit pré-redimensionnez votre image afin que les coordonnées correspondent une à une à l'image que vous avez (voir Redimensionnez votre image avant de la téléverser), soit remettez à l'échelle les coordonnées que Claude renvoie (voir Remettez à l'échelle les coordonnées lorsque vous ne pouvez pas pré-redimensionner).
Le raisonnement spatial de Claude a des limites (voir Limitations). La précision des coordonnées est meilleure lorsque vous indiquez le format de coordonnées attendu dans votre prompt et que vous vérifiez visuellement les résultats par échantillonnage avant de traiter à grande échelle. Les petits éléments perdent en précision lorsqu'une image est réduite : pour des cibles fines, recadrez la région d'intérêt et envoyez le recadrage (décalez les coordonnées renvoyées par l'origine du recadrage), ou utilisez un modèle du palier haute résolution. Pour la prise en charge des PDF, les pages sont rastérisées en images côté serveur à des dimensions que vous ne contrôlez pas, donc les coordonnées renvoyées ne peuvent pas être reportées de manière fiable sur la page. Pour travailler avec des coordonnées sur du contenu PDF, rastérisez vous-même les pages en images et utilisez l'approche de pré-redimensionnement.
Claude trouve la plus grande taille préservant le rapport d'aspect qui satisfait les deux limites d'image du modèle :
⌈width / 28⌉ × ⌈height / 28⌉ ne dépasse pas le budget de tokens visuels du modèle (1568 tokens sur le palier standard, 4784 sur le palier haute résolution).Consultez Résolution et coût en tokens pour savoir quels modèles appartiennent à quel palier.
Pour presque toutes les photos et captures d'écran, c'est la limite de tokens visuels qui détermine la taille finale. La limite de bord ne prend le relais que pour les images allongées telles que les panoramas ou les captures d'écran de téléphone en hauteur. Calculez la taille avec l'implémentation de référence plutôt que de mettre à l'échelle manuellement vers la longueur de bord : une capture d'écran de 1920×1080 est redimensionnée en 1456×819, et non en 1568×882, et supposer la limite de bord décale sensiblement chaque coordonnée par rapport à sa cible.
La limite de tokens peut également déclencher un redimensionnement lorsqu'aucun côté ne dépasse la limite de bord. Négliger ce point est la cause la plus courante de coordonnées mal alignées. Par exemple, une page A4 numérisée à 130 DPI fait 1075×1520 pixels : les deux côtés sont inférieurs à 1568 px, mais elle coûte 39 × 55 = 2145 tokens visuels, donc Claude la redimensionne en 924×1307.
Cet exemple suppose un modèle sur le palier de résolution standard. Un modèle du palier haute résolution ne redimensionne pas la même numérisation : 2145 tokens sont dans son budget de 4784 tokens, donc les coordonnées qu'il renvoie correspondent directement à l'original de 1075×1520. Les paliers des modèles sont listés dans Résolution et coût en tokens.
Claude remplit ensuite chaque image, redimensionnée ou non, jusqu'au multiple de 28 pixels suivant sur les bords inférieur et droit (924×1307 devient 924×1316 dans l'exemple). Le remplissage ne contient aucun contenu : Claude perçoit l'image remplie, mais le contenu de la page n'occupe jamais que la région redimensionnée non remplie. Normalisez ou remettez toujours à l'échelle en utilisant les dimensions redimensionnées, pas les dimensions remplies ; diviser par les dimensions remplies met à l'échelle chaque coordonnée d'une petite quantité.
L'approche la plus fiable consiste à redimensionner vous-même votre image avant de la téléverser, de sorte que l'image que vous avez soit exactement l'image que Claude voit et que les coordonnées que Claude renvoie ne nécessitent aucune conversion.
Vérifiez d'abord sur quel palier de résolution se trouve votre modèle (voir Résolution et coût en tokens) et passez les limites de bord et de tokens correspondantes. L'implémentation de référence suivante calcule la taille exacte à laquelle Claude redimensionne une image :
import math
def count_image_tokens(width: int, height: int) -> int:
"""Visual tokens consumed by an image: one token per 28x28 pixel patch."""
return math.ceil(width / 28) * math.ceil(height / 28)
def resized_size(
width: int,
height: int,
max_edge: int = 1568,
max_tokens: int = 1568,
) -> tuple[int, int]:
"""The size Claude resizes an image to before padding.
Defaults are for the standard resolution tier. For high-resolution-tier
models, use max_edge=2576 and max_tokens=4784. Returns (width, height).
Images that already fit within the limits are returned unchanged.
"""
def fits(w: int, h: int) -> bool:
return (
math.ceil(w / 28) * 28 <= max_edge
and math.ceil(h / 28) * 28 <= max_edge
and count_image_tokens(w, h) <= max_tokens
)
if fits(width, height):
return (width, height)
if height > width:
resized_h, resized_w = resized_size(height, width, max_edge, max_tokens)
return (resized_w, resized_h)
# Recherche binaire sur le grand côté pour trouver la plus grande taille
# préservant le ratio qui tient dans les limites.
aspect_ratio = width / height
lo, hi = 1, width # lo always fits; hi never fits
while lo + 1 < hi:
mid = (lo + hi) // 2
if fits(mid, max(round(mid / aspect_ratio), 1)):
lo = mid
else:
hi = mid
return (lo, max(round(lo / aspect_ratio), 1))
# L'exemple A4 tiré de « Comment Claude redimensionne et remplit les images » :
print(resized_size(1075, 1520)) # (924, 1307)
# Pour appliquer le redimensionnement, utilisez votre bibliothèque d'images, par exemple Pillow :
# image.resize(resized_size(*image.size))[x, y] en coordonnées de pixels. »Le point de terminaison de comptage de tokens estime le coût en tokens d'une image à partir de ses dimensions sans la traiter entièrement, donc un comptage réussi ne signifie pas que l'image respecte les limites de requête de l'API Messages. Une image peut être comptée avec succès et être tout de même rejetée lorsque vous l'envoyez.
Si vous ne pouvez pas pré-redimensionner (par exemple, lorsque l'image provient d'un système en amont que vous ne pouvez pas modifier), utilisez l'assistant de redimensionnement de Redimensionnez votre image avant de la téléverser pour retrouver les dimensions que Claude a vues, puis convertissez les coordonnées que Claude renvoie en coordonnées normalisées ou reportez-les sur votre image d'origine. Claude redimensionne les images surdimensionnées plutôt que de les rejeter, jusqu'aux limites de requête de l'API. Au-delà de ces limites, la requête échoue avec une erreur de validation. Passez les limites du palier correspondant au modèle que vous avez appelé : les limites du mauvais palier retrouvent les mauvaises dimensions redimensionnées et décalent silencieusement chaque coordonnée. Cette approche nécessite de connaître les dimensions en pixels de l'image que vous avez téléversée, elle ne s'applique donc pas aux téléversements de PDF.
# Cette fonction appelle resized_size de l'exemple de redimensionnement sur cette page.
def to_relative_coordinates(
x: float,
y: float,
original_width: int,
original_height: int,
max_edge: int = 1568,
max_tokens: int = 1568,
) -> tuple[float, float]:
"""Map a pixel coordinate returned by Claude to relative coordinates in [0, 1].
Pass the dimensions of the image you uploaded. For high-resolution-tier
models, use max_edge=2576 and max_tokens=4784.
"""
resized_w, resized_h = resized_size(
original_width, original_height, max_edge, max_tokens
)
return (x / resized_w, y / resized_h)
# Un coin de tableau que Claude renvoie en (462, 653.5) sur la page A4 redimensionnée
# se reporte sur l'original 1075x1520 comme suit :
rel_x, rel_y = to_relative_coordinates(462, 653.5, 1075, 1520)
print((rel_x * 1075, rel_y * 1520)) # (537.5, 760.0)Le remplissage n'est appliqué qu'aux bords inférieur et droit, donc l'origine ne se décale pas et une remise à l'échelle linéaire par axe suffit. Bornez les coordonnées renvoyées aux dimensions redimensionnées avant la remise à l'échelle, afin qu'un point légèrement en dehors de l'image ne puisse pas être reporté en dehors de votre original.
Les coordonnées relatives se multiplient par la surface sur laquelle vous agissez : l'image d'origine, une numérisation en pleine résolution ou un écran. Lorsque vous agissez sur un écran et que les pixels de la capture d'écran diffèrent des coordonnées logiques (écrans HiDPI), divisez également par le facteur d'échelle de l'affichage. Les conseils de mise à l'échelle de l'outil d'utilisation de l'ordinateur couvrent ce schéma.
Les Agent Skills sont des capacités modulaires qui étendent les fonctionnalités de Claude. Chaque Skill regroupe des instructions, des métadonnées et des ressources optionnelles (scripts, modèles) que Claude utilise automatiquement lorsque c'est pertinent.
Donnez à Claude le contrôle des captures d'écran, de la souris et du clavier d'un environnement de bureau avec l'outil d'utilisation de l'ordinateur.
Traitez des PDF avec Claude. Extrayez du texte, analysez des graphiques et comprenez le contenu visuel de vos documents.
Comptez les tokens d'un message avant de l'envoyer à Claude. Utilisez le nombre de tokens pour gérer les limites de débit et les coûts, prendre des décisions de routage de modèle et ajuster les prompts à une longueur cible.
Was this page helpful?