Камера телефона, направленная на поверхность, не дает почти никаких количественных данных об этой поверхности, поскольку на снимке преобладает любой случайно падающий свет. Кухонная столешница, сфотографированная в полдень и в сумерках, — это два разных изображения одного и того же материала. Камера — отличный детектор, но проблема в том, что освещение неизвестно.

Однако в телефоне есть собственный источник света, расположенный в нескольких миллиметрах от объектива. Фонарик не регулируется, не настраивается по цвету и не откалиброван в лабораторном смысле — но он постоянен: один и тот же светодиод, то же положение и та же мощность при каждом включении. Известный источник света плюс детектор — это основа настоящего оптического прибора. Два инструмента Sentio построены именно на этой основе, но работают в противоположных направлениях: один отражает свет от поверхности, другой пропускает его насквозь.

Отражение: весь секрет в паре кадров

Инструмент «Отражение» не просто делает снимок поверхности. Он делает два: один с выключенным фонариком, другой — с включенным, из того же положения, и анализирует разницу.

В этой паре и заключается вся идея. Кадр с естественным освещением фиксирует все, что привносит комната: свет из окна, потолочные лампы, тени. Кадр с подсветкой фиксирует ту же сцену плюс еще кое-что: реакцию поверхности на фонарик. Если вычесть первый кадр из второго, влияние комнаты практически исчезнет. Остается то, как поверхность отреагировала на свет, интенсивность, положение и спектр которого одинаковы при каждом запуске. Вы заменили «фотографию при любом освещении» на «реакцию этой поверхности на известный стимул» — и эту величину уже можно сравнивать от одного измерения к другому.

Чтобы это сработало, камере придется перестать быть услужливой. Автоэкспозиция посчитает кадр с фонариком более ярким и незаметно снизит усиление; автобаланс белого скорректирует оттенки каждого кадра по отдельности. И то и другое сводит вычитание на нет, так как кадры больше не будут измеряться в одном масштабе. Поэтому инструмент блокирует автоэкспозицию и автобаланс белого для этой пары — то же правило и по той же причине, по которой в тесте постукиванием используется необработанный аудиоканал телефона. Встроенные алгоритмы обработки в телефонах созданы для того, чтобы картинка и звук выглядели красивее; для измерений же их нужно отключить.

Для чего это нужно? Везде, где интересующее свойство — это то, как поверхность отражает свет, а не то, какого она цвета:

Полупрозрачность: просвечивание с объективом на противоположной стороне

Родственный инструмент меняет геометрию. Вместо того чтобы отражать свет фонарика от поверхности, вы прижимаете образец к объективу камеры так, чтобы фонарик оказался позади него, а инструмент измеряет, сколько света проходит насквозь — и, что немаловажно, как это пропускание различается в красном, зеленом и синем каналах. Это и есть просвечивание — старый трюк, когда яйцо подносят к лампе, только в роли лампы и глаза здесь выступает телефон.

Разделение по цветовым каналам важно, поскольку материалы редко ослабляют свет равномерно по всему спектру. Лист пропускает красный свет легче, чем синий; содержимое яйца меняет цвет проходящего света по мере его развития; кожица плода пропускает свет по-разному в зависимости от изменения пигментации. Таким образом, показания — это не просто «сколько света прошло», а «сколько света каждого цвета прошло», и соотношение между каналами часто более информативно и стабильно, чем любой отдельный уровень.

Сценарии, в которых главный вопрос — «сколько света проходит и какой цвет сохраняется»:

Честное предостережение: условия должны быть одинаковыми, иначе сравнение невозможно

Показания полупрозрачности можно сравнивать между измерениями на одной и той же установке, но не между разными установками — и об этом стоит сказать прямо, поскольку причина кроется в физике, а не в ограничениях программного обеспечения.

Когда вы прижимаете образец к объективу, геометрия этого контакта становится частью измерения. Сила прижатия меняет толщину образца и плотность его прилегания. Точное местоположение меняет длину пути света от фонарика до датчика. Воздушный зазор рассеивает свет, а плотный контакт — нет. Ничего из этого не записывается, поэтому скомпенсировать эти погрешности нельзя. Два показания для одного и того же листа, снятые одинаково на одном телефоне, можно сравнивать напрямую. Но сравнение показаний вашего телефона и телефона друга — с другим расположением фонарика, другим объективом и другим усилием прижатия — будет некорректным, и инструмент не станет притворяться, что это не так.

Это то же самое честное рассуждение, на котором строится всё остальное в платформе: используйте показания относительно, в рамках одной стабильной установки, и им можно доверять; относитесь к ним как к абсолютным универсальным величинам — и они потеряют смысл. Активность со звукоизоляцией с использованием двух телефонов специально выстроена так, чтобы заложить эту структуру соотношений в сам свой протокол именно по этой причине.

Правило проектирования: никогда не доверяйте абсолютному уровню. Светодиоды фонариков у разных моделей телефонов отличаются, чувствительность датчиков камер тоже разная, и ни то, ни другое не откалибровано. Поэтому эти инструменты строятся на разностях и соотношениях (свет фонарика минус окружающий свет, красный относительно синего, показание этой недели против показания прошлой недели для того же объекта) — величинах, в которых неизвестные константы взаимно уничтожаются. Это оптическая версия правила, которому следуют акустические инструменты: характеристики должны сохраняться при смене устройства или быть честно ограничены рамками одного прибора.

Два инструмента, один прибор

«Отражение» и «Светопропускание» — это один и тот же прибор в двух конфигурациях: фиксированный свет, заблокированный детектор и расчет параметра на основе сравнения, а не одного кадра. Оба работают полностью на телефоне, оба сохраняют показания в каталог объектов, благодаря чему у поверхности или образца накапливается история, и оба могут быть задним числом помечены фактическим результатом (покрытие, которое не выдержало; яйцо, которое оказалось оплодотворенным). Таким образом, каждое измерение становится будущим обучающим примером.

Это лишь два пункта в длинном списке. Чтобы подробно ознакомиться с тем, во что можно превратить датчики телефона, начните с обзора инструментов.