ForHosting KIT · Images

Estimation de zone de recadrage carré centrée sur le visage

Un visage de 200 × 240 placé en 400, 250 sur une photo de 1200 × 900 donne un carré de 360 pixels qui commence en x 320, y 190, visage centré et un quart de marge de chaque côté. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Largeur
1 200
Hauteur
900
Visage X
400
Visage Y
250
Largeur du visage
200
Hauteur du visage
240
Vous obtenez
X
320
Y
190
Côté
360
Droite
680

L'estimateur de recadrage centré sur le visage transforme un résultat de détection en zone carrée prête à l'emploi. Vous envoyez les dimensions de l'image et le cadre du visage détecté — gauche, haut, largeur et hauteur — plus une marge facultative, et vous obtenez en retour les valeurs exactes x, y et le côté d'un carré qui garde le visage centré et entièrement dans l'image. Aucun pixel n'est téléversé, décodé ni transformé : il s'agit de géométrie pure et déterministe, l'étape de planification à exécuter avant un recadrage réel.

Pourquoi estimer le recadrage avant de recadrer

Le recadrage axé sur le visage est partout : photos de profil, générateurs d'avatars, vignettes d'un annuaire de personnes, aperçus intelligents d'une photothèque. Dans tous ces cas, la partie coûteuse est le décodage et le réencodage de l'image, et la partie agaçante est de découvrir après coup que le cadrage était mauvais — visage coupé au bord, carré décentré, marge trop juste pour un masque circulaire. Cette fonctionnalité sépare la décision peu coûteuse de l'exécution coûteuse.

Vous avez déjà exécuté un détecteur de visages et vous disposez d'un cadre ; au lieu d'envoyer l'image directement dans une chaîne de traitement en espérant le meilleur, vous demandez d'abord la zone de recadrage exacte.

Comment la zone est calculée

L'algorithme est volontairement simple et entièrement déterministe. Il commence par trouver le centre du cadre du visage. Le côté du carré part de la plus grande des dimensions du visage, multipliée par un plus deux fois la marge : la marge par défaut de 0.25 ajoute ainsi un quart de la taille du visage de chaque côté, ce qui donne un carré d'une fois et demie le plus grand côté du visage, un cadrage confortable pour les portraits.

Si ce carré dépasse la taille de l'image elle-même, il est réduit à sa plus petite dimension. Le carré est ensuite centré sur le centre du visage et, lorsqu'il déborderait d'un bord, il est ramené à l'intérieur de l'image — ajusté, jamais déformé — de sorte que la zone renvoyée soit toujours un recadrage valide dans les limites.

Sa place dans une chaîne de traitement

Le flux typique est le suivant : exécutez le détecteur de visages de votre choix, retenez le meilleur cadre, appelez cet estimateur, puis transmettez la zone renvoyée à un véritable outil de recadrage tel que la fonctionnalité image.crop ou votre propre processus de vignettes.

Comme l'estimateur ne touche jamais aux octets de l'image, vous pouvez aussi l'utiliser sur les seules métadonnées — par exemple pour décider, avant de télécharger quoi que ce soit, si un visage détecté près d'un bord produira un carré exploitable ou s'il faut prévoir une autre mise en page.

Le paramètre de marge est votre seul réglage : 0 donne un carré ajusté exactement autour du plus grand côté du visage, 0.25 est le cadrage portrait par défaut, et 0.5 ou plus laisse de la place pour les cheveux et les épaules.

Générer des avatars carrés à partir d'envois

Prenez le cadre du visage fourni par votre détecteur et obtenez le carré exact à transmettre à votre processus de recadrage, avec une marge qui résiste à un masque circulaire.

Prévalider une chaîne de vignettes

Validez les cadres de visages et calculez les zones de recadrage à partir des seules métadonnées, avant de payer le coût du décodage et du réencodage d'une seule image.

Auditer des recadrages automatisés

Stockez la zone estimée à côté de chaque ressource pour qu'un avatar mal cadré puisse être retracé jusqu'aux coordonnées exactes qui l'ont produit.

Combien cela coûte-t-il ?

L'outil est également gratuit dans votre navigateur sur cette page, avec exactement le même résultat.

Dois-je téléverser l'image ?

Non. Seules les dimensions de l'image et le cadre du visage sont envoyés — six nombres. Aucune donnée de pixels n'est transmise, traitée ni stockée.

Que se passe-t-il si le cadre du visage dépasse de l'image ?

Un cadre de visage hors de l'image est presque toujours un bug de détection ou de correspondance de coordonnées, et il est signalé au lieu d'être silencieusement recadré.

Et si le carré dépassait d'un bord ?

Le carré est ramené à l'intérieur de l'image en conservant sa taille, et s'il est plus grand que l'image elle-même, il est réduit à sa plus petite dimension. La zone renvoyée est toujours entièrement dans les limites.

À quoi sert la marge ?

Elle ajoute de l'espace autour du visage, exprimé en fraction du plus grand côté du visage. La valeur par défaut 0.25 donne un carré de 1.5 fois le plus grand côté du visage ; 0 donne un recadrage ajusté et 0.5 laisse un espace généreux.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/image/crop-face-center-estimate

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/image/crop-face-center-estimate \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"width":1200,"height":900,"face_x":400,"face_y":250,"face_width":200,"face_height":240}'
{
  "width": 1200,
  "height": 900,
  "face_x": 400,
  "face_y": 250,
  "face_width": 200,
  "face_height": 240
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "image.crop_face_center_estimate",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

max_mb15
max_megapixels12
HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

L'outil fonctionne gratuitement dans votre navigateur sur cette page, et via API à $0.002 par appel.

Pourquoi estimer le recadrage avant de recadrer

La réponse est un simple objet JSON avec x, y et le côté, que vous pouvez confier à n'importe quel outil de recadrage, d'ImageMagick à un élément canvas, ou stocker à côté de la ressource pour que la décision reste vérifiable. Comme le calcul n'est que de l'arithmétique pure sur six nombres, il ne coûte presque rien, répond en quelques microsecondes et se comporte à l'identique dans le navigateur et sur l'API : vous pouvez donc prototyper interactivement puis automatiser sans revérifier un seul résultat.

Comment la zone est calculée

Le cadre du visage lui-même est validé strictement : origines négatives, dimensions nulles ou négatives et cadres dépassant les bords de l'image déclenchent une erreur invalid_input au lieu de produire silencieusement un recadrage défectueux, car un cadre de visage hors de l'image est un bug du détecteur qu'il vaut mieux connaître.

Sa place dans une chaîne de traitement

Tout s'exécute sur notre réseau de périphérie mondial sans rien stocker, et le même module alimente le calculateur gratuit de cette page : le nombre affiché dans le navigateur est donc, à l'octet près, celui que l'API renvoie lorsque vous automatisez l'appel.

Le résultat est-il déterministe ?

Oui. C'est de l'arithmétique pure : mêmes entrées, mêmes coordonnées, dans le navigateur comme sur l'API, sans aléa, horloge ni réseau.

Consulter la documentation complète du KIT →