เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

เปอร์เซ็นต์พิกเซลของสุนัข

งานสุดท้ายในการแปลงข้อมูล annotation ของสุนัขคือการหาเปอร์เซ็นต์ของพิกเซลในแต่ละภาพที่แทนสุนัข (หนึ่งตัวหรือมากกว่า) คุณจะต้องนำเทคนิคต่าง ๆ ที่เรียนมาในคอร์สนี้มาใช้คำนวณข้อมูลดังกล่าว แล้วเพิ่มเป็นคอลัมน์สำหรับการวิเคราะห์ในภายหลัง

ในการคำนวณเปอร์เซ็นต์พิกเซล ให้คำนวณจำนวนพิกเซลทั้งหมดที่แทนสุนัขแต่ละตัวก่อน แล้วจึงรวมค่าสำหรับทั้งภาพ โดยคำนวณ bounding box ด้วยสูตร:

(Xend - Xstart) * (Yend - Ystart)

หมายเหตุ: ในกรณีนี้ไม่ต้องคำนึงถึงความเป็นไปได้ที่ bounding box จะซ้อนทับกัน

สำหรับเปอร์เซ็นต์ ให้คำนวณจำนวนพิกเซล "สุนัข" ทั้งหมดหารด้วยขนาดทั้งหมดของภาพ แล้วคูณด้วย 100 DataFrame joined_df มีสถานะเหมือนครั้งล่าสุดที่ใช้งาน และ pyspark.sql.functions ถูก alias เป็น F

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การทำความสะอาดข้อมูลด้วย PySpark

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดฟังก์ชัน Python ที่รับ list ของ tuple (อ็อบเจกต์สุนัข) แล้วคำนวณจำนวนพิกเซล "สุนัข" ทั้งหมดต่อภาพ
  • สร้าง UDF จากฟังก์ชันดังกล่าว แล้วนำไปสร้างคอลัมน์ใหม่ชื่อ 'dog_pixels' บน DataFrame
  • สร้างอีกคอลัมน์หนึ่งชื่อ 'dog_percent' ที่แทนเปอร์เซ็นต์ของ 'dog_pixels' ในภาพ โดยให้ค่าอยู่ในช่วง 0-100% และใช้ชื่อคอลัมน์เป็น string ล้วน ๆ (เช่น "columnname" แทนที่จะเป็น df.columnname)
  • แสดง 10 แถวแรกที่มี 'dog_pixels' มากกว่า 60% ในภาพ โดยใช้ string แบบ SQL (เช่น 'columnname > ____')

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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
____
แก้ไขและรันโค้ด