Une chaîne de traitement d’images
Votre collègue a écrit une fonction de prétraitement à utiliser sur les images de langue des signes américaine afin d’améliorer la précision de votre modèle de Machine Learning. Cette fonction prend une image en niveaux de gris et y applique la détection de contours de Canny. La détection de Canny est couramment utilisée en vision par ordinateur classique et met en évidence les contours des objets dans une image. Vous souhaitez l’appliquer à toutes les images de votre jeu de données.
La fonction écrite par votre collègue est disponible dans votre environnement sous le nom compute_edges(). Elle prend une image de dimensions (1, h, w), où la hauteur h et la largeur w peuvent être n’importe quels entiers.
Le tableau Dask de vos images est disponible dans l’environnement sous le nom image_array. Ce tableau a la forme (N, h, w, 3), où N est le nombre d’images et où les 3 canaux correspondent au rouge, au bleu et au vert.
dask.array a été importé pour vous sous l’alias da.
Cet exercice fait partie du cours
Programmation parallèle avec Dask en Python
Instructions
- Convertissez l’image couleur en niveau de gris en prenant la moyenne le long de la dernière dimension.
- Utilisez la méthode
.map_blocks()des tableaux en niveaux de gris pour appliquer la fonctioncompute_edges()à chaque image. - Sélectionnez uniquement la première image de contours (indice 0) et calculez-la.
- Utilisez
plt.imshow()pour afficher les contours.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()