Android DeveloperComputer VisionFeaturedOpenCV

การเขียนแอพพลิเคชัน Android ร่วมกับ OpenCV จับ Face Detection

การพัฒนาแอพพลิเคชัน Computer Vision บน Android ร่วมกับ OpenCV (Open Comupter Vision) การติดตั้งโปรเจ็คของ eClipse ร่วมกับ OpenCV 3 ทดสอบ Face Detection

ทฤษฎีของ Computer Vision หรือ ระบบการมองภาพของคอมพิวเตอร์เป็นการประยุกต์ให้คอมพิวเตอร์สามารถมองภาพนิ่ง ภาพเคลื่อนไหว วีดีโอ แล้วเข้าใจว่าสิ่งที่มองนั้นคืออะไร แบบที่คนเรามองเห็นสิ่งต่างๆ รอบตัวด้วยดวงตาทั้งสอง และทำการ จดจำ แยกแยะ เพื่อทำความเข้าใจบริบทของสิ่งต่างๆ ที่เรามองได้ด้วยการประมวลผลำของสมองของเรา

ระบบคอมพิวเตอร์ในปัจจุบันก็เช่นกัน โดยเฉพาะส่วนของสมองกลอุปมาว่าดวงตาของระบบคอมพิวเตอร์ก็คือกล้องที่เครื่องอุปกรณ์ ในตัวอย่างนี้เป็นสมาร์ทโฟน Android ซึ่งทำหน้าที่ในการรับภาพเข้ามาให้สมอง นั่นก็คือหน่วยประมวลผล ซึ่งก็คือคอมพิวเตอร์ทำการวิเคราะห์ และแยกแยะ เพื่อนำไปใช้ประโยชน์ต่อๆไป

OpenCV หรือ Open Computer Vision ตัวหนึ่งในรูปแบบของ Library ในภาษา C++ และ Python ที่ใช้ในการประมวลผลสร้างงานเกี่ยวกับ ImageProcessing และ Computer Vision พัฒนาโดย Intel ซึ่งได้เปิดเป็น OpenSource ที่ใช้งานได้ทั้งแพลตฟอร์ม PC, Linux, Android, Python เป็นหลัก และเป็น Library ของ Computer Vision ตัวหนึ่งที่ได้รับความนิยมมาก ซึ่งเราจะใช้เป็นตัวหลักในการพัฒนาร่วมกับ Android ครับ

บทเรียนนี้จะเป็นการ แนะนำการติดตั้ง OpenCV เวอร์ชัน 3.0.0 ร่วมกับ eclipse ครับ

ก่อนอื่นไปดาวน์โหลด Library ก่อนที่ http://opencv.org/downloads.html

opencv-android

แตกไฟล์แล้วางไว้ที่ไหนก็ได้ที่เราจะไม่เผลอไปลบมัน

ตัว OpenCV บน Android นั้นต้องใช้ NDK ของ android ในการติดตั้งดังนั้นต้องไปดาวน์โหลดตัว NDK มาเพิ่มใช้งานคู่กับ SDK ด้วยครับที่

https://developer.android.com/ndk/index.html

opencv-android-10

เปิด eclipse ขึ้นมาครับ

opencv-android-1

ทำการคลิกที่ Package Explorer แล้วคลิกขวา Import ตัว OpenCV มาไว้ใน Project

opencv-android-2

เลือก Path ไปที่ OpenCV ที่เราดาวน์โหลดมาครับ

opencv-android-3

opencv-android-4

ใช้สมาธิ อดทนและใจเย็นๆ จนกว่า Project จะ Compile สมบูรณ์ (นั่งรอไป ไม่นานมากหรอก)

opencv-android-5

ในเวอร์ชัน 2 ของ OpenCV มักจะไม่มีปัญหาจะสามารถ Run ผ่าน โดยเมื่อเอา APK ลงเครื่องเราก็ไปดาวน์โหลด OpenCV Manager ได้ผ่าน Google Play Store ครับ แต่ Version 3.0.0 นั้นไม่ใช่ มันจะมีปัญหาที่ Face Detection และ Camera Control เป็น Error ปรากฏอยู่

วิธีแก้

คลิกขวาที่ face detection และ camera control ครับ เลือก Properties

opencv-android-6

แล้วเห็นแถบขวาให้เลือก C/C++ Build เลือก Environment  ทำการ Add ตัว NDK เข้าไปครับ ให้เราไปติดตั้ง NDK ก่อน (นานเหมือนกัน)

opencv-android-7

จำ Path ไว้ เพื่อเอามาใส่ใน Environment ครับ โดยเราตั้งชื่อว่า “NDKROOT” ให้ใส่ Value เป็น Path ของเราไปเลยครับ

opencv-android-8

opencv-android-9

กด OK มันจะทำการ Build เพื่อซ่อมส่วนที่ Error ออกไปก่อน

opencv-android-11

เช่นกันครับ OpenCV Manager นั้นเราต้องไปที่ Folder ของ OpenCv ที่เราดาวน์โหลดมาหาโฟลเดอร์ apk แล้วดูว่า เครื่องสมาร์ทโฟนของเราใช้รุ่นไหนให้ติดตั้ง apk ที่ตรงรุ่นของเราลงไปในเครื่องสมาร์ทโฟนผ่านสาย USB ก่อนเลยครับ

opencv-android-21

ทำการติดตั้งซะ OpenCV Manager V.3.0.0

opencv-android-13

opencv-android-14

เสร็จเรียบร้อย ก็ให้ทำการ Run ตัว แอพพลิเคชัน Face detection ลงไปในเครื่อง device เราผ่าน USB ครับ

 

opencv-android-12

เมื่อติดตั้งแล้วก็จะใช้งานได้

opencv-android-20

ทดสอบกันหน่อยดีกว่าเกี่ยวกับความแม่นยำในการจับภาพใบหน้าคน

หนังสือ + แสงน้อย
หนังสือ + แสงน้อย
หนังสือ + แสงน้อย
หนังสือ + แสงน้อย
หน้าจอสมาร์ทโฟน+ความคมชัดน้อย
หน้าจอสมาร์ทโฟน+ความคมชัดน้อย
หน้าจอสมาร์ทโฟน+ความคมชัดน้อย
หน้าจอสมาร์ทโฟน+ความคมชัดน้อย
หน้าจอสมาร์ทโฟน+ความคมชัดน้อย
หน้าจอสมาร์ทโฟน+ความคมชัดน้อย
Video YouTube ภาพเคลื่อนไหว ความคมชัดต่ำ
Video YouTube ภาพเคลื่อนไหว ความคมชัดต่ำ

เราสามารถปรับ ขนาดของ Face Detect ได้เป็น % นะครับก็ลองทดสอบกันดู หวังว่าบทความนี้คงช่วยหลายๆ คนที่กำลังมีปัญหาเรื่อง Version 3.0.0. ของ OpenCV Manager บน Android อยู่นะครับ

Asst. Prof. Banyapon Poolsawas

อาจารย์ประจำสาขาวิชาการออกแบบเชิงโต้ตอบ และการพัฒนาเกม วิทยาลัยครีเอทีฟดีไซน์ & เอ็นเตอร์เทนเมนต์เทคโนโลยี มหาวิทยาลัยธุรกิจบัณฑิตย์ ผู้ก่อตั้ง บริษัท Daydev Co., Ltd, (เดย์เดฟ จำกัด)

Related Articles

Back to top button

Adblock Detected

เราตรวจพบว่าคุณใช้ Adblock บนบราวเซอร์ของคุณ,กรุณาปิดระบบ Adblock ก่อนเข้าอ่าน Content ของเรานะครับ, ถือว่าช่วยเหลือกัน