Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 72 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
72
Dung lượng
3,43 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC LẠC HỒNG *** NHẬN DẠNG VÀ ƯỚC LƯỢNG CALO TRONG THỰC PHẨM LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Đồng Nai, năm 2020 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC LẠC HỒNG *** NHẬN DẠNG VÀ ƯỚC LƯỢNG CALO TRONG THỰC PHẨM Chuyên ngành Công nghệ thông tin Mã số LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS Đồng Nai, năm 2020 LỜI CẢM ƠN Lời đầu tiên, em xin chân thành cảm ơn thầy PGS.TS tận tình hướng dẫn, bảo em suốt thời gian thực luận văn Em xin chân thành cảm ơn đến Ban Giám hiệu quý thầy/cô Khoa Sau đại học thầy/cơ giảng dạy lớp 18CC911 nhiệt tình hướng dẫn, dạy cho em từ em tham gia học tập trường Kế đến, em bày tỏ lịng biết ơn gia đình, anh chị em ln giúp đỡ, động viên em hồn thành khóa học Em gửi lời cảm ơn chân thành tới tất bạn học lớp vui vẻ, nhiệt tình, giúp đỡ lẫn suốt trình học tập Do kiến thức hạn chế, nên luận văn khơng tránh khỏi thiếu sót Em mong nhận ý kiến đóng góp q thầy/cơ bạn để luận văn hoàn chỉnh Em xin chân thành cảm ơn! Đồng Nai, ngày 28 tháng 11 năm 2020 HỌC VIÊN LỜI CAM ĐOAN Tôi xin cam đoan kết đạt luận văn sản phẩm riêng cá nhân hướng dẫn thầy PGS.TS Trần Văn Lăng Nội dung trình bày luận văn cá nhân, có tham khảo từ nhiều nguồn tài liệu Tất tài liệu tham khảo có xuất xứ rõ ràng trích dẫn hợp pháp Khơng có sản phẩm hay nghiên cứu người khác sử dụng luận văn mà khơng có trích dẫn theo quy định Tơi xin hồn tồn chịu trách nhiệm chịu hình thức kỷ luật theo quy định cho lời cam đoan Đồng Nai, ngày 28 tháng 11 năm 2020 HỌC VIÊN TRƯỜNG ĐẠI HỌC LẠC HỒNG KHOA SA U ĐẠI HỌ C TÓM TẮT LUẬN VĂN (Dùng cho học viên người hướng dẫn) Đề tài Nhận dạng ước lượng calo thực phẩm Ngành Công nghệ thông tin Mã số Học viên Người hướng dẫn PGS.TS NỘI DUNG TÓM TẮT Nội dung giao kết mong đợi người hướng dẫn - Thu thập liệu liên quan nằm phạm vi nghiên cứu luận văn Táo, Chuối, Trứng chiên, Cam, Bánh mì, Cà chua, Cà rốt, Khoai lang, Hành tây, hình ảnh chụp với góc độ sáng tối khác nhau, độ tương phản khác để tăng độ xác nhận dạng Các hình ảnh sau đưa vào để làm tập liệu huấn luyện cho mơ hình nhận dạng thực phẩm Tensorflow Keras - Nghiên cứu kiến thức liên quan đến thư viện Tensorflow Keras để ứng dụng việc huấn luyện nhận dạng thực phẩm - Nghiên cứu ứng dụng thuật toán xử lý ảnh OpenCV để tách biên dạng thực phẩm chụp từ tính tốn calo dựa diện tích bề mặt thực phẩm ảnh tham chiếu để tính tốn - Nghiên cứu phương thức trao đổi liệu HTTP tảng Android Server thông qua REST API có tên gọi Postman - Thực nghiệm để đánh giá kết huấn luyện tính toán calo - Xây dựng phần mềm chạy hệ điều hành Android để hiển thị kết tính tốn Cách thức giải vấn đề Giải pháp đưa để thực toán “Nhận dạng ước lượng calo thực phẩm” thực theo bước sau - Bước Thu thập liệu hình ảnh thực phẩm phạm vi nghiên cứu đề tài chụp quay video điện thoại Sau hình ảnh xếp vào thư mục ảnh cho loại, tên thư mục tên thực phẩm để hệ thống nhận dạng - Bước Tạo mơ hình huấn luyện Framework Tensorflow thư viện Keras - Bước Huấn luyện tập liệu để nhận dạng sau lấy kết để tính tốn cho bước - Bước Xây dựng mơ hình xử lý hình ảnh để lấy biên dạng, bước mơ hình cho kết diện tích tham chiếu diện tích thực phẩm theo pixel Sau đó, vào tỷ lệ diện tích tham chiếu theo pixel diện tích thực tế vật tham chiếu để tính diện tích thực tế thực phẩm - Bước Hiển thị kết tính calo cho thực phẩm lấy liệu thông qua + Tên thực phẩm (được lấy từ mơ hình huấn luyện để phân biệt loại thực phẩm với nhau) + Lượng calo (được tính dựa vào mơ hình xử lý ảnh cơng thức tính tốn calo) - Bước Xây dựng ứng dụng chạy hệ điều hành Android, tạo giao thức để truyền đạt liệu Android client server, kết ước lượng calo từ ảnh chụp./ Đồng Nai, ngày 28 tháng 11 năm 2020 NGƯỜI HƯỚNG DẪN PGS.TS HỌC VIÊN MỤC LỤC Trang LỜI CẢM ƠN LỜI CAM ĐOAN TÓM TẮT LUẬN VĂN DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT DANH MỤC BẢNG DANH MỤC CÁC HÌNH ẢNH DANH MỤC BIỂU ĐỒ Chương TỔNG QUAN 1.1 Mở đầu 1.2 Mục tiêu luận văn 1.3 Phạm vi đối tượng nghiên cứu 1.3.1 Phạm vi nghiên cứu 1.3.2 Đối tượng nghiên cứu 1.4 Phương pháp nghiên cứu 1.4.1 Phương pháp nghiên cứu lý thuyết 1.4.2 Phương pháp thực nghiệm 1.5 Ý nghĩa khoa học thực tiễn luận văn 1.5.1 Ý nghĩa khoa học 1.5.2 Ý nghĩa thực tiễn 1.6 Cấu trúc luận văn Chương LÝ THUYẾT VỀ NHẬN DẠNG VÀ XỬ LÝ ẢNH 2.1 Nhận dạng thực phẩm 2.1.1 Mạng nơ ron tích chập 2.1.2 Tensorflow - Keras 11 2.1.2.1 Tensorflow 11 2.1.2.2 Keras 15 2.1.2.3 Tensorflow kết hợp Keras 18 2.2 Ước lượng calo 20 2.2.1 Quá trình xử lý ảnh 20 2.2.2 Một số thuật toán xử lý ảnh 21 2.2.2.1 Thuật toán Otsu 21 2.2.2.2 Thuật toán Canny 24 2.3 Giao thức HTTP truyền tải liệu Client Server 26 Chương XÂY DỰNG HỆ THỐNG PHẦN MỀM NHẬN DẠNG VÀ ƯỚC LƯỢNG CALO 30 3.1 Tổng quan hệ thống 30 3.1.1 Mô tả hệ thống 30 3.1.2 Môi trường ngôn ngữ cài đặt cho hệ thống 33 3.2 Mơ hình huấn luyện 34 3.2.1 Bộ liệu 34 3.3.2 Mơ hình nhận dạng thực phẩm 36 3.3 Mơ hình xử lý ảnh ước lượng calo 41 3.3.1 Xác định kích thước đĩa kích thước thực phẩm 42 3.3.2 Tính tốn ước lượng calo 44 3.3.2.1 Tính thể tích thực phẩm .45 3.3.2.2 Tính khối lượng thực phẩm 46 3.4 Ứng dụng Android 48 3.5 Kết thực nghiệm 50 3.5.1 Mô hình nhận dạng 50 3.5.2 Mơ hình tính tốn ước lượng calo 51 3.5.3 Ứng dụng Android 52 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 54 4.1 Kết đạt 54 4.1.1 Nhận dạng 54 4.1.2 Ước lượng calo 54 4.1.3 Xây dựng ứng dụng Android cho nhận dạng tính tốn Calo 54 4.2 Hạn chế 54 4.3 Hướng phát triển đề tài 55 TÀI LIỆU THAM KHẢO DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT STT Ký hiệu viết tắt Nội dung viết tắt CNN Convolutional Neural Network ReLU Rectified Linear Unit XLA Xử lý ảnh HTTP Hyper Text Transfer Protocol REST Representational State Transfer API Application Programming Interface TCP/IP Transmission Control Protocol/Internet Protocol 44 Bước Phân ngưỡng ảnh Bước Vẽ contour Bước Xác định kích thước thực phẩm Hình 3.12 Quy trình xác định kích thước thực phẩm 3.3.2 Tính tốn ước lượng calo Kết q trình xử lý ảnh lấy diện tích bề mặt đĩa diện tích bề mặt thực phẩm tính pixel Tỷ lệ pixel thực phẩm tỷ lệ pixel đĩa hệ số để tính diện tích thực phẩm thực tế từ quy thể tích để tính tốn khối lượng thực phẩm Để tính tốn khối lượng thực phẩm cần có yếu tố sau 45 - Thể tích thực phẩm - Khối lượng riêng thực phẩm 3.3.2.1 Tính thể tích thực phẩm Việc tính thể tích vật thể cần yếu tố sau - Diện tích bề mặt thực phẩm; - Độ dày thực phẩm a) Tính diện tích bề mặt thực phẩm * Trong trình xử lý hình ảnh lấy - Diện tích đĩa tính pixel (được ký hiệu q trình tính “area”) - Diện tích thực phẩm pixel (được ký hiệu q trình tính “area 1”) Gọi Sdis diện tích thực tế đĩa Sfood diện tích thực tế thực phẩm Tỷ lệ diện tích thực tế diện tích tính pixel đĩa ký hiệu “a” A = Sdis /area Diện tích thực phẩm tính theo cơng thức sau S food = a * area1 * Đề tài nhận dạng loại thực phẩm giả sử quy hình dạng khác gồm - Hình cầu (quả táo, hành tây, cam, cà chua); - Hình trụ (quả chuối, khoai lang, cà rốt); - Hình trịn biết độ dày (trứng chiên); - Hình hộp chữ nhật (bánh mì) b) Thể tích loại tính sau - Tính thể tích hình cầu Gọi r bán kính ước lượng từ hình ảnh tách biên thực phẩm 46 r=√ Sfood π Trong Sfood diện tích thực phẩm Thể tích ước lượng thực phẩm theo hình cầu V= ∗π∗r3 - Tính thể tích hình trụ Gọi h chiều cao thực phẩm sau tách biên h = hpix ∗ a Trong a tỉ lệ pix cm hpix chiều cao lớn hình bao thực phẩm tính pixel Bánh kính đáy trụ r= Sfood π∗h Thể tích hình trụ tính sau V=h∗π∗r2 Thể tích thực phẩm trứng tính theo thể tích hình trụ với giả thiết chiều dày trứng 0.3 cm - Thể tích hình hộp Thể tích hình hộp tính cách lấy diện tích thực phẩm nhân cho chiều dày thực phẩm (giả sử lát cắt bánh mì có độ dày 1.5cm) Thể tích khối hộp tính sau V = 1.5 ∗ Sfood 3.3.2.2 Tính khối lượng thực phẩm Khối lượng thực phẩm tính theo cơng thức sau m =V∗d 47 Trong m khối lượng thực phẩm V thể tích ước lượng thực phẩm d khối lượng riêng thực phẩm 3.3.2.3 Quy đổi calo Lượng Calo quy đổi theo công thức sau Calo = m ∗ Calo100 100 Trong m khối lượng thực phẩm Calo100 Lượng Calo thực phẩm quy đổi 100g thực phẩm Lượng calo 100g lấy từ nguồn liệu công bố kiểm chứng Bộ Nông nghiệp Hoa Kỳ [18] Các thực phẩm gắn nhãn Bảng 3.1 Bảng 3.1 Khối lượng riêng lượng calo 100g thực phẩm Loại thực Khối lượng riêng Calo 100 phẩm (g/cm3) gram (kcal) Apple 0.609 53 Hình cầu Banana 0.94 89 Hình trụ Bread 0.23 26.6 Hình khối hộp Carrot 1.04 41 Hình trụ Egg 1.03 155 Hình trịn Onion 0.96 40 Hình cầu Orange 1.03 47 Hình cầu Sweetpotato 1.03 85.8 Hình trụ Tomato 0.47 18 Hình cầu Label Hình dạng quy đổi 48 3.4 Ứng dụng Android - Giao diện người dùng (UI User Interface) - Giao diện ứng dụng thiết kế cách thân thiện với người sử dụng, dễ sử dụng xây dựng tảng Android Google flatform - Giao diện thiết kế sau (Hình 3.13) - Màn hình giao diện (Main Activity) gồm + Tên phần mềm (Calories counter), + Ngày tự động; + Khu vực hiển thị; + Nút nhấn chụp hình lựa chọn hình từ calo; + Tổng số calo nhận Hình 3.13 Màn hình ứng dụng 49 - Màn hình giao diện (Hiển thị kết quả) Sau tính tốn calo từ ảnh chụp liệu trả hiển thị kết Hình 3.14 sau Hình 3.14 Hình ảnh giao diện ứng dụng nhận kết tính tốn Mỗi lần chụp ảnh, tính tốn lượng calo lưu lại khu vực hiển thị Đối với ngày người dùng nạp calo từ phần thực phẩm vào, sau chụp hệ thống lưu lại theo ngày Với số calo nhận người dùng kiểm sốt phần ăn cho phù hợp Sau ứng dụng cài đặt, để sử dụng ứng dụng người dùng cần thực theo bước sau Bước Bấm vào biểu tượng App Bước Bấm vào biểu tượng máy ảnh hình 50 Bước Lựa chọn chụp ảnh chọn hình từ thư viện Bước Xác nhận gửi hình chụp hình Kết sau thực bước người dùng thấy - Kết tên thực phẩm lượng calo; - Tổng lượng calo sau lần chụp 3.5 Kết thực nghiệm 3.5.1 Mơ hình nhận dạng Với mơ hình nhận dạng kiến trúc Tensorflow thư viện Keras kết nhận với độ xác 98% thể qua Đồ thị 3.1 Train accuracy validation accuracy Các hình ảnh trước đưa vào nhận dạng resize theo kích thước cài đặt model Hình ảnh resize với kích cỡ chiều dài 224px, chiều rộng 224px Kết nhận dạng Hình 3.15 Kết nhận dạng số loại thực phẩm 51 3.5.2 Mơ hình tính tốn ước lượng calo Các hình ảnh chụp điện thoại Samsung Galaxy J8, với độ phân giải 13 Mega pixel Các ảnh sau tính tốn mơ hình tính tốn ước lượng calo ngôn ngữ Python Kết ước lượng thể Bảng 3.2 Bảng 3.2 Hình ảnh kết thực nghiệm sau viết ngôn ngữ Python 52 Thực phẩm chụp ghi lại khối lượng thực tế, khối lượng loại cân ghi lại cân điện tử WH-B05, kg sai số 1g Hình 3.16 Hình ảnh kết cân thực phẩm để lấy khối lượng thực tế Sau cân nặng thực tế chụp hình để ước lượng, quy đổi lượng calo thu số kết thể Bảng 3.3 Bảng 3.3 Bảng kết thực nghiệm Loại thực phẩm Apple Banana Bread Carrot Egg Onion Orange Sweetpotato Tomato Khối lượng thực tế (gram) 202 38 22 73 32 110 407 73 62 Calo thực tế (Kcal) 107,1 33.8 5.8 29.9 49.6 44 199.4 62.6 11.2 Calo ước lượng (Kcal) 115.6 32.3 4.0 32.3 46.1 47.6 246.1 61.6 9.4 3.5.3 Ứng dụng Android Các kết nhận dạng tính toán ước lượng Calo thực Server, cho kết sau 53 Hình 3.17 Kết thể ứng dụng 54 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 4.1 Kết đạt 4.1.1 Nhận dạng - Trình bày kiến thức Mạng nơ ron tích chập, Tensorflow thư viện Keras, nhận dạng hình ảnh thực phẩm; - Tạo liệu huấn luyện với loại 1000 ảnh; - Tạo mơ hình huấn luyện huấn luyện liệu mạng nơ ron tích chập (CNN) viết ngôn ngữ Python, sở Framework Tensorflow thư viện học sâu Keras 4.1.2 Ước lượng calo - Trình bày số thuật toán xử lý ảnh thuật toán Otsu, thuật tốn Canny để tính tốn ước lượng calo thực phẩm; - Sử dụng thuật toán xử lý ảnh Python OpenCV, xây dựng mơ hình tính calo dựa sở tách biên dạng thực phẩm đĩa từ ảnh chụp Từ tính tốn diện tích thực phẩm qua ảnh chụp ước lượng calo dựa vào thể tích khối lượng riêng thực phẩm 4.1.3 Xây dựng ứng dụng Android cho nhận dạng tính tốn Calo - Trình bày phương thức trao đổi liệu HTTP tảng Android Server tạo REST API thông qua công cụ có tên gọi Postman; - Xây dựng ứng dụng hệ điều hành Android giao tiếp với Server để liên kết liệu; - Đưa kết Tên thực phẩm lượng calo thực phẩm 4.2 Hạn chế Tuy luận văn đạt số kết khả quan số vấn đề tồn - Về nhận dạng Bộ liệu tạo chưa đủ lớn, số loại hình dạng loại chưa nhiều 55 - Về tính tốn lượng calo Lượng tính tốn khác từ hình ảnh chụp khác nhau, phụ thuộc vào khoảng cách chụp hình, độ tương phản, độ sáng tối, đồng thời chất lượng hình ảnh ảnh hưởng tới kết mơ hình Do quy thể tích loại hình học nên việc ước lượng calo sai số - Về ứng dụng Sử dụng Server miễn phí từ Amazon nên truy cập thường gặp tình trạng q tải dẫn đến khơng trả kết Android 4.3 Hướng phát triển đề tài Nghiên cứu để khắc phục hạn chế tìm hiểu phương pháp tiếp cận để đạt số kết sau - Tạo liệu với nhiều loại hình dạng khác loại thực phẩm - Cải tiến, ứng dụng kỹ thuật xử lý ảnh kết xác hơn; - Sử dụng Server có tốc độ truyền tải tốt để trả kết tốt TÀI LIỆU THAM KHẢO [1] Kawano, Y., & Yanai, K (2014), Food image recognition with deep convolutional features, Ubicom '14 Adjunct, September 13 17, 2014, ; [2] Nguyễn Đắc Thành (2017), Nhận dạng phân loại hoa ảnh màu, ; [3] Lê Thị Tuyết, Dương Thị Anh Đào, Bùi Thị Nhung, Nguyễn Thị Hồng Hạnh, Trần Quang Bình (2017), Hội chứng chuyển hóa trẻ bình thường trẻ béo phì 6-10 tuổi, Tạp chí Khoa học ĐHQGHN Khoa học Tự nhiên Công nghệ, Tập 33, Số 2, tr.81-88; [4] Trần Hữu Dàng, Nguyễn Hải Thủy (2008), Béo phì - Giáo trình sau đại học chuyên ngành Nội tiết Chuyển hóa, NXB Đại học Huế; [5] Cục Y tế dự phòng (2018), K ế t qu ả hội ngh ị dinh dưỡ ng m r ộng TP H Chi Minh lầ n ch ủ đề “Dinh dưỡng Lão hóa”, Cụ c y t ế dự phòng, ngày 16 tháng năm 2018, ; [6] Trần Thừa Nguyên (2012), Nghiên cứu kháng insulin người cao tuổi thừa cân béo phì, Đại học Huế-Trường Đại học y dược, ngày 27 tháng năm 2019, ; [7] N Yao et al (2007), A video processing approach to the study of obesity, IEEE Int Conf Multimedia Expo, 08 August 2007 , ; [8] Gianluigi Ciocca et al, Recognizing food in the wild using Deep Learning, IEEE Int Conf Multimedia Expo, 17 December 2018, ; [9] Taichi Joutou, Keiji Yanai (2009), A food image recognition system with Multiple Kernel Learning, IEEE Int Conf Multimedia Expo, 17 February ; [10] Yuji Matsuda, Hajime Hoashi, Keiji Yanai (2012), Recognition of Multiple-Food Images by Detecting Candidate Regions, IEEE Int Conf Multimedia Expo, 13 September 2012, ; [11] Minami Wazumi et al (2011), Auto-recognition of food images using SPIN feature for Food-Log system, IEEE Int Conf Multimedia Expo, 04 October 2012, ; [12] Dumoulin, V., & Visin, F (2016), A guide to convolution arithmetic for deep learning, arXiv, January 12, 2018, ; [13] Samer, C H., Rishi, K., & Rowen (2014), Image Recognition Using Convolutional Neural Networks, International Journal of Scientific and Engineering Research, June 2014, 2010 ; -ebook, [14] Giancalor Zaccone, Getting Started with TensorFlow ; [15] Indra Den Bakker (2017), Battle of the Deep Learning frameworks - Part I 2017, even more frameworks and interfaces, Towardsdatassciense, December 19, 2017, ; [16] Jeff Hale (2018), Deep learning framework power scores 2018, Towardsdatasscience, September 20, 2018, ; [17] Finetools, truy cập tháng năm 2020, ; [18] U.S Department of Agriculture, Agricultural Research Service, truy cập tháng năm 2020, ... soát lượng calo nạp vào thể ngày, luận văn trình bày ? ?Nhận dạng ước lượng calo thực phẩm? ?? với mục tiêu thông qua việc nhận dạng thực phẩm ước tính lượng calo có thực phẩm, từ tự kiểm sốt lượng. ..BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC LẠC HỒNG *** NHẬN DẠNG VÀ ƯỚC LƯỢNG CALO TRONG THỰC PHẨM Chuyên ngành Công nghệ thông tin Mã số LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN... xuất tên thực phẩm, dựa vào thực phẩm quy định sẵn lượng calo sau hệ thống theo dõi lượng thực phẩm tiêu thụ hàng ngày người làm thí nghiệm Trong cơng trình tác giả thực việc nhận dạng thực phẩm