Categories
Diary

วิธีเทรน Segmentation โดย mmSegmentation

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

โดยเรื่องนี้อยู่ในหัวข้อ AI (Artificial Intelligence) อย่าง Computer Vision ที่อยู่ในเรื่องของ Semantic Segmentation

Categories
Diary

รันโค้ด Jupyter โดยไม่ต้องเปิดหน้าเว็บเบราวเซอร์ทิ้งไว้

Jupyter Notebook เป็นเครื่องมือที่ช่วยให้เรารันตัว Python Notebook ได้ ซึ่งตัวนี้เหมาะกับการเขียนโค้ดเพื่อคำนวณทางด้านวิทยาศาสตร์ หรือทำงานด้าน Data Science และอื่น ๆ เป็นต้น ซึ่งเราจะพบการใช้งานตัว Jupyter Notebook ได้บ่อย ๆ ใน Google Colab

อย่างไรก็ดี การใช้งานตัว Google Colab พบปัญหา เนื่องมาจากตัวฟรี หรือตัวโปรรุ่นล่าง ๆ จะเปิดให้รันบนเบื้องหลังได้ไม่นาน หลังจากนั้นตัวระบบจะตัดไป เพื่อนำทรัพยากรที่มีจำกัดให้กับบุคคลอื่นแทน ดังนั้นแล้วการใช้งาน Jupyter Notebook บนคอมพิวเตอร์ของเรา หรือบนเซิร์ฟเวอร์ของเราเองจะเป็นทางเลือกที่ดีกว่า

Categories
Diary

วัดระยะห่างระหว่างตาดำจากภาพโดยภาษา Python

อันนี้เป็นส่วนหนึ่งของงานวิจัย ทำไปแล้วบางส่วน

ปกติการวัดตาดำ เราจะพบได้ในคนที่เลือกขนาดเครื่อง Virtual Reality Headset หรือวัดขนาดแว่นตา หรืออื่น ๆ ปกติเราจะใช้ไม้บรรทัดวัดเพื่อให้รู้ว่าระยะห่างระหว่างตาดำ (Interpupillary Distance) มีระยะห่างเท่าไร อย่างไรก็ดีเราจะใช้ไม้บรรทัดวัดไปตลอดเหรอก็ไม่สะดวกเท่าไร แถมสมัยนี้เราก็ใช้คอมพิวเตอร์กันอยู่แล้วด้วย เลยเอามาเขียนโค้ดส่วนนี้เพื่อจับระยะการอ้าปากครับ

Categories
Diary

พูดถึง Head Pose Estimation ที่ใช้ในขณะนี้

Head Pose Estimation คือเทคนิคการจับภาพการเคลื่อนไหวของศีรษะเมื่อเทียบกับมุมกล้องที่ถ่ายอยู่ในขณะที่จับภาพ โดยนำภาพใบหน้าของบุคคลที่จับภาพได้จากเทคนิคการจับภาพใบหน้าที่ได้กล่าวถึงในบทความก่อนหน้านี้มาประมวลผลผ่านเทคนิคหนึ่งแล้วระบุเป็นองศาการเคลื่อนไหวของศีรษะใน 3 ทิศทางได้แก่ หันศีรษะซ้าย-ขวา (Yaw), ก้ม-เงยศีรษะ (Pitch) และเอนศีรษะซ้าย-ขวา (Roll)

Categories
Diary

วิธีพัฒนาแอพลิเคชันบน Surface Pro X

ต่อจากบทความก่อนหน้าที่พูดถึงแอพที่ใช้งานบนคอมพิวเตอร์ Surface Pro X

การพัฒนาแอพลิเคชันเพื่อใช้งานของเราที่กล่าวถึงจะเป็นการพัฒนาเว็บไซต์ รวมถึงพัฒนาโปรแกรมเพื่อใช้งานทางด้าน AI/ML (Artificial Intelligence/Machine Learning) เพื่อนำไปเทรนข้อมูล และทดสอบข้อมูลบนเครื่องคอมพิวเตอร์แม่ข่ายที่มีการ์ดจอเพื่อช่วยการประมวลผล

ในตอนนี้ เราจะพัฒนาบนเครื่อง Surface Pro X (คือมีเครื่องนี้อยู่แล้ว แต่จะเอาไปใช้กับคอมเครื่องอื่นที่ใช้ ARM ก็ได้) เพื่อทดสอบการใช้งานเบื้องต้น (Prototyping) ก่อนจะนำไปทำงานบนคอมพิวเตอร์เครื่องจริง

ก่อนอื่นเรามาพูดถึงปัญหาที่พบจากการใช้งานบนคอมพิวเตอร์ที่ใช้ซีพียู ARM ก่อน

Categories
Diary

วิธีการ Label ภาพเพื่อสร้างฐานข้อมูลใช้ในงาน ML/AI ขึ้นมาเองอย่างง่าย

ปกติเวลาเราเรียนวิชาที่เกี่ยวกับปัญญาประดิษฐ์อย่างเช่น Machine Learning หรือ Deep Learning เราจะได้ยินคำว่า Dataset (หรือเรียกประมาณว่าเป็นฐานข้อมูล) กันบ่อย ๆ ในเปเปอร์งานวิจัย ในหนังสือ อินเตอร์เน็ต หรืออื่น ๆ แต่ฐานข้อมูลที่มีให้ก็มีรูปเยอะหรือน้อยก็ขึ้นกับผู้จัดทำฐานข้อมูลขึ้นมาเอง

ส่วนของเราเป็นงานเกี่ยวกับการจับภาพใบหน้า และการจับภาพการเคลื่อนไหวของศีรษะและลำคอ ซึ่งใช้ฐานข้อมูลของภาพที่เผยแพร่เยอะมากเลย ตั้งแต่ WIDERFACE, 300W_LP หรืออื่น ๆ แต่อย่างไรก็ดี มีอีกงานที่รุ่นน้องที่แล็ปทำอยู่ก็เป็นงานเกี่ยวกับการวินิจฉัยโรคผิวหนังซึ่งมีฐานข้อมูลสาธารณะไม่เยอะเท่าไรนัก แต่เรามีรูปภาพอยู่ในมือเยอะมากแล้วจะทำอย่างไรดี

Categories
Diary

เทคนิคการนำโมเดล Tensorflow มารันบน Node.js โดยไม่ต้องใช้ tfjs-converter

ปกติเวลาเรามีข้อมูลที่ได้รับการเทรนเรียบร้อยแล้วทดสอบแล้วได้ผลที่แม่นยำตามที่เราต้องการ จากนั้นเรานำโมเดลที่ผ่านการเทรน และทดสอบแล้วมารันในโปรแกรมซึ่งส่วนใหญ่ก็จะเขียนในภาษาไพทอน แต่ทีนี้เราจะต้องดูปลายทางว่าเราจะนำข้อมูลที่เทรนมาทำงานบนเว็บเบราวเซอร์ มาไว้ในอุปกรณ์ IoT (Internet of Things) หรืออื่น ๆ

Categories
Diary

การติดตั้ง เขียนโค้ดเพื่อใช้งาน ONNX.js และข้อสังเกต

อัพเดท: ตัวไลบรารีได้รับการพัฒนาต่อแล้วครับ อ่านได้ในรายละเอียดหัวข้ออัพเดทด้านล่างของบทความครับ

การนำโมเดลที่ได้รับการเรียนรู้แล้วมาทำงานบนเว็บเบราว์เซอร์ไม่ได้เป็นเรื่องใหม่นัก เพราะบริษัทกูเกิ้ลพัฒนาไลบรารีชื่อ Tensorflow.js โดยเรานำโมเดลที่ได้รับการเรียนรู้แล้วมาทำนาย หรือเรียนรู้ข้อมูลใหม่บนเว็บไซต์ได้เลยโดยไม่จำเป็นต้องส่งข้อมูลไปทำนายบนเซิร์ฟเวอร์

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences Save