Сами интересующие пики Вы умеете выделять или это тоже часть задачи?
Для начала можно сгладить график некоторым (достаточно широким) окном. В результате должна получиться достаточно гладкая кривая с длинными монотонными участками. На ней можно взять все локальные максимумы, которые будут отвечать положениям пиков.
Далее по сути вроде как имеется задача кластеризации точек на прямой, причем центры кластеров известны. Можно придумывать самые разные критерии того, как производить группировку. Можно каждую точку отнести к ближайшему центру (т.е. фактически в качестве порогов взять середины отрезков между пиками). Можно на той же сглаженной кривой брать пороки в точках локальных минимумов между найденными максимумами.
Еще можно выбирать пороги так, чтобы минимизировать внутриклассовую дисперсию. При этом дисперсия каждого класса должна браться с весом, равным его доле. По этому поводу почитайте
Метод Оцу. Этот метод можно эффективно реализовать. И вообще обратите внимание на методы бинаризации полутоновых изображений (по гистограмме). Если взять отрезок Вашей гистограммы между двумя соседними пиками и считать, что это гистограмма полутонового изображения, которое нужно бинаризовать, то это вроде как и получается нужная Вам задача.
Если же подходить с точки зрения распределений, то можно попробовать аппроксимировать Ваш график смесью гауссианов (или других подобных распределений) с центами в пиках, подобрав их веса и дисперсии. Но мне кажется, что здесь это не очень подходящий метод, потому что гауссианы будут явно сильно пересекаться и все равно придется принимать решение о том, где ставить порог, каким-нибудь методом, походим на описанные выше.