Является ли теневой шум web-камеры случайным сигналом?
Всем привет, вопрос следующий. Берем обычную дешевую web-камеру, полностью закрываем объектив (например, черным пластилином), снимаем видеосигнал, он представляет собою шум из серых точек, можно усилить (домножить яркость) и тогда немного даже похоже на экран телевизора без выбранного канала (хотя не знаю, осталось ли такое на нынешних телевизорах, у меня его нет). В шуме есть некоторые закономерности. Во-первых, есть что-то вроде "битых пикселей", цвет которых не особо меняется. Во-вторых, есть такое ощущение (возможно, оно ложное), что в шуме прослеживается некоторая периодичность во времени. Есть и странности: иногда (раз в минуту примерно) происходит мощный кратковременный всплеск яркости шума. Как я понимаю, природа шума ПЗС-матрицы - квантовая, т.е. можно ли сказать, что данный сигнал - истинно случайный? Если да, то тогда второй вопрос: можно ли считать все пиксели матрицы независимыми генераторами случайного сигнала?
Да шум будет случайным но для всей матрицы в целом. Для каждого отдельного пикселя он будет зависим от его чувствительности, полученной при производстве матрицы. Так что надо брать группы пикселей как минимум 8х8 а лучше 64х64. Закономерности могут быть связанны с источниками радиосигнала поблизости - таких как мобильный телефон и wi-fi.
Спасибо. Только непонятно, почему нужно брать группы, и что сделать - взять среднее между ними?
Если я построю гистограмму распределения пикселей по яркости - получится что-то близкое к нормальному?
Mirn: в 3-м комментарии примерно об этом речь. Если брать среднее, медиану, складывать, умножать и пр. - мы теряем информацию о порядке пикселей. Например, 0110 или 1001 дадут одно и то же усреднение, а если пиксели рассматривать как биты двоичного числа, это будут разные числа. При вычислении определителя, аналогично, порядок цифр важен, он разнообразит результат.
Думаю, Вам будет интересно (успешная попытка сделать АГСЧ из матрицы мобильного телефона): arxiv.org/pdf/1405.0435v1.pdf
Там, правда, принцип работы АГСЧ отличается:
Каждый пиксель матрицы «считает» количество фотонов, попавших на его поверхность за определенный промежуток времени. Эти фотоны конвертируются в электроны, которые затем умножаются на множитель, определенный светочувствительностью матрицы (уровень ISO). Количество электронов за один и тот же период будет отличаться на совершенно случайное число.
На практике процесс генерации таких случайных чисел выглядит довольно просто: матрица фотокамеры засвечивается зеленым светодиодом и делаются два снимка с одинаковой длительностью выдержки. Затем снимки программно обрабатываются для получения случайных чисел.
Если вдруг решите использовать камеру как ГСЧ - не забудьте прогнать полученные результаты через тесты.
Интересный вопрос.
В принципе шум матрицы это какие то наводки, разумеется в них буде просматриваться определенный тренд (проверьте на нескольких определенных пикселях из последовательности кадров), но средневзвешенное значение каждого кадра будет случайным. Случайность среднего можно усилить назначив каждому пикселю свой вес.
Так же можно просуммировать несколько кадров за определенный период и посмотреть что получится
TimeCoder: Предположим у нас 10 параметров которые могут принимать случайное значение [0, 9] Среднее этих значений будет случайным числом в диапазоне [0, 9]. Если каждый параметр будет иметь вес то среднее попадет в диапазон [0; 999 999 999,9]
evgeniy_lm: если веса постоянны, и сами не являются случайными, получается мы, условно говоря, умножаем случайный сигнал на число (или на вектор). Просто гистограмма распределения растянется, случайность-то как добавится? это как при броске монетки, считать результат не 0/1, а 0/100, только вот значений все равно 2, т.к. числа от 0 до 100 при этом мы никак не получим. Этого можно добиться только увеличивая количество монеток.
Это как при броске 10 монеток, мы с одинаковой вероятностью можем получить результат 0000000000, а можем 1111111111 или любую другую промежуточную комбинацию.
Можно тупо сложить и получить сумму вероятностей 0..10 и сред 0..1, а можно представить в виде двоичного числа и получить вероятность 0..1023 (ср 0..102,3)
TimeCoder: Ну это и так должно быть понятно. Хотя это все не важно. Даже банальный CRC8 по кадрам даст даже очень случайную серию причем совершенно не важно будет камера закрыта (черное изображение) или будет показывать какую нибудь статичную картинку