บอกแคลอรี่และวัตถุดิบของอาหารด้วย Line Chat Bot โดยวิธี Image Classification

Jaws McAvoy
botnoi-classroom
Published in
6 min readMar 5, 2021

“โปรเจคนี้เกิดขึ้นจากความร่วมมือของ BotnoiCV_Fundamental #Group 2”

บทนำ

เคยมีบ้างไหมเวลาที่เรากินอาหารเราอยากรู้ว่าอาหาร Street Food ที่เรากินนั้นมีการให้พลังงานหรือแคลอรี่ที่กินไปเท่าไหร่ และมีส่วนประกอบวัตถุดิบอะไรบ้าง

https://www.salika.co/2018/11/20/thai-street-food-go-inter/

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

https://sites.google.com/site/jjirapat570210035/home/ta-rang-khaelxri-khxng-xahar-prapheth-tang

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

https://www.wongnai.com/recipes/kapraow-in-rice-cooker

โดยทั่วไปแล้วอาหารที่จะบอกจำนวนแคลอรี่และวัตถุดิบนั้นจะเป็นอาหารบรรจุภัณฑ์ สำหรับอาหารที่เป็น Street Food ถ้าเราอยากรู้ว่าอาหารที่เรากินนั้นมีพลังงานกี่แคลอรี่หรือประกอบด้วยวัตถุดิบอะไร วิธีการของคนส่วนใหญ่ที่ทำกันนั่นก็คือการเสิร์จชื่ออาหารใน Google ซึ่งวิธีการนี้ก็ดีแต่ก็มีข้อเสียคือ การพิมพ์นั้นไม่สะดวกบางทีเราไม่รู้ชื่ออาหาร หรือบางทีพิมพ์ถูกพิมพ์ผิด และการพิมพ์บางครั้งก็ทำให้เสียเวลา จะง่ายกว่าไหมถ้าหากเราถ่ายรูปแล้วส่งไปใน Chatbot ใน Line แล้ว Bot ตอบกลับมาว่าอาหารในรูปมีพลังงานกี่แคลอรี่ และในอาหารนั้นประกอบไปด้วยวัตถุดิบอะไรบ้าง ด้วยเหตุนี้จึงทำเป็นที่มาของโปรเจค โดยโปรเจคนี้จะให้ผู้ใช้ถ่ายรูปอาหารที่เป็น Street Food ของไทยส่งไปใน Line แล้วให้ Chatbot ตอบกลับมาว่ารูปอาหารดังกล่าวมีพลังงานกี่แคลอรี่ และในอาหารประกอบด้วยวัตถุดิบอะไรบ้าง

กลุ่มเป้าหมาย

  • กลุ่มเป้าหมายหลัก คือผู้ใช้ที่เป็นคนไทยที่ต้องการควบคุมน้ำหนักหรือกลุ่มคนที่รักสุขภาพ ที่อยากรู้ว่าในอาหารที่กำลังจะกินนั้นมีแคลอรี่เท่าไหร่ เพื่อจะได้จำกัดและระมัดระวังในการกินอาหารเหล่านั้น
https://www.thaihealth.or.th/
  • กลุ่มเป้าหมายรอง คือผู้ใช้ที่เป็นนักท่องเที่ยวชาวต่างชาติที่ชอบมากินอาหารแนว Street Food ของไทยที่อยากรู้ว่าในอาหารไทยที่กินอยู่วัตถุดิบอะไรประกอบอยู่ เค้าจะแพ้วัตถุดิบที่มีในอาหารนั้นหรือไม่ หรือคนที่เป็นชาวมุสลิมก็สามารถตรวจสอบได้ว่าอาหารที่ทานนั้นมีส่วนประกอบที่เป็นของต้องห้ามทางศาสนาหรือไม่
https://sapparot.co/2017/05/03/bkk-street-food-2/

หัวข้อนำเสนอในบทความ

  1. การเก็บและเตรียมข้อมูลรูปภาพ
  2. การสร้างและวิเคราะห์โมเดล
  3. การนำโมเดลที่ได้มาสร้างเป็น API
  4. การใช้งานจริงกับ Line Chat Bot
  5. สรุปผลการทำงาน
  6. แนวทางการพัฒนาต่อในอนาคต
  7. Colab Code และ LINE Chatbot

1. การเก็บและเตรียมข้อมูลรูปภาพ

จากงานวิจัยที่เกี่ยวข้องเราพบงานวิจัยฉบับหนึ่งที่ทำการสร้างโมเดลเพื่อใช้ในการประมวลผลรูปภาพอาหารไทยจำนวน 50 อย่าง ประกอบไปด้วยอาหารประจำชาติไทยต่างๆ จากงานวิจัย NU-InNet: Thai Food Image Recognition Using Convolutional Neural Networks on Smartphone ซึ่งงานวิจัยนี้ได้รับการตีพิมพ์และเผยแพร่ทั้งเอกสารการสร้างโมเดลและ dataset ที่ถูกบันทึกไว้บน Github https://github.com/chakkritte/THFOOD-50

จาก dataset ที่ได้รับมานั้นเราได้ทำการตรวจสอบข้อมูลใน dataset (Data Preprocessing) โดยการตรวจสอบข้อมูลเบื้องต้น พบว่าข้อมูลที่ได้รับมานั้นถูกแบ่งมาให้แล้ว เป็น train Data และ Validation Data โดยแต่ละ Folder นั้นจะประกอบด้วยรูปภาพที่ต่างกันจำนวน 50 class ที่ถูกแบ่งโดยชื่อ Folder ซึ่งเราจะนำชื่อ Folder เหล่านี้มาใช้เป็น Label Data ในส่วนถัดไป

โดยทั่วไปแล้วการเก็บรูปภาพทางคอมพิวเตอร์นั้นจะถูกเก็บในลักษณะของข้อมูล Array โดยถูกแบ่งเป็น Layer ตามโหมดสีของรูปภาพนั้น ซึ่ง dataset ที่ได้รับมานั้นเป็นโหมด RGB มีขนาดความกว้างของเฉดสี 8bits โดยข้อมูลก็จะถูกแบ่งเป็น layer ของสีแดง เขียว น้ำเงิน โดยมีค่า Minumum เป็น 0 และค่า Maximum ของ pixel นั้นๆเป็น 255

[https://www.intechopen.com/books/applications-from-engineering-with-matlab-concepts/digital-image-processing-with-matlab]

โดยเราเริ่มจากการสะกัด label หรือ output ที่เราต้องการจะ train ออกมาก่อน จากนั้นเราก็ทำการบันทึกลงในตัวแปรแบบ dict

หลังจากนั้นเราก็จะทำการดึงรูปภาพจาก folder มาเก็บไว้ที่ ram เพื่อเตรียม train แต่ก่อนจะเริ่ม train model นั้นเราจำเป็นต้องเตรียมรูปภาพหรือข้อมูลให้พร้อมเสียก่อน ทั้งการลดขนาดของรูปให้เท่ากัน การปรับแต่งรูปให้มีคุณภาพที่ดีขึ้น และการเพิ่มปริมาณข้อมูลที่ใช้ในการ train ซึ่งหลังการเตรียมข้อมูลรูปภาพนั้นจะถูกจัดเก็บในตัวแปล train_generator และ validation_generator เพื่อรอทำการ train โมเดลและการทดสอบโมเดลในลำดับถัดไป

2. การสร้างและวิเคราะห์โมเดล

โมเดล deep learning ที่พวกเราเลือกมาใช้ในการ train ข้อมูลนั้น ได้รับแรงบันดาลใจมาจาก keras applications โดยวิเคราะห์จาก 2 ปัจจัยหลัก ได้แก่ ขนาดของโมเดลและ accuracy จาก performance ของโมเดลที่ได้มีการ pre-trained มาแล้วบน ImageNet validation dataset

https://keras.io/api/applications/

ซึ่งจากการประชุมกันในกลุ่ม สรุปได้ว่าจะใช้โมเดลทั้ง 3 ได้แก่ VGG16, Inception-v3 และ EfficientNet โดยเราจะมาทำความรู้จักกับแต่ละโมเดลคร่าว ๆ กัน ดังต่อไปนี้

2.1 VGG16

VGG16, paper: https://arxiv.org/pdf/1409.1556.pdf

เป็นโมเดลที่ได้รับรางวัลรองแชมป์ของการแข่งขัน ILSVRC-2014 (Large Scale Visual Recognition Challenge : http://www.image-net.org/challenges/LSVRC/ ) ด้วย top-5 error rate 5.1% ในการ train ImageNet dataset (14M images, 1,000 classes) ซึ่งเราเลือก Optimizer เป็น Adam หลังการ Train นั้นเราได้รับความแม่นยำของ Validation Accuracy เป็น 72.75%

2.2 Inception-V3

Inception v1 Architecture, paper: https://arxiv.org/pdf/1409.4842v1.pdf

Inception หรือ GoogleLeNet เป็นโมเดลที่ถูกพัฒนาขึ้นโดย Google และเป็นผู้ชนะในการแข่งขัน ILSVRC-2014 ด้วย top-5 error rate 6.67% โดยในที่นี้พวกเราเลือกใช้ตัวโมเดล Inception-v3 ซึ่งเป็นเวอร์ชันที่ถูกพัฒนาขึ้นมาจาก Inception-v2 โดยการเติม Batch Normalization เข้าไปในตัว architecture ของโมเดล ซึ่งในการ train โมเดลนี้นั้น พวกเราได้เลือก optimizer เป็น SGD หลังการ Train นั้นเราได้รับความแม่นยำของ Validation Accuracy เป็น 77.94%

2.3 EfficientNet-B0

(a) is a baseline network example; (b)-(d) are conventional scaling that only increases one dimension of network width, depth, or resolution; (e) is EfficientNet, paper: https://arxiv.org/pdf/1905.11946.pdf

EfficientNet ถูกคิดค้นขึ้นโดย Mingxing Tan และ Quoc V. Le ในปี 2020 โดยมีไอเดียมาจากการ balance ความลึก, ความกว้าง และความละเอียดของ input image ใน network ด้วยค่า fixed ratio

โดยในโปรเจคนี้พวกเราเลือกใช้โมเดล EfficientNet-B0 ซึ่งเป็น baseline โมเดลของ EfficientNet ที่มีค่าพารามิเตอร์ต่างๆ ดังนี้ โดยในการฝึกฝนข้อมูล เราได้ทำการเลือก optimizer เป็น AdaBelief หลังการ Train นั้นเราได้รับความแม่นยำของ Validation Accuracy เป็น 90.94%

หลังจากทำการทดสอบโมเดลทั้ง 3 จาก dataset THFood-50 แล้วทำการ Train โมเดลรวมถึงการปรับเปลี่ยน Hyper Parameter ต่างๆของโมเดล จนได้ค่า Validation Accuracy ที่ดีที่สุดของแต่ละ Model

จากตารางการเปรียบเทียบโมเดลนั้น เราจะเห็นว่าโมเดลที่ได้ค่า accuracy สูงที่สุดคือ EfficientNet-B0 แต่เราไม่สามารถ deploy โมเดลตัวนี้ขึ้น Heroku ได้เนื่องจากโมเดลตระกูล EfficientNet นั้นจำเป็นต้องมีการเรียกใช้งาน CuDNN หรือ software สำหรับการรันโมเดลบน GPU ซึ่ง server ให้บริการของ Heroku Platform นั้นไม่รองรับ GPU ดังนั้น พวกเราจึงตัดสินใจเลือกโมเดล Inception-v3 ที่มีค่า accuracy รองลงมาจาก EfficientNet-B0 ในการ deploy ขึ้นบน Clound Platform เพื่อสร้างเป็น API ที่ใช้ในการทำนายรูปภาพ

3. การนำโมเดลที่ได้มาสร้างเป็น API

หลังจากการสร้างและทดสอบโมเดลทั้ง 3 โมเดลอันได้แก่ VGG16, InceptionV3 และ EfficientNet พบว่าโมเดล EfficientNet นั้นมีผลการทำนายที่ดีที่สุด และใช้ทรัพยากรของเครื่องได้น้อยที่สุด จากเหตุผลดังกล่าวเราจึงนำมาทดสอบสร้างเป็น API ที่ใช้ในการทำนายรูปภาพต่างๆที่จะถูกสร้างเข้ามา เพื่อนำไปใช้งานร่วมกับ Chatbot ของ Line ซึงมีโครงสร้างของระบบดังต่อไปนี้

โดยที่โมเดล Inception-V3 ที่ได้สร้างขึ้นมานั้นเราได้นำไป deploy เพื่อใช้งานเป็น Prediction API เพื่อทำนายข้อมูล ซึ่ง API มีรายละเอียดการทำงานเบื้องต้นดังต่อไปนี้

ข้อมูลนำเข้า

  • รูปภาพอาหาร (ภาพถ่าย)

ข้อมูลผลลัพธ์

  • ชื่ออาหาร (Food Name)
  • พลังงาน (Calories) ของอาหาร ต่อหนึ่งหน่วย (Per Unit)
  • สูตรและส่วนประกอบของอาหาร (Recipe)
  • คลิปวิธีการทำอาหาร (Cooking)

เมื่อระบบได้รับข้อมูลนำเข้าไปเป็นรูปภาพอาหารระบบจะทำการส่งรูปไปให้โมเดลทำนาย และสิ่งที่โมเดลทำนายได้นั้นคือ label หรือชื่อของข้อมูลนั้นๆ เช่น label: 0 = BitterMelonSoup โดยเราจะนำ label ที่ได้นั้นมาเรียกข้อมูลผลลัพธ์จาก Database ในไฟล์ CSV

จากการใช้งานครั้งแรก หลังทำการสร้างโมเดลที่พัฒนา API ขึ้นระบบ Cloud Platform โดยใช้แบบไม่มีค่าใช้จ่าย — Free Tire ซึ่งโมเดลที่นำขึ้นระบบใช้งานจริงตอนนั้นคือ VGG16 และต่อมาทดสอบการนำขึ้นระบบด้วย InceptionV3 ซึ่งพบว่ามีการใช้งานได้รวดเร็วกว่า VGG16 แต่ก็พบปัญหาว่าคุณสมบัติของระบบค่อนข้างน้อย (CPU: 2vCpu, RAM: 512MB) จึงพิจารณานำไปใช้งานบนระบบคลาวด์ซึ่งเลือกใช้แบบ IaaS (Infrastructure-As-A-Service) ซึ่งเปรียบเสมือนใช้งานบนเซิร์ฟเวอร์ที่มีคุณสมบัติสูงขึ้น (CPU: 8Cpu RAM: 16GB) ทำให้สามารถทำการ Fine tune ประสิทธิภาพการทำงานเพิ่มเติมได้ละเอียดเต็มที่ ทั้งในระดับระบบปฏิบัติการ (OS) และระดับเซอร์วิส (Service) หลังจากทำการพัฒนา API เสร็จแล้วจึงนำขึ้นไปใช้งานบน Cloud Platform เพื่อเชื่อมต่อกับ Line Chat bot และใช้ในการทำนายต่อไป

4. การใช้งานจริงกับ Line Chat Bot

ในส่วนของ User Interface นั้นเราออกแบบให้ User ใช้งาน Chat bot ให้ง่าย และสะดวกที่สุด โดยการอัพโหลดรูปภาพไปยังไลน์ Chatbot หลังจากนั้น Chat bot ก็จะทำการทำนายรูปจากโมเดล และตอบกลับมาว่าเมนูนี้คืออะไรพร้อมทั่งบอกถึงปริมาณ Calories ต่อหน่วย รวมถึงการแนะนำสูตร และวิธีการทำอาหาร ตามรูปภาพ

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

และในส่วนของ Recipe แชทบอทจะนำพาคุณไปยังเว็บไซต์ที่มีข้อมูลหลากหลายเกี่ยวกับอาหารชนิดนั้นๆ

หลังจากทำการเผยแพร่ Line Bot Version ทดสอบไปเพื่อเก็บข้อมูลการใช้งานของ User เราได้รับข้อมูลต่างๆทั้งการทำนายรูปที่ถูกต้องและผิด ผ่านตัวอย่างประสบการณ์การใช้งานจริงจาก User

จะสังเกตได้ว่าการทำนายนั้นแม่นยำมากเมื่อรูปถ่ายอยู่ในตำแหน่งที่เหมาะสมไม่ปนกับอาหารชนิดอื่น ไม่เคลื่อนไหวและอยู่ใน 50 ชนิดอาหารที่ model สามารถทำนายได้

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

5. สรุปผลการทำงาน

หลังจากได้มีการกำหนดหัวข้อและได้ทำการแบ่งงานกันออกไปในแต่ละส่วนได้แก่

5.1 การเลือก dataset ที่มีความท้าทายและตอบโจทย์กับงานที่ทำนั้น ปัจจุบันงานวิจัยเกี่ยวกับ AI และ Image Processing แพร่หลายเป็นอย่างมาก เราสามารถค้นหา dataset ในหมวดที่เรามีความสนใจได้เลย และใน dataset ที่ถูกเผยแพร่นั้น มักจะมีผลทดสอบของโมเดลต่างๆที่ใช้ในการทดสอบ รวมถึงไฟล์โมเดลให้สามารถนำไปประยุกต์ใช้งานต่อได้เลย ส่วนในสายงานวิจัยนั้นก็จะระบุว่า dataset นี้เหมาะกับโมเดลประเภทใด เพื่อลดขอบเขตความเป็นไปได้ที่จะใช้โมเดลในการทดสอบลงด้วย

5.2 การเลือกและทดสอบโมเดล สำหรับงานในครั้งนี้นั้นด้วยเวลาที่จำกัดเพียง 1 สัปดาห์กับการเริ่มต้นโปรเจคตั้งแต่คิดไอเดียจนถึงการเขียนบทความในครั้งนี้นั้น เป็นอุปสรรคอย่างมากกับการทดสอบโมเดล ด้วยโมเดลที่มีรูปแบบ และ Architecture รวมถึงการปรับจูน Hyper Parameter ที่ต่างออกไป ทำให้การ train โมเดลนั้นเป็นเรื่องที่ยากลำบากพอสมควร (ในกรณีของทีม CVE1_2 นั้นใช้ Colab Pro ทำให้สามารถ train โมเดลได้เร็วขึ้นกว่า 2 เท่า)

5.3 การนำโมเดลที่สร้างไปขึ้น API หลังจากทำการทดสอบโมเดลเป็นที่เรียบร้อย การเลือก Cloud หรือ Application Platform ก็เป็นสิ่งสำคัญ จากการใช้งานพบว่า API สามารถทำงานได้เร็วกว่าการใช้งานครั้งแรกอย่างเห็นได้ชั้ดเจน เมื่อพัฒนาโมเดลเพิ่มเติมอย่างโมเดลจำพวก EfficientNet ซึ่งจากการใช้งาน พบว่าโมเดลเมื่อมีการใช้งานบนระบบนี้ จะให้ผลการทำนายเป็น nan ทุกครั้ง เนื่องจากพบข้อมูลบางส่วนพบว่าโมเดล EfficientNet มีความต้องการใช้งาน GPU ทำให้เมื่อใช้งานบนคลาวด์ที่ระบบมีแต่ CPU มีผลทำให้โมเดลไม่สามารถทำงานได้เป็นผลทำให้ผลการทำนายที่ได้เป็น nan ทั้งหมด ทางเลือกสำหรับปัญหานี้ ได้แก่

  1. ใช้งานโมเดล InceptionV3 เพื่อให้สามารถใช้งานระบบบนคลาวด์ได้ -> เลือกทางเลือกนี้เนื่องจากค่าใช้จ่ายอยู่ในงบประมาณที่รับได้ และเหมาะกับระบบทดสอบ ณ วันที่พิจารณา
  2. เลือกใช้งานคลาวน์ที่มี GPU -> ยังไม่ได้เลือกทางนี้ เนื่องจากการหาข้อมูลพบว่ามีค่าใช้จ่ายที่สูงมา แต่ในอนาคตหากมีการใช้งานจริง จะเป็นทางเลือกที่จะพิจารณา เนื่องจากโมเดล EfficientNet มีความแม่นยำสูงมาก

ซึ่งหากในอนาคต หรือมีผู้นำไปใช้งานต่อเราขอแนะนำให้เลือกใช้โมเดล EfficientNet หรือโมเดลที่มีความเหมาะสบกับ dataset นั้นๆ

5.4 การออกแบบ Line Chat Bot โดยปัญหาที่เกิดขึ้นหลังการทดสอบ API ที่เชื่อมต่อกับ Line Chat Bot ซึ่งหลังการเผยแพร่ให้ผู้ใช้งานได้ทำการทดสอบนั้น ผลปรากฏว่ามีทั้งการทำนายที่ถูก และผิด เนื่องด้วยหลายสาเหตุอันได้แก่ dataset ที่ใช้ในการ train, ภาพถ่ายของ User ที่เบลอ, Out of label ซึ่งผลสรุปว่าโมเดลนั้นสามารถตอบโจทย์ได้กับผู้ใช้งานที่มีกล้องโทรศัพท์มือถือที่มี resolution ที่โอเค ภาพที่ถ่ายได้นั้นมี noise ไม่มากจนเกินไป รวมถึงปัญหาจาก dataset ที่รูปภาพอาหารส่วนมากเป็นกับข้าว ในขณะที่ผู้ใช้งานหลายท่านมักจะสั่งเป็นเมนูราดข้าว ซึ่งใน dataset ควรมีรูปภาพที่เป็นทั้งกับข้าว และราดข้าวเพื่อความแม่นยำในการทำนายที่ดีขึ้น และองค์ประกอบหลักของภาพนั้นควรเป็นรูปอาหาร ซึ่งสามารถทำการเพิ่มโมเดลให้ทำ Object Detection ก่อนที่จะนำ Object มาทำนายใน Classification ต่อไป

6. แนวทางการพัฒนาต่อในอนาคต

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

  • ในการจำแนกในโปรเจคนี้ ณ ตอนนี้เราจำแนกจากรูปว่าอาหารจานนี้เป็นอาหารอะไร แต่ในการพัฒนาถัดไปเราจะทำให้โปรเจคนี้สามารถบอกได้ว่าเป็นอาหารอะไร และมีปริมาณแคลอรี่จริง ๆ เท่าไหร่จากรูป เพราะในโปรเจคนี้เราบอกปริมาณแคลอรี่จากฐานข้อมูลที่เราบันทึกไว้ซึ่งเป็นค่าเฉลี่ย แต่ไม่ได้บ่งบอกแคลอรี่ที่แท้จริงในรูปอาหารที่เราถ่ายอยู่ ณ ขณะนั้น เช่น กระเพราะหมูกรอบไข่ดาวมีปริมาณแคลอรี่เฉลี่ยอยู่ที่ 650 kcal แต่ในความเป็นจริงนั้นแต่ละร้านอาจจะให้หมูกรอบ และข้าวไม่เท่ากัน ซึ่งทำให้แคลอรี่ที่แท้จริงอาจจะมากหรือน้อยกว่า 650 kcal ซึ่งจะเป็นขั้นตอนพัฒนาถัดไปของโปรเจคนี้
  • เพิ่มประเภทของอาหารที่มีในฐานข้อมูลให้มากขึ้นเนื่องจากประเภทอาหารที่มีอยู่ในฐานข้อมูลนั้นน้อยเกินไปซึ่งอาหารไทยที่เป็น Street Food นั้นมีจำนวนมาก โดยในขั้นตอนพัฒนานี้เราจะเริ่มจากประเภทอาหารทางภาคกลางก่อนเนื่องภาคกลางมีผู้ใช้จำนวนมากแล้วจึงค่อยขยายฐานข้อมูลไปยังประเภทอาหารของภูมิภาคอื่นในประเทศไทย
  • นำโมเดลนี้ไปใช้ในระดับอุตสาหกรรมอาหารเช่นการผลิตข้าวกล่องในร้านสะดวกซื้อ ซึ่งต้องมีการใช้คนในการสุ่มตรวจสอบความผิดพลาด การใช้คนตรวจสอบก็อาจจะมีอาการเมื่อยล้าทำให้เกิดความผิดพลาดได้ในการตรวจสอบได้ เราสามารถนำโมเดลที่ใช้ในการจำแนกอาหารไปประยุกต์ใช้กับการตรวจสอบได้เช่น ปริมาณอาหารที่อยู่ในกล่องมากหรือน้อยเกินไปหรือไม่ หรือวัตถุดิบที่มีอยู่ในอาหารกล่องมีอยู่ครบถ้วนหรือไม่

7. Colab Code และ LINE Chatbot

  • Colab Code: Model Inception V3
  • Line Chatbot: @746velho

ผู้จัดทำ

  1. Witthawin Sripheanpol (Ro)
  2. Limpapat Bussaban (Aon)
  3. Sivaphong Niyomphanich (Pong)
  4. Sansanee Netirojjanakul (Nok)
  5. Rajasurang Wongkrasaemongkol (Prim)
  6. Nattarach Larptaweepornsup (Rise)
  7. Teerapong Orachon (Jaws)

--

--