Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 60 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
60
Dung lượng
6,09 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP CÔNG NGHỆ THÔNG TIN XÂY DỰNG HỆ THỐNG NHẬN DẠNG THỰC PHẨM DỰA TRÊN HỌC SÂU GVHD: ThS QCH ĐÌNH HỒNG SVTH : LƯU GIA BẢO NGUYỄN QUỐC VIỆT S K L0 1 Tp Hồ Chí Minh, năm 2023 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM KHOA CÔNG NGHỆ THÔNG TIN KHOÁ LUẬN TỐT NGHIỆP Đề Tài: XÂY DỰNG HỆ THỐNG NHẬN DẠNG THỰC PHẨM DỰA TRÊN HỌC SÂU GVHD: ThS QCH ĐÌNH HỒNG SVTH: LƯU GIA BẢO 19133008 NGUYỄN QUỐC VIỆT 19133068 KHÓA 2019-2023 PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ tên Sinh viên 1: Lưu Gia Bảo MSSV: 19133008 Họ tên Sinh viên 2: Nguyễn Quốc Việt MSSV: 19133068 Ngành: Kỹ thuật liệu Tên đề tài: Xây dựng hệ thống nhận dạng thực phẩm dựa học sâu Họ tên Giáo viên hướng dẫn: Qch Đình Hồng NHẬN XÉT Về nội dung đề tài khối lượng thực hiện: Ưu điểm: Khuyết điểm Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm: Tp Hồ Chí Minh, ngày tháng năm 2022 Giáo viên hướng dẫn (Ký & ghi rõ họ tên) PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ tên Sinh viên 1: Lưu Gia Bảo MSSV: 19133008 Họ tên Sinh viên 2: Nguyễn Quốc Việt MSSV: 19133068 Ngành: Kỹ thuật liệu Tên đề tài: Xây dựng hệ thống nhận dạng thực phẩm dựa học sâu Họ tên Giáo viên phản biện: Nguyễn Thành Sơn NHẬN XÉT Về nội dung đề tài khối lượng thực hiện: Ưu điểm: Khuyết điểm Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm: Tp Hồ Chí Minh, ngày tháng năm 2022 Giáo viên phản biện (Ký & ghi rõ họ tên) PHÂN CÔNG Tên thành viên Công việc Lưu Gia Bảo - 19133008 Huấn luyện mô hình, đưa mơ hình lên web Nguyễn Quốc Việt - 19133068 H́n luyện mơ hình, chuẩn bị liệu LỜI CẢM ƠN Lời đầu tiên, nhóm em xin chân thành cảm ơn nhà trường, thầy cô của khoa Công nghệ thông tin đã tạo điều kiện cũng trang bị cho em kiến thức tảng để thực trọn vẹn tiểu luận Nhóm em xin trân trọng cảm ơn thầy Hốch Đình Hồng - giảng viên hướng dẫn đã tận tình giúp đỡ cung cấp thơng tin hữu ích q trình thực tiểu luận Cám ơn thầy đã giải đáp đóng góp ý kiến cũng nhận xét để nhóm cải thiện hoàn thành tiểu luận chuyên ngành Do kiến thức thời gian còn hạn chế nên khó tránh khỏi thiếu sót Rất mong nhận ý kiến đóng góp từ thầy để nhóm có thể có thể cải thiện Nhóm thực xin chân thành cảm ơn thầy MỤC LỤC PHÂN CÔNG LỜI CẢM ƠN MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC TỪ VIẾT TẮT 11 MỞ ĐẦU 12 GIỚI THIỆU ĐỀ TÀI 12 MỤC TIÊU NGHIÊN CỨU 12 BỐ CỤC KHÓA LUẬN 13 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 14 1.1 Computer Vision 14 1.2 Object Detection 15 1.2.1 Khái niệm: 15 1.2.2 Quy trình hoạt động: 15 1.3 Deep Learning 16 1.3.1 Khái niệm 16 1.3.2 Cách hoạt động của Deep Learning 16 1.3.3 Ưu nhược điểm của Deep Learning 17 1.4 Neural Network 18 1.4.1 Khái niệm Neuron Network 18 1.4.2 Cách thức hoạt động 18 1.4.3 Mô hình Neural Network 18 1.4.4 Ứng dụng của Neural Network 20 1.5 Convolutional Neural Network 20 1.5.1 Khái niệm 20 1.5.2 Các lớp của CNN 21 1.5.3 Cách thức hoạt động CNN 22 1.6 YOLOv7 23 1.6.1 Giới thiệu 23 1.6.2 Cách hoạt động 23 1.6.3 Kiến trúc 27 1.6.4 Đánh giá mơ hình 31 CHƯƠNG 2: THIẾT KẾ HỆ THỐNG 34 2.1 Giới thiệu liệu: 34 2.2 Chuẩn bị liệu: 35 2.3 H́n luyện mơ hình 38 CHƯƠNG 3: TRIỂN KHAI ỨNG DỤNG 44 3.1 Lấy thông tin thực phẩm gọi API 44 3.2 Đưa mơ hình dự đốn lên web server Streamlit 46 3.3 Kết chương trình 49 3.3.1 Giao diện ứng dụng 49 3.3.2 Thông tin chi tiết model 50 3.3.3 Nhận dạng thực phẩm hình ảnh 53 ĐÁNH GIÁ VÀ KẾT LUẬN 57 KẾT QUẢ ĐẠT ĐƯỢC 57 HẠN CHẾ 57 HƯỚNG PHÁT TRIỂN 57 TÀI LIỆU THAM KHẢO 58 DANH MỤC HÌNH ẢNH Hình Computer Vision 14 Hình Những ứng dụng của Computer Vision 14 Hình Các dạng tốn của Computer Vision 15 Hình Hoạt động Neuron Network 17 Hình Mơ hình Neuron Network 19 Hình Ứng dụng Neuron Network 20 Hình Cấu trúc CNN 21 Hình Cách hoạt động CNN 22 Hình YOLO timeline 23 Hình 10 YOLO input 24 Hình 11 Cách hoạt động YOLO 25 Hình 12 Ví dụ IOU 26 Hình 13 Công thức IOU 26 Hình 14 Thuật tốn NMS 27 Hình 15 Kiến trúc YOLOv7 28 Hình 16 ELAN Block 29 Hình 17 Feature Pyramid Network 30 Hình 18 Output Head 31 Hình 19 Cơng thức tính AP 31 Hình 20 Cơng thức precision 32 Hình 21 Cơng thức recall 32 Hình 22 Precision x recall curve 32 Hình 23 Nội suy 11 điểm 33 Hình 24 Open Image dataset 34 Hình 25 Class 34 Hình 26 OIDv4 Toolkit 35 Hình 27 Lệnh download hình ảnh OID v4 ToolKit 35 Hình 28 Kết 36 Hình 29 Ví dụ ảnh tập liệu 37 Hình 30 Cấu trúc thư mục 38 Hình 31.Mơ hình YOLOv7 github 38 Hình 32 Vast.ai 39 Hình 33 File cấu hình data.yaml 39 Hình 34 COCO dataset 40 Hình 35 API wandb.ai 40 Hình 36 Cú pháp để h́n luyện mơ hình 40 Hình 37 Thơng tin mơ hình upload lên wandb 41 Hình 38 Resume training 42 Hình 39 mAP 42 Hình 40 Precision 42 Hình 41 Recall 43 Hình 42 Test example 43 Hình 43 Nutritionix API 44 Hình 44 Natural search Kết trả lưu dạng Json Hình 45 Kết trả về gọi API Trong đó: Food_name: tên loại thực phẩm nf: tên loại dinh dưỡng value: giá trị của loại dinh dưỡng serving_weight_grams: khối lượng của loại thực phẩm nf_calories: giá trị calories 45 id: giá trị index của loại thực phẩm Sau đó nhóm em đưa toàn 74 loại thực phẩm để lấy giá trị dinh dưỡng lưu tên file food.json Hình 46 Gọi API cho tồn loại thực phẩm 3.2 ĐƯA MƠ HÌNH DỰ ĐOÁN LÊN WEB SERVER BẰNG STREAMLIT Sau training xong mơ hỉnh nhận dạng mơ hình lưu file weight dạng.pt Hình 47 Mơ hình dùng nhận dạng Sau đó load mơ hình đã lưu tệp food.json lấy từ gọi api phần trước Sau có mơ hình xây dựng hàm nhận dạng: 46 Hình 48 Hàm dự đoán Đầu vào có năm tham số hình ảnh cần nhận dạng, mơ hình, confidence, color_pick_list: màu của loại, draw_thick: độ dày của viền bounding box Với hình ảnh đầu vào resize thơng qua letterbox để phù hợp với việc chia tỉ lệ cho grid size, sau đó hình ảnh chuyển đổi chiều (C, W, H), chuẩn hoá [0,1] convert từ unit8 sang fp16 để tăng tốc khả tính toán, cuối tăng thêm số chiều từ (C, W, H) lên (Batch, C, W, H) để phù hợp với input mô hình Tiếp theo mơ hình dự đốn tạo bounding box sử dụng non max suppression để loại bỏ box dư thừa Từ Bbox có thể xác định vị trí của loại thực phẩm hình ảnh ban đầu giá trị dinh dưỡng của loại thực phẩm đó Sau đó xây dựng hàm để trực quan kết dự đoán của mơ hình cũng thơng tin giá trị dinh dưỡng của loại thực phẩm đó sử dụng thư viện Plotly Hàm thơng tin dự đốn: 47 Hình 49 Hàm vẽ thông tin dự đoán Vẽ đồ thị thông tin chi tiết món ăn: Hình 50 Hàm vẽ thông tin thực phẩm Tương tự với hình ảnh webcam cũng hoạt động giống Webcam liên tục gửi frame đến mơ hình, mơ hình dự đốn trả lại frame đã nhận dạng hiển thị cho người dùng Trong streamlit thư viện webrtc hỗ trợ làm điều đấy Hình 51 Nhận diện webcam 48 Hình 52 Video frame callback Hàm video_frame_callback webrtc_streamlit dùng để nhận lại frame webcam nhận diện tương tự ảnh trả lại cho người dùng Ngoài muốn sử dụng webrtc mơi trường production phải cấu hình ice server 3.3 KẾT QUẢ CHƯƠNG TRÌNH 3.3.1 Giao diện ứng dụng Để chạy ứng dụng dùng lệnh hình Hình 53 Chạy chương trình Sau đó truy cập vào http://localhost:8501 49 Hình 54 Giao diện hệ thống Menu gồm hai phần: - YOLOv7: Sử dụng mơ hình để nhận dạng vật phẩm - Info: Thông tin mô tập liệu, độ đo, … 3.3.2 Thơng tin chi tiết về model Để xem thông tin chi tiết mơ hình ta chọn mục info của ứng dụng: 50 Hình 55 Thơng tin mơ hình Phần info giới thiệu chi tiết tập liệu, pretrain model, kiến trúc của mơ hình mà nhóm đã sử dụng để training mơ hình kết để đánh giá mơ hình Hình 56 Thơng tin tập liệu 51 Hình 57 Thông tin pretrain model Hình 58 Thông tin cấu trúc mơ hình Hình 59 Thơng tin đánh giá mô hình 52 3.3.3 Nhận dạng thực phẩm hình ảnh Để nhận dạng thực phẩm ta chọn mục YOLOv7 của ứng dụng có hai lựa chọn image webcam Hình 60 Chọn hình ảnh Đầu tiên với image ta lựa chọn confidence cho mơ hình, confidence cao mơ hình nhận dạng chính xác có thể bỏ qua loại thực ăn khơng đủ chi tiết Ta lựa chọn draw thickness để xác định độ dày của viền bounding box 53 Kết quả: Hình 61 Kết nhận dạng Ta thấy kết nhận dạng hiển thị loại thức ăn tính tổng calories của loại thực phẩm đó Ngồi cịn thị thêm thông tin giá trị dinh dưỡng của loại thực phẩm đó 54 Hình 62 Thông tin thực phẩm Có thể xem thêm thơng tin chi tiết cách nhấn vào Url: 55 Hình 63 Thông tin thực phẩm nutrition Tương tự với webcam Hình 64 Nhận dạng webcam 56 ĐÁNH GIÁ VÀ KẾT LUẬN KẾT QUẢ ĐẠT ĐƯỢC Tìm hiểu lý thuyết Deep learning, CNN, Object Detection mơ hình YOLOv7 Xây dựng mơ hình nhận dạng thức ăn dựa thực tốn YOLOv7 Đưa mơ hình lên web Streamlit để sử dụng triển khai lên server HẠN CHẾ Hạn chế kĩ thuật chi phí nên thời gian train lâu, train dược mô hình Khá khó khăn việc chuẩn bị liệu HƯỚNG PHÁT TRIỂN Tích hợp vào ứng dụng quản lý sức khoẻ để quản lý bữa ăn Sử dụng điện thoại di động 57 TÀI LIỆU THAM KHẢO [1] HueDiemDue "Thị Giác máy Tính gì? Các Vấn đề Liên Quan Tới Thị Giác máy tính." viblo https://viblo.asia/p/thi-giac-may-tinh-la-gi-cac-van-de-lien-quantoi-thi-giac-may-tinh-Az45b4M6ZxY (accessed June 2023) [2] E Burns "What is Deep Learning and How Does It Work?" Kate Brush https://www.techtarget.com/searchenterpriseai/definition/deep-learning-deepneural-network (accessed June 2023) [3] J CHEN "What Is a Neural Network?" MICHAEL J BOYLE https://www.investopedia.com/terms/n/neuralnetwork.asp (accessed June 2023) [4] S Saha "A Comprehensive Guide to Convolutional Neural Networks " Data Science & ML https://saturncloud.io/blog/a-comprehensive-guide-toconvolutional-neural-networks-the-eli5-way/ (accessed 10 June 2023) [5] A B Chien-Yao Wang, Hong-Yuan Mark Liao "YOLOv7: Trainable bag-offreebies sets new state-of-the-art for real-time object detectors." Chien-Yao Wang https://arxiv.org/abs/2207.02696 (accessed 15 June 2023) 58