Количество меток пикселей для каждого класса
задает дополнительные параметры.counts = countEachLabel(___,Name,Value)
Если bimds содержит категориальные данные, countEachLabel получает имена классов из категорий, заданных в InitialValue свойство первого заблокированного изображения. В этом случае не задайте значения для 'Classes' и 'PixelLabelIDs' параметры. Если bimds содержит числовые данные, необходимо задать значения для 'Classes' и 'PixelLabelIDs' параметры.
Можно использовать информацию о метке, возвращенную countEachLabel вычисление весов классов для балансировки классов. Для примера, для маркированных пиксельных данных в tbl:
Равномерный класс балансировки взвешивает каждый класс таким образом, чтобы каждый содержал равномерную предшествующую вероятность:
numClasses = height(tbl) prior = 1/numClasses; classWeights = prior./tbl.PixelCount
Обратная балансировка частот взвешивает каждый класс таким образом, что недостаточно представленным классам придается более высокий вес:
totalNumberOfPixels = sum(tbl.PixelCount) frequency = tbl.PixelCount / totalNumberOfPixels; classWeights = 1./frequency
Медианная частотная балансировка взвешивает каждый класс, используя медианную частоту. Вес для каждого класса c определяется как median(imageFreq)/imageBlockFreq(c) где imageBlockFreq(c) - количество пикселей данного класса, разделенное на общее количество пикселей в блоках изображений, которые имели образец данного класса c.
imageBlockFreq = tbl.PixelCount ./ tbl.BlockPixelCount classWeights = median(imageBlockFreq) ./ imageBlockFreq
Вычисленные веса классов можно передать в pixelClassificationLayer (Computer Vision Toolbox).
blockedImage | blockedImageDatastore | pixelClassificationLayer (Computer Vision Toolbox)