ÎncepețiÎncepe gratuit

Procentul de pixeli câine

Ultima sarcină pentru analiza datelor de adnotare a câinilor este să determini ce procent din pixelii fiecărei imagini reprezintă un câine (sau mai mulți câini). Va trebui să aplici diverse tehnici învățate în acest curs pentru a calcula aceste informații și a le adăuga ca noi coloane, utile în analizele ulterioare.

Pentru a calcula procentul de pixeli, calculează mai întâi numărul total de pixeli care reprezintă fiecare câine, apoi sumează-i pentru întreaga imagine. Poți calcula dreptunghiul de delimitare cu formula:

(Xend - Xstart) * (Yend - Ystart)

NOTĂ: Poți ignora posibilitatea suprapunerii dreptunghiurilor de delimitare în acest caz.

Pentru procent, împarte numărul total de pixeli „câine" la dimensiunea totală a imaginii și înmulțește cu 100.
DataFrame-ul joined_df este în starea în care l-ai lăsat ultima dată. pyspark.sql.functions este importat cu aliasul F.

Acest exercițiu face parte din cursul

Curățarea datelor cu PySpark

Vezi cursul

Instrucțiuni pentru exercițiu

  • Definește o funcție Python care primește o listă de tuple (obiectele câine) și calculează numărul total de pixeli „câine" per imagine.
  • Creează un UDF din funcție și folosește-l pentru a adăuga o nouă coloană numită 'dog_pixels' în DataFrame.
  • Creează o altă coloană, 'dog_percent', care să reprezinte procentul de 'dog_pixels' din imagine. Asigură-te că valorile sunt între 0 și 100%. Folosește numele coloanei ca șir de caractere (adică "columnname" în loc de df.columnname).
  • Afișează primele 10 rânduri în care mai mult de 60% din pixeli sunt 'dog_pixels'. Folosește un șir de caractere în stil SQL pentru aceasta (adică 'columnname > ____').

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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
____
Editează și rulează codul