始める無料で始める

画像処理パイプライン

同僚が、Machine Learning モデルの精度を高めるために、American Sign Language(米国手話)の画像へ前処理を行う関数を書きました。この関数はグレースケール画像を入力として、Canny エッジ検出を実行します。Canny エッジ検出は古典的なコンピュータビジョンでよく使われ、画像中の物体の輪郭を強調します。これをデータセット内のすべての画像に適用したいと考えています。

同僚が書いた関数は compute_edges() という名前で環境に用意されています。入力は次元が (1, h, w) の画像で、高さ h と幅 w は任意の整数です。

画像の Dask 配列は image_array として環境にあり、形状は (N, h, w, 3) です。ここで N は画像数で、3 つのチャネルは赤・青・緑を表します。

dask.arrayda としてインポート済みです。

この演習はコースの一部です

Pythonで学ぶDaskによる並列プログラミング

コースを見る

演習の手順

  • 最後の次元に沿って平均を取り、カラー画像をグレースケールに変換します。
  • グレースケール画像配列の .map_blocks() メソッドを使って、各画像に compute_edges() 関数を適用します。
  • エッジ画像の 0 番目だけを選択して計算します。
  • 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()
コードを編集して実行