Одному гениальному учёному захотелось, чтобы холодильник сам мог сказать, сколько в нём чего осталось, может быть, даже присылал эсемески: «Мужик, у тебя тут молоко заканчивается и огурцы уже привет передают». Как этого добиться?
Очевидный выход — сканер штрих-кодов с базой данных по всем покупаемым товарам. Но как сканер узнает, сколько молока осталось в двухлитровой коробке? И где на огурце штрих-код? От идеи оснастить холодильник весами и заставить всех домашних каждый раз ставить вещи на весы учёному хватило ума отказаться.
Следующей идеей стала цифровая камера — они тогда (в начале двухтысячных) только-только начали набирать популярность. Точнее, несколько камер, расположенных так, чтобы увидеть всё, что есть в холодильнике. С анализом изображения, классификацией согласно базе данных и мониторингом количества после каждого открывания дверей. Учёный вздохнул тяжко, поднял свои конспекты по machine learning, натравил Wget на парочку сайтов с изображением продуктов, чтобы набить базу данных картинками обёрток и тактико-техническими характеристиками товаров, и сел писать алгоритм.
Получалось плохо. Для начала оказалось, что для создания устойчивой трёхмерной диспозиции объектов каждая полка должна была быть оснащена минимум тремя камерами, а лучше — четырьмя. (Ещё лучше — пятнадцатью, но тут уже включались экономические факторы.) Во-вторых, надо было построить объёмную модель каждой упаковки по тем её кускам, которые не загорожены другими упаковками, определить её раскраску и сверить с базой данных всех возможных упаковок под разными углами и с разных расстояний. Это примерно то же самое, что по мочке уха и левой пятке с расстояния в несколько метров определить личность человека и узнать, за какую команду он болеет в каждом виде спорта. Требования к счётным мощностям тут совершенно дикие; на такую задачу впору натравливать NASA или Министерство обороны, а не домашний сервер на основе Pentium IV, который учёный хотел нагрузить этой задачей вдобавок к остальным. В-третьих, надо было что-то придумать с распознаванием образов внутри полиэтиленовых пакетов: большое и зелёное — это огурец или авокадо? Незрелый мандарин или уже перезрелый? В-четвёртых, как поступить, если упаковка смята или этикетка наклеена очень криво? В-пятых, что делать с отделением для колбас? Оно слишком тонкое, чтобы туда поместилось несколько камер, и вещи там лежат друг на друге очень плотненько, и все в одинаковых пакетиках, а колбасы-то разные. В-шестых, как по внешнему виду упаковки понять, сколько ещё продукта осталось внутри? С молоком всё просто — упаковка полупрозрачная, но кефир и сок поставляются в картонных тетрапакетах, а шоколадная паста имеет тенденцию залеплять упаковку изнутри вне зависимости от её реального количества.
Coup de grâce идее с автоматическим распознаванием образов нанесла жена, на глазах у учёного доставшая сыр из коробки из-под котлет, потому что эта коробка, видите ли, удобнее.
Но гениальные учёные не сдаются! Если нельзя автоматически подсчитать, что в холодильнике заканчивается, то, может, удастся хотя бы облегчить эту задачу обычному пользователю? Итак, берём цифровые камеры, вешаем их на дверь холодильника изнутри. Берём LCD-экраны бросового качества (пять-семь битых пикселей в этом случае роли не играют), вешаем их на эту же дверь снаружи. Берём тот самый Pentium, пишем ему софт, который тупо пересылает картинки с камер внутри на экраны снаружи. Profit!
Система была создана, написана, опробована в лабораторных условиях (на столе) и отлажена. Учёный продырявил дверь холодильника, прикрутил к ней экраны саморезами, провёл провода, приклеил внутри холодильника камеры, подключил всё и позвал жену хвастаться новинкой.
Всё работало идеально. Экраны показывали внутренности холодильника. Жена была в восторге. Учёный гордо закрыл дверь. В холодильнике погас свет.
От дальнейших экспериментов по порче домашней бытовой техники учёного отговорила жена, подкрепив свои аргументы тяжёлой кухонной утварью.