Найти в Дзене
Михеев Co&Ro

Машинное зрение

Приветствую, тема машинного зрения мне была интересна достаточно давно, но всегда считал ее слишком тяжелой, пока в один прекрасный день, поехав судить дисциплину «Будущие инженеры», в которой нужно было использовать такое зрение. Я не смог пообщаться с участниками и их тренерами после чего понял, что тема не такая страшная и сложная как я думал. Сразу после этого приобрел камеру и захотел поучаствовать в «Умной линии» И первый вопрос, что такое машинное зрение? Если загуглить, то нам выдадут страшное определение, но для понимания, можно сказать что Машинное зрение — это определение каких-либо объектов, цветов, форм и чего-то подобного при помощи компьютера. Еще раз, определение не совсем верное, но думаю дарит понимание. С определением более менее разобрались, теперь что я имел ввиду под «Умной линией»? Думаю, тут можно догадаться, что это линия, которую нужно пройти при помощи машинного зрения, но тут есть свои нюансы. Линия тут уже не совсем обычная, она может быт прерывистая, состо

Приветствую, тема машинного зрения мне была интересна достаточно давно, но всегда считал ее слишком тяжелой, пока в один прекрасный день, поехав судить дисциплину «Будущие инженеры», в которой нужно было использовать такое зрение. Я не смог пообщаться с участниками и их тренерами после чего понял, что тема не такая страшная и сложная как я думал. Сразу после этого приобрел камеру и захотел поучаствовать в «Умной линии»

И первый вопрос, что такое машинное зрение? Если загуглить, то нам выдадут страшное определение, но для понимания, можно сказать что

Машинное зрение — это определение каких-либо объектов, цветов, форм и чего-то подобного при помощи компьютера. Еще раз, определение не совсем верное, но думаю дарит понимание.

С определением более менее разобрались, теперь что я имел ввиду под «Умной линией»? Думаю, тут можно догадаться, что это линия, которую нужно пройти при помощи машинного зрения, но тут есть свои нюансы. Линия тут уже не совсем обычная, она может быт прерывистая, состоять из кружков или других линий(фото ниже)

Теперь мозги робота, ардуинка такие сложные вычисления не потянет и встает вопрос, что использовать? Этот вопрос у меня пропал в момент покупки камеры. На соревнованиях, которые я судил, большинство использовало камеру с микроконтроллером OpenMV h7 и исходя из отзывов участников, я остановился на ней. Но знаю, что можно использовать Raspberry Pi c любой камерой.

Теперь где программировать? Для данной камеры есть собственная среда разработки OpenMV ide, где по умолчанию скачаны библиотеки для работы с машинным зрением, что как раз и упрощает задачу. Что такое библиотека? Опят же только для понимания,

Библиотека — это сборник функций, объектов и просто кода других людей, благодаря им можно не создавать велосипед, а просто взять готовую функцию.

Все, у нас есть камера, нам есть где программировать, но что именно нам нужно запрограммировать, то есть какой алгоритм надо использовать, а для того, чтоб его придумать, нужно знать функции библиотек и вообще знать, что может делать камера. Тут мне помог один хороший канал, если захотите разобраться, советую посмотреть все видео про openMV: Dgtal1.

Какой алгоритм я все таки придумал? Сначала ищем два крупных цветовых пятна снизу поля зрения камеры, то есть около робота, находим их центры и соединяем. Дальше по углу наклона получившейся линии, относительно горизонтали, выдаю значение. Если немного проще, то я ищу угол наклона линии относительно робота.

Умножая получившееся число на вручную подобранный коэффициент, получаю П регулятор.Фото ниже (Вк слишком ухудшил качество фотки, но думаю, что она полезна)

-2

В чем плюс данного алгоритма? Ему все равно какая линяя, цельная, прерывистая, из кружочков или маленьких линий. Алгоритм будет отрабатывать(по крайней мере я так думаю), главное чтоб в поле зрения камеры попадало 2 пятна.

На этом пока все, на изучение камеры и написание этого алгоритма я потратил около 3-4 дней, поэтому думаю, что машинное зрение это не слишком сложно и освоить его может каждый, да и с изображением работать очень интересно. Дальше буду собирать самого робота и писать уже не П, а ПД или ПИД регулятор