• กองส่งเสริมการวิจัยและบริการวิชาการ มหาวิทยาลัยมหาสารคาม
  • 04-3754-416 (1756)

กระบวนการเรียนรู้เชิงลึกสำหรับการรู้จำรูปภาพอาหาร
Deep Learning Approach for Food Image Recognition

ความสำคัญ/ ที่มา :

          ในช่วงไม่กี่ปีที่ผ่านมาได้มีการศึกษาเกี่ยวกับอาหารในแง่มุมต่าง ๆ อาทิเช่น การบริโภคอาหาร, ความปลอดภัยของอาหาร และวัฒนธรรมอาหาร เป็นต้น อย่างไรก็ตามการศึกษาเหล่านี้ได้มีการดำเนินการโดยใช้แนวทางดั้งเดิมยกตัวอย่างเช่น การใช้แบบสอบถาม การผลิตตำราอาหารและสูตรอาหาร การจดบันทึกการบริโภคอาหาร หลังจากที่ เครือข่ายสังคมออนไลน์ การใช้อินเทอร์เน็ตเพื่อสรรพสิ่ง Internet of Things (IoT) เว็บไซต์ต่าง ๆ ได้ถูกพัฒนาขึ้นมาอย่างรวดเร็ว ทำให้ผู้ใช้งานสามารถแบ่งปันภาพอาหาร สูตรอาหาร วีดีโอการทำอาหาร หรือบันทึกการรับประทานอาหารผ่านเครือข่ายเหล่านี้ได้อย่างง่ายดาย ทำให้เกิดข้อมูลชุดอาหารขนาดใหญ่ ซึ่งข้อมูลเหล่านี้บ่งบอกถึงความรู้ที่หลากหลาย และยังสามารถส่งต่อความรู้เพื่อใช้ในการศึกษาเกี่ยวกับภาพอาหารเหล่านี้ไม่ว่าจะเป็นเรื่องของการรับรู้ภาพอาหาร (Food Image Recognition) การติดตามการรับประทาน (Monitoring the diet) ปัจจุบันได้มีการนำปัญญาประดิษฐ์ (AI) เช่นการเรียนรู้เชิงลึก (Deep Learning) มาใช้ในการศึกษาด้านการรับรู้ภาพอาหารจากชุดข้อมูลขนาดใหญ่ที่มีอยู่ในปัจจุบัน

          งานวิจัยส่วนใหญ่เกี่ยวกับการรู้จำภาพอาหารเป็นการทำนายรายการอาหารเพียงรายการเดียวที่ปรากฎอยู่บนภาพอาหารหนึ่งภาพ วิธีการหนึ่งที่ได้รับความนิยมในการรู้จำภาพอาหารได้แก่การดึงคุณสมบัติรูปภาพด้วยมือ (Hand-craft Feature) ร่วมกับการเรียนรู้ด้วยเครื่อง (Machine Learning) ในปี 2009 นักวิจัย Joutou and Yani (Joutou และ Yani, 2009) ได้นำเสนอวิธีการที่เรียกว่า Multiple Kernel Learning (MKL) เพื่อนำมาใช้ในการรู้จำรูปภาพอาหารจำนวน 50 ชนิดที่มีความแตกต่างกัน เช่น ข้าวแกงกะหรี่ แฮมเบอร์เกอร์ สเต็ก  ติ่มซำ ยากิโทริ ราเม็ง โซบะ ข้าวผัด ข้าวหน้าปาไหล ขนมปังปิ้ง และขนมปัง ในงานวิจัยได้เลือกใช้วิธีการหาคุณลักษณะพิเศษของรูปภาพ (Image Features) ประกอบด้วยวิธี Bag-of-Features (BoF), Color Histogram และ Gabor Texture เมื่อได้ลักษณะเด่นของข้อมูลจากรูปภาพอาหารจึงส่งไปจัดหมวดหมู่ (Classification) ด้วยวิธี Support Vector Machine (SVM) โดยใช้เคอร์นอลแบบ MKL ทั้งนี้ ในงานวิจัยยังได้พัฒนาแอปพลิเคชันบนมือถือต้นแบบ (Mobile Application Prototype) สำหรับถ่ายรูปอาหารและส่งไปยังระบบเพื่อวิเคราะห์ จากนั้นจึงส่งกลับไปให้ผู้ใช้งานได้ตรวจสอบประเภทของอาหารที่กำลังจะรับประทานอีกด้วย ต่อมาปี 2010 นักวิจัย Hoashi และคณะ (Hoashi และคณะ, 2010) นำเสนอชุดข้อมูลรูปภาพอาหารจำนวน 85 ชนิด โดยใช้วิธีการหาคุณลักษณะพิเศษทั้งสิ้น 4 วิธี ประกอบด้วย BoF, Color Histogram, Gradient Histogram และ Gabor Texture จากนั้นนำคุณลักษณะพิเศษทั้งหมดมารวมกันเรียกว่า Feature Fusion เพื่อสร้างเป็นชุดข้อมูล (Feature Vector) เพื่อนำไปจัดหมวดหมู่ด้วยวิธี SVM และ MKL ในปี 2012 นักวิจัย Matsuda และคณะ (Matsuda และคณะ, 2012) ได้นำเสนอวิธีการรู้จำรูปภาพอาหารที่มีอาหารหลายประเภทในหนึ่งรูปภาพ (Multiple-Food Images) โดยพิจารณาจากบริเวณพื้นที่ที่คาดว่าจะเป็นบริเวณของอาหาร (Candidate Regions) โดยใช้วิธี Felzenszwalb deformable part model (DPM), Circle detector และวิธี JSEG region segmentation เมื่อได้บริเวณของอาหารที่ต้องการจากนั้นนำพื้นที่นั้นไปคำนวณหาคุณลักษณะพิเศษ ประกอบด้วยวิธี BoF, Scale Invariant Feature Transform (SIFT) และวิธี Histogram Of Oriented Gradient (HOG) สุดท้ายส่งต่อไปยัง MKL-SVM เพื่อรู้จำเมนูอาหารในแต่ละบริเวณของรูปภาพ

          ปัจจุบัน งานวิจัยทางด้านการเรียนรู้เชิงลึก (Deep Learning) ได้รับความนิยมและนำมาใช้เพื่อแก้ไขปัญหาทางด้านการรู้จำรูปภาพ (Image Recognition) เช่น การรู้จำรูปภาพตัวอักษร (Alizadehashraf และ Roohi, 2017; Darmatasia และ Fanany, 2017) การรู้จำรูปภาพรถ (Dhar และ Deb, 2016; Paiva และ Neto, 2018) และการรู้จำใบหน้า (Kittler และคณะ, 2018; Sushama และคณะ, 2018) ทั้งนี้ ยังได้นำการเรียนรู้เชิงลึกไปใช้กับการรู้จำรูปภาพอาหาร (Liu และคณะ, 2018; Pandey และคณะ, 2017) ในงานวิจัยของ Termritthikun และคณะ (Termritthikun และคณะ, 2017; Termritthikun และ Kanprachar, 2018) ได้ใช้โครงข่ายประสาทเทียมแบบคอนโวลูชัน (Convolutional Neural Network: CNN) ซึ่งเลือกใช้โครงสร้าง (Architecture) แบบ Inception และ ResNet ในการรู้จำรูปภาพอาหารไทยที่มีอยู่ทั้งสิ้น 50 ประเภทอาหาร ซึ่งพบว่าโครงสร้างแบบ ResNet มีอัตราความถูกต้องสูงกว่า แต่ทั้งนี้ใช้เวลาในการประมวลผลที่นานกว่า Inception ถึง 4 เท่า และมีขนาดของโมเดล (Model Size) ที่ใหญ่กว่าถึง 15 เท่า และในปี 2017 นักวิจัย Mezgec และ Seljak (Mezgec และ Seljak, 2017) ได้นำเสนอโครงสร้างใหม่ที่เรียกว่า NutriNet ซึ่งเป็นโครงสร้างของการเรียนรู้เชิงลึกที่ใช้สำหรับรู้จำรูปภาพอาหารและเครื่องดื่ม (Food and Drink Image Recognition) ซึ่งนำมาช่วยในเรื่องการประเมินโภชนาการอาหาร (Dietary Assessment) ซึ่งได้นำมาช่วยในการวิเคราะห์รูปภาพอาหารและเครื่องดื่มที่มีมากถึง 520 ประเภท โดยมีรูปภาพประเภทละ 100 รูปภาพ รวมเป็น 52,000 รูปภาพ ในการทดลองเริ่มต้นการแบ่งรูปภาพออกเป็น 2 กลุ่มใหญ่ ประกอบด้วยกลุ่มรูปภาพอาหารและเครื่องดื่ม และกลุ่มรูปภาพทั่วไป โดยมีจุดประสงค์เพื่อทำให้ระบบเรียนรู้และรู้จำกลุ่มประเภทอาหารและเครื่องดื่ม โดยในการทดลองผู้วิจัยได้ใช้วิธีการหมุนภาพ (Rotation) รูปภาพโดยกำหนดให้หมุนภาพที่ 90, 180 และ 270 องศา ทำให้มีรูปภาพที่ใช้ในการทดลองมากถึง 130,517 รูปภาพ โดยแบ่งเป็นกลุ่มของรูปภาพอาหารและเครื่องดื่ม และกลุ่มรูปภาพทั่วไป จำนวน 54,564 และ 75,953 รูปภาพ ตามลำดับ ในขั้นตอนถัดมา นักวิจัยได้แยกรูปภาพกลุ่มทั่วไปออก และนำเฉพาะรูปภาพอาหารและเครื่องดื่มไปสร้างโมเดลสำหรับแยกประเภทของอาหารและเครื่องดื่ม ในขั้นตอนนี้ได้ใช้วิธีการเพิ่มข้อมูล (Data Augmentation) ซึ่งประกอบด้วยการกลับรูปภาพตามแนวนอน (Horizontal Flip) การเพิ่มจุดรบกวนแบบสี (Random Color Noise) ทำให้รูปภาพแต่ละรูปภาพเพิ่มขึ้นเป็น 7 รูป สำหรับการทดลองได้แบ่งข้อมูลออกเป็น 3 ชุด ประกอบด้วยชุดเรียนรู้ (Training Set) ชุดตรวจสอบ (Validation Set) และชุดทดสอบ (Test Set) โดยนำโครงสร้างของ NutriNet ที่ได้นำเสนอในงานวิจัยนี้มาทดสอบในการรู้จำรูปภาพอาหารและเครื่องดื่ม เปรียบเทียบกับโครงสร้างแบบ AlexNet, GooGleNet และ ResNet ซึ่งพบว่า NutriNet มีอัตราความถูกต้องสูงกว่า AlexNet และ GooGleNet

          อย่างไรก็ตามความท้ายทายของการพัฒนากระบวนการจดจำภาพอาหารสามารถวิเคราะห์โดยสรุปได้ดังนี้ (Min และคณะ, 2019) 1) ภาพอาหารไม่มีการจัดวางเชิงพื้นที่ที่โดดเด่น และมีองค์ประกอบในภาพที่ไม่ใช่วัตถุที่เป็นอาหาร เช่น คน มีด จาน เป็นต้น (รูปที่ 1 (ก)) ทำให้ไม่สามารถค้นหาคุณสมบัติที่โดดเด่นจากภาพอาหารได้เช่นเดียวกับการค้นหาคุณสมบัติภาพของใบหน้าหรือต้นไม้ 2) ภาพอาหารในหมวดหมู่เดียวกันมีความแตกต่างกัน ในขณะที่มีความคล้ายคลึงกันในหมวดหมู่ที่แตกต่างกัน เช่น เค้กช็อคโกเลต กับ ช็อคโกเลตมูส ทำให้ไม่สามารถใช้วิธีการจำแนกแบบละเอียดที่มีอยู่ได้โดยตรง (รูปที่ 1 (ข)) และ 3) การขาดภาพอาหารมาตรฐานขนาดใหญ่ที่รวบรวมอาหารในทุกภูมิภาคทั่วโลก โดยทั่วไปจะพบว่าอาหารที่มีคุณลักษณะแบบเดียวกันกันอาจใช้ชื่อที่แตกต่างกันหลายชื่อ เช่นในภาคกลางของประเทศไทยเรียกส้มตำ ในขณะที่ภาคอีสานเรียกว่าตำบักหุ่ง ในทำนองเดียวกันอาหารที่ใช้ชื่อเหมือนกันอาจมีคุณลักษณะของอาหารแตกต่างกัน เนื่องจากความแตกต่างของภูมิภาคที่มีการปรุงอาหารหรือการเรียกชื่ออาหารแต่ละจานแตกต่างกัน นั่นคือเหตุผลที่ยากขึ้นในการสร้างมาตรฐานตามชื่อจานสำหรับชุดข้อมูลอาหาร อย่างไรก็ตามมีชุดข้อมูลอาหารมาตรฐานบางอย่างเช่น UECFood256 (Kawano และ Yanai, 2014) และ ETH Food-101 (Bossard และคณะ, 2014) ซึ่งมีหมวดหมู่และจำนวนของชุดข้อมูลที่ค่อนข้างหลากหลายตามแต่ละภูมิภาค อย่างไรก็ตามชุดภาพอาหารเหล่านี้ก็ยังไม่ใหญ่พอเมื่อเทียบกับภาพอาหารโลกแห่งความจริง จากเหตุผลเหล่านี้ทำให้การออกแบบกระบวนการการรู้จำภาพอาหารจึงมีความยากที่จะทำให้มีความถูกต้องในระดับสูง

          จากความท้าทายของการรู้จำภาพอาหารร่วมกับวิธีการที่ได้กล่าวมาแล้วข้างต้น ผู้วิจัยจึงได้นำเสนอกระบวนการในการรู้จำรูปภาพอาหารด้วยวิธีการเรียนรู้เชิงลึก โดยได้แบ่งรูปแบบของกระบวนการศึกษาดังนี้

1)       การใช้เครือข่ายประสาทเทียมที่ล้ำสมัย (state-of-the-art Convolution Neural Network: CNN) ซึ่งเรียกว่าสถาปัตยกรรม MobileNet โดยได้นำเสนอการลดจำนวนพารามิเตอร์ในแบบจำลองโดยการแทนที่เลเยอร์ Average Pooling ด้วย Global Average Pooling (GAP) ซึ่งจะช่วยลดค่า Overfitting ลง จากนั้นใช้ Batch  Normalization  (BN),  Rectified  Linear  Unit (ReLU),  และ  Dropout  Layers แล้วส่งไปคำนวณเพื่อจำแนกประเภทด้วย Softmax Layer การทดลองนี้ได้เลือกใช้ชุดข้อมูลภาพอาหาร ETH Food-101 ซึ่งมีรูปภาพมากถึง 101,000 ภาพจาก 101 ประเภทอาหาร นอกจากนี้ยังได้เลือกใช้เทคนิค Data Augmentation แบบ Adaptive เพื่อเพิ่มประสิทธิภาพของการรู้จำภาพด้วย

2)       การสกัดคุณลักษณะเชิงพื้นที่ (spatial features) โดยใช้เครือข่ายประสาทเทียมที่ล้ำสมัย (CNN) โดยใช้ VGG16, VGG19, ResNet50, Dense201, MobileNetV1 และ MobileNetV2 แล้วนำไปเรียนรู้ต่อด้วยเครือข่าย LSTM และ Conv1D-LSTM ซึ่งสามารถสกัดคุณลักษณะชั่วคราว (temporal features) ก่อนส่งต่อไปยัง Global Average Pooling (GAP) และจำแนกประเภทด้วย Softmax Layer นอกจากนี้ยังมีเทคนิค Data Augmentation แบบ Adaptive ในขณะฝึกอบรมแบบจำลอง CNN โดยเทคนิคนี้ช่วยเพิ่มประสิทธิภาพในการจดจำภาพอาหารได้ ชุดข้อมูลที่ใช้ในการทดลองนี้เป็นชุดข้อมูลภาพอาหาร ETH Food-101

3)       การนำคุณลักษณะที่ถูกสกัดด้วยสถาปัตยกรรม CNN ได้แก่ VGG16, VGG19, ResNet50, DenseNet201 มาหลอมรวมคุณลักษณะที่สกัดได้ก่อนนำไปเรียนรู้ต่อด้วยเครือข่าย Conv1D-LSTM จากนั้นส่งต่อไปยัง Global Average Pooling (GAP) และจำแนกประเภทด้วย Softmax Layer นอกจากนี้ยังได้มีการนำผลการทำนาย (Prediction) ของแต่ละโมเดลมาผ่านกระบวนการ Vote เพื่อหาค่าที่ดีที่สุด โดยกระบวนการ Vote ได้มีการใช้เทคนิค Voting-based ensemble ดังต่อไปนี้ 1) Minimum probability 2) Average of probabilities 3) Median 4) Max probability 5) Product of probabilities และ 6) Weighted product of probabilities ชุดข้อมูลที่ใช้ในการทดลองนี้เป็นชุดข้อมูลภาพอาหาร ETH Food-101, UEC-Food256

วัตถุประสงค์ :

เพื่อพัฒนากระบวนการเรียนรู้เชิงลึกสำหรับระบบการรู้จำรูปภาพอาหาร