You are on page 1of 11

Tesseract OCR (optical character recognition/reader):

Nhận dạng ký tự quang hoặc trình đọc ký tự quang (OCR) là chuyển đổi cơ học hoặc điện tử
của hình ảnh văn bản được đánh máy, viết tay hoặc in thành văn bản được mã hóa bằng máy,
cho dù từ tài liệu được quét, ảnh của tài liệu, ảnh cảnh (ví dụ: văn bản trên bảng hiệu và bảng
quảng cáo trong ảnh phong cảnh) hoặc từ văn bản phụ đề được đặt chồng lên hình ảnh (ví dụ
từ chương trình phát trên truyền hình). [1]
Được sử dụng rộng rãi như một hình thức nhập thông tin từ hồ sơ dữ liệu giấy in - cho dù tài
liệu hộ chiếu, hóa đơn, báo cáo ngân hàng, biên lai máy tính, danh thiếp, thư, bản in dữ liệu
tĩnh hoặc bất kỳ tài liệu phù hợp nào - đó là một phương pháp số hóa phổ biến được in các
văn bản để chúng có thể được chỉnh sửa điện tử, tìm kiếm, lưu trữ gọn hơn, hiển thị trực tuyến
và được sử dụng trong các quy trình của máy như điện toán nhận thức, dịch máy, (trích xuất)
văn bản thành giọng nói, dữ liệu chính và khai thác văn bản. OCR là một lĩnh vực nghiên cứu
về nhận dạng mẫu, trí tuệ nhân tạo và thị giác máy tính.
Các phiên bản ban đầu cần được đào tạo với hình ảnh của từng nhân vật và làm việc trên một
phông chữ tại một thời điểm. Các hệ thống tiên tiến có khả năng tạo độ chính xác cao cho hầu
hết các phông chữ hiện đang phổ biến và có hỗ trợ nhiều loại đầu vào định dạng tệp hình ảnh
kỹ thuật số. [2] Một số hệ thống có khả năng tái tạo đầu ra được định dạng gần đúng với trang
gốc bao gồm hình ảnh, cột và các thành phần phi văn bản khác
Free OCR software: https://www.onlineocr.net/
License-plate detection: https://machinelearningcoban.com/2017/01/04/kmeans2/
Optical Character Recognition (OCR) là công nghệ nhận diện kí tự được xây dựng theo hệ
thống mạng Neuron nhân tạo. Nó là kỹ thuật được sử dụng để chuyển đổi hình ảnh văn bản
sang dạng văn bản có thể chỉnh sửa trong máy tính. OCR sẽ nhận đầu vào là các ảnh có kí tự
riêng rẽ và cho ra kí tự văn bản tương ứng, ngoài ra các giải thuật so khớp mẫu (Template
Matching) cũng được áp dụng tùy theo tình huống.
Công nghệ OCR được biết đến xuất phát bắt nguồn từ những năm 1974, Ray Kurzweil bắt
đầu phát triển một công nghệ có thể nhận ra các kí tự trong hình ảnh của các văn bản, công
nghệ này được ứng dụng vào thiết bị hỗ trợ đọc cho người khiếm thị. Ngày 13/1/1976, các sản
phẩm đã hoàn thành, Ray Kurzweil đã công bố kết quả nghiên cứu trong một cuộc họp báo
rộng rãi trước công chúng và các nhà lãnh đạo của Liên đoàn người khiếm thị. Sau đó, công
nghệ này ngày càng hoàn thiện và phát triển, cho tới ngày nay thì công nghệ này đã được ứng
dụng và rất nhiều lĩnh vực trong cuộc sống từ các ứng dụng nhận dạng chữ viết, văn bản, cho
tới các phần mềm hệ thống ứng dụng nhận diện các biển số xe…
Hình 1: Mô phỏng cấu trúc hệ thống

Về mặt cấu trúc, hệ thống gồm camera để thu nhận hình ảnh theo thời gian thực, cung cấp
chuỗi ảnh đã được số hóa về hiện trạng giao thông trong tầm kiểm soát của camera và truyền
vào một máy tính nhúng tốc độ cao làm nhiệm vụ xử lý ảnh, các thuật toán xử lý ảnh như
phân tích ảnh, biến đổi ảnh, nhận dạng ảnh... sau đó truyền các thông tin kết quả về trung tâm
giám sát qua hệ thống truyền dẫn.

Hình 2: Mô hình tổng quan các bước thực hiện của một hệ thống ứng dụng công nghệ nhận
dạng kí tự quang học OCR
Ví dụ như trong tình huống hệ thống phát hiện và nhận diện phương tiện không chấp hành
hiệu lệnh của đèn tín hiệu: Camera phân tích đèn giao thông sẽ phát hiện thời điểm đèn xanh,
đèn đỏ. Khi đèn đỏ bật sáng, nếu có xe vi phạm (xe vượt đèn đỏ), phần mềm sẽ ngay lập tức
chụp ảnh đối tượng vi phạm, chụp ảnh toàn cảnh. Sau đó hệ thống sẽ nhận dạng biển số (Quá
trình nhận dạng kí tự quang học OCR nằm trong bước này), lưu trữ và đưa ra các biên bản
báo cáo phục vụ cho công tác xử phạt.
Cụ thể như sau:

Bước 1: Bắt hình từ Camera giám sát


Quá trình này sẽ thực hiện thu nhận từng khung hình trong video từ hệ thống camera giám sát.
Quá trình bắt hình sẽ được thực hiện tự động, liên tục, theo chu kì, hoặc tùy thuộc vào mục
đích của hệ thống nhận dạng.
Bước 2: Tiền xử lý ảnh
Nhiệm vụ của bước này là nhằm chuyển đổi không gian màu, khử nhiễu, cân bằng sáng… từ
những khung hình thu được thông qua hệ thống camera nhằm chuẩn bị dữ liệu tốt, phù hợp
tùy theo yêu cầu của các thuật toán xử lý ở mức cao hơn.
Hình 4: Hình ảnh được trích ra từ video
Bước 3: Xử lý trích xuất vùng biển số
Tại bước này, hệ thống tiến hành phát hiện ra vùng chứa biển số. Đây là bước khó khăn nhất,
nó quyết định tới toàn bộ kết quả mà chúng ta thu được ở các bước sau. Để phát hiện được
biển số xe có nhiều cách tiếp cận khác nhau, như dùng phương pháp khớp mẫu, mạng
neuron... cách đơn giản hơn ở đây là dùng phương pháp hình học, dựa trên tỉ lệ kích thước
chiều dài trên rộng, tỉ lệ pixel đen trên trắng...

Hình 5: Hệ thống trích xuất ra vùng chứa biển số

Bước 4: Cô lập các ký tự trong vùng biển số


Từ vùng chứa biển số xe, hệ thống sẽ sử dụng các phương pháp biến đổi để nâng cao chất
lượng ảnh và chuyển ảnh về dạng bitmap. Sau đó tiến hành tách từng ký tự trong ảnh dựa vào
việc nhận diện các bit 0, 1 lần lượt theo chiều ngang, dọc của ảnh bitmap.
Bước 5: Nhận dạng các ký tự bằng OCR
Ở bước này công nghệ OCR sẽ nhận đầu vào là các ảnh có kí tự riêng rẽ sau đó xử lý ảnh đó
và trích xuất ra kí tự văn bản tương ứng, ngoài ra các giải thuật so khớp mẫu (Template
Matching) cũng được áp dụng tùy theo tình huống.
OCR được ứng dụng như một phần mềm được tích hợp trên máy tính hoặc trực tiếp vào một
phần cứng nào đó. Một số phần mềm khá nổi tiếng như:

 ABBYY FineReader
 PDF OCR
 http://www.onlineocr.net

Object Detection:
1.Object Localization (định vị đối tượng )
Một phân loại hình ảnh hoặc mô hình nhận dạng hình ảnh chỉ đơn giản là phát hiện xác suất
của một đối tượng trong một hình ảnh. Ngược lại với điều này, định vị hóa đối tượng đề cập
đến việc xác định vị trí của một đối tượng trong hình ảnh. Một thuật toán bản địa hóa đối
tượng sẽ xuất ra tọa độ vị trí của một đối tượng đối với hình ảnh. Trong thị giác máy tính,
cách phổ biến nhất để định vị một đối tượng trong ảnh là thể hiện vị trí của nó với sự trợ giúp
của các bounding box:
Một hộp giới hạn có thể được khởi tạo bằng các tham số sau:

- bx, by: tọa độ tâm của hộp giới hạn


- bw: chiều rộng của khung giới hạn w.r.t chiều rộng hình ảnh
- bh: chiều cao của khung giới hạn w.r.t chiều cao hình ảnh

Thuật toán cổ điển:


1. Sliding Window Algorithm:
Một cách tiếp cận để xây dựng một phát hiện đối tượng là trước tiên xây dựng một bộ phân
loại có thể phân loại các hình ảnh được cắt sát của một đối tượng. Hình 2. cho thấy một ví dụ
về một mô hình như vậy, trong đó một mô hình được đào tạo trên bộ dữ liệu các hình ảnh
được cắt xén chặt chẽ của một chiếc ô tô và mô hình dự đoán xác suất hình ảnh là một chiếc ô
tô.
Hình 2. Phân loại hình ảnh của ô tô

Bây giờ, chúng ta có thể sử dụng mô hình này để phát hiện ô tô bằng cơ chế cửa sổ trượt.
Trong cơ chế cửa sổ trượt, chúng tôi sử dụng cửa sổ trượt (tương tự như cửa sổ được sử dụng
trong các mạng chập) và cắt một phần hình ảnh trong mỗi slide. Kích thước của phần cắt crop
giống như kích thước của cửa sổ trượt. Mỗi hình ảnh được cắt sau đó được chuyển đến một
mô hình ConvNet (tương tự như hình được hiển thị trong Hình 2.), từ đó dự đoán xác suất của
hình ảnh bị cắt là một chiếc ô tô.

Hình 3. Cơ chế cửa sổ trượt

Sau khi chạy cửa sổ trượt qua toàn bộ hình ảnh,


chúng tôi thay đổi kích thước cửa sổ trượt và chạy
lại trên hình ảnh một lần nữa. Chúng tôi lặp lại quá
trình này nhiều lần. Vì chúng tôi cắt xén một số
hình ảnh và chuyển qua ConvNet, cách tiếp cận này
vừa tốn kém về mặt tính toán vừa tốn thời gian,
khiến toàn bộ quá trình thực sự chậm. Triển khai
thực hiện cửa sổ trượt giúp giải quyết vấn đề này
Kết hợp thực hiện các cửa sổ trượt:
Trước khi chúng ta thảo luận về việc triển khai cửa sổ trượt bằng cách sử dụng các đối
Convent, hãy phân tích cách chúng ta có thể chuyển đổi các lớp được kết nối đầy đủ của
mạng thành các lớp chập. Hình. 4 cho thấy một mạng chập đơn giản với hai lớp được kết nối
đầy đủ mỗi hình dạng (400,).

Hình 4. Cơ chế cửa sổ trượt


Một lớp được kết nối đầy đủ có thể được chuyển đổi thành một lớp chập với sự trợ giúp của
lớp chập 1D. Chiều rộng và chiều cao của lớp này bằng một và số lượng bộ lọc bằng với hình
dạng của lớp được kết nối đầy đủ. Một ví dụ về điều này được hiển thị trong Hình 5.

Hình 5. Chuyển đổi một lớp được kết nối đầy đủ thành một lớp chập
Chúng ta có thể áp dụng khái niệm chuyển đổi một lớp được kết nối đầy đủ thành một lớp
chập cho mô hình bằng cách thay thế lớp được kết nối đầy đủ bằng một lớp chập 1-D. Số
lượng bộ lọc của lớp chập 1D bằng với hình dạng của lớp được kết nối đầy đủ. Biểu diễn này
được hiển thị trong Hình 6. Ngoài ra, lớp softmax đầu ra cũng là một lớp hình chập (1, 1, 4),
trong đó 4 là số lượng các lớp để dự đoán.

Hình 6. Biểu diễn kết cấu của các lớp được kết nối đầy đủ.
Bây giờ, hãy mở rộng cách tiếp cận trên để thực hiện phiên bản tích chập của cửa sổ trượt.
Trước tiên, hãy đxem xét ConvNet mà chúng tôi đã đào tạo để được đại diện sau (không có
lớp được kết nối đầy đủ).

Giả sử kích thước của hình ảnh đầu vào là 16 × 16 × 3. Nếu chúng ta sử dụng phương pháp
cửa sổ trượt, thì chúng ta sẽ chuyển hình ảnh này cho ConvNet ở trên bốn lần, trong đó mỗi
lần cửa sổ trượt cắt một phần của hình ảnh đầu vào có kích thước 14 × 14 × 3 và chuyển qua
ConvNet. Nhưng thay vì điều này, chúng tôi cung cấp hình ảnh đầy đủ (với hình dạng 16 × 16
× 3) trực tiếp vào ConvNet được đào tạo (xem Hình 7). Điều này dẫn đến một ma trận đầu ra
có hình 2 × 2 × 4. Mỗi ô trong ma trận đầu ra biểu thị kết quả của một cây trồng có thể và giá
trị được phân loại của hình ảnh được cắt. Ví dụ, ô bên trái của đầu ra (ô màu xanh lá cây)
trong Hình 7 biểu thị kết quả của cửa sổ trượt đầu tiên. Các ô khác biểu thị kết quả của các
thao tác cửa sổ trượt còn lại.

Hình 7. Triển khai thực hiện của cửa sổ trượt


Lưu ý rằng bước tiến của cửa sổ trượt được quyết định bởi số lượng bộ lọc được sử dụng
trong lớp Max Pool. Trong ví dụ trên, lớp Max Pool có hai bộ lọc. Ưu điểm chính của việc sử
dụng kỹ thuật này là cửa sổ trượt chạy và tính toán tất cả các giá trị cùng một lúc. Do đó, kỹ
thuật này thực sự nhanh chóng. Mặc dù một điểm yếu của kỹ thuật này là vị trí của các hộp
giới hạn không chính xác lắm.
2. The YOLO (You Only Look Once) Algorithm:
Một thuật toán tốt hơn giải quyết vấn đề dự đoán các hộp giới hạn chính xác trong khi sử
dụng kỹ thuật cửa sổ trượt tích chập là thuật toán YOLO. YOLO là viết tắt của you only look
once và được phát triển vào năm 2015 bởi Joseph Redmon, Santosh Divvala, Ross Girshick
và Ali Farhadi. Nó phổ biến vì nó đạt được độ chính xác cao trong khi chạy trong thời gian
thực. Thuật toán này được gọi như vậy bởi vì nó chỉ yêu cầu một lan truyền chuyển tiếp qua
mạng để đưa ra dự đoán.

Thuật toán chia hình ảnh thành các lưới và chạy thuật toán phân loại và định vị hình ảnh
(được thảo luận dưới phần nội địa hóa đối tượng) trên mỗi ô lưới. Ví dụ: chúng ta có một hình
ảnh đầu vào có kích thước 256 × 256. Chúng ta đặt lưới 3 × 3 trên hình ảnh (xem Hình 8).

Thuật toán YOLO, bạn chỉ nhìn một lần, Joseph Redmon, Thị giác máy tính, nhận dạng mẫu,
Phát hiện đối tượng thời gian thực

Hình 8 Biểu diễn lưới (3 x 3) của hình ảnh

Tiếp theo, chúng tôi áp dụng thuật toán phân loại và bản địa hóa hình ảnh trên mỗi ô lưới. Đối
với mỗi ô lưới, biến mục tiêu được xác định là

yi, j = [pcbxbybhbwc1c2c3c4] T (6)


Làm mọi thứ một lần với cửa sổ trượt chập. Vì hình dạng của biến mục tiêu cho mỗi ô lưới là
1 × 9 và có các ô lưới 9 (3 × 3), đầu ra cuối cùng của mô hình sẽ là:

Ưu điểm của thuật toán YOLO là nó rất nhanh và dự đoán các hộp giới hạn chính xác hơn
nhiều. Ngoài ra, trong thực tế để có được dự đoán chính xác hơn, chúng tôi sử dụng lưới mịn
hơn nhiều, giả sử là 19 × 19, trong trường hợp đó, đầu ra mục tiêu có dạng 19 × 19 × 9.

You might also like