Советы и хитрости#
Демонстрационный режим#
Демонстрационный режим позволяет вам продемонстрировать CMUcam4 без ведущего процессора. В демонстрационном режиме CMUcam4 выполняет команду «TW» (Track Window), а затем направляет два стандартных любительских сервопривода к отслеживаемому объекту, одновременно отображая отслеживаемый объект на стандартном телевизоре. Как только CMUcam4 входит в демонстрационный режим, она не выйдет из него до перезагрузки. Выполните шаги ниже, чтобы войти в демонстрационный режим:
Нажмите и удерживайте кнопку сброса на CMUcam4
Нажмите и удерживайте пользовательскую кнопку на CMUcam4
Отпустите кнопку сброса (не отпускайте пользовательскую кнопку)
Подождите, пока красный вспомогательный светодиод не загорится (2 секунды)
Подождите, пока красный вспомогательный светодиод не начнёт мигать с частотой 10 Гц, а затем отпустите пользовательскую кнопку
Телевизор должен включиться (вы должны увидеть заставку, отображаемую на телевизоре), если CMUcam4 подключён к телевизору
CMUcam4 теперь будет подстраиваться к условиям освещения в течение следующих 5 секунд
Не помещайте объект, который вы хотите отслеживать, перед CMUcam4 в течение следующих 5 секунд
Подождите, пока красный вспомогательный светодиод не перестанет мигать с частотой 10 Гц
CMUcam4 закончил подстройку к условиям освещения
Контакты сервоприводов панорамирования и наклона должны выдавать импульсы 1500 мкс с частотой 50 Гц
Поместите объект, который вы хотите отслеживать, перед CMUcam4 и нажмите пользовательскую кнопку
Если красный вспомогательный светодиод начинает мигать с частотой 10 Гц, проверьте подключение модуля камеры OV9665
Модуль камеры OV9665 может быть повреждён и, скорее всего, нуждается в замене
Теперь вы должны увидеть отслеживаемый объект (или подобное), отображаемый на телевизоре, если CMUcam4 подключён к телевизору
Сервоприводы панорамирования и наклона, если они подключены, также будут пытаться направлять камеру к отслеживаемому объекту
Пожалуйста, попробуйте эту процедуру с разными объектами в разных условиях, чтобы понять, что работает лучше всего
CMUcam4 теперь работает в демонстрационном режиме
Нажмите кнопку сброса, чтобы выйти из демонстрационного режима.
Для неинвертированной работы сервопривода панорамирования длительности импульсов менее 1500 мкс должны перемещать положение X модуля камеры вправо (с точки зрения модуля камеры), а длительности импульсов более 1500 мкс должны перемещать положение X модуля камеры влево (с точки зрения модуля камеры).
Для неинвертированной работы сервопривода наклона длительности импульсов менее 1500 мкс должны перемещать положение Y модуля камеры вниз (с точки зрения модуля камеры), а длительности импульсов более 1500 мкс должны перемещать положение Y модуля камеры вверх (с точки зрения модуля камеры).
Режим останова#
Режим останова позволяет вам остановить CMUcam4, оставаясь подключённым к Arduino. В режиме останова CMUcam4 потребляет очень мало энергии и не мешает программированию Arduino, блокируя его последовательный порт. Режим останова необходим только если CMUcam4 мешает процессу программирования Arduino. Если не мешает, то режим останова не нужен — обычно так и бывает. Как только CMUcam4 входит в режим останова, она не выйдет из него до перезагрузки. Выполните шаги ниже, чтобы войти в режим останова:
Нажмите и удерживайте кнопку сброса на CMUcam4
Нажмите и удерживайте пользовательскую кнопку на CMUcam4
Отпустите кнопку сброса (не отпускайте пользовательскую кнопку)
Подождите, пока красный вспомогательный светодиод не загорится (2 секунды)
Отпустите пользовательскую кнопку
CMUcam4 теперь остановлен на неопределённое время
Нажмите кнопку сброса, чтобы выйти из режима остановки.
Замечания по улучшению отслеживания#
Улучшенное отслеживание с автоусилением и балансом белого#
Автоусиление — это внутренний регулятор, который подстраивает уровень яркости изображения так, чтобы наилучшим образом соответствовать окружающей обстановке. Оно пытается нормализовать светлые и тёмные участки изображения так, чтобы они приближались к общей яркости изображения, отрегулированного вручную. Этот процесс повторяется на протяжении многих кадров, пока камера автоматически подстраивает уровни яркости. Если, например, включить свет и обстановка станет ярче, камера попытается подстроить яркость, чтобы затемнить общее изображение.
Баланс белого, с другой стороны, пытается скорректировать усиления цвета камеры. Окружающий свет в вашем изображении может не быть чисто белым. В этом случае камера будет видеть цвета по-другому. Камера начинает с начального предположения о том, сколько усиления дать каждому цветовому каналу. Если баланс белого активен, он будет корректировать эти усиления от кадра к кадру так, чтобы средний цвет в изображении приближался к серому цвету. Эмпирически было обнаружено, что этот метод «серого мира» работает относительно хорошо. Проблема с балансом белого серого мира в том, что если сплошной цвет заполняет поле зрения камеры, баланс белого будет медленно устанавливать усиления так, чтобы цвет казался серым, а не своим истинным цветом. Затем, когда сплошной цвет убирается, изображение будет иметь нежелательные усиления цвета, пока оно не восстановит своё серое среднее.
При отслеживании цветов, как в демонстрационном режиме, вы можете захотеть позволить автоусилению и балансу белого поработать в течение короткого периода, а затем отключить их. Будучи включённой на период около 5 секунд, камера может установить усиление яркости и усиления цвета в соответствии с тем, что она считает подходящим. Затем их отключение остановит камеру от ненужного изменения своих настроек из-за объекта, удерживаемого близко к объективу, теней и т. п. Если автоусиление и баланс белого не были отключены, и камера изменила свои настройки для значений RGB или YCbCr, то новые измеренные значения могут выйти за пределы изначально выбранных порогов отслеживания цвета.
Модуль камеры требует включения автоусиления для использования баланса белого.
Цветовое пространство YUV (YCbCr)#
YCbCr — это определение цветового пространства, отличное от более широко известного пространства RGB. В YCbCr данные освещения хранятся в отдельном канале. Из-за этого свойства в режиме YCbCr камера может быть более устойчивой к изменениям освещения. Поскольку это другое цветовое пространство, изображения в YCbCr не выглядят как стандартные изображения RGB при прямом отображении программой дампа кадров. Каналы RGB отображаются на CrYCb. Так что в режиме YCbCr значение, возвращаемое как параметр красного, на самом деле является Cr, параметр зелёного — Y, а параметр синего — Cb. Поэтому, если вы хотите отслеживать красный объект, вам нужно посмотреть на дамп кадра, чтобы увидеть, на какие цвета отображаются цвета этого объекта в YCbCr. После этого должно быть возможно найти границы Cb и Cr, задав при этом очень свободную границу Y, показывающую, что освещение не очень важно. При использовании YCbCr обязательно учитывайте, что с точки зрения всего ввода-вывода CMUcam4 красный отображается на Cr, зелёный на Y, а синий на Cb.
Обратите внимание, что каналы RGB отображаются так, чтобы дать вам CrYCb, а не YCbCr.
О модуле камеры#
С момента включения камере может потребоваться до 5 секунд для автоматической подстройки под освещение. Резкие изменения обстановки, например включение и выключение света, могут вызвать аналогичное время повторной подстройки. При использовании камеры на улице из-за мощного ИК-излучения солнца, даже в относительно облачные дни, вероятно, потребуется использовать либо ИК-фильтр, либо нейтральный светофильтр камеры для снижения уровня окружающего света.
Функции, предоставляемые платой камеры, призваны дать пользователю набор инструментов функций цветового зрения. Реальные приложения могут сильно различаться и оставлены на воображение пользователя. Возможность изменять видимое окно, собирать статистику цвета и света и отслеживать цвета может быть переплетена управляющим процессором для создания функциональности более высокого уровня.