Styczeń 2016 - Paweł Szabaciuk

Paweł Szabaciuk

Software Developer

Month: Styczeń 2016

Zdalny katalog z Raspberry PI pod Windows

Ponieważ ostatnio tworze dużo prostych programów oraz przymierzam się pomału do klienta webowego, pomyślałem sobie, że przydało by się zamontować katalog domowy z RaspberryPi pod Windows. Kopiowanie przez SCP jest przyjemne, ale w takim użytku jak potrzebuję obecnie nie do końca wygodne.
Continue reading

RaspberryPi 2 OpenCV 3.1.0

Pracując nad obecnym projektem pojawiła się potrzeba detekcji obiektów widzianych przez kamerę. Po dość krótkich poszukiwaniach znalazłem ciekawą propozycję: OpenCV. Jest to biblioteka do przetwarzania obrazu. Ma szeroki wachlarz wbudowanych funkcjonalności. Przykładowo: możemy dosłownie przy użyciu jednej linijki rozpoznać gdzie na zdjęciu są twarze.
Same opisy współpracy z RPi są dość stare i dotyczą głównie wersji dostępnej z repozytoriów (2.4) z wykorzystaniem Pythona. Nie lubię (nie znam :)) tego języka, więc postanowiłem wykorzystać natywne możliwości OpenCV czyli C++.

Przed rozpoczęciem budowania biblioteki musimy poinstalować trochę pakietów:

 Bash | 
 
 copy code |
?

1
sudo apt-get install build-essential
2
sudo apt-get install cmake cmake-curses-gui git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev checkinstall
3
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
4

Jeśli chcemy mieć możliwość używania OCR:
 Bash | 
 
 copy code |
?

1
sudo apt-get install tesseract-ocr tesseract-ocr-eng tesseract-ocr-pol libtesseract-dev

Teraz ściągamy kod źródłowy bierzącej wersji OpenCV oraz biblioteki Contrib:

 Bash | 
 
 copy code |
?

1
git clone https://github.com/Itseez/opencv.git
2
git clone https://github.com/Itseez/opencv_contrib.git

Wchodzimy do katalogu ze źródłami opencv:

 Bash | 
 
 copy code |
?

1
cd ~/opencv

Tworzymy katalog w którym odbywać się będzie kompilacja:
 Bash | 
 
 copy code |
?

1
mkdir release
2
cd release

Konfigurujemy budowanie:
 Bash | 
 
 copy code |
?

1
ccmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_OPENGL=ON ..

Ustawiamy ścieżkę do biblioteki Contrib:
 Bash | 
 
 copy code |
?

1
OPENCV_EXTRA_MODULES_PATH ../opencv_contrib

Włączamy też w przypadku RPi2 NEON.
Ja wyłączyłem budowanie przykładów, testów, testów wydajności oraz dokumentacji.
Zapisujemy konfigurację i kompilujemy. Przy użyciu RPi2 oczywiście jest to polecenie:
 Bash | 
 
 copy code |
?

1
make -j4

Czekamy na zakończenie (pomyślne) kompilacji. Potrwa to kilka h.
Następnie utworzymy sobie paczkę instalacyjną:
 Bash | 
 
 copy code |
?

1
sudo checkinstall

I na koniec:
 Bash | 
 
 copy code |
?

1
sudo nano /etc/ld.so.conf.d/opencv.conf

Wstawiamy linijkę: /usr/local/lib
 Bash | 
 
 copy code |
?

1
sudo ldconfig

I mamy skompilowane i zainstalowane OpenCV.

Teraz musimy ściągnąć i zainstalować OpenCV Userland. Jest to zestaw bibliotek specjalnie pod RaspberryPI.

 Bash | 
 
 copy code |
?

1
git clone https://github.com/raspberrypi/userland.git

I tutaj postępujemy analogicznie jak wyżej, przy kompilacji OpenCV.

Do testów użyjemy kamery podłączonej do interfejsu kamery na RPi. W tym celu dodajemy moduł:

 Bash | 
 
 copy code |
?

1
sudo nano /etc/modules
2
bcm2835-v4l2

Żeby nie restartować systemu:
 Bash | 
 
 copy code |
?

1
modprobe bcm2835-v4l2

I to wszystko. Możemy używać kamery standardowym mechanizmem OpenCV.

© 2018 Paweł Szabaciuk

Theme by Anders NorenUp ↑