SDK Vision Perceptron

VérifiéPrudence

Analyse d'images et vidéos avec les modèles de vision Isaac pour Q&A, détection, OCR, légendage et comptage.

Spar Skills Guide Bot
Data & IAIntermédiaire
22/07/2026
Claude CodeCodexCursor
#vision#image-analysis#ocr#object-detection#python-sdk

Recommandé pour

Synthèse automatique

Ce skill fournit le SDK Python Perceptron pour analyser des images et des vidéos via les modèles de vision Isaac : questions visuelles, détection d'objets, OCR, légendage et raisonnement spatial ancré.

Points forts

  • Couvre un large éventail de tâches visuelles (Q&A, détection, OCR, comptage, légendage) dans une seule interface cohérente
  • Accepte directement les chemins de fichiers ou les URL, la conversion base64 étant gérée automatiquement
  • Sorties structurées via Pydantic, schémas JSON ou regex, avec conversion des coordonnées normalisées en pixels
  • Composition DSL avancée avec @perceive pour des workflows multimodaux personnalisés

Limites

  • Nécessite une clé API PERCEPTRON_API_KEY et un accès au service hébergé Perceptron
  • Limité à l'analyse : ne génère pas d'images
  • La détection d'objets dépend de classes fournies explicitement par l'utilisateur
Quand l'utiliser

À utiliser lorsqu'il faut interroger, détecter, OCRiser ou décrire le contenu d'images ou de vidéos dans un script Python.

Quand l'éviter

À ne pas utiliser pour générer ou éditer des images, ou lorsque aucun accès au service Perceptron n'est possible.

Analyse de sécurité

Prudence
Score qualité88/100

The skill provides a legitimate image and video analysis SDK with no destructive or clearly malicious instructions. However, it uses network calls to an external API, shell commands, and installs a third-party package, which warrant caution rather than a completely safe rating.

Points d'attention
  • •Instructs installing a third-party Python package via pip, introducing supply-chain risk.
  • •Sends image and video data to an external Perceptron API, which may expose sensitive visual information.
  • •Requires an API key environment variable, creating risk of accidental exposure if mishandled.
  • •Uses shell commands including ffmpeg for video frame extraction.
Comment cette analyse est faite

Exemples

Visual Q&A on a photo
Use the perceptron skill to ask 'What is happening in this image?' about photo.jpg and print the answer.
Grounded object detection
Detect all forklifts and people in warehouse.jpg with perceptron and print their bounding boxes in pixel coordinates for a 1920x1080 image.
Structured OCR extraction
Run OCR on receipt.jpg with perceptron and extract the total amount as text.

name: perceptron description: "Image and video analysis powered by Isaac vision models. Capabilities include visual Q&A, object detection, OCR, captioning, counting, and grounded spatial reasoning with bounding boxes, points, and polygons. Supports streaming, structured outputs, DSL composition, and in-context learning. NOT for: generating images (analysis only)."

Perceptron — Vision SDK

Docs: https://docs.perceptron.inc/

Image and video analysis via the Perceptron Python SDK. Pass file paths or URLs directly — the SDK handles base64 conversion automatically.

Setup

pip install perceptron
export PERCEPTRON_API_KEY=ak_...

Quick Reference

| Task | Function | Example | |------|----------|---------| | Describe / Q&A | question() | question("photo.jpg", "What's in this image?") | | Grounded Q&A | question() | question("photo.jpg", "Where is the cat?", expects="box") | | Object detection | detect() | detect("photo.jpg", classes=["person", "car"]) | | OCR | ocr() | ocr("document.png") | | OCR (markdown) | ocr_markdown() | ocr_markdown("document.png") | | Caption | caption() | caption("photo.jpg", style="detailed") | | Counting | question() | question("photo.jpg", "How many dogs?", expects="point") | | Custom workflow | @perceive | See DSL composition below |

Python SDK

from perceptron import configure, detect, caption, ocr, ocr_markdown, question

# Configuration (or set PERCEPTRON_API_KEY env var)
configure(provider="perceptron", api_key="ak_...")

# Visual Q&A — the most common operation
result = question("photo.jpg", "What's happening in this image?")
print(result.text)

# Grounded Q&A — get bounding boxes with answers
result = question("photo.jpg", "Where is the damage?", expects="box")
for box in result.points or []:
    print(f"{box.mention}: ({box.top_left.x},{box.top_left.y}) → ({box.bottom_right.x},{box.bottom_right.y})")

# Object detection
result = detect("warehouse.jpg", classes=["forklift", "person"])
for box in result.points or []:
    print(f"{box.mention}: ({box.top_left.x},{box.top_left.y}) → ({box.bottom_right.x},{box.bottom_right.y})")

# OCR
result = ocr("receipt.jpg", prompt="Extract the total amount")
print(result.text)

result = ocr_markdown("document.png")  # structured markdown output
print(result.text)

# Captioning
result = caption("scene.png", style="detailed")
print(result.text)

DSL Composition (Advanced)

Build custom multimodal workflows:

from perceptron import perceive, image, text, system

@perceive(expects="box", model="isaac-0.2-2b-preview")
def find_hazards(img_path):
    return [system("<hint>BOX</hint>"), image(img_path), text("Locate all safety hazards")]

result = find_hazards("factory.jpg")

Structured Outputs

Constrain responses to Pydantic models, JSON schemas, or regex:

from perceptron import perceive, image, text, pydantic_format
from pydantic import BaseModel

class Scene(BaseModel):
    objects: list[str]
    count: int

@perceive(response_format=pydantic_format(Scene))
def count_objects(path):
    return image(path) + text("List all objects and count them. Return JSON.")

result = count_objects("photo.jpg")
scene = Scene.model_validate_json(result.text)

Pixel Coordinate Conversion

All spatial outputs use normalized coordinates (0–1000). Convert to pixels:

pixel_boxes = result.points_to_pixels(width=1920, height=1080)

# Or standalone:
from perceptron import scale_points_to_pixels
pixel_pts = scale_points_to_pixels(result.points, width=1920, height=1080)

CLI Script

Located at: <skill-dir>/scripts/perceptron_cli.py

Requires PERCEPTRON_API_KEY environment variable. The provider is always perceptron.

P=<skill-dir>/scripts/perceptron_cli.py

# Visual Q&A
python3 $P question photo.jpg "What do you see?"
python3 $P question photo.jpg "Where is the car?" --expects box

# Object detection
python3 $P detect photo.jpg --classes person,car
python3 $P detect photo.jpg --classes forklift --format json --pixels
python3 $P detect ./frames/ --classes defect  # batch directory

# OCR
python3 $P ocr document.png
python3 $P ocr receipt.jpg --output markdown

# Captioning
python3 $P caption scene.png --style detailed

# Custom perceive
python3 $P perceive frame.png --prompt "Describe this scene" --expects box

# Batch processing
python3 $P batch --images img1.jpg img2.jpg --prompt "Describe" --output results.json

# Parse raw model output
python3 $P parse "<point_box ...>" --mode points

# List models
python3 $P models

Models

| Model | Best for | Speed | Temp | |-------|----------|-------|------| | isaac-0.2-2b-preview (default) | General use, detection, OCR | Fast | 0.0 | | isaac-0.2-1b | Quick/simple tasks | Fastest | 0.0 |

Override with model="..." in any SDK call or --model ... in CLI.

Grounding (expects parameter)

| Value | Returns | Use case | |-------|---------|----------| | text (default) | Plain text | Q&A, descriptions, OCR | | box | Bounding boxes | Detection, localization | | point | Point coordinates | Counting, pointing | | polygon | Polygon vertices | Segmentation |

Video Analysis

Extract frames with ffmpeg, then analyze:

# Single frame at 5 seconds
ffmpeg -ss 5 -i video.mp4 -frames:v 1 -q:v 2 /tmp/frame.jpg

# Then analyze
python3 $P question /tmp/frame.jpg "What's happening?"

For continuous monitoring, extract multiple frames and batch process.

Reference Files

For deeper SDK usage, consult these when needed:

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/perceptron-vision-sdk-mrwakfyp/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/perceptron-vision-sdk-mrwakfyp' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/perceptron-vision-sdk-mrwakfyp/download' --output '.skill-downloads/perceptron-vision-sdk-mrwakfyp/SKILL.md.part' && mv '.skill-downloads/perceptron-vision-sdk-mrwakfyp/SKILL.md.part' '.skill-downloads/perceptron-vision-sdk-mrwakfyp/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Extrait original : Setup
pip install perceptron
export PERCEPTRON_API_KEY=ak_...

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/perceptron-vision-sdk-mrwakfyp/SKILL.md' && test -s '.skill-downloads/perceptron-vision-sdk-mrwakfyp/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/perceptron' && cp -R '.skill-downloads/perceptron-vision-sdk-mrwakfyp' '.claude/skills/perceptron'

Cursor
test -f '.skill-downloads/perceptron-vision-sdk-mrwakfyp/SKILL.md' && test -s '.skill-downloads/perceptron-vision-sdk-mrwakfyp/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/perceptron' && cp -R '.skill-downloads/perceptron-vision-sdk-mrwakfyp' '.cursor/skills/perceptron'

Codex
test -f '.skill-downloads/perceptron-vision-sdk-mrwakfyp/SKILL.md' && test -s '.skill-downloads/perceptron-vision-sdk-mrwakfyp/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/perceptron' && cp -R '.skill-downloads/perceptron-vision-sdk-mrwakfyp' '.agents/skills/perceptron'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/perceptron-vision-sdk-mrwakfyp'

openskills read 'perceptron-vision-sdk-mrwakfyp'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/perceptron-vision-sdk-mrwakfyp/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires