วันศุกร์ที่ 1 กรกฎาคม พ.ศ. 2559

ติดตั้ง OpenCV 3.1.0 บน Raspberry Pi

[*** Updated : การติดตั้ง OpenCV 3.4 บน Raspbian Stretch (released 27-11-2017) ***]

ผมเคยเขียนเรื่องการติดตั้ง OpenCV กับ Raspberry Pi ไปแล้วครั้งหนึ่ง แต่เป็นการติดตั้งเพื่อให้ใช้งานได้กับ Python 2.7.9 เท่านั้น ทั้งที่ Raspbian รุ่นล่าสุด (
Release date: 2016-05-27) มีทั้ง Python2.7.9 และ Python 3.4.2 ให้ได้ใช้งาน 

หลังจากที่ได้ทดสอบด้วยตัวเองแล้วก็พบว่าการติดตั้งครั้งหลังสุดนี้สามารถใช้ OpenCV รุ่น 3.1.0 ได้ทั้ง Python 2.7.9 และ 3.4.2 ครับ  ขั้นตอนมีดังนี้

1. ติดตั้ง Raspbian รุ่นล่าสุดคือ release 2016-05-27 (https://www.raspberrypi.org/downloads/raspbian/) จะใช้ Raspbian Jessie หรือ Raspbian Jessie Lite ก็ตามสะดวก แต่หากเลือกใช้  Raspbian Jessie Lite ต้องทำการติดตั้ง XWindows ก่อน เพราะ OpenCV จะทำบน XWindows

2. ทำการ update 

sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
3. ติดตั้ง Cmake (builder และ compiler)

sudo apt-get install build-essential cmake pkg-config git

4.ติดตั้ง dependencies

4.1 Image และ Video IO  เพื่อให้ OpenCV สามารถบันทึกหรืออ่านแฟ้มข้อมูลภาพหรือวิดิโอได้

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

4.2 ติดตั้ง HiGUI

sudo apt-get install libgtk2.0-dev libgtk-3-dev

4.3 ติดตั้ง module ทางคณิตศาสตร์

sudo apt-get install libatlas-base-dev gfortran

4.4 Python 2 และ 3 binder

sudo apt-get install python2.7-dev python3-dev


5. ดาวน์โหลด source code
5.1 OpenCV :

git clone https://github.com/opencv/opencv.git
5.2 OpenCV contribute อันนี้เป็นเป็นทางเลือกสำหรับท่านทีต้องการ module เพิ่มเติม ที่เขาต้องแยกออกมาก็เพราะ module เหล่านี้มีการปรับปรุงบ่อย จึงเป็นไปได้ว่าอาจจะไม่เสถียร เวลาปรับปรุงรุ่นจะได้ไม่กระทบต่อกัน และอีกเหตุผลคือการแยกระหว่าง non-free กับ free algorithm ออกจากกัน ดังนั้นเป็นไปได้ว่าจะมี algorithm ที่มีอยุ่ใน opencv-contribute บางรายการไม่สามารถนำไปใช้ในทางการค้าได้โดยไม่ได้รับอนุญาติจากเจ้าของลิขสิทธิ์ คงใช้ได้แต่เพื่อการศึกษาเท่านั้น ตรงนี้คงต้องตรวจสอบข้อมูลกันเองก่อนนะครับ

git clone https://github.com/opencv/opencv_contrib.git

6 เริ่มทำการติดตั้ง

เข้าไปใน directory ของ opencv


 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=/path/to/opencv_contrib-3.1.0/modules \
    -D BUILD_EXAMPLES=ON \
    -D WITH_OPENGL=ON \
    -D WITH_V4L=ON ..



รอจนเสร็จ ใช้เวลาประมาณ 3 นาที

make -j4 

ขั้นตอนนี้ใช้เวลาประมาณ 1 ชั่วโมง

make clean
make

ขั้นตอนนี้ใช้เวลาประมาณ 4 ชั่วโมง

sudo make install
sudo ldconfig

ขั้นตอนนี้ใช้เวลาประมาณ 5 นาที
 หลังจากนี้ท่านก็น่าจะสามารถทดลองใช้งาน OpenCV จากตัวอย่างทีี่เขาให้มาได้เลยครับ

ปล.
ในกรณีที่ติดตั้ง OpenCV รุ่นก่อนหน้านี้มาแล้วต้องทำการลบการติดตั้งเดิมออกก่อนโดย
1. กรณีที่ติดตั้งโดยการ compile source code ใช้คำสั่ง

sudo make uninstall

2. กรณีที่ติดตั้งด้วยคำสั่ง sudo apt-get install python-opencv มานั้น ตามที่ค้นมามีสองสามคำแนะนำ เช่น
sudo apt-get purgelibopencv* หรือ
sudo find / -name "*opencv*" -exec  rm -i {} \;

10 ความคิดเห็น:

  1. make -j4
    make: *** No targets specified and no makefile found. Stop.
    How t do kub ?

    ตอบลบ
    คำตอบ
    1. แสดงว่ามี error ในขั้นตอนก่อนหน้าแล้ว

      ลบ
    2. แสดงว่ามี error ในขั้นตอนก่อนหน้าแล้ว

      ลบ
  2. ตอนที่ ทำขั้นตอน make -j4 แบ้วมีerror
    make :*** notargets specified and no makefile found. stop.
    เกิดจากขั้นตอนก่อนหน้าใช่ไหมครับ แล้วเราจะรู้ได้ยังไงว่ามันerrorที่ตัวไหน

    ตอบลบ
  3. นั่นสิ ผมก็เป็น

    ตอบลบ
    คำตอบ
    1. อยากทราบว่ามี error อะไรบ้าง เข้าไปดูใน build/CmakeFiles/CMakeError.log ครับ

      ลบ
    2. ผมลองใช้กับ Raspbian Jessie แล้วได้ครับ

      ลบ
    3. ผมลองตามก้อไม่ผ่านตอน make -j4

      ลบ
  4. ติดตั้งบน Raspbian Jessie ผ่าน แต่บน Raspbian stretch ไม่ได้ครับ ต้องทำยังไง

    ตอบลบ
  5. https://riptutorial.com/opencv/example/15781/build-and-install-opencv-from-source

    เว็บนี้ใช้ได้

    ตอบลบ