Зоркий глаз
проект
Работа посвящается решению наболевшего вопроса массового прохода по пропускам, когда одновременно необходимо идентифицировать большое количество людей для санкционированного прохода в помещения, здания. Был разработан алгоритм всего процесса с применением видеосканера и подключение результатов сканирования, идентификации на контроллер пропускного устройства. Программа была написана на языке PYTON, что дает возможность создать подобную систему в рамках любого учебного заведения. Такой способ допуска решит проблемы с утерей пропусков, сокращения времени на проход, что особенно актуально с эпидемиологической точки зрения и предотвращения террористических ситуаций.
Скачать:
Вложение | Размер |
---|---|
zorkiy_glaz-legovich.docx | 471.76 КБ |
Предварительный просмотр:
«ЗОРКИЙ ГЛАЗ. ТЕХНОЛОГИЯ FACE RECOGNITION»
Преподаватель Легович С.И.
Цель работы: проектирование и внедрение системы видеорегистрации на примере проходной колледжа университета «Дубна».
Задачи работы: 1. Изучить возможности программы «Питон» применительно к согласованным действиям с базой данных и автоматическими устройствами проходной. 2. Написание кода программы и создание запросов в базу данных. 3. Подготовка базы фотографий нужного размера и качества. 4. Изучить особенности пропускного режима колледжа для внедрения новой системы пропуска студентов и сотрудников.
Каждый из нас хоть раз стоял в длинных очередях, чтобы зарегистрироваться на прием к врачу, посещение выставки, музея, участвовать в выборах, пройти через турникет на работу, учебу и т.д. Десятки людей задействованы, чтобы сверять списки, отмечать присутствие, а если кого-то забыли внести в эти списки, перепутали имя, описались в личных данных, то процесс прохода затягивается порой надолго.
Рис. 1. Массовый проход по пропускам
Если учесть требования инфекционной безопасности, которые возникли в связи с эпидемиями COVID и гриппа, опасностью террористических актов и просто непредвиденных обстоятельств, то массовый проход людей на запланированные мероприятия делается весьма проблематичным.
Мы широкими шагами вошли в так называемый цифровой век, когда, сидя дома, можно купить билеты, зарегистрироваться на самолет, записаться в любое учреждение на прием, так почему же не внести в список требуемых личных данных и фотографию? Тогда многие процессы идентификации личности, установления права на проход или присутствие можно вести в автоматическом режиме. Для внедрения такого процесса потребуется всего лишь видеосканер при входе, подключенный к базам данных и соответствующему программному обеспечению.
Распознавание лиц — программное обеспечение, которое отображает, анализирует, а затем подтверждает личность лица на фотографии или видео — является одним из самых мощных инструментов наблюдения, когда-либо созданных. В то время как многие люди взаимодействуют с распознаванием лиц просто как способ разблокировать свои телефоны или отсортировать свои фотографии, то, как компании и правительства используют его, будет иметь гораздо большее влияние на жизнь людей.
В работе предлагается реализовать такой способ идентификации на примере учета сотрудников и студентов колледжа, входящих в учебный корпус. Люди часто забывают, теряют или путаются в различных карточках и пропусках, что создает трудности на проходной. Учет учащихся на занятиях, когда в электронном журнале при входе в класс сразу производится соответствующая пометка, сэкономит время для урока. Составить базу фотографий всех студентов не представляет большого труда, но видеорегистрация на таких мероприятиях, как поточные лекции, конференции, семинары в актовом зале и т.д. выведет систему учета на современный уровень. Особенно актуален этот способ учета в экстремальных условиях при пожарах, террористических угрозах, когда надо знать точно не только количество людей, но и кто именно находится в помещении.
На предварительном этапе был проведён анализ исходных данных, на основании которых составлены требования к эффективности и критическим показателям будущей системы электронного контроля доступа.
Было определено, что на настоящий момент предполагаемое количество студентов и сотрудников составляет примерно 500 человек, ежегодно это количество может увеличиваться ориентировочно в среднем на 30-60 человек; срок обучения студентов составляет от 3 до 4 лет, без учета возможных академических отпусков. В связи с этим, было принято решение об ограничении рабочего объема библиотеки референтных изображений для анализа, исходя из планового количества студентов и сотрудников в течение 5 лет, что с учетом запаса составило 500 изображений. Также предусмотрено архивное хранение референтных фотографий предыдущих периодов и выделенное архивное упорядоченное хранение фотографий неопознанных входящих людей. Предполагается возможность использования 2-х изображений для идентификации людей, носящих как линзы, так и очки для корректировки зрения.
В связи с ограниченными возможностями имеющихся технических средств составлены требования к размещению видеосканера во входной группе колледжа, а также разработан регламент прохождения автоматического распознавания. Предлагаемое место установки видеосканера расположено в непосредственной близости к входному турникету таким образом, чтобы рабочее поле и фокусные характеристики камеры позволяли анализировать людей с ростом от 1,5 м до 1,9 м. Для обеспечения наглядности и доступности принципов работы системы предлагается нанести на пол входной группы специализированную цветную разметку, обозначающее место обязательной остановки входящих. Расположение данной разметки непосредственно связано с местом установки видеосканера и его фокусными характеристиками. Также в качестве поддерживающих и разъясняющих мер предлагается размещение памяток с требованием снять солнцезащитные очки, шапки, опустить высоко поднятый ворот / намотанный шарф.
Таким образом входящий сотрудник или студент колледжа должен будет выполнить следующие действия для автоматической идентификации при входе в учебный корпус:
- Предварительно предоставить фотографии лица в процессе зачисления / трудоустройства;
- Войти с улицы во входную группу учебного корпуса;
- Убрать предметы, закрывающие лицо;
- Остановиться на цветовой разметке у турникета;
- Дождаться разрешительного сигнала турникета;
- Пройти в учебный корпус.
Для решения нестандартных ситуаций предполагается возможность поиска и представления фотографии из базы данных на пульте охраны.
Помимо технического оснащения особое внимание необходимо уделить непосредственно программному обеспечению, которое и будет выполнять роль автоматического вахтера и регистратора.
Для удобства разработана предварительная версия программы для распознавания лиц на языке Python с использованием 4-х библиотек: face_recognition (для распознавания лиц), numpy (для обработки списков и массивов), cv2 (для захвата видео с камеры) и OS (для решения всех вопросов, связанных папками, путями, именами изображений или файлов и т.д.). Программа совместима с серверами на базе операционной системе Linux.
Как указывалось ранее, для автоматического распознавания необходимо заранее загрузить и персонифицировать эталонные фотографии лиц, которые в дальнейшем будут использоваться для сравнения и сопоставления с фактическими изображениями входящих людей. Размещение данных референтных изображений проводится в папку на указанном сервере, доступ к которому прописан непосредственно в коде программы.
Эталонные изображения обрабатываются с использованием ряда предусмотренных переменных, например, функции для получения имен, а также кодировок лиц и цикла для извлечения всех кодировок лиц) обеспечивается получение уникального «кода» изображения и модели RGB. Обработанные эталонные изображения и соответствующие кодовые обозначения хранятся в списке, по которому при получении входящего запроса на идентификацию проводится поиск совпадений. Анализ осуществляется с использованием нейросетевых алгоритмов, подключаемых в виде сторонних библиотек.
Запрос на идентификацию поступает в автоматическом режиме. Текущий кадр с видеосканера преобразуется в цветовую модель RGB, для которой определяются координаты местоположения лица и проводится кодировка. После завершения процесса кодировки осуществляется автоматический поиск-сравнение с заданной базой данных.
Рис. 2. Вид проходной с видеосканером
При выявлении полного соответствия последовательности кода отдельный сигнал поступает на турникет, позволяющий человеку зайти в учебный корпус, а также проводится автоматическая фиксация времени и идентификационных данных в журнале учета. В случае, если последовательность кода не соответствует ни одной из записей зарегистрированной библиотеки, разрешительный сигнал на турникет не поступает, однако, происходит сохранение фотографии входящего человека с указанием времени и даты в назначенную архивную папку. Дальнейшее решение о допуске принимает сотрудник пульта охраны.
Программный алгоритм выглядит следующим образом:
- Импорт необходимых данных для успешного запуска программы
import face_recognition as fr # Для распознавания лиц
import numpy as np # Для обработки всех списков/массивов
import cv2 # Для захвата видео с веб-камеры
import os # Для решения всех вопросов, связанных с папками, путями, именами изображений/файлов и т. д.
- Настройка пути к папке, содержащей все известные лица (фотографии). В папке «известные» имя изображения / файла — это имя человека, которого нужно распознать.
faces_path = "C:\\path\\to\\folder\\with\\known\\faces"
- Задание функции для получения имен лиц, а также кодировок лиц:
def get_face_encodings():
face_names = os.listdir(faces_path)
face_encodings = []
- Настройка цикла for для извлечения всех кодировок лиц и хранения их в списке. Цикл ниже также получает имена людей и удаляет «.jpg» и сохраняет имена в списке:
for i, name in enumerate(face_names):
face = fr.load_image_file(f"{faces_path}\\{name}")
face_encodings.append(fr.face_encodings(face)[0])
face_names[i] = name.split(".")[0] # Удаление ".jpg" или любого другого расширения изображения.
return face_encodings, face_names
- Получение кодировок лиц и их сохранение в переменной face_encodings вместе с именами:
face_encodings, face_names = get_face_encodings()
- Настройка ссылки на веб-камеру, при наличии одной вебкамеры в скобках пишется 0:
video = cv2.VideoCapture(0)
- Установка переменной, которая будет использоваться для масштабирования размера изображения:
scl = 2
- Настройка непрерывной записи футажа с веб-камеры
while True:
success, image = video.read()
- Уменьшение текущего кадра для ускорения программы:
resized_image = cv2.resize(image, (int(image.shape[1]/scl), int(image.shape[0]/scl)))
- Преобразование текущего кадра в RGB для работы модуля распознавания лиц:
rgb_image = cv2.cvtColor(resized_image, cv2.COLOR_BGR2RGB)
- Получение координат местоположения лица и неизвестных кодировок:
face_locations = fr.face_locations(rgb_image)
unknown_encodings = fr.face_encodings(rgb_image, face_locations)
- Настройка цикла, отвечающего за перебор каждой кодировки, а также местоположения лица:
for face_encoding, face_location in zip(unknown_encodings, face_locations):
- Настройка сравнения известных лиц с неизвестными лицами:
result = fr.compare_faces(face_encodings, face_encoding, 0.4)
- Настройка получения правильного имени, если совпадение было найдено:
if True in result:
name = face_names[result.index(True)]
- Установление координат для расположения лица:
top, right, bottom, left = face_location
- Выделение опознаваемых лиц прямоугольником:
cv2.rectangle(image, (left*scl, top*scl), (right*scl, bottom*scl), (0, 0, 255), 2)
- Настройка шрифта, а также отображение текста имени:
font = cv2.FONT_HERSHEY_DUPLEX
cv2.putText(image, name, (left*scl, bottom*scl + 20), font, 0.8, (255, 255, 255), 1)
- Отображение конечного изображения на экране:
cv2.imshow("frame", image)
cv2.waitKey(1)
Было проведено пилотное тестирование с использованием веб-камеры ноутбука HP Laptop 15s-eq2090ur и базы из 16 изображений студентов и преподавателей. Система показала рабочую работопригодность.
Программу можно легко адаптировать под любую другую систему в зависимости от используемой директории, в которой хранятся фотографии. В качестве видеосканера могут использоваться вариативные модели камер: от веб-камеры до иных средств фиксации и передачи изображений на компьютер в реальном времени.
Данная технология позволит в разы ускорить проверку документов, сократит очереди и поможет при экстремальных ситуациях, когда каждая секунда важна.
Помимо заявленного применения были обозначены следующие направления для усовершенствования системы:
- предусмотреть вариативность распознавания лиц в очках различной степени затемнения, в шапках, с частично прикрытым лицом, при смене цвета волос и значительном изменении прически, при наличии бороды / усов и т.п.;
- предусмотреть возможность автоматического переноса эталонной фотографии в архив в случае, если в течение года отсутствовали факты регистрации входа указанного лица (исключить необходимость массового переноса референтных фотографий в архив вручную);
- предусмотреть возможность поиска совпадений и проведение анализа статистики по неидентифицированным фотографиям из истории посещений.
Список литературы:
- Github, Face Recognition - https://github.com/ageitgey/face_recognition
- Stan Li, Anil Jain Handbook of Face Recognition. - «Springer», 2005 г.
- Joseph H., Joe M. - Learning OpenCV 4 Computer Vision with Python 3. - «Packt Publishing», 2000 г.
- NumPy, Learn NumPy - https://numpy.org/learn/
- Prateek J. - OpenCV with Python By Example - «Packt», 2015 г.
- Zed S. Learn Python 3 the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code (Zed Shaw's Hard Way Series) - «Addison-Wesley Professional», 2017г.
- Python, Documentation - https://www.python.org/doc/
- Дэвид М. Язык программирования PYTHON - «К., ДиаСофт», 2000г.
- Romain B., Benjamin A. Face Analysis Under Uncontrolled Conditions: From Face Detection to Expression Recognition - «Wiley-ISTE», 2022г.
- Digital Citizen, RGB - https://www.digitalcitizen.life/rgb-rgb-lighting/
- Tproger.ru, OpenCV - https://tproger.ru/translations/opencv-python-guide/
По теме: методические разработки, презентации и конспекты
« ЭТО ПРАЗДНИК СО СЛЕЗАМИ НА ГЛАЗАХ…» ( Сценарий праздника, посвящённого 67-годовщине Победы).
« ЭТО ПРАЗДНИК СО СЛЕЗАМИ НА ГЛАЗАХ…»( Сценарий праздника, посвящённого 67-годовщине Победы)....
Открытый внеклассный концерт - поздравление "Загляни в мамины глаза"
Цель: Укрепление семейных отношений через совместную творческую деятельность. «Восславим Женщину – Мать, чья любовь не знает преград, чьей грудью вскормлен весь мир. Всё прекрасное в ...
Глазами ребенка
Маленький сборник моих стихов...
Зимняя погода радует глаз
Wow, this article is fastidious, mу sister is analyzing such thіngs, thеrefore ӏ am going tо let know hеr.| bookmarked!!, I love yоur website!| Wаy cool! Ѕome very valid poіnts! I аppreciate you pe...
Коррекционно- развивающая программа"Мир глазами детей" арт - терапия в общей системе психокоррекционной работы с воспитанниками социально- реабилитационного центра.
Программа «Мир глазами детей» разработана для изучения чувств, идей, событий, для развития межличностных навыков и отношений, коррекции эмоционального состояния, формирования адекватной самооценки и у...
Презентация работы по программе "Мир глазами детей" арт- терапия в общей системе психокоррекционной работы с воспитанниками социально- реабилитационных центров
В перезентации представленна проделанная работа по программе "Мир глазами детей"....
«Взаимодействие основного и дополнительного образования детей через реализацию проекта «Красная книга природы Санкт-Петербурга и Ленинградской области глазами детей»
Зачетная работа по курсам повышения квалификации «Инновационная и экспериментально-исследовательская деятельностьв дополнительно образовании»Данная разработка может быть полезна в работе учителям нача...