22 июля 2022

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вебинар “Анализировать нельзя разрабатывать. Лекарство от хаоса в разработке”
05 апреля 2024
SimbirSoft и Синара Лаб – партнеры по внедрению коробочного решения «Цифровой рубль»
04 апреля 2024
Вебинар «Красиво vs Качественно. Какие метрики вашего бизнеса зависят от Frontend-разработки?»
12 марта 2024
Написать нам
Оставьте контакты, чтобы обсудить проект и условия
сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Оставьте свои контакты
SimbirSoft регулярно расширяет штат сотрудников.
Отправьте контакты, чтобы обсудить условия сотрудничества.
Прикрепить резюме, до 10 Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Написать нам
Расскажите, какие задачи сейчас на вашем проекте.
Проконсультируем и предложим подходящих специалистов, а также сориентируем по ставкам на аутстаф.
Направление
Количество специалистов
Middle
TeamLead
Senior
TechLead
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Экспресс-консультация
Заполните все поля формы.
Эксперт свяжется с вами в течение рабочего дня.
Тематика
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Порекомендуйте друга — получите вознаграждение!
  • Middle Fullstack QA Engineer (Mobile)
  • Python-paзработчик
  • Java-разработчик
  • Angular-разработчик
  • PHP-разработчик
  • Системный аналитик
  • C#-разработчик
  • Инженер по нагрузочному тестированию
  • Golang-разработчик
  • DevOps-инженер
  • 1С-аналитик
  • 1C QA Engineer
  • Юрист
  • Разработчик на C++
  • UI/UX дизайнер
  • 1С-разработчик
  • DWH-разработчик
  • SDET (Python)
  • Маркетолог
  • Архитектор C#
  • Менеджер по продажам IT SaaS
  • QA Engineer Fullstack (Java/Kotlin)
  • C# /.NET-разработчик
  • Бизнес-аналитик
  • Аналитик DWH
  • Team Lead Java
  • Менеджер проектов 1С
  • Руководитель отдела Backend
  • Руководитель отдела Frontend
  • SDET (Java)
  • Менеджер по продажам IT продуктов на иностранное направление
  • Менеджер по продажам IT продуктов
  • Team Lead Python
  • SAP-аналитик
  • Middle Golang разработчик (Teamlead)
  • SDET (JavaScript)
  • Fullstack-аналитик
  • SDET Python (мобильные приложения)
Прикрепить резюме, до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.