แนะนำ SimpleCV ที่ทำให้ Image Processing นั้นง่ายขึ้น
วันนี้จะมาแนะนำ Library สำหรับติดต่อกับกล้อง และวิเคราะห์ภาพแบบง่ายๆกันครับ โดย Library ตัวนี้พัฒนาต่อจาก OpenCV ของ Intel อันโด่งดังอีกที แต่เนื่องจากการใช้ OepnCV นั้นจะเป็นที่จะต้องพึ่งพาความรู้พื้นฐานเรื่อง Image Processing ในระดับหนึ่งเลยทีเดียว ซึ่งแปลว่าต้องใช้เวลาศึกษาอีกพอสมควรเลยทีเดียวกว่าจะทำอะไรได้เป็นชิ้นเป็นอัน
แต่… บ่อยครั้งเราก็ไม่ได้อยากจะศึกษาอะไรลึกซึ้งมากขนาดนั้น หรือบ่อยครั้งที่เราเพียงอยากได้อะไรที่ง่ายๆ มาทำเล่นสนุกๆดูก่อนเพียงเท่านั้น อยากพักเรื่องทฤษฏีอะไรมากมายลงบ้าง ถ้าเช่นนั้นแล้ว เราขอแนะนำให้รู้จักกับ SimpleCV ไลบรารี่ สำหรับ Image Processing แบบง่ายๆ ให้รู้จักครับ
SimpleCV เป็นไลบรารี่ที่ถูกพัฒนาต่อจาก OpenCV อีกทีหนึ่ง สามารถใช้งานได้ผ่านภาษาไพทอน ไม่ได้มีฟังค์ชั่นอะไรเยอะมากนัก เพราะมันจะต้อง Simple (ง่าย) ตามคอนเซปต์ของไลบรารี่ แต่ฟังค์ชั่นที่ให้มานั้นก็มากเพียงพอที่จะทำอะไรสนุกๆได้ โดยไม่กร่อยเลยทีเดียว
เรามาเริ่มต้นที่การติดตั้งไลบรารี่ตัวนี้กันก่อนเลย เป็นการติดตั้งที่ไม่ยาก แต่เยอะ และค่อนข้างยุ่งทีเดียวครับ
อันดับแรกเราต้องติดตั้งไลบรารี่ที่จำเป็น และเครื่องมือสำหรับใช้งาน SimpleCV นี้ก่อนนะครับ ซึ่งมีรายการดังนี้
Install ผ่าน apt-get install
ipython
python-opencv
python-scipy
python-numpy
python-pygame
python-setuptools
python-pip
gfortran
g++
liblapack-dev
libsdl1.2-dev
libsmpeg-dev
Mercurial
python-pillow
Install ผ่าน pip install
https://github.com/sightmachine/SimpleCV/zipball/develop
svgwrite
sphinx
Example และ Demo ต่างๆที่น่าสนใจ เราสามารถ Clone มาเพื่อลองใช้งานได้
https://github.com/sightmachine/simplecv-examples
https://github.com/larsyencken/simplecv-demo
การติดตั้ง เริ่มที่ติดตั้งเครื่องมือ และไลบรารี่ก่อน ด้วยคำสั่ง
1 2 3 4 5 | $sudo apt-get install ipython python-opencv python-scipy python-numpy python-pygame python-setuptools python-pip gfortran g++ liblapack-dev libsdl1.2-dev libsmpeg-dev mercurial python-pillow |
แล้วจึงติดตั้ง
1 | $sudo pip install svgwrite sphinx |
จากนั้นจึงติดตั้ง SimpleCV ด้วยคำสั่ง
1 | $sudo pip Install https://github.com/sightmachine/SimpleCV/zipball/develop |
ต่อมา clone ตัวอย่างใช้งานมาลองใช้งาน โดยเริ่มที่ตัวอย่างของ SimpleCV เอง
เริ่มที่เข้าไปที่ Folder Public ซึ่งเป็นที่สำหรับเก็บโค้ดทดลอง จากนั้นก็
Clone โฟลเดอร์โค้ดตัวอย่างจาก Github มาcd Public
1 2 | $cd Public $git clone https://github.com/sightmachine/simplecv-examples |
จากนั้นเมื่อเข้าไปที่โฟลเดอร์ Public/simplecv-examples ผ่าน UI ปกติ เราจะเห็นโฟลเดอร์ code ซึ่งข้างในจะมี code ตัวอย่างที่เราสามารถลองใช้งานอยู่หลายตัวเช่นกัน
ในตอนนี้เราลองไฟล์ที่ชื่อ motion-detection.py ซึ่งโปรแกรมจะทำการตรวจจับการเคลื่อนไหวภาพในภาพ
และนอกจากตัวอย่างนี้แล้ว เรายังมีอีกที่ ที่มีตัวอย่างการใช้งานที่น่าสนใจให้ทดลอง
โดยกลับมาที่ โฟลเดอร์ Public บนหน้า console อีกครั้ง แล้ว clone โฟลเดอร์ https://github.com/larsyencken/simplecv-demo โดยใช้คำสั่ง cd .. เพื่ออกจากโฟลเดอร์ simplecv-examples
และใช้คำสั่ง git clone https://github.com/larsyencken/simplecv-demo
1 2 | $cd.. $git clone https://github.com/larsyencken/simplecv-demo |
เมื่อ clone เสร็จแล้ว เราสามารถเข้าไปลองใช้งานไฟล์ที่อยู่ใน โฟลเดอร์ simplecv-demo ได้ผ่านทาง UI ปกติ และเปิดไฟล์ตัวอย่าง ในตัวอย่างนี้เราลองเปิดไฟล์ 09b-find-face.py
ซึ่งโปรแกรมจะทำการตรวจจับลักษณะใบหน้า และตัดเฉพาะส่วนที่เป็นใบหน้ามาแสดงยังอีกภาพใกล้ๆ
จากตัวอย่างทั้งสองจะเห็นว่า โค้ดนั้นไม่ได้ยาวเลย แถมในตัวอย่างยังสามารถทำ live Streaming ผ่านทาง IP ได้อีกด้วย นับว่าน่าสนใจอย่างมากครับ ทำเล่นๆคงสนุกดีนะ