Začněte nyníZačněte zdarma

Procento pixelů se psy

Posledním úkolem při zpracování anotačních dat psů je zjistit, jaké procento pixelů v každém obrázku představuje psa (nebo psy). K výpočtu těchto informací a jejich uložení jako sloupců pro další analýzu využiješ různé techniky, které ses v tomto kurzu naučil/a.

Pro výpočet procenta pixelů nejprve spočítej celkový počet pixelů představujících každého psa a pak je pro daný obrázek sečti. Ohraničující rámeček vypočítáš podle vzorce:

(Xend - Xstart) * (Yend - Ystart)

POZNÁMKA: V tomto případě můžeš zanedbat možnost překrývajících se ohraničujících rámečků.

Pro výpočet procenta vydělíš celkový počet „psích" pixelů celkovou velikostí obrázku a výsledek vynásobíš 100.
DataFrame joined_df je ve stejném stavu, v jakém jsi ho naposledy použil/a. pyspark.sql.functions je aliasován jako F.

Toto cvičení je součástí kurzu

Cleaning Data with PySpark

Zobrazit kurz

Pokyny k cvičení

  • Definuj funkci v Pythonu, která přijme seznam tuplů (objekty psů) a vypočítá celkový počet „psích" pixelů na obrázek.
  • Vytvoř UDF z této funkce a pomocí ní přidej do DataFrame nový sloupec 'dog_pixels'.
  • Vytvoř další sloupec 'dog_percent' reprezentující procento 'dog_pixels' v obrázku. Ujisti se, že hodnota je v rozsahu 0–100 %. Použij pouze název sloupce jako řetězec (tedy "columnname", nikoli df.columnname).
  • Zobraz prvních 10 řádků, kde je více než 60 % 'dog_pixels' v obrázku. Použij SQL styl řetězce (tedy 'columnname > ____').

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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
____
Upravit a spustit kód