Nhận diện biển báo giao thông Việt Nam thời gian thực bằng thuật toán MobileNet kết hợp SSD trên board Jetson Nano
lượt xem 3
download
Bài viết trình bày một hệ thống phát hiện và nhận diện biển báo giao thông Việt Nam thời gian thực dựa trên kiến trúc MobileNet kết hợp với SSD trên board Jetson Nano. Với đặc tính và cấu hình nổi trội của mô hình, sự kết hợp giữa MobileNet và SSD mang lại độ chính xác cao và thời gian triển khai nhanh chóng trên các hệ thống có hạn chế phần cứng.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Nhận diện biển báo giao thông Việt Nam thời gian thực bằng thuật toán MobileNet kết hợp SSD trên board Jetson Nano
- Hội nghị Quốc gia lần thứ 24 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2021) Nhận diện biển báo giao thông Việt Nam thời gian thực bằng thuật toán MobileNet kết hợp SSD trên board Jetson Nano Dương Văn Sơn, Nguyễn Vũ Minh Thành, Nguyễn Thị Thanh Xuân, Lê Đức Hùng Phòng thí nghiệm DESLAB, Khoa Điện Tử - Viễn Thông, Trường Đại Học Khoa Học Tự Nhiên – Đại học Quốc gia TP.HCM Email: ldhung@hcmus.edu.vn Abstract – Nhận diện biển báo giao thông là một trong những thành thế, một hệ thống nhận diện biển báo giao thông sẽ là một công phần quan trọng của ngành công nghiệp hệ thống điều khiển tự động cụ quan trọng để giúp người lái xe an toàn hơn khi đang lái xe. hiện nay ví dụ xe vận hành không người lái, hệ thống kiểm soát giao Người lái xe sẽ biết mình có đang chạy quá tốc độ cho phép hoặc thông hoặc các máy bay tự hành drones. Trong bài báo này, bài báo biết cách nhường đường cho những phương tiện như thế nào để sẽ trình bày một hệ thống phát hiện và nhận diện biển báo giao thông Việt Nam thời gian thực dựa trên kiến trúc MobileNet kết hợp với tránh được những tai nạn không đáng tiếc xảy ra? SSD trên board Jetson Nano. Với đặc tính và cấu hình nổi trội của Một số phương pháp kể đến như trong [1] xử lí vấn đề này dựa mô hình, sự kết hợp giữa MobileNet và SSD mang lại độ chính xác cao và thời gian triển khai nhanh chóng trên các hệ thống có hạn chế trên các thuật toán nhận diện về màu sắc, hình dạng, kích thước phần cứng. Ngoài ra, do tính chất đặc thù của môi trường giao thông hoặc phương pháp sử dụng đặc trưng Haar và mạng nơron nhân Việt Nam, bài báo sẽ phân tích, bổ sung và nâng cấp bộ dữ liệu để tạo trong [2], … đã được áp dụng rộng rãi vào các nghiên cứu học phù hợp hơn bằng phương pháp xử lí dữ liệu ảnh trên thư viện thuật nhưng lại không mang lại kết quả khả quan khi vận dụng OpenCV. Sau quá trình nghiên cứu, hệ thống đạt hiệu quả với mAP vào điều kiện thực tế. Vì thế, hệ thống nhận diện biển báo giao = 84.4% (indoor) và mAP = 71% (outdoor) và cho tốc độ xử lí 13 thông trong bài báo này sử dụng một hệ thống tích chập nơron FPS. Với kết quả trên cùng với module có kích thước nhỏ, phương CNN hướng tiếp cận hiện đại làm mô hình chính để nhận diện vật pháp này hứa hẹn có thể tích hợp lên các xe hơi, hệ thống giám sát thể. Hệ thống này mang lại hiệu quả tin cậy cao và độ thực thi thời giao thông đường phố, v.v để giải quyết các vấn đề giao thông và tai gian thực. Các bức ảnh đầu vào sẽ được mô hình xử lí, vận dụng nạn xe hiện nay tại Việt Nam. các feature map của kiến trúc để tạo ra được bộ phân loại các biển báo giao thông như mô tả ở Hình 1. Keywords: Nhận diện biển báo giao thông Việt Nam, TSR, MobileNet, SSD, thời gian thực, AI, ADAS. I. GIỚI THIỆU Thành phần nhận diện biển báo giao thông phải đáp ứng không chỉ nhanh về mặt thời gian thực mà còn phải mang lại hiệu quả cao về mặt chính xác. Nhận diện biển báo giao thông đã được nghiên cứu và thực nghiệm trên thế giới khá phổ biến nhưng đối với môi trường giao thông Việt Nam thì lĩnh vực này còn gặp khá nhiều hạn chế. Nguyên nhân dẫn đến điều này vì môi trường tại Việt Nam khá thử thách, điển hình như không có nhiều nguồn dữ liệu biển báo, đường xá phức tạp, xe cộ lưu thông trên đường nhiều, các loại biển báo bị cây che phủ,…. Theo một nghiên cứu của cục Quản lý An toàn Giao thông Đường cao tốc Quốc gia (NHTSA) của Mỹ, trung bình hằng năm có khoảng 51% các vụ tai nạn chết người do người điều khiển vượt đèn đỏ và khoảng 29% là do người điều khiển phương tiện giao thông lơ là biển báo chỉ đường và các tín hiệu giao thông. Con số này sẽ như thế nào khi đường xá Việt Nam chằng chịt và nhiều chướng ngại vật gấp nhiều lần so với nước Mỹ. Chính vì Hình 1. Quy trình của hệ thống nhận diện biển báo giao thông ISBN 978-604-80-5958-3 272
- Hội nghị Quốc gia lần thứ 24 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2021) II. HỆ THỐNG VỚI MÔ HÌNH MOBILENET-SSD Kiến trúc mô hình này xây dựng dựa trên nền tảng sử dụng phép nhân chập tách rời theo chiều sâu (Depthwise Separable II.1. Bo NVIDIA Jetson Nano 4GB Convolution) mà là một dạng phức hợp cho phép biến đổi phép Board hệ thống sử dụng là một SBC từ hãng NVIDIA Jetson nhân chập thông thường thành một nhân chập chiều sâu Nano Development Kit, với kích thước nhỏ gọn và tích hợp 128 (Depthwise Convolution) và một phép nhân chập 1 x 1 hay còn lõi GPU Maxwell. Cùng với đó, hệ thống cho phép làm việc trên gọi là nhân chập theo từng điểm (Pointwise Convolution). cái framework AI như Pytorch, Tensorflow,… giúp triển khai mô hình nhanh chóng và thuận tiện hơn rất nhiều. Hình 2. Phần cứng hệ thống Camera sử dụng là camera Raspberry Pi v2 với độ phân giải Hình 4. Phép nhân chập tách rời theo chiều sâu. 8MP giúp thu thập thông tin hình ảnh cho board chính xử lí. Kiến trúc các tầng của mô hình MobileNet-v1: II.2. Mô hình nhận diện vật thể SSD Bảng 1. Mô tả các tầng của kiến trúc MobileNet-v1. Mô hình phát hiện và nhận diện biển báo giao thông được huấn luyện dựa trên mạng cơ sở MobileNet-v1 làm mạng trích xuất dữ Loại / Stride Kích thước filter Input image liệu và mạng nhân chập SSD [4] tạo ra các đối tượng phát hiện Conv / s2 3 x 3 x 3 x 32 224 x 224 x 3 vật thể. Sau đó là quá trình hậu xử lí NMS để triệt tiêu những vùng Conv dw / s1 3 x 3 x 32 dw 112 x 112 x 32 phát hiện lân cận. Mô hình được mô tả như Hình 3. Conv / s1 1 x 1 x 32 x 64 112 x 112 x 32 Con dw / s2 3 x 3 x 64 dw 112 x 112 x 64 Conv / s1 1 x 1 x 64 x 128 56 x 56 x 64 Conv dw / s1 3 x 3 x 128 dw 56 x 56 x 128 Conv / s1 1 x 1 x 128 x 128 56 x 56 x 128 Con dw / s2 3 x 3 x 128 dw 56 x 56 x 128 Conv / s1 1 x 1 x 128 x 256 28 x 28 x 128 Con dw / s1 3 x 3 x 256 dw 28 x 28 x 256 Conv / s1 1 x 1 x 256 x 256 28 x 28 x 256 Conv dw / s2 3 x 3 x 256 dw 28 x 28 x 256 Conv / s1 1 x 1 x 256 x 512 14 x 14 x 256 Conv dw / s1 3 x 3 x 512 dw 14 x 14 x 512 5x Hình 3. Tổng quan quan mô hình phát hiện dựa trên kiến trúc SSD. Conv / s1 1 x 1 x 512 x 512 14 x 14 x 512 Conv dw / s2 3 x 3 x 512 dw 14 x 14 x 512 II.3. Kiến trúc mạng cơ sở MobileNet Conv / s1 1 x 1 x 512 x 1024 7 x 7 x 512 Kiến trúc mạng Mobilenet là một trong những mô hình nhỏ, Conv dw / s2 3 x 3 x 1024 dw 7 x 7 x 1024 nhẹ, cấu hình thông số ít mà vẫn đảm bảo được độ chính xác cao. Conv / s1 1 x 1 x 1024 x 1024 7 x 7 x 1024 Mạng cơ sở MobileNet có nhiều thế hệ như MobileNet-v1, Avg Pool / s1 Pool 7 x 7 7 x 7 x 1024 MobileNet-v2, MobileNet-v3, nhưng trong hệ thống này, mạng FC / s1 1024 x 1000 1 x 1 x 1024 MobileNet-v1 được sử dụng để làm mạng cơ sở thực thi tốt hơn Softmax / s1 Classifier 1 x 1 x 1000 trên các bo nhúng có kích thước nhỏ. ISBN 978-604-80-5958-3 273
- Hội nghị Quốc gia lần thứ 24 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2021) Kiến trúc tổng thể bao gồm 14 tầng nhân chập (kể cả nhân phụ trợ lần lượt là (19×19), (10×10), (5×5), (3×3), (2×2), (1×1). chập tách rời) được kết nối liền kề với nhau, trong đó đã loại bỏ Kiến trúc đầu vào ảnh (300 x 300) là kiến trúc tiêu chuẩn và có những tầng cuối của mô hình phân loại bao gồm tầng Avg Pool, thể điều chỉnh lại kèm theo các feature map. tầng Fully-Connected (FC). II.4. Kiến trúc SSD (Single Shot Multibox Detector) Hình 5. Kiến trúc mạng của mô hình SSD. Mô hình mạng SSD dựa trên quá trình chiết xuất dữ liệu từ mạng cơ sở (VGG-16) và sau đó là 6 tầng phụ trợ được đưa vào với mục đích tạo ra các phát hiện cho đối tượng trong khung ảnh. Trong quá trình này, kiến trúc SSD tiến hành đánh giá các tập hợp nhỏ gồm các khung bao mặc định (các khung nét đứt trong Hình 6) tương ứng với các tỉ lệ cạnh khác nhau trên các feature map khác nhau như hình bên dưới. Hình 6. Kích thước phân chia các feature map khác nhau của SSD. Hai hàm mất mát bao gồm một hàm mất mát vị trí Smooth L1, hàm này sẽ đo lường sai số tham số giữa khung bao dự đoán được (p – predicted box) và khung bao sự thật (g – ground truth box) Hình 7. Sơ đồ kiến trúc kết hợp mô hình MobileNet-v1 với SSD. và hàm hàm mất mát tin cậy cross-entropy đo đạc các giá trị Với mỗi feature map khác nhau trong mô hình SSD khác nhau, _ để lấy được điểm tin cậy. ta gán số lượng các khung bao mặc định là 4 hoặc 6 cho mỗi ô II.5. Kết hợp kiến trúc MobileNet với SSD vuông trong feature map. Quá trình phát hiện sẽ sử dụng 2 hàm mất mát quy về hai kết quả Classification: _ × Quá trình chiết xuất đặc trưng tại MobileNet, sau đó sẽ được _ × _ , và Regression: _ × xử lí thông qua 6 tầng phụ trợ của phần đầu mô hình SSD. Với 4 × _ . mỗi tầng phụ trợ như vậy, SSD cấu hình một kích thước feature map khác nhau để tạo ra các phát hiện vật thể với các kích thước Khi thay thế VGG16 bằng MobileNetv1, bài toán nhận diện khác nhau. Chi tiết được mô tả Hình 7. biển báo giao thông kết nối tầng 12 và 14 của MobileNet. Ta sử dụng 2 tầng cuối như để miêu tả một vấn đề rằng tầng thứ 14 sẽ Bài toán kết nối lại tầng nhân chập tách rời theo chiều sâu với trả về nhiều đặc trưng hơn tầng thứ 12, ta cần những đặc trưng bộ lọc là 1 × 1 × 512 × 512 (tầng thứ 12) với SSD để tạo ra feature mức cao và cả đặc trưng mức trung bình cho cả việc chiết xuất map có độ sâu là 512 và tầng nhân chập với bộ lọc 1 × 1 × 1024 hình ảnh. Những đặc trưng cao và trung bình sẽ giúp mô hình × 1024 (tầng thứ 14) với mô hình SSD để tạo ra ma trận đặc trưng thông minh hơn trong việc nhận dạng thông tin của bức ảnh. 1024. Kiến trúc trên có 6 ma trận đặc trưng lần lượt cho 6 tầng ISBN 978-604-80-5958-3 274
- Hội nghị Quốc gia lần thứ 24 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2021) II.6. Quá trình huấn luyện mô hình II.6.1. Chiến lược ghép nối các khung bao vật thể Cơ chế dự đoán của mô hình được phân loại thành những dự đoán đúng và những dự đoán sai. Nếu như tỉ lệ IoU lớn hơn 0.5 khung bao dự đoán được xem như đúng, ngược lại, dự đoán IoU bé hơn 0.5 sẽ là những dự đoán sai. Hình 8. Mô tả độ ghép nối giữa các khung bao mặc định. Hình 10. Các kích thước điều chỉnh của mô hình. Để phát hiện được các vật thể khác nhau ở những kích thước khung hình khác nhau, mô hình sử dụng các ma trận đặc trưng với III. BỘ DỮ LIỆU BIỂN BÁO GIAO THÔNG những kích thước khác nhau cho từng tầng trong mô hình. Tỉ lệ III.1 Các bộ dữ liệu biển báo giao thông ma trận trận trưng (scale) nhỏ nhất là 0.2 (hoặc 0.1) và sau đó tỉ lệ tăng dần qua các tầng mô hình sau (lớn nhất là 0.9). Nhận diện biển báo giao thông là một nhiệm vụ khá đặc thù khi nguồn dữ liệu đến từ rất nhiều biển báo giao thông khác nhau. Tùy mỗi quốc gia, sẽ có kích thước, màu sắc, kí hiệu, và ý nghĩa của biển báo giao thông sẽ khác nhau. Hình 9. Ma trận đặc trưng với các kích thước khác nhau. II.6.2. Lựa chọn kích thước và tỉ lệ khung cho mô hình SSD. Hình 11: Độ đa dạng của các loại biển báo giao thông. Tỉ lệ của feature map được đo lường trước với tỉ lệ khung hình khác nhau để tạo ra được kích thước chiều dài và chiều rộng của Bảng 2. Thống kê 3 bộ dữ liệu biển báo giao thông chính. feature map tương ứng với từng tầng đó. Công thức để tính chiều dài (h) và chiều rộng (w) là: Số lượng Gán Quốc Dataset Chú thích (ảnh) nhãn gia = . ỉ ệ ℎ ℎì ℎ Kích thước nhỏ, GTSRB > 50000 ✓ Đức biển báo riêng ℎ= lẻ. ỉ ệ ℎ ℎì ℎ Kích thước bé, ý Trung (mức scale là 1, 2, 3, 1/2, và 1/3). TT100K 100000 ~ 20% nghĩa biển báo Quốc Trung Quốc. Điều chỉnh thông số trên dựa trên 4 phương thức, bao gồm: Việt Biển báo phù Feature map, Shrinkage, Kích thước khung bao và tỉ lệ khung hình Zalo 4500 ~ 95% Nam hợp, số lượng ít. tương ứng với các feature map trải qua từng phép nhân chập như Hình 10. ISBN 978-604-80-5958-3 275
- Hội nghị Quốc gia lần thứ 24 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2021) III.2. Phương pháp xử lí dữ liệu trên thư viện OpenCV Quá trình tiền xử lí dữ liệu sẽ tổng hợp và sửa đổi từ 3 bộ dữ liệu trên thành nguồn dữ liệu phù hợp, quá trình xử lí được mô tả theo chu trình Hình 12. III.3.4. Bộ dữ liệu biển báo chính thức sử dụng Bộ dữ liệu sau khi nâng cấp bao gồm 13 loại biển báo giao thông mà trước đây chưa có trong những tập dữ liệu khác. Những loại biển báo bao gồm: Bảng 3. Thống kê 13 loại biển báo trong bộ dữ liệu Tốc độ tối đa 30km Chỉ được rẽ trái Hình 12: Quy trình tổng quát xử lí dữ liệu. Tốc độ tối đa 50km Cấm dừng và đỗ xe III.3. Các quá trình xử lí dữ liệu Tốc độ tối đa 70km N. Tốc độ tối đa Chạy theo vòng xuyến N. Biển nguy hiểm II.3.1. Loại bỏ kênh alpha của bức ảnh Cấm đi ngược chiều N. Biển cấm khác Các biển báo giao thông trong bộ dữ liệu GTSRB sẽ được cắt Trẻ em N. Cấm rẽ trái/phải ra một phần, phần còn lại trên bức ảnh là một loại biển báo giao N. Biển báo hiệu lệnh *N: Nhóm thông và đã loại bỏ phần nền ảnh phía sau. III.3.2. Phương pháp điều chỉnh độ sáng, độ tương phản. Hai phép tính được sử dụng phổ biến của quá trình xử lí này là phép nhân và phép cộng với một hằng số cụ thể. ( )= ( )+ Hình 13. Biểu đồ chênh lệch giữa các bộ dữ liệu chính thức. IV. KẾT QUẢ IV.1. Huấn luyện mô hình trên Google Colab Quá trình huấn luyện đề xuất 3 mô hình là SSD300, SSD512 và SSD608 tương ứng với đó là kích thước ảnh đầu vào 300, 512 và 608 III.3.3. Phương pháp nạp chồng hình ảnh Bảng 4. Kết quả của các mô hình đề xuất MobileNet-SSD. Ảnh biển báo sẽ được nạp chồng vào ảnh nền khác với vị trí biết trước, cho phép tạo ra bộ dữ liệu phù hợp cho mô hình để đào Input tạo. Các bức ảnh sau đó được đánh nhãn tương thích và được phân Kiến trúc mAP FPS # Boxes image chia định dạng thành loại định dạng phù hợp, cung cấp cho mô SSD300 35.3 39 3000 300 x 300 hình học. Các bức ảnh sau đó sẽ được xử lí tương tự với tập dữ SSD512 60.1 18 8190 512 x 512 liệu còn lại. SSD608 71.2 13 11658 608 x 608 ISBN 978-604-80-5958-3 276
- Hội nghị Quốc gia lần thứ 24 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2021) Bảng 6. Kết quả được đo đạc cho 13 loại biển báo. Loại biển báo Biển báo Độ chính xác Cấm dừng và đỗ xe 86.2% Tốc độ tối đa cho phép 30km 79.2% Tốc độ tối đa cho phép 50km 95.4% Tốc độ tối đa cho phép 70km 85.3% Trẻ em 70.1% Biển cấm khác 80.6% Hình 14. Biểu đồ hàm mất mát mô hình SSD300, 512 và 608. Chạy theo vòng xuyến 73.4% Cấm rẽ trái/phải 63.2% Một số kết quả kiểm tra thực nghiệm: Chỉ được rẽ trái 93.5% Biến báo hiệu lệnh 87.1% Cấm đi ngược chiều 85.0% Biến báo nguy hiểm 86.7% Độ chính xác trung bình: 84.4% V. KẾT LUẬN Hệ thống phát hiện và nhận diện biển báo giao thông đã đạt được kết quả chính xác cao ~ 84.4% (indoor) và ~71% (outdoor) và tốc độ 13 fps trên bo Jetson Nano. Hệ thống đã được triển khai để nhận diện được quá trình xe đang di chuyển cho kết quả tốt. Với điều kiện giao thông Việt Nam, hệ thống cho phép hoạt được được trên 13 loại biển báo đặc thù thông qua việc cung cấp, sửa đổi. Tuy nhiên, vẫn còn nhiều điểm hạn chế trong hệ thống phát hiện và nhận diện biển báo giao thông như khả năng phân tích biển báo giao thông nhỏ, các đối tượng biển báo giao thông bị nhòe trong quá trình chụp, cơ sở dữ liệu chưa đủ mạnh, … điều đó dẫn đến hệ thống còn nhiều công việc cần làm hơn trong tương lai. TÀI LIỆU THAM KHẢO [1] Ayoub Ellahyani, Ilyas El Jaafari and Said Charfi, “Traffic Sign Detection for Intelligent Transportation Systems: A Survey”, So sánh hiệu suất với những phương pháp khác: E3S Web of Conferences, 2021. Bảng 5: So sánh hiệu suất với các phương pháp khác [2] Lê Chân Thiện Tâm, Phạm Hồng Thái, Trần Tiến Đức, “Phát hiện và nhận dạng một số biển báo giao thông đường bộ nguy Bài Phương Real- Loại biển hiểm tại Việt Nam”, Bài báo khoa học trường Đại học Lạc Hồng Kết quả báo pháp time báo và Đại học Sư Phạm Kỹ Thuật, 2017. Hiện MobileNet- 81.2% Có Việt Nam tại SSD [3] Zhe Zhu, Dun Liang, “Traffic-Sign Detection and [5] CNN model 95% Không Đức Classification in the Wild”, Computer Vision Foundation, 2016. [2] Haar + SVM 92% Không Việt Nam [4] Wei Liu, Dragomir Anguelov, “SSD: Single Shot MultiBox Trung Detector”, Computer Vision and Pattern Recognition (cs.CV), [3] Overfeat 84% Không 2016. Quốc [5] Adrian Rosebrock, “Traffic Sign Classification with Keras and Deep Learning”, https://www.pyimagesearch.com/2019/11/04/, 2019. ISBN 978-604-80-5958-3 277
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Đề tài: Cấu hình cho bộ phát wifi SMCWBR14S-N4
29 p | 271 | 37
-
BÁO CÁO WIRELESS LAN - 4
9 p | 108 | 34
-
Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)
187 p | 81 | 24
-
10 phút học máy tính mỗi ngày - Kết nối mạng và gửi FAX part 8
10 p | 87 | 13
-
Giáo trình Sửa chữa và bảo trì máy tính (Nghề: Tin học ứng dụng - Cao đẳng) - Trường Cao đẳng Bách khoa Nam Sài Gòn (2022)
153 p | 23 | 12
-
Cấu hình Apache 2.0 hỗ trợ giao thức SSL/TLS
11 p | 134 | 11
-
Bài giảng Đảm bảo và kiểm soát chất lượng phần mềm: Giới thiệu Bugzilla - Nguyễn Mạnh Tuấn
14 p | 84 | 6
-
Bài giảng An toàn thông tin: Chương 0 - ThS. Nguyễn Thị Phong Dung
5 p | 20 | 6
-
Nghiên cứu mô hình mã hóa thông tin ứng dụng chữ ký điện tử trong quá trình gửi và nhận văn bản
4 p | 24 | 6
-
Giáo trình hướng dẫn phân tích các chế độ cấu hình toàn cục cho router với host p10
6 p | 52 | 5
-
Giáo trình hướng dẫn xây dựng một trình tự xử lý các toán tử trong phép toán đại số có độ ưu tiên p8
5 p | 48 | 5
-
Giáo trình An toàn lao động (Nghề: Tin học ứng dụng - Cao đẳng) - Trường Cao đẳng Bách khoa Nam Sài Gòn (2022)
136 p | 11 | 4
-
Tri thức nhận
7 p | 43 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn