Глава 10

Июнь 2012 года. Воронеж, Российская федерация.

Хороший автобус! Вроде ехать пятьсот километров, зато по кайфу. Наверное, в поезде больше дискомфорта. Не люблю я слишком много людей рядом. Здесь же пассажир, сразу отключается, и всё. Даже не заметил, как добрался до дома.

А там уже пришлось включать мозги на полную мощность. Спать не хотелось, поэтому я решил обдумать ПА. От него очень многое зависит. На первом этапе уж точно.

Разведка показала, что ИК-излучатель ослепляет камеру, но вызывает пятно, которое сразу заметит оператор. По идее надо в реальном времени подменять картинку, делая меня невидимым.

Написал по памяти микроскопическую свёрточную сеть для Real-Time Video Inpainting. Без видеокарты она бы не работала, поэтому пришлось провести жесточайший прунинг, вырезав девяносто процентов нейронных связей, оставив только базовый математический каркас и кое-что из математического дизайна и алгоритмики. На гитхабе взял базовые библиотеки для работы с видеопотоком.

Неожиданно встала проблема слабого железа. В той же серверной в НИИ стоит древний ПК с Windows Server 2003 и встроенной графикой Intel. Тяжёлая модель там не пойдёт. Старые процессоры времён Windows Server 2003 (архитектуры Intel NetBurst или ранние Core/Xeon) не умели быстро считать целые числа (INT8), но за счёт алгоритмики и оптимизаций вопрос решить удалось. Математика и алгоритмы оптимизации будущего способны творить чудеса на старых архитектурах.

Два дня мучился с архитектурой под старые процессоры. Нужен был автономный код для перехвата потоков с любых регистраторов.

Вместо диффузионных моделей я использовал Flow-Attention Cache кеширование оптического потока, чтобы не считать векторы движения каждый кадр.

Ограничил разрешение до 640×480, провёл квантование весов из FP32 в INT8. Также добавил латентную интерполяцию, очистка кадра через один, пропуски достраиваются варпингом соседних матриц.

Чтобы разгрузить CPU, убрал постоянный поиск силуэта, нейросеть запускается только при ИК-засветке, когда в центре матрицы появляется радиальное марево, называемое блумингом. По контуру засветки строится маска, дефектные пиксели замещаются сгенерированным фоном.

Система получилась двухкомпонентной. Аппаратный ИК-излучатель 808 нм и программный бэкдор-демон на видеосервере. Демон почти не ест ресурсы, пассивно мониторит буфер на аномалию. Как только я включаю излучатель, блуминг становится триггером. Нейросеть за доли миллисекунды перехватывает видеопоток в оперативной памяти, изолирует засветку, строит маску и замещает искажённые пиксели чистой подложкой. Оператор видит статичный пустой коридор, хотя я прохожу прямо под камерой. Выключаю прибор, аномалия исчезает, а нейросеть сворачивается и засыпает.

Всё работает исключительно из-за отсталости местной инфраструктуры. Будь там современные камеры с децентрализованным анализом, шифрованием и облачными логами фокус бы не прошёл.

* * *

Теперь по самому аппарату. Испытания показали, что прибор работает слишком хорошо. Выжженная матрица и зелёная вспышка мгновенно привлекут охрану. Нужен незаметный проход, поэтому лазер пришлось оптимизировать.

Laser 303 классический DPSS, ИК-диод 808 нм накачивает Nd:YAG, тот даёт 1064 нм, а кристалл KTP удваивает частоту до 532 нм зелёного света.

Мне этот каскад мешает тем, что где-то до семидесяти процентов мощности уходит в тепло, а зелёный маркер демаскирует.

Сначала разобрал модуль. Снял головную гайку, выпрессовал кристаллическую сборку, оставив голый диод. Вернул коллиматорную линзу под новые параметры. Теперь на выходе был чистый ИК 808 нм без преобразования.

Китайцы склеивают Nd:YAG и KTP в монолит, поэтому юстировать кристаллы между собой не нужно, достаточно аккуратно выпрессовать бутерброд.

Фиксатор резьбы размягчил диметилсульфоксидом с изопропиловым спиртом и прогревом термофеном до 150 °C. Главное — ровно посадить диод, иначе луч уйдёт в стенку.

Для этого использовал списанный бинокуляр МБС-10 с координатным столиком. Дождался ночи, выключил холодильник и центрировал диод сотыми долями оборота. Получился почти невидимый ИК-инструмент.

Глаз его не видит, лишь у линзы сбоку угадывается бордовое свечение. Мощность в сотни милливатт опасна для сетчатки, при этом моргательный рефлекс ИК-свет не вызывает, чем и опасна.

Но нельзя давать диоду все 300 мВт. Камера деградирует, а выжженная матрица — прямой знак. Нужен контролируемый блуминг.

Микроконтроллер через полевой транзистор управляет током ШИМ. Фотодиод ловит обратный блик, и автоматика не выводит лазер на максимум, а плавно дозирует скважность, удерживая мощность у порога насыщения матрицы.

Блуминг прост. Пиксели — это микроконденсаторы, при переполнении заряд перетекает на соседние ячейки. Я слегка расфокусировал коллиматор, превратив пучок в расширяющийся конус, чтобы лазер накрывал группы пикселей.

Протестировал на старой купольной камере, купленной на рынке заранее. Вместо зелёных сполохов и полос в центре кадра за полсекунды вырастало мягкое круглое белое облако с размытыми краями. Оператор принял бы это за блик от фар или солнца. Камера слепла в секторе прохода, но для мониторинга это выглядит безобидной помехой.

Корпусом послужил всё тот же старый ручной массажёр. Внутренности выпотрошены, стенки проклеены лавсановой плёнкой и алюминиевой фольгой для ИК-экрана. В проём вставлено стекло от светофильтра, прозрачное для 808 нм. В рукоятку упакованы три плата защиты 18650, контроллер, драйвер лазера и пятивольтовый кулер от роутера. Воздуховод выведен в боковую перфорацию с лабиринтным диффузором, чтобы не создавать тепловой шлейф. Родной тумблер включает питание, под указательный палец выведена кнопка активации. Внешне чёрно-серая рукоятка, удобная, со смещённым вниз центром тяжести. Выдают её лишь глухое жужжание вентилятора и призрачное рубиновое свечение в глубине стекла. Проверил, работает.

* * *

— Добрый вечер, уважаемые гости «Бара у мамы»!

Ди-джей вещал с балкона второго этажа, где расположились также музыканты. Хвалённое заведение представляет собой огромный зал, способный вместить несколько сотен человек. Что и произошло сегодня вечером. Причина популярности бара мне неизвестна, ремонт и обстановка здесь средние. Но кто я такой, чтобы его критиковать? Коллегам нравится, значит, мне тоже.

Институтские приоделись. Особенно дамы, многие из которых выбрали вечерние платья. На самом деле получился аналог колхозной дискотеки. Слишком всё вычурно и перебор с украшениями. Ещё и макияж такой, что просто пиздец!

Однако некоторые персонажи открылись с совершенно неожиданной стороны. Если Арина, как ещё три ниишные красавицы блистали, Мила манила, а Леночка из кадров демонстрировала свои длинные ноги, то Надежда Владимировна удивила. Никогда не думал, что у нашего главбуха такая роскошная грудь. Судя по заму гендира, бросавшего жадные взгляды на это великолепие, он тоже в шоке. А ей ведь всего лет тридцать пять! Самый сок! Там и остальные части тела в полном порядке! В общем, день сплошных открытий.

Я скромно примостился с Андрюхой и Колей из лаборатории в углу огромного зала. Но неожиданно поймал на себе сразу два женских взгляда. Арина и Мила. Сканируют ситуацию или ищут специально? Делаю вид, что не заметил и тянусь за оливье.

Тем временем слов взял наш гендир, Малышев Андрей Сергеевич. Так-то он мужик неплохой. Просто выполз из советской эпохи со всеми её атрибутами. Это не всегда плохо. Но… Впрочем, сегодня плевать.

— Здравствуйте, уважаемые коллеги! Удачно получилось, что юбилей нашего НИИ совпал с днём изобретателя и рационализатора! Так выпьем же за кибернетиков! — Малышев поднял бокал под одобрительный рёв присутствующих.

Кстати, он хорошо так закидывает за галстук. Дело житейское. Кто не пьёт или не пил пусть кинет в меня камень. Я и сам в прошлой жизни… Не будем о грустном.