ฉบับรวบรัดสำหรับมือใหม่ Copy แปะ ทำบน Raspberry pi 4 4GB OpenCV 4.1.1 และ Raspbian GNU/Linux 10 เราจะเรียนรู้ไปด้วยกัน!!
จริงๆ มีหลายคนเขียนไว้บ้าง เท่าที่ลองก็ยังมีปัญหาบ้าง คือ สำเร็จบ้าง ไม่สำเร็จบ้าง เลยเรียบเรียงลำดับพิธีที่ผมทำแล้วสำเสร็จเก็บไว้ เพราะตัวเองก็ต้องใช้ในวันข้างหน้าอีก :P
เริ่มต้นกันเลย
ถ้ากลัวว่า RAM ไม่พอก็เพิ่ม SWAP ไว้ก่อน อันนี้จะใช้หนักๆ ตอน link ขั้นตอนสุดท้ายของการ compile ถ้ามั่นใจว่า 4GB เอาอยู่ก็ข้ามขั้นตอนนี้ไปได้
sudo nano /etc/dphys-swapfile แล้วแก้ค่าดังนี้
CONF\_SWAPSIZE=2048 แล้ว stop และ start swap
sudo /etc/init.d/dphys-swapfile stop sudo /etc/init.d/dphys-swapfile start ติดตั้งทุกอย่างที่ต้องใช้
sudo apt update && sudo apt upgrade sudo apt install build-essential cmake unzip pkg-config libjpeg-dev libpng-dev libtiff-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libgtk-3-dev libcanberra-gtk\* libatlas-base-dev gfortran python3-dev python3-pip libfontconfig1-dev libcairo2-dev libgdk-pixbuf2.0-dev libpango1.0-dev libhdf5-dev libhdf5-serial-dev libhdf5-103 libatomic1-armhf-cross ติดตั้ง virtualenv ใช้ virtualenvwrapper ก็ง่ายดีนะ
sudo pip3 install virtualenv virtualenvwrapper ตั้งค่า default ให้ user ใช้ virtualenvwrapper
nano -w ~/.profile ใส่ค่า
# virtualenv and virtualenvwrapper export WORKON\_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER\_PYTHON=/usr/bin/python3 source /usr/local/bin/virtualenvwrapper.sh ใช้ค่าเพื่อใช้งานเลย
source ~/.profile สร้าง virtualenv สำหรับใช้งาน ชื่อ cv
mkvirtualenv cv -p python3 เมื่อสร้างเสร็จแล้วมันจะ active ให้อัตโนมัน แต่ถ้า เปิด shell ใหม่ หรือ เราระบบครั้งหน้าต้องใช้คำสั่ง
workon cv ติดตั้ง python numpy package สำหรับการ compile
pip install numpy Download OpenCV
wget -O opencv.zip [https://github.com/opencv/opencv/archive/4.1.1.zip](https://github.com/opencv/opencv/archive/4.1.1.zip) wget -O opencv\_contrib.zip [https://github.com/opencv/opencv\_contrib/archive/4.1.1.zip](https://github.com/opencv/opencv_contrib/archive/4.1.1.zip) แตก zip
unzip opencv.zip unzip opencv\_contrib.zip จะเปลี่ยนชื่อหรือไม่เปลี่ยนก็ได้ แต่ตอน config ใส่ path ของ contrib ให้ถูกก็พอ
mv opencv-4.1.1 opencv mv opencv\_contrib-4.1.1 opencv\_contrib เริ่มกระบวนการ config
cd opencv mkdir build cd build/ cmake -D CMAKE\_BUILD\_TYPE=RELEASE \ -D CMAKE\_INSTALL\_PREFIX=/usr/local \ -D OPENCV\_EXTRA\_MODULES\_PATH=~/opencv\_contrib/modules \ -D ENABLE\_NEON=ON \ -D ENABLE\_VFPV3=ON \ -D BUILD\_TESTS=OFF \ -D OPENCV\_ENABLE\_NONFREE=ON \ -D INSTALL\_PYTHON\_EXAMPLES=OFF \ -D CMAKE\_SHARED\_LINKER\_FLAGS='-latomic' \ -D BUILD\_EXAMPLES=OFF .. รอจนเสร็จถ้าไม่มีอะไรผิดพลาดต้อง successful นะ ฮาๆ เมื่อเสร็จแล้วก็ทำการ compile ใส่ -j4 ตามจำนวน cpu core จะได้เร็วๆ
time make -j4 ผมใช้ microSD ที่ขายพร้อมกันมากับ board จะใช้เวลาเกือบๆ ชั่วโมง แต่เคยลองกับ class 10 ดีๆ หน่อยก็ใช้เวลาลดลงมาหน่อย
ถ้ามีข้อผิดพลาดก็พยายามอ่านแล้วแก้ปัญหาดูครับ ฮาๆ แต่ถ้าสำเร็จก็ทำการ install
sudo make install sudo ldconfig ทำการ link lib ให้กับ virtualenv cv
cd ~/.virtualenvs/cv/lib/python3.7/site-packages/ ln -s /usr/local/lib/python3.7/site-packages/cv2/python-3.7/cv2.cpython-37m-arm-linux-gnueabihf.so cv2.so เป็นการเสร็จพิธีทดสอบ
python \>\>\> import cv2 \>\>\> cv2.\_\_version\_\_ '4.1.1' การใช้งานครั้งต่อไปอย่าลืม activate virtualenv ก่อนทุกครั้งนะครับ
workon cv ผมเอา code ตัวอย่างของ Python OpenCV มาทดสอบ
nano -w example.py Copy code ไปใส่
import numpy as np import cv2 cap = cv2.VideoCapture(0) while(True): ret, frame = cap.read() cv2.imshow('frame',frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() ก็ได้จะได้ประมาณนี้
หลังจากนี้จะตำยำทำแกงอะไรก็ได้ละ ขอให้มือใหม่สนุกกับผลไม้แสนอร่อย
อ้างอิง
https://www.pyimagesearch.com/2018/09/26/install-opencv-4-on-your-raspberry-pi/


Top comments (0)