Добавить в цитаты Настройки чтения

Страница 30 из 78

— Не порнографии, — поморщился Матео. — Обнажённой кожи. Программа не понимает, что изображено на фотографии. Для неё нет девушки, купальника, пляжа или чего-то непристойного. Есть только пиксели.

Он увеличил изображение. Лицо девушки распалось на цветные квадраты, превратившись в мозаику оттенков.

— Каждый пиксель имеет цвет. Мы берём его показатели и проверяем, насколько они похожи на оттенок человеческой кожи. Если похожи, отмечаем. Потом программа смотрит не на отдельные точки, а на области, которые они образуют.

Матео провёл курсором по красному пятну, покрывавшему плечи, живот и ноги девушки.

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

— Она в купальнике, — заметил я.

— Именно поэтому программа не должна ничего удалять самостоятельно.

Он нажал клавишу, и рядом с фотографией появилась надпись:

«Вероятность откровенного содержания: 62 %».

— Шестьдесят два процента, — прочитал я. — И что происходит дальше?

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

Это уже звучало разумнее.

— Сколько фотографий она сможет пропускать через себя?

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

Матео открыл следующее изображение.

На нём стояла женщина в длинном бежевом платье. Почти вся ткань окрасилась красным, отчего прилично одетая дама теперь выглядела для программы опаснее девушки в купальнике.

— Вот проблема, — сказал он. — Цвет подходит, площадь большая, форма тоже примерно человеческая. Программа решает, что женщина раздета.

— Значит, система не идеальна.

— Нет. Она просто глупая.

Матео сказал это так буднично, словно речь шла о младшем сотруднике, которого ещё можно было обучить и поставить на путь истинный.

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

— И тогда она отличит платье от голого тела?

— Иногда.

Я посмотрел на него.

— Очень обнадёживает.

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

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

— Но явную обнажёнку она сможет находить?

— Большую часть самой очевидной — да. Особенно если изображение хорошего качества, тело занимает заметную часть кадра и ничем не закрыто. Сложные случаи всё равно останутся людям.

— Как она будет учиться?

— Сначала никак. Мы зададим ей правила вручную: допустимые оттенки, размеры областей, их расположение, соотношение кожи ко всей фотографии. Потом соберём базу примеров.

— Какую базу?

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

— То есть мы покажем ей несколько тысяч голых людей, и после этого она начнёт узнавать остальных?

Матео задумался, нахмурившись так серьёзно, будто вопрос требовал глубокого философского осмысления.

— Если объяснять совсем примитивно — да. Только она не узнаёт людей. Она вычисляет вероятность.

Он открыл таблицу с тремя строками.

'До 30 % — публикация.

От 30 % до 70 % — дополнительная проверка.

Выше 70 % — очередь модерации до публикации'.

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

— А жалобы?

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

— Получается, чем больше фотографий загружают пользователи, тем лучше становится фильтр?

— Если мы будем сохранять решения модераторов и использовать их для настройки — да. Но чудес не ждите. Он не станет разумным. Просто будет реже ошибаться.

Я снова посмотрел на фотографию девушки в купальнике.

Красная сетка покрывала почти всё её тело, словно программа уже вынесла приговор.

— Сколько людей это нам сэкономит?

— Много. Фильтр отсеет основную массу обычных снимков и оставит модераторам несколько тысяч подозрительных.

— Несколько тысяч всё равно немало.

— Зато это не сто тысяч.

Логично.

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

— А пользователи заметят проверку?

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

— Часов нельзя. Люди не любят ждать.

— Тогда придётся нанять больше модераторов.

— Или сделать программу точнее.

— Или сделать программу точнее, — не стал спорить Матео.

— Отличная работа.

Я похлопал парня по плечу и тише добавил:

— Как Лунтик?

Матео оценивающе посмотрел на занятого парня в другом конце помещения.