CNNを用いた回帰用のデータセットの構築について

こんにちは。小熊塁と申します。
回帰用のデータセットを作りたいのですが、大量のイメージを4-D doubleなデータにする際に
D=zeros(480,750,1,1000);
for i=1:1000
I=imread('102001456.png');
D(:,:,:,i)=I;
end
という風なコードを使用するつもりなのですが、3行目のimreadに対する入力を、任意のフォルダにある画像を順に読み込むようにしたいのですが、やり方が分かりません。

 Respuesta aceptada

Atsushi Ueno
Atsushi Ueno el 5 de Nov. de 2021

1 voto

folder_name = pwd; % これは現在のフォルダにある画像を探す例
imds = imageDatastore(folder_name);
D=zeros(480,750,1,1000);
for i=1:numel(imds.Files)
I=imread(imds.Files{i});
D(:,:,:,i)=I;
end
気になる点など:
  • PCのメモリに入りきらない位大量のイメージデータを扱う為にはイメージデータストアを使うべきです
  • (上記プログラムでもイメージデータストアを使いましたが、画像ファイル名の参照にしか使っていません)
  • 4-D doubleなデータにするには、全てのイメージが同一サイズでなければなりません
  • (サイズに応じて埋め合せる処理か、サイズ違いの3-D doubleなデータをセル配列に格納する処理が必要です)

3 comentarios

塁 小熊
塁 小熊 el 8 de Nov. de 2021
返信ありがとうございます。
上記のコードで私の環境でも理想的な形になってくれました。
追加で質問したいのですが、このようにして作った4-D doubleデータとラベルを用意した状態から、学習データ:検証データ=7:3に分割は出来るのでしょうか?
それとも別々にデータを用意するしかないのでしょうか。
Atsushi Ueno
Atsushi Ueno el 8 de Nov. de 2021
Editada: Atsushi Ueno el 8 de Nov. de 2021
学習データ:検証データ=7:3に分割は出来るのでしょうか?⇒出来ます
現在の環境で4-D doubleデータをどのように扱うかで、ご自分の自由に分割する事が出来ます。
下記ドキュメントにおいて、ラベル付き動画データベース(CamVid Dataset)を取り込み、partitionCamVidData()と名付けられた関数でデータをシャッフルしながら各用途(学習用:60%、検証用:20%、テスト用:20%)に振り分けています。参考になるのではないでしょうか?
塁 小熊
塁 小熊 el 9 de Nov. de 2021
返信ありがとうございます。
参考になるドキュメントの共有もありがとうございます!
また分からない箇所があったら別途質問を作成したいと思います。

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Deep Learning Toolbox en Centro de ayuda y File Exchange.

Productos

Versión

R2021a

Preguntada:

el 5 de Nov. de 2021

Comentada:

el 9 de Nov. de 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!