Pull to refresh

Comments 11

Вы в выводах верно заметили, что в реальных условиях все никогда не работает, как должно — и это касается не только вашей комнаты, но и места проведения соревнований. Например, в какой-то год финал кубка РТК проходил в павильоне ВДНХ с громадными витражными окнами, ближе к вечеру солнце светило аккурат в камеры роботов, засвечивая все, что можно (мы участвовали в другом соревновании по-соседству). Предположу, что вайфай в условиях тысячи устройств в одном помещении скорее всего тоже не будет работать также хорошо, как у вас дома.
Да, Suzuki85 (85 — это, предсказуемо, год издания) — это ссылка на список литературы, сам источник располагается внизу страницы с документацией opencv: https://docs.opencv.org/2.4/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html#id3

По поводу вайфай: Точки доступа, которые я использовал помимо очень большой мощности еще и работают на частоте 5Ггц, поэтому обычный вайфай на 2.4Ггц возможно и не будет так сильно сказываться на работе. Более того, конкретно эта модель уже была испытана в условиях конкретно этих соревнований и особых нареканий по поводу ее работы я не слышал. Если бы не ковид, я бы проверил лично и наличие тысяч точек, и влияние окон ВДНХ, но с этим не сложилось. Из идей для более эффективного детектирования линии есть пока использование адаптивных алгоритмов бинаризации вкупе с фильтрацией цветовых пятен по положению в кадре — если на картинке есть два объекта, но один находится ближе к роботу, а другой — где-то около края (даже если он больше по площади), то линией считать центральный, ведь в условиях соревнований зона с линией преимущественно «чистая».

Пожалуйста перестаньте советовать собирать OpenCV из исходного кода на RPI. Всё равно неправильно (не включен NEON в данной статье, ну или по крайней мере этого не видно из скриншота summary во время выполнения CMake шага). Если нужен OpenCV на Python и не требуется самого нового функционала, используйте pip.

я в статье этот момент упустил, так что скажу здесь. Я пришел к тому, что нужно ставить opencv из исходников просто из-за отсутствия альтернатив — в какой-то момент я пытался поставить библиотеку, на что pip мне отвечал что-то вроде «couldn't find version that satisfies the requirement ..». Поэтому я и включил этот этап в проект, как наиболее надежный с моей точки зрения. Я не спорю что мог ошибиться, ведь эту конфигурацию я писал сам, когда понял, что готовые варианты либо крашились на самых разных этапах установки, либо не содержали в себе нужных мне пакетов, например, gstreamerА. Параметры же я смотрел здесь, руководствуясь потом методом проб и ошибок. После установки у себя я пометил эту конфигурацию как правильную по логике «работает же». Если там и правда ошибка, то буду очень благодарен если вы предложите правильный вариант для конфигурации, а я бы исправил текст статьи.

Если сборка через Docker (так или так) не подходит, то проверьте хотябы что выставлены
-DCPU_BASELINE=NEON -DENABLE_NEON=ON


и CMake понимает их:


CPU/HW features:
  Baseline:                    NEON
  required:                  NEON
  disabled:                  VFPV3

Плюс, вы сами написали:


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

Это конечно не так, отключение модулей никак не сказывается на производительности. На то она и модульная структура. Но вот на скорости сборки и количестве результирующих библиотек можно сэкономить. Просто укажите флагом только те модули, которые действительно нужны (-DBUILD_LIST=core,imgproc например).

Как ведет себя сборка openCV на RPi если собрать без этой опции?

Спасибо! Видите также строчку


OpenCV modules
    to be built:

?


Так вот если вы точно знаете, что такие модули как dnn, gapi, features2d вами не используются, то зачем строить? Собирайте только то, что нужно, -DBUILD_LIST опция во времят CMake.

Спасибо, интересно.
КДПВ напомнила старую байку о дорожном рабочем, решившем заглянуть в отказавший лазерный проектор со стороны излучения, а тот возьми и включись. Рабочий получил ожог сетчатки в виде делений шкалы с цифрами, с которым через пару дней обратился к окулисту. Окулист, исследовав глазное дно пациента, вылетел из кабинета с криком «Терминатор!».
Sign up to leave a comment.

Articles