[Golang x OpenCV] Get start to learn GoCV

Visarut Junsone
Lazy-Dev
Published in
2 min readAug 31, 2019

ห่างหายไปนานมากๆ เพราะไม่มีแรงบรรดาลใจ แต่เราก็กลับมาเขียนอีกครั้ง ไม่ใช่เพราะมีแรงบรรดาลใจ แต่เพราะเหงา ฮ่าๆๆ เอาละ เปิดหัวมาก็นอกเรื่องพอสมควร เข้าเรื่องกันดีกว่า

วันนี้เราจะมาเริ่มทำความรู้จัก เจ้าตัว GoCV กันดีกว่า ด้วยความที่เราชื่ชอบในภาษา Go เป็นส่วนตัว (ใช่เหรอ?) และมีความสนใจในเรื่อง Machine learning, AI และ ถ้าพูดถึงเรื่อง Machine learning, AI แล้วละก็ คงจะหนีไม่พ้นการเปรียบเทียบใบหน้า (Face recognition) หรือ การตรวจจับใบหน้า (Face detection) และอื่นๆ อีกมากมายแล้วแต่จะสารพัดใบหน้า

พอพูดถึงเรื่อง การเปรียบเทียบใบหน้า (Face recognition) หรือ การตรวจจับใบหน้า (Face detection) ก็คงหนีไม่พ้น OpenCV ที่เป็น library ของ python สำหรับการทำเรื่องพวกนี้โดยเฉพาะ แต่เราอยากเขียน Go นิ และก็นี้เลย ตัวที่เราพูดถึงตั้งแต่ตอนต้นประโยค GoCV นั้นเอง

https://gocv.io/computer-vision/” ←ลองดูเพิ่มเติมได้ที่นี้

เกร็ดความรู้ CV ย่อมากจาก computer vision ซึ่งคือความสามารถของ computer ที่จะประมวลผลข้อมูลภาพและทำงานตามที่ เราสั่งมันให้ทำ

เจ้า GoCV เนี่ย สามารถทำให้ Go Developer อย่างเราเนี่ย เข้าถึง OpenCV library และใช้งานมันได้โดยใช้ภาษา Go เนี่ยละ ไม่ต้องพูดเยอะละ ลุยเลยดีกว่า

https://gocv.io/getting-started/” ←ไป Install กันเอาเองนะ

และแน่นอนสำหรับคนที่ไม่เคยศึกษาการเปรียบเทียบใบหน้า (Face recognition) หรือ การตรวจจับใบหน้า (Face detection) มาก่อนก็จะงงว่าทำอะไรต่อดี ไม่ต้องกลัว ในเว็บมีตัวอย่าง เราจะหยิบมา 1 ตัวอย่าง ซึ่งคือ Face Detect นั้นเอง

https://gocv.io/writing-code/face-detect/” ←เอาโค้ดเขามา

https://github.com/VisarutJDev/face-compare” ←หรือ จะเอาที่ผมเขียนทดสอบไว้ ซึ่งก็เหมือนกัน ต่างกันที่ ……. ไม่บอกอ่านต่อไปแล้วจะรู้

แล้วลอง run code ดู

อะ อ่าว ติดอะไรละเนี่ย ……. อ๋อ ตัวโค้ดเขาต้องการให้ใส่ parameter นั้นเอง ซึ่งมี 2 ตัวที่ต้องการ คือ Camera ID และ Classifier XML file สำหรับ Camera ID ให้ใส่ค่า Default ไป คือ 0 ถ้าไม่ได้ผล ก็ลองหาเอานะว่าเครื่องตัวเองค่า Camera ID เป็นอะไร สำหรับ Classifier XML file อันนี้แหละปัญหา เข้าไม่มีให้ และผู้อ่านก็จะงงว่า เจ้า Classifier XML file มันคืออะไร

ใบ้ให้ละกัน มันคือข้อมูลที่อยู่ในรูป XML ที่เราจะเอาไว้สั่งตัว Program ว่าเราจากจะตรวจจับข้อมูลอะไร ในที่นี้ คือเราต้องการตรวจจับข้อมูลใบหน้า ก็ต้องไปหามา

แต่ไม่ต้องห่วง สำหรับคนที่โหลดมาจาก Github ของผมจะมีไฟล์ XML ให้อยู่แล้ว รันคำสั่งแบบนี้ เพิ่งส่ง parameter เข้าไป

go run . 0 classified_data.xml

โปรแกรมก็จะเปิดหน้าต่างของกล้องที่กำลังถ่ายอยู่ขึ้นมา เมื่อเอาหน้าคนสุดหล่อเข้าไป เมื่อโปรแกรมตรวจเจอใบหน้า มันก็จะวาดเส้น รอบๆ หน้า และบอกว่าเป็น Human ตามในโค้ดที่สั่งเอาไว้

จบละ ง่ายนิดเดียว อยากให้ลอง ในเรื่องต่อไป ว่าจะทำเรื่อง Face compare เพราะว่าเรา Detect ใบหน้าได้แล้ว คงต้องลองเอาไปเปรียบเทียบบ้าง

--

--

Visarut Junsone
Lazy-Dev

I’m Full-Stack Developer. ReactJS Golang C# Javascript C++ PHP and learning a lot more. Not lazy as it name. “Lazy-Dev”