Pull to refresh

Comments 11

Как-то это слабовато даже для студенческого проекта.
1) Вы используете Dlib распознавание лиц. Но сейчас 2022 год уже. Не надо так делать. Вот тут я чуть подробнее рассказываю почему так не надо — www.youtube.com/watch?v=2fnNhYCpToE и какие есть альтернативы (как детектор лиц на питоне я может быть даже MediaPipe посоветовал бы сейчас)
2) Для тестирования вы используете… «ORL» — это база для тестирования лиц собранная с 1992 до 1994 года. Тогда не то что нейронных сетей не было, тогда ещё и Haar, HOG и половины алгоритмов классического CV не было. Тогда решались другие цели и задачи.
(чб картинки полного размера которые смотрят в камеру — это не совсем того что вы хотите от датасета)
3) Вы что-то говорите про скорость выполнения. Но не сравниваете с сотнями других современных подходов, которые умеют оптимизироваться под железо. И под RPi и под другие куда более дешевые железки. И вообще сейчас RPi странное решение для FaceRecognition. Например приведу пример Maixduino который с камерой выходит дешевле, а по производительности дешевле
image
А ещё есть ESP32 который формально тоже может распознавать. Там есть полный аналог чего вы сделали из коробки. Примерно за 5 баксов с камерой, примерно 5fps.
Выбор RPi у вас абсолютно нелогичен:)
4) Вы начинаете рассказывать про ошибки других систем, но не показываете проблемы/ошибки вашей системы/вашего подхода (dlib вы не сможете переобучить, занесение в базу будет иметь кучу ошибок, и.т.д.).

Выбираю сейчас платформу для себя. Maixduino или ESP32 реально там использовать экран и передачу видео/аудио через WebRTC Full HD, Спасибо?

У ESP32 есть стриминг, но не WebRTC. Там что-то типа websocket — randomnerdtutorials.com/esp32-cam-video-streaming-web-server-camera-home-assistant Я слабо разбираюсь именно в реализациях стриминга, но мне кажется это не очень просто запихнуть.
Экран там воткнуть некуда. Платы с микрофоном вроде есть.

У Maixduino на k210 со стримингом, как мне кажется, такая же ситуация. Но зато есть куда экранчик воткнуть.

Но есть второй MAIX — www.seeedstudio.com/Sipeed-MAIX-Dock-p-4815.html
Сам его не тестил, но по докам там какой-то нормальный линукс, так что все должно быть проще.

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

Про

Вызваная панель домофона. Пока остановились на rpi

Может будет полезна информация, для вас или для других. Составлял список недавно

AI Платы машинного зрения с камерой:

	Smartfly HUSKYLENS Board !!!
		простой в использовании датчик AI Vision с IPS экраном-камера отслеживания объекта для Raspberry Pi LattePanda Micro:bit
		HuskyLens - это простой в использовании сенсор искусственного интеллекта.  Он оснащен несколькими функциями, такими как распознавание лиц, отслеживание объектов, распознавание объектов, отслеживание линий, распознавание цветов и распознавание тегов (QR-код).
		Через порт UART / I2C HuskyLens может подключать популярные основные платы управления, такие как Arduino, micro: but, Raspberry Pi и LattePanda, чтобы помочь вам создавать очень креативные проекты, не играя со сложными алгоритмами.
		Processor: Kendryte K210
		Image Sensor: OV2640 (2.0Megapixel Camera)
		3 775,71 руб. - https://aliexpress.ru/item/4000907580624.html
	OpenMV - https://openmv.io/
		OpenMV Cam H7 R2 - https://openmv.io/collections/cams/products/openmv-cam-h7-r2
			работает от -20 до +70
			0.05 TOPS
	Kendryte K210 - https://canaan.io/product/kendryteai
		1 TOPS
		Image Recognition :QVGA@60fps/VGA@30fps (QVGA=320×240)
		Voice Recognition:Microphone arrays 
	Kendryte K510 - https://canaan.io/product/kendryte-k510
		RISC-V ???
		2.5 TFLOPS BF16 / 2.5 TOPS INT8
		High-quality H264 video encoding, 2 channels 1080P@60;
		https://cnx-software.ru/2021/07/09/kendryte-k510-trehyadernyj-proczessor-s-arhitekturoj-risc-v-obespechivaet-do-3-tops/
	01Studio PyAi K210 на базе Kendryte k210 от компании 01Studio
		массив до 8 микрофонов
		https://mysku.ru/blog/aliexpress/82725.html
		https://www.01studio.cc/
		https://wiki.sipeed.com/soft/maixpy/zh/index.html
	Maixduino
		Поддержка нейронных сетей на уровне «железа» (у остальных нету)
		https://mysku.ru/blog/aliexpress/79416.html
		2 913,89 руб. - https://aliexpress.ru/item/33035403341.html
	Pixy - https://pixycam.com/pixy2/
		Pixy2 Camera - Image Recognition for Arduino & Raspberry Pi
	ESP32-Cam
	Sipeed MAIX-II M2dock Deep Learning AI + IOT Linux V831, визуальная макетная плата
		https://cnx-software.ru/2021/01/09/dok-stancziya-sipeed-maix-ii-eto-komplekt-razrabotchika-aiot-vision-na-baze-allwinner-v831/
		811,86 руб. - https://aliexpress.ru/item/1005003182878622.html
		$37.20 - https://www.seeedstudio.com/Sipeed-MAIX-Dock-p-4815.html
	OpenCV OAK-1 AI Camera Kit 
		4 TOPS
		$143.10 - https://www.robotshop.com/en/opencv-oak-1-ai-camera-kit.html
		Myriad X, 700mhz
			https://www.intel.ru/content/www/ru/ru/products/sku/204770/intel-movidius-myriad-x-vision-processing-unit-0gb/specifications.html
		Max Frame Rate: 60 FPS
		4K Frame Rate: 30 FPS
		Pixel: 12MP
		Model: IMX378
		Примеры:
			RPi 4 + OAK-1 - https://www.youtube.com/watch?v=f-EnK-JkUr0

Поддержка нейронных сетей на уровне «железа» (у остальных нету)

Same Kendryte k210...

Эту заметку я добавил видимо, когда только начинал составлять список. А список составлял в течении нескольких недель. А сюда вставил как есть.

Конкретно данный комментарий видимо я взял отсюда.
Или вот скриншотом:

Проект начинался больше года назад на оборудовании, имеющемся в университете.

Признаюсь, про Maixduino я не знал; про esp32 cam слышал, но не рассматривал его как базу для проекта – распа гораздо удобнее и функциональнее. Насчет «полного аналога» - не думаю, что на esp удастся реализовать работу функционального бота в ТГ параллельно с распознаванием лиц + постоянное обращение к БД. И этого точно там нет «из коробки».

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

С фактом устаревания Dlib спорить не буду, скажу лишь что его вполне достаточно для решения задач, изначально поставленных перед проектом. Для работы модуля face-recognition, ничего не нужно обучать – он и так находит лица, справляется с их векторным преобразованием и сравнением. Ошибок при внесении векторов лиц в базу – нет, ведь предполагается самостоятельная загрузка фотографий пользователем через бот (можно добавить пометку а-ля «фотография не должна быть смазанной, лицо должно быть отчетливо видно»).

Спасибо, что напомнили про недостатки - они и правда есть. Например, невозможно распознать лицо человека на расстоянии более 5м (разрешение картинки на входе режется для быстрой обработки) и в темноте. Отсутствие возможности переобучения алгоритма распознавания за недостаток не считаю – проект делался не для сложных исследований, а для простых задач.

ЗЫ: большое спасибо за совет с MediaPipe. Потрогаю и внедрю в систему, если будет возможность.

А ещё есть ESP32 который формально тоже может распознавать.

И вы его не пробовали, ключевое тут "формально". Никаких 5 fps там и рядом нет. 5fps - это просто видео поток, который камера может долго и стабильно отдавать при VGA разрешении. Если прикрутить распознавание, то получите 0.3-0.5 fps. Распознавание отвратительное. Если натренировать на статичные картинки, то ещё как то работает. Если реально перед объективом лицом покрутить, то вероятность ошибок, на мой взгляд, около 70%. Ну тоесть лицо ребёнка спутать с лицом бородатого мужика - как нефиг делать.

Вы просто это так расписали, что новички могут подумать "ух нифига себе, надо бежать покупать", но в реальности оно работает совсем не так.

>как детектор лиц на питоне я может быть даже MediaPipe посоветовал бы сейчас
Советуйте тогда до конца) Recognition дальше чем делать, чтобы лучше, чем с dlib?

Sign up to leave a comment.

Articles