1. Trang chủ
  2. » Tất cả

Microsoft word LV THS TRANG 3

59 3 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Cơ Sở Lý Thuyết Về Thị Giác Máy Tính Và Nhận Diện Ký Tự Quang Học
Tác giả Lê Minh Nhật
Người hướng dẫn TS. Lê Xuân Vinh
Trường học Trường Đại học Quy Nhơn
Chuyên ngành Công nghệ Thông tin
Thể loại Luận văn Thạc sĩ
Năm xuất bản 2022
Thành phố Quy Nhơn
Định dạng
Số trang 59
Dung lượng 1,95 MB

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

Nội dung

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 1

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ự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 2

LỜ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 3

MỤ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 4

1.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 5

KẾ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 6

DANH 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 7

DANH 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 8

DANH MỤC CÁC HÌNH

Hình 1.1 Mối quan hệ giữa AI, Machine Learning và Deep

Trang 9

Hì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 10

Hình 3.11 Hiển thị thông tin biển số xe trên xe máy 45

Trang 11

LỜ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 12

Trong đề 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 13

Chươ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 14

CHƯƠ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 15

sự 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 17

xá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 18

Hì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 19

1.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 20

Cá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 21

ReLU 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 22

Mish: 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 25

Sau 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 ( ) : nRncó công thức là:

Trang 26

1.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 27

Hì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 29

khá 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

Ngày đăng: 24/11/2022, 22:55

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[4] Redmon J, Farhadi A. Yolov3: An incremental improvement[J]. arXiv preprint arXiv:1804.02767, 2018 Sách, tạp chí
Tiêu đề: Yolov3: An incremental improvement
Tác giả: Redmon J, Farhadi A
Nhà XB: arXiv
Năm: 2018
[5] Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao. ―YOLOv4: Optimal Speed and Accuracy of Object Detection‖ 23 Apr 2020 :arXiv:2004.10934 Sách, tạp chí
Tiêu đề: YOLOv4: Optimal Speed and Accuracy of Object Detection
Tác giả: Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao
Nhà XB: arXiv
Năm: 2020
[6] Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik. ―Rich feature hierarchies for accurate object detection and semantic segmentation‖[C]// The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2014, pp.580-587 Sách, tạp chí
Tiêu đề: Rich feature hierarchies for accurate object detection and semantic segmentation
Tác giả: Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik
Nhà XB: IEEE Conference on Computer Vision and Pattern Recognition (CVPR)
Năm: 2014
[7] Y. LeCun, Y. Bengio, and G. Hinton, "Deep learning," NATURE, vol. 521, no.7553, pp. 436-444, 2015 Sách, tạp chí
Tiêu đề: Deep learning
Tác giả: Y. LeCun, Y. Bengio, G. Hinton
Nhà XB: Nature
Năm: 2015
[8] Redmon J, Farhadi A. ―YOLO9000: better, faster, stronger‖ [C]//Proceedings of the IEEE conference on computer vision and pattern recognition.2017: 7263- 7271 Sách, tạp chí
Tiêu đề: YOLO9000: better, faster, stronger
Tác giả: Redmon J, Farhadi A
Nhà XB: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition
Năm: 2017
[9] Arden Dertat, "Applied Deep Learning - Part 1: Artificial Neural Networks," 08 08 2017. [Online]. Available: https://towardsdatascience.com Sách, tạp chí
Tiêu đề: Applied Deep Learning - Part 1: Artificial Neural Networks
Tác giả: Arden Dertat
Nhà XB: Towards Data Science
Năm: 2017
[10] Oleksii Sheremet, ―Intersection over union (IoU) calculation for evaluating an image segmentation model ‖Jul 25 2020. [Online].Available:https://towardsdatascience.com/intersection-over-union-ioucalculation-for-evaluating-an-image-segmentation-model-822e2e84686 Sách, tạp chí
Tiêu đề: Intersection over union (IoU) calculation for evaluating an image segmentation model
Tác giả: Oleksii Sheremet
Nhà XB: Towards Data Science
Năm: 2020
[11] Tsung-Yi Lin, Piotr Dollar , Ross Girshick , Kaiming He, Bharath Hariharan , and Serge Belongie, ―Feature Pyramid Networks for Object Detection‖ Sách, tạp chí
Tiêu đề: Feature Pyramid Networks for Object Detection
Tác giả: Tsung-Yi Lin, Piotr Dollar, Ross Girshick, Kaiming He, Bharath Hariharan, Serge Belongie
Nhà XB: IEEE Conference on Computer Vision and Pattern Recognition (CVPR)
Năm: 2017
[12] Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun, ―Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks‖[C]//Proceedings of the IEEE conference on computer vision and pattern recognition.arXiv:1506.01497v3, 2016 Sách, tạp chí
Tiêu đề: Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
Tác giả: Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun
Nhà XB: IEEE Conference on Computer Vision and Pattern Recognition
Năm: 2016
[13] Stanford CS class CS231n: Convolutional Neural Networks for Visual Recognition, ―Neural Networks Part 1: Setting up the Architecture ‖. [Online].Available: https://cs231n.github.io/neural-networks-1/ Sách, tạp chí
Tiêu đề: Neural Networks Part 1: Setting up the Architecture
[14] Prabhu, ―Understanding of Convolutional Neural Network (CNN) — Deep Learning‖ , Mar 4, 2018. [Online]. Available:https://medium0.com/@RaghavPrabhu/understanding-of-convolutional-neuralnetwork-cnn-deep-learning-99760835f148 Sách, tạp chí
Tiêu đề: Understanding of Convolutional Neural Network (CNN) — Deep Learning
Tác giả: Prabhu
Nhà XB: Medium
Năm: 2018
[16] Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao, ―ScaledYOLOv4: Scaling Cross Stage Partial Network‖, 22 Feb 2021, arXiv:2011.08036v2 Sách, tạp chí
Tiêu đề: ScaledYOLOv4: Scaling Cross Stage Partial Network
Tác giả: Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao
Nhà XB: arXiv
Năm: 2021
[15] Adrian Rosebrock , ―Intersection over Union (IoU) for object detection‖, 2016 [Online]. Available:https://www.pyimagesearch.com/2016/11/07/intersectionover-union-iou-for-object-detection/ Link
[1] Lê Xuân Vinh (2021), Bài giảng ―Machine Learning And Data Mining‖, Đại học Quy Nhơn Khác
[2] Lê Xuân Vinh (2017), Bài giảng ―Trí tuệ nhân tạo nâng cao‖, Đại học Quy Nhơn Khác
[3] Vũ Hữu Tiệp,(2016), ―Machine Learning cơ bản‖, Nhà xuất bản khoa học và kỹ thuật Khác