はじめに
AWS UpdateでAmazon SageMaker Data Wranglerに画像の前処理機能が追加されました。
Data WranglerはAmazon SageMaker Studioの機能の一つで、データの前処理が行えるサービスです。
従来はファイルタイプとしてcsv, parquet, json, jsonl, orcに対応していたようですが、「image」が追加されました。
利用イメージは以下のようになります。
やってみる
「S3からインポート → 重複削除 → ノイズ付与 → S3にエクスポート」という流れを試してみます。
インポートするS3バケット内に同じ画像データを2枚用意しました。
この画像に処理を行い、エクスポートするまでを試してみます。
データインポート
データソースをS3としてインポートします。File typeは「image」を選択しました。
インポートが完了するとプレビューが表示されます。
右側のALL STEPS内の「Add step」から処理を追加することで、前処理のステップを定義することができます。
カスタムで作成したスクリプトをステップに追加することもできるのですが、以下の組み込みの変換も用意されています。
- Blur image(画像のぼかし)
- Brightness(明るさ)
- Color channels(カラーチャンネル)
- Corrupt image(ノイズ付与)
- Drop corrupted images(ノイズ画像の除去)
- Drop duplicates(重複画像の削除)
- Enhance image contrast(コントラスト)
- Grayscale(グレースケース化)
- Resize image(リサイズ)
- Rotate(回転)
- Split data(データ分割)
今回は重複削除とノイズ付与を実施するので「Drop image duplicates,Corrupt image」を追加しました。
適用されると猫が一匹になり、ノイズが付与されます。
データエクスポート
データをS3バケットの対象フォルダにエクスポートします。
左上の「Data flow」からデータフローの一覧に戻り、「Corrupt image」右の+を押下します。
「Add Destination」→ 「Amazon S3」を選択し、エクスポートするフォルダを選択します。
ジョブの作成・実行,結果の確認
最後にワークフローを実行します。ワークフロー画面右上の「Create job」から環境の設定を行い、ジョブの実行を行います。
ジョブの実行状況はAmazon SageMakerコンソールの「Processing/処理ジョブ」から確認できました。
S3バケットに加工済みの画像ファイルがアップロードされていることを確認できました。
まとめ
Amazon SageMaker Data Wranglerの新機能、画像の前処理を試してみました。このアップデートにより、よりData Wranglerのユースケースの幅が広がったと思います。
参考