ไปป์ไลน์ประมวลผลภาพ
เพื่อนร่วมงานของคุณได้เขียนฟังก์ชันสำหรับเตรียมข้อมูลภาพภาษามือของอเมริกา เพื่อเพิ่มความแม่นยำให้กับโมเดล machine learning ฟังก์ชันนี้รับภาพ grayscale แล้วรัน Canny edge detection ซึ่งเป็นเทคนิคที่นิยมใช้ใน computer vision แบบดั้งเดิม และช่วยเน้นขอบของวัตถุในภาพ เป้าหมายคือนำฟังก์ชันนี้ไปใช้กับภาพทั้งหมดในชุดข้อมูล
ฟังก์ชันที่เพื่อนร่วมงานเขียนไว้คือ compute_edges() ซึ่งพร้อมใช้งานในเอนไวรอนเมนต์แล้ว โดยรับภาพที่มีมิติ (1, h, w) ซึ่ง h คือความสูง และ w คือความกว้าง สามารถเป็นจำนวนเต็มใดก็ได้
Dask array ของภาพทั้งหมดอยู่ในตัวแปร image_array ซึ่งมีรูปร่าง (N, h, w, 3) โดย N คือจำนวนภาพ และมี 3 ช่องสีสำหรับสีแดง น้ำเงิน และเขียว
ได้ import dask.array ให้คุณในชื่อ da แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Parallel Programming with Dask in Python
คำแนะนำการฝึกหัด
- แปลงภาพจากสีเป็น grayscale โดยหาค่าเฉลี่ยตามมิติสุดท้าย
- ใช้เมธอด
.map_blocks()ของอาร์เรย์ภาพ grayscale เพื่อนำฟังก์ชันcompute_edges()ไปใช้กับแต่ละภาพ - เลือกเฉพาะภาพ edge ที่ index ที่ศูนย์ แล้วคำนวณผลลัพธ์
- ใช้
plt.imshow()เพื่อแสดงภาพ edge
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Convert the color photos to grayscale
grayscale_images = ____
# Apply the edge detection function
edge_images = ____.____(____)
# Select the zeroth image and compute its values
sample_image = ____
# Show the result
____(____, cmap='gray')
plt.show()