Microsoft Word LV THS TRANG 3 docx i LỜI CAM ĐOAN Sau quá trình học tập tại Trƣờng Đại học Quy Nhơn, với những kiến thức lý thuyết và thực hành đã tích lũy đƣợc, với việc vận dụng các kiến thức vào th[.]
Trang 1LỜI CAM ĐOAN
Sau quá trình học tập tại Trường Đại học Quy Nhơn, với những kiến thức lý thuyết và thực hành đã tích lũy được, với việc vận dụng các kiến thức vào thực tế, tự nghiên cứu các tài liệu, các công trình nghiên cứu, đồng thời
có sự phân tích, tổng hợp, đúc kết và phát triển để hoàn thành luận văn thạc sĩ của mình, Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Tác giả
Lê Minh Nhật
Trang 2LỜI CẢM ƠN
Để hoàn thành đề tài luận văn thạc sĩ, tôi xin tỏ lòng biết ơn sâu sắc đối với các Thầy, Cô của Trường Đại học Quy Nhơn, đặc biệt là các Thầy, Cô Khoa Công nghệ Thông tin đã tận tình truyền đạt những kiến thức quý báu cũng như tạo mọi điều kiện thuận lợi nhất cho tôi trong suốt quá trình học tập, nghiên cứu và cho đến khi thực hiện đề tài luận văn
Đặc biệt, tôi xin gửi đến giáo viên hướng dẫn TS Lê Xuân Vinh đã tận tình hướng dẫn, giúp đỡ tôi hoàn thành luận văn này với lời cảm ơn sâu sắc nhất
Cuối cùng, tôi xin chân thành cảm ơn đến các anh, chị em và các bạn đồng nghiệp đã hỗ trợ cho tôi rất nhiều trong suốt quá trình học tập, nghiên cứu và thực hiện đề tài luận văn thạc sĩ một cách hoàn chỉnh
Quy Nhơn, ngày tháng năm 2022
Học viên thực hiện
Trang 3MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC ii
DANH MỤC CÁC TỪ VIẾT TẮT v
DANH MỤC CÁC BẢNG vi
DANH MỤC CÁC HÌNH vii
LỜI MỞ ĐẦU 1
1.Lý do chọn đề tài 1
2 Tổng quan về tình hình nghiên cứu đề tài 1
3 Mục đích và nhiệm vụ nghiên cứu 2
4 Đối tượng và phạm vi nghiên cứu 2
5 Phương pháp nghiên cứu 2
6 Cấu trúc của luận văn 2
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 4
1.1 GIỚI THIỆU TỔNG QUAN 4
1.2 THỊ GIÁC MÁY TÍNH (COMPUTER VISION) 5
1.3 PHÁT HIỆN ĐỐI TƯỢNG (OBJECT DETECTION) 6
1.4 MẠNG NƠ-RON 9
1.5 MẠNG NƠ-RON TÍCH CHẬP (CONVOLUTIONAL NEURAL NETWORK) 12
1.5.1 Tổng quát 12
1.5.2 Lớp tích chập (Convolutional Layer) 13
1.5.3 Lớp tổng hợp (Pooling layer) 14
1.5.4 Lớp kết nối đầy đủ (Fully Connected Layer) 14
1.5.5 Hàm Softmax 15
Trang 41.5.6 Lớp đầu ra 16
1.6 NHẬN DIỆN KÝ TỰ QUANG HỌC 16
1.6.1 Khái niệm 16
1.6.2 Cơ chế hoạt động 17
1.6.3 Nhận diện text (Text Recognition) 19
1.6.4 Tái cấu trúc (Restructing) 20
KẾT LUẬN CHƯƠNG 1 20
CHƯƠNG 2: THUẬT TOÁN PHÁT HIỆN ĐỐI TƯỢNG, CÔNG CỤ TESSRACT OCR 21
2.1 THUẬT TOÁN PHÁT HIỆN ĐỐI TƯỢNG 21
2.1.1 Mô hình RetinaNet 21
2.1.2 Mô hình YOLO 23
2.2 CÔNG CỤ TESSERACT OCR 30
2.2.1 Khái quát 30
2.2.2 Cơ chế hoạt động 30
KẾT LUẬN CHƯƠNG 2 32
CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG NHẬN DIỆN BIỂN SỐ XE 33
3.1 THU THẬP VÀ PHÂN CHIA DỮ LIỆU 34
3.1.1 Thu thập dữ liệu 34
3.1.2 Phân chia dữ liệu 35
3.2 HUẤN LUYỆN MÔ HÌNH 36
3.2.1 Đánh giá mô hình huấn luyện 36
3.2.2 Kết quả mô hình huấn luyện 39
3.3 CHUYỂN ĐỔI WEIGHT SANG TENSORFLOW 40
3.4 NHẬN DIỆN KÝ TỰ BIỂN SỐ XE 41
3.5 HIỂN THỊ THÔNG TIN 43
Trang 5KẾT LUẬN CHƯƠNG 3 44 KẾT LUẬN CHUNG 45 DANH MỤC TÀI LIỆU THAM KHẢO 47 QUYẾT ĐỊNH GIAO ĐỀ TÀI (bản sao)
Trang 6DANH MỤC CÁC TỪ VIẾT TẮT
Convolution Neural Network
Recurrent Neural Network
Connectionist temporal classification
Support Vector Machine
You only look once
Average Precision
Measure Average Precision
Frame per second
Region Proposal Network
Single Shot Detection
Intersection over Union
Trang 7DANH MỤC CÁC BẢNG
Bảng 3.1 Mô tả ý nghĩa giá trị các thuộc tính trong file
Trang 8DANH MỤC CÁC HÌNH
Hình 1.1 Mối quan hệ giữa AI, Machine Learning và Deep
Trang 9Hình 2.1 Mô hình kiến trúc RetinaNet 23
Hình 2.2 Chuyển các lớp Fully Connected cuối thành các lớp
Hình 2.6 Tâm của 2 vật thể trùng nhau và cùng nằm trong 1
Hình 3.3
Biểu đồ giá trị độ lỗi sau mỗi vòng lặp và độ đo mAP đánh giá trong quá trình huấn luyện bằng tập đánh giá (validation) với YOLOv4
41
Hình 3.5 Kết quả dự đoán là 94% với biển số xe ô tô đƣợc đặt
Hình 3.6 Cấu trúc thƣ mục sau khi chuyển đổi Darknet
Trang 10Hình 3.11 Hiển thị thông tin biển số xe trên xe máy 45
Trang 11LỜI MỞ ĐẦU
1 Lý do chọn đề tài
Cùng với sự phát triển khoa học kỹ thuật, nhu cầu đi lại của con người ngày càng tăng, lưu lượng giao thông ngày càng lớn Với số lượng phương tiện giao thông ngày càng lớn và còn không ngừng tăng thì việc quản lý các phương tiện giao thông gặp rất nhiều khó khăn do đó cần có một hệ thống tự động Một trong những hệ thống đó là hệ thống nhận dạng biển số xe Đó là một hệ thống có khả năng ―đọc‖ và ―hiểu‖ các biển số xe một cách tự động
Trong phạm vi nghiên cứu của đề tài, tôi sẽ sử dụng mô hình mạng RetinaNet, YOLO và kết hợp bài toán nhận diện ký tự quang học OCR để xây dựng mô hình nhận diện biển số xe, bao gồm biển số xe máy và xe ô tô Với
những phân tích trên tôi chọn đề tài “NHẬN DIỆN BIỂN SỐ XE VIỆT NAM”
2 Tổng quan về tình hình nghiên cứu đề tài
Đối với bài toán phát hiện biển số xe, tức là nhận diện bức ảnh hoặc đoạn video có hay không và đâu là biển số xe Có nhiều thuật toán để phát hiện đối tượng, từ cổ điển đến hiện đại, loại một bước xử lý hoặc hai bước xử
lý như R-CNN, Fast-RCNN, Faster-RCNN Nhưng RetinaNet và YOLO được đánh giá là thuật toán hiệu quả, tránh được tác động từ môi trường, nhiễu, sự thay đổi khoảng cách ảnh đến camera Được xem là vượt trội hơn về mặt thời gian khi có thể đáp ứng thời gian thực tốt hơn
Với bài toán nhận diện ký tự trong biển số xe, được chia thành hai bài toán lớn đó phát hiện ký tự trong biển số xe và nhận diện ký tự đó Có rất nhiều cách để giải quyết bài toán nhận diện ký tự quang học nêu trên như kết hợp mô hình CNN + RNN + CTC, hay như kết hợp mô hình CNN + SVM Trong đó, Công cụ Tesseract OCR được đánh giá khá tốt Mỗi mô hình đều
có những ưu và nhược điểm riêng
Trang 12Trong đề tài luận văn này, đầu tiên tôi sử dụng mô hình RetinaNet để thực hiện việc phát hiện đối tượng, trong quá trình tìm hiểu và được đề xuất
từ Thầy hướng dẫn, tôi nghiên cứu thêm mô hình YOLO, từ những so sánh và thời gian huấn luyện, thời gian thực hiện, độ chính xác,… tôi đã quyết định chuyển sang sử dụng thuật toán của YOLO, cụ thể là YOLOv4 để thực hiện việc phát hiện đối tượng trong đề tài luận văn YOLOv4 có đáp ứng thời gian thực không khác so với YOLOv3 nhưng cho kết quả nhận diện chính xác hơn Đồng thời sử dụng Tesseract OCR để nhận diện các ký tự trong biển số xe, công cụ này cho phép nhận diện tương đối chính xác
3 Mục đích và nhiệm vụ nghiên cứu
- Nghiên cứu cơ sở lý thuyết về học sâu, mạng nơ-ron tích chập (CNN), đặc biệt là RetinaNet, YOLO trong kỹ thuật phát hiện đối tượng
- Nghiên cứu cơ sở lý thuyết về nhận diện ký tự quang học OCR, công
cụ hỗ trợ thực hiện OCR trong việc nhận diện ký tự trong hình ảnh
- Cài đặt chương trình ứng dụng nhận diện biển số xe
4 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Học máy; Học sâu (Deep learning)
- Phạm vi nghiên cứu: Thực nghiệm về ứng dụng mô hình RetinaNet, YOLO, nhận diện ký tự quang học OCR trong việc nhận diện biển số xe Việt Nam
5 Phương pháp nghiên cứu
- Phương pháp nghiên cứu tài liệu
- Phương pháp phân tích, tổng hợp
- Phương pháp thực nghiệm
6 Cấu trúc của luận văn
Ngoài phần mở đầu, kết luận, danh mục các từ viết tắt, danh mục bảng biểu, danh mục hình ảnh, danh mục tài liệu tham khảo, luận văn gồm có 3 chương:
Trang 13Chương 1: Cơ sở lý thuyết
Chương 2: Thuật toán phát hiện đối tượng, Công cụ Tesseract OCR Chương 3: Xây dựng ứng dụng nhận diện biển số xe
Trang 14CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Trong khoảng vài năm trở lại đây sự bùng nổ của Artificial Intelligence (Trí tuệ nhân tạo) hay cụ thể hơn là Machine Learning (Máy học)
và Deep Learning, Big Data đã giúp con người giải quyết được rất nhiều bài toán khó và đang tạo ra những bước đột phá mới trong lĩnh vực công nghệ thông tin Trong chương này, tôi sẽ trình bày một số cơ sở lý thuyết, khái niệm cũng như các nghiên cứu liên quan tới bài toán Phát hiện đối tượng bằng phương pháp học sâu
1.1 GIỚI THIỆU TỔNG QUAN
Machine Learning là một lĩnh vực của Trí tuệ nhân tạo, liên quan tới việc nghiên cứu và xây dựng các thuật toán, mô hình cho phép các hệ thống
có khả năng "học" tự động từ dữ liệu để giải quyết những vấn đề cụ thể Nếu như trước kia, để giải quyết vấn đề, con người sử dụng dòng code để đưa những chỉ thị, hành động cụ thể cho máy tính thực hiện, thì nay chỉ với dữ liệu và các thuật toán, máy tính được huấn luyện và có thể tự mình đưa ra những quyết định hoặc dự đoán từ quá trình học hỏi Phương pháp này đưa ra kết quả nhanh, chính xác và hiệu quả, thậm chí còn tốt hơn con người rất nhiều nhờ áp dụng các thuật toán để phân tích, thống kê từ hàng trăm, hàng nghìn dữ liệu Tóm lại, Machine Learning là quá trình dạy máy tính có khả năng học hỏi để hoàn thành một nhiệm vụ mà không cần kỹ thuật lập trình phức tạp
Machine Learning là ngành rất rộng về toán, gồm rất nhiều thuật toán
và mỗi thuật toán có ứng dụng riêng tùy vào bài toán:
• Linear Regression
• Logistic Regresstion
• Decision Tree và Random Forest
• Support Vector Machines
Trang 15sự phát triển cùng khả năng tính toán vượt trội của máy tính và lượng dữ liệu khổng lồ mà con người tạo ra, những ứng dụng của Deep Learning đã và đang tạo ra những bước đột phá thực sự lớn
Hình 1.1: Mối quan hệ giữa AI, Machine Learning và Deep Learning
1.2 THỊ GIÁC MÁY TÍNH (COMPUTER VISION)
Thị giác máy tính (Computer Vision) là một trong những ứng dụng nổi bất nhất của Deep Learning Thị giác máy tính là một lĩnh vực bao gồm các phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích và nhận dạng các hình ảnh và, nói chung là dữ liệu đa chiều từ thế giới thực để cho ra các thông tin số hoặc biểu tượng
Một số kỹ thuật phổ biến trong Thị giác máy tính gồm:
• Nhận diện vật thể (Object Recognition): là một kỹ thuật liên quan đến việc nhận dạng, xác định và định vị các đối tượng trong một bức ảnh với một mức độ tin cậy nhất định
Trang 16• Phân loại hình ảnh (Image Classification): là một kỹ thuật liên quan đến việc dự đoán lớp của một đối tƣợng trong một hình ảnh
• Định vị vật thể (Object Localization): là một kỹ thuật xác định vị trí của một hoặc nhiều đối tƣợng trong một hình ảnh và vẽ bounding box xung quanh chúng
• Phát hiện đối tƣợng (Object Detection): là một kỹ thuật kết hợp phân loại hình ảnh và định vị vật thể cho một hoặc nhiều đối tƣợng trong hình ảnh
• Phân đoạn đối tƣợng (Object Segmentation): là một kỹ thuật nhận dạng đối tƣợng bằng cách nổi bật các pixel cụ thể của đối tƣợng thay vì bounding box
• Chú thích ảnh (Image Captioning): là một kỹ thuật kết hợp giữa Computer Vision (thị giác máy tính) và NLP (Xử lý ngôn ngữ tự nhiên), Dựa trên một hình ảnh làm dữ liệu đầu vào, chú thích ảnh tạo ra văn bản ngắn gọn
mô tả nội dung của bức ảnh đó
Hình 1.2: Sơ đồ các mối liên hệ giữa các tác vụ trong Computer Vision
1.3 PHÁT HIỆN ĐỐI TƢỢNG (OBJECT DETECTION)
Phát hiện đối tƣợng (Object Detection) là một thuật ngữ chung để mô
tả một tập hợp các nhiệm vụ thị giác máy tính có liên quan liên quan đến việc
Trang 17xác định các đối tƣợng trong ảnh kỹ thuật số Phát hiện đối tƣợng kết hợp hai nhiệm vụ gồm phân loại hình ảnh (Image Classification) và định vị vật thể (Object Localization) Trong đó, ta có thể phân loại các kỹ thuật trên nhƣ sau:
• Phân loại hình ảnh (Image Classification): Dự đoán nhãn của một đối tƣợng trong một hình ảnh
o Đầu vào: Một hình ảnh với một đối tượng, chẳng hạn như một bức ảnh
o Đầu ra: Nhãn lớp (ví dụ: một hoặc nhiều số nguyên được ánh
o Đầu ra: Một hoặc nhiều bounding box được xác định bởi tọa
độ tâm, chiều rộng và chiều cao
• Phát hiện đối tƣợng: Xác định vị trí hiện diện của các đối tƣợng trong bounding box và nhãn của các đối tƣợng nằm trong một hình ảnh
o Đầu vào: Một hình ảnh có một hoặc nhiều đối tượng, chẳng hạn như một bức ảnh
o Đầu ra: Một hoặc nhiều bounding box và nhãn cho mỗi bounding box
Trang 18Hình 1.3: Ví dụ về phát hiện đối tượng
Thuật toán Object Detection bao gồm 2 nhóm chính:
• Two-stage: bao gồm họ các mô hình R-CNN [6] (Region-Based
Convolutional Neural Networks), Mask R-CNN… Gọi là two-stage vì model
sẽ thực hiện 2 phần gồm trích chọn (extract) các vùng trên ảnh có khả năng chứa đối tượng dựa vào các anchor box, sau đó sẽ thực hiện tiếp phân loại đối tượng và xác định vị trí nhờ vào việc chia làm 2 nhánh tại phần cuối của mô hình (Object Classification và Bounding Box Regression) Các mô hình này được dùng để giải quyết các bài toán định vị và nhận diện vật thể tĩnh (hình ảnh) do yêu cầu cao về độ chính xác nhưng không yêu cầu quá cao về tốc độ
• One-stage hay còn gọi là single-stage: Bao gồm các mô hình Restina, YOLO (You Only Look Once), SSD (Single Shot MultiBox Detector), Gọi là one-stage vì model sẽ không có phần trích chọn các vùng đặc trưng như two-stage Các mô hình one-stage sẽ coi việc phát hiện đối tượng như một bài toán hồi quy và dựa trên pre-define box hay còn gọi là anchor để phát hiện đối tượng Các mô hình one-stage thường có tốc độ nhanh hơn tuy nhiên độ chính xác thường kém hơn so với two-stage và thường được dùng để nhận dạng đối tượng, đặc biệt là các đối tượng real time
Hình 1.4: So sánh sự khác nhau của mô hình one-stage và two-stage
Trang 191.4 MẠNG NƠ-RON
Mạng nơ-ron là một phương thức trong lĩnh vực trí tuệ nhân tạo, được
sử dụng để dạy máy tính xử lý dữ liệu theo cách được lấy cảm hứng từ bộ não con người Lớp đầu tiên bên trái thể hiện cho mạng đầu vào được gọi là Input Layer Và layer cuối cùng mang kết quả dự đoán gọi Output Layer Một mạng nơ-ron có thể có hoặc không có các lớp ở giữa Input Layer và Output Layer gọi là Hidden Layer, các Hidden Layer này giúp cho tỉ lệ dự đoán chính xác cao hơn tuy nhiên việc huấn luyện cũng tốn nhiều thời gian và dung lượng hơn Mỗi Layer là tập hợp nhiều node, các node của lớp sau kết nối với toàn
bộ các node của lớp trước
Mỗi node trong hidden layer và output layer thực hiện các công việc sau: Liên kết với tất cả các node ở layer trước đó với các hệ số w riêng Mỗi node có 1 hệ số bias b riêng Từ đó w, b biểu thị mối quan hệ giữa node trước
và node sau
Hình 1.5: Mối quan hệ giữa đầu vào và đầu ra của một node
Node ở hình 1.5 có đầu vào là X1, X2, trọng số w1, w2 Đầu ra y là kết quả của một hàm phi tuyến và một hàm tuyến tính Hàm phi tuyến g còn được gọi là hàm kích hoạt (activation) giúp tăng khả năng học của mạng nơ-ron
Trang 20Các hàm phi kích hoạt thường được sử dụng là:
Sigmoid: Giá trị đầu ra được chuyển về trong khoảng [0,1] bằng công
thức:
1( )
Tanh: Giá trị đầu ra được chuyển về trong khoảng [-1,1] khiến nó có
tính chất tâm không (zero-centered), theo công thức:
Khi đó, đầu ra bằng 1 khi đầu vào lớn và đầu ra bằng -1 khi đầu vào nhỏ Hàm Tanh với tính chất tâm không giúp các dữ liệu được phân bố quanh điểm 0, tanh khi lấy đạo hàm có cả phần dương và phần âm giúp việc hội tụ trở nên tốt hơn Tuy nhiên hàm tanh không giải quyết được vấn đề bão hòa khi giá trị đầu vào quá lớn hoặc quá nhỏ của sigmoid
Hình 1.6: Đồ thị hàm sigmoid (a) và hàm tanh (b)[3]
Trang 21ReLU và leaky ReLU: Lấy ngƣỡng giá trị ở 0 (Thay thế các giá trị
âm bằng 0): g(x)= max(0,x) Hàm ReLU loại bỏ các giá trị âm, việc hội tụ cũng diễn ra nhanh hơn khi không còn bị bão hòa ở hai đầu nhƣ hàm Sigmoid
và hàm Tanh Tuy nhiên, với các giá trị âm nhỏ gần 0, việc giữ lại đạo hàm vẫn có giá trị khi lấy Gradient, nhƣng lại bị triệt tiêu gây ra hiện tƣợng
―Dying ReLU‖ Để khắc phục việc đó, hàm Leaky ReLU ra đời và là biến thể của ReLU:
F(x) = 1(x < 0)(αx) + 1(x >= 0)(x) các giá trị âm lớn gần nhƣ xấp xỉ bằng 0 trong khi các giá trị âm nhỏ vẫn mang giá trị khi đạo hàm Nhƣng cả hai hàm ReLU và Leaky ReLU lại không
có đạo hàm tại 0
Hình 1.7: Đồ thị hàm ReLU [3]
Hình 1.8: Đồ thị hàm Leaky ReLU
Trang 22Mish: Mish là hàm kích hoạt đƣợc sử dụng trong YOLOv4 Mish
đƣợc tác giả cho rằng tốt hơn các hàm kích hoạt khác nhờ việc giữ đƣợc tính chất của hàm ReLU giúp hội tụ nhanh chóng hơn, giữ đƣợc một phần gradient
âm cho phép model học tốt hơn nhƣ hàm Leaky ReLU, mà khắc phục đƣợc việc không có đạo hàm tại 0 của hai hàm trên, Mish có đạo hàm tại mọi giá trị Hàm Mish đƣợc biểu diễn bởi công thức:
Một mô hình CNN sẽ có kiến trúc gồm các tầng nhƣ sau: tầng tích chập (Convolution), tầng tổng hợp (pooling) dùng để trích xuất đặc trƣng và tầng liên kết đầy đủ (fully connected) dùng để phân lớp đối tƣợng
CNNs gồm 2 thành phần:
Trang 23• Phần tầng ẩn hay phần rút trích đặc trưng: Trong phần này, mạng
sẽ tiến hành tính toán hàng loạt phép tích chập (Convolutional layer) và phép hợp nhất (pooling) để phát hiện các đặc trưng
• Phần phân lớp: Tại phần này, một số lớp các liên kết đầy đủ (Fully Connected) sẽ đóng vai trò như một bộ phân lớp các đặc trưng đã rút trích trước đó Tầng này sẽ đưa ra xác suất của một đối tượng trong hình
Hình 1.10: Cấu trúc của CNN
1.5.2 Lớp tích chập (Convolutional Layer)
Đây là phép tính quan trọng trong CNN Thực hiện phép tích chập bằng cách trượt kernel/filter theo kiểu dữ liệu đầu vào Tại mỗi vị trí, ta tiến hành phép nhân ma trận và tính tổng để đưa vào feature map Feature map là
ma trận đầu ra khi áp dụng phép tích chập giữa bộ lọc với các vùng nhận thức theo phương di chuyển từ trái qua phải và từ trên xuống dưới
Tích chập là lớp đầu tiên để trích xuất các tính năng từ hình ảnh đầu vào Tích chập duy trì mối quan hệ giữa các pixel bằng cách tìm hiểu các tính năng hình ảnh bằng cách sử dụng các ô vuông nhỏ của dữ liệu đầu vào Nó là
1 phép toán có 2 đầu vào như ma trận hình ảnh và 1 bộ lọc
Tại khối tích chập, các thông số được sử dụng bao gồm:
Stride (S): Số pixel bạn dịch chuyển ở mỗi lần trượt
Padding (P): Tăng thêm một số hàng và cột (thường có giá trị bằng 0)
Trang 24để tránh việc giảm kích thước ở output cũng như để lấy thông tin ở các pixel ngoài cùng Có 2 loại padding là ―valid‖ tức là padding =0 và ―same‖ tức là padding để kích thước đầu ra bằng kích thước đầu vào
#filters (nc): Số filter được sử dụng ở mỗi layers
f: kích thước của mỗi filter là f *f
Hình 1.11: Minh họa việc áp dụng phép tính Conv
Hình 1.12: Lớp tổng hợp sử dụng Max pooling
1.5.4 Lớp kết nối đầy đủ (Fully Connected Layer)
Trang 25Sau khi ảnh được truyền qua nhiều lớp tích chập và lớp tổng hợp thì model đã học được tương đối các đặc điểm của ảnh (ví dụ bánh xe, khung xe,…) thì tensor của output cuối cùng, kích thước H*W*D sẽ được chuyển về
1 vector kích thước (H*W*D)
Hình 1.13: Phép flatten đưa tensor về thành 1 vector
Sau đó sử dụng các fully connected layer để kết hợp các đặc điểm của ảnh để ra được output của model Lớp kết nối đầy đủ cuối của mạng có nhiệm
vụ phân loại theo yêu cầu của bài toán
1.5.5 Hàm Softmax
Sau khi mạng CNNs học qua các lớp phía trước, ta thu được vector đặc trưng Khi đó, cần dựa vào vector đặc trưng này để phân loại vào các lớp theo yêu cầu bài toán Hàm softmax là một mô hình xác suất để với mỗi input
x, tính được output ai thể hiện xác suất để input đó rơi vào lớp thứ i
Hàm softmax có đầu vào là 1 vector, đầu ra là một vector có cùng số chiều a z R ( ) : n Rncó công thức là:
Trang 261.6 NHẬN DIỆN KÝ TỰ QUANG HỌC
1.6.1 Khái niệm
Optical Character Recognition (OCR) là một công nghệ phổ biến để nhận dạng văn bản bên trong hình ảnh, chẳng hạn nhƣ tài liệu và hình ảnh, nhận diện các ký tự trong biển số xe Công nghệ OCR đƣợc sử dụng để chuyển đổi hầu nhƣ bất kỳ loại hình ảnh nào có chứa văn bản (đánh máy, viết tay, in hoặc ảnh chụp) thành dữ liệu văn bản có thể đọc đƣợc bằng máy Công nghệ OCR trở nên phổ biến vào đầu những năm 1990 khi cố gắng số hóa các
tờ báo lịch sử Kể từ đó, công nghệ đã trải qua một số cải tiến Ngày nay, các giải pháp cung cấp độ chính xác OCR gần nhƣ hoàn hảo
Trang 27Hình 1.15: Một mô hình OCR Pipeline
1.6.2 Cơ chế hoạt động
Về cơ bản các hệ thống OCR sẽ hoạt động theo các bước sau:
1.6.2.1 Tiền xử lý hình ảnh (Image Pre-processing)
Đây là bước tiền xử lý hình ảnh trước khi đưa vào cho model học tập Các hình ảnh có thể bị mờ, bị nhiễu, bị lệch,… Nếu để nguyên bản như vậy đưa vào model thì kết quả sẽ rất kém Nhiệm vụ của Image Pre-processing là
cố gắng loại bỏ những lỗi như vậy
Hình 1.16: Hình ảnh thu được sau khi qua bước tiền xử lý
1.6.2.2 Phát hiện text (Text detection)
Có 2 kiểu ký tự/văn bản trong hình ảnh mà OCR có thể giải quyết như sau:
Trang 28- Ký tự/văn bản có cấu trúc: Là những hình ảnh tương đối rõ ràng, background cố định, font chữ cố định, màu sắc cố định, ký tự/văn bản được tổ chức ngay ngắn theo hàng/cột,… Ví dụ: trang sách
- Ký tự/văn bản phi cấu trúc: Là những hình ảnh có ký tự/văn bản xuất hiệu không sự thống nhất về màu sắc, vị trí, kiểu chữ,… Ví dụ: bảng quảng cáo
Để thực hiện nhiệm vụ Text Detection, có thể tiếp cận theo 3 cách sau:
Cách 1: Phát hiện từng ký tự một (Character detection)
Cách 2: Phát hiện từng từ một (Word detection)
Cách 3: Phát hiện từng dòng một (Line detection)
Trang 29khá hiệu quả, độ chính xác cao và dễ thực hiện Tuy nhiên, trong thực tế, rất khó để đảm bảo những điều kiện như vậy
Cách 2: Sử dụng kỹ thuật Deep Learning, sử dụng DL, về cơ bản là hiệu quả hơn rất nhiều so với phương pháp bên trên, bởi vì chúng có khả năng học từ dữ liệu nên không bị ảnh hưởng quá nhiều bởi các yếu tố môi trường Một số model nổi bật là Connectionist Text Proposal Network (CTPN), Efficient and Accurate Scene Text Detector (EAST),… Các Object Detection models khác như SSD, YOLO, Faster RCNN cũng có thể thực hiện được nhiệm vụ này
1.6.3 Nhận diện text (Text Recognition)
Các ký tự/văn bản trong từng khu vực phát hiện ở bước bên trên (Text Detection) sẽ được nhận diện cụ thể ở bước này
Hình 1.18: Kết quả các ký tự được nhận dạng
Tương tự như Text Detection, ở bước này cũng có 2 phương pháp giải quyết là dùng kỹ thuật xử lý ảnh cơ bản và dùng kỹ thuật Deep Learning
Đối với kỹ thuật xử lý ảnh cơ bản, sau khi tách riêng được từng ký tự
ra khỏi nền, sẽ cho chúng đi qua một bộ phân lớp để nhận diện Cách này xử
lý ở mức ký tự, phụ thuộc nhiều vào kết quả của bước Text Detection và môi trường nên độ chính xác không cao