Mulai sekarangMulai gratis

Persentase piksel anjing

Tugas terakhir untuk mengurai data anotasi anjing adalah menentukan persentase piksel pada setiap gambar yang merepresentasikan anjing. Anda perlu menggunakan berbagai teknik yang telah Anda pelajari di kursus ini untuk membantu menghitung informasi ini dan menambahkannya sebagai kolom untuk analisis selanjutnya.

Untuk menghitung persentase piksel, pertama hitung jumlah total piksel yang merepresentasikan setiap anjing lalu jumlahkan untuk gambar tersebut. Anda dapat menghitung bounding box dengan rumus:

(Xend - Xstart) * (Yend - Ystart)

CATATAN: Dalam kasus ini Anda dapat mengabaikan kemungkinan bounding box yang saling tumpang tindih.

Untuk persentasenya, hitung jumlah total piksel "anjing" dibagi dengan ukuran total gambar, lalu dikalikan 100.
DataFrame joined_df sama seperti yang terakhir Anda gunakan. pyspark.sql.functions menggunakan alias F.

Latihan ini merupakan bagian dari kursus

Membersihkan Data dengan PySpark

Lihat Kursus

Instruksi latihan

  • Definisikan fungsi Python yang menerima list tuple (objek anjing) dan menghitung jumlah total piksel "anjing" per gambar.
  • Buat UDF dari fungsi tersebut dan gunakan untuk membuat kolom baru bernama 'dog_pixels' pada DataFrame.
  • Buat kolom lain, 'dog_percent', yang merepresentasikan persentase 'dog_pixels' dalam gambar. Pastikan nilainya berada di antara 0–100%. Gunakan hanya nama string kolom (mis., "columnname" alih-alih df.columnname).
  • Tampilkan 10 baris pertama dengan lebih dari 60% 'dog_pixels' dalam gambar. Gunakan string bergaya SQL untuk ini (mis., 'columnname > ____').

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# 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
____
Edit dan Jalankan Kode