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

Среди различных запрошенных функций одним из таких запросов было создание интеллектуального валидатора дальтонизма для доступности. Я подошел к проблеме с нескольких сторон

  1. Я использовал старый добрый Pa11y API для первоначального анализа и использовал дополнительный код, чтобы обогатить результаты для определенных аспектов, таких как соотношение фона и переднего плана. Это решение было создано для масштабирования путем вызова Pa11y API из лямбда-выражения и использования стандартного подхода разветвления. Затем результаты были помещены в базу данных Dynamo DB, и были созданы различные наборы безопасных API-интерфейсов для отображения информации конечным потребителям. Благодаря заранее рассчитанному набору вычислений из лямбда-выражений и конфигураций Dynamo DB для выделенной емкости для единиц емкости чтения и записи, решение удалось масштабировать для обработки большого количества записей.
  2. Для управления функциями дальтонизма, такими как протанопия (красный), дейтеранопия (зеленый, красный и желтый), тританопия (синий и желтый), протаномалия (зеленый и красный), дейтераномалия и тританомалия

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

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

Благодаря расширенным шаблонам архитектуры хостинга я смог разместить эти модели в Sagemaker AWS, что позволило выполнять эти проверки в масштабе, и в то же время я смог объединить эти функции вместе, чтобы создать лучшее масштабируемое решение.

«Разветвленный подход не только помог мне контролировать расходы, но и оптимально использовать вычислительные ресурсы и ресурсы, одновременно создавая масштабируемое решение».

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

Пожалуйста, дайте мне знать ваши мысли по поводу вышеизложенного, и если вам нужна дополнительная информация