Một pipeline xử lý ảnh
Đồng nghiệp của bạn đã viết một hàm tiền xử lý cho các ảnh ngôn ngữ ký hiệu Mỹ nhằm cải thiện độ chính xác của mô hình Machine Learning. Hàm này nhận một ảnh thang độ xám và chạy thuật toán phát hiện biên Canny. Phát hiện biên Canny thường dùng trong thị giác máy tính cổ điển và làm nổi bật các đường biên của đối tượng trong ảnh. Bạn muốn áp dụng nó cho toàn bộ ảnh trong bộ dữ liệu.
Hàm do đồng nghiệp viết đã có sẵn trong môi trường dưới tên compute_edges(), và nhận một ảnh có kích thước (1, h, w) trong đó chiều cao h và chiều rộng w là các số nguyên bất kỳ.
Mảng Dask chứa các ảnh của bạn có sẵn trong môi trường với tên image_array. Mảng này có shape (N, h, w, 3) trong đó N là số lượng ảnh, và có 3 kênh đỏ, xanh lục, xanh lam.
dask.array đã được import sẵn là da.
Bài tập này là một phần của khóa học
Lập trình song song với Dask trong Python
Hướng dẫn bài tập
- Chuyển ảnh màu sang thang độ xám bằng cách lấy trung bình theo chiều cuối cùng.
- Dùng phương thức
.map_blocks()của mảng ảnh thang độ xám để áp dụng hàmcompute_edges()lên từng ảnh. - Chọn chỉ ảnh biên thứ 0 và compute nó.
- Dùng
plt.imshow()để vẽ các đường biên.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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()