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

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

 채택된 답변

Atsushi Ueno
Atsushi Ueno 2021년 11월 5일

1 개 추천

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

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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Deep Learning Toolbox에 대해 자세히 알아보기

제품

릴리스

R2021a

질문:

2021년 11월 5일

댓글:

2021년 11월 9일

Community Treasure Hunt

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

Start Hunting!