Классические алгоритмы cv достаточно быстрые. Поиск метки на HD (1280х720) кадре и расчет позиции в 3D пространстве у меня занимет около 10мс на десктопе (комп. 2023г) и ~30мс на миникомпьютере Orange Pi Max. Кроме распознавания в это время входит обработка результатов различным фильтрами (медианный, Калман и т.п.) и отрисовка HUD (вывод результатов на кадре и отображение кадра). GPU не используется, все на CPU. Для большинства риалтайм приложений этого достаточно.
Погрешность сильно зависит от размера маркера и расстояния до него, разрешения камеры, что очевидно, а также доп. настроек алгоритма (например включение параметра субпиксельной точности при детекции AruCo маркера), точности калибровки камеры и точности соответствия реальных размеров распознанного объекта и переданных алгоритму для расчета. Также, если ваша камера или объект в движении, то будет играть роль выдержка камеры (смазанность движущегося объекта в кадре) и при наличии смазанности - тип затвора камеры (global shutter или rolling shatter).
Если используете один квадратный маркер, то будут проблемы определения перпендикуляра к маркеру, если смотреть строго с фронта. Отклонение по углу при взгляде сбоку будет на уровне 0.5 градусов, а в "фас" уже до 5 градусов.
Проводил экспериметы. Для двух маркеров размером 6х6 см точность сантиметровая на расстояниях до 2.5-3 метров, с камерой HD (1280х720). Дальше 3х метров маркер слишком мелкий для распознавания. Вот на видео один из экспериментов https://youtube.com/shorts/J3cVfUyGl9o?si=cRxSzjGsgyy25me1
Чтобы добиться уверенного позиционирования мне пришлось кроме перебора разных алгоритмов и настроек распознавания также обрабатывать результаты с помощью фильтра Калмана, без этого результаты были слишком шумными, особенно когда метка или камера в движении.
Как итог: между теорией и практическим внедрением этой технологии довольно большая пропасть. Но ничего сверх сложного здесь нет, просто отладка потребует времени и усилий.
Статья зацепила. Спасибо! Не знал, что столько разработчиков из России внесли свой вклад. Круто! Активно использую OpenCV в проектах. Прямо сейчас, во время чтения статьи, параллельно тренировался алгоритм (для беспилотного транспорта), определяющий позицию по метке с помощью камеры и OpenCV.
а почему решили поменять стандартный Relu на ELU? Это осознанный выбор, или результат экспериментов? Если нужна отрицательная часть, то логичнее выбирать sigmoid или linear, имхо
и еще вопрос. У вас на графиках робот начал ходить после 2000 "step", т.е. обработки состояния -> отправки команды? Или надо умножать на 4096 (количество сред)?
Tesseract давно отстал от нейронок. Также как классическое компьютерное зрение отстал от распознавания с помощью нейронок. Применение сугубо нишевое. Имхо.
Подождите полгода. Следующая нейронка обучится уже на этой статье, т.к. статья набрала плюсов, и правильно удовлетворит запрос про рецепт блюда из крыльев свиньи)
известная проблема. Нейронка ответит, даже если не знает ответ, то придумает. Поэтому gpt и подобные не годятся для "факт чекинга", вы сами должны проверять ответ. Если это код, проверяете работу кода. Если цитата - цитату.
На вопрос "как работать с информацией", чисто мое мнение, использовать для поиска идей и структурированя информации. Дальше прокачивать умение давать правильные промты.
Еще в ноябре 22г, когда первый раз попробовал chat-gpt (тогда ее открыли для всеобщего доступа), пришла в голову такая аналогия, что общение с gpt основано на навыке делегирования. Когда вы ставите задачу сотруднику, вы сначала помещаете его в правильный контекст, учитывая понимание его навыков и способностей. От этого сильно зависит результат его работы. Раньше это было как правильно составленный запрос в поисковике.
Запомните эту дату - ноябрь 2022г. После этого интернет перестал быть прежним. Лавинообразно произошло то, что 90% контента после этой даты делается нейронками....
Можно было еще упомянуть, что в бэке yolo ultralytics применяется не только CNN, но и трансформеры. Еще у них есть yolo-world. А yolov8 в отличие от yolov5 не поддерживает размер 1280 (только 640).
Инструмент rutube - перенести свой контент с ютуба. Чужой нет.
Но в рутуб и так есть большинство популярных роликов ютуба. Проблема, как написали ниже - интерктив. Вы не видите дату создания ролика (будет дата заливки на рутуб) и количество лайков, чтобы оценить какой ролик лучше смотреть. А для точечного просмотра да, подходит.
Хороший комментарий. Тоже думал об этом, когда делал. В моем случае сервис больше для мотивации пользоваться трекером, а не для оценки KPI. Т.к. есть проблема, что часть задач не заводятся в трекер. Еще хотел привязать дедлайны задач, чтобы "груз" краснел-перезревал, если сроки вышли. В итоге не стал заморачиваться. У нас небольшая команда, и вклад каждого в общий прогресс у всех на виду.
Классические алгоритмы cv достаточно быстрые. Поиск метки на HD (1280х720) кадре и расчет позиции в 3D пространстве у меня занимет около 10мс на десктопе (комп. 2023г) и ~30мс на миникомпьютере Orange Pi Max. Кроме распознавания в это время входит обработка результатов различным фильтрами (медианный, Калман и т.п.) и отрисовка HUD (вывод результатов на кадре и отображение кадра). GPU не используется, все на CPU. Для большинства риалтайм приложений этого достаточно.
Погрешность сильно зависит от размера маркера и расстояния до него, разрешения камеры, что очевидно, а также доп. настроек алгоритма (например включение параметра субпиксельной точности при детекции AruCo маркера), точности калибровки камеры и точности соответствия реальных размеров распознанного объекта и переданных алгоритму для расчета. Также, если ваша камера или объект в движении, то будет играть роль выдержка камеры (смазанность движущегося объекта в кадре) и при наличии смазанности - тип затвора камеры (global shutter или rolling shatter).
Если используете один квадратный маркер, то будут проблемы определения перпендикуляра к маркеру, если смотреть строго с фронта. Отклонение по углу при взгляде сбоку будет на уровне 0.5 градусов, а в "фас" уже до 5 градусов.
Проводил экспериметы. Для двух маркеров размером 6х6 см точность сантиметровая на расстояниях до 2.5-3 метров, с камерой HD (1280х720). Дальше 3х метров маркер слишком мелкий для распознавания. Вот на видео один из экспериментов https://youtube.com/shorts/J3cVfUyGl9o?si=cRxSzjGsgyy25me1
Чтобы добиться уверенного позиционирования мне пришлось кроме перебора разных алгоритмов и настроек распознавания также обрабатывать результаты с помощью фильтра Калмана, без этого результаты были слишком шумными, особенно когда метка или камера в движении.
Как итог: между теорией и практическим внедрением этой технологии довольно большая пропасть. Но ничего сверх сложного здесь нет, просто отладка потребует времени и усилий.
Статья зацепила. Спасибо! Не знал, что столько разработчиков из России внесли свой вклад. Круто!
Активно использую OpenCV в проектах. Прямо сейчас, во время чтения статьи, параллельно тренировался алгоритм (для беспилотного транспорта), определяющий позицию по метке с помощью камеры и OpenCV.
Смешная шутка
а почему решили поменять стандартный Relu на ELU? Это осознанный выбор, или результат экспериментов? Если нужна отрицательная часть, то логичнее выбирать sigmoid или linear, имхо
и еще вопрос. У вас на графиках робот начал ходить после 2000 "step", т.е. обработки состояния -> отправки команды? Или надо умножать на 4096 (количество сред)?
Статья интересная, спасибо.
А какого размера у вас нейронка управляет роботом, слоев/нейронов? Удивительно, что хватает обычной полносвязной сетки.
Tesseract давно отстал от нейронок. Также как классическое компьютерное зрение отстал от распознавания с помощью нейронок. Применение сугубо нишевое. Имхо.
Подождите полгода. Следующая нейронка обучится уже на этой статье, т.к. статья набрала плюсов, и правильно удовлетворит запрос про рецепт блюда из крыльев свиньи)
известная проблема. Нейронка ответит, даже если не знает ответ, то придумает. Поэтому gpt и подобные не годятся для "факт чекинга", вы сами должны проверять ответ. Если это код, проверяете работу кода. Если цитата - цитату.
На вопрос "как работать с информацией", чисто мое мнение, использовать для поиска идей и структурированя информации. Дальше прокачивать умение давать правильные промты.
Еще в ноябре 22г, когда первый раз попробовал chat-gpt (тогда ее открыли для всеобщего доступа), пришла в голову такая аналогия, что общение с gpt основано на навыке делегирования. Когда вы ставите задачу сотруднику, вы сначала помещаете его в правильный контекст, учитывая понимание его навыков и способностей. От этого сильно зависит результат его работы. Раньше это было как правильно составленный запрос в поисковике.
Запомните эту дату - ноябрь 2022г. После этого интернет перестал быть прежним. Лавинообразно произошло то, что 90% контента после этой даты делается нейронками....
Можно было еще упомянуть, что в бэке yolo ultralytics применяется не только CNN, но и трансформеры. Еще у них есть yolo-world. А yolov8 в отличие от yolov5 не поддерживает размер 1280 (только 640).
В целом статья интересная, спасибо.
На канал подписался.
Интересный обзор. Спасибо за материал. Всегда было интересно, как используются нейронки внутри строительных компаний.
Инструмент rutube - перенести свой контент с ютуба. Чужой нет.
Но в рутуб и так есть большинство популярных роликов ютуба. Проблема, как написали ниже - интерктив. Вы не видите дату создания ролика (будет дата заливки на рутуб) и количество лайков, чтобы оценить какой ролик лучше смотреть. А для точечного просмотра да, подходит.
Вы полностью правы!
Круто!
Интересно читать статью, в которой почти каждая ссылка у меня отображается бордовой (прочитанной) :)
Статья действительно интересная, спасибо.
Хороший комментарий. Тоже думал об этом, когда делал. В моем случае сервис больше для мотивации пользоваться трекером, а не для оценки KPI. Т.к. есть проблема, что часть задач не заводятся в трекер.
Еще хотел привязать дедлайны задач, чтобы "груз" краснел-перезревал, если сроки вышли. В итоге не стал заморачиваться. У нас небольшая команда, и вклад каждого в общий прогресс у всех на виду.
спасибо за положительный отзыв
минус один, но жирный. Железка 2017 года. Python по моему там 3.6 потолок. Не проверял, но подозреваю железяка уже end-of-sale или близка к этому.
С прошлого года есть Jetson nano orin. Заявлены x80 производительности к старому. Но и цена кусучая.
А учитывая текущие реалии я бы смотрел в сторону Orange Pi, кому нужна автономность.
Надеюсь эта статья не попадет в обучение следующих версий gpt