Luận văn Thạc sĩ CNTT: Nhận dạng và ước lượng calo trong thực phẩm

Luận văn thạc sĩ CNTT nghiên cứu nhận dạng thực phẩm và ước lượng calo bằng AI, xử lý ảnh. Xây dựng mô hình và phát triển ứng dụng trên Android.

Trường đại học

Trường Đại học Lạc Hồng

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Luận văn thạc sĩ

2020

71
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. Cách AI Cách Mạng Hóa Nhận Dạng Thực Phẩm Ước Lượng Calo Chính Xác

Trong bối cảnh xã hội ngày càng phát triển, nhận thức về sức khỏe và dinh dưỡng đang trở thành mối quan tâm hàng đầu. Tuy nhiên, việc theo dõi dinh dưỡng cá nhânkiểm soát khẩu phần ăn tự động vẫn còn nhiều thách thức. Luận văn: Nhận dạng thực phẩm và ước lượng calo bằng AI đã nổi lên như một giải pháp đột phá, hứa hẹn thay đổi cách con người quản lý chế độ ăn uống của mình.

Từ lâu, bài toán nhận dạng hình ảnh đã được ứng dụng rộng rãi, nhưng với sự bùng nổ của học sâu (Deep Learning), khả năng nhận dạng món ăn AIphân loại thực phẩm bằng AI đã đạt đến độ chính xác ấn tượng, thậm chí vượt trội con người trong nhiều trường hợp. Các nghiên cứu trước đây, như của Kawano và Yanai về "Nhận dạng hình ảnh thực phẩm dựa trên tính năng học sâu" [1], đã mở đường cho những tiến bộ vượt bậc này. Mục tiêu chính của luận văn là xây dựng một hệ thống theo dõi dinh dưỡng thông minh có khả năng tự động ước tính calo tự động từ hình ảnh, từ đó giúp người dùng kiểm soát lượng thức ăn nạp vào mỗi ngày hiệu quả hơn.

Nguyên nhân thúc đẩy nghiên cứu này xuất phát từ thực trạng đáng báo động về thừa cân, béo phì và các bệnh liên quan đến dinh dưỡng. Nhiều nghiên cứu đã chỉ ra mối liên hệ giữa lượng calo quá mức và các bệnh nghiêm trọng như ung thư vú, đại tràng và tuyến tiền liệt [4]. Việc phân tích chế độ ăn bằng trí tuệ nhân tạo không chỉ giúp duy trì cân nặng lý tưởng mà còn góp phần nâng cao chất lượng cuộc sống, giảm nguy cơ mắc các bệnh mạn tính. Luận văn này đi sâu vào việc phát triển ứng dụng AI quản lý cân nặng trên nền tảng di động, cung cấp một công cụ tiện lợi cho người dùng theo dõi và điều chỉnh thói quen ăn uống của mình. Sự kết hợp giữa thị giác máy tính trong dinh dưỡngkhoa học dữ liệu dinh dưỡng mở ra một kỷ nguyên mới cho y tế số và AI, nơi công nghệ hỗ trợ con người đạt được mục tiêu sức khỏe một cách thông minh và cá nhân hóa.

1.1. Tổng quan nhận dạng món ăn AI Xu hướng và tiềm năng cải thiện sức khỏe

Lĩnh vực nhận dạng món ăn AI đã chứng kiến những bước tiến vượt bậc nhờ sự phát triển của Deep Learning. Các mô hình hiện đại có khả năng xác định chính xác hàng trăm loại thực phẩm khác nhau từ hình ảnh, mở ra tiềm năng lớn trong việc cải thiện sức khỏe cộng đồng. Khả năng này không chỉ giới hạn ở việc phân loại thực phẩm bằng AI mà còn mở rộng sang việc nhận diện thành phần dinh dưỡng thông qua phân tích thành phần dinh dưỡng AI. Mục tiêu của các nghiên cứu như luận văn này là tạo ra các hệ thống theo dõi dinh dưỡng thông minh có thể tích hợp vào cuộc sống hàng ngày, giúp người dùng dễ dàng theo dõi lượng calo và chất dinh dưỡng, từ đó đưa ra quyết định ăn uống lành mạnh hơn. Đây là một bước tiến quan trọng trong việc cá nhân hóa dinh dưỡng, hướng tới một tương lai nơi mỗi cá nhân có thể quản lý sức khỏe của mình một cách chủ động và hiệu quả hơn nhờ sự hỗ trợ của AI trong sức khỏe cá nhân.

1.2. Lý do cần AI Vấn đề béo phì và tầm quan trọng kiểm soát calo tự động

Hiện tượng thừa cân và béo phì đang trở thành một thách thức sức khỏe toàn cầu, không chỉ ở các nước phát triển mà còn gia tăng nhanh chóng ở các nước đang phát triển. Vấn đề này có liên quan mật thiết đến lượng calo nạp vào cơ thể quá mức [3]. Vì vậy, việc kiểm soát khẩu phần ăn tự độngước tính calo tự động trở nên cực kỳ quan trọng. Các phương pháp thủ công thường tốn thời gian và thiếu chính xác, khiến người dùng khó duy trì thói quen theo dõi dinh dưỡng. Đây chính là lúc trí tuệ nhân tạo phát huy vai trò của mình. Ứng dụng AI quản lý cân nặng có thể cung cấp dữ liệu tức thì và chính xác về lượng calo, hỗ trợ người dùng đưa ra quyết định ăn uống tốt hơn. Việc theo dõi lượng calo nạp vào hàng ngày là một vấn đề then chốt để duy trì chất lượng cuộc sống tốt và giảm nguy cơ mắc các bệnh liên quan đến dinh dưỡng.

II. Thách Thức Lớn Khi Nhận Dạng Thực Phẩm Và Ước Lượng Calo Bằng AI

Mặc dù tiềm năng của nhận dạng thực phẩm và ước lượng calo bằng AI rất lớn, quá trình triển khai gặp phải nhiều thách thức đáng kể. Các công trình nghiên cứu trước đây đã cố gắng giải quyết bài toán này, nhưng phần lớn vẫn còn tồn tại những hạn chế nhất định. Chẳng hạn, một số nghiên cứu sử dụng video để theo dõi hoạt động ăn uống [7], nhưng việc áp dụng rộng rãi cho nhiều đối tượng ở các vị trí khác nhau là rất khó khăn. Hơn nữa, việc xác định độ chính xác ước lượng calo đòi hỏi không chỉ nhận diện đúng loại thực phẩm mà còn phải ước tính chính xác kích thước và khối lượng khẩu phần ăn.

Một trong những thách thức cốt lõi là sự đa dạng khổng lồ của thực phẩm về hình dạng, kích thước, màu sắc và cách trình bày. Một món ăn có thể xuất hiện dưới nhiều hình thái khác nhau (ví dụ: táo nguyên quả, táo cắt lát, táo trong salad), gây khó khăn cho việc phân loại thực phẩm bằng AI. Ngoài ra, điều kiện chụp ảnh như góc độ, ánh sáng, độ tương phản cũng ảnh hưởng trực tiếp đến chất lượng dữ liệu đầu vào và hiệu quả của các mô hình xử lý ảnh thực phẩm. Luận văn của Đại học Lạc Hồng đã chú trọng thu thập dữ liệu với các góc độ sáng tối và độ tương phản khác nhau để tăng độ chính xác của nhận dạng. [Tóm tắt luận văn]

Việc xây dựng một bộ dữ liệu lớn về thực phẩm đủ đa dạng và được gán nhãn chính xác là yếu tố then chốt nhưng cũng rất tốn công sức. Nhiều nghiên cứu trước đây chỉ dừng lại ở việc xác định thực phẩm và lượng calo có sẵn được quy định trong từng thực phẩm mà chưa đi sâu vào việc ước lượng calo tự động dựa trên khẩu phần thực tế [8]. Thách thức còn nằm ở việc tích hợp mô hình dự đoán calo với các cơ sở dữ liệu dinh dưỡng để cung cấp thông tin toàn diện. Để vượt qua những khó khăn này, luận văn đã kết hợp các kỹ thuật tiên tiến trong thị giác máy tính trong dinh dưỡngdeep learning cho nhận diện thực phẩm, cùng với các thuật toán xử lý ảnh thực phẩm chuyên sâu, nhằm đạt được mục tiêu nhận dạng đối tượng thực phẩmước lượng calo một cách hiệu quả nhất.

2.1. Phân loại thực phẩm bằng AI Thách thức đa dạng hình thái và bối cảnh

Thách thức lớn nhất trong phân loại thực phẩm bằng AI là sự đa dạng sinh học và cách chế biến của thực phẩm. Một loại thực phẩm có thể có nhiều hình dạng, kích thước, màu sắc khác nhau tùy thuộc vào trạng thái (nguyên liệu thô, đã chế biến, cắt lát). Bối cảnh chụp ảnh, bao gồm ánh sáng, góc độ, và các vật thể khác trên đĩa, cũng ảnh hưởng đáng kể đến hiệu suất của nhận dạng món ăn AI. Để đối phó với điều này, các mô hình deep learning cho nhận diện thực phẩm cần được huấn luyện trên dữ liệu lớn về thực phẩm với nhiều biến thể khác nhau. Luận văn đã thu thập hình ảnh với các góc độ sáng tối khác nhau, độ tương phản khác nhau để tăng độ chính xác của nhận dạng [Tóm tắt luận văn]. Việc này giúp mô hình học được các đặc trưng mạnh mẽ hơn, ít bị ảnh hưởng bởi nhiễu từ môi trường chụp.

2.2. Đo lường độ chính xác ước lượng calo Khó khăn trong ước tính khẩu phần

Việc ước tính calo tự động đòi hỏi không chỉ nhận diện đúng loại thực phẩm mà còn phải ước lượng chính xác kích thước hoặc khối lượng của khẩu phần ăn. Đây là một bài toán phức tạp vì hình ảnh 2D không cung cấp thông tin chiều sâu đầy đủ. Độ chính xác ước lượng calo phụ thuộc vào nhiều yếu tố như góc độ chụp, khoảng cách chụp, độ sáng tối của ảnh [Ý nghĩa khoa học và thực tiễn]. Luận văn đã tìm cách giải quyết vấn đề này bằng cách nghiên cứu ứng dụng các thuật toán xử lý ảnh thực phẩm trên OpenCV để tách biên dạng và tính toán calo dựa trên diện tích bề mặt thực phẩm trong ảnh, tham chiếu với một vật thể có kích thước chuẩn [Tóm tắt luận văn]. Đây là một bước quan trọng để chuyển từ nhận dạng đơn thuần sang mô hình dự đoán calo có tính ứng dụng thực tiễn cao hơn.

III. Phương Pháp Deep Learning Nền Tảng Nhận Dạng Thực Phẩm Bằng AI Hiệu Quả

Để giải quyết bài toán nhận dạng thực phẩm và ước lượng calo bằng AI, luận văn đã tập trung vào các phương pháp nghiên cứu lý thuyết tiên tiến, đặc biệt là trong lĩnh vực Deep Learning. Trọng tâm là việc áp dụng mạng nơ-ron tích chập (CNN) cho thực phẩm, một kiến trúc mạnh mẽ đã chứng minh hiệu quả vượt trội trong nhận dạng hình ảnh. CNN khác biệt so với mạng nơ-ron truyền thống ở khả năng xử lý các liên kết cục bộ trong ảnh, giảm đáng kể khối lượng tính toán và giải quyết vấn đề "bùng nổ" tham số khi xử lý dữ liệu lớn về thực phẩm [Chương 2]. Các lớp cơ bản của CNN, bao gồm lớp tích chập, lớp kích hoạt phi tuyến ReLU, lớp lấy mẫu (Pooling), và lớp kết nối đầy đủ, được sắp xếp linh hoạt để tạo ra mô hình nhận dạng thực phẩm tối ưu.

Trong quá trình xây dựng mô hình huấn luyện, luận văn đã sử dụng Framework TensorFlow kết hợp với thư viện Keras. TensorFlow, được phát triển bởi Google Brain Team, là một thư viện phần mềm mạnh mẽ cho học máy và học sâu, hoạt động dựa trên nguyên lý đồ thị dòng chảy dữ liệu (dataflow graph). Các phép tính toán được biểu diễn dưới dạng các nút và kết nối, cho phép tối ưu hóa hiệu quả [14]. Keras là một thư viện mã nguồn mở bậc cao, cung cấp giao diện thân thiện, dễ học và dễ sử dụng, đặc biệt phù hợp cho người mới bắt đầu. Sự kết hợp giữa TensorFlow và Keras mang lại lợi ích kép: khả năng tính toán mạnh mẽ của TensorFlow và sự linh hoạt, dễ phát triển của Keras, giúp xây dựng mô hình AI nhận dạng thực phẩm hiệu quả hơn. [Chương 2.3]

Việc huấn luyện mô hình được thực hiện trên một bộ dữ liệu lớn về thực phẩm, bao gồm các hình ảnh thực phẩm như Táo, Chuối, Bánh mì, Trứng, Cam, Hành tây, Khoai lang, Cà rốt, Cà chua, được chụp với nhiều góc độ và điều kiện ánh sáng khác nhau để tăng tính đa dạng. [Tóm tắt luận văn, Chương 3.4.1] Sau đó, ImageDatagenerator trong Keras được sử dụng để nhân bản và biến đổi dữ liệu (xoay, kéo dãn, thay đổi chiều cao, chiều rộng), nhằm làm phong phú thêm tập huấn luyện và cải thiện khả năng tổng quát hóa của mô hình phân loại thực phẩm bằng AI. Qua đó, mô hình có thể học được cách nhận dạng đối tượng thực phẩm một cách mạnh mẽ, giảm thiểu rủi ro quá khớp và nâng cao độ chính xác của nhận dạng trong môi trường thực tế.

3.1. Mạng nơ ron tích chập CNN Kiến trúc mạnh mẽ cho nhận dạng món ăn AI

Mạng nơ-ron tích chập (CNN) là xương sống của các giải pháp nhận dạng món ăn AI hiện đại. Kiến trúc của CNN được thiết kế để bắt chước cách thức não bộ con người xử lý thông tin thị giác, với các lớp tích chập có khả năng tự động học các đặc trưng từ hình ảnh mà không cần trích xuất đặc trưng thủ công. Điều này làm cho CNN trở nên cực kỳ hiệu quả trong việc phân loại thực phẩm bằng AI. Luận văn đã mô tả chi tiết các thành phần của CNN như lớp tích chập để phát hiện đặc trưng cục bộ, lớp kích hoạt ReLU để tăng tính phi tuyến, và lớp lấy mẫu để giảm kích thước dữ liệu mà vẫn giữ được thông tin quan trọng [Chương 2.2.1]. Nhờ những cải tiến này, CNN có thể xử lý lượng dữ liệu lớn về thực phẩm một cách hiệu quả, đạt được độ chính xác của nhận dạng cao, ngay cả với các hình ảnh phức tạp và đa dạng.

3.2. TensorFlow Keras Khung công tác tối ưu cho deep learning nhận diện thực phẩm

Việc lựa chọn TensorFlow kết hợp với Keras là một quyết định chiến lược để tối ưu hóa quá trình deep learning cho nhận diện thực phẩm. TensorFlow cung cấp nền tảng tính toán mạnh mẽ, khả năng phân phối trên nhiều thiết bị và tối ưu hóa các phép tính dựa trên đồ thị. Keras lại mang đến giao diện lập trình cấp cao, giúp đơn giản hóa việc xây dựng và thử nghiệm các mô hình dự đoán calo phức tạp [Chương 2.2.3]. Sự kết hợp này được ưu tiên bởi tính dễ sử dụng, khả năng mở rộng và sự hỗ trợ rộng rãi từ cộng đồng [Chương 2.3.2]. Bằng cách này, luận văn có thể tập trung vào việc thiết kế kiến trúc mô hình hiệu quả để nhận dạng đối tượng thực phẩmước tính calo tự động, thay vì phải xử lý các chi tiết lập trình cấp thấp, đẩy nhanh quá trình nghiên cứu và phát triển ứng dụng AI quản lý cân nặng.

IV. Hướng Dẫn Ước Lượng Calo Tự Động Qua Xử Lý Ảnh Thực Phẩm Nâng Cao

Việc ước lượng calo tự động là một bước quan trọng tiếp theo sau khi đã hoàn thành nhận dạng món ăn AI. Để đạt được mục tiêu này, luận văn tập trung vào các kỹ thuật xử lý ảnh thực phẩm nâng cao, cụ thể là áp dụng các thuật toán chuyên biệt để lấy biên dạng của thực phẩm và vật thể tham chiếu. Quá trình này bao gồm nhiều giai đoạn: từ ảnh đầu vào, tiền xử lý, phân đoạn ảnh (tách đặc trưng), cho đến nhận dạng và xuất ảnh cuối cùng [Chương 2.4.1]. Ảnh đầu vào được chụp từ camera thiết bị di động, sau đó được gửi lên server để xử lý. Chất lượng ảnh (độ sáng, tương phản) ở bước này có ảnh hưởng lớn đến độ chính xác ước lượng calo sau đó.

Trong giai đoạn tiền xử lý, ảnh sẽ được cải thiện chất lượng thông qua việc khử nhiễu, khử bóng, điều chỉnh độ tương phản. Bước phân đoạn ảnh là then chốt, nơi hệ thống phân tích ảnh thành các thành phần có cùng tính chất, dựa trên biên hoặc các vùng liên thông. Từ đó, nhận dạng đối tượng thực phẩm được thực hiện và biên dạng của vật thể được trích xuất. Các thuật toán xử lý ảnh thực phẩm được luận văn ứng dụng bao gồm thuật toán Otsu và thuật toán Canny. Thuật toán Otsu được sử dụng để phân ngưỡng ảnh tự động dựa trên mức xám, hiệu quả trong việc tách biệt thực phẩm khỏi nền [Chương 2.4.2]. Trong khi đó, thuật toán Canny là một trong những công cụ phổ biến nhất để phát hiện biên, giúp giảm thiểu dữ liệu trong hình ảnh mà vẫn giữ được các đặc tính cấu trúc quan trọng [Chương 2.4.3].

Sau khi đã lấy được biên dạng thực phẩm và vật tham chiếu, các công thức toán học cơ bản được áp dụng để tính toán diện tích, từ đó suy ra thể tích và khối lượng của thực phẩm. Việc này đòi hỏi sự tích hợp chặt chẽ với cơ sở dữ liệu dinh dưỡng để tham chiếu lượng calo trên mỗi đơn vị khối lượng của từng loại thực phẩm. Kết quả này sau đó được sử dụng để xây dựng mô hình dự đoán calo chi tiết. Quá trình này không chỉ nâng cao độ chính xác ước lượng calo mà còn cung cấp cơ sở vững chắc cho việc phát triển hệ thống theo dõi dinh dưỡng thông minh có khả năng phân tích thành phần dinh dưỡng AI một cách toàn diện, hỗ trợ người dùng kiểm soát khẩu phần ăn tự độngứng dụng AI quản lý cân nặng hiệu quả.

4.1. Thuật toán Otsu Canny Bí quyết tách biên thực phẩm chính xác từ ảnh

Để ước tính calo tự động một cách chính xác, việc tách biên thực phẩm khỏi nền là bước quan trọng. Luận văn đã ứng dụng thuật toán Otsu để phân ngưỡng ảnh tự động, giúp xác định ranh giới giữa thực phẩm và các thành phần khác trong ảnh dựa trên mức xám [Chương 2.4.2]. Kết quả từ thuật toán Otsu thường cho chất lượng tốt hơn so với các phương pháp phân ngưỡng toàn cục đơn giản. Tiếp theo, thuật toán Canny được sử dụng để phát hiện biên cạnh của thực phẩm. Canny là một thuật toán nhiều bước, bao gồm làm mịn ảnh bằng bộ lọc Gauss để giảm nhiễu, sau đó tìm các nơi cường độ mức xám thay đổi nhiều nhất dựa trên Gradient [Chương 2.4.3]. Sự kết hợp của hai thuật toán này giúp trích xuất biên dạng của thực phẩm một cách rõ ràng và chính xác, tạo tiền đề cho các phép tính toán về diện tích và khối lượng, từ đó nâng cao độ chính xác ước lượng calo trong mô hình dự đoán calo.

4.2. Từ xử lý ảnh đến tính toán calo Mô hình dự đoán calo dựa trên diện tích

Sau khi biên dạng thực phẩm được tách rời bằng các kỹ thuật xử lý ảnh thực phẩm (Otsu, Canny), bước tiếp theo là chuyển đổi thông tin hình ảnh thành dữ liệu định lượng để ước tính calo tự động. Luận văn đã phát triển một mô hình dự đoán calo dựa trên diện tích của thực phẩm trên ảnh và một vật tham chiếu có kích thước chuẩn [Tóm tắt luận văn]. Cụ thể, mô hình sẽ tính toán diện tích thực phẩm theo pixel và diện tích vật tham chiếu theo pixel. Dựa vào tỷ lệ giữa diện tích tham chiếu theo pixel và diện tích thực tế của vật tham chiếu, hệ thống sẽ tính được diện tích thực tế của thực phẩm. Từ diện tích thực tế này, kết hợp với các dữ liệu về khối lượng riêng và lượng calo trên 100g của từng loại thực phẩm (được lưu trong cơ sở dữ liệu), hệ thống sẽ tính toán lượng calo ước tính. Quy trình này là cốt lõi để đạt được độ chính xác ước lượng calo cao, hỗ trợ hệ thống theo dõi dinh dưỡng thông minhphân tích thành phần dinh dưỡng AI một cách hiệu quả.

V. Ứng Dụng Thực Tiễn Của AI Kiểm Soát Dinh Dưỡng Quản Lý Cân Nặng Thông Minh

Kết quả nghiên cứu của luận văn về nhận dạng thực phẩm và ước lượng calo bằng AI đã được cụ thể hóa thành một ứng dụng Android thực tiễn, mang lại khả năng kiểm soát khẩu phần ăn tự động và hỗ trợ quản lý cân nặng thông minh. Ứng dụng này hoạt động dựa trên kiến trúc client/server, nơi thiết bị Android đóng vai trò client giao tiếp với server để xử lý hình ảnh và tính toán calo [Chương 3.1]. Người dùng có thể dễ dàng chụp ảnh món ăn hoặc chọn ảnh từ thư viện, sau đó gửi lên server. Server, được cấu hình với các mô hình nhận dạng thực phẩm dựa trên CNN và mô hình dự đoán calo từ xử lý ảnh, sẽ xử lý yêu cầu và trả về kết quả bao gồm tên thực phẩm và lượng calo ước tính [Chương 3.2].

Ứng dụng này không chỉ hiển thị kết quả tính toán calo mà còn cung cấp một giao diện thân thiện, cho phép người dùng theo dõi tổng lượng calo nạp vào trong ngày. Đây là một công cụ mạnh mẽ trong y tế số và AI, giúp cá nhân chủ động hơn trong việc phân tích chế độ ăn bằng trí tuệ nhân tạo và điều chỉnh thói quen ăn uống của mình. Kết quả thực nghiệm của luận văn đã cho thấy khả năng nhận dạng món ăn AIước tính calo tự động một cách khả quan trên các loại thực phẩm đã được huấn luyện như Táo, Chuối, Bánh mì, Trứng [Chương 4.1, 4.2].

Việc phát triển thiết bị di động nhận dạng thực phẩm này là bước tiến quan trọng trong việc đưa AI trong sức khỏe cá nhân đến gần hơn với người dùng. Nó không chỉ đơn thuần là một công cụ tính toán mà còn là một hệ thống theo dõi dinh dưỡng thông minh toàn diện. Ứng dụng này cung cấp dữ liệu định lượng về lượng calo nạp vào, giúp người dùng có cái nhìn rõ ràng về chế độ ăn của mình, từ đó đưa ra quyết định thông minh để duy trì sức khỏe tốt. Đây là một nền tảng đầy hứa hẹn để phát triển các tính năng mở rộng trong tương lai, như theo dõi macro-nutrient, gợi ý thực đơn cá nhân hóa, và tích hợp với các thiết bị đeo thông minh, góp phần vào sự phát triển của khoa học dữ liệu dinh dưỡngứng dụng AI quản lý cân nặng rộng rãi hơn.

5.1. Thiết bị di động nhận dạng thực phẩm Giao thức HTTP và ứng dụng Android

Thiết bị di động nhận dạng thực phẩm thông qua ứng dụng Android là giải pháp tiện lợi, trực tiếp hỗ trợ người dùng trong cuộc sống hàng ngày. Luận văn đã xây dựng một ứng dụng Android để hiển thị kết quả nhận dạng món ăn AIước tính calo tự động [Chương 3.5]. Giao tiếp giữa ứng dụng client và server được thực hiện thông qua giao thức HTTP, sử dụng REST API để trao đổi dữ liệu hiệu quả [Chương 2.5]. Khi người dùng chụp ảnh thực phẩm, hình ảnh sẽ được mã hóa, nén và gửi tới máy chủ. Server sẽ xử lý ảnh, nhận dạng thực phẩm và tính toán calo, sau đó trả về kết quả cho ứng dụng di động. Công cụ Postman đã được sử dụng để kiểm thử và tạo các request, đảm bảo luồng dữ liệu thông suốt [Chương 2.5.1]. Đây là một ví dụ điển hình về việc tích hợp y tế số và AI vào các nền tảng phổ biến, mang lại trải nghiệm liền mạch cho người dùng quản lý cân nặng thông minh.

5.2. Kết quả thực nghiệm Đánh giá độ chính xác ước lượng calo và nhận dạng AI

Để đánh giá hiệu quả của hệ thống, luận văn đã tiến hành các thực nghiệm chi tiết. Mô hình nhận dạng thực phẩm đạt được kết quả khả quan, cho phép hệ thống phân loại thực phẩm bằng AI chính xác trên các loại thực phẩm đã được huấn luyện. Mô hình tính toán ước lượng calo cũng đã được kiểm tra, so sánh kết quả ước lượng trên ứng dụng với kết quả thực tế để đánh giá độ chính xác ước lượng calo [Chương 4.2]. Mặc dù việc ước tính calo tự động từ hình ảnh còn phụ thuộc vào nhiều yếu tố như góc độ chụp, khoảng cách và độ sáng tối, các kết quả ban đầu cho thấy tiềm năng lớn của phương pháp này. Những kết quả này là cơ sở vững chắc để phát triển các hệ thống theo dõi dinh dưỡng thông minh có độ tin cậy cao hơn, đồng thời khẳng định khả năng của deep learning cho nhận diện thực phẩm trong việc giải quyết các bài toán thực tiễn về dinh dưỡng.

VI. Tương Lai Luận Văn AI Nhận Diện Thực Phẩm Ước Lượng Calo Chuẩn Xác Hơn

Luận văn về nhận dạng thực phẩm và ước lượng calo bằng AI đã đạt được những kết quả quan trọng, đặt nền móng vững chắc cho các nghiên cứu và phát triển tiếp theo. Mục tiêu chính là tối ưu hóa các thuật toán hiện có để đạt được độ chính xác ước lượng calo cao hơn nữa. Một trong những hướng phát triển quan trọng là mở rộng bộ dữ liệu lớn về thực phẩm, bao gồm nhiều loại món ăn hơn, đặc biệt là các thực phẩm hỗn hợp mà hiện tại luận văn chưa tập trung vào [Phạm vi và đối tượng nghiên cứu]. Việc này đòi hỏi kỹ thuật thu thập, xử lý và gán nhãn dữ liệu phức tạp hơn, nhưng sẽ nâng cao khả năng tổng quát hóa của mô hình nhận dạng thực phẩm.

Ngoài ra, việc tích hợp các công nghệ cảm biến tiên tiến, ví dụ như camera chiều sâu (depth camera), có thể cung cấp thông tin 3D chi tiết hơn về thực phẩm, từ đó cải thiện đáng kể độ chính xác ước lượng calo tự độngước lượng kích thước khẩu phần ăn. Nghiên cứu về AI giải thích được (XAI) cũng là một hướng đi hứa hẹn, giúp người dùng hiểu rõ hơn về cách mô hình dự đoán calo đưa ra kết quả, tăng cường niềm tin và tính minh bạch của hệ thống theo dõi dinh dưỡng thông minh. Việc này không chỉ nâng cao khả năng phân tích thành phần dinh dưỡng AI mà còn giúp ứng dụng AI quản lý cân nặng trở nên thông minh và đáng tin cậy hơn.

Hướng phát triển xa hơn còn bao gồm việc cá nhân hóa phân tích chế độ ăn bằng trí tuệ nhân tạo dựa trên dữ liệu sức khỏe cá nhân (ví dụ: bệnh nền, mục tiêu dinh dưỡng), tích hợp với các thiết bị đeo thông minh và hồ sơ sức khỏe điện tử. Việc này sẽ đưa AI trong sức khỏe cá nhân lên một tầm cao mới, biến nó thành một trợ lý dinh dưỡng toàn diện và thông minh. Luận văn là sự kết hợp của việc nhận dạng và xử lý ảnh, là tiền đề cho các nghiên cứu tiếp theo đối với bộ dữ liệu lớn hơn và các tính năng phức tạp hơn, hướng tới một tương lai nơi trí tuệ nhân tạo đóng vai trò thiết yếu trong việc nâng cao chất lượng cuộc sống và sức khỏe con người.

6.1. Mở rộng bộ dữ liệu lớn về thực phẩm Hướng đi nâng cao nhận dạng món ăn AI

Để nhận dạng món ăn AI đạt độ chính xác cao và khả năng tổng quát hóa, việc mở rộng bộ dữ liệu lớn về thực phẩm là cực kỳ cần thiết. Luận văn đã nghiên cứu nhận dạng các thực phẩm được bày trên đĩa và tách rời từng món, nhưng trong tương lai cần mở rộng sang nhận dạng và ước lượng calo trong thực phẩm hỗn hợp, các món ăn phức tạp hơn [Phạm vi nghiên cứu]. Điều này đòi hỏi thu thập thêm hàng nghìn, thậm chí hàng triệu hình ảnh với đa dạng góc độ, điều kiện ánh sáng và cách trình bày. Việc sử dụng các kỹ thuật tăng cường dữ liệu (data augmentation) như xoay, kéo dãn, thay đổi kích thước ảnh (đã được áp dụng trong luận văn [Chương 3.4.1]) sẽ tiếp tục được tối ưu. Mục tiêu là tạo ra một mô hình nhận dạng thực phẩm có khả năng xử lý hầu hết các tình huống thực tế, từ đó nâng cao hiệu quả của hệ thống theo dõi dinh dưỡng thông minh.

6.2. AI giải thích được XAI và tích hợp đa phương thức Tương lai của AI trong sức khỏe cá nhân

Tương lai của AI trong sức khỏe cá nhân không chỉ nằm ở độ chính xác ước lượng calo mà còn ở khả năng giải thích (XAI) và tích hợp đa phương thức. AI giải thích được giúp người dùng và các chuyên gia y tế hiểu rõ hơn về lý do mô hình đưa ra một kết quả cụ thể, tăng cường niềm tin và khả năng điều chỉnh [Hướng phát triển đề tài]. Ngoài ra, việc tích hợp dữ liệu từ nhiều nguồn khác nhau – như cảm biến đeo tay (theo dõi hoạt động), dữ liệu bệnh án điện tử, và thông tin di truyền – sẽ tạo ra một bức tranh toàn diện hơn về sức khỏe cá nhân. Điều này sẽ cho phép các mô hình dự đoán calophân tích chế độ ăn bằng trí tuệ nhân tạo cung cấp khuyến nghị cá nhân hóa sâu sắc hơn, không chỉ dựa trên hình ảnh thực phẩm mà còn dựa trên lối sống và sinh lý học của từng người, tạo nên một hệ thống theo dõi dinh dưỡng thông minh thực sự toàn diện.

01/10/2025

Trích đoạn nội dung tài liệu

Chương 1. Tổng quan Nêu lý do chọn đề tài, mục tiêu, đối tượng, phạm vi nghiên cứu, phương pháp nghiên cứu và ý nghĩa của đề tài Chương 2. Lý thuyết về nhận dạng và xử lý ảnh - Trình bày các kiến thức lý thuyết liên quan đến đề tài Mạng nơ ron tích chập, thư viện Tensorflow, thư viện Keras; - Một số thuật toán trong xử lý ảnh, thuật toán Otsu, thuật toán Canny; - Hệ thống giao tiếp dữ liệu giữa Client và Server. Xây dựng hệ thống phần mềm nhận dạng và ước lượng calo - Chương này trình bày về hệ thống nhận dạng hình ảnh, phương pháp xử lý ảnh OpenCV để tính toán calo trên ngôn ngữ Python; 6 - Mô hình giao tiếp dữ liệu giữa ứng Android trong nhận dạng và ước lượng calo với Server.

Kết luận và hướng phát triển đề tài Trình bày về kết quả đạt được của luận văn, so sánh với dữ liệu thực tế và đưa ra kết luận và kiến nghị. Để thực hiện được những mục tiêu được trình bày ở trên, luận văn tập trung giải quyết một số nhiệm vụ sau - Tìm hiểu các kiến thức về Mạng nơ ron tích chập, Tensorflow và thư viện Keras, trong nhận dạng hình ảnh thực phẩm; - Tìm hiểu một số thuật toán trong xử lý ảnh thuật toán Otsu, thuật toán Canny để tính toán ước lượng calo trong thực phẩm; - Nghiên cứu phương thức trao đổi dữ liệu trên HTTP giữa nền tảng Android và Server tạo REST API, thông qua công cụ Postman; - Thu thập dữ liệu để huấn luyện nhận dạng các thực phẩm bằng cách chụp từ hình ảnh thực tế của thực phẩm, ngoài dữ liệu đã được duyệt theo đề cương, để cải thiện mức độ chính xác của mô hình, luận văn có sử dụng thêm một số thực phẩm như Cam, Hành tây, Khoai lang, Cà rốt, Cà chua; - Huấn luyện dữ liệu bằng mạng nơ ron tích chập (CNN - Convolutional Neural Network) được viết bằng ngôn ngữ Python, trên cơ sở Framework của Tensorflow và thư viện học sâu của Keras; - Sử dụng thuật toán xử lý ảnh trên Python, OpenCV để lấy biên dạng và tách thực phẩm trên đĩa. Từ đó tính toán diện tích của thực phẩm qua ảnh chụp và ước lượng calo dựa vào thể tích và khối lượng riêng của từng thực phẩm; - Xây dựng ứng dụng trên hệ điều hành Android giao tiếp với server để liên kết dữ liệu. LÝ THUYẾT VỀ NHẬN DẠNG VÀ XỬ LÝ ẢNH Để đạt được mục tiêu và thực hiện những nhiệm vụ của luận văn.

Luận văn đã giải quyết các vấn đề gồm - Nhận dạng thực phẩm; - Uớc lượng calo từ ảnh chụp; - Tạo giao thức HTTP trong truyền tải dữ liệu giữa client và server. Nhận dạng thực phẩm Để nhận dạng thực phẩm, luận văn sử dụng mạng nơ ron tích chập với Framework Tensorflow và Keras. Mạng nơ ron tích chập Mạng nơ ron tích chập là một trong những mô hình mạng học sâu phổ biến nhất hiện nay, với khả năng nhận dạng và phân loại hình ảnh lớn và có độ chính xác cao, trong nhiều trường hợp khả năng nhận dạng của mạng còn tốt hơn con người. Hiện nay, mô hình mạng nơ ron tích chập đã và đang được phát triển rộng rãi, và ứng dụng vào các hệ thống xử lý ảnh lớn của Facebook, Google hay Amazon… cho các mục đích khác nhau như các thuật toán tự động gắn thẻ, tìm kiếm ảnh hoặc đưa ra gợi ý sản phẩm cho người tiêu dùng.

Mạng CNN ra đời dựa trên ý tưởng sự cải tiến về cách thức học thông tin trong ảnh của các mạng nơron nhân tạo truyền. Do sử dụng các (fully-connected layer) liên kết đầy đủ giữa các điểm ảnh vào node, các mạng nơron nhân tạo truyền thẳng (Feedforward Neural Network) bị hạn chế rất nhiều bởi kích thước của ảnh, kích thước ảnh càng lớn thì số lượng liên kết giữa các điểm càng tăng nhanh và kéo theo sự bùng nổ khối lượng tính toán xử lý hình ảnh. Ngoài ra sự liên kết đầy đủ này cũng là nguyên nhân của sự dư thừa khi với mỗi bức ảnh, các thông tin chủ yếu thể hiện qua sự phụ thuộc giữa các điểm ảnh với những điểm xung quanh nó mà không quan tâm nhiều đến các điểm ảnh ở cách xa nhau. Sự ra đời của mạng CNN với kiến trúc thay đổi, có khả năng xây dựng liên kết chỉ sử dụng một phần cục bộ trong ảnh kết nối đến nút trong lớp tiếp theo thay vì toàn bộ ảnh như trong mạng nơ ron truyền thẳng.

8 Kiến trúc Mạng nơron tích chập Các lớp cơ bản trong một mạng CNN bao gồm lớp tích chập (Convolutional), lớp kích hoạt phi tuyến ReLU (Rectified Linear Unit), lớp lấy mẫu (Pooling) và Lớp kết nối đầy đủ (Fully-connected), được thay đổi về số lượng và cách sắp xếp để tạo ra các mô hình huấn luyện phù hợp cho từng bài toán khác nhau. Kiến trúc cơ bản của một mạng tích chập - Lớp tích chập Đây là thành phần quan trọng nhất trong mạng CNN, cũng là nơi thể hiện tư tưởng xây dựng sự liên kết cục bộ thay vì kết nối toàn bộ các điểm ảnh. Các liên kết cục bộ này được tính toán bằng phép tích chập giữa các giá trị điểm ảnh trong một vùng ảnh cục bộ với các bộ lọc (filters) có kích thước nhỏ. Ví dụ bộ lọc tích chập được sử dụng trên ma trận điểm ảnh 9 Trong ví dụ ở Hình 2.2 [12], ta thấy bộ lọc được sử dụng là một ma trận kích thước 3x3.

Bộ lọc này được dịch chuyển lần lượt qua từng vùng ảnh đến khi hoàn thành quét toàn bộ bức ảnh, tạo ra một bức ảnh mới có kích thước nhỏ hơn hoặc bằng với kích thước ảnh đầu vào. Kích thước này được quyết định tùy theo kích thước các khoảng trắng được thêm ở viền bức ảnh gốc và được tính theo công thức bên dưới 𝑖+2∗𝑝−𝑘 𝑜= +1 s Trong đó - o kích thước ảnh đầu ra - i kích thước ảnh đầu vào - p kích thước khoảng trắng phía ngoài viền của ảnh gốc - k kích thước bộ lọc - s bước trượt của bộ lọc Hình 2. Trường hợp thêm/không thêm viền trắng vào ảnh khi tích chập Như vậy, sau khi đưa một bức ảnh đầu vào cho lớp tích chập ta nhận được kết quả đầu ra là một loạt ảnh tương ứng với các bộ lọc đã được sử dụng để thực hiện phép tích chập. Các trọng số của các bộ lọc này được khởi tạo ngẫu nhiên trong lần đầu tiên và sẽ được cải thiện dần xuyên suốt quá trình huấn luyện.

- Lớp kích hoạt phi tuyến ReLU 10 Lớp này được xây dựng với ý nghĩa đảm bảo tính phi tuyến của mô hình huấn luyện sau khi đã thực hiện một loạt các phép tính toán tuyến tính qua các lớp tích chập. Lớp kích hoạt phi tuyến nói chung sử dụng các hàm kích hoạt phi tuyến như ReLU hoặc sigmoid, tanh… để giới hạn phạm vi biên độ cho phép của giá trị đầu ra. Trong số các hàm kích hoạt này, hàm ReLU được chọn do cài đặt đơn giản, tốc độ xử lý nhanh mà vẫn đảm bảo được tính toán hiệu quả. Cụ thể, phép tính toán của hàm ReLU chỉ đơn giản là chuyển tất cả các giá trị âm thành giá trị 0.

(𝑥) = max⁡(0, 𝑥) Thông thường, lớp ReLU được áp dụng ngay phía sau lớp tích chập, với đầu ra là một ảnh mới có kích thước giống với ảnh đầu vào, các giá trị điểm ảnh cũng hoàn toàn tương tự trừ các giá trị âm đã bị loại bỏ. - Lớp lấy mẫu Một thành phần tính toán chính khác trong mạng CNN là lấy mẫu (Pooling), thường được đặt sau lớp tích chập và lớp ReLU để làm giảm kích thước kích thước ảnh đầu ra trong khi vẫn giữ được các thông tin quan trọng của ảnh đầu vào. Việc giảm kích thước dữ liệu có tác dụng làm giảm được số lượng tham số cũng như tăng hiệu quả tính toán. Lớp lấy mẫu cũng sử dụng một cửa sổ trượt để quét toàn bộ các vùng trong ảnh tương tự như lớp tích chập, và thực hiện phép lấy mẫu thay vì phép tích chập tức là ta sẽ chọn lưu lại một giá trị duy nhất đại diện cho toàn bộ thông tin của vùng ảnh đó.4 thể hiện các phương thức lấy mẫu thường được sử dụng nhất hiện nay, đó là Max Pooling (lấy giá trị điểm ảnh lớn nhất) và Avarage Pooling (lấy giá trị trung bình của các điểm ảnh trong vùng ảnh cục bộ) [13].

Phương thức Avarage Pooling và Max Pooling Như vậy, với mỗi ảnh đầu vào được đưa qua lấy mẫu ta thu được một ảnh đầu ra tương ứng, có kích thước giảm xuống đáng kể nhưng vẫn giữ được các đặc trưng cần thiết cho quá trình tính toán sau này. - Lớp kết nối đầy đủ Lớp kết nối đầy đủ này được thiết kế hoàn toàn tương tự như trong mạng nơron truyền thống, tức là tất cả các điểm ảnh được kết nối đầy đủ với node trong lớp tiếp theo. So với mạng nơron truyền thống, các ảnh đầu vào của lớp này đã có kích thước được giảm bớt rất nhiều, đồng thời vẫn đảm bảo các thông tin quan trọng cho việc nhận dạng. Do vậy, việc tính toán nhận dạng sử dụng mô hình truyền thẳng đã không còn phức tạp và tốn nhiều thời gian như trong mạng nơ ron truyền thống.

Tensorflow TensorFlow (https //www.org) là một thư viện phần mềm, được phát triển bởi nhóm Google Brain Team trong nghiên cứu về lĩnh vực trí tuệ nhân tạo của Google, nhằm mục đích thực hiện nghiên cứu học máy và học sâu. TensorFlow sau đó sử dụng đại số kết hợp để tính toán, tối ưu hóa, giúp dễ dàng tính toán nhiều biểu thức toán học giúp rút ngắn thời gian thực hiện tính toán. Tensorflow hoạt động dựa trên nguyên lý đồ thị dòng chảy dữ liệu. TensorFlow cho phép t ạ o ra dataflow graph, c ấ u trúc mô t ả làm th ế nào d ữ liệ u có thể di chuy ể n qua m ột bi ểu đồ, hay m ột chu ỗi các nút đ ang x ử lý.

M ỗi nút trong đồ 12 thị đạ i di ệ n phép tính toán h ọc, và m ỗi kế t n ối hay m ỗi c ạ nh gi ữ a các nút là m ột m ả ng dữ liệu đa chiều, hay còn được gọi là “ tensor ”. Các phần tử của Tensorflow gồm Node Trong Tensorflow mỗi node là một phép tính tức thời, mỗi phép tính này gồm có một hoặc nhiều dữ liệu đầu vào và lớn hơn 0 đầu ra. Tensor Tên của TensorFlow được đưa ra trực tiếp là nhờ vào framework cốt lõi của nó. Trong TensorFlow, tất cả các tính toán đều liên quan tới các tensor.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ