1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Ứng dụng xử lý ảnh để phân loại sản phẩm bằng QR code trên băng tải

56 39 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 56
Dung lượng 5,89 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 CƠNG TRÌNH NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN ỨNG DỤNG XỬ LÝ ẢNH ĐỂ PHÂN LOẠI SẢN PHẨM BẰNG QR CODE TRÊN BĂNG TẢI MÃ SỐ: SV2021-114 CHỦ NHIỆM ĐỀ TÀI: HUỲNH TẤN PHÚC SKC 0 Tp Hồ Chí Minh, tháng 10/2021 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN ỨNG DỤNG XỬ LÝ ẢNH ĐỂ PHÂN LOẠI SẢN PHẨM BẰNG QR CODE TRÊN BĂNG TẢI Mã số đề tài: SV2021-114 Thuộc nhóm ngành khoa học: Khoa học ứng dụng SV thực hiện: Huỳnh Tấn Phúc-18151104 Giới tính: Nam Dân tộc: Kinh Lớp, khoa: 18151CL3B Năm thứ: / Số năm đào tạo: Ngành học: Công nghệ Kĩ thuật điều khiển Tự động hóa Người hướng dẫn: ThS Nguyễn Trần Minh Nguyệt TP Hồ Chí Minh, 10/2021 Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 2/55 MỤC LỤC CHƯƠNG MỞ ĐẦU Error! Bookmark not defined Tính cấp thiết đề tài _ 10 Tổng quan tình hình nghiên cứu _ 10 Mục tiêu đề tài _ 11 Cách tiếp cận, phương pháp nghiên cứu, phạm vi nghiên cứu _ 12 Cách tiếp cận _ 12 Phương pháp nghiên cứu 12 Phạm vi nghiên cứu 12 CHƯƠNG CƠ SỞ LÝ THUYẾT _ Error! Bookmark not defined Mã QR gì? 14 Mã QR ứng dụng đâu? 14 Cấu tạo mã QR _ 14 Mức độ lưu trữ: 14 Ngôn ngữ Python 15 Khái niệm 15 Tính 15 Giao diện điều khiển 16 GUI Python _ 16 Thư viện Tkinter _ 16 Thư viện pyserial 17 Cảm biến _ 18 Khái niệm 18 Cảm biến tiệm cận _ 18 Điều khiển động servo 19 Nguyên lý mạch cầu H 20 Máy tính nhúng 21 Khái niệm 21 Đặc điểm _ 21 Ưu điểm _ 21 CHƯƠNG NỘI DUNG THỰC HIỆN _22 Phần cứng 23 Quy trình cơng nghệ 23 Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 3/55 Lựa chọn thiết bị _ 23 Phần mềm 31 Khái quát nhận dạng mã QR _ 31 Thiết kế giao diện điều khiển _ 42 Giao diện 45 CHƯƠNG KẾT QUẢ THỰC NGHIỆM _ Error! Bookmark not defined Mơ hình phần cứng _ 47 Kiểm tra độ chỉnh xác hệ thống 47 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN _ 51 Kết luận 52 Hướng phát triển _ 52 PHỤ LỤC _ 54 Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 4/55 DANH MỤC BẢNG BIỂU Hình 2.1: Các kiểu mã QR Hình 2.2: Giao diên _ Hình 2.3: Lưu đồ python giao tiếp Arduino _ Hình 2.4: Cảm biến Hình 2.5: Nguyên lý hoạt động Servo Hình 2.6: Nguyên lý hoạt động động servo PWM _ Hình 2.7: Sơ đồ nguyên lý mạch cầu H Hình 2.8: Các loại máy tính nhúng Hình 3.1: Quy trình cơng nghệ _ Hình 3.2: Raspberry Pi _ Hình 3.3: Phụ kiện đính kèm Raspberry Hình 3.4: Sơ đồ chân Arduino Uno R3 Hình 3.5: động DC Hình 3.6: Động Micro Servo Hình 3.7: Modul L298 _ Hình 3.8: Sơ đồ khối L298 Hình 3.9: Cảm biến NPN _ Hình 3.10: Sơ đồ kết nối cảm biến Hình 3.11: Sơ đồ kết nối mạch _ Hình 3.12: Trình tự bước nhận dạng mã QR _ Hình 3.13: Quá trình ảnh xử lý Hình 3.14: Chuyển từ ảnh màu sang ảnh xám _ Hình 3.15: Hàm Gauss _ Hình 3.16: Ảnh làm mịn _ Hình 3.17: Làm nhỏ cạnh _ Hình 3.18: Ngưỡng Canny _ Hình 3.19: Kết Quả Canny Hình 3.20: Contour Hình 3.21: Kết find Contour _ Hình 3.22: Mơ tả thuật tốn Ramer-Douglas-Peucker _ Hình 3.23: Kết phương pháp xấp xỉ _ Hình 3.24: Hình ảnh thực tế bị méo dạng góc chụp camera Hình 3.25: Ví dụ Homo Hình 3.26: Kết đạt Homo Hình 3.27: Giao diện điều khiển Hình 4.1: Mơ hình 15 16 17 18 19 20 20 21 23 24 24 25 27 27 28 28 29 30 30 31 32 32 33 33 34 34 35 35 36 37 37 38 42 42 45 47 Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 5/55 DANH MỤC NHỮNG TỪ VIẾT TẮT CMYK: C = Cyan, M = Magenta, Y = Yellow, K = Key GUI: Graphical User Interface Homo: Homogenenous In: Input NMS: Non-maximum Suppression Out: Output Perl: Practical Extraction and Report Language PWM: Pulse-width modulation QR code: Quick Response code TC: Tool Command Language Tk: Tkinter UR: Uniform Resource Locator Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 6/55 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI Thông tin chung: - Tên đề tài: ỨNG DỤNG XỬ LÝ ẢNH ĐỂ PHÂN LOẠI SẢN PHẨM BẰNG QR CODE TRÊN BĂNG TẢI - Chủ nhiệm đề tài: Huỳnh Tấn Phúc Mã số SV:18151104 - Lớp: 18151CL3B Khoa: Đào tạo Chất lượng cao - Thành viên đề tài: Stt Họ tên MSSV Lớp Khoa Huỳnh Tấn Phúc 18151104 18151CL3B Đào tạo CLC Hà Tấn Phương 18151105 18151CL3B Đào tạo CLC Lê Quang Phương 18151106 18151CL3B Đào tạo CLC Nguyễn Trọng Quang 18151107 18151CL3B Đào tạo CLC Cù Trần Nguyên Vũ 18151150 18151CL3B Đào tạo CLC - Người hướng dẫn: ThS Nguyễn Trần Minh Nguyệt Mục tiêu đề tài: - Tìm hiểu hoạt động, cấu tạo QR code - Phân tích ưu điểm sử dụng QR code để phân loại so với phương pháp truyền thống so với phân loại thủ cơng - Làm mơ hình thực tế để xem xét khó khăn khuyết điểm phân loại QR code để tìm hướng giải phát triển thêm Tính sáng tạo: - Áp dụng mã QR vào phân loại sản phẩm cách tự động so với truyền thống dùng mã vạch cần người để tra cứu thơng tin sau phân loại thủ công Kết nghiên cứu: - Thiết kế mô hình phân loại sản phẩm tự động áp dụng mã QR Đưa đánh giá hạn chế mô hình từ có hướng phát triển sau Đóng góp mặt giáo dục đào tạo, kinh tế - xã hội, an ninh, quốc phòng khả áp dụng đề tài: - Tăng xuất hệ thống dây chuyền phân loại sản phẩm, từ hạ giá thành sản phẩm rút ngắn thời gian sản phẩm đến tay người dùng Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 7/55 Ngày tháng 10 năm 2021 SV chịu trách nhiệm thực đề tài (kí, họ tên) Huỳnh Tấn Phúc Nhận xét người hướng dẫn đóng góp khoa học SV thực đề tài (phần người hướng dẫn ghi): Ngày 14 tháng 10 năm 2021 Người hướng dẫn Nguyễn Trần Minh Nguyệt Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 8/55 CHƯƠNG MỞ ĐẦU Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 9/55 Tính cấp thiết đề tài Tại nước phát triển giới, đột phá khoa học – kỹ thuật giúp họ tìm cơng nghệ tiên tiến áp dụng sản xuất, chế tạo nghiên cứu Cho đến nay, việc ứng dụng kỹ thuật sống, công việc nhiều lĩnh vực khác áp dụng phổ biến Xu hướng phát triển công nghệ ngày đẩy mạnh nhằm phục vụ cải thiện đời sống người, đó, có cơng nghệ phát minh làm thay đổi tồn diện sống người… Cùng với tăng trưởng ngày mạnh mẽ cơng nghệ số việc kiểm tra liệu, thông tin sản phẩm cá nhân tổ chức cách nhanh chóng thuận tiện điều vơ quan trọng QR code đời nhằm đảm bảo đáp ứng yêu cầu Trong thời kì cơng nghệ hóa, đại hóa nhà máy ngày nhiều việc điều khiển tự động ngày phổ biến nên dây chuyền phân loại tự động cần thiết, giúp tăng suất, giảm sai sót, giảm thời gian phân loại, tốc độ phân loại cao, giảm sức lao động người Một nhà máy có tính tự động phân loại giảm diện tích kho bãi khơng có hàng tồn động, sản phẩm sau sản xuất trực tiếp lên container di chuyển đến nơi khác, không phụ thuộc vào công nhân vận chuyển thường dùng xe nâng hàng, giảm tai nạn lao động, doa trình cị người khơng trực tiếp can thiệp mà cần giám sát thiết bị vận hành Do công dụng QRcode đời sống thực nghiệm nên nhóm sinh viên chúng em định nghiên cứu QRcode Qua giúp chúng em hiểu cách vận hành có thêm nhận định rõ ưu nhược điểm mà tụi em làm thơng qua mơ hình Đó lý mà tụi em chọn đề tài để nghiên cứu, đề tài có bước tiến lớn ứng dung rộng rãi nước nên chúng em nghiên cứu với mơ hình mang tính chất tham khảo Từ giả thiết trên, định lựa chọn đề tài “ Ứng dụng xử lý ảnh để phân loại sản phẩm QR code băng tải” làm đề tài nghiên cứu khoa học Tổng quan tình hình nghiên cứu Trong nước: + Ở Việt Nam, QR Code đa số sử dụng dân dụng chưa rộng rãi công nghiệp + Nghiên cứu mã QR code ứng dụng công tác quản lý thông tin sinh viên (Tác giả: Nguyễn Duy Linh, Trương Thanh Đồng) (Bài viết nói ứng dụng mã QR code việc xác minh, tìm kiếm quản lý thơng tin sinh viên, sử dụng thiết bị có camera laptop hay camera thường để quét mã, tiết kiệm thời gian nhập thông tin, cho kết nhanh thực chức tra cứu.) + Ứng dụng QR code Ngồi nước: Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần sốt xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 10/55 Tính ma trận H Hình 3.25: Ví dụ Homo Hình 3.26: Kết đạt Homo Ma trận H: Thiết kế giao diện điều khiển Cửa sổ gốc - TK lớp mà sử dụng để tạo cửa sổ gốc - cửa sổ giao diện Giao diện nên có gốc tạo cửa sổ khác tách biệt với cửa sổ - Ln phải tạo cửa sổ để chứa widget + Ví dụ: win = Tk() win.title("QR Code") win.geometry("1000x800+150+30") win.resizable(False, False) Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 42/55 win.configure(bg = 'gray') Gỉải thích: - win = Tk() : tạo sổ gốc cho chương trình ( win: biến đặt tên ) - win.title(): đặt tên tiêu đề cho cửa sổ tạo - win.geometry(): thiết lập kích thước, vị trí cửa số 1000x800: size cửa số + 150 : thay đổi độ lệch theo phương x (ngang) + 30 : thay đổi độ lệch theo phương y(dọc) - win.resizable() : thay đổi kích thước cửa sổ False,False: khơng phép thay đổi - win.configure(): ghi đè lên sổ bg=gray: màu màu xám Label - Chức năng: Được sử dụng để hiển thị văn hình ảnh hình Label hiển thị văn với màu văn hệ thống mặc định màu văn hệ thống mặc định Chúng thường có màu đen trắng tương ứng, thay đổi màu Ta kiểm sốt Label văn màu cách sử dụng Foreground Background - Ví dụ: Lable_text_1 = Label(win, text = "PHÂN LOẠI SẢN PHẨM SỬ DỤNG QRCODE", font ="Times 20 bold", bg = 'black',fg = 'white') Giải thích: win: cửa sổ gốc mà hiển thị lên (bắt buộc ghi Label) text: hiển thị văn lên label font: phơng chữ, kích thích chữ hiển thị, bg, fg”: xác định màu background, foreground Button - Chức năng: Nút nhấn tiện ích Tkinter tiêu chuẩn Một nút sử dụng cách để người dùng tương tác với giao diện Sau nhấp vào nút, hành động kích hoạt chương trình - Ví dụ: button_quit= Button(win, text="Exit Program", font =("Arial",20,"bold"), command=win.quit, fg="BLACK", bg="#6e706f", height =3, width=30) Giải thích: win: cửa sổ gốc mà hiển thị lên (bắt buộc ghi Label) Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 43/55 text: hiển thị văn lên label font: phơng chữ, kích thích chữ hiển thị, bg, fg: xác định màu background, foreground command: chức nút nhấn (nhận từ chương trình câu lệnh bất kỳ) height, width: kích cỡ nút nhấn (cao rộng) Frame - Chức năng: Nó sử dụng hộp chứa xếp widget hiển thị tiện ích khung chủ yếu sử dụng tổng thể hình học cho tiện ích khác để cung cấp phần đệm tiện ích khác - Ví dụ: frame_1 = Frame(win,bg = 'gray',highlightbackground ='blue' ,highlightthickness= 3,width = 580, height=500) Giải thích: win: cửa sổ gốc mà hiển thị lên (bắt buộc ghi Label) highlightbackground: màu viền bao quang khung highlightthickness: độ dày đường viền bao quang khung height, width: kích cỡ khung bg, fg: xác định màu background, foreground Câu lệnh place () - Chức năng: để xếp widget theo toạ độ x y cửa số gốc - Code: (tên biến).place() Ví dụ: win.place( tuỳ chọn ) Dưới tuỳ chọn: Bordermode: Giá trị mặc định kiểu đường viền INSIDE đề cập tới việc bỏ qua gốc bên đường viền Tuỳ chọn lại OUTSIDE height, width xác định chiều cao chiều rộng widget x, y độ lệch ngang, dọc phạm vi sổ gốc Anchor: hiển thị vị trí xác widget Mặc định NW (góc bên trái) Vịng lặp - Chức năng: Yêu cầu Python chạy vòng lặp Tkinter để hiển thị cửa sổ gốc liên tục bắt đầu nhận widget để hiển thị Phương thức nhận widget, chẳng hạn nhấp vào nút hoăc nhấn phím chặn mã chạy sau đến cửa sổ đóng lại - Code: (tên biến).mainloop() ( Viết cuối dịng chương trình) Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 44/55 ví dụ: win.mainloop() Giao diện Hình 3.27: Giao diện điều khiển Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 45/55 CHƯƠNG KẾT QUẢ THỰC NGHIỆM Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 46/55 Mơ hình phần cứng Hình 4.1: Mơ hình Kiểm tra độ chỉnh xác hệ thống Ảnh đầu vào Ảnh đầu Kết Nhận Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 47/55 Nhận Nhận Không nhận Nhận Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 48/55 Nhận Không nhận Khơng nhận Nhận Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần sốt xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 49/55 Không nhận Nhận xét - Hệ thống nhận diện mã QR 6/10 ảnh đạt tỷ lệ khoảng 60% - Hệ thống hoạt động tốt trường hợp có đầy đủ ánh sáng khoảng cách từ camera đến mặt phẳng ảnh chụp khoảng cố định từ 25-35cm Trong trường hợp ánh sáng yếu hệ thống giảm khả nhận dạng dẫn đến kết bị sai - Đối với trường hợp có nhiều vật thể gây nhiễu xung quanh mã QR nhận diện được, nhiên có vật che chắn mã QR khơng nhận dạng - Mã QR phải hướng nhận diện bị ngược khơng nhận diện Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 50/55 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 51/55 Kết luận Sau khoảng thời gian nghiên cứu, thiết kế thi công, thời gian dài sử dụng hiệu chỉnh, đề tài: “ Ứng dụng xử lý ảnh để phân loại sản phẩm QR code băng tải” đạt kết sau: + Về mặt thẩm mỹ, tình hình dịch bệnh nên mơ hình chưa hồn thiện mong muốn + Mơ hình chạy đạt u cầu, không gặp lỗi hệ thống hoạt động Hướng phát triển Từ đó, chúng em rút hướng phát triển nhằm cải tiến hệ thống sau: + Áp dụng mã sửa lỗi Reed Solomon làm cho nhận diện trường hợp mã QR bị che, bị rách, mờ, bay màu mực in, nhận diện mã QR bị ngược + Cải thiện khả nhận diện môi trường thiếu sáng thay ánh sáng cố định Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 52/55 Tài liệu tham khảo Nguyễn Thanh Hải (2014) Xử lý ảnh, Nhà xuất Đại học quốc gia thành phố Hồ Chí Minh Multiple View Geometry in Computer Vision (Second Edition) Published in the United States of America by Cambridge University Press, New York Gaussian Blur ( làm mịn ảnh) https://en.wikipedia.org/wiki/Gaussian_blur Ramer-Douglas-Peucker_algorithm https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algo rithm Homography https://en.wikipedia.org/wiki/Homography_(computer_vision) Bernd Girod (2013-2014) Digital Image Processing, Stanford University Mã QR https://en.wikipedia.org/wiki/QR_code Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 53/55 PHỤ LỤC # gọi thư viện serial import serial # khai báo tham số như: cổng COM, tốc độ truyền thông Baudrate = 9600 Arduino_Serial = serial.Serial('COM3', 9600) # đọc tín hiệu trả từ Arduino có trả chứng minh kết nối hoàn tất s = Arduino_Serial.readline() print ("Nhập LED sáng, nhập LED tắt") while 1: input_data = input() print ("Bạn vừa nhập:", input_data) if (input_data == '1'): # Nhập sáng Arduino_Serial.write('1'.encode()) # gữi liệu cho Arduino với kiểu liệu char print ("LED ON") if (input_data == '0'): # Nhập tắt Arduino_Serial.write('0'.encode()) print ("LED OFF") Arduino Code # thiết lập giá trị input const int led=13; int value=0; void setup() { Serial.begin(9600); pinMode(led, OUTPUT); digitalWrite (led, LOW); Serial.println("Connection established "); } //gửi liệu cho python kết nối void loop() { while (Serial.available()) { value = Serial.read(); } // biến value lưu giá trị từ python if (value == '1') // Nếu ‘1’ on led, ‘0’ off led digitalWrite (led, HIGH); else if (value == '0') digitalWrite (led, LOW); } Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 54/55 Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 55/55 ... NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN ỨNG DỤNG XỬ LÝ ẢNH ĐỂ PHÂN LOẠI SẢN PHẨM BẰNG QR CODE TRÊN BĂNG TẢI Mã số đề tài: SV2021-114 Thuộc nhóm ngành khoa học: Khoa học ứng dụng SV thực hiện: Huỳnh Tấn... tạo QR code - Phân tích ưu điểm sử dụng QR code để phân loại so với phương pháp truyền thống so với phân loại thủ công - Làm mơ hình thực tế để xem xét khó khăn khuyết điểm phân loại QR code để. .. đề tài “ Ứng dụng xử lý ảnh để phân loại sản phẩm QR code băng tải? ?? làm đề tài nghiên cứu khoa học Tổng quan tình hình nghiên cứu Trong nước: + Ở Việt Nam, QR Code đa số sử dụng dân dụng chưa rộng

Ngày đăng: 07/09/2022, 21:37

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w