CommencerCommencer gratuitement

Pourcentage de pixels de chiens

La dernière tâche d'analyse des données d'annotation des chiens consiste à déterminer le pourcentage de pixels de chaque image qui représente un chien (ou des chiens). Vous devrez utiliser les différentes techniques que vous avez apprises dans ce cours pour calculer ces informations et les ajouter en colonnes pour une analyse ultérieure.

Pour calculer le pourcentage de pixels, calculez d'abord le nombre total de pixels représentant chaque chien, puis additionnez-les pour l'image. Vous pouvez calculer le cadre de délimitation à l'aide de la formule suivante :

(Fin - Début X) * (Fin - Début Y)

NOTE : Dans ce cas, vous pouvez ignorer la possibilité de chevauchement des boîtes englobantes.

Pour le pourcentage, calculez le nombre total de pixels "chien" divisé par la taille totale de l'image, multiplié par 100.
Le DataFrame joined_df est tel que vous l'avez utilisé la dernière fois. pyspark.sql.functions est un alias de F.

Cet exercice fait partie du cours

Nettoyer des données avec PySpark

Afficher le cours

Instructions

  • Définissez une fonction Python pour prendre une liste de tuples (les objets chien) et calculer le nombre total de pixels "chien" par image.
  • Créez un UDF de la fonction et utilisez-le pour créer une nouvelle colonne appelée 'dog_pixels' dans le DataFrame.
  • Créez une autre colonne, 'dog_percent', représentant le pourcentage de 'dog_pixels' dans l'image. Assurez-vous que cette valeur est comprise entre 0 et 100 %. Utilisez uniquement le nom de la colonne (c'est-à-dire "nom de la colonne" plutôt que df.nom de la colonne).
  • Affichez les 10 premières lignes comportant plus de 60 % de 'dog_pixels' dans l'image. Utilisez une chaîne de style SQL pour cela (par exemple, "columnname > ____").

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Calculate total pixels occupied by dogs in the image
def dogPixelCount(doglist):
  totalpixels = ____
  for dog in doglist:
    totalpixels += (dog[____] - ____[1]) * (____[____] - ____)
  return totalpixels

# Define a UDF for the pixel count
udfDogPixelCount = ____

# Add a new column 'dog_pixels' containing the pixel count for dogs in each image
joined_df = ____

# Add a column 'dog_percent' representing the percentage of the image occupied by dogs
joined_df = joined_df.____('dog_percent', (____ / (____)) * ____)

# Show the first 10 annotations with more than 60% dog
____
Modifier et exécuter le code