Bối cảnh và vấn đề nghiên cứu

Trong kỷ nguyên số, quảng cáo trực tuyến trên môi trường Internet đã trở thành một kênh truyền thông chiến lược của các doanh nghiệp. Sự phát triển này kéo theo nhu cầu tự động nhận diện biểu trưng (logo) thương hiệu nhằm đo lường và tính toán thời lượng hiển thị quảng cáo trên các phương tiện truyền thông đa phương tiện. Xét dưới góc độ kỹ thuật, nhận diện logo (Logo Detection) là một nhánh phát triển chuyên sâu của bài toán nhận dạng hình ảnh (Image Recognition) thuộc lĩnh vực Trí tuệ nhân tạo (AI) và Học máy (Machine Learning).

Trên thế giới, nhiều giải pháp thương mại đã được phát triển như Google Image Recognition, Amazon Rekognition, Ditto Labs, GumGum, LogoGrab, hay IBM Image Detection. Tuy nhiên, các giải pháp này còn đối mặt với rào cản về tính đa dạng của dữ liệu và sự gia tăng liên tục của các mẫu thiết kế nhãn hiệu. Phần lớn các ứng dụng phổ thông chỉ có khả năng nhận diện một số lượng nhãn hiệu được định trước với độ chính xác nhất định.

Tại Việt Nam, tiến trình hội nhập kinh tế quốc tế chứng kiến sự lớn mạnh của nhiều thương hiệu nội địa. Dẫu vậy, công tác quản trị và truyền thông nhãn hiệu của một số doanh nghiệp trong nước vẫn chưa đạt mức tối ưu, dẫn đến mức độ nhận biết của người tiêu dùng đối với sản phẩm Việt còn hạn chế. Đồng thời, xu hướng tiếp cận tri thức qua các nền tảng số của giới trẻ ngày càng tăng, thể hiện qua sự quan tâm đối với các kênh thông tin tổng hợp (như "người nổi tiếng" đạt 741.000 người đăng ký, "Vfacts" đạt 403.000 người đăng ký, "Zoom TV" đạt 1 đến 2 triệu lượt xem mỗi video) hoặc các ứng dụng nhận diện môi trường xung quanh (như PlantSnap với hơn 10 triệu lượt tải).

Xuất phát từ thực tiễn trên, đề tài "Thiết kế mô hình ứng dụng nhận diện nhãn hiệu" do sinh viên Nguyễn Phạm Duy Đức thực hiện dưới sự hướng dẫn của ThS. Huỳnh Hoàng Hà tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (ngành Công nghệ Kỹ thuật Máy tính) được triển khai nhằm giải quyết bài toán ứng dụng mô hình học máy vào nhận diện thương hiệu trên thiết bị di động.

Đề tài xác định 3 mục tiêu nghiên cứu cụ thể:

  1. Xây dựng ứng dụng trên hệ điều hành Android có khả năng chụp ảnh, nhận diện logo và cung cấp thông tin doanh nghiệp tương ứng.
  2. Huấn luyện mô hình học máy nhận diện logo với độ chính xác mục tiêu đạt trên 85%.
  3. Thiết kế hệ thống xử lý theo thời gian thực (real-time) có khả năng truyền nhận dữ liệu ảnh giữa thiết bị di động và máy chủ xử lý trung tâm.

Phạm vi nghiên cứu của đề tài giới hạn ở việc nhận diện 10 loại nhãn hiệu thương mại phổ biến theo thời gian thực, triển khai thử nghiệm trên các dòng điện thoại thông minh chạy hệ điều hành Android 8, với thời gian phản hồi toàn hệ thống dưới 10 giây.


Cơ sở lý thuyết và phương pháp

Đề tài xây dựng trên nền tảng lý thuyết về Thị giác máy tính (Computer Vision), Mạng nơ-ron tích chập (Convolutional Neural Network - CNN) và thuật toán phát hiện vật thể (Object Detection).

Khung lý thuyết cốt lõi bao gồm:

  • Mạng nơ-ron tích chập (CNN): Vận hành dựa trên ba cơ chế chính:
    1. Trường tiếp nhận cục bộ (Local receptive field): Sử dụng các bộ lọc (filter/kernel kích thước $3 \times 3$ hoặc $5 \times 5$) quét qua ma trận ảnh đầu vào để trích xuất bản đồ đặc trưng (feature map).
    2. Trọng số chia sẻ (Shared weights and biases): Đồng nhất bộ trọng số cho cùng một kernel trên toàn bộ bức ảnh, giúp giảm đáng kể số lượng tham số huấn luyện so với mạng nơ-ron truyền thống có kết nối đầy đủ.
    3. Lớp tổng hợp (Pooling layer): Áp dụng phép lấy giá trị lớn nhất (Max-pooling $2 \times 2$) nhằm giảm kích thước ma trận đặc trưng, giữ lại các thuộc tính nổi bật và tạo tính bất biến đối với các phép biến đổi hình học (tịnh tiến, co giãn, xoay).
  • Mô hình Faster R-CNN: Thay thế thuật toán quét chọn lọc (Selective Search) truyền thống bằng Mạng đề xuất vùng (Region Proposal Network - RPN) tích hợp trực tiếp trên feature map của lớp tích chập.
    • Cơ chế Anchor: Tại mỗi điểm tâm trên feature map, hệ thống khởi tạo 9 hộp anchor tương ứng với 3 kích thước ($64 \times 64$, $128 \times 128$, $256 \times 256$ pixels) kết hợp với 3 tỷ lệ khung hình ($1:1$, $1:2$, $2:1$).
    • Lớp Region of Interest (ROI) Pooling: Thực hiện chuẩn hóa các vùng đề xuất có kích thước khác nhau về một kích thước cố định ($h \times k$, điển hình là $7 \times 7$) trước khi đưa vào các lớp kết nối đầy đủ (Fully Connected Layers - FCs).
    • Thuật toán triệt tiêu phi cực đại (Non-Maxima Suppression - NMS): Loại bỏ các khung đề xuất trùng lặp có chỉ số giao trên hợp (Intersection-over-Union - IoU) cao.
  • Hàm mất mát đa tác vụ (Multi-task Loss): Tối ưu hóa đồng thời hai thành phần: mất mát phân loại đối tượng ($L_{cls}$) và mất mát hồi quy tọa độ hộp bao ($L_{reg}$) sử dụng hàm Smooth L1:

$$L({p_i}, {t_i}) = \frac{1}{N_{cls}} \sum_i L_{cls}(p_i, p_i^) + \lambda \frac{1}{N_{reg}} \sum_i p_i^ L_{reg}(t_i, t_i^*)$$

Trong đó, hằng số chuẩn hóa $N_{cls} = 256$, $N_{reg} \approx 2400$. Mẫu dương (có vật thể, $p_i^* = 1$) được gán khi anchor có IoU cao nhất hoặc $\text{IoU} \ge 0.7$; mẫu âm (không có vật thể, $p_i^* = 0$) khi $\text{IoU} < 0.3$.

Phương pháp nghiên cứu thực nghiệm được thực hiện thông qua việc sử dụng mô hình học chuyển giao (Transfer Learning) với mô hình huấn luyện sẵn faster_rcnn_inception_v2_coco thông qua TensorFlow Object Detection API trên môi trường Python 3.6.

Nguồn dữ liệu gốc được trích xuất từ tập dữ liệu học thuật WebLogo-2M do Nhóm Nghiên cứu Thị giác Máy tính (Computer Vision Group) thuộc Đại học Queen Mary Luân Đôn cung cấp.

Thông số tập dữ liệu WebLogo-2M gốc Giá trị thống kê
Tổng số lớp logo (Logo Classes) 194
Tổng dung lượng kho ảnh (Image Pool) 2.190.757 ảnh
Tỷ lệ nhiễu trung bình mỗi lớp (Per-Class Noise Rate) 25,8%
Số lượng ảnh kiểm thử chuẩn (Testing Images) 6.569 ảnh

Từ tập dữ liệu lớn nói trên, tác giả đã lọc sạch nhiễu và trích xuất dữ liệu của 10 lớp thương hiệu mục tiêu với tổng số 7.158 ảnh.


Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo kiến trúc phân tán gồm 3 khối chức năng tương tác theo thời gian thực thông qua dịch vụ đám mây trung gian:

[Khối Nhập/Xuất: Android App] <---> [Khối Lưu Trữ: Firebase] <---> [Khối Xử Lý: Server Python/TensorFlow]

1. Phân định chức năng các khối thành phần

  • Khối nhập/xuất (Thiết bị di động): Ứng dụng chạy trên hệ điều hành Android 8, cho phép người dùng thu nhận hình ảnh trực tiếp từ camera hoặc chọn ảnh sẵn có trong thư viện bộ nhớ. Ứng dụng thực hiện mã hóa ảnh nhị phân sang chuỗi ký tự Base64, đẩy dữ liệu lên cơ sở dữ liệu thời gian thực, sau đó nhận kết quả phản hồi để hiển thị khung nhận diện cùng thông tin chi tiết về doanh nghiệp.
  • Khối lưu trữ trung gian (Firebase Realtime Database): Đóng vai trò cầu nối bất đồng bộ giữa ứng dụng di động và máy chủ. Cơ sở dữ liệu được phân nhánh theo định danh phần cứng duy nhất của thiết bị (android_id) để phục vụ đồng thời nhiều người dùng mà không bị xung đột dữ liệu:
    • Trường image: Chuỗi Base64 của ảnh gốc (từ client) và ảnh đã đóng khung nhận diện (từ server).
    • Biến cờ processing: Báo hiệu trạng thái chờ xử lý (true/false).
    • Biến label: Lưu chuỗi tên nhãn hiệu đã được phân loại.
  • Khối xử lý trung tâm (Máy chủ Server): Máy tính cấu hình cao chạy nền tảng Python 3.6, tích hợp thư viện firebase và mô hình suy luận frozen_inference_graph.pb được xuất từ TensorFlow API. Server liên tục lắng nghe thay đổi trên Firebase, giải mã chuỗi Base64 thành ma trận ảnh, thực thi nhận diện bằng Faster R-CNN, vẽ bounding box, gán nhãn kết quả và cập nhật ngược lại cơ sở dữ liệu.

2. Danh mục 10 lớp nhãn hiệu và quy trình huấn luyện

Mười nhãn hiệu được lựa chọn xây dựng dữ liệu và gán nhãn bao gồm:

  1. adidas (Logo thương hiệu Adidas dạng 3 lá / cổ điển)
  2. adidas2 (Logo thương hiệu Adidas dạng 3 vạch vát)
  3. apple (Logo quả táo khuyết Apple)
  4. bmw (Logo hãng xe BMW)
  5. chanel (Logo thời trang Chanel)
  6. cocacola (Logo nước giải khát Coca-Cola)
  7. ferrari (Logo hãng siêu xe Ferrari)
  8. heineken (Logo bia Heineken)
  9. pepsi (Logo nước giải khát Pepsi)
  10. puma (Logo thời trang thể thao Puma)

Quy trình gán nhãn tọa độ ($x_{min}, x_{max}, y_{min}, y_{max}$) được tổng hợp vào các tệp định dạng CSV, sau đó chuyển đổi sang định dạng dữ liệu nhị phân train.record và test.record theo tỷ lệ phân chia tập huấn luyện/kiểm tra là $9:1$.

Trong quá trình huấn luyện mô hình Faster R-CNN Inception V2:

  • Hàm mất mát bắt đầu ổn định sau khoảng 3.000 bước lặp (steps).
  • Điểm cực tiểu của tổng hàm mất mát đạt được tại hai mốc: bước 9.283 và bước 11.391.
  • Tác giả quyết định lựa chọn điểm lưu mô hình (checkpoint) tại bước 11.391 do mô hình này đem lại tỷ lệ nhận diện thực tế trung bình cao hơn trên tập kiểm thử. Do hạn chế về tài nguyên phần cứng và thời gian, quá trình huấn luyện được dừng lại ở mốc này dù hàm mất mát chưa đạt trạng thái bão hòa hoàn toàn.

Nội dung chính theo từng chương

Bố cục khóa luận được cấu trúc thành 5 chương chính:

Chương 1: Giới thiệu

Chương mở đầu phân tích bối cảnh bùng nổ quảng cáo trực tuyến và sự cần thiết của công nghệ phát hiện logo trong việc đánh giá hiệu quả truyền thông. Tác giả chỉ ra thực trạng thị trường ứng dụng tại Việt Nam, nêu bật nhu cầu tiếp cận kiến thức thương hiệu của người dùng trẻ tuổi, từ đó xác định nhiệm vụ thiết kế một giải pháp nhận diện nhãn hiệu kết hợp giữa thiết bị di động Android và máy chủ xử lý trí tuệ nhân tạo. Chương này cũng thiết lập các mục tiêu kỹ thuật, giới hạn phạm vi 10 nhãn hiệu và trình bày phương pháp luận nghiên cứu.

Chương 2: Cơ sở lý thuyết liên quan

Trình bày chi tiết lý thuyết nền tảng về Học máy và Thị giác máy tính. Phân biệt rõ ba cấp độ bài toán: Phân loại ảnh (Image Classification), Phân loại kết hợp định vị (Localization) và Phát hiện vật thể (Object Detection). Đi sâu vào cơ chế hoạt động của mạng tích chập CNN (trường tiếp nhận cục bộ, trọng số chia sẻ, lớp tổng hợp Max-pooling) và kiến trúc Faster R-CNN (RPN, cơ chế Anchor, ROI Pooling, hàm mất mát đa tác vụ). Ngoài ra, chương 2 hướng dẫn chi tiết quy trình cấu hình công cụ TensorFlow Object Detection API, biên dịch Google Protobuf, cấu trúc truyền thông dữ liệu Base64 và các bước thiết lập Firebase Realtime Database trên môi trường Android Studio.

Chương 3: Thiết kế và thi công ứng dụng nhận diện nhãn hiệu

Mô tả toàn diện kiến trúc phần cứng và phần mềm của hệ thống. Tác giả xây dựng sơ đồ khối tổng quát, lưu đồ thuật toán chi tiết cho khối xử lý trung tâm (Server Python) và khối nhập xuất (Android App). Trình bày phương pháp xử lý tập dữ liệu WebLogo-2M: trích xuất 10 lớp từ 194 lớp ban đầu, loại bỏ nhiễu để thu về 7.158 ảnh sạch, xây dựng tệp ánh xạ labelmap.pbtxt, thiết lập file cấu hình huấn luyện faster_rcnn_inception_v2_pets.config. Phân tích diễn biến các thành phần hàm mất mát (RPN Localization Loss, RPN Objectness Loss, Final Classification Loss, Final Localization Loss) và cơ sở lựa chọn mô hình tại bước huấn luyện 11.391.

Chương 4: Kết quả và thực nghiệm

Ghi nhận kết quả triển khai thực tế của hệ thống. Ứng dụng Android được kiểm thử các tính năng: giao diện chính, chụp ảnh trực tiếp qua camera, chọn ảnh sẵn có trong bộ nhớ điện thoại, gửi dữ liệu và nhận kết quả hiển thị. Thực nghiệm chứng minh hệ thống nhận diện chính xác các nhãn hiệu thử nghiệm (Pepsi, Coca-Cola, Adidas, Apple, BMW, Chanel, Ferrari, Heineken, Puma), đóng khung bounding box đúng vị trí logo và điều hướng hiển thị giao diện thông tin giới thiệu chi tiết về từng doanh nghiệp.

Chương 5: Nhận xét và hướng phát triển

Đưa ra đánh giá khách quan về mức độ hoàn thành so với mục tiêu ban đầu. Tổng kết những ưu điểm đạt được về khả năng tích hợp hệ thống thời gian thực giữa Android - Firebase - Server AI, đồng thời chỉ rõ các hạn chế kỹ thuật phát sinh trong quá trình nghiên cứu và đề xuất các giải pháp nâng cấp mô hình trong tương lai.


Kết quả và đóng góp

1. Kết quả kỹ thuật đạt được

  • Hoàn thiện ứng dụng Android: Xây dựng thành công ứng dụng di động trên nền tảng Android 8 với giao diện trực quan, đáp ứng đầy đủ hai luồng dữ liệu đầu vào: chụp ảnh từ camera và truy xuất ảnh từ thư viện lưu trữ.
  • Xây dựng hệ thống phân tán thời gian thực: Kết nối ổn định giữa ứng dụng Android và máy chủ xử lý AI thông qua Firebase Realtime Database với cơ chế định danh độc lập theo android_id, đạt thời gian phản hồi theo yêu cầu thiết kế ban đầu (dưới 10 giây).
  • Huấn luyện mô hình nhận diện: Xây dựng thành công tệp đồ thị suy luận frozen_inference_graph.pb cho 10 lớp nhãn hiệu dựa trên kiến trúc Faster R-CNN, mô hình đạt độ ổn định cao sau 11.391 bước huấn luyện.
  • Tích hợp tri thức doanh nghiệp: Ứng dụng không chỉ đóng khung nhận diện logo mà còn truy xuất và hiển thị thông tin giới thiệu tóm tắt về lịch sử, nguồn gốc của các doanh nghiệp tương ứng.

2. Đóng góp của đề tài

  • Làm chủ quy trình xây dựng bài toán Object Detection hoàn chỉnh: từ khâu tiền xử lý, làm sạch và gán nhãn dữ liệu thực tế (WebLogo-2M), chuyển đổi định dạng TFRecord, đến tinh chỉnh mô hình học sâu bằng TensorFlow API.
  • Đề xuất mô hình kiến trúc kết hợp linh hoạt giữa thiết bị di động cấu hình phổ thông và máy chủ AI từ xa thông qua trung gian Firebase, giải quyết triệt để rào cản hạn chế năng lực tính toán phần cứng trên điện thoại thông minh khi thực thi các mạng nơ-ron phức tạp.

Hạn chế và hướng nghiên cứu tiếp

1. Hạn chế

  • Quá trình huấn luyện mô hình phải dừng lại ở bước 11.391 do năng lực tính toán phần cứng của máy tính thử nghiệm có hạn và áp lực thời gian nghiên cứu, dẫn đến các thông số hàm mất mát chưa đạt đến điểm bão hòa tối ưu.
  • Số lượng nhãn hiệu nhận diện còn giới hạn trong phạm vi 10 thương hiệu phổ biến, chưa bao quát được hệ thống nhãn hiệu đa dạng trên thị trường.
  • Hệ thống phụ thuộc hoàn toàn vào kết nối mạng Internet và độ trễ trung gian của máy chủ Firebase; trường hợp đường truyền gián đoạn sẽ ảnh hưởng trực tiếp đến tính thời gian thực của ứng dụng.

2. Hướng nghiên cứu tiếp

  • Nâng cấp cấu hình phần cứng để kéo dài số bước huấn luyện cho đến khi toàn bộ các hàm mất mát hội tụ hoàn toàn.
  • Mở rộng tập dữ liệu huấn luyện, bổ sung thêm nhiều lớp nhãn hiệu sản phẩm và doanh nghiệp Việt Nam.
  • Nghiên cứu tối ưu hóa kích thước mô hình (như áp dụng MobileNet, SSD hoặc kỹ thuật lượng tử hóa mô hình) nhằm hướng tới khả năng thực thi suy luận trực tiếp (offline inference) ngay trên thiết bị di động mà không cần phụ thuộc vào máy chủ trung gian.

Giá trị tham khảo

Tài liệu khóa luận mang lại giá trị tham khảo thiết thực cho các đối tượng sau:

  • Sinh viên ngành Công nghệ thông tin, Kỹ thuật máy tính, Điện tử viễn thông: Cung cấp tài liệu mẫu chi tiết về các bước thực hành huấn luyện mô hình nhận diện vật thể bằng TensorFlow Object Detection API phiên bản 1.x, từ khâu biên dịch Protobuf đến xuất tệp suy luận frozen_inference_graph.pb.
  • Người nghiên cứu ứng dụng di động tích hợp AI: Cung cấp giải pháp kỹ thuật mẫu về cách thức kết nối ứng dụng Android với mô hình học máy chạy trên máy chủ Python thông qua cơ sở dữ liệu Firebase Realtime Database và mã hóa chuỗi Base64.
  • Các đề tài xử lý ảnh và thị giác máy tính: Cung cấp phương pháp luận làm sạch và chuẩn hóa tập dữ liệu ảnh từ nguồn dữ liệu mở có tỷ lệ nhiễu cao (WebLogo-2M).

Câu hỏi thường gặp

1. Tại sao tác giả lựa chọn mô hình Faster R-CNN thay vì YOLO hay Fast R-CNN?

Trong văn bản, tác giả phân tích rằng dù thuật toán YOLO có ưu thế vượt trội về tốc độ xử lý trong môi trường công nghiệp, độ chính xác của nó lại có sự suy giảm nhất định so với các mô hình thuần CNN. Để tối ưu hóa độ chính xác nhận diện trong bài toán nhận dạng nhãn hiệu mà vẫn đảm bảo khả năng xử lý thời gian thực nhanh hơn các thế hệ trước (như Fast R-CNN nhờ thay thế Selective Search bằng RPN), tác giả đã chọn Faster R-CNN Inception V2.

2. Dữ liệu huấn luyện của đồ án được xử lý từ nguồn nào và quy mô sau làm sạch là bao nhiêu?

Tác giả sử dụng tập dữ liệu học thuật WebLogo-2M do Nhóm Nghiên cứu Thị giác Máy tính của Đại học Queen Mary Luân Đôn cung cấp (gốc gồm 194 lớp với hơn 2,19 triệu ảnh, tỷ lệ nhiễu 25,8%). Tác giả đã trích xuất 10 lớp thương hiệu mục tiêu và loại bỏ hoàn toàn các ảnh nhiễu, thu được tập dữ liệu sạch gồm 7.158 ảnh phục vụ huấn luyện và kiểm thử.

3. Tại sao Firebase Realtime Database lại cần phân nhánh theo "android_id"?

Do không thể xác định trước số lượng thiết bị di động sẽ kết nối đồng thời vào hệ thống để đặt trước ID cố định, hệ thống sử dụng định danh phần cứng android_id của từng điện thoại để tạo các nhánh (contact) riêng biệt trên Firebase. Cách thiết kế này đảm bảo máy chủ nhận diện chính xác dữ liệu ảnh cần xử lý từ từng người dùng và trả kết quả về đúng thiết bị yêu cầu mà không bị ghi đè dữ liệu.

4. Cơ sở nào khiến tác giả chọn checkpoint ở bước huấn luyện 11.391 thay vì 9.283?

Theo dõi biểu đồ tổng hàm mất mát trên TensorBoard sau khi đồ thị bắt đầu ổn định (từ bước 3.000), giá trị hàm mất mát đạt mức thấp nhất tại hai điểm: bước 9.283 và bước 11.391. Qua quá trình thử nghiệm nhận dạng thực tế, mô hình tại bước 11.391 cho tỷ lệ nhận diện trung bình cao hơn, do đó tác giả đã quyết định xuất đồ thị suy luận từ checkpoint này.


Kết luận

Đồ án tốt nghiệp "Thiết kế mô hình ứng dụng nhận diện nhãn hiệu" của sinh viên Nguyễn Phạm Duy Đức đã hoàn thành trọn vẹn mục tiêu nghiên cứu thông qua việc xây dựng một hệ thống nhận diện logo 10 thương hiệu theo thời gian thực kết hợp giữa Android và máy chủ Faster R-CNN. Đề tài đã giải quyết tốt bài toán tiền xử lý dữ liệu từ nguồn dữ liệu WebLogo-2M, làm chủ công nghệ huấn luyện TensorFlow Object Detection API và xây dựng cơ chế giao tiếp dữ liệu Base64 qua Firebase. Mặc dù quá trình huấn luyện mô hình phải dừng sớm do hạn chế phần cứng, kết quả thực nghiệm đã khẳng định tính khả thi của mô hình kiến trúc phân tán trong việc đưa các giải pháp trí tuệ nhân tạo vào ứng dụng thực tiễn trên thiết bị di động.