Никакой магии, просто OpenCV
Столько всего говорили о CV и ни разу не сказали про OpenСV — old-school в AI и ML.
Библиотека была разработана в 2000 году группой энтузиастов из Intel. С тех пор она претерпела массу изменений, и теперь это не просто библиотека, а целая экосистема. И за этими двумя буквами — CV (computer vision) — стоят годы работы инженеров и огромного комьюнити, которое до сих пор её поддерживает.
OpenCV — это про кроссплатформенность. Не нужно выбирать между Windows, macOS или Linux. Хочешь — пиши на Python, хочешь — на C++, а можешь и на Java, если это твоя тема.
Ещё у неё есть поддержка для мобильных платформ:
Android
iOS
В общем, универсальная вещь, как швейцарский нож для ML-разработчика.
А под капотом что?
OpenCV написана на C++, а это значит, что она работает быстро.
Допустим, занимаешься ты каким-то реальным проектом, скажем, анализом видеопотока с камеры. Здесь важно, чтобы всё работало в реальном времени. OpenCV справляется с этим на ура, благодаря своим оптимизациям и низкоуровневому коду.
Библиотека может работать с изображениями и видео, как с массивами пикселей (по сути, матрицами), что делает её безумно мощной для всяких линейных операций. Например, можно легко перевести изображение в градации серого, наложить фильтры, изменить масштаб, поворот и кучу других вещей.
Ещё один важный момент — OpenCV легко интегрируется с другими популярными библиотеками.
Мы пишем на Python и используем NumPy — и OpenCV легко перекидывает данные между собой и NumPy, потому что оба используют одну и ту же структуру данных — массивы. Это значит, что можно сначала обработать изображение в OpenCV, а потом провести какие-то сложные математические операции в NumPy.
Чтобы добить тему, давай представим реальный кейс.
Скажем, ты решил сделать что-то эпичное, типа приложения, которое будет отслеживать лица в реальном времени и накладывать на них забавные фильтры.
Ты используешь OpenCV, чтобы захватить видеопоток, найти лицо с помощью детектора Хаара, а потом с помощью фильтров и всяких трансформаций накладываешь что-то вроде маски.
⤴️Весь этот процесс — это вполне реальная задача для джуна. При этом ты погружаешься в мир CV, узнаешь про обработку изображений, и в конце концов можешь с гордостью показать свой pet-проект.