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

Xây dựng giải pháp nhập điểm tự động cho bài thi trên giấy sử dụng các thuật toán xử lý và nhận dạng ảnh số

83 2 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 đề Xây dựng giải pháp nhập điểm tự động cho bài thi trên giấy sử dụng các thuật toán xử lý và nhận dạng ảnh số
Tác giả Lê Nhật Tường
Người hướng dẫn TS. Trần Nhật Quang
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành phố Hồ Chí Minh
Chuyên ngành Khoa học máy tính
Thể loại Đề tài Nghiên cứu Khoa học của Sinh viên
Năm xuất bản 2021
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 83
Dung lượng 7,24 MB

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

Cấu trúc

  • NCKH A4.pdf (p.1)

  • SKC007649.pdf (p.2-82)

    • DANH MỤC BẢNG BIỂU

    • DANH MỤC HÌNH ẢNH

    • DANH MỤC NHỮNG TỪ VIẾT TẮT

    • THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI

    • TÓM TẮT CÔNG TRÌNH

    • CHƯƠNG 1: TỔNG QUAN VỀ NGHIÊN CỨU

      • 1.1. Lý do chọn đề tài

      • 1.2. Mục tiêu đề tài

      • 1.3. Đối tượng và phạm vi nghiên cứu

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

      • 1.5. Ý nghĩa nghiên cứu

      • 1.6. Kết cấu của đề tài

    • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ MÔ HÌNH NGHIÊN CỨU

      • 2.1. Lý thuyết nền

        • 2.1.1. Xử lý ảnh

          • 2.1.1.1. Tổng quan về xử lý ảnh

          • 2.1.1.2. Các quá trình xử lý ảnh

        • 2.1.2. Thị giác máy tính

          • 2.1.2.1. Khái niệm

          • 2.1.2.2. Ba giai đoạn nối tiếp mô phỏng thị giác con người

        • 2.1.3. Object detection

          • 2.1.3.1. Khái niệm

          • 2.1.3.2. Cách thức hoạt động

      • 2.2. Tổng quan các nghiên cứu trước

        • 2.2.1. Các nghiên cứu trong nước

        • 2.2.2. Các nghiên cứu ngoài nước

      • 2.3. Những vấn đề tồn tại cần được tiếp tục nghiên cứu

      • 2.4. Phương án giải quyết

    • CHƯƠNG 3: MỤC TIÊU - PHƯƠNG PHÁP NGHIÊN CỨU

      • 3.1. Mục tiêu nghiên cứu

      • 3.2. Quy trình nghiên cứu

      • 3.3. Chuẩn bị dữ liệu

        • 3.3.1. Thu thập dữ liệu

        • 3.3.2. Chú thích ảnh bằng công cụ LabelImg

        • 3.3.3. Nghiên cứu dữ liệu

      • 3.4. Tìm hiểu các thuật toán, mô hình nhận dạng ảnh số

        • 3.4.1. Giới thiệu TensorFlow Object Detection

          • 3.4.1.1. Giới thiệu về Object Detection

          • 3.4.1.2. Giới thiệu TensorFlow Object Detection API

          • 3.4.1.3. Model Zoo

        • 3.4.2. Giới thiệu về Single Shot Multibox Detector (SSD)

          • 3.4.2.1. Giới thiệu chung về SSD

          • 3.4.2.2. Kiến trúc mô hình

        • 3.4.3. Giới thiệu về ResNet50

          • 3.4.3.1. Giới thiệu về mạng ResNet

          • 3.4.3.2. Vanishing Gradient

          • 3.4.3.3. Kiến trúc mạng ResNet

          • 3.4.3.4. Xây dựng mạng ResNet-50

      • 3.5. Training model

        • 3.5.1. Thông tin về model SSD ResNet50 V1 FPN 640x640 (RetinaNet50)

          • 3.5.1.1. Trường hợp sử dụng và High-Level Description

          • 3.5.1.2. Mô tả chi tiết thông số kỹ thuật:

        • 3.5.2. Quá trình training

          • 3.5.2.1. Phân chia dữ liệu

          • 3.5.2.2. Cài đặt, cấu hình và training

          • 3.5.2.3. Xuất kết quả

        • 3.5.3. Xử lý kết quả trả về từ model

      • 3.6. Xây dựng ứng dụng

        • 3.6.1. Giao diện

        • 3.6.2. Các chức năng của ứng dụng

    • CHƯƠNG 4: KẾT QUẢ ĐẠT ĐƯỢC

      • 4.1. Thông tin về model

        • 4.1.1. Thông tin model nhận diện mã số sinh viên

        • 4.1.2. Thông tin model nhận diện điểm số

      • 4.2. Kết quả thực nghiệm

        • 4.2.1. Sử dụng ứng dụng

          • 4.2.1.1. Nhận diện một hình ảnh

          • 4.2.1.2. Nhận diện nhiều hình ảnh trong thư mục

          • 4.2.1.3. Nhận diện hình ảnh trực tiếp

          • 4.2.1.4. Xuất dữ liệu nhận dạng ra tệp Excel mới

          • 4.2.1.5. Xuất dữ liệu nhận dạng ra tệp Excel sẵn có

        • 4.2.2. Kết quả thực tiễn

          • 4.2.2.1. Kết quả phần nhận dạng mã số sinh viên

          • 4.2.2.2. Kết quả phần nhận dạng điểm số

    • CHƯƠNG 5: KẾT LUẬN, GIẢI PHÁP, KIẾN NGHỊ

      • 5.1. Kết luận

      • 5.2. Kiến nghị - Giải pháp

    • TÀI LIỆU THAM KHẢO

      • Tiếng Việt

      • Tiếng Anh

    • PHỤ LỤC

      • Video demo ứng dụng

      • Poster đề tài

      • Source code ứng dụng

  • 4 BIA SAU A4.pdf (p.83)

Nội dung

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 XÂY DỰNG GIẢI PHÁP NHẬP ĐIỂM TỰ ĐỘNG CHO BÀI THI TRÊN GIẤY SỬ DỤNG

TỔNG QUAN VỀ NGHIÊN CỨU

Lý do chọn đề tài

Hiện nay, nhận dạng là một trong những vấn đề được quan tâm hàng đầu và đang được nhiều nhà khoa học nghiên cứu, phát triển Có rất nhiều lĩnh vực nhận dạng như nhận dạng tín hiệu, nhận dạng tiếng nói và nhận dạng hình ảnh Tuy nhiên, nhận dạng chữ viết tay nói chung và nhận dạng chữ số viết tay nói riêng cũng đóng vai trò quan trọng và đặt ra nhiều thách thức lớn cho các nhà nghiên cứu Những thách thức này đòi hỏi sự tiến bộ của các phương pháp học máy, xử lý ảnh và dữ liệu chất lượng cao để đạt được kết quả chính xác hơn.

Chữ số viết tay đang hiện diện ở hầu hết mọi nơi từ cơ quan, nhà máy, xí nghiệp đến trường học; đặc biệt ở các trường THPT hiện nay, việc nhận bảng điểm viết tay của giáo viên và nhập điểm vào máy tính thường được giao cho một bộ phận quản lý điểm Tuy nhiên, công tác này chiếm khá nhiều thời gian và đôi khi không đảm bảo đúng tiến độ của nhà trường Đối với khối lượng bài chấm lớn, việc nhập điểm thủ công vừa tốn thời gian vừa dễ phát sinh sai sót, làm giảm hiệu quả quản lý điểm và ảnh hưởng đến tiến độ giáo dục.

Để nâng cao hiệu quả và độ chính xác của công tác tiếp nhận và nhập điểm bài thi, cần tối ưu hóa quy trình này một cách thông minh nhằm tiết kiệm thời gian, nguồn lực và công sức, đồng thời giảm thiểu sai sót Vậy làm thế nào để tối ưu hóa công tác này một cách toàn diện? Chính vì những lý do đó, nhóm nghiên cứu đã nghiên cứu và phát triển đề tài "Xây dựng giải pháp nhập điểm tự động cho bài thi trên giấy sử dụng các thuật toán xử lý và nhận dạng ảnh số" nhằm tự động hóa quy trình chấm thi và nâng cao độ tin cậy của dữ liệu.

Mục tiêu đề tài

Đề tài xây dựng một giải pháp nhập điểm tự động cho bài thi trên giấy dựa trên hai trụ cột chính là thuật toán xử lý ảnh và nhận dạng ảnh số (OCR) Mục tiêu là đọc được thông tin từ file scan của bài chấm, tự động trích xuất các trường dữ liệu như điểm số, số báo danh và kết quả chấm từ bảng điểm, phiếu làm bài hoặc biên bản chấm thi Quy trình gồm tiền xử lý ảnh để tối ưu hóa độ tương phản và khử nhiễu, nhận dạng ký tự và nhận diện bố cục trang để phân tích đúng các ô dữ liệu, từ đó giảm thiểu sai sót do nhập liệu thủ công và tăng tốc quá trình chấm thi Hệ thống sẽ lưu trữ dữ liệu điểm dưới dạng có cấu trúc, cho phép tra cứu và xuất báo cáo một cách linh hoạt, đồng thời tích hợp với các hệ thống quản lý kết quả học tập Bên cạnh đó, cần chú ý đến độ tin cậy của OCR với chữ viết tay và in ấn, xử lý đa ngôn ngữ nếu có, và đảm bảo an toàn bảo mật dữ liệu điểm thi.

Nhóm nghiên cứu tập trung tìm hiểu và khám phá Deep Learning, nhằm đề xuất các giải pháp công nghệ có thể ứng dụng trực tiếp vào đời sống hàng ngày Quá trình này kết nối giữa nghiên cứu lý thuyết và ứng dụng thực tiễn, biến các khám phá công nghệ thành giải pháp giúp tối ưu hóa công việc, chăm sóc sức khỏe và giao thông, từ đó nâng cao chất lượng cuộc sống cho người dùng.

Từ đó, chúng ta đã xây dựng được một giải pháp nhận diện có khả năng hoạt động trên mọi loại giấy thi khác nhau Giải pháp này không chỉ được đề xuất mở rộng tới các hệ thống trường học mà còn được phát triển tại các công sở, cơ quan, nhà máy và xí nghiệp nhằm nâng cao hiệu quả quản lý và tối ưu quy trình xử lý hồ sơ.

Đối tượng và phạm vi nghiên cứu

Đối tượng nghiên cứu là các mô hình nhận dạng ảnh số trong API TensorFlow Bên cạnh đó, dữ liệu và hình ảnh đóng vai trò quan trọng, là những yếu tố cốt lõi mà nhóm nghiên cứu hướng tới khai thác và tối ưu hóa để nâng cao hiệu suất hệ thống.

Phạm vi nghiên cứu: Ứng du ̣ng các thuâ ̣t toán xử lý và nhâ ̣n da ̣ng ảnh số để ta ̣o ra phầ n mề m nhập điểm tự đô ̣ng cho bài thi trên giấy.

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

Nhó m đã vâ ̣n du ̣ng phương pháp nghiên cứu lý thuyết thông qua các bài báo khoa học, tài liê ̣u khoa ho ̣c và các đề tài nghiên cứu tương tự trước đó, nhằm có được cơ sở lý thuyết liên quan đến giải pháp Từ đó nhóm đưa ra những phân tích và tổng hợp các mô hình và cơ sở lý thuyết với mu ̣c đích phu ̣c vu ̣ cho đề tài nghiên cứu

Bên cạnh đó, phương pháp thử nghiệm là yếu tố không thể thiếu trong quá trình nghiên cứu khoa học Nhóm nghiên cứu đã triển khai ứng dụng vào thực tế và sau nhiều lần điều chỉnh nhằm đạt được kết quả tối ưu.

Cuối cùng, phương pháp phân tích đánh giá nhằm kiểm tra độ chính xác của thuật toán được sử dụng thông qua các thí nghiệm thực nghiệm Phương pháp này kết hợp phân tích lý thuyết với xác thực bằng thực nghiệm để đo lường hiệu suất, độ tin cậy và tính lặp lại của thuật toán, đồng thời so sánh với các chuẩn mực và benchmark để đảm bảo kết quả khách quan và có ý nghĩa đối với các ứng dụng thực tế.

Ý nghĩa nghiên cứu

Nghiên cứu ứng dụng nhập điểm tự động cho bài thi trên giấy mang lại nhiều giá trị thực tiễn và ứng dụng cao, góp phần cải thiện quy trình chấm thi từ giấy và nhập điểm trở nên nhanh chóng, tiết kiệm thời gian và chi phí cho nguồn lực Quá trình tự động hóa giúp giảm sai sót và tăng tính chính xác, đồng thời nâng cao tính minh bạch của dữ liệu thi và hiệu quả công tác giáo dục hiện nay Việc triển khai nhập điểm tự động sẽ tối ưu hóa quy trình từ chấm thi trên giấy đến nhập điểm, mang lại lợi ích về thời gian, chi phí vận hành và chất lượng đánh giá Kết quả cho thấy tiềm năng của công nghệ này có thể áp dụng rộng rãi trong hệ thống giáo dục, mang lại hiệu quả cao và tác động tích cực lên toàn bộ chu trình thi cử.

Hiện nay, nền giáo dục thế giới nói chung và Việt Nam nói riêng đang có những chuyển biến tích cực trong việc ứng dụng các công nghệ hiện đại vào giảng dạy và quản lý giáo dục Chính vì thế, việc đề ra các giải pháp tối ưu hóa các quy trình quản lý và giảng dạy không chỉ mang lại lợi ích cho công tác giáo dục mà còn nâng cao chất lượng học tập của học sinh, sinh viên và tạo ra một môi trường dạy học thú vị, hiện đại.

Hiện nay lĩnh vực nhận dạng đang trở thành một trong những xu hướng công nghệ hàng đầu trên toàn cầu Việc phát triển các ứng dụng nhận dạng đang đóng góp đáng kể vào nâng cao chất lượng cuộc sống và thúc đẩy nghiên cứu khoa học và công nghệ Các ứng dụng nhận dạng ngày càng đa dạng và hiệu quả, mở ra nhiều cơ hội cho các ngành công nghiệp và dịch vụ, từ an ninh đến y tế và giáo dục Tuy nhiên, khi triển khai cần cân nhắc đến bảo mật dữ liệu và quyền riêng tư để duy trì niềm tin của người dùng và tối ưu hiệu suất hệ thống.

Kết cấu của đề tài

Chương 1: Tổng quan về nghiên cứu

Chương 2: Cơ sở lý thuyết và mô hình nghiên cứu

Chương 3: Mu ̣c tiêu – Phương pháp nghiên cứu

Chương 4: Kết quả đa ̣t được

Chương 5: Kết luâ ̣n, giải pháp, kiến nghi ̣.

CƠ SỞ LÝ THUYẾT VÀ MÔ HÌNH NGHIÊN CỨU

Lý thuyết nền

2.1.1.1 Tổng quan về xử lý ảnh

Xử lý ảnh (XLA) là đối tượng nghiên cứu của lĩnh vực thị giác máy tính, là quá trình biến đổi từ một ảnh ban đầu sang một ảnh mới có các đặc tính và tuân theo ý muốn của người sử dụng Xử lý ảnh có thể bao gồm quá trình phân tích, phân lớp các đối tượng, tăng chất lượng ảnh, phân đoạn và tách cạnh, gán nhãn cho vùng hoặc biên dịch các thông tin hình ảnh của ảnh.

Xử lý ảnh số là một lĩnh vực của tin học ứng dụng, tương tự xử lý dữ liệu bằng đồ họa Nó đề cập đến các ảnh nhân tạo được xem như một cấu trúc dữ liệu do các chương trình tạo ra Xử lý ảnh số bao gồm các phương pháp và kỹ thuật biến đổi nhằm truyền tải hoặc mã hóa các ảnh tự nhiên Mục đích của xử lý ảnh gồm cải thiện chất lượng hình ảnh, khôi phục, trích xuất đặc trưng và nhận diện hình ảnh, cũng như tối ưu hóa việc lưu trữ và truyền tải dữ liệu hình ảnh.

- Biến đổi ảnh làm tăng chất lượng ảnh

- Tự động nhận dạng ảnh, đoán nhận ảnh, đánh giá các nội dung của ảnh

Nhận diện và đánh giá nội dung của ảnh là quá trình phân tích hình ảnh thành các phần có ý nghĩa để phân biệt các đối tượng với nhau, từ đó có thể mô tả cấu trúc của hình ảnh gốc Các phương pháp nhận dạng cơ bản như nhận dạng đối tượng trên ảnh, tách cạnh và phân đoạn ảnh được áp dụng rộng rãi, đặc biệt trong y học (xử lý tế bào, nhiễm sắc thể) và trong nhận dạng chữ trong văn bản.

2.1.1.2 Các quá trình xử lý ảnh

Hình 2.1 Các giai đoạn chính trong xử lý ảnh

Thu nhận ảnh là bước đầu tiên mang tính quyết định cho quá trình XLA Ảnh đầu vào được thu nhận từ các thiết bị như camera, cảm biến hoặc máy scanner và sau đó được số hóa các tín hiệu để xử lý tiếp Việc lựa chọn thiết bị thu nhận ảnh phụ thuộc vào đặc tính của đối tượng cần xử lý, nhằm tối ưu chất lượng và hiệu suất của hệ thống Các tham số quan trọng ở bước này gồm độ phân giải, chất lượng màu, dung lượng bộ nhớ và tốc độ thu nhận của từng thiết bị, ảnh hưởng trực tiếp đến chất lượng dữ liệu và kết quả xử lý sau này.

Tiền xử lý ảnh là bước đầu tiên trong chu trình xử lý ảnh, nhằm nâng cao chất lượng ảnh trước khi tiến hành các phép xử lý phức tạp hơn trong quá trình XLA Ở bước này, ảnh được cải thiện về độ tương phản, khử nhiễu, khử bóng và khử lệch, đồng thời áp dụng các kỹ thuật lọc phù hợp để tối ưu hóa chi tiết và độ chính xác của ảnh Quá trình tiền xử lý thường được thực hiện bởi các bộ lọc và thuật toán lọc ảnh, tạo nền tảng vững chắc cho các bước xử lý tiếp theo.

Phân đoạn ảnh là bước then chốt trong XLA, nơi giai đoạn này phân tích ảnh thành các thành phần có cùng tính chất dựa trên biên hoặc các vùng liên thông Các vùng liên thông được xác định theo cùng màu, cùng mức xám hoặc các đặc trưng tương đồng khác Mục đích của phân đoạn ảnh là tạo ra một miêu tả tổng hợp về nhiều phần tử cấu thành ảnh thô, giúp nắm bắt được cấu trúc và nội dung chính của ảnh Do lượng thông tin trong ảnh rất lớn và nhiều ứng dụng chỉ cần trích xuất một vài đặc trưng, cần một quá trình để giảm thiểu lượng dữ liệu Quá trình này kết hợp phân vùng ảnh và trích xuất đặc điểm chủ yếu để tối ưu hoá thông tin đầu ra.

Sau bước phân đoạn ảnh, dữ liệu thu được thường ở dạng điểm ảnh thô, đại diện cho biên của một vùng ảnh hoặc tập hợp các điểm ảnh thuộc vùng đó Việc chuyển đổi dữ liệu thô này sang dạng phù hợp cho xử lý trên máy tính là cần thiết Câu hỏi đầu tiên là nên biểu diễn một vùng ảnh dưới dạng biên hay dưới dạng một vùng đầy đủ gồm tất cả các điểm ảnh bên trong nó Biểu diễn dạng biên phù hợp với các ứng dụng chú ý đến đặc trưng hình dạng bên ngoài của đối tượng, như góc cạnh và điểm uốn trên biên Biểu diễn dạng vùng lại thích hợp cho các ứng dụng khai thác các tính chất bên trong, như vân ảnh hoặc cấu trúc xương Sự chọn lựa cách biểu diễn chỉ là một phần của quá trình chuyển đổi dữ liệu thô sang dạng thuận tiện cho xử lý sau này Cần có một phương pháp mô tả dữ liệu đã chuyển đổi để các đặc tính quan tâm được nổi bật, thuận tiện cho các bước xử lý tiếp theo.

Nhận dạng và giải thích là bước cuối cùng trong quá trình XLA, nơi việc nhận dạng hình ảnh được thể hiện bằng cách gán nhãn cho các đối tượng đã nhận diện Trong nhận dạng chữ viết, các đối tượng cần nhận diện là các mẫu chữ; ta cần tách riêng từng mẫu chữ và gán đúng ký tự của bảng chữ cái tương ứng cho từng mẫu chữ thu được trong ảnh Phần giải thích là công đoạn gắn ý nghĩa cho tập hợp các đối tượng đã được nhận biết, giúp chuyển đổi các mẫu chữ thành văn bản có ý nghĩa và dễ đọc.

Chúng ta có thể nhận thấy rằng không phải mọi ứng dụng XLA đều bắt buộc tuân theo toàn bộ chu trình xử lý đã nêu ở trên; ví dụ, các ứng dụng chỉnh sửa ảnh nghệ thuật chỉ dừng ở bước tiền xử lý Các chức năng xử lý, đặc biệt là nhận dạng và giải thích, thường xuất hiện trong các hệ thống phân tích ảnh tự động hoặc bán tự động nhằm rút trích những thông tin quan trọng từ ảnh; điển hình cho điều này là các ứng dụng nhận dạng ký tự quang học (OCR) và nhận dạng chữ viết tay.

Thị giác máy tính là một lĩnh vực thuộc Artificial Intelligence (Trí tuệ nhân tạo) và Khoa học máy tính, nhằm trang bị cho máy tính khả năng nhìn thấy và hiểu thế giới như con người Lĩnh vực này xử lý và diễn giải hình ảnh để chuyển đổi chúng thành thông tin có ý nghĩa, giúp máy tính nhận diện đối tượng, phân tích cấu trúc và hiểu ngữ cảnh trong dữ liệu thị giác Mục tiêu là cho máy tính không chỉ nhìn thấy mà còn hiểu được nội dung và ý nghĩa của hình ảnh, từ đó đưa ra quyết định và hành động phù hợp Ứng dụng của thị giác máy tính rất rộng, bao gồm nhận diện khuôn mặt, phân tích ảnh y tế, tự động hóa công nghiệp và các hệ thống robot, đóng vai trò quan trọng trong sự tiến bộ của AI và Khoa học máy tính.

Thị giác máy tính là lĩnh vực tập trung thu nhận và xử lý ảnh kỹ thuật số, phân tích và nhận dạng hình ảnh để chuyển dữ liệu đa chiều từ thế giới thực thành thông tin số và biểu tượng ý nghĩa Đây là tổng hợp của một dải rộng các quá trình tự động và tích hợp nhằm mô phỏng nhận thức thị giác và áp dụng vào các hệ thống thực tiễn như nhận diện vật thể, phân loại ảnh và các ứng dụng thị giác máy tính khác.

Quá trình mô phỏng thị giác con người được chia thành ba giai đoạn nối tiếp, tương tự cách con người nhìn: mô phỏng mắt để thu nhận tín hiệu (khó khăn ở bước thu nhận), mô phỏng vỏ não thị giác để xử lý hình ảnh (rất khó), và mô phỏng phần còn lại của bộ não để phân tích và nhận thức (khó nhất).

2.1.2.2 Ba giai đoạn nối tiếp mô phỏng thị giác con người

Mô phỏng mắt là lĩnh vực đạt được nhiều thành công nhất trong công nghệ thị giác nhân tạo Chúng ta đã phát triển các cảm biến và vi xử lý hình ảnh có khả năng tái hiện hoặc thậm chí vượt trội hơn cách mắt người thu nhận và xử lý thông tin thị giác, từ đó nâng cao độ chính xác nhận diện và theo dõi chuyển động cho các ứng dụng như robot, xe tự hành và chăm sóc sức khỏe.

Camera có thể chụp hàng ngàn ảnh mỗi giây và nhận diện từ xa với độ chính xác cao, biến nó thành nền tảng nghiên cứu mạnh mẽ cho các ứng dụng công nghệ hình ảnh Nói cách khác, phần cứng bị giới hạn nếu thiếu phần mềm hỗ trợ, đây vẫn là thách thức lớn nhất đối với hệ thống camera hiện đại Tuy vậy, camera ngày nay rất linh hoạt và ngày càng đóng vai trò là nền tảng cho nhiều dự án nghiên cứu, từ giám sát và phân tích động cơ đến nhận diện và xử lý ảnh, mở ra cơ hội phát triển các ứng dụng AI và thị trường công nghệ cao.

Não bộ được hình thành từ con số 0 và dần lấp đầy bằng những hình ảnh, đảm nhận sự xử lý thị giác nhiều hơn bất kỳ chức năng nào khác, và mọi quá trình này bắt nguồn từ cấp độ tế bào Hàng tỷ tế bào phối hợp với nhau để nhận diện các mẫu hình, giải mã tín hiệu và chuyển hóa chúng thành thông tin có ý nghĩa cho mọi hoạt động của cơ thể.

Tổng quan các nghiên cứu trước

2.2.1 Các nghiên cứu trong nước

Nhận dạng chữ viết tay được phân thành hai lớp bài toán lớn: nhận dạng chữ viết tay trực tuyến (Online) và nhận dạng chữ viết tay ngoại tuyến (Offline) Trong nhận dạng trực tuyến, hệ thống xử lý dữ liệu khi người dùng đang viết trên thiết bị và tận dụng thông tin thời gian thực để nhận diện chữ, còn nhận dạng ngoại tuyến làm việc với hình ảnh chữ viết đã được chụp hoặc quét, đòi hỏi các bước tiền xử lý, trích xuất đặc trưng và phân tích ảnh ở chất lượng khác nhau Hai nhánh này có những đặc điểm riêng về dữ liệu, quy trình xử lý và độ phức tạp của mô hình, nhưng đều nhắm tới tăng độ chính xác và hiệu suất nhận diện chữ viết tay.

Trong nhận dạng chữ viết tay offline, dữ liệu đầu vào được cung cấp dưới dạng các ảnh được quét từ giấy tờ hoặc văn bản Ngược lại, nhận dạng chữ viết tay online thực hiện ngay khi chữ được viết trên màn hình, cho phép hệ thống nhận diện và phân tích chữ từ quá trình viết Trong hệ nhận dạng online, máy tính sẽ lưu lại các thông tin về nét chữ như thứ tự nét viết, hướng và tốc độ của từng nét, nhằm cải thiện độ chính xác và khả năng tái hiện chữ viết.

Việt Nam năm 2010 chứng kiến nhóm nghiên cứu do Huỳnh Hữu Lộc, Lưu Quốc Hải và Đinh Đức Anh Vũ dẫn đầu, thuộc Khoa Khoa học và Kỹ thuật máy tính, Trường Đại học Bách khoa Nhóm nghiên cứu này đại diện cho sự phát triển của lĩnh vực khoa học máy tính tại Việt Nam, đóng góp vào các hoạt động nghiên cứu và ứng dụng công nghệ máy tính ở trình độ đại học.

TP HCM đã ghi nhận những bước tiến đáng kể trong lĩnh vực nhận dạng chữ viết tay Hướng tiếp cận của nhóm nghiên cứu là nhận dạng dựa trên thông tin tĩnh; dựa trên nền tảng giải thuật rút trích thông tin theo chiều, nhóm đã cải tiến hầu hết các bước để đạt được độ chính xác cao hơn trong nhận dạng ký tự (khoảng 95%) và có bước tiến đáng kể trong nhận dạng từ Tuy nhiên, sản phẩm vẫn chưa nhận dạng được chữ viết tay Tiếng Việt Như vậy nhận dạng chữ viết tay, đặc biệt chữ viết tay Tiếng Việt, hiện là một hướng nghiên cứu rất được quan tâm và vẫn còn nhiều vấn đề cần được hoàn thiện.

Trong những năm gần đây, nhận dạng chữ viết tay ở Việt Nam đã thu hút sự quan tâm của nhiều nhà nghiên cứu về cả lý thuyết lẫn triển khai ứng dụng Các kết quả lý thuyết chủ yếu tập trung vào nhận dạng chữ số hoặc chữ cái tiếng Việt không dấu Chỉ một số công trình nhất định đề xuất giải pháp cụ thể cho nhận dạng chữ viết tay tiếng Việt, điển hình là nhận dạng chữ Việt online và nhận dạng chữ viết tay tiếng Việt offline.

Hiện nay, các nghiên cứu về nhận dạng chữ viết tay vẫn chỉ có thể được áp dụng trong một số phạm vi hạn chế Ví dụ, hệ thống nhận dạng chữ viết tay được triển khai chủ yếu trong xử lý biểu mẫu tự động từ các biểu mẫu viết tay như tờ khai, chứng từ và phiếu đăng ký.

2.2.2 Các nghiên cứu ngoài nước

Bakis, Raimo; Herbst, Noel M.; và Nagy, George (1968) trình bày một phương pháp phân loại thích ứng thống kê cho chữ viết tay, trong đó chữ viết được biểu diễn bằng vectơ các đặc trưng và được đưa vào cơ sở dữ liệu bằng cách học các trọng số tối ưu để giảm thiểu sai sót phân loại Phương pháp này dựa trên tối ưu hóa nhằm tối thiểu hóa nhãn sai lệch giữa dự đoán và thực tế, từ đó tăng độ chính xác nhận diện chữ viết Nghiên cứu sử dụng một bộ hình ảnh mẫu gồm 7000 ảnh chữ viết tay làm dữ liệu huấn luyện và đánh giá, cho thấy hiệu quả của việc tối ưu hóa trọng số dựa trên sai lệch nhỏ nhất Nhờ biểu diễn chữ viết tay ở dạng vectơ đặc trưng và cơ chế học trọng số tự động, hệ thống có thể cải thiện hiệu suất nhận diện và có triển vọng ứng dụng rộng rãi trong các ứng dụng OCR và nhận diện chữ viết tay.

Gắn với tập dữ liệu 30.000 bộ ký tự viết tay từ nguồn "back-room", quy mô này hiện vẫn chưa đủ lớn để đảm bảo sự đa dạng của ký tự Việc dùng quá nhiều phép đo tính năng có thể làm giảm hiệu suất nhận dạng chữ viết tay bởi vì một vài đặc trưng có hiệu quả thấp và gây nhiễu cho mô hình Do đó, cần tối ưu hóa bằng cách chọn lọc các đặc trưng mang thông tin cao và loại bỏ các phép đo thừa Đồng thời, cần phân tích các lỗi thay thế thực tế phát sinh từ quá trình thu thập dữ liệu, như biến dạng ký tự, nhiễu ảnh và sự biến đổi kích thước, để cải thiện độ chính xác của hệ thống nhận dạng chữ viết tay trong các ứng dụng thực tế.

Dimond, Tom L (1958) đã chế tạo một thiết bị thử nghiệm để đọc số viết tay, với hệ thống nhận dạng chữ viết tay dựa trên vùng Stylator Thiết bị này cho phép nhận diện chữ số thông qua các chấm định vị, tuy nhiên có hạn chế khi người dùng viết quanh các chấm theo chiều dọc bằng bút stylus; ví dụ đầu tiên cho thấy giới hạn ở hai chấm và các ví dụ cho thấy những hạn chế ở bốn chấm Để hoàn thiện ký tự, người dùng chạm stylus vào nút riêng biệt Bên cạnh đó, thảo luận còn đề cập tới phương pháp đọc chữ số viết tay bằng công nghệ quang học electrographic dựa trên các chấm hạn chế.

Md Zahangir Alom, Peherding Sidike, Mahmudul Hasan, Tark M Taha, and Vijayan K Asari (2017) Nhận dạng ký tự Bangla viết tay (HBCR) sử dụng The State- of-Art Deep Convolutional Neural Networks Mặc dù đã có những tiến bộ trong công nghệ nhận dạng đối tượng, tuy nhiên vẫn chưa thể giải quyết được triệt để do sự hiện diện của nhiều ký tự viết tay mơ hồ và chữ thảo quá mức trong chữ viết tay Bangla Ngay cả những người nhận dạng tốt nhất hiện có cũng không đem lại hiệu quả như mong đợi cho các ứng dụng thực thế và có hiệu suất thấp hơn nhiều so với những ứng dụng được phát triển cho các ký tự alpha Họ đã ứng dụng VGG Network, All

Convolution Network (All-Conv Net), Network in Network (NiN), Residual Network, FractalNet và DenseNet để cải thiện hiệu suất của HBCR Bằng cách đánh giá một cách có hệ thống hiệu suất của các mô hình DCNN trên bộ dữ liệu ký tự viết tay Bangla có sẵn công khai được gọi là CMATERdb và đạt được độ chính xác nhận dạng hiện đại khi sử dụng các mô hình DCNN Sự cải tiến như vậy lấp đầy một khoảng cách đáng kể giữa các yêu cầu thực tế và hiệu suất thực tế của các nhân vật viết tay Bangla.

Những vấn đề tồn tại cần được tiếp tục nghiên cứu

Những nghiên cứu về nhận dạng chữ viết tay trước đây phần lớn nhằm mục đích tự nghiên cứu và học hỏi công nghệ, còn thiếu sự ứng dụng thực tiễn Trí tuệ nhân tạo ra đời để phục vụ cuộc sống ngày càng nhiều hơn, giúp con người bớt phải làm việc tay chân và để máy móc đảm nhận phần lớn công việc Vì vậy nhận dạng chữ viết tay không chỉ là lĩnh vực nghiên cứu mà còn có tiềm năng ứng dụng thực tiễn lớn trong đời sống hàng ngày và các ngành như giáo dục, y tế, tài chính và quản lý hồ sơ Việc đẩy mạnh ứng dụng sẽ tối ưu hóa quy trình làm việc, nâng cao hiệu quả và giảm thiểu sai sót nhờ công nghệ AI và hệ thống nhận dạng chữ viết tay.

Trong lĩnh vực nhận diện chữ viết tay, nhiều nghiên cứu cho thấy hệ thống nhận diện thường yêu cầu sử dụng công cụ đặc thù do nhà phát triển đưa ra để có thể nhận diện chữ viết chính xác Ví dụ Dimond, Tom L (1958) cho thấy để nhận diện chữ viết tay trên phần mềm của họ, người dùng phải viết bằng bút stylus và không thể sử dụng trên nhiều chất liệu khác nhau Đồng thời, yêu cầu này làm giảm tính linh hoạt của phần mềm và khiến việc tiếp cận với nhiều người dùng gặp khó khăn.

Chưa có nghiên cứu nào về nhận diện chữ viết tay theo thời gian thực Tuy nhiên, nhận diện chữ viết tay theo thời gian thực có thể làm cho quá trình nhận diện trở nên đơn giản và ít thao tác hơn trong quá trình xử lý Khi được triển khai, công nghệ này có thể rút ngắn quy trình nhận diện và tăng hiệu quả làm việc Ngoài ra, nhận diện chữ viết tay theo thời gian thực có tiềm năng ứng dụng rộng rãi trong thực tiễn ở các lĩnh vực như y tế, giáo dục và kinh doanh.

Phương án giải quyết

Chương trình nhận diện chữ viết tay được phát triển để áp dụng vào nhập điểm tự động cho các bài thi trên giấy, tối ưu hóa quy trình nhập điểm và tích hợp vào hệ thống quản lý của trường Trước đây, khi giảng viên nhận bài thi từ sinh viên, việc nhập điểm lên hệ thống và kiểm tra lại từng bài tiêu tốn rất nhiều thời gian và công sức, dễ gây sai sót sau một thời gian làm việc Nhóm tác giả đã nghiên cứu và cho ra một hệ thống có thể tự động quét và nhận diện chữ viết tay trên các bài thi, sau đó nhập điểm vào hệ thống của trường với độ chính xác cao, giúp tăng hiệu quả xử lý, giảm sai sót và tiết kiệm thời gian cho công tác chấm thi và lưu trữ kết quả.

Chương trình cho phép lựa chọn tác vụ nhận diện thời gian thực hoặc quét trước rồi sau đó mới nhận diện thông tin và nhập vào phần mềm, mang lại sự linh hoạt cho quá trình xử lý dữ liệu Vì đây là giải pháp đặc thù dành cho việc nhập điểm cho sinh viên của trường, nhóm tác giả đã thiết kế một buồng ảnh được căn chỉnh kích thước phù hợp với mẫu giấy thi đang sử dụng, để giảng viên chỉ cần đặt tờ giấy thi của sinh viên vào buồng ảnh là chương trình có thể tự động nhận diện mã số sinh viên và điểm số mà không cần hiệu chỉnh nhiều Giải pháp này giúp các giảng viên không thành thạo công nghệ vẫn có thể dễ dàng sử dụng và nâng cao hiệu quả nhập điểm cho nhà trường.

MỤC TIÊU - PHƯƠNG PHÁP NGHIÊN CỨU

Mục tiêu nghiên cứu

Xây dựng giải pháp trí tuệ nhân tạo cho việc nhập điểm tự động cho các bài thi làm trên giấy nhằm tối ưu hóa quy trình chấm và giảm sai sót Giải pháp được thiết kế để hoạt động trên mọi loại giấy thi hiện nay bằng cách kết hợp các thuật toán xử lý ảnh số và nhận dạng ký tự từ file scan bài làm Ứng dụng công nghệ OCR và mạng lưới học sâu để đọc và trích xuất dữ liệu điểm số, mã đề và thông tin thí sinh từ tài liệu in Đảm bảo mức độ chính xác cao nhất có thể và được chấp nhận cho ứng dụng thực tiễn tại trường trong công tác nhập điểm các bài kiểm tra và bài thi cuối kỳ Kết quả là một giải pháp có tiềm năng cải thiện hiệu suất, rút ngắn thời gian nhập điểm và nâng cao độ tin cậy của dữ liệu điểm số, đồng thời dễ mở rộng cho nhiều loại đề thi và cấu trúc bài làm.

Quy trình nghiên cứu

Hình 3 1 Hình quy trình nghiên cứu

Chuẩn bị dữ liệu

Quá trình thu thập dữ liệu là bước rất quan trọng sau khi xác định mục tiêu nghiên cứu của đề tài Để nguồn dữ liệu phản ánh hiệu quả và có thể áp dụng thực tiễn, nhóm nghiên cứu đã dùng các bài thi của sinh viên làm nguồn dữ liệu chính, được chấm điểm trên giấy và tuân thủ đúng định dạng chuẩn của các kỳ thi tại trường Dữ liệu được thu thập từ các năm học 2013, 2014 và 2015 nhằm bảo đảm tính liên tục và cho phép so sánh giữa các kỳ thi.

Để sử dụng dữ liệu bài thi của sinh viên cho đề tài nghiên cứu này, cần chuyển đổi dữ liệu sang định dạng hình ảnh phù hợp để xử lý và trích xuất thông tin Ở giai đoạn đầu của quá trình tiền xử lý dữ liệu, nhóm nghiên cứu đã dùng máy in HP LaserJet Pro MFP M125A có chức năng quét để chuyển tài liệu thành file ảnh Tuy nhiên, phương án này gặp nhiều hạn chế như kết nối phức tạp, thời gian xử lý và chuyển đổi hình ảnh kéo dài, khiến tiến độ nghiên cứu bị ảnh hưởng.

Hình 3 2 Bài thi của một bạn sinh viên đã được chuyển đổi thành file ảnh

Nhận thấy những hạn chế hiện có, nhóm nghiên cứu đã thiết kế thành công một buồng ảnh sử dụng camera điện thoại kết nối trực tiếp với máy tính qua các giao thức kết nối tiêu chuẩn Thiết kế này giúp xử lý việc chuyển dữ liệu từ giấy sang ảnh số một cách tiện lợi và nhanh chóng, đồng thời đảm bảo chất lượng hình ảnh sau khi xử lý đạt chuẩn.

Hình 3 3 Buồng ảnh chuyển dữ liệu giấy sang ảnh

Sau các bước xử lý trước đó, nhóm nghiên cứu đã sử dụng một thuật toán để cắt file ảnh được chuyển đổi thành hai phần: mã số sinh viên và điểm số Việc thực hiện thao tác này sẽ giúp chú thích hình ảnh ở các bước sau và hỗ trợ quá trình nhận dạng, phân loại dữ liệu trở nên dễ dàng hơn, từ đó mang lại hiệu quả cao.

Hình 3.4 Phần mã số sinh viên và phần điểm số sau khi được cắt theo thuật toán

Nguồn dữ liệu chính từ nhóm nghiên cứu cho thấy đến thời điểm hiện tại đã thu thập được lượng dữ liệu hình ảnh tương đối đầy đủ để triển khai đề tài nghiên cứu Dữ liệu hình ảnh được thu thập từ nhiều nguồn khác nhau, đảm bảo tính đại diện và chất lượng cho các bước phân tích, thử nghiệm và đánh giá trong khuôn khổ dự án Quá trình xử lý, chuẩn hóa và lưu trữ dữ liệu được thực hiện nghiêm ngặt nhằm tối ưu hóa hiệu quả triển khai nghiên cứu và tăng khả năng tái sử dụng cho các công trình nghiên cứu tiếp theo.

- Số lượng hình ảnh mã số sinh viên viết tay khác nhau: 2340 hình;

- Số lượng hình ảnh điểm số chấm tay của giáo viên khác nhau: 764 hình

3.3.2 Chú thích ảnh bằng công cụ LabelImg

Quá trình nghiên cứu bắt đầu từ thu thập dữ liệu và chuyển đổi dữ liệu thành định dạng hình ảnh phù hợp cho các nhiệm vụ xử lý ảnh và học máy Dựa trên kiến thức nền về xử lý ảnh, nhóm nghiên cứu tiến hành chú thích ảnh cho các khu vực cần xử lý trong dữ liệu; cụ thể ở đây là khu vực sinh viên điền mã số sinh viên và khu vực giáo viên chấm điểm Để hỗ trợ công tác chú thích, nhóm đã sử dụng phần mềm LabelImg, một công cụ dán nhãn hình ảnh phổ biến giúp tạo dữ liệu được gắn nhãn một cách chính xác cho huấn luyện mô hình nhận diện.

Hình 3.5 Giao diện ứng dụng Labelmg

Phần mềm chú thích hình ảnh được thiết kế với quá trình cài đặt dễ dàng, giao diện thân thiện và khả năng chú thích trực quan, giúp người dùng thao tác nhanh chóng và hiệu quả Sau đây là các thao tác cơ bản để thực hiện việc chú thích một hình ảnh: mở ảnh, chọn công cụ chú thích, thêm chú thích bằng văn bản hoặc ký hiệu, điều chỉnh vị trí, kích thước và màu sắc của chú thích, sau đó lưu hoặc xuất kết quả Đây là giải pháp tối ưu cho các nhu cầu chú thích hình ảnh trong công việc sáng tạo hoặc chia sẻ nội dung có liên quan.

Bước 1: Click chọn : “OPEN DIR” để chọn thư mục chứa ảnh

Hình 3.6 Mở thư mục chứa ảnh cần chú thích

Bước 2: Click chọn: CHANGE “SAVE DIR” để chọn thư mục lưu file xml

Hình 3.7 Chọn thư mục lưu file xml

Bước 3: Chọn "CREATE RECTBOX" để tiến hành chú thích hình ảnh theo từng loại đối tượng; chú thích theo từng loại đối tượng riêng biệt sẽ tăng năng suất chú thích Sau khi tạo chú thích, tiến hành chọn giá trị cho chú thích đó.

Hình 3.8 Chú thích hình ảnh mã số sinh viên

Hình 3.9 Chú thích hình ảnh mã điểm số

Bước 4: Sau khi đã chú thích, nhấn Ctrl + S để tiến hành lưu lại file chú thích ở định dạng xml theo thư mục đã thiết lập ban đầu

Sau khi kết thúc quá trình chú thích hình ảnh, nhóm nghiên cứu đã thu thập được khoảng 3.100 dữ liệu hình ảnh ở định dạng XML để đưa vào kho dữ liệu, chuẩn bị cho bước xử lý tiếp theo của dự án Việc lưu trữ dữ liệu ở định dạng XML giúp đảm bảo cấu trúc metadata rõ ràng, dễ tra cứu và thuận tiện cho công tác chú thích, tiền xử lý dữ liệu và huấn luyện mô hình Kho dữ liệu hình ảnh này sẽ trở thành nền tảng cho các hoạt động phân tích sau này, tối ưu hoá hiệu suất làm việc và tăng khả năng tái sử dụng dữ liệu trong các nghiên cứu tiếp theo.

Hình 3.10 Biểu đồ phân tích dữ liệu điểm sau khi chú thích hình ảnh

Qua biểu đồ phân tích dữ liệu điểm hình ở hình 3.10, nhóm nghiên cứu nhận thấy số 5 xuất hiện với tần suất cao vượt trội so với các số khác Nguyên nhân dễ hiểu là điểm được phân bổ khi đề thi được chia nhỏ theo các mức 0.25, 0.5 và 0.75, nên tỉ lệ xuất hiện của số 5 lớn hơn các số khác trong quá trình thu thập dữ liệu.

Trong quá trình thu thập dữ liệu, các giá trị 0, 1, 3 và 9 xuất hiện với tần suất thấp Nguyên nhân là điểm số của sinh viên được phân bổ chủ yếu ở mức trung bình từ 4 đến 8 điểm, khiến các giá trị ở đầu (0, 1, 3) và cuối (9) của thang điểm hiếm gặp hơn trong mẫu dữ liệu.

Hình 3.11 Biểu đồ phân tích dữ liệu mã số sinh viên sau khi chú thích hình ảnh

Qua biểu đồ phân tích dữ liệu MSSV được thể hiện trong hình 3.11, nhóm nghiên cứu nhận thấy dữ liệu số '1' xuất hiện với tần suất cao hơn so với các chữ số khác trong quá trình thu thập Nguyên nhân dễ lý giải là dữ liệu được thu thập từ sinh viên khóa K10 – K19, nên số '1' xuất hiện trên tất cả MSSV của các bài thi đã được thu thập Đồng thời, nhóm cũng nhận thấy số '0' có tần suất xuất hiện đáng kể, do dữ liệu thi được lấy từ nhóm ngành Công nghệ thông tin với mã ngành '110', khiến số lượng số '0' cao so với các số khác.

Phần lớn dữ liệu ở mức trung bình và phân bố đều, tạo nên sự cân bằng và ổn định cho tập dữ liệu thu thập được Điều này khiến dữ liệu trở nên phù hợp với quá trình huấn luyện mô hình, giúp mô hình học tập hiệu quả và đáng tin cậy hơn.

Quá trình thu thập dữ liệu chưa đồng đều ảnh hưởng đến chất lượng huấn luyện mô hình AI; khi lượng dữ liệu thu được lớn hơn, mô hình sẽ có độ chính xác cao hơn, ngược lại với dữ liệu hạn chế sẽ khiến mô hình trở nên thiếu chính xác Điều này cho thấy khả năng hoạt động chính xác và ổn định của một mô hình phụ thuộc lớn vào chất lượng và quy mô tập dữ liệu đào tạo Mặc dù nguồn dữ liệu còn hạn chế, nhóm nghiên cứu đã tận dụng tối đa bộ dữ liệu hiện có để phát triển một mô hình hoạt động ổn định như hiện nay.

Trong quá trình nghiên cứu dữ liệu, nhóm gặp nhiều khó khăn do tác động mạnh của dịch Covid-19 lên địa bàn thành phố Hồ Chí Minh nói riêng và cả nước nói chung Tình hình này ảnh hưởng đáng kể đến khả năng tìm kiếm và tiếp cận các nguồn dữ liệu phong phú cần thiết để training các mô hình Những trở ngại về dữ liệu khiến chất lượng và tính đa dạng của tập dữ liệu bị hạn chế, làm chậm tiến độ nghiên cứu và ảnh hưởng đến hiệu suất của các mô hình được phát triển.

Tìm hiểu các thuật toán, mô hình nhận dạng ảnh số

3.4.1 Giới thiệu TensorFlow Object Detection

3.4.1.1 Giới thiệu về Object Detection

Phát hiện đối tượng là kỹ thuật của thị giác máy tính cho phép một hệ thống phần mềm nhận diện, xác định vị trí và theo dõi đối tượng từ hình ảnh hoặc video cụ thể Điểm đặc trưng của phát hiện đối tượng là xác định lớp của đối tượng (người, bàn, ghế, v.v.) và tọa độ vị trí của chúng trong khung hình; vị trí được thể hiện bằng một hộp giới hạn quanh đối tượng Hộp giới hạn có thể cho biết vị trí chính xác hay không tùy thuộc vào độ chính xác của thuật toán Khả năng xác định vị trí trong ảnh ảnh hưởng đến hiệu suất của thuật toán phát hiện Phát hiện khuôn mặt là một ví dụ điển hình của phát hiện đối tượng.

Các thuật toán phát hiện đối tượng có thể được đào tạo trước từ các mô hình có sẵn hoặc được đào tạo từ đầu Trong hầu hết các trường hợp, người ta bắt đầu với các mô hình tiền huấn luyện và sau đó tinh chỉnh chúng để phù hợp với yêu cầu của từng ứng dụng và các trường hợp sử dụng khác nhau.

Cách thức hoạt động của Object Detection:

Object Detection được thực hiện theo ba bước Đầu tiên, một mô hình hoặc thuật toán Deep Learning được huấn luyện để tạo ra một tập hợp lớn các hộp giới hạn (bounding boxes) bao phủ toàn bộ hình ảnh, nhằm xác định vị trí tiềm năng của các đối tượng Thứ hai, các hộp này được phân loại và tinh chỉnh nhãn lớp cùng với độ tự tin, đồng thời sử dụng kỹ thuật lọc như non-maximum suppression để loại bỏ hộp thừa và giảm sự trùng lặp Thứ ba, kết quả cuối cùng gồm các hộp giới hạn đã được gắn nhãn và gán độ tự tin tương ứng, sẵn sàng để dùng cho các ứng dụng nhận diện, theo dõi hoặc phân tích hình ảnh.

Hình 3.12 Thành phần bản địa hóa đối tượng

Ở bước tiếp theo, đặc trưng của từng khu vực hình chữ nhật đã phân đoạn được trích xuất để dự đoán xem khu vực đó có chứa một đối tượng hợp lệ hay không.

Hình 3.13 Thành phần phân loại đối tượng

Trong bước xử lý hậu kỳ cuối cùng, các hộp chồng chéo được kết hợp thành một hộp giới hạn duy nhất

Hình 3.14 Không triệt tiêu tối đa

3.4.1.2 Giới thiệu TensorFlow Object Detection API

TensorFlow Object Detection API là khung nguồn mở được xây dựng trên TensorFlow, giúp bạn dễ dàng xây dựng, đào tạo và triển khai các mô hình phát hiện đối tượng Trong hệ sinh thái này có sẵn nhiều mô hình đã được huấn luyện trước gọi là Model Zoo.

Nó bao gồm một bộ sưu tập các mô hình được đào tạo trước được đào tạo trên các bộ dữ liệu khác nhau như:

- Bộ dữ liệu COCO (Đối tượng phổ biến trong Ngữ cảnh)

- Bộ dữ liệu Open Image

Hiện nay có nhiều mô hình nhận diện đối tượng sẵn có, mỗi mô hình thể hiện kiến trúc riêng và mang lại mức độ chính xác khác nhau trong việc phát hiện và gắn nhãn các đối tượng Sự khác biệt về kiến trúc khiến các mô hình có độ chính xác khác nhau, đồng thời tồn tại một sự đánh đổi giữa tốc độ xử lý và độ chính xác khi đặt các hộp giới hạn (bounding boxes) Các mô hình tối ưu cho tốc độ sẽ suy diễn nhanh nhưng có thể đánh mất một phần độ chính xác so với các mô hình phức tạp hơn, trong khi các mô hình hiệu suất cao cho kết quả chính xác hơn nhưng yêu cầu thời gian tính toán nhiều hơn.

TensorFlow combines machine learning and deep learning models and algorithms It uses Python as a convenient front-end for development, while the performance-critical execution runs efficiently in optimized C++ code This architecture makes TensorFlow a versatile, scalable framework for building AI applications.

TensorFlow cho phép các nhà phát triển xây dựng một biểu đồ tính toán để triển khai các mô hình máy học Mỗi nút trong biểu đồ đại diện cho một hoạt động toán học hoặc một bước xử lý dữ liệu, và mỗi kết nối thể hiện luồng dữ liệu giữa các bước Nhờ cấu trúc biểu đồ này, người phát triển có thể bỏ qua các chi tiết thấp về cách thực thi từng hàm với các đầu vào khác nhau và tập trung vào logic tổng thể của ứng dụng máy học Việc tách rời mô hình khỏi phần thi hành chi tiết giúp tối ưu hóa hiệu suất, tái sử dụng và triển khai mô hình dễ dàng trên nhiều nền tảng TensorFlow hỗ trợ tối ưu hóa luồng dữ liệu và song song hóa, từ đó tăng tốc đào tạo và suy diễn của mô hình.

Vào năm 2015, nhóm nghiên cứu Deep Learning tại Google Brain đã phát triển TensorFlow để phục vụ cho mục đích sử dụng nội bộ của Google Đây là một thư viện phần mềm nguồn mở được dùng để thực hiện một số nhiệm vụ quan trọng trong quá trình nghiên cứu và triển khai các mô hình học sâu.

TensorFlow hiện là một trong những thư viện phần mềm phổ biến nhất trong lĩnh vực Deep Learning Nhu cầu ứng dụng Deep Learning trong thực tế đã đưa TensorFlow lên vị thế hàng đầu nhờ khả năng xử lý mạnh mẽ và cộng đồng phát triển rộng lớn Là một thư viện nguồn mở cho Deep Learning và Machine Learning, TensorFlow đóng vai trò quan trọng trong nhiều ứng dụng từ xử lý văn bản, nhận dạng hình ảnh, tìm kiếm bằng giọng nói và nhiều lĩnh vực khác Ví dụ, DeepFace, hệ thống nhận dạng hình ảnh của Facebook, đã sử dụng TensorFlow để nhận dạng hình ảnh; Siri của Apple cũng dùng TensorFlow cho nhận dạng giọng nói Nhiều ứng dụng của Google cũng khai thác TensorFlow để cải thiện hiệu suất và trải nghiệm người dùng.

Một vài Model Zoo của TensorFlow Object Detection API:

Hình 3.15 Mô hình khác nhau có sẵn trong Model Zoo Tensorflow 2

Nguồn: TensorFlow 2 Detection Model Zoo, 2021

Cột Speed cho thấy tốc độ thực thi của từng mạng Khi thông số ở cột này càng lớn, mạng sẽ chạy chậm; ngược lại, khi thông số càng nhỏ, mạng sẽ chạy nhanh Tuy nhiên, tốc độ càng cao đồng nghĩa với độ chính xác càng thấp, nên có sự đánh đổi giữa hiệu suất và độ chính xác Tùy thuộc vào yêu cầu của dự án, ta có thể chọn các mạng khác nhau để phù hợp với mục tiêu về tốc độ và độ chính xác.

Còn cột COCO mAP (mean average precision) là sản phẩm của độ chính xác và thu hồi khi phát hiện các hộp giới hạn Đó là một biện pháp kết hợp tốt về mức độ nhạy cảm của mạng đối với các đối tượng quan tâm và mức độ tránh báo động sai Điểm mAP càng cao, mạng càng chính xác nhưng điều đó đi kèm với việc tốc độ thực hiện của chương trình sẽ bị chậm đi

3.4.2 Giới thiệu về Single Shot Multibox Detector (SSD)

3.4.2.1 Giới thiệu chung về SSD

Hình 3.16 Cách thức phân chia feature map để nhận diện các hình ảnh với những kích thước khác nhau

SSD (Single Shot MultiBox Detector) nhận một ảnh duy nhất làm đầu vào và dùng các ground truth boxes làm tham chiếu vị trí cho các bounding boxes trong quá trình huấn luyện Trong giai đoạn phát hiện, trên mỗi feature map ta đánh giá một tập hợp default boxes với các tỉ lệ cạnh (aspect ratio) khác nhau trên các scale của bản đồ đặc trưng (ví dụ 8x8 và 4x4 như minh họa) Với mỗi default box, mô hình dự báo một phân phối xác suất cho các lớp C (bao gồm các class và nền/background) Trong huấn luyện, bước đầu là ghép các default boxes với ground truth boxes sao cho localization loss (thường dùng hàm Smooth L1) được tối thiểu, sau đó tối ưu hóa sai số của nhãn dự báo cho mỗi vật thể được phát hiện thông qua confidence loss (thường dùng softmax).

The loss function in object detection differs from that used for image classification because it adds a localization loss that measures how far the predicted bounding boxes are from the ground truth boxes This combination of classification and localization losses is the core principle behind SSD (Single Shot Multibox Detector), enabling the model to simultaneously classify objects and predict precise bounding-box coordinates in a single pass.

Hình 3.17 Sơ đồ kiến trúc của mạng SSD

SSD dựa trên một tiến trình lan truyền thuận của một kiến trúc chuẩn (ví dụ như VGG16) để tạo ra một khối feature map đầu ra 3 chiều ở giai đoạn sớm Chúng ta gọi kiến trúc mạng này là base network, tính từ input hình ảnh đến Conv7 trong sơ đồ Sau đó, chúng ta bổ sung các lớp phía sau base network để thực hiện nhận diện vật thể như phần Extra Feature Layers trong sơ đồ Các lớp này được diễn giải đơn giản như các tầng bổ sung cho mạng, giúp nhận diện vật thể hiệu quả ở nhiều tỉ lệ và độ chi tiết khác nhau.

Các layer của mô hình SSD:

Input Layer: Nhận input đầu vào là các bức ảnh có kích thước (width x height x channels) = 300 x 300 x 3 đối với kiến trúc SSD300 hoặc 500 x 500 x 3 đối với kiến trúc SSD500

Training model

3.5.1 Thông tin về model SSD ResNet50 V1 FPN 640x640 (RetinaNet50) 3.5.1.1 Trường hợp sử du ̣ng và High-Level Description

Mô hình ssd_resnet50_v1_fpn_coco là kiến trúc phát hiện đối tượng SSD kết hợp với FPN dựa trên mạng ResNet-50 Mẫu được huấn luyện từ tập dữ liệu COCO (Common Objects in Context) với kích thước ảnh huấn luyện chuẩn là 640x640.

Hình 3.24 Model SSD ResNet50 V1 FPN 604x640

Nguồn: TensorFlow 2 Detection Model Zoo, 2021

3.5.1.2 Mô tả chi tiết thông số kỹ thuâ ̣t:

Bảng 3.1 Bảng mô tả thông số kỹ thuật

Chỉ số chính Giá tri ̣

Nguồn: TensorFlow 2 Detection Model Zoo, 2021

Thông tin dữ liệu đầu vào gồm hình ảnh 3 kênh có kích thước thay đổi và mô hình KHÔNG hỗ trợ chia lô; Tensor đầu vào được định dạng là tf.uint8tensor ở hình dạng [1, height, width, 3] với các giá trị pixel nằm trong khoảng [0, 255].

- num_detections: một tf.inttensor chỉ có một giá trị, số lượng phát hiện [N]

- detection_boxes: A tf.float32tensor hình dạng [N, 4] chứa bounding tọa hộp theo thứ tự sau: [ymin, xmin, ymax, xmax]

- detection_classes: một tf.inttensor của hình dạng [N]chứa chỉ mục lớp phát hiện từ tệp nhãn

- detection_scores: một tf.float32tensor của hình dạng [N]chứa các điểm phát hiện

raw_detection_boxes là một tf.float32tensor có hình dạng [1, M, 4], chứa các hộp phát hiện được giải mã và chưa trải qua quá trình loại bỏ trùng lặp (Non-Maximum Suppression - NMS) M tượng trưng cho số lượng hộp phát hiện thô cho mỗi ảnh trong batch, và mỗi hộp được biểu diễn ở định dạng [x_min, y_min, x_max, y_max].

- raw_detection_scores: một tf.float32tensor của hình dạng [1, M, 90]và chứa các bản ghi điểm lớp cho các hộp phát hiện thô Mlà số lần phát hiện thô

- detection_anchor_indices: một tf.float32 hình dạng tensor [N] và chứa các chỉ số neo của các phát hiện sau NMS

Detection_multiclass_scores is a tf.float32 tensor with shape [1, N, 90] that holds the class probability distribution for each detected bounding box in an image, including the background class These scores represent the likelihood across 90 classes (including background) for every box, enabling downstream decision making such as ranking, thresholding, and label assignment in object detection pipelines The dimensions [1, N, 90] map to batch size 1, N detected boxes, and 90 class probabilities, supporting efficient post-processing steps like non-maximum suppression.

Trong quá trình nghiên cứu, nhóm tác giả đã phân tích hai mô hình SSD là ResNet50 V1 FPN 640x640 (RetinaNet50) và SSD MobileNet V2 FPNLite 320x320 Kết quả cho thấy MobileNet cho tốc độ xử lý realtime nhanh nhưng độ chính xác không cao, trong khi ResNet50 cho kết quả có độ chính xác cao hơn nhưng tốc độ xử lý chậm hơn Vì vậy, nhóm quyết định chọn SSD ResNet50 V1 FPN 640x640 (RetinaNet50) để phù hợp với yêu cầu của đề tài Theo đề bài, một chương trình nhập điểm đòi hỏi độ chính xác từ 99% đến 100% để đảm bảo.

Dưới dây là thông số so sánh giữa 2 model:

Hình 3.25 So sánh thông số giữa SSD ResNet50 V1 FPN 640x640 (RetinaNet50) với SSD MobileNet V2 FPNLite 320x320

Nguồn: TensorFlow 2 Detection Model Zoo, 2021

Trong machine learning, hai vấn đề quan trọng liên quan đến việc huấn luyện một mô hình là underfitting và overfitting Mô hình bị underfitting cho kết quả kém trên cả tập dữ liệu dùng để huấn luyện lẫn dữ liệu thực tế, trong khi mô hình bị overfitting cho kết quả rất tốt trên tập dữ liệu huấn luyện nhưng lại kém khi áp dụng vào dữ liệu thực tế.

Trong quá trình huấn luyện mô hình, việc biết chính xác hiệu suất của mô hình trên dữ liệu thực tế khi chưa có một tập kiểm thử riêng biệt là rất khó, vì không thể xác định mô hình đã học đủ hay còn gặp vấn đề như underfitting hoặc overfitting nếu chỉ dựa vào dữ liệu huấn luyện Giải pháp là thiết lập một tập dữ liệu kiểm thử (test set) độc lập với tập dữ liệu huấn luyện (train set) để đánh giá và ước lượng hiệu quả của mô hình, từ đó có cơ sở điều chỉnh tham số và chiến lược huấn luyện nhằm cải thiện khả năng tổng quát hóa và hiệu suất trên dữ liệu thực tế.

Trong phạm vi đề tài, nhóm nghiên cứu đã tiến hành chia các tập dữ liệu chuẩn bị trước theo số lượng và tỉ lệ được mô tả trong bảng sau, nhằm đảm bảo sự đại diện và tính khách quan cho các phân tích tiếp theo Quá trình phân chia này giúp so sánh hiệu quả giữa các phương pháp xử lý dữ liệu và cung cấp nền tảng cho kết quả được thể hiện dựa trên các tỉ lệ phân bổ đã nêu.

Bảng 3.2 Bảng thống kê số lượng hình ảnh trong tập train và tập test

Tập dữ liệu Mã số sinh viên Điểm

Số lượng ảnh tập train 1950 629

Số lượng ảnh tập test 380 135

Tỷ lệ ảnh tập test 16% 18%

Trong mỗi bộ dữ liệu, số lượng đối tượng thuộc mỗi lớp được phân tách rõ ràng giữa hai tập train và test cho cả hai loại dữ liệu: mã số sinh viên và điểm số Các bảng số liệu đính kèm dưới đây trình bày cụ thể các giá trị này, giúp người đọc nắm được phân bổ lớp và sự cân bằng giữa train và test.

Bảng 3.3 trình bày thống kê số lượng đối tượng có trong tập train và tập test của bộ dữ liệu mã số sinh viên Bảng liệt kê từng lớp (Class) và hai cột số lượng đối tượng tương ứng cho tập train và tập test Thông tin này cho thấy phân bổ dữ liệu giữa hai tập theo từng lớp, giúp đánh giá sự cân bằng dữ liệu và ảnh hưởng của phân chia train/test đến quá trình huấn luyện và đánh giá mô hình nhận diện mã số sinh viên Việc nắm rõ số lượng đối tượng ở mỗi tập hỗ trợ tối ưu hóa tiền xử lý dữ liệu, điều chỉnh tham số và lựa chọn kỹ thuật phân chia dữ liệu phù hợp với mục tiêu dự án Do đó, bảng 3.3 là tham chiếu quan trọng cho phân tích dữ liệu và trực quan hóa sự phân bổ của dữ liệu lớp trong bộ dữ liệu.

Bảng 3.4 Bảng thống kê số lượng object có trong tập train và test của bộ dữ liệu điểm

Class Số lượng object có trong tập train Số lượng object có trong tập test

Sau khi hoàn tất việc phân chia các tập dữ liệu, nhóm nghiên cứu tiến hành thực thi đoạn mã nén dữ liệu nhằm tối ưu dung lượng lưu trữ và tăng tốc độ xử lý Việc nén dữ liệu giúp chuẩn bị cho quá trình training ở bước kế tiếp, đảm bảo dữ liệu sẵn sàng cho quá trình huấn luyện hiệu quả.

TRAIN_PATH = os.path.join('Tensorflow', 'workspace', 'images', 'train') TEST_PATH = os.path.join('Tensorflow', 'workspace', 'images', 'test')

ARCHIVE_PATH = os.path.join('Tensorflow', 'workspace', 'images', 'archive.tar.gz')

!tar -czf {ARCHIVE_PATH} {TRAIN_PATH} {TEST_PATH}

3.5.2.2 Cài đặt, cấu hình và training

Leveraging AI, machine learning, and deep learning, Google Colab is a powerful, beginner-friendly platform that helps developers build, train, and experiment with models more easily It provides hosted Jupyter notebooks, access to GPUs and TPUs, pre-installed ML libraries, and real-time collaboration, making it an ideal environment for rapid prototyping, learning, and sharing AI projects.

Collaboratory, hay Google Colab, là một sản phẩm từ Google Research cho phép chạy các dòng code Python ngay trong trình duyệt Nó đặc biệt phù hợp cho phân tích dữ liệu và học máy, vì người dùng có thể làm việc mà không cần cài đặt hay cấu hình máy tính Colab cho phép sử dụng tài nguyên tính toán do Google cung cấp, bao gồm CPU hiệu suất cao, GPU và TPU, giúp tăng tốc xử lý dữ liệu và huấn luyện mô hình ngay trên trình duyệt.

Trong quá trình huấn luyện mô hình, nhóm nghiên cứu đã tận dụng hoàn toàn Google Colab để tăng tốc đào tạo và khắc phục thách thức thiếu thiết bị máy tính có hiệu năng cao phục vụ cho quá trình huấn luyện.

Cài đặt pre-trained model

Như đã đề cập ở các phần trước, TensorFlow Object Detection API cung cấp một tập hợp các mô hình tiền huấn luyện (pre-trained models) giúp việc xây dựng, huấn luyện và triển khai các mô hình phát hiện vật thể trở nên dễ dàng, được gọi là Model Zoo.

Xây dựng ứng dụng

Hình 3.26 Phát thảo giao diện ứng dụng

Hình 3.27 Thiết kế giao diện ứng dụng

Giao diện ứng dụng được xây dựng một cách cơ bản nhất với một số tiêu chí được thống nhất và đặt ra như sau:

- Giao diện tối ưu được không gian làm việc và xử lý dữ liệu

- Đảm bảo các chức năng được thể hiện một cách rõ ràng và dễ tương tác

- Các nút chức năng điều hướng phải thuận tiện trong quá trình thao tác

- Các file hiển thị hình ảnh phải trực quan và có tính liên kết với nhau

Các dữ liệu đầu vào và đầu ra được trình bày dưới dạng bảng, nhằm tạo điều kiện thuận lợi cho quá trình theo dõi và thực thi, đồng thời giúp kiểm soát lỗi phát sinh trong quá trình vận hành.

3.6.2 Các chức năng của ứng dụng Ứng dụng được xây dựng với mục đích chính là nhận diện mã số sinh viên và điểm số từ bài thi, kiểm tra của sinh viên Từ mục đích ngày nhóm nghiên cứu đã xây dựng ứng dụng với các tính năng nổi bật sau đây:

Nhận diện hình ảnh cho bài thi là công cụ cho phép nhận diện một bài kiểm tra của sinh viên đã được chụp trước đó Chức năng này giúp người dùng kiểm tra và hình dung cách hoạt động của hệ thống nhận diện, từ đó đánh giá độ chuẩn xác và tốc độ xử lý của bài thi được nhận diện Ứng dụng nhận diện hình ảnh trong quản lý bài thi giúp tối ưu quy trình chấm bài và nâng cao hiệu quả công việc.

Nhận diện nhiều hình ảnh cho phép các hình ảnh trong thư mục được chọn tự động nhận diện và trích xuất mã số sinh viên cùng với điểm số liên quan Kết quả nhận diện sẽ được lưu vào bảng ở phía bên phải, giúp người dùng xem lại và kiểm tra lại bất cứ khi nào cần thiết.

Nhận diện thời gian thực cho phép ứng dụng hoạt động như một máy scan hình ảnh bài thi; ảnh bài thi được hiển thị trực tiếp trên màn hình ứng dụng thông qua nguồn hình ảnh từ buồng ảnh.

Người dùng chỉ cần nhấn phím A hoặc a để nhận diện và lưu hình ảnh hiện tại vào máy, giúp quá trình nhập điểm diễn ra nhanh chóng và linh hoạt hơn Tính năng này tăng tốc độ xử lý hình ảnh, tối ưu hóa việc lưu trữ dữ liệu và nâng cao hiệu quả nhập điểm, mang lại trải nghiệm làm việc mượt mà cho người dùng.

Lưu kết quả nhận diện mới vào tệp Excel: sau khi hoàn tất quá trình nhận diện điểm và mã số sinh viên, người dùng có thể xuất dữ liệu sang Excel để quản lý thông tin dễ dàng và hiệu quả hơn.

Quá trình nhập điểm cho sinh viên được thực hiện dựa trên bảng điểm có sẵn và thông tin nhận diện Kết quả nhận diện mã số sinh viên sẽ được thêm vào bảng điểm theo mẫu trước thông tin sinh viên Phần mềm duyệt từng mã số sinh viên trong bảng điểm và đối chiếu với danh sách mã số đã nhận diện được; khi khớp, điểm của sinh viên đó sẽ được nhập vào vị trí tương ứng với dữ liệu đã nhận diện.

KẾT QUẢ ĐẠT ĐƯỢC

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

TRÍCH ĐOẠN

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