Tổng quan nghiên cứu

Trong bối cảnh phát triển mạnh mẽ của trí tuệ nhân tạo và học sâu, mạng nơron tích chập (Convolutional Neural Network - CNN) đã trở thành công cụ chủ đạo trong lĩnh vực nhận dạng hình ảnh với độ chính xác cao. Theo báo cáo của ngành, các mô hình CNN hiện nay thường yêu cầu phần cứng có khả năng xử lý nhanh và dung lượng bộ nhớ lớn do khối lượng tính toán phức tạp, đặc biệt là các phép toán tích chập trên dữ liệu dấu chấm động. Điều này gây khó khăn cho việc triển khai trên các thiết bị nhúng có cấu hình phần cứng hạn chế. FPGA (Field Programmable Gate Array) được xem là nền tảng tiềm năng để thực thi mạng CNN nhờ khả năng xử lý song song, hiệu năng cao và tiêu thụ năng lượng thấp.

Luận văn tập trung nghiên cứu triển khai mạng CNN trên nền tảng FPGA Cyclone II EP2C35F672C8 thuộc Kit phát triển NB2DSK01 của hãng Altium Designer, ứng dụng trong bài toán nhận dạng chữ số viết tay từ bộ dữ liệu MNIST. Mục tiêu chính là xây dựng kiến trúc mạng CNN hiệu quả, tìm kiếm tham số tối ưu và thực thi trên FPGA nhằm tăng tốc độ xử lý và giảm tiêu thụ năng lượng so với các nền tảng truyền thống như CPU hay vi điều khiển Raspberry Pi. Phạm vi nghiên cứu giới hạn trong việc thiết kế, huấn luyện và triển khai mạng CNN cho nhận dạng ảnh chữ số viết tay trong khoảng thời gian nghiên cứu năm 2023 tại Trường Đại học Kỹ thuật Công nghiệp, Đại học Thái Nguyên.

Nghiên cứu có ý nghĩa quan trọng trong việc mở rộng ứng dụng mạng CNN trên các thiết bị nhúng, góp phần phát triển các hệ thống nhận dạng ảnh thời gian thực với chi phí và năng lượng tối ưu. Kết quả nghiên cứu cũng làm nền tảng cho việc triển khai các mô hình học sâu phức tạp hơn như LSTM, Transformer trong tương lai.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Luận văn dựa trên hai lý thuyết chính: mạng nơron nhân tạo (Artificial Neural Network - ANN) và mạng nơron tích chập (CNN). ANN mô phỏng cấu trúc nơron sinh học với các nơron nhân tạo được tổ chức thành các lớp, mỗi nơron có trọng số và độ lệch ảnh hưởng đến tín hiệu đầu ra. CNN phát triển từ ANN, sử dụng phép tích chập (convolution) để trích xuất đặc trưng không gian từ ảnh đầu vào, kết hợp với các lớp pooling để giảm chiều dữ liệu và lớp kết nối đầy đủ để phân loại.

Ba khái niệm chuyên ngành quan trọng trong nghiên cứu gồm:

  • Phép tích chập (Convolution): Phép toán tuyến tính kết hợp ảnh đầu vào với bộ lọc (kernel) để tạo bản đồ đặc trưng, giúp phát hiện các đặc điểm như biên, góc, hoặc các mẫu hình ảnh.
  • Trường tiếp nhận cục bộ (Local receptive field): Mỗi nơron trong lớp tích chập chỉ kết nối với một vùng nhỏ của ảnh đầu vào, giúp mạng học các đặc trưng cục bộ.
  • Trọng số chia sẻ (Shared weights) và độ lệch (bias): Các trọng số của bộ lọc được dùng chung cho toàn bộ ảnh, giảm số lượng tham số và tăng hiệu quả học.

Ngoài ra, các lớp ReLU (Rectified Linear Units) được sử dụng làm hàm kích hoạt phi tuyến, và lớp pooling (max-pooling hoặc average-pooling) giúp giảm kích thước dữ liệu đầu ra, hạn chế overfitting và tăng tốc độ xử lý.

Phương pháp nghiên cứu

Luận văn sử dụng phương pháp nghiên cứu kết hợp lý thuyết và thực nghiệm:

  • Nguồn dữ liệu: Bộ dữ liệu MNIST gồm 70,000 ảnh chữ số viết tay kích thước 28x28 pixel, được chia thành tập huấn luyện, tập đánh giá và tập thử nghiệm.
  • Phương pháp phân tích:
    • Huấn luyện mạng CNN trên máy tính để tìm kiếm kiến trúc và tham số tối ưu (số lượng lớp tích chập, kích thước kernel, số lượng bản đồ đặc trưng, stride, padding).
    • Triển khai mạng CNN trên FPGA Cyclone II EP2C35F672C8 sử dụng ngôn ngữ mô tả phần cứng HDL và công cụ tổng hợp mức cao HLS trên Kit NB2DSK01.
    • So sánh hiệu năng thực thi mạng CNN trên FPGA với các nền tảng khác như PC và vi điều khiển Raspberry Pi về thời gian xử lý và tiêu thụ năng lượng.
  • Timeline nghiên cứu: Quá trình nghiên cứu kéo dài trong năm 2023, bao gồm giai đoạn tổng hợp lý thuyết, thiết kế mô hình, huấn luyện mạng, triển khai phần cứng và đánh giá kết quả.

Phương pháp chọn mẫu là sử dụng toàn bộ bộ dữ liệu MNIST để đảm bảo tính đại diện và độ tin cậy của kết quả. Việc lựa chọn FPGA Cyclone II dựa trên khả năng lập trình linh hoạt, hiệu năng xử lý song song và phù hợp với các thiết bị nhúng.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

  1. Kiến trúc mạng CNN tối ưu cho nhận dạng chữ số MNIST:
    Mạng CNN với 3 lớp tích chập, kích thước kernel 5x5, stride=1, padding=1 và 3 bản đồ đặc trưng mỗi lớp đạt độ chính xác huấn luyện trên 99%. Việc sử dụng max-pooling 2x2 sau mỗi lớp tích chập giúp giảm kích thước dữ liệu đầu ra xuống còn 12x12, giảm số lượng tham số và tăng tốc độ xử lý.

  2. Hiệu quả thực thi trên FPGA:
    Mạng CNN được triển khai trên FPGA Cyclone II EP2C35F672C8 cho thời gian xử lý trung bình mỗi ảnh là khoảng 15ms, nhanh hơn 40% so với vi điều khiển Raspberry Pi 4 và giảm 60% so với thực thi trên CPU máy tính cá nhân. FPGA cũng tiêu thụ năng lượng thấp hơn khoảng 30% so với các nền tảng khác.

  3. Tối ưu hóa tham số mạng CNN:
    Việc sử dụng công cụ HLS giúp rút ngắn thời gian phát triển và tối ưu hóa hiệu năng phần cứng. Tham số như số lượng bản đồ đặc trưng và kích thước kernel ảnh hưởng trực tiếp đến độ chính xác và tốc độ xử lý. Ví dụ, tăng số lượng bản đồ đặc trưng từ 3 lên 20 làm tăng độ chính xác lên 99.5% nhưng thời gian xử lý tăng 25%.

  4. So sánh với các nghiên cứu trong nước và quốc tế:
    Kết quả đạt được tương đương hoặc vượt trội so với các nghiên cứu trước đây về nhận dạng chữ số viết tay sử dụng CNN trên FPGA, với độ chính xác trên 99% và thời gian xử lý phù hợp cho ứng dụng thời gian thực.

Thảo luận kết quả

Nguyên nhân chính của hiệu quả cao khi triển khai mạng CNN trên FPGA là khả năng xử lý song song và tối ưu hóa phần cứng cho các phép toán tích chập. Việc sử dụng các kỹ thuật như trọng số chia sẻ và pooling giúp giảm đáng kể số lượng tham số, từ đó giảm tải bộ nhớ và tăng tốc độ xử lý.

So với các nghiên cứu khác, việc lựa chọn kiến trúc mạng CNN phù hợp với bài toán MNIST và tối ưu hóa tham số trên FPGA đã giúp cân bằng tốt giữa độ chính xác và hiệu năng. Kết quả này khẳng định tính khả thi của việc ứng dụng FPGA trong các hệ thống nhận dạng ảnh nhúng, đặc biệt trong các thiết bị có giới hạn về công suất và chi phí.

Dữ liệu có thể được trình bày qua biểu đồ so sánh thời gian xử lý và độ chính xác giữa các nền tảng FPGA, Raspberry Pi và PC, cũng như bảng tổng hợp các tham số mạng CNN và kết quả huấn luyện.

Đề xuất và khuyến nghị

  1. Phát triển các kiến trúc CNN đa lớp sâu hơn trên FPGA:
    Để nâng cao độ chính xác nhận dạng, cần nghiên cứu triển khai các mạng CNN sâu hơn như ResNet hoặc DenseNet trên FPGA, đồng thời tối ưu hóa tài nguyên phần cứng để đảm bảo tốc độ xử lý.

  2. Tối ưu hóa thuật toán và phần cứng cho các ứng dụng thời gian thực:
    Áp dụng các kỹ thuật nén mô hình, giảm độ chính xác số học (quantization) và thiết kế pipeline xử lý song song nhằm giảm độ trễ và tiêu thụ năng lượng, phù hợp cho các thiết bị nhúng.

  3. Mở rộng ứng dụng sang các bài toán nhận dạng phức tạp hơn:
    Triển khai mạng CNN trên FPGA cho các bài toán nhận dạng khuôn mặt, vật thể trong video hoặc xử lý tín hiệu đa chiều, tận dụng khả năng xử lý song song và linh hoạt của FPGA.

  4. Đào tạo và chuyển giao công nghệ:
    Tổ chức các khóa đào tạo về thiết kế mạng CNN trên FPGA cho sinh viên và kỹ sư, đồng thời phát triển các bộ công cụ phần mềm hỗ trợ thiết kế và triển khai nhanh chóng.

Các giải pháp trên nên được thực hiện trong vòng 1-2 năm tới, với sự phối hợp giữa các trường đại học, viện nghiên cứu và doanh nghiệp công nghệ.

Đối tượng nên tham khảo luận văn

  1. Sinh viên và nghiên cứu sinh ngành Kỹ thuật Điện tử và Công nghệ Thông tin:
    Luận văn cung cấp kiến thức nền tảng và thực tiễn về mạng CNN và FPGA, giúp nâng cao kỹ năng thiết kế hệ thống nhúng và học sâu.

  2. Kỹ sư phát triển phần cứng và phần mềm nhúng:
    Tham khảo để áp dụng các phương pháp tối ưu hóa mạng CNN trên FPGA, cải thiện hiệu năng và tiết kiệm năng lượng cho các sản phẩm nhúng.

  3. Nhà nghiên cứu trong lĩnh vực trí tuệ nhân tạo và thị giác máy tính:
    Cung cấp cơ sở lý thuyết và thực nghiệm về triển khai mạng CNN trên phần cứng chuyên dụng, mở rộng hướng nghiên cứu ứng dụng học sâu.

  4. Doanh nghiệp phát triển thiết bị IoT và hệ thống nhận dạng thông minh:
    Hướng dẫn thiết kế và triển khai các giải pháp nhận dạng ảnh hiệu quả trên nền tảng FPGA, giảm chi phí và tăng tính cạnh tranh sản phẩm.

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

  1. Tại sao chọn FPGA để triển khai mạng CNN thay vì CPU hay GPU?
    FPGA cung cấp khả năng xử lý song song cao, tiêu thụ năng lượng thấp và có thể tùy chỉnh phần cứng cho các phép toán tích chập, phù hợp với các thiết bị nhúng có giới hạn về công suất và chi phí.

  2. Bộ dữ liệu MNIST có phù hợp để đánh giá mạng CNN trên FPGA không?
    MNIST là bộ dữ liệu chuẩn quốc tế với 70,000 ảnh chữ số viết tay, được sử dụng rộng rãi để huấn luyện và đánh giá các mô hình nhận dạng ảnh, giúp so sánh kết quả một cách khách quan.

  3. Làm thế nào để tối ưu tham số mạng CNN cho FPGA?
    Tham số như số lớp tích chập, kích thước kernel, số lượng bản đồ đặc trưng, stride và padding được điều chỉnh qua quá trình huấn luyện và thử nghiệm để cân bằng giữa độ chính xác và hiệu năng phần cứng.

  4. Có thể áp dụng phương pháp này cho các bài toán nhận dạng khác không?
    Có, kiến trúc và phương pháp triển khai mạng CNN trên FPGA có thể mở rộng cho các bài toán nhận dạng khuôn mặt, vật thể, video hoặc xử lý tín hiệu đa chiều với các điều chỉnh phù hợp.

  5. Thời gian xử lý trên FPGA có đáp ứng yêu cầu thời gian thực không?
    Kết quả nghiên cứu cho thấy thời gian xử lý trung bình khoảng 15ms mỗi ảnh, đủ nhanh để ứng dụng trong các hệ thống nhận dạng thời gian thực với yêu cầu xử lý nhanh và chính xác.

Kết luận

  • Đã xây dựng và huấn luyện thành công mạng CNN với kiến trúc tối ưu cho bài toán nhận dạng chữ số viết tay MNIST, đạt độ chính xác trên 99%.
  • Triển khai mạng CNN trên FPGA Cyclone II EP2C35F672C8 cho hiệu năng xử lý nhanh hơn 40% so với vi điều khiển Raspberry Pi và tiết kiệm năng lượng đáng kể.
  • Phương pháp sử dụng công cụ tổng hợp mức cao HLS giúp rút ngắn thời gian phát triển và tối ưu hóa hiệu quả phần cứng.
  • Kết quả nghiên cứu mở ra hướng phát triển các hệ thống nhận dạng ảnh nhúng hiệu quả, phù hợp với các ứng dụng thời gian thực và thiết bị có giới hạn tài nguyên.
  • Đề xuất các hướng nghiên cứu tiếp theo bao gồm phát triển mạng CNN sâu hơn, tối ưu thuật toán và mở rộng ứng dụng sang các lĩnh vực nhận dạng phức tạp hơn.

Luận văn khuyến khích các nhà nghiên cứu và kỹ sư tiếp tục khai thác tiềm năng của FPGA trong lĩnh vực học sâu, đồng thời áp dụng các giải pháp tối ưu để phát triển các hệ thống nhận dạng thông minh, hiệu quả và tiết kiệm năng lượng.