最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

groundTruthDataSource

グラウンド トゥルース データ ソースを格納するオブジェクト

説明

groundTruthDataSource オブジェクトは、グラウンド トゥルース データのソースを定義します。このオブジェクトを使用して、groundTruth オブジェクトのデータ ソースを指定します。データ ソースにラベルを付けるには、groundTruthDataSource オブジェクトをラベル付けアプリに読み込みます。

作成

構文

gtSource = groundTruthDataSource(imageFiles)
gtSource = groundTruthDataSource(videoName)
gtSource = groundTruthDataSource(imageSeqFolder)
gtSource = groundTruthDataSource(imageSeqFolder,timeStamps)
gtSource = groundTruthDataSource(sourceName,readerFcn,timeStamps)

説明

gtSource = groundTruthDataSource(imageFiles) は、imageFiles によって指定されたイメージの集合のグラウンド トゥルース データ ソース オブジェクトを返します。イメージは imread で読み取り可能なファイル形式でなければなりません。

gtSource = groundTruthDataSource(videoName) は、videoName によって指定されたビデオ ファイルのグラウンド トゥルース データ ソース オブジェクトを返します。ビデオは VideoReader で読み取り可能なファイル形式でなければなりません。

gtSource = groundTruthDataSource(imageSeqFolder) は、imageSeqFolder によって指定されたフォルダー内に配置されたイメージ シーケンスのグラウンド トゥルース データ ソース オブジェクトを返します。

gtSource = groundTruthDataSource(imageSeqFolder,timeStamps) は、指定されたフォルダーに含まれている各イメージの対応するタイムスタンプをもつ、イメージ シーケンスのグラウンド トゥルース データ ソース オブジェクトを返します。timeStampsTimeStamps プロパティを設定します。

gtSource = groundTruthDataSource(sourceName,readerFcn,timeStamps) は、カスタム リーダー関数ハンドル readerFcn を使用してグラウンド トゥルース データ ソース オブジェクトを返します。sourceNameSource プロパティを設定し、timeStampsTimeStamps プロパティを設定します。カスタム リーダー関数は、duration ベクトル timeStamps で指定された現在のタイムスタンプに対応する sourceName からイメージを読み込みます。

入力引数

すべて展開する

イメージ ファイルの名前。string 配列または文字ベクトルの cell 配列として指定します。イメージは imread で読み取り可能なファイル形式でなければなりません。サポートされているイメージ ファイル形式の一覧については、imformats を参照してください。

ビデオ ファイルの名前。string のスカラーまたは文字ベクトルとして指定します。ビデオは VideoReader で読み取り可能なファイル形式でなければなりません。サポートされているビデオ ファイル形式の一覧については、VideoReader.getFileFormats を参照してください。ビデオ形式がサポートされていない場合は、カスタム リーダー関数 readerFcn を指定します。

イメージ シーケンスのフォルダー。string スカラーまたは文字ベクトルとして指定します。イメージ ファイル名の拡張子は imformats でサポートされていなければなりません。ビデオ形式がサポートされていない場合は、カスタム リーダー関数 readerFcn を指定します。

イメージは dir コマンドによって返される順に読み込まれます。

カスタム リーダー関数。関数ハンドルとして指定します。カスタム リーダー関数は、以下の構文を使用して、指定されたタイムスタンプでソースからイメージを読み込まなければなりません。

outputImage = readerFcn(sourceName,currentTimeStamp)
  • readerFcn は、カスタム リーダー関数の名前です。

  • sourceName は、データ ソースの名前です。

  • currentTimeStamp は、現在のタイムスタンプです。入力ベクトル timeStamp として指定します。

カスタム関数が返す outputImage は、imshow によってサポートされる任意の形式のグレースケール イメージまたは RGB イメージでなければなりません。詳細については、カスタム データ ソース リーダーを使用したグラウンド トゥルースのラベル付けを参照してください。

プロパティ

すべて展開する

このプロパティは読み取り専用です。

ビデオまたはイメージ シーケンスのタイムスタンプ。duration ベクトルとして指定します。

  • ビデオ ファイルの場合、TimeStamps にはビデオ フレームのタイムスタンプが自動的に入力されます。

  • イメージ シーケンスまたはカスタム リーダーの場合、TimeStamps には入力 duration ベクトル timeStamps の値が入力されます。

  • イメージの集合の場合、TimeStamps プロパティは空のままです。

.

このプロパティは読み取り専用です。

グラウンド トゥルース データのソース。文字ベクトル、または文字ベクトルの cell 配列として指定します。ソースの名前は、イメージ ファイル名、ビデオ ファイル名、イメージ シーケンスのファイル名、またはカスタム データ ソース名を参照することができます。

すべて折りたたむ

groundTruthDataSource オブジェクトを使用してデータ ソースを作成します。

ビデオ ファイルを読み取り、データ ソースを作成します。

videoName = 'vipunmarkedroad.avi';
dataSource = groundTruthDataSource(videoName)
dataSource = 
groundTruthDataSource for a video file with properties

        Source: ...tlab/toolbox/vision/visiondata/vipunmarkedroad.avi
    TimeStamps: [84x1 duration]

VideoReader を作成して、ビデオ フレームを読み取ります。

reader = VideoReader(videoName);

ビデオ内の 5 番目のフレームを読み取って表示します。

 timeStamp = seconds(dataSource.TimeStamps(5));
 reader.CurrentTime = timeStamp;
 I = readFrame(reader);
 
 figure
 imshow(I)

指定されたフォルダーに格納されているイメージ シーケンスからグラウンド トゥルース データ ソースを作成します。

イメージのシーケンスが含まれているフォルダーを指定します。

imageDir = fullfile(matlabroot,'toolbox','vision',...
        'visiondata','building');

imageDir フォルダー内に存在するイメージのデータ ソースを作成します。

    dataSource = groundTruthDataSource(imageDir)
dataSource = 
groundTruthDataSource for a video as an image sequence with properties

                      Source: {
                              ' .../Bdoc18b/build/matlab/toolbox/vision/visiondata/building/building1.JPG';
                              ' .../Bdoc18b/build/matlab/toolbox/vision/visiondata/building/building2.JPG';
                              ' .../Bdoc18b/build/matlab/toolbox/vision/visiondata/building/building3.JPG'
                               ... and 2 more
                              }
                  TimeStamps: [5x1 duration]

シーケンス内の 5 番目のフレームを読み取ります。

    I = imread(dataSource.Source{5});
    figure
    imshow(I)

カスタム リーダーを使用してグラウンド トゥルース データ ソースを作成します。

道路のイメージのシーケンスが含まれるイメージ ディレクトリを指定します。

imageDir = fullfile(matlabroot,'toolbox','vision',...
      'visiondata','building');

イメージ データ ストアをカスタム データ ソースとして使用します。

 imgDataStore = imageDatastore(imageDir);

データ ソースからイメージを読み取るリーダー関数を記述します。カスタム リーダー関数 readerFcn の最初の入力引数 sourceName は使用されません。2 番目の入力 currentTimeStamp, は duration スカラーからデータ ソースに適した 1 ベースのインデックスに変換されます。

readerFcn = @(~,idx)readimage(imgDataStore,seconds(idx));

readerFcn を使用して imageDir フォルダー内のイメージのデータ ソースを作成します。

dataSource = groundTruthDataSource(imageDir,readerFcn,1:5)
dataSource = 
groundTruthDataSource for a custom data source with properties

        Source: ...8b/build/matlab/toolbox/vision/visiondata/building
    TimeStamps: [5x1 duration]

シーケンス内の 5 番目のフレームを読み取ります。

  I = readerFcn(imageDir, seconds(5));
  figure
  imshow(I)

ヒント

  • ビデオベースの groundTruthDataSource オブジェクトの groundTruth オブジェクトは、オペレーティング システムのビデオ読み取り機能に依存します。ビデオ データ ソースを使用して作成された groundTruth オブジェクトは、そのオブジェクトを作成するために使用された同じプラットフォームでのみ整合性を維持します。プラットフォーム固有の groundTruth オブジェクトを作成するには、ビデオをイメージのシーケンスに変換します。

R2017a で導入