การเรียนรู้ของเครื่องด้วยตัวเองจากรูปภาพ เพื่อทำนายว่า เป็นภาพทะเลหรือภาพภูเขา

การเรียนรู้ของเครื่อง (Machine learning) สามารถนำมา จำแนกภาพทะเลหรือภาพภูเขาด้วยตัวอง โดยไม่ต้องเขียนโปรแกรม โดยเพียงป้อนภาพตัวอย่าง ให้เครื่องเรียนรู้ด้วยตนเอง มากหน่อย เพื่อที่จะทำการสาธิต ในครั้งนี้ได้ จำเป็นต้องใช้ ไลบารี พิเศษ คือ mahotas ซึ่ง เป็นไลบรารี่การประมวลผลภาพ (Image Processing) ใช้สกัดคุณลักษณะเด่นภายในภาพ ติดตั้งด้วยคำสั่ง !pip install mahotas ดังตัวอย่างต่อไปนี้

หลังจากติดตั้งเสร็จ แล้ว ลองทดสอบ โดย import mahotas as mh ถ้าไม่มี error ก็ถือว่า ใช้ได้ครับ

9 ภาพ ภูเขา ตัวอย่างการสอน (Train)

6 ภาพ ทะเล ตัวอย่างการสอน (Train)

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

ขั้นตอนที่ 1: ทำการประกาศใช้งานไลบรารี่ mahotas และตั้งชื่อย่อว่า mh ด้วยคำสั่ง mahotas as mh และ ประกาศ อาเรย์เปล่า สองอันคือ features และ labels จากนั้น อ่านรูปทะเล จำนวน 5 รูป ด้วยคำสั่ง imread

ขั้นตอนที่ 2: ทำการอ่านรูปภูเขา จำนวน 9 รูป ด้วยคำสั่ง imread

ขั้นตอนที่ 3: สร้าง อาเรย์ ของ features และ labels ทำการประกาศ Labels เฉลย เพื่อ สอนให้ เครื่องแยกภาพระหว่าง ภูเขา กับ ทะเล

ขั้นตอนที่ 4: Pipeline เป็น Package ใน Scikit-learn ที่ช่วยการทำ ML Model ได้สะดวกมากขึ้น โดย Pipeline เข้ามามีบทบาทในส่วนที่เป็น Data preparation กล่าวคือ การทำงานของ Pipeline คือการบอก Steps ต่าง ๆ ที่จำเป็นในการสร้างโมเดล เรียงเป็นขั้นตอน 1 → 2 → 3 แล้ว Pipeline จะทำการ “ต่อท่อ” ให้กับขั้นตอนเหล่านั้น จนได้เป็นโมเดลสุดท้ายออกมา

ขั้นตอนที่ 5: ทำทำการป้อนรูปภาพที่ ยังไม่เคยอยู่ในชุดสอน เพราะดูผลการทำนาย เราป้อนเข้าไป สามภาพ พบว่า ผลการทำนายถูกต้อง

หมายเหตุ สังเกตุว่า เครื่องสามารถแยกแยะ ระหว่างภูเขา กับ ทะเล โดยการเรียนรู้เองจากภาพ

--

--

รศ. ดร. เชฏฐเนติ ศรีสอ้าน
รศ. ดร. เชฏฐเนติ ศรีสอ้าน

Written by รศ. ดร. เชฏฐเนติ ศรีสอ้าน

รองอธิการบดีฝ่ายเทคโนโลยี มหาวิทยาลัยรังสิต

No responses yet