CHƯƠNG 1. TỔNG QUAN 1. Mục tiêu đề tài Mỗi năm, sau khi có kết quả trúng tuyển đại học, có rất nhiều bạn học sinh từ các tỉnh thành trên cả nước đổ về đăng ký thủ tục nhập học tại trường Đại học Công nghiệp TP. Các bạn sẽ làm thủ tục đăng ký nhập học trong đó bao gồm việc điền thông tin vào phiếu đăng ký nhập học, sau khi đăng ký xong các bạn sẽ nộp lại các phiếu đã điền và nhiệm vụ của các phòng ban tuyển sinh là phải nhập thông tin của các bạn vào hệ thống lưu trữ trên máy tính của trường để quản lý.
Nhiệm vụ tưởng chừng như đơn giản nhưng tốn rất nhiều thời gian, nhân lực để hoàn thành bởi phải giải quyết một số lượng lớn lên đến hàng nghìn mẫu đơn. Trong quá trình xử lý rất nhiều mẫu đơn sẽ xuất hiện những sai sót như việc nhập sai những thông tin quan trọng của sinh viên như số chứng minh của sinh viên, họ tên, số điện thoại, … Bài toán đặt ra, làm thế nào để máy tính có thể tự động nhập các thông tin của sinh viên với số lượng lớn mà thời gian giải quyết, nhân lực là ít nhất với kết quả chính xác nhất. Ảnh giới thiệu 1 Trương Minh Phụng – Nguyễn Đăng Quang Lớp DHKHMT13A Khóa tốt nghiệp chuyên ngành Khoa Học Máy Tính Hình trên mô tả thông tin của một bản tự khai khi đăng ký nhập học. Nhiệm vụ được đặt ra là nhập các thông được ghi trong mẫu vào máy tính để quản tính.
Ta muốn lấy thông tin họ tên sinh viên, tên ngành đăng ký học, số CMND, số điện thoại để nhập vào hệ thống máy tính.Với con người thì nhiệm vụ này rất đơn giản, nhìn vào mẫu đơn ta có thể xác định được đâu là vị trí thông tin cần lấy trên mẫu đơn và trong vị trí đã được xác định đó có những từ gì. Nhưng đó là với con người, liệu có thể viết được một chương trình máy tính có thể tự động nhận đầu vào là hình ảnh mẫu đơn nhập học và tự động trích xuất các thông tin có trong đó. Mục tiêu nghiên cứu của đề tài sẽ đưa ra cách để thực hiện điều đó. Phương pháp thực hiện đề tài Đề tài sẽ tập trung vào các nội dung chính sau: ➢ Kiến thức nền tảng về AI, ML, DL, thị giác máy tính ➢ Kiến thức nền tảng về object detection (nhận dạng vật thể) và optical character recognition (nhận dạng ký tự quang học) ➢ Kiến thức nền tảng về mô hình YOLO, cụ thể đề tài sử dụng mô hình YOLOv5 ➢ Kiến thức nền tảng về CRNN 2 Trương Minh Phụng – Nguyễn Đăng Quang Lớp DHKHMT13A Khóa tốt nghiệp chuyên ngành Khoa Học Máy Tính CHƯƠNG 2.
Khái niệm Computer vision (thị giác máy tính) thường được viết tắt là CV là một lĩnh vực trong artificial intelligence và machine learning (trí tuệ nhân tạo và học máy) nhằm giúp máy tính có được khả năng nhìn và hiểu giống như con người Ở một mức độ trừu tượng hơn, mục tiêu của thị giác máy tính là sử dụng những hình ảnh đã học được và đưa những suy luận trên những tấm ảnh chưa nhìn thấy Thị giác máy tính sử dụng các phương pháp, các thuật toán có trong artificial intelligence và machine learning (trí tuệ nhân tạo và học máy) Hình 2. Object detection Object detection (phát hiện đối tượng) đã và đang thu hút được nhiều sự chú ý trong những năm gần đây được ứng dụng rộng rãi vào các lĩnh vực đời sống hằng ngày của chúng ta. Cùng với những phát triển sự đột phá trong công nghệ máy tính cũng như 3 Trương Minh Phụng – Nguyễn Đăng Quang Lớp DHKHMT13A Khóa tốt nghiệp chuyên ngành Khoa Học Máy Tính sự ra đời của các thuật toán mạnh mẽ, object detection ngày càng được phát triển và ứng dụng sâu rộng vào trong cuộc sống. Hầu hết mô hình object detection sử dụng các mạng deep learning (học sâu) như một backbone (xương sống) để trích xuất các đặc trưng có trong ảnh, làm đầu vào cho các quá trình xử lý phía sau.
Khái niệm về mạng backbone Mạng backbone được xem như một bộ feature extractor (bộ trích xuất đặc trưng) cho các nhiệm vụ sử dụng object detection. Mạng backbone nhận các tấm ảnh làm đầu vào, đầu ra là tấm ảnh được trích xuất các đặc trưng quan trọng tương ứng với ảnh đầu vào. Việc chọn mạng backbone sử dụng cho các nhiệm vụ object detection có ý nghĩa rất quan trọng. Mạng backbone tốt thì các đặc trưng được trích xuất trong ảnh ra sẽ tốt, các bước xử lý ở phía sau sẽ chính xác từ đó toàn bộ mô hình sẽ hoạt động với độ chính xác cao.
Khái niệm về object detection Object detection là một lĩnh vực công nghệ máy tính áp dụng thị giác máy tính và xử lý ảnh để nhận dạng các đối tượng có trong ảnh (như con người, xe hơi hoặc máy bay) và các video. Object detection bao gồm hai loại: two-stage detector (nhận dạng hai giai đoạn) và one-stage detetor (nhận dạng một giai đoạn) 2. Two-stage detector (nhận dạng hai giai đoạn) Hình 2. Kiến trúc cơ bản của two-stage detector 4 Trương Minh Phụng – Nguyễn Đăng Quang Lớp DHKHMT13A Khóa tốt nghiệp chuyên ngành Khoa Học Máy Tính Cách hoạt động Bước 1: Backbone Bức ảnh đầu vào sẽ đi qua một mạng deep learning (backbone), ở bước này mô hình sẽ qua các layer convolution và layer pooling có nhiệm vụ trích xuất và chỉ giữ lại những đặc trưng quan trọng như các cạnh của vật thể trong ảnh.
Ảnh nhận được còn gọi là feature map. Các layer đầu tiên sẽ trích xuất những thông tin về hình dạng, các cạnh của vật thể có trong ảnh. Càng về các layer sau, mức độ trừu tượng được tăng lên, mạng sẽ giữ lại các đặc trưng phức tạp và quan trọng hơn. Đầu ra sau khi qua backbone là một tấm ảnh có kích thước nhỏ hơn ảnh gốc với các đặc trưng quan trọng nhất được giữ lại.
Mục đích: ảnh sau khi qua backbone có kích thước nhỏ hơn kích thước ban đầu đồng nghĩa với việc số lượng các pixel (điểm ảnh) trong ảnh sẽ nhỏ hơn từ đó chi phí tính toán và thời gian thực thi trong các giai đoạn sau sẽ giảm đi so với thao táo trực tiếp trên ảnh gốc. Bước 2: Proposal generation Sau khi ảnh qua backbone, tiếp theo mô hình sẽ phát sinh một tập các vùng ROI (region of interest) bằng cách sử dụng thuật toán selective search hoặc sử dụng mạng RPN (regional proposal network). Các vùng đề xuất được phát sinh trên trên ảnh này sẽ được sử dụng cho bước tiếp theo và các thuật toán nhận dạng sẽ được áp dụng trên những vùng đề xuất tìm được Tùy theo thuật toán nhận dạng đối tượng được chọn mà thuật toán được sử dụng để chọn các vùng ROI sẽ khác nhau. Trong R-CNN, thuật toán selective search sẽ được chọn để phát sinh ra các vùng đề xuất trong ảnh.
Với một tấm ảnh, thuật toán selective search có thể phát sinh ra 2000 vùng đề xuất Trong Faster R-CNN thuật toán selective search sẽ được thay bằng mạng học sâu RPN (region proposal network). Mạng RPN sẽ tự động đưa ra dự đoán về các vùng được chọn với đa dạng các kích thước và tỉ lệ khác nhau. Bước 3: Rol Pooling 5 Trương Minh Phụng – Nguyễn Đăng Quang Lớp DHKHMT13A Khóa tốt nghiệp chuyên ngành Khoa Học Máy Tính Sau khi có các vùng được đề xuất, các vùng này sẽ đi qua feature map (nhận được ở bước 1). Ở bước này sẽ lấy ra các vùng tương ứng với các vùng chứa pixel trên feature map.
Sau đó các một bộ phân loại sẽ thực hiện phân loại trên các vùng được đề xuất và trả về vị trí, nhóm mà vật thể thuộc về. Các mô hình thuật toán tiêu biểu trong two-stage detector có thể kể đến: R-CNN, Fast R-CNN, Fater R-CNN 6 Trương Minh Phụng – Nguyễn Đăng Quang Lớp DHKHMT13A Khóa tốt nghiệp chuyên ngành Khoa Học Máy Tính 2. One-stage detector (nhận dạng một giai đoạn) Không giống với two-stage detector, one-stage detector bỏ qua bước proposal generation để phát sinh các vùng được đề xuất. Thay vào đó trực tiếp dự đoán ra vùng có thể chứa đối tượng trong ảnh.
Kiến trúc cơ bản của one-stage detector 2. So sánh về two-stage detector và one-stage detector Tiêu chí đánh One-stage detector Two-stage detector giá Thời gian thực Bỏ qua bước proposal generation Thực hiện bước proposal hiện nên thời gian thực thi rất nhanh generation để tạo ra các vùng có thể chứa vật thể nên thời gian thực gian thực thi sẽ lâu hơn Độ chính xác Độ chính xác sẽ không cao Độ chính xác cao Bảng 2. So sánh two-stage detector và one-stage detector 7 Trương Minh Phụng – Nguyễn Đăng Quang Lớp DHKHMT13A Khóa tốt nghiệp chuyên ngành Khoa Học Máy Tính 2. Optical Character Recognition (OCR) 2.
Định nghĩa OCR là viết tắt của từ Optical Character Recognition. OCR là một công nghệ được sử dụng rộng rãi để nhận diện và chuyển đổi các đoạn văn bản có trong hình ảnh thành chuỗi các văn bản mà con người có thể đọc và lưu trữ được. Ưu nhược điểm OCR Trước khi công nghệ OCR ra đời, việc nhập thủ công dữ liệu từ các hình ảnh rất khó khăn. Các khó khăn có thể kể đến như việc phải gõ lại một đoạn văn bản với bộ dài hàng trăm trang từ các tập tài liệu, các cuốn sách dày cộp, … Việc này tốn rất nhiều thời gian, công sức, độ chính xác không được đảm bảo.
Công nghệ OCR ra đời đã khắc phục được những khó khăn kể trên, các ứng dụng có thể kể đến như: ➢ Trợ giúp người mắc bệnh mù chữ. ➢ Tìm kiếm và thực hành dữ liệu. ➢ Cập nhật dữ liệu nhanh chóng. Tuy nhiên bên cạnh những ưu nhược điểm nói trên, OCR vẫn còn tồn tại một số nhược điểm như: ➢ Độ chính xác chưa có khả năng 100% như con người chỉ vào khoảng 80 – 90% áp dụng cho các hình ảnh rõ nét.
➢ Đối với các hình ảnh có màu nền và màu chữ tương đồng thì OCR rất khó khăn trong việc nhận dạng. ➢ Dữ liệu để cho các mô hình OCR là rất lớn để đạt được độ chính xác cao. ➢ Với các ngôn ngữ ngày càng phòng phú và đa dạng, thì OCR không thể đáp ứng hoàn toàn với nhu cầu hiện nay. Khái niệm mạng YOLO YOLO là viết tắt của từ “You look only once” nghĩa là chỉ cần một lần là có thể phát hiện ra vật thể có trong ảnh.
YOLO là thuật toán thuộc one-stage detector, như đã đề cập ở trên thì thuật toán thuộc one-stage detector sẽ có đạt được tốc độ thực thi gần như real time.