roboforum.ru

Технический форум по робототехнике.
Текущее время: 05 май 2025, 19:05

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: MR3020 + MJPG-Streamer + OpenCV
СообщениеДобавлено: 21 янв 2013, 18:19 
Не в сети

Зарегистрирован: 02 ноя 2012, 23:46
Сообщения: 152
Откуда: SPB
всем привет.
я видел, подобные тему тут уже есть, но решил создать новую так как в ней попытаюсь выяснить и оформить все аспекты сабжа.
надеюсь мне в этом помогут все знающие форумчане.

вобщем у меня ситуация наверное обычная - я наигрался в доволь с pan-tilt камерой прикрученной к MR3020 через arduino и пару сервов и теперь хочу научить ее следить за какимто движущимся объектом. Поиски решения привели меня сюда.
Я уже понял, что нужно использовать OpenCV - это софт который должен получать изображения из некого источника, обрабатывать и анализировать его какимто образом, для опеределения искомого изображения.
Далее нужен софт который на основе полученной информации должен управлять сервами через ардуино - центрировать камеру на изображении.
Причем, с учетом того, что MR3020 достаточно слабый девайс, на нем не получится полноценно реализовать распознавание изображения. К тому же, насколько я пока понял, OpenCV умеет обрабатывать видео из камеры, которая подключена непосредственно к компьютеру, на котором установлен этот OpenCV.
у меня же задача "скормить" на обработку OpenCV видео, которое стримает MR3020 с помощью mjpg-streamer и оно доступно в виде URL.
Судя по всему это можно сделать, но что конкретно нужно сделать - я пока не пойму.
Буду рад дельным советам.
У меня есть комп с Ubuntu 12 на котором я хочу установить OpenCV и передавать ему на обработку этот стрим из MR3020.
Далее из этого компа нужно отправлять команды для arduino - это наверное будет проще. У меня есть чтото вроде странички с отображением видео + несколько контролов для управления сервами.
Главное научится передавать видео в OpenCV и обрабатывать его.
Прошу совета.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MR3020 + MJPG-Streamer + OpenCV
СообщениеДобавлено: 21 янв 2013, 20:00 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
Из mjpeg-streamer можно получить не только поток, но и просто отдельный кадр, что для видеообработки актуальнее. Надо обратиться по url http://<ip>:<port>?action=snapshot и получить оттуда одиночный jpg файл


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MR3020 + MJPG-Streamer + OpenCV
СообщениеДобавлено: 21 янв 2013, 20:12 
Не в сети

Зарегистрирован: 02 ноя 2012, 23:46
Сообщения: 152
Откуда: SPB
спасибо ! я это видел в смежных темах..
видимо OpenCV будет "дергать" такие снапшоты достаточно часто, чтобы face-tracking был в более менее реальном времени..

Я бы хотел еще попросить рассказать как настроить такую связку.. сам environment..
достаточно ли скачать тарбол с OpenCV на Linux или нужно качать исходники и компилировать ?
просто нигде не вижу такого пошагового мануала, как начинать работу в этой системе..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MR3020 + MJPG-Streamer + OpenCV
СообщениеДобавлено: 21 янв 2013, 21:35 
Не в сети
Аватара пользователя

Зарегистрирован: 21 май 2007, 22:57
Сообщения: 600
Откуда: Калининград
прог. языки: C++
можно ставить готовые либы, но если есть желание, то можно и скомпилировать :)
мануалы тут, класс для OpenCV для захвата mjpg-streamer тут, а пример реализации компьютерного зрения на самом роутере здесь ;)

_________________
RoboCraft.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MR3020 + MJPG-Streamer + OpenCV
СообщениеДобавлено: 22 янв 2013, 01:17 
Не в сети

Зарегистрирован: 02 ноя 2012, 23:46
Сообщения: 152
Откуда: SPB
а разве есть для Linux чтото готовое ? я вот счас чтото компилирую.. надеюсь скоро закончится.
и что нужно сделать с этим классом (кстати со странички по ссылке скачивать вроде нечего) ?
про tinyсv я читал уже, но совсем не понял как это можно применить в моем случае.. тем более это на роутере.. он де слабый для таких задач..

или я неправильно полагаю, что можно запустить на MR3020 mjpg-streamer, а на linux машине с установленным OpenCV ловить этот стрим по вебу и обрабатывать его на этом же компе (он же мощнее !), а после обработки уже принимать решение куда поворачивать камеру и отправлять команды на MR3020->arduino тоже по сети.
Нужны детали, конкретика.. что куда подставить чтобы заработало хоть както, ибо я пока не могу понять концепцию этой магии..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MR3020 + MJPG-Streamer + OpenCV
СообщениеДобавлено: 22 янв 2013, 01:24 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
d00m писал(а):
тем более это на роутере..

На роутере - дохлый номер. Мозгов мало слишком, слишком медленный проц и мало памяти. Распберри, которая быстрее в 2-3 раза и то еле шевелится под opencv.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MR3020 + MJPG-Streamer + OpenCV
СообщениеДобавлено: 22 янв 2013, 08:13 
Не в сети
Аватара пользователя

Зарегистрирован: 21 май 2007, 22:57
Сообщения: 600
Откуда: Калининград
прог. языки: C++
d00m писал(а):
а разве есть для Linux чтото готовое ?

разумеется, уже есть готовые пакеты
d00m писал(а):
и что нужно сделать с этим классом (кстати со странички по ссылке скачивать вроде нечего) ?

гм... его можно использовать - в скачивание я ничего не забрасывал, но в исходниках есть ;)

d00m писал(а):
запустить на MR3020 mjpg-streamer, а на linux машине с установленным OpenCV ловить этот стрим по вебу и обрабатывать его на этом же компе (он же мощнее !), а после обработки уже принимать решение куда поворачивать камеру и отправлять команды на MR3020->arduino тоже по сети.

да, именно так.

_________________
RoboCraft.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MR3020 + MJPG-Streamer + OpenCV
СообщениеДобавлено: 23 янв 2013, 14:03 
Не в сети

Зарегистрирован: 02 ноя 2012, 23:46
Сообщения: 152
Откуда: SPB
Цитата:
гм... его можно использовать - в скачивание я ничего не забрасывал, но в исходниках есть


я не могу найти эти исходники.
и как его нужно использовать ? можешь объяснить по человечески ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MR3020 + MJPG-Streamer + OpenCV
СообщениеДобавлено: 23 янв 2013, 18:16 
Не в сети
Аватара пользователя

Зарегистрирован: 21 май 2007, 22:57
Сообщения: 600
Откуда: Калининград
прог. языки: C++
d00m писал(а):
я не могу найти эти исходники.

вот заголовочный файл, вот cpp-ник.
а вот пример использования :)

_________________
RoboCraft.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MR3020 + MJPG-Streamer + OpenCV
СообщениеДобавлено: 24 янв 2013, 00:39 
Не в сети

Зарегистрирован: 02 ноя 2012, 23:46
Сообщения: 152
Откуда: SPB
аригато годзаимас ! (спасибо тоесть :) )

я так понял нужно сказать все три в один каталог и скомпилировать третий файл ?
я делаю это под Linux.. наверное опять нужно создать makefile..
а чем отличается video_capture_test2.cpp от video_capture_test.cpp ? :)

Добавлено спустя 19 минут 53 секунды:
#include "orv/orv.h"
и где брать этот хедер ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MR3020 + MJPG-Streamer + OpenCV
СообщениеДобавлено: 24 янв 2013, 08:37 
Не в сети
Аватара пользователя

Зарегистрирован: 21 май 2007, 22:57
Сообщения: 600
Откуда: Калининград
прог. языки: C++
d00m писал(а):
#include "orv/orv.h"
и где брать этот хедер ?

там же :)
хотя, можно и не тащить всю библиотеку, а взять только нужное для работы с MJPG-Streamer.

_________________
RoboCraft.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MR3020 + MJPG-Streamer + OpenCV
СообщениеДобавлено: 24 янв 2013, 12:49 
Не в сети

Зарегистрирован: 02 ноя 2012, 23:46
Сообщения: 152
Откуда: SPB
чет пока не получается скомпилировать.
постоянно не хватает какихто хедеров.
видимо нужно все вместе скачать, иначе никак..

я сделал checkout всего репозитария.
каталог orv находится в include
поэтому для проверки компиляции просто записал ваши примеры туда же:
Код:
root@linux:~/opencv/openrobovision-read-only/OpenRoboVision/include# ls -la
total 32
drwxr-xr-x 3 root root 4096 Jan 24 12:56 .
drwxr-xr-x 9 root root 4096 Jan 24 12:38 ..
-rw-r--r-- 1 root root 6389 Dec 16 21:46 camera_mjpg.cpp
-rw-r--r-- 1 root root 3044 Dec 16 21:46 camera_mjpg.h
-rw-r--r-- 1 root root  240 Jan 22 22:24 Makefile
drwxr-xr-x 5 root root 4096 Jan 24 12:38 orv
-rw-r--r-- 1 root root 2301 Jan 24 12:41 test.cpp


test.cpp это ваш пример, я его переименовал для удобства - у меня makefile для него настроен:
Код:
root@linux:~/opencv/openrobovision-read-only/OpenRoboVision/include# cat Makefile
CC=g++
CFLAGS=-I/usr/local/include/opencv -L/usr/local/lib
OBJECTS=
LIBRARIES=-lopencv_core -lopencv_imgproc -lopencv_highgui

.PHONY: all clean

all:    test

test:
        $(CC) $(CFLAGS) -o test test.cpp $(LIBRARIES)

clean:
        rm -f *.o


ну делаю make и получаю странную ошибку:
Код:
root@linux:~/opencv/openrobovision-read-only/OpenRoboVision/include# make
g++ -I/usr/local/include/opencv -L/usr/local/lib -o test test.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui
In file included from test.cpp:9:0:
orv/vision/camera_mjpg.h:14:32: fatal error: orv/system/network.h: No such file or directory
compilation terminated.
make: *** [test] Error 1


как видите - в хедере camera_mjpg.h инклюдается network.h с неверным path относительно себя:
Код:
#include "orv/system/network.h"


хотя файл camera_mjpg.h сам находится в orv..
чет я не пойму как оно все собирается вместе..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MR3020 + MJPG-Streamer + OpenCV
СообщениеДобавлено: 24 янв 2013, 14:01 
Не в сети
Аватара пользователя

Зарегистрирован: 21 май 2007, 22:57
Сообщения: 600
Откуда: Калининград
прог. языки: C++
если удалось скачать все исходники, то там уже есть мейкфайлы.
examples никуда перемещать не требуется - нужно перейти в тот каталог и выполнить make
так просто переместить файлы camera_mjpg.* не получится - там же есть зависимость от класса Socket и базового класса :)

_________________
RoboCraft.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MR3020 + MJPG-Streamer + OpenCV
СообщениеДобавлено: 24 янв 2013, 16:24 
Не в сети

Зарегистрирован: 02 ноя 2012, 23:46
Сообщения: 152
Откуда: SPB
аа. я то думал, что достаточно скачать ваши примеры (те три файла что были выше) и их получится скомпилировать..

ну кстати и компиляция в каталоге examples не проходит, заканчивается на этом:

root@linux:~/opencv/openrobovision-read-only/OpenRoboVision/examples# make
make -C ..
make[1]: Entering directory `/root/opencv/openrobovision-read-only/OpenRoboVision'
make -C ./src
make[2]: Entering directory `/root/opencv/openrobovision-read-only/OpenRoboVision/src'
make -C ./system
make[3]: Entering directory `/root/opencv/openrobovision-read-only/OpenRoboVision/src/system'
g++ -I. -I../../include -I../../include/system -DLINUX=1 -c -o config_parser.o config_parser.cpp -lpthread -lrt
g++ -I. -I../../include -I../../include/system -DLINUX=1 -c -o console.o console.cpp -lpthread -lrt
g++ -I. -I../../include -I../../include/system -DLINUX=1 -c -o crypto.o crypto.cpp -lpthread -lrt
g++ -I. -I../../include -I../../include/system -DLINUX=1 -c -o log.o log.cpp -lpthread -lrt
g++ -I. -I../../include -I../../include/system -DLINUX=1 -c -o mutex.o mutex.cpp -lpthread -lrt

...............

test_videoreader.cpp:7:17: fatal error: orv.h: No such file or directory
compilation terminated.
make: *** [test_videoreader.o] Error 1

специально удалил и заново сделал чекаут
svn checkout http://openrobovision.googlecode.com/svn/trunk/ openrobovision-read-only

Добавлено спустя 13 минут 37 секунд:
хотя вроде чтото собирается.. появились какието бинарники..
но как раз video_capture_test и video_capture_test2 не скомпилировались ) это наверное карма ))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MR3020 + MJPG-Streamer + OpenCV
СообщениеДобавлено: 24 янв 2013, 17:07 
Не в сети
Аватара пользователя

Зарегистрирован: 21 май 2007, 22:57
Сообщения: 600
Откуда: Калининград
прог. языки: C++
угу - мой косяк :)
просто отредактируйте test_videoreader.cpp и замените #include "orv.h" на #include "orv/orv.h"
или ещё проще - наберите make video_capture_test2.cpp

_________________
RoboCraft.ru


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO