แนะนำ 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

การติดตั้ง เริ่มที่ติดตั้งเครื่องมือ และไลบรารี่ก่อน ด้วยคำสั่ง

simplecv01

แล้วจึงติดตั้ง

 

simplecv02

จากนั้นจึงติดตั้ง SimpleCV ด้วยคำสั่ง

 

simplecv03

ต่อมา clone ตัวอย่างใช้งานมาลองใช้งาน โดยเริ่มที่ตัวอย่างของ SimpleCV เอง

เริ่มที่เข้าไปที่ Folder Public ซึ่งเป็นที่สำหรับเก็บโค้ดทดลอง จากนั้นก็
Clone โฟลเดอร์โค้ดตัวอย่างจาก Github มา cd Public

 

simplecv04

จากนั้นเมื่อเข้าไปที่โฟลเดอร์ Public/simplecv-examples ผ่าน UI ปกติ เราจะเห็นโฟลเดอร์ code ซึ่งข้างในจะมี code ตัวอย่างที่เราสามารถลองใช้งานอยู่หลายตัวเช่นกัน

simplecv07

ในตอนนี้เราลองไฟล์ที่ชื่อ motion-detection.py ซึ่งโปรแกรมจะทำการตรวจจับการเคลื่อนไหวภาพในภาพ

simplecv08

และนอกจากตัวอย่างนี้แล้ว เรายังมีอีกที่ ที่มีตัวอย่างการใช้งานที่น่าสนใจให้ทดลอง
โดยกลับมาที่ โฟลเดอร์ Public บนหน้า console อีกครั้ง แล้ว clone โฟลเดอร์ https://github.com/larsyencken/simplecv-demo โดยใช้คำสั่ง cd .. เพื่ออกจากโฟลเดอร์ simplecv-examples

และใช้คำสั่ง git clone https://github.com/larsyencken/simplecv-demo

 

simplecv09

เมื่อ clone เสร็จแล้ว เราสามารถเข้าไปลองใช้งานไฟล์ที่อยู่ใน โฟลเดอร์ simplecv-demo ได้ผ่านทาง UI ปกติ และเปิดไฟล์ตัวอย่าง ในตัวอย่างนี้เราลองเปิดไฟล์ 09b-find-face.py

ซึ่งโปรแกรมจะทำการตรวจจับลักษณะใบหน้า และตัดเฉพาะส่วนที่เป็นใบหน้ามาแสดงยังอีกภาพใกล้ๆ

simplecv10

จากตัวอย่างทั้งสองจะเห็นว่า โค้ดนั้นไม่ได้ยาวเลย แถมในตัวอย่างยังสามารถทำ live Streaming ผ่านทาง IP ได้อีกด้วย นับว่าน่าสนใจอย่างมากครับ ทำเล่นๆคงสนุกดีนะ