Sử dụng Raspberry pi 3 B và OpenCV3. Khởi động Raspberry, vào Menu > Preferences > Raspberry Pi Configuration > Interfaces. Chúng ta sẽ thấy VNC. Đặt nó sang chế độ Enabled. Một khi VNC đuợc bật, khi khơi động lần sau nó sẽ tự động chạy.
Trước khi chúng ta có thể gán IP cho Raspberry Pi, phải đảm bảo rằng DHCPCD đã được kích hoạt:
sudo service dhcpcd status
Nếu chưa, kích hoạt DHCPCD như sau:
sudo service dhcpcd start
sudo systemctl enable dhcpcd
Tiếp tục chỉnh sửa phần DHCPCDs, mở configuration file /etc/dhcpcd.conf và chạy lệnh sau:
sudo nano /etc/dhcpcd.conf
Để gán IP cho Raspberry Pi, sử dụng lệnh ‘static ip_address=’ theo sau là địa chỉ IPv4 và hậu tố ‘/24’ (viết tắt của subnet mak 255.255.255.0). Ví dụ, nếu ta cần IPv4 192.168.0.4, thì ta cần sử dụng ‘static ip_address=192.168.0.4/24’.
interface eth0
static ip_address=192.168.0.4/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
Cài đặt sử dụng toàn bộ thẻ nhớ dung lượng lớn.
$ sudo raspi-config
$ sudo reboot
Kiểm tra lại:
$ df -h
Nếu thẻ 8GB thì chúng ta có thể sử dụng hết 50% nên có thể loại bỏ LibreOffice và Wolfram:
$ sudo apt-get purge wolfram-engine
$ sudo apt-get purge libreoffice*
$ sudo apt-get clean
$ sudo apt-get autoremove
Bước đầu tiên là cập nhật phần mềm:
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install build-essential cmake pkg-config
$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev
$ sudo apt-get install libgtk2.0-dev libgtk-3-dev
$ sudo apt-get install libatlas-base-dev gfortran
$ sudo apt-get install python2.7-dev python3-dev
Tải opencv
$ cd ~
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/4.5.4.zip
$ unzip opencv.zip
$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/4.5.4.zip
$ unzip opencv_contrib.zip
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
$ sudo python3 get-pip.py
Nên sử dụng môi trường ảo Python
$ sudo pip install virtualenv virtualenvwrapper
$ sudo rm -rf ~/.cache/pip
Cập nhật ~/.profile :
$ echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.profile
$ echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile
$ echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile
$ echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile
$ source ~/.profile
Chú ý: nên chạy lại source ~/.profile mỗi lần khởi động phần làm việc
$ mkvirtualenv cv -p python2
$ mkvirtualenv cv -p python3
Các gói Python trong thư mục tổng sẽ không có trong vùng ảo. Tương tự, các gói cài trong vùng ảo sẽ không khả dụng trong vùng tổng.
$ source ~/.profile
$ workon cv
Để kiểm tra vùng ảo, nếu thấy (cv) phía trước chỉ mục nghĩa là đang trong vùng ảo.
Giờ ta đang ở trong vùng ảo
$ pip install numpy
$ cd ~/opencv-4.5.4/
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-4.5.4/modules \
-D BUILD_EXAMPLES=ON ..
Mở /etc/dphys-swapfile và sửa CONF_SWAPSIZE
# CONF_SWAPSIZE=100
CONF_SWAPSIZE=1024
Khởi động lại swapfile
$ sudo /etc/init.d/dphys-swapfile stop
$ sudo /etc/init.d/dphys-swapfile start
Cuối cùng ta biên dịch OpenCV
$ make -j4
$ sudo make install
$ sudo ldconfig
Sau đó, OpenCV + Python sẽ được cài trong /usr/local/lib/python3.5/site-packages/abcxyz . Kiểm tra lại bằng lệnh ls
Đổi tên
$ cd /usr/local/lib/python3.5/site-packages/abcxyz
$ sudo mv cv2.cpython-35m-arm-linux-gnueabihf.so cv2.so
$ cd ~/.virtualenvs/cv/lib/python3.5/site-packages/abcxyz
$ ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so
Mở terminal
$ source ~/.profile
$ workon cv
$ python
>>> import cv2
>>> cv2.__version__
‘4.5.4’
>>>
Một khi OpenCV được cài, ta có thể xóa opencv-4.5.4 and opencv_contrib-4.5.4 để tiết kiệm dung lượng
$ rm -rf opencv-4.5.4 opencv_contrib-4.5.4
Đừng quên đổi lại swap size
Mở /etc/dphys-swapfile và sửa CONF_SWAPSIZE
CONF_SWAPSIZE=100
# CONF_SWAPSIZE=1024
$ sudo /etc/init.d/dphys-swapfile stop
$ sudo /etc/init.d/dphys-swapfile start
Như vậy là xong