DeepLeaf Yield DeepLeaf Yield

Contrôle de prise de vue

Chaque passage reçoit un contrôle de prise de vue en haut de ses résultats. Il indique comment le passage a été filmé et avertit quand les images risquent de donner de mauvais comptages.

Contrôle de prise de vue : rapprochez-vous ou filmez en 4K. Le fruit médian mesure 24,6 px et 53 % des fruits sont trop petits pour la maturité, ils sortent donc de la prévision. En dessous : 682×1024, fruit médian 24,6 px, netteté 1042,7, 53 % sans stade de maturité.
Le contrôle sur une photo d’exemple. Les fruits sont petits dans cette image, le contrôle avertit donc.

Ce qu’il mesure

  • La résolution de la source.
  • La netteté : la variance du laplacien sur chaque image, son grand côté ramené à 1024 px, pour que les vidéos de toute résolution partagent la même échelle. Le contrôle donne la médiane et le 10e centile sur l’ensemble des images.
  • La taille des fruits : le petit côté de chaque cadre de fruit à la même échelle de 1024 px, en p10, médiane et p90.
  • La part sans stade de maturité : les fruits dont l’image était trop petite pour être évaluée.

Avertissements et seuils

AvertissementSe déclenche quandQue faire
Trop loinLe fruit médian fait moins de 29 px, ou la moitié des fruits ou plus n’ont pas de stade de maturitéRapprochez-vous, ou filmez en 4K
Trop prèsLe fruit du 90e centile dépasse 60 pxReculez : une grosse tomate peut recevoir plusieurs cadres
FlouLa netteté médiane est inférieure à 300, ou le 10e centile est inférieur à 300 sur trois images ou plusRalentissez, stabilisez le téléphone, nettoyez l’objectif

Les avertissements de taille demandent au moins 5 fruits sur le passage. « Trop loin » et « trop près » ne se déclenchent jamais ensemble. Quand la médiane dit « trop loin » mais que les gros fruits disent « trop près », c’est « trop près » qui l’emporte : de près, le détecteur ajoute de petits cadres sur des parties de grosses tomates, et ceux-ci tirent la médiane vers le bas.

D’où viennent les seuils

  • 29 px est le plus petit fruit dont l’image, marge comprise, atteint les 32 px qu’évalue le module de maturité.
  • 60 px au 90e centile vient d’images mesurées une à une. Sur 60 images 4K prises de près au téléphone, il en signale 40. Sur ces images, l’analyse écarte les cadres dont le petit côté fait moins de 15 % du 90e centile, surtout des morceaux d’une même grosse tomate : leur comptage passe de 61 % trop haut à 31 % trop haut. Les 20 autres images de téléphone restent sous la limite, car leurs petits cadres tirent le 90e centile vers le bas. L’analyse écarte aussi les cadres inférieurs à 35 % du 90e centile sur une image sous la limite quand au moins 12 % de ses cadres chevauchent un cadre 2,5 fois plus grand et que le 90e centile vaut au moins 2,2 fois la médiane. Ces 20 images passent ainsi de 158 % trop haut à 100 % trop haut. Cela ne modifie aucune image de drone, aucune image du passage de test ni aucune photo d’exemple, et sur le jeu d’images d’allée, tous les fruits de référence trouvés auparavant sont conservés. Sur un jeu public d’images d’allée, il signale 5 images sur 146, toutes des prises rapprochées. Il n’en signale aucune parmi 35 images de drone, 12 images d’un passage en 960×540 et les 4 photos d’exemple. La médiane ne convient pas ici : les cadres en trop sur des parties de grosses tomates la font tomber à environ 25 px sur les images rapprochées.
  • 300 se situe sous les jeux publics nets (10e centile de 555 à 764) et au-dessus d’une photo d’exemple peu nette (178).

Contrôle en direct pendant le tournage

Les mêmes seuils s’appliquent aussi en direct. Filmer un passage, dans l’application, envoie une image environ une fois par seconde et affiche un verdict avec une consigne simple, avant le passage et pendant l’enregistrement (voir Filmer un passage).

Le guide en direct dans l’application : l’aperçu de la caméra sur des plants de tomates, avec deux lignes pointillées pour le haut et le bas des fruits et deux cercles pour la taille des fruits. En dessous, un bandeau indique Stabilisez, avec 106 fruits visibles, fruit médian 29,2 px, 36 % trop petits pour la maturité et netteté 85,8, puis les boutons pour lancer l’enregistrement et fermer la caméra.
Le contrôle en direct sur une image. Les chiffres ne portent que sur cette image.
VerdictS’affiche quand
Rapprochez-vousL’image recevrait l’avertissement « trop loin » : fruit médian sous 29 px, ou la moitié des fruits ou plus trop petits pour la maturité
ReculezL’image recevrait l’avertissement « trop près » : fruit du 90e centile au-dessus de 60 px
StabilisezLa netteté de l’image est inférieure à 300
Aucun fruit visibleMoins de 5 fruits, trop peu pour juger la distance
BienAucun des cas ci-dessus

La distance passe en premier : une image à la fois trop lointaine et floue affiche « Rapprochez-vous ». Seul le détecteur de fruits tourne sur l’image, si bien que le contrôle répond en moins d’une seconde. Il n’évalue pas la maturité, ne garde aucune copie de l’image et ne compte jamais comme un passage. La part de fruits trop petits pour la maturité est jugée à la résolution d’enregistrement : en 4K, davantage de fruits sont assez grands que sur l’image d’aperçu, plus petite.

Une image isolée peut différer du passage entier. C’est le contrôle de prise de vue du passage envoyé qui fait foi.

Dans l’API

Le même bloc figure dans le résultat d’observation sous quality, avec resolution, sharpness, fruit_px (dont le champ detections compte les cadres sur toutes les images analysées, pas les fruits ; count en est l’ancien nom et sera supprimé), without_ripeness, thresholds et une liste warnings de {code, message}. Les codes sont too_far, too_close et blurry.

Le contrôle en direct est POST /api/capture/check avec une clé d’organisation. Envoyez un JPEG dans le champ de formulaire frame, de 2 Mo et 4096 px de grand côté au plus, et éventuellement source_long_side, le grand côté de l’enregistrement en pixels. La réponse contient verdict (move_closer, move_back, hold_steady, good ou no_fruit), advice, fruit_count, median_fruit_px, p90_fruit_px, too_small_for_ripeness, sharpness et thresholds. Chaque clé peut lancer un contrôle par seconde, avec une rafale de trois. Au-delà, la réponse est 429 avec un en-tête Retry-After.