Количество меток пикселей для каждого класса
задает дополнительные параметры.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)