BaşlayınÜcretsiz Başlayın

Köpek piksel yüzdesi

Köpek açıklama verilerini ayrıştırmadaki son görev, her görüntüde köpeği (veya köpekleri) temsil eden piksellerin yüzdesini belirlemek. Bu bilgiyi hesaplamak ve daha sonra analiz için sütunlar olarak eklemek için bu derste öğrendiğin çeşitli teknikleri kullanman gerekecek.

Piksel yüzdesini hesaplamak için, önce her köpeği temsil eden toplam piksel sayısını hesapla, ardından görüntü için bunları topla. Sınır kutusunu şu formülle hesaplayabilirsin:

(Xend - Xstart) * (Yend - Ystart)

NOT: Bu durumda çakışan sınır kutularının olasılığını yok sayabilirsin.

Yüzde için, toplam "köpek" piksel sayısını görüntünün toplam boyutuna böl ve 100 ile çarp.
joined_df DataFrame'i en son kullandığın hâliyle duruyor. pyspark.sql.functions F olarak kısaltılmıştır.

Bu egzersiz

PySpark ile Veri Temizleme

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • Bir Python fonksiyonu tanımlayarak tuple listesini (köpek nesneleri) al ve görüntü başına toplam "köpek" piksel sayısını hesapla.
  • Fonksiyondan bir UDF oluştur ve DataFrame üzerinde 'dog_pixels' adlı yeni bir sütun oluşturmak için bunu kullan.
  • Görüntüdeki 'dog_pixels' yüzdesini temsil eden başka bir sütun, 'dog_percent', oluştur. Bunun 0-100% arasında olduğundan emin ol. Yalnızca sütunun dize adını kullan (yani df.columnname yerine "columnname").
  • Görüntüde %60'tan fazla 'dog_pixels' olan ilk 10 satırı göster. Bunu SQL tarzı bir dize ile yap (yani, 'columnname > ____').

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# 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
____
Kodu Düzenle ve Çalıştır