Автоматизированное компьютерное зрение
История только для участников
м-р Зубайр
Следовать
DataDrivenИнвестор
--
Слушать
Делиться
Компьютерное зрение добавляет новое измерение современным технологиям. Сознательно или подсознательно мы используем компьютерное зрение. Я преподаватель университета, веду курс компьютерного зрения. Обычно я вручную фиксирую посещаемость; это отнимает время и энергию. Два дня назад мне в голову пришла идея автоматизировать систему для экономии энергии и времени. И я успешно завершил проект.
Если вы дочитаете статью до конца, вы сможете создать свою собственную. Никакого сложного или высокого уровня программирования или математических знаний не требуется. Давайте двигаться дальше.
Я постарался сделать проект простым и легким, чтобы учащиеся начального уровня чувствовали себя комфортно, создавая свой первый проект. Импортируем необходимые библиотеки.
Мы извлекли каталоги обучающих изображений с помощью приведенного выше кода и сохранили их в переменной myList.
С помощью приведенного выше кода мы извлекли каталоги обучающих изображений и сохранили их в переменной myList.
Теперь рассмотрим следующую ячейку кода.
Приведенный выше код помогает нам создать два разных списка с именами — изображения и имена классов. Мы сохранили значения интенсивности изображений в списке изображений и имя каждого человека в списке имен классов.
В демонстрационных целях я показал названия изображений ниже.
Изображения были сохранены с помощью Anik.jpg, Ferdous.jpg и т. д.
[Примечание: согласно коду этого проекта, мы должны пометить изображение идентификационным именем или идентификатором]
Кодирование лиц — это способ представления лиц на изображении с помощью некоторых измеренных компьютером чисел. Подобное кодирование лиц генерирует аналогичные типы закодированных значений. Так становится легко узнавать лица.
Мы использовали следующую ячейку кода для кодирования изображений с помощью библиотеки распознавания лиц.
Функция findEncodings возвращает все закодированные значения обучающих изображений.
Обычно OpenCV хранит изображение в формате BGR, а не в формате RGB. Итак, нам нужно преобразовать его в RGB для работы с изображениями. А функция face_recognition.face_encodings() извлекает лицо из изображения и кодирует его.
Мы хотим сделать наш проект реалистичным. Вот почему мы также создаем лист Excel, содержащий информацию и время посещения в табличном формате для каждого дня. Я создал следующую функцию для выполнения этой работы.
Мы использовали библиотеку openpyxl для создания и вставки данных в листы Excel. Во-первых, мы взяли файл Excel, в котором храним информацию. Для каждого дня мы создали новый лист с датой этого дня в файле Excel. Наконец, мы вставили имя, дату и время опознанных людей в лист Excel.
Пример вывода —
Мы обнаружили лица на входе камеры в реальном времени, чтобы мы могли использовать систему видеонаблюдения в реальном времени. Запись с камеры для учета посещаемости. Мы также сохранили изображение в другой папке обнаруженного лица для дальнейшей проверки.
Все эти задачи находятся в одной ячейке кода —
Мы создали отдельные папки для каждого дня, чтобы сохранять обнаруженные изображения с помощью os.mkdir() . Далее мы захватили видео с помощью функции cv2.VideoCapture(0) . Здесь 0 для камеры по умолчанию, вы также можете использовать 1, 2 и т. д. для других входов камеры. Мы снимали непрерывные видеокадры с помощью цикла while. После этого мы уменьшили размер изображения до 1/4, чтобы минимизировать вычислительные затраты, и закодировали изображение уменьшенным изображением. Мы также рассчитали расстояние от входного изображения до обученного изображения и, наконец, пометили входное изображение меткой обученного изображения с наименьшим расстоянием.
Мы также рисуем красный прямоугольник обнаруженного лица, показывающий имя обнаруженного человека. При этом мы собрали имя обнаруженного лица в виде списка и вставили его в лист Excel с помощью функции takeAttendance().
Вывод обнаруженного лица —
Сохраненное изображение в папке с определенной датой —
Сгенерированный лист Excel —