Categories
Computer Diary

การใช้ Spread Operator ในภาษาไพทอน

Spread Operator เป็นตัวช่วยให้เราเขียนโค้ดในภาษาจาวาสคริปได้สะดวกขึ้นหลังจากการเปิดให้ใช้ตั้งแต่ ES6 เป็นต้นมา สัญลักษณ์นี้อนุญาตให้เรากระจายข้อมูลใน Array, String, Object ออกมาเป็นตัวแปรเดี่ยว ๆ เพื่อนำไปใช้งานในฟังก์ชัน หรือนำไปใช้สร้าง Array, Object ใหม่ เป็นต้น ตามนิยามของ Mozilla Developer Network ได้ตามนี้

Categories
Computer Diary

นำแอพที่ใช้ ElectronJS ไปใช้งานบน Surface Pro X

เขียนต่อจากโพสก่อนที่พูดถึงเรื่องแอพที่ใช้ คราวนี้มาพูดถึงการพอร์ตแอพเพื่อนำมาใช้งานบน Surface Pro X ครับ ซึ่งที่เคยทำแล้วทำได้ก็คือคอมไพล์โปรแกรมที่ใช้ไลบรารี Electron ที่อนุญาตให้เราเขียนเว็บแล้วเอามารันบน Desktop ได้เลย

Categories
Computer Diary

1st customized Node-RED คือตัว Downloader

ต่อจากบทความก่อนหน้าที่พูดถึงการสร้าง Node ในโปรแกรม Node-RED ขึ้นมาใช้งานเอง ตอนนี้ได้เขียนขึ้นมาชิ้นแรกที่เปิดเป็น public บน GitHub แล้วฮะ คือตัวดาวน์โหลดไฟล์

Categories
Computer Diary

เทคนิคสร้าง Node เพื่อใช้งานกับ Node-RED ให้ทำตามที่เราต้องการ

Node-RED เป็นเครื่องมือที่ช่วยให้เราทำงานแบบ Flow-based programming ซึ่งเป็นอุปกรณ์ที่ช่วยให้นักพัฒนาโปรแกรมสามารถทำงานให้เครื่องมือ IoT (Internet of Things) ทำงานได้ตามที่เราต้องการได้ง่ายโดยทำผ่านเว็บเบราวเซอร์ ตัวอย่างของอุปกรณ์ที่จะมาพัฒนาที่มีชื่อก็ได้แก่ Raspberry Pi ที่วางขายมานานแล้ว จนตอนนี้ออกเป็นรุ่น Raspberry Pi 4 Model B ออกมาครับ เรามาเข้าเรื่องกันดีกว่า

Categories
Computer Diary

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

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

Tensorflow.js เป็นไลบรารีที่เกี่ยวกับ Machine Learning/Deep Learning ที่จัดทำโดยบริษัทกูเกิ้ลเพื่อให้เราเทรน ทดสอบข้อมูล หรือทำอะไรก็ตามแต่ที่เกี่ยวข้องโดยใช้ภาษาจาวาสคริปได้ ไลบรารีนี้เราสามารถทำงานบนเว็บเบราวเซอร์ หรือทำงานแบบ Native บน Node.js ได้เลย แต่ในบทความนี้เราจะพูดถึงบน Node.js ครับ

Categories
Computer Diary

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

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

ส่วนไลบรารี ONNX.js เป็นส่วนหนึ่งของไลบรารี ONNX (Open Neural Network Exchange) ที่ได้รับการพัฒนาโดยบริษัทไมโครซอฟท์ เพื่อให้นำโมเดลที่ได้รับการเรียนรู้จากไลบรารี Deep learning ต่าง ๆ ได้แก่ PyTorch, Mxnet, Scikit learn เป็นต้น มาแปลงเพื่อนำไปใช้กันกับไลบรารีอื่นได้เลย หรือนำโมเดลที่เรียนรู้มาทำนายข้อมูล (Inference) ได้ โดยไลบรารี ONNX.js นี้ เปิดให้นักพัฒนาที่เทรนข้อมูลมาแล้ว เอามาทำนายข้อมูลที่มีอยู่บนเว็บเบราวเซอร์ (หรือบนคอมพิวเตอร์ผ่าน Node.js) ได้โดยไม่จำเป็นต้องมาเรียนรู้ใหม่อีก

Categories
Computer Diary

Face Detection in my thesis

ตอนนี้ธีสิสที่ทำอยู่เกี่ยวกับการวัดการเคลื่อนไหวของศีรษะและลำคอในผู้ป่วยที่เป็นมะเร็งศีรษะและลำคอที่ผ่านการทำกายภาพบำบัดที่เดิมจะให้หมอวัดองศาการเคลื่อนไหวของศีรษะและลำคอ (Cervical range of motion) แต่ทีนี้ติดปัญหาเรื่องความแม่นยำ และความน่าเชื้อถือของการวัด (reliability & validity) เราจะทำเป็นตัวโปรแกรมเพื่อให้ประเมินการเคลื่อนไหวจาก webcam แทน แล้วทีนี้ขั้นแรกของเราจะต้องทำคือการใช้เทคนิคการจับภาพใบหน้า (Face detection)