НачатьНачать бесплатно

Конвейер обработки изображений

Ваш коллега написал функцию предобработки для изображений американского языка жестов — она поможет повысить точность вашей модели машинного обучения. Функция принимает изображение в оттенках серого и применяет к нему алгоритм выделения краёв Канни. Этот алгоритм широко используется в классическом компьютерном зрении и позволяет выделить контуры объектов на изображении. Вам нужно применить его ко всем изображениям в наборе данных.

Функция, написанная коллегой, доступна в вашей среде под именем compute_edges(). Она принимает изображение с размерностью (1, h, w), где высота h и ширина w могут быть любыми целыми числами.

Массив Dask с вашими изображениями доступен в среде как image_array. Этот массив имеет форму (N, h, w, 3), где N — количество изображений, а 3 канала соответствуют красному, синему и зелёному цветам.

Библиотека dask.array уже импортирована как da.

Это упражнение является частью курса

Параллельное программирование с Dask на Python

Посмотреть курс

Инструкции к упражнению

  • Преобразуйте изображение из цветного в оттенки серого, вычислив среднее значение вдоль последней оси.
  • Используйте метод .map_blocks() массива изображений в оттенках серого, чтобы применить функцию compute_edges() к каждому изображению.
  • Выберите только нулевое изображение с выделенными краями и вычислите его.
  • Используйте plt.imshow(), чтобы отобразить выделенные края.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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()
Редактировать и запускать код