Мы продолжаем говорить об этом и будем повторять еще раз: «oZone упрощает и объединяет лучшие алгоритмы обнаружения любого типа (будь то изображение, запуск по данным, видео, аудио, научные исследования) в рамках общей структуры. . Это то, что мы делаем лучше всего.

Если вы не жили под камнем, вы, должно быть, читали, как Сверточные нейронные сети или сокращенно CNN уже произвели революцию в мире обнаружения с высокой предсказуемостью.

Проще говоря, CNN обучаются с использованием эталонного набора изображений, а затем пытаются учиться, делая ошибки и используя обратную связь, когда их просят угадать изображение. Традиционные методы обнаружения изображений включали обнаружение краев в изображении и попытку установить взаимосвязь между краями. Например, стандартное человеческое лицо будет иметь два глаза, нос и губы. Используя различные методы, алгоритмы, такие как HOG, попытались бы обнаружить лица. Теперь это здорово, потому что стандартное обнаружение движения, которое опирается на капли, с трудом различает, скажем, кошку и человека, потому что оно действительно не обучено распознавать разницу. Он видит только смежные наборы пикселей.

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

СНС решают эту проблему, пытаясь самообучаться шаблонам из различных наборов входных данных. Вы можете передать ему тысячи точек данных различных типов изображений, и он может научиться классифицировать новые изображения самостоятельно. Я не буду вдаваться в подробности, но если вы заинтересованы и имеете базовые представления о математике, я нашел эту статью отличной отправной точкой.

Итак, почему я пишу о CNN? Потому что мы только что добавили его в качестве альтернативного метода распознавания лиц в oZone. И, как и раньше, мы не писали библиотеку CNN сами. Мы просто использовали то, что сделал Дэвис Кинг. Этот человек гений.

Сначала пример:

Слева — распознавание лиц с использованием традиционной модели HOG. Справа то же самое, но на этот раз с использованием CNN. Вы заметите, что он правильно обнаружил женщину в темных очках, человека впереди, а также человека сзади. Некоторых он упустил, и это функция обучения.

В итоге CNN намного лучше в классификации, чем традиционные модели. Но за это приходится платить: CNN намного медленнее. Если вам нужно сделать это в реальном времени в видеопотоке, настоятельно рекомендуется использовать графический процессор. Вы также должны вставить oZone rateLimiter между видеовходом и моделью CNN. Вам действительно не нужно распознавать лица со скоростью 20 кадров в секунду. Достаточно 2–3 кадров в секунду, если только вы не пытаетесь выследить Усэйна Болта.

И вот как вы его используете:

Очень просто. Переключение между HOG и CNN — это просто вопрос конфигурации. Остальная часть вашего кода остается нетронутой. Наслаждаться!