22 июля 2022

Как использовать нейросеть для контроля допуска на территорию

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

Поскольку мы делали этот проект для себя, готовые системы покупать не стали. Во-первых, так мы смогли протестировать технологии для последующего применения в работе в коммерческих проектах. Например, нейронную сеть YOLOv5 использовали для обозначения области захвата, автомобиля и номера, определения его выезда или въезда, а Pytesseract – для перевода изображения в текст и последующей работы с ним. Во-вторых, это позволило нам автоматизировать процесс допуска автомобилей на парковку компании, а также избежать расходов на обслуживание системы.

Рассказываем, как можно решить задачу по контролю доступа с помощью нейросетей.

Этап 1 – детекция объекта внутри области захвата

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

Этап 2 – определение госномера транспортного средства

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

Фотографии собираем непосредственно с камеры. Дальше идет обучение той же нейронной сети YOLOv5 на основе полученных данных и для каждого транспортного средства детектируется bounding box (прямоугольник, ограничивающий номер).

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

После того как номер обнаружен, переходим к третьему этапу.

Этап 3 – работа с распознанным номером, обеспечение допуска автомобиля на территории

Далее переводим картинку в текст. Для этого можно использовать Pytesseract – нейронную сеть, которая решает задачу оптического распознавания символов. Она принимает на вход картинку, а на выходе выдает изображенный на ней текст в виде строки. В нашем случае мы разбиваем госномер на 4 части – первая буква, три цифры, следующие две буквы и регион. Это необходимо для более точного распознавания. Во-первых, относительные размеры букв и цифр номера отличаются от обычного текста. Во-вторых, так мы можем указать сети, какой тип символа нужно распознавать – буквы или цифры.

Если номер есть в базе, шлагбаум открывается и автомобиль заезжает на территорию.

Вот так, в 3 этапа, можно настроить автоматический доступ транспортных средств на территорию.

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

Какие задачи решают с помощью нейросетей

Этот метод можно также использовать для решения широкого круга задач, в частности:

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

Здесь можете посмотреть, как мы используем Data Science для решения задач клиентов.

Понравилась статья?
Подпишитесь на рассылку SimbirSoft! Пришлём письма о лайфхаках в разработке, поделимся опытом управления командами и компанией, а также расскажем о новых ивентах SimbirSoft.

Другие статьи

Как интегрировать внутренние системы банка с 1С
23 сентября 2022
Как на самом деле должна работать политика в области качества
09 сентября 2022
Недовольство пользователей внедряемой IT-системы: что с этим делать
08 августа 2022
Написать нам
Оставьте контакты, чтобы обсудить проект и условия
сотрудничества, или позвоните: 8 800 200-99-24
Оставьте свои контакты
SimbirSoft регулярно расширяет штат сотрудников.
Отправьте контакты, чтобы обсудить условия сотрудничества.
Порекомендуйте друга — получите вознаграждение!
  • Middle Mobile QA Engineer
  • Middle Vue.js / Frontend-разработчик
  • PHP-разработчик
  • Системный аналитик
  • iOS-разработчик
  • C#-разработчик
  • Android-разработчик
  • Менеджер по привлечению клиентов
  • Аналитик 1С по управленческому учету
  • Middle Web QA Engineer (Python)
  • Middle UI/UX дизайнер
  • 1С-разработчик
  • Бухгалтер по расчету заработной платы
  • Архитектор 1С
Прикрепить резюме, до 10Мб
Файл выбран