
OpenCV3 บนบอร์ด Raspberry Pi3 + Raspbian Jessie(Python2.7) กันแบบ Step by Step กันนะครับ(สำหรับ Python3 รอบทความหน้านะครับ) และจะมาแนะนำวิธีใช้งานในบทความถัดไป :) :) :)
1. Expand filesystem (ขยายขนาด SD Card บน RPI ให้ได้ขนาดความจุสูงสุด)
1.1 เข้าโหมดตั้งค่า RPI >> Advanced Options >> กด Enter
sudo raspi-config
เลือก OK >> กด Enter
เลือก Finish >> กด Enter
เลือก Yes >> กด Enter เพื่อ Reboot
หลังการ Restart เช็คพื้นที่ใน RPI ว่าถูกขยายพื้นที่จนเต็มหรือยัง
df -h
จะเห็นว่าผู้เขียนใช้ SD Card 16 GB ตอนนี้ยังไม่ได้ลง OpenCV เลยแต่พื้นที่ถูกใช้ไปแล้วถึง 39% ฉะนั้นจึงต้องเพิ่มพื้นที่ว่างให้กับ RPI โดยการลบโปรแกรมที่ไม่ได้ใช้งาน
sudo apt-get purge wolfram-engine
2. Install dependencies
2.1ทำการอัพเดทระบบปฏิบัติการ
2.2 ติดตั้งเครื่องมือที่จำเป็นรวมถึง CMake ซึ่งต้องใช้ในขั้นตอนการ build OpenCV
2.3 ติดตั้งแพคเกจ อินพุท/เอาท์พุตของรูปภาพเพื่อให้เรานำเข้าภาพนามสกุลต่างๆได้ เช่น JPEG, PNG, TIFF ฯลฯ
2.4 ติดตั้งแพคเกจ อินพุท/เอาท์พุตสำหรับวิดีโอ
2.5 ไลบรารี OpenCV มาพร้อมกับโมดูลย่อยชื่อ highgui ซึ่งใช้เพื่อแสดงภาพไปยังหน้าจอของเราและสร้าง GUI ขั้นพื้นฐาน ในการรวบรวมโมดูล highgui เราจำเป็นต้องติดตั้งไลบรารีการพัฒนา GTK
2.6 เพิ่มประสิทธิภาพการดำเนินงานภายในของ OpenCV เช่นการดำเนินการเมทริกซ์ โดยการติดตั้ง dependencies เพิ่มเติม
2.7 ไลบรารีการเพิ่มประสิทธิภาพเหล่านี้มีความสำคัญอย่างยิ่งสำหรับอุปกรณ์ที่มีทรัพยากรจำกัดเช่น Raspberry Pi
สุดท้ายเรามาติดตั้งเฮดเดอร์ไฟล์ทั้ง Python 2.7 และ Python 3 เพื่อให้เราสามารถคอมไพล์ OpenCV ด้วย Python bindings ได้
sudo apt-get update && sudo apt-get upgrade -y2.2 ติดตั้งเครื่องมือที่จำเป็นรวมถึง CMake ซึ่งต้องใช้ในขั้นตอนการ build OpenCV
sudo apt-get install build-essential cmake pkg-config2.3 ติดตั้งแพคเกจ อินพุท/เอาท์พุตของรูปภาพเพื่อให้เรานำเข้าภาพนามสกุลต่างๆได้ เช่น JPEG, PNG, TIFF ฯลฯ
sudo apt-get install build-essential cmake pkg-config2.4 ติดตั้งแพคเกจ อินพุท/เอาท์พุตสำหรับวิดีโอ
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-devsudo apt-get install libxvidcore-dev libx264-dev2.5 ไลบรารี OpenCV มาพร้อมกับโมดูลย่อยชื่อ highgui ซึ่งใช้เพื่อแสดงภาพไปยังหน้าจอของเราและสร้าง GUI ขั้นพื้นฐาน ในการรวบรวมโมดูล highgui เราจำเป็นต้องติดตั้งไลบรารีการพัฒนา GTK
sudo apt-get install libgtk2.0-dev2.6 เพิ่มประสิทธิภาพการดำเนินงานภายในของ OpenCV เช่นการดำเนินการเมทริกซ์ โดยการติดตั้ง dependencies เพิ่มเติม
sudo apt-get install libatlas-base-dev gfortran2.7 ไลบรารีการเพิ่มประสิทธิภาพเหล่านี้มีความสำคัญอย่างยิ่งสำหรับอุปกรณ์ที่มีทรัพยากรจำกัดเช่น Raspberry Pi
สุดท้ายเรามาติดตั้งเฮดเดอร์ไฟล์ทั้ง Python 2.7 และ Python 3 เพื่อให้เราสามารถคอมไพล์ OpenCV ด้วย Python bindings ได้
sudo apt-get install python2.7-dev python3-dev
3. ดาวน์โหลดซอร์สโค้ดของ OpenCV
3.1 โหลดตัวโปรแกรม OpenCV (ในบทความนี้ใช้เวอร์ชั่น 3.1.0 ในอนาคตถ้ามีเวอร์ชั่นใหม่กว่า สามารถแทนที่ 3.1.0 เป็นเวอร์ชั่นล่าสุดได้เลย
3.2 เราต้องการติดตั้ง OpenCV อย่างเต็มรูปแบบเพื่อให้สามารถใช้ฟังก์ชั่นพิเศษ เช่น SIFT , SURF เป็นต้น
4. ติดตั้ง Package ที่จำเป็นของ Python 2.7
4.1 ก่อนจะเริ่มคอมไพล์ OpenCV จำเป็นต้องติดตั้ง pip และ python package manager ก่อน
4.2 เบื้องต้นการยังไม่ลง virtualenv และ virtualenvwrapper อาจจะใช้ OpenCV ได้ แต่แนะนำให้ลงไปเลยเพื่อให้สามารถรองรับโปรเจกต์ที่ซับซ้อนขึ้นในอนาคต
4.3 ขณะนี้เราได้ติดตั้ง virtualenv และ virtualenvwrapper สำเร็จแล้ว ต่อไปเราต้องอัพเดทไฟล์ ~/.profile โดยพิมพ์คำสั่งด้านล่าง(ทีละคำสั่ง)
4.4 ตอนนี้เราได้อัพเดทไฟล์ ~/.profile แล้วทำการล็อกเอาท์ออก
หมายเหตุ แนะนำให้รันไฟล์ ~/.profile ทุกครั้งที่มีการเปิด Terminal ใหม่ เพื่อให้แน่ใจว่าตัวแปรในระบบได้รับการตั้งค่าที่ถูกต้อง
4.5 สร้าง Python virtual environment
4.6 วิธีเช็คว่าคุณอยู่ใน “cv” virtual environment หรือไม่ทำดังนี้
4.7 ตอนนี้เราจะอยู่ในสภาพแวดล้อมของ "cv" แบบเสมือน(virtual) ทำการลง numpy (แพคเกจของPython ที่ใช้ประมวลผลทางตัวเลข)
cd ~wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zipunzip opencv.zip3.2 เราต้องการติดตั้ง OpenCV อย่างเต็มรูปแบบเพื่อให้สามารถใช้ฟังก์ชั่นพิเศษ เช่น SIFT , SURF เป็นต้น
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zipunzip opencv_contrib.zip4. ติดตั้ง Package ที่จำเป็นของ Python 2.7
wget https://bootstrap.pypa.io/get-pip.pysudo python get-pip.py4.2 เบื้องต้นการยังไม่ลง virtualenv และ virtualenvwrapper อาจจะใช้ OpenCV ได้ แต่แนะนำให้ลงไปเลยเพื่อให้สามารถรองรับโปรเจกต์ที่ซับซ้อนขึ้นในอนาคต
sudo pip install virtualenv virtualenvwrappersudo rm -rf ~/.cache/pip4.3 ขณะนี้เราได้ติดตั้ง virtualenv และ virtualenvwrapper สำเร็จแล้ว ต่อไปเราต้องอัพเดทไฟล์ ~/.profile โดยพิมพ์คำสั่งด้านล่าง(ทีละคำสั่ง)
(กดที่รูปเพื่อขยายรูปภาพ)
echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.profileecho "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profileecho "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile4.4 ตอนนี้เราได้อัพเดทไฟล์ ~/.profile แล้วทำการล็อกเอาท์ออก
source ~/.profileหมายเหตุ แนะนำให้รันไฟล์ ~/.profile ทุกครั้งที่มีการเปิด Terminal ใหม่ เพื่อให้แน่ใจว่าตัวแปรในระบบได้รับการตั้งค่าที่ถูกต้อง
4.5 สร้าง Python virtual environment
mkvirtualenv cv -p python24.6 วิธีเช็คว่าคุณอยู่ใน “cv” virtual environment หรือไม่ทำดังนี้
source ~/.profileworkon cv4.7 ตอนนี้เราจะอยู่ในสภาพแวดล้อมของ "cv" แบบเสมือน(virtual) ทำการลง numpy (แพคเกจของPython ที่ใช้ประมวลผลทางตัวเลข)
pip install numpy
5. คอมไพล์และติดตั้ง OpenCV
5.1 เข้าสู่ "cv" virtual environment
5.2 ทำการตั้งค่า หรือ build โดยใช้ Cmake
workon cv5.2 ทำการตั้งค่า หรือ build โดยใช้ Cmake
cd ~/opencv-3.1.0/mkdir buildcd 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-3.1.0/modules \
-D BUILD_EXAMPLES=ON ..เมื่อสำเร็จจะได้ดังภาพด้านล่าง
(กดที่รูปเพื่อขยายรูปภาพ)
5.3 คอมไพล์ OpenCV โดยใช้ 4 core (-j4) เพื่อให้คอมไพล์ได้เร็วขึ้นmake -j4หมายเหตุ1 ถ้าคอมไพล์ผ่านแล้วข้ามไปข้อ 5.4 ได้เลยครับ
หมายเหตุ2 ถ้าคอมไพล์ไม่ผ่านให้รันโค้ดด้านล่าง แล้วค่อยรัน make -j4 อีกครั้ง
cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_PRECOMPILED_HEADERS=OFF -DWITH_FFMPEG=OFF ..make -j4หมายเหตุ3 ถ้ายังคอมไพล์ไม่ผ่านให้แก้ดังนี้ ในบางครั้งการใช้ 4 core ในการคอมไพล์อาจเกิดความผิดพลาดได้ ถ้าเกิดปัญหาดังกล่าวให้ทำกระบวนการด้านล่าง make clean >> make
make cleanmake
(กดที่รูปเพื่อขยายรูปภาพ)
5.4 ทำการติดตั้ง OpenCVsudo make installsudo ldconfig6. ติดตั้ง OpenCV บน Raspberry Pi สำเร็จ
6.1 จากขั้นตอนที่ 5 ถ้าติดตั้งสมบูรณ์ โปรแกรมคุณจะถูกติดตั้งที่ /usr/local/lib/python2.7/site-pacakges ตรวจสอบดูโดยใช้คำสั่ง ls
ls -l /usr/local/lib/python2.7/site-packages/
(กดที่รูปเพื่อขยายรูปภาพ)
6.2 ทำการเชื่อมโยง OpenCV เข้ากับ "cv" virtual environment (for Python2.7)cd ~/.virtualenvs/cv/lib/python2.7/site-packages/ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so7. ทดสอบการใช้งานของ OpenCV3
7.1 ทดสอบว่า OpenCV ลงเสร็จสมบูรณ์แล้ว
source ~/.profile workon cvpythonimport cv2cv2.__version__จะได้เวอร์ชั่นของ OpenCV ดังภาพด้านล่าง
(กดที่รูปเพื่อขยายรูปภาพ)
7.2 ออกจากโหมด Pythonexit()7.3 เมื่อลงโปรแกรมOpenCV เสร็จแล้วสามารถลบไฟล์ติดตั้งเพื่อเพิ่มพื้นที่ใช้งานได้
rm -rf opencv-3.1.0 opencv_contrib-3.1.0พบกับบทความดีๆอีกมากมายที่นี่ PhadaDev.com
หรือมีคำถาม แวะไปพูดคุยกันได้ที่ เพจPhadaDev นะครับ
ขอบคุณครับ :)






0 ความคิดเห็น:
แสดงความคิดเห็น