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

ĐỒ án THIẾT kế 1 đề tài nghiên cứu viết chương trình nhận dạng và điều khiển camera bám đối tượng trên jetson

25 1 0

Đ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

Tiêu đề Đồ án Thiết kế 1 Đề tài Nghiên cứu viết chương trình nhận dạng và điều khiển camera bám đối tượng trên Jetson
Tác giả Đồng Văn Duy, Đỗ Xuân Long, Nguyễn Phú Lâm
Người hướng dẫn PGS.TS Nguyễn Thúy Anh
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Kỹ thuật Điện tử, Viễn thông
Thể loại Đồ án thiết kế
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 25
Dung lượng 616,28 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thị giác máybao gồm lý thuyết và các kỹ thuật liên quan nhằm mục đích tạo ra một hệ thống nhântạo có thể tiếp nhận thông tin từ các hình ảnh thu được hoặc các tạp dữ liệu đa chiều.Việc k

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - VIỄN THÔNG

ĐỒ ÁN THIẾT KẾ 1

Đề tài

Nghiên cứu viết chương trình nhận dạng và điều

khiển camera bám đối tượng trên jetson

Nhóm sinh viên thực hiện:

Đồng Văn Duy 20182461

Đỗ Xuân Long 20182650 Nguyễn Phú Lâm 20182627

Hà Nội, 2-2022

Trang 2

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - VIỄN THÔNG

ĐỒ ÁN THIẾT KẾ 1

Đề tài

Nghiên cứu viết chương trình nhận dạng và điều

khiển camera bám đối tượng trên jetson

Nhóm sinh viên thực hiện:

Giảng viên hướng dẫn

Đồng Văn Duy 20182461

Đỗ Xuân Long 20182650 Nguyễn Phú Lâm 20182627

PGS.TS Nguyễn Thúy Anh

Hà Nội, 2-2022

TIEU LUAN MOI download : skknchat123@gmail.com moi nhat

Trang 3

LỜI NÓI ĐẦU

Trong những năm gần đây, trên thế giới nghiên cứu ứng dụng công nghệ xử lý và nhậndạng ảnh đang là hướng nghiên cứu tập trung của rất nhiều nhà khoa học trong các lĩnhvực Từ những năm 1970 khi mà năng lực tính toán của máy tính ngày càng trở nênmạnh mẽ hơn, các máy tính lúc này có thể xử lý được những tập dữ liệu lớn như cáchình ảnh, các đoạn video thì một khái niệm nữa về xử lý ảnh nữa ra đời đó là: Thị giácmáy- Computer vision Có thể nói xử lý ảnh số và thị giác máy đãđ ược phát triển vàtrở thành một lĩnh vực khoa học Xử lý ảnh số không chỉ nâng cao chất lượng của ảnh

mà còn phân tích và lý giải tìm ra giải thuật để ứng dụng vào thực tiễn Thị giác máybao gồm lý thuyết và các kỹ thuật liên quan nhằm mục đích tạo ra một hệ thống nhântạo có thể tiếp nhận thông tin từ các hình ảnh thu được hoặc các tạp dữ liệu đa chiều.Việc kết hợp giữa thị giác máy với các kỹ thuật khác như công nghệ thông tin, truyềnthông, điện tử, điều khiển tự động, cơ khí…cho chúng ta rất nhiều ứng dụng trong đờisống hàng ngày cũng như trong khoa học, an ninh, y học, quân sự… Ngày nay, ứngdụng của thị giác máy đã trở nên rất rộng lớn và đa dạng, len lỏi vào mọi lĩnh vực từquân sự, khoa học, vũ trụ, cho đếny học, sản xuất, và tự động hóa tòa nhà Trong thờigian qua dưới sự hướng dẫn tận tình của cô Nguyễn Thúy Anh và thầy Nguyễn HữuTrung, chúng em đã dành thời gian nghiên cứu về xử lý ảnh và nhận dạng ảnh hay nóiđúng hơn là thuật toán xử lý ảnh bám đối tượng – Tracking

Những nội dung mà nhóm chúng em nghiên cứu được ở đây bao gồm:

• Nghiên cứu tổng quan về xử lý ảnh số và hệ bám đối tượng

• Tìm hiểu và nghiên cứu về thư viện mã nguồn mở OpenCV

• Xây dựng được một hệ thống camera bám theo mục tiêu di dộng ứng dụng thuật toán bám ảnh Camshitf

Để hoàn thành đồ án này đúng tiến độ em xin gửi lời cảm ơn chân thành tới côNguyễn Thúy Anh và thầy Nguyễn Hữu Trung là người trực tiếp hướng dẫn chúng emlàm đồ án này

Trang 4

BẢNG PHÂN CÔNG NHIỆM VỤ

Đồng Văn Duy • Tìm hiểu OpenCV và thuật toán bám đối

tượng bằng Servos trong OpenCv

• Chuẩn bị báo cáo word

Đỗ Xuân Long • Tìm hiểu và xây dựng mô hình pan-tilt

• Chuẩn bị slideNguyễn Phú Lâm • Tìm hiểu jetson nano

• Nhận dạng đường viền bằng OpenCV

TIEU LUAN MOI download : skknchat123@gmail.com moi nhat

Trang 5

M C L C ỤC LỤC ỤC LỤC

MỤC LỤC ii

DANH MỤC HÌNH VẼ iii

CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG CAMERA NHẬN DẠNG VÀ ĐIỀU KHIỂN BÁM ĐỐI TƯỢNG 1

1.1 Giới thiệu 1

1.2 Yêu cầu 1

CHƯƠNG 2 NGHIÊN CỨU VÀ ĐỀ XUẤT PHẦN MỀM VÀ PHẦN CỨNG CHO CHƯƠNG TRÌNH ĐIỀU KHIỂN CAMERA NHẬN DẠNG BÁM ĐỐI TƯỢNG 3

2.1 Phần cứng phục vụ xử lý ảnh và điều khiển hệ thống 3

2.1.1 Các giải pháp trong thực tế 3

2.1.2 Giải pháp phần cứng được sử dụng trong đề tài 3

2.2 Phần mềm phục vụ xử lý ảnh và điều khiển hệ thống 4

2.2.1 Thư viện OpenCV là gì? 4

2.2.2 Cấu trúc và nội dung của OpenCV 4

2.2.3 Hướng tiếp cận xây dựng mô hình hệ pan-tilt mang camera 6

CHƯƠNG 3 THIẾT KẾ VÀ THI CÔNG HỆ THỐNG NHẬN DẠNG VÀ ĐIỀU KHIỂN CAMERA BÁM ĐỐI TƯỢNG 7

3.1 PHƯƠNG TRÌNH TRẠNG THÁI CỦA HỆ THỐNG NHẬN DẠNG VÀ ĐIỀU KHIỂN CAMERA BÁM ĐUỐI TƯỢNG 7

3.1.1 Giới thiệu 7

3.1.2 Mô hình toán học của hệ pan-tilt camera 8

3.2 XẤY DỰNG THUẬT TOÁN NHẬN DẠNG, BÁM ĐỐI TƯỢNG VÀ THUẬT TOÁN ĐIỀU KHIỂN HỆ THỐNG 8

3.2.1 Giải thuật tách nền 8

3.2.2 Phương pháp lọc nhiễu 8

3.2.3 Phương pháp tracking đối tượng, dự báo hướng di chuyển và vận tốc đối tượng sử dụng thuật toán Camshift kết hợp bộ lọc Kalman 9

3.3 XÂY DỰNG MÔ HÌNH VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN 10

Trang 6

3.3.1 Mô hình 10

3.3.2 Chương trình điều khiển 10

TÀI LIỆU THAM KHẢO 16

ii TIEU LUAN MOI download : skknchat123@gmail.com moi nhat

Trang 7

DANH MỤC HÌNH VẼ

Hình 1-1 Sơ đồ tổng quát hệ pan-tilt camera nhận dạng và bám đối tượng 1

Hình 2-1 Cấu trúc của OpenCV 4

Hình 3-1 Tọa độ đối tượng trên frame ảnh thu được 7

Hình 3-2 Mô hình hóa hệ Pan-tilt 7

Hình 3-3 Lưu đồ thuật toán nhận dạng và bám đối tượng 8

Hình 3-4 Sơ đồ kết hợp giữa bộ lọc Kalman và Camshift 9

Hình 3-5 Mô hình hệ thống nhận dạng và điều khiển camera bám đối tượng 10

Trang 9

CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG CAMERA NHẬN

DẠNG VÀ ĐIỀU KHIỂN BÁM ĐỐI TƯỢNG

1.1 Giới thiệu

Trong thực tế, đã có rất nhiều tác giả nghiên cứu chế tạo các mô hình điều khiển hệ thống mang camera bám đuổi theo đối tượng dịch chuyển Chẳng hạn như hệ robot xe– camera, cánh tay máy mang camera, nòng súng mang camera, hệ pan –tilt camera

có thể xoay nhiều hướng Trong số các mô hình này, hệ pan-tilt camera (một hệ thống

cơ khí gồm hai động cơ DC, sử dụng vi điều khiển và giao tiếp với máy tính ) là mộttrong những mô hình cơ bản nhất, mục tiêu của mô hình này là điều khiển hai động cơ

DC servo hoặc động cơ bước để đảm bảo tầm quan sát và hướng quan sát của cameratheo dõi và bám theo đối tượng di chuyển Hình dưới đây mô tả sơ đồ tổng quát của hệpan-tilt camera theo dõi và

Trang 10

tượng đó có thể là sự thay đổi chiếu sáng, sự thay đổi mầu do tự cân bằng trắng (hoặc

hiệu chỉnh mầu) trong camera mầu, sự thay đổi giá trị pixel do rung rinh hoặc các hiện

tượng khác, từ đó sinh ra các chuyển động giả trong cảnh động Các chuyển động cũng

còn do chuyển động của bóng, cây và nhiều thứ khác trong cảnh cần được xem xét và

phát hiện đó là các chuyển động giả Trong diễn dải ở trên, chúng ta cần mô hình nền

sao cho chỉ những vật di động cần quan tâm được phát hiện và bám

2TIEU LUAN MOI download : skknchat123@gmail.com moi nhat

Trang 11

CHƯƠNG 2 NGHIÊN CỨU VÀ ĐỀ XUẤT PHẦN MỀM VÀ PHẦN CỨNG CHO CHƯƠNG TRÌNH ĐIỀU KHIỂN CAMERA

Main công nghiệp, máy tính nhúng

Có thể sử dụng mainboard PC104 với các chức năng như 1 máy tính thông thường

FPGA

Đây là giải pháp về phần cứng mà hay được sử dụng hiện nay Tận dụng đặc tính củaFPGA là linh hoạt và tốc độ xử lý nhanh (cứng hoá các giải thuật) Ta có thể kết nốiFPGA với các CCD sensor để điều khiển và nhận các frame hình thông qua bus dữ liệutốc độ cao

DSP( Digital signal processing)

DSP ngày nay đã được tích hợp nhiều thành phần khác nhau, tăng khả năng xử lý linhhoạt và tốc độ xử lý

2.1.2 Giải pháp phần cứng được sử dụng trong đề tài

Phần cứng được sử dụng trong đề tài bao gồm một NVIDIA Jetson Nano Developer Kit,

1 Web cam Logitech, 1 bộ Servo, 1 bộ giá đỡ máy ảnh xoay, nghiêng, bảng điều khiểnServo PCA9685 I2C

Trang 12

2.2 Phần mềm phục vụ xử lý ảnh và điều khiển hệ thống

Để giải quyết bài toán xử lý ảnh – thị giác máy tính nói chung và bài toán điều khiển

bám đối tượng nói riêng, trong thực tế ta hay dùng các thư viện mã nguồn mở trên cơ

sở các thuật toán được tích hợp sẵn trong các hàm cơ sở

2.2.1 Thư viện OpenCV là gì?

Thị trường thị giác máy đang ngày càng mở rộng và lên tục phát triển Thư viện tiêu

chuẩn sẽ tạo ra các ứng dụng mới và các giải pháp xử lý dễ dàng hơn Đặc biệt tối ưu

khi sử dụng cấu trúc Intel Tạo ra các mẫu ứng dụng bằng các thư viện được cập nhật

thường xuyên và thực hiện các thuật toán nặng như dò tìm khuôn mặt Có rất nhiều

công nghệ hiện đại và các công ty lớn sử dụng thư viện OpenCV trongứng dụng của

mình như : Intel, Microsoft, IBM, Siemens, Google… và các trung tâm nghiên cứu

như: Stanford, MIT, Cambridge, INRIA…Hơn 14000 thành viên trên forum

OpenCVyahoogroup.com với trung bình một ngày có đến 10-20 thông điệp comment

trao đổi hàng ngày Điều đó k hẳng định rằng OpenCV thực sự đã góp phần vô cùng

lớn trong lĩnh vực thị giác máy tính

2.2.2 Cấu trúc và nội dung của OpenCV

Để hiểu OpenCV làm việc như thế nào chúng ta bắt đầu từ sự phân chia cấu trúc và

nội dung của OpenCV ở 5 phần Cấu trúc của openCV được chia làm 5 phần chính, 4

trong số đó được chỉ ra trong hình 2.2.2

Hình 2-1 Cấu trúc của OpenCV

4TIEU LUAN MOI download : skknchat123@gmail.com moi nhat

Trang 13

CXCORE chứa các định nghĩa k iểu dữ liệu cơ sở Ví dụ, các cấu trúc dữ liệu cho

ảnh, điểm và hình chữ nhật được định nghĩa trong cxtypes.h CXCORE cũng chứa đại

số tuyến tính và phương pháp thống kê, chức năng duy trì và điều khiển chuỗi Một số

ít, các chức năng đồ họa để vẽ trên ảnh cũng được đặt ở đây

CV chứa các thuật toán về xử lý ảnh và định kích cỡ camera Các chức năng hình họa

máy tính cũng được đặt ở đây

CVAUX được mô tả trong tài liệu của OpenCV như chứa các mã cũ và thử nghiệm.

Tuy nhiên, các giao diện đơn cho sự nhận diện ảnh ở trong module này Code sau nàychúng được chuyên dụng cho nhận diện mặt và chúng được ứng dụng rộng rãi chomục đích đó

HIGHGUI và CVCAM được đặt trong cùng thư mục là “otherlibs”.

HIGHGUI chứa các giao diện vào ra cơ bản, nó cũng chứa các k hả năng cửasổ mở

rộng và vào ra video

CVCAM chứa các giao diện cho video truy cập qua DirectX trên nềnWindows 32 bits.

Kèm theo thư viện là tài liệu hướng dẫn và các ví dụ mẫu thể hiện một phầncác chứcnăng của công cụ OpenCV.Các chức năng của openCV tập trung vào thuthập ảnh, xử

lí ảnh và các thuật toán phân tích dữ liệu ảnh, bao gồm:

- Truy xuất ảnh và phim : đọc ảnh số từ camera, từ file, ghi ảnh và phim

- Cấu trúc dữ liệu ảnh số và các dữ liệu hỗ trợ cần thiết: ma trận, vector, chuỗi, xâu và cây

- Xử lí ảnh căn bản: các bộ lọc có sẵn, tìm chi tiết cạnh, góc, chỉnh đổi màu, phóng to thu nhỏ,

Chức năng vẽ, chú thích lên ảnh

Trang 14

2.2.3 Hướng tiếp cận xây dựng mô hình hệ pan-tilt mang camera

Các giải thuật nhận dạng, tracking đối tượng di chuyển đặc trưng được sử dụng trong

thực tế Các đối tượng được phát hiện nhờ những thông tin trong một frame ảnh

Trên nền tảng kế thừa các nghiên cứu trước đây, trong đó có một số đề tài nhận dạng

và điều khiển camera bám đối tượng mới chỉ dừng lại ở mức nhận dạng và điều khiển

bám theo sự dịch chuyển của gương mặt người Thì trong đề tài này, mục tiêu là điều

khiển camera bám theo đối tượng có hình dạng biên đặc trưng như dạng hình tròn,

hình cầu, hình vuông; đảm bảo tốc độ bám tốt hơn Hệ thống xử lý ảnh và điều khiển

bám hoạt động trên cơ sở phản hồi ảnh từ camera sẽ điều khiển hệ pan –tilt camera

bám theo đối tượng thật

Hệ thống được lập trình bằng Python dựa trên thư viện mã nguồn mở OpenCV, có khả

năng giao tiếp với board điều khiển 2 động cơ DC trên đế pan-tilt

6TIEU LUAN MOI download : skknchat123@gmail.com moi nhat

Trang 15

CHƯƠNG 3 THIẾT KẾ VÀ THI CÔNG HỆ THỐNG NHẬN DẠNG VÀ ĐIỀU KHIỂN CAMERA BÁM ĐỐI TƯỢNG

3.1 PHƯƠNG TRÌNH TRẠNG THÁI CỦA HỆ THỐNG NHẬN DẠNG VÀ ĐIỀU KHIỂN CAMERA BÁM ĐUỐI TƯỢNG

3.1.1 Giới thiệu

Giả sử camera đọc đưgợc mỗi frame ảnh về đối tượng di chuyển với tọa độ như hìnhsau:

Hình 3-1 Tọa độ đối tượng trên frame ảnh thu được

Mục tiêu của hệ thống là nhận dạng được đối tượng, tính toán xác định tọa độ trên mặtphẳng ảnh của đối tượng, độ lệch vị trí theo các phương, vận tốc di chuyển của đốitượng Điều khiển cơ cấu pan-tilt sao cho tọa độ trọng tâm của đối tượng trên mặtphẳng ảnh trùng với tọa độ tâm của bức ảnh Cơ cấu pan-tilt được mô hình như sau:

Hình 3-2 Mô hình hóa hệ Pan-tilt

Trang 16

3.1.2 Mô hình toán học của hệ pan-tilt camera

* Mô hình xấp xỉ hình học:

OXYZ là hệ toạ độ thực của hệ camera pan-tilt và OXcYcZc là hệ toạ độ gắn với

camera P(X, Y, Z) là toạ độ của đối tượng trên hệ toạ độ thực, toạ độ của P chiếu

lên mặt phẳng ảnh là (xp, yp)

* Mô hình động học của hệ pan-tilt camera Nhằm mục đích tìm mô tả quan hệ giữa xp và yp đối với và θ, đầu tiên ta tìm ma trận chuyển đổi đồng nhất O ROc của hai phép quay camera xung quanh O một góc và θ

3.2 XẤY DỰNG THUẬT TOÁN NHẬN DẠNG, BÁM ĐỐI TƯỢNG VÀ

THUẬT TOÁN ĐIỀU KHIỂN HỆ THỐNG

Thuật toán bao gồm bước tiền xử lý ảnh: thu nhận ảnh từ camera, tách nền, lọc nhiễu, dò

cạnh biên, thuật toán bám đối tượng camshift kết hợp với bộ lọc nhiễu dự báo Kalman

Hình 3-3 Lưu đồ thuật toán nhận dạng và bám đối tượng

3.2.1 Giải thuật tách nền

3.2.2 Phương pháp lọc nhiễu

Có nhiều phương pháp lọc nhiễu để nâng cao chất lượng xử lý nhận dạng vật thể, nhất là

vật thể chuyển động trong miển tần số, đề tài sử dụng bộ lọc Gaussian Blur Gaussian

8TIEU LUAN MOI download : skknchat123@gmail.com moi nhat

Trang 17

Blur là cách làm mờ một ảnh bằng hàm Gaussian Một cách trực quan, đây được xem

như là phương pháp làm mờ mịn cũng Camera Thu nhận ảnh Tách nền Lọc nhiễu Dò

cạnh biên Camshift+Kalman Tính tọa độ tâm vật thể, vận tốc di chuyển 13 giống như

hiệu ứng hình ảnh được đặt dưới một lớp màn trong suốt bị mờ Nó không giống với

trường hợp hình ảnh bị mờ do hậu quả của ống kính bị mất tiêu điểm (out of focus)

hay do bóng của đối tượng dưới ánh sáng thường

3.2.3 Phương pháp tracking đối tượng, dự báo hướng di chuyển và vận tốc đối

tượng sử dụng thuật toán Camshift kết hợp bộ lọc Kalman

Trong thuật toán bám đối tượng trong ảnh Camshift, đối tượng được bám tốt khi nền

ảnh không ảnh hưởng đến đối tượng, như lẫn màu hay che khuất đối tượng Khi đối

tượng bám bị che khuất hay lẫn màu với nền ảnh, sẽ gây ra hiện tượng mất bám Để

khắc phục nhược điểm này và nâng cao chất lượng bám, bộ lọc Kalman được sử dụng

Sau đây là sơ đồ kết hợp bộ lọc Kalman và Camshift được sử dụng trong đề tài:

phương sai

Vector đo lường và tín hiệu không chắc chắn

Hình 3-4 Sơ đồ kết hợp giữa bộ lọc Kalman và Camshift

3.2.3.1 Xác định tọa độ tâm đối tượng

Để điều khiển camera luôn bám theo đối tượng dịch chuyển thì việc xác định tọa độ

trọng tâm của đối tượng rất quan trọng Phương pháp xác định dựa vào tọa độ của cửa

sổ bám đối tượng dựa vào thuật toán Camshift và Kalman track_box Cụ thể là xác

định tâm của cửa sổ bám này, gán tọa độ tâm đối tượng chính là tọa độ tâm cửa sổ bám

3.2.3.2 Luật điều khiển mờ đưa đối tượng về tọa độ tâm bức ảnh

Sau mỗi frame ảnh đọc về từ camera, ta thu được tọa độ tâm vật thể (X_Length,

Trang 18

TIEU LUAN MOI download : skknchat123@gmail.com moi nhat

Trang 19

điều khiển mờ PD để xuất ra các lệnh điều khiển phù hợp đem lại hiệu quả tốt nhất có

thể có

3.2.3.3 Thiết kế bộ điều khiển PID vị trí điều khiển hai động cơ

Do tác động qua lại giữa hai khâu pan và tilt nên bộ điều khiển được thiết kế theo hai

nhánh, trong đó khâu nội suy theo đường thẳng được sử dụng trong quá trình xử lý tính

toán tọa độ tâm vật thể để đảm bảo điều khiển được hệ pan-tilt bám theo mục tiêu dịch

chuyển theo đường ngắn nhất Bộ điều khiển cho hai động cơ là bộ điều khiển PID giúp

hệ thống có đáp ứng nhanh, giảm được độ vọt lố cần thiết khi điều khiển bệ xoay camera

3.3 XÂY DỰNG MÔ HÌNH VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN

Hình 3-5 Mô hình hệ thống nhận dạng và điều khiển camera bám đối tượng

3.3.2 Chương trình điều khiển

Chương trình được viết bằng Python và sử dụng thư viện OpenCV

/********************************************************************* /

import cv2

print(cv2. version )

Trang 20

import numpy as npfrom adafruit_servokit import ServoKit kit=ServoKit(channels=16)

pan=90tilt=45kit.servo[0].angle=pankit.servo[1].angle=tilt

def nothing(x):

passcv2.namedWindow('Trackbars')cv2.moveWindow('Trackbars',1320,0)

cv2.createTrackbar('hueLower', 'Trackbars',96,179,nothing)

cv2.createTrackbar('hueUpper','Trackbars',120,179,nothing)

cv2.createTrackbar('hue2Lower','Trackbars',50,179,nothing)

cv2.createTrackbar('hue2Upper', 'Trackbars',0,179,nothing)

cv2.createTrackbar('satLow', 'Trackbars',157,255,nothing)

cv2.createTrackbar('satHigh', 'Trackbars',255,255,nothing)

cv2.createTrackbar('valLow','Trackbars',100,255,nothing)cv2.createTrackbar('valHigh','Trackbars',255,255,nothing)

11TIEU LUAN MOI download : skknchat123@gmail.com moi nhat

Ngày đăng: 25/10/2022, 15:34

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w