หาของในภาพกัน (Python OpenCV)

Adulwit Chinapas
imageanalyst
Published in
Feb 25, 2019

ภาพด้านบนเราจะเห็นขนมต่างๆมากมายซึ่งบางทีการหาด้วยสายตาคงยากเกินไป เดี๋ยวเราจะใช้ image processing กันว่าจะสามารถหาขนมให้เราได้หรือไม่ ขนมที่ผมต้องการจะหาก็คือขนมยี่ห้อนี้

save รูปภาพทั้ง 2 รูปลงไปในเครื่องเลย รูปแรกตั้งชื่อว่า “product_in_shelf.jpg”

ส่วนรูปที่สองตั้งชื่อว่า “product.jpg”

เปิด python ขึ้นมาแล้วก็ลง library ตามนี้นะครับ

pip install numpy opencv-python==3.3.0.10 opencv-contrib-python==3.3.0.10 matplotlib scikit-image

จะเห็นว่า opencv นี้ต่างออกไป มันมี contrib ด้วย จะมีบางฟังก์ชันที่เราต้องการใช้ ซึ่งไม่มีใน opencv แบบธรรมดา

หลังจากลงเสร็จก็เขียน code ขึ้นมาตามไฟล์นี้ครับ feature_matching.py

ไฟล์ใน folder เป็นแบบนี้นะครับ

อย่ารอช้าครับสั่งรันเลยครับ

python feature_matching.py

เราก็จะได้ภาพออกดังรูปด้านล่างครับ

จะเห็นเส้นสีเขียวโยงไปหาภาพที่มีลักษณะคล้ายกัน จากนั้นก็จะตีกรอบด้วยเส้นหนาๆสีขาว และได้ค่าพิกัดออกมาเป็นสองค่า คือ 74.719475 (พิกัดบนซ้าย) และ 137.30016 (พิกัดล่างขวา) เราก็สามารถนำค่าพิกัดนี้ไปสามารถ crop ต่อได้

สรุป

OpenCV มี library ให้ใช้มากมายนะครับ ถ้าเรามี project ที่เกี่ยวกับรูปภาพก็ลองศึกษาเพิ่มเติมดูได้นะครับ บางครั้งเราไม่จำเป็นต้องใช้ AI เสมอไป (train รูป) บางทีก็มีคนทำให้เราใช้แล้ว นำมาพัฒนาต่อยอดเลยน่าจะดีกว่าครับ เดี๋ยวนี้ทุกอย่างมันช่างดูง่ายไปหมดครับ “แค่ search ให้ถูก key + ความคิดสร้างสรรค์” ทุกอย่างก็คงจะ perfect ไม่ใช่น้อย

Refference

--

--

Adulwit Chinapas
imageanalyst

Adul.dev I’m a Ph.D. student. My major project about Machine Learning (Python), Web (Vue), Android (JAVA), iOS (Objective-C), C#, Firebase, MySQL, PHP, Docker.