เกี่ยวกับโครงการ

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

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

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

การเรียนรู้เชิงลึกคืออะไร?

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

การเรียนรู้เชิงลึกได้รับการพิสูจน์แล้วว่ามีประสิทธิภาพมากในแอปพลิเคชันที่หลากหลาย รวมถึงคอมพิวเตอร์วิทัศน์และโครงข่ายประสาทเทียม Convolution (CNN) แอปพลิเคชันที่อธิบายไว้ใช้ทั้ง CNN และ Computer Vision เพื่อระบุส่วนผสมจากภาพอาหารจานทำอาหาร และแนะนำอาหารที่จะปรุงตามชุดส่วนผสมที่กำหนด

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

นอกจากนี้ ด้วยการใช้ประโยชน์จาก CNN การใช้ CNN (Convolutional Neural Networks) ในอุตสาหกรรมอาหารได้รับความสนใจและความนิยมอย่างมากในช่วงไม่กี่ปีที่ผ่านมา CNN ได้รับการพิสูจน์แล้วว่ามีประสิทธิภาพสูงในงานต่างๆ เช่น การจดจำอาหาร การระบุส่วนผสม และการตรวจสอบคุณภาพ

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

1. บทนำ

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

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

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

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

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

2. ชุดข้อมูล

มีชุดข้อมูลที่เปิดเผยต่อสาธารณะมากมายที่สามารถใช้สำหรับการตรวจจับอาหารโดยใช้การเรียนรู้เชิงลึก โดยเฉพาะกับรุ่น VGG16 ชุดข้อมูลยอดนิยมชุดหนึ่งคือชุดข้อมูล Food-101 ซึ่งประกอบด้วยหมวดหมู่อาหาร 101 หมวด รวมรูปภาพทั้งหมด 101,000 รูป แต่ละภาพจะมีป้ายกำกับหมวดหมู่อาหารที่เกี่ยวข้อง ชุดข้อมูลนี้สามารถใช้เพื่อฝึกโมเดล VGG16 สำหรับการจำแนกประเภทรูปภาพอาหารได้

ชุดข้อมูลอีกชุดที่สามารถใช้ได้คือชุดข้อมูล UEC-FOOD100 ซึ่งมีหมวดหมู่อาหาร 100 หมวดหมู่ รวมรูปภาพทั้งหมด 9,020 ภาพ แต่ละภาพจะมีป้ายกำกับหมวดหมู่อาหารตามลำดับเช่นกัน ชุดข้อมูลนี้ยังสามารถใช้เพื่อฝึกโมเดล VGG16 เพื่อตรวจจับและจำแนกประเภทอาหารต่างๆ

นอกจากนี้ยังมีชุดข้อมูลรูปภาพอาหารอื่นๆ เช่น ชุดข้อมูล Food-5K ชุดข้อมูลวัตถุดิบอาหารจีน และชุดข้อมูล Food20 ชุดข้อมูลเหล่านี้มีหมวดหมู่อาหารที่หลากหลาย และสามารถใช้เพื่อฝึกโมเดลการเรียนรู้เชิงลึก รวมถึง VGG16

3. การประมวลผลข้อมูลล่วงหน้า

การประมวลผลข้อมูลล่วงหน้าเป็นขั้นตอนสำคัญในงานตรวจจับสูตรอาหารสำหรับรูปภาพอาหารโดยใช้ Convolutional Neural Networks (CNN) โดยเกี่ยวข้องกับขั้นตอนสำคัญหลายขั้นตอนในการปรับปรุงประสิทธิภาพและความแม่นยำของแบบจำลอง

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

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

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

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

รูปภาพจาก food-101 และ allrecipes.com ได้รับการประมวลผล ทำความสะอาด และปรับขนาดเป็น 512 x 512 แล้ว

<แข็งแกร่ง>4. การฝึกอบรมแบบจำลอง

การฝึกอบรมแบบจำลองการตรวจจับสูตรอาหารโดยใช้ Convolutional Neural Networks (CNN) เกี่ยวข้องกับหลายขั้นตอน

ขั้นแรก จะต้องรวบรวมชุดข้อมูลขนาดใหญ่ของรูปภาพอาหารพร้อมกับฉลากสูตรอาหารที่เกี่ยวข้อง ชุดข้อมูลนี้ควรครอบคลุมสูตรอาหารและประเภทอาหารที่หลากหลายเพื่อให้แน่ใจว่าแบบจำลองมีความทนทาน

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

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

จากนั้น จำเป็นต้องกำหนดสถาปัตยกรรมแบบจำลอง โดยทั่วไปแล้ว CNN จะใช้สำหรับงานจดจำภาพเนื่องจากความสามารถในการจับภาพลักษณะเชิงพื้นที่ เลเยอร์ของ CNN เช่น Convolutional, Pooling, Activation Layers และการเชื่อมต่อแบบเต็มรูปแบบ

I. เลเยอร์ Convoltional: เลเยอร์เหล่านี้ใช้ชุดตัวกรองที่เรียนรู้ได้กับรูปภาพอินพุตเพื่อแยกคุณลักษณะที่สำคัญ เช่น ขอบ มุม และพื้นผิว

ครั้งที่สอง เลเยอร์การโพล: เลเยอร์เหล่านี้จะลดขนาดเชิงพื้นที่ (ความสูงและความกว้าง) ของเอาต์พุตจากเลเยอร์แบบหมุนวนโดยการสรุปการมีอยู่ของคุณลักษณะในพื้นที่เล็กๆ ของรูปภาพอินพุต

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

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

<แข็งแกร่ง>5. แอปพลิเคชันเว็บ

เราสร้างเว็บแอปพลิเคชันและ REST API สำหรับผู้ใช้เพื่อรวมเข้ากับแอปพลิเคชัน ประเมินและรวบรวมคำติชม สถาปัตยกรรมสำหรับแอปพลิเคชันแสดงไว้ด้านล่าง

รูปภาพแสดงแอปพลิเคชัน 5 ชั้นพร้อมไคลเอ็นต์ เซิร์ฟเวอร์ แอปพลิเคชันเซิร์ฟเวอร์ การสร้างโมเดล และฐานข้อมูล

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

<แข็งแกร่ง>6. การทดลอง

เราประเมินแอปพลิเคชันด้วยรูปภาพ 10,000 ภาพจากหมวดหมู่ต่างๆ การตรวจหารูปภาพอาหารด้วยการเรียนรู้เชิงลึกเป็นการทดลองที่น่าสนใจซึ่งได้รับความสนใจอย่างมากในช่วงไม่กี่ปีที่ผ่านมา อัลกอริธึมการเรียนรู้เชิงลึก โดยเฉพาะโครงข่ายประสาทเทียมแบบหมุนวน (CNN) แสดงให้เห็นผลลัพธ์ที่น่าพึงพอใจในการระบุและจัดหมวดหมู่รายการอาหารต่างๆ ในรูปภาพได้อย่างแม่นยำ

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

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

6.1 การจัดหมวดหมู่ภาพ

ภาพอินพุตผ่านเครือข่าย CNN เพื่อการจัดหมวดหมู่ โมเดลการจัดหมวดหมู่เมื่อรันบนรูปภาพ 10,000 ภาพ มีความแม่นยำ 95%

<แข็งแกร่ง>7. ข้อเสนอแนะ

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

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

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

<แข็งแกร่ง>8. บทสรุป

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

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

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

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

ข้อมูลอ้างอิง

[1] David J. Attokaren, Ian G. Fernandes, A. Sriram, Y.V. Srinivasa Murthy และ Shashidhar G. Koolagudi, “การจำแนกประเภทอาหารจากภาพโดยใช้โครงข่ายประสาทเทียมแบบ Convolutional”, 2017

[2] Heng Zhao, Kim-Hui Yap, Alex C. Kot , Lingyu Duan , Ngai-Man Cheung, “การเรียนรู้แบบฟิวชั่นเพียงไม่กี่ช็อตและหลายช็อตในการจดจำอาหารด้วยภาพบนมือถือ”, 2018

[3] McKinney, W., Python สำหรับการวิเคราะห์ข้อมูล: ข้อมูลขัดแย้งกับ Pandas, NumPy และ IPython 2012: “ O’Reilly Media, Inc.”