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

ก่อนหน้านี้ได้เขียน Blog เล่าขั้นตอนการติดตั้ง OpenCV 3.1 บน Raspbian Jessie ไปแล้ว [1] มาตอนนี้ Raspbian ได้เปลี่ยนไปเป็น Stretch ก็ตามแต่ขั้นตอนในการติดตั้งยังคงเหมือนเดิมเกือบทั้งหมด ซึ่งก็มีส่วนที่เพิ่มเติมมาสองเรื่องคือ การเพิ่มประสิทธิภาพในการทำงาน และการขยาย swap file

การเพิ่มประสิทธิภาพ

เป็นที่ทราบกันทั่วไปว่าการทำงานด้าน Computer Vision ก็คือการทำงานด้าน Machine Learning ซึ่งต้องการทรัพยากรด้านฮาร์ดแวร์เพื่อการคำนวณค่อนข้างมาก ในขณะที่ CPU ที่นำมาติดตั้งบน Raspberry Pi 3 Model B นั้น ได้มีการนำเอาเทคโนโลยีสองเรื่องมาติดตั้งไว้แล้วคือ NEON [2] และ Floating Point [3]  และในการติดตั้ง OpenCV ครั้งนี้ก็จะนำมาใช้ด้วย

การเพิ่ม Swap File

Swap File คือ virtual memory ที่อยู่บน media (ในกรณีของ Raspberry Pi คือ SD Card) แทนที่จะอยู่บน RAM มีวัตถุประสงค์เพื่อเพิ่มขนาดของพื้นที่จัดเก็บข้อมูลในระหว่างการทำงาน การ compilation  ครั้งนี้หากไม่มีการเพิ่ม Swap File ก็อาจส่งผลให้ไม่สามารถทำงานได้สำเร็จ ขั้นตอนมีดังนี้

1. แก้ไข /etc/dphys-swapfile โดยกำหนดค่าของ CONF_SWAPSIZE จากเดิมกำหนดไว้ที่ 100 (100 MB) เป็น  1024 (1 GB)
2. restart

$ sudo /etc/init.d/dphys-swapfile stop

รอจนเสร็จ

$ sudo /etc/init.d/dphys-swapfile start


ขั้นตอนการติดตั้ง

ให้ดำเนินการเช่นเดียวกับที่กล่าวไว้ใน [1] ตั้งแต่ขั้นตอนที่ 1 - 5

ในขั้นตอนที่ 6 มีการเปลี่ยนแปลงคือจะเพิ่มการใช้ NEON และ Floting Point เข้าไป configure ที่ใช้คือ

$ cd 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/modules \
    -D BUILD_EXAMPLES=ON \
    -D ENABLE_NEON=ON \
    -D ENABLE_VFPV3=ON ..


หลังจากนี้ไปก็ดำเนินตามขั้นตอนกล่าวไว้ใน [1] ต่อไปได้







ปล.
1. ในขั้นตอนที่ใช้คำสั่ง make -j4  เลข 4 คือจำนวน Core ของ CPU ที่จะใช้งาน หากกำหนดเป็น 4 หมายความว่า ต้องการให้ทุก Core ของ CPU บน Raspberry Pi ทำงานทั้งหมดประโยชน์คือเวลาในการทำงานทั้งหมดจะสั้นลง แต่ก็อาจนำมาซึ่งความร้อนที่สูงเกินไปก็ได้ ควรพิจารณาลดตัวเลขลง (ซึ่งจะใช้เวลานานขึ้น) หรือเพิ่มระบบระบายความร้อนให้กับ CPU

2. หลังจากติดตั้งเสร็จเรียบร้อย ให้ทำการเปลี่ยนค่า CONF_SWAPFILE  ใน /etc/dphys-swapfile กลับไปเป็นค่าเดิมคือ 100 (100 MB)  แล้วทำการ reboot

3. OpenCV source code ที่ดาวน์โหลดมานั้น ไม่มีความจำเป็นต้องเก็บไว้ อาจพิจารณาลบทิ้งไป หรือย้ายไปเก็บไว้  เพื่อให้มีเนื้อที่บน SD Card เหลือใช้งาน




เว็บไซต์อ้างอิง

[1] https://raspberrypi-thailand.blogspot.com/2016/07/opencv-310-raspberry-pi.html
[2] https://developer.arm.com/technologies/neon
[3] https://developer.arm.com/technologies/floating-point

Previous
Next Post »