Обнаружение BLOB-объектов является правильным способом сделать это, если вы выбираете хорошие пороговые значения и ваше освещение является равномерным и постоянным; но настоящая проблема здесь заключается в написании алгоритма отслеживания, который может отслеживать несколько BLOB-объектов, будучи устойчивым к пропущенным кадрам. По сути, вы хотите иметь возможность назначать постоянные идентификаторы каждому шарику для нескольких кадров, имея в виду, что из-за изменения условий освещения и из-за того, что люди идут очень близко друг к другу и / или пересекаются, капли могут выпадать в течение нескольких кадров, разделяться и / или объединить.
Чтобы сделать это «правильно», вам понадобится алгоритм нечеткого назначения идентификатора, устойчивый к пропущенным кадрам (то есть идентификатор блоба остается, и в идеале предсказывает движение, если капля выпадает на кадр или два). Возможно, вы также захотите сохранить историю слияния и разделения идентификаторов, так что если два идентификатора сливаются с одним, а затем один разделяется на два, вы можете переназначить отдельные объединенные идентификаторы полученным двум BLOB-объектам.
По моему опыту, базовый пример openFrameworks openCv является хорошей отправной точкой.