Cùng với sự phát triển khoa học kỹ thuật và nhu cầu đi lại ngày càng tăng số lượng phương tiện giao thông trên đường ngày càng xuất hiện nhiều. Với số lượng phương tiện giao thông lớn và không ngừng gia tăng như vậy đã làm nảy sinh nhiều vấn đề trong việc kiểm soát cũng như quản lý các phương tiện. Để giải quyết vấn đề này, nhu cầu đặt ra là áp dụng các hệ thống tự động để kiểm soát và quản lý hiệu quả hơn. Một trong những hệ thống như vậy là hệ thống tự động nhận dạng biển số xe, đây là một hệ thống có khả năng thu nhận hình ảnh cũng như là “đọc” và “hiểu” các biển số xe một cách tự động. Một hệ thống như vậy có thể được sử dụng trong rất nhiều các ứng dụng, chẳng hạn như: trạm cân và rửa xe tự động hoàn toàn, bãi giữ xe tự động, kiểm soát lưu lượng giao thông hay trong các ứng dụng về an ninh như tìm kiếm xe mất cắp… Như mọi hệ thống tự động khác, hệ thống như vậy cũng sẽ yêu cầu có cả phần cứng và phần mềm. Phần cứng có phần chính là một camera có tác dụng thu nhận hình ảnh còn phần mềm sẽ có tác dụng xử lý hình ảnh đó. Với sự phát triển của kỹ thuật điện tử, các camera sẽ dễ dàng thu nhận được các hình ảnh, do vậy vấn đề quan trọng nhất mang tính quyết định hiệu quả của hệ thống xử lý ảnh là phần mềm xử lý ảnh. Yêu cầu của bài toán là áp dụng các thuật toán thích hợp tìm vùng chứa biển số, trích vùng biển số, cách li các ký tự trên biển số, từ đó máy tính sẽ xử lý và nhận dạng
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN VẬT LÝ KỸ THUẬT
-o0o -
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
ĐỀ TÀI: XÂY DỰNG PHẦN MỀM NHẬN DIỆN BIỂN SỐ XE
Ô TÔ Ở VIỆT NAM
Sinh viên thực hiện : NGUYỄN VĂN ĐỊNH
Trang 2NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên sinh viên: Nguyễn Văn Định Lớp: Vật lý kỹ thuật - K58
Tên đề tài: “Xây dựng phần mềm nhận diện biển số xe ô tô ở Việt Nam”
Tính chất của đề tài:
I NỘI DUNG NHẬN XÉT: 1 Tiến trình thực hiện khóa luận:
2 Nội dung của khóa luận:
- Cơ sở lý thuyết:
- Các số liệu, tài liệu thực tế
- Phương pháp và mức độ giải quyết vấn đề:
3 Hình thức của khóa luận:
- Hình thức trình bày:
- Kết cấu của khóa luận :
4 Những nhận xét khác:
………
………
………
………
II ĐÁNH GIÁ VÀ CHO ĐIỂM - Tiến trình làm khóa luận : / 20
- Nội dung khóa luận : / 60
- Hình thức khóa luận : / 20
Tổng cộng ……/100 (Điểm : ………)
Ngày……tháng……năm 2018
GIÁO VIÊN HƯỚNG DẪN
(Ký và ghi rõ họ tên)
Trang 3NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên sinh viên: Nguyễn Văn Định Lớp: Vật lý kỹ thuật - K58
Tên đề tài: “Xây dựng phần mềm nhận diện biển số xe ô tô ở Việt Nam”
I.NỘI DUNG NHẬN XÉT
1.Nội dung của khóa luận:
2.Hình thức của khóa luận: …………
………
3.Những nhận xét khác: ………
II.ĐÁNH GIÁ VÀ CHO ĐIỂM - Nội dung khóa luận: / 80
- Hình thức khóa luận: / 20
Tổng cộng / 100 ( Điểm : )
Ngày……tháng……năm 2018
CÁN BỘ PHẢN BIỆN
(Ký và ghi rõ họ tên)
Trang 4LỜI CẢM ƠN
Trước hết tôi xin chân thành cảm ơn các thầy cô giáo trong trường ĐH Bách khoa Hà Nội nói chung, các thầy cô trong Viện Vật lý kỹ thuật nói riêng đã dạy cho tôi kiến thức về các môn đại cương cũng như các môn chuyên ngành, giúp tôi có được cơ
sở lý thuyết vững vàng và tạo điều kiện giúp đỡ tôi trong suốt quá trình học tập
Đặc biệt tôi xin gửi lời cảm ơn sâu sắc nhất tới TS.Nguyễn Hoàng Thoan, người đã không quản vất vả hướng dẫn tôi cả về tư duy khoa học cũng như đã chỉ đạo tận tình, giúp đỡ đưa ra những ý kiến quý giá trong suốt thời gian làm việc và cả trong việc sửa chữa bản thảo này một cách chi tiết nhất để tôi hoàn thành đồ án tốt nghiệp này
Cuối cùng, tôi xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện, quan tâm, giúp đỡ, động viên tôi trong suốt quá trình học tập tại trường Đại học Bách khoa Hà Nội
Nhờ đồ án này mà tôi bổ sung thêm nhiều kiến thức quý giá, nhiều kinh nghiệm thực tế Tuy nhiên, do kiến thức còn hạn hẹp, kinh nghiệm chưa nhiều nên chắc chắn
sẽ không tránh khỏi thiếu sót Rất mong nhận được sự đóng góp của quý thầy cô cũng như độc giả để cho đồ án được hoàn chỉnh hơn
Xin chân thành cảm ơn
Hà Nội, tháng 1, năm 2019
Sinh viên thực hiện Nguyễn Văn Định
Trang 51
MỤC LỤC
Danh mục hình ảnh 3
MỞ ĐẦU 5
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 6
1.1 Biển số xe ô tô ở Việt Nam 6
1.2 Tổng quan chương trình nhận diện biển số xe 7
1.2.1 Cấu trúc cơ bản của chương trình nhận diện biển số xe 7
1.2.2 Các bước xử lý dữ liệu 8
1.3 Đặc trưng LBP 9
1.3.1 Lý thuyết về LBP 9
1.3.2 Ví dụ về trích rút đặc trưng LBP trên ảnh số 15
1.4 Xác định biển số nhờ giải thuật Cascade of Classifiers trong OpenCV 17
1.5 Tesseract OCR 18
1.5.1 Sơ lược về Tesseract 18
1.5.2 Cấu trúc của Tesseract 19
1.6 Các phần mềm sử dụng trong đề tài 20
1.6.1 Visual Studio 2015 20
1.6.2 EmguCV 20
1.6.3 Aforge NET 21
CHƯƠNG 2 XÂY DỰNG GIẢI THUẬT NHẬN DIỆN BIỂN SỐ 23
2.1 Nhận diện vùng chứa biển số xe 23
2.1.1 Thu thập dữ liệu huấn luyện 23
2.1.2 Tag ảnh 23
2.1.3 Cắt ảnh 24
2.1.4 Tập huấn nhận diện vùng biển số 25
2.2 Nhận diện vùng chứa ký tự 30
2.3 Nhận diện ký tự 32
2.5 Xây dựng giao diện phần mềm 32
Trang 62
2.5.1 Tầm quan trọng 32
2.5.2 Xây dựng giao diện 34
CHƯƠNG 3 KẾT QUẢ VÀ THẢO LUẬN 35
3.1 Nhận diện vùng biển số 35
3.2 Nhận diện vùng chứa ký tự và nhận diện ký tự 37
3.3 Xây dựng phần mềm nhận diện biển số 40
3.3.1 Xây dựng giao diện 40
3.3.2 Hướng dẫn sử dụng chương trình 41
KẾT LUẬN 45
Kết luận 45
Kiến nghị 46
Tài liệu tham khảo 47
Trang 73
Danh mục hình ảnh
Hình 1 Kích thước biển xe ô tô ở Việt Nam 6
Hình 2 Cấu trúc cơ bản của chương trình nhận diện biển số xe 7
Hình 3 Các bước xử lý dữ liệu 8
Hình 4 Ví dụ về LBP và độ tương phản cục bộ C 10
Hình 5 Tập hợp các điểm xung quanh Ptt 10
Hình 6 Đặc trưng LBP cơ bản 12
Hình 7 Một số biến thể của LBP- LBP đồng dạng 12
Hình 8 Bảng thống kê các mẫu của LBP đồng dạng 13
Hình 9 Minh họa các trường hợp của LBP khi quay với góc 15 độ 14
Hình 10 Ví dụ về quá trình tính toán đặc trưng 17
Hình 11 Cấu trức của Tesseract 19
Hình 12 Hình ảnh sau khi tag 24
Hình 13 Quá trình crop ảnh 25
Hình 14 Ảnh sau khi crop 25
Hình 15 Tập ảnh dương chưa biển số 26
Hình 16 Tập ảnh ấm không chứa biển số 26
Hình 17 Minh họa các tham số x, y, w, h 27
Hình 18 Minh họa bên trong file negative.txt 28
Hình 19 Quá trình huấn luyện định vị biển số 30
Hình 20 Nhị phân hóa ảnh biển số 31
Hình 21 Khoanh vùng ký tự 32
Hình 22 Phần mềm kiểm tra nhận diện vùng biển số 35
Hình 23 Nhận diện với biển hai dòng 36
Hình 24 Nhận diện với biển một dòng 36
Hình 25 Nhận diện không thành công 37
Hình 26 Chương trình demo đọc biển số 38
Hình 27 Đọc biển hai dòng 39
Hình 28 Đọc biển một dòng 39
Hình 29 Đọc không thành công 40
Hình 30 Giao diện chương trình 41
Hình 31 Ví dụ hướng dẫn 42
Hình 32 Kết quả sau khi ấn "Nhận dạng + Ghi thẻ" 42
Hình 33 Ví dụ nhận diện sai 43
Hình 34 CHức năng sửa lỗi 44
Trang 84 Hình 35 Sửa lỗi khi nhận diện sai 45
Trang 95
MỞ ĐẦU
Cùng với sự phát triển khoa học kỹ thuật và nhu cầu đi lại ngày càng tăng số lượng phương tiện giao thông trên đường ngày càng xuất hiện nhiều Với số lượng phương tiện giao thông lớn và không ngừng gia tăng như vậy đã làm nảy sinh nhiều vấn đề trong việc kiểm soát cũng như quản lý các phương tiện Để giải quyết vấn đề này, nhu cầu đặt ra là áp dụng các hệ thống tự động để kiểm soát và quản lý hiệu quả hơn Một trong những hệ thống như vậy là hệ thống tự động nhận dạng biển số xe, đây
là một hệ thống có khả năng thu nhận hình ảnh cũng như là “đọc” và “hiểu” các biển
số xe một cách tự động
Một hệ thống như vậy có thể được sử dụng trong rất nhiều các ứng dụng, chẳng hạn như: trạm cân và rửa xe tự động hoàn toàn, bãi giữ xe tự động, kiểm soát lưu lượng giao thông hay trong các ứng dụng về an ninh như tìm kiếm xe mất cắp…
Như mọi hệ thống tự động khác, hệ thống như vậy cũng sẽ yêu cầu có cả phần cứng và phần mềm Phần cứng có phần chính là một camera có tác dụng thu nhận hình ảnh còn phần mềm sẽ có tác dụng xử lý hình ảnh đó Với sự phát triển của kỹ thuật điện tử, các camera sẽ dễ dàng thu nhận được các hình ảnh, do vậy vấn đề quan trọng nhất mang tính quyết định hiệu quả của hệ thống xử lý ảnh là phần mềm xử lý ảnh
Yêu cầu của bài toán là áp dụng các thuật toán thích hợp tìm vùng chứa biển số, trích vùng biển số, cách li các ký tự trên biển số, từ đó máy tính sẽ xử lý và nhận dạng
Từ những lý do trên, dưới sự hướng dẫn của TS.Nguyễn Hoàng Thoan, em quyết định lựa chọn đề tài “Xây dựng phần mềm nhận diện biển số xe ô tô ở Việt Nam”
Trang 106
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
1.1 Biển số xe ô tô ở Việt Nam
Ở mỗi quốc gia khác nhau, kích thước biển số khác nhau, căn cứ vào các kích thước đó để ta tính tỉ lệ xác định vùng chứa biển Ở Việt Nam, cần để ý đến một số quy định như sau:
- Ký hiệu, kích thước của chữ và số trên biển số đăng ký các loại xe thực hiện theo quy định tại Phụ lục số 02, 03 và 04 ban hành kèm theo Thông tư 36/2010/TT-BCA
- Biển số ô tô có 2 biển, 1 biển gắn phía trước và 1 biển gắn phía sau xe phù hợp với
vị trí nơi thiết kế lắp biển số của xe; Biển số có 2 loại, kích thước như sau: Loại biển
số dài có chiều cao 110 mm, chiều dài 470 mm; loại biển số ngắn có chiều cao 200
Trang 117
- Khoảng cách giữa các chữ và số: 10 mm Riêng khoảng cách giữa các số với số 1
là 20 mm
Vị trí ký hiệu trên biển số cụ thể như sau:
- Đối với biển số dài: Cảnh sát hiệu dập phía trên của gạch ngang, cách mép trên biển số 5 mm
- Đối với biển số ngắn: Cảnh sát hiệu được dập ở vị trí giữa số ký hiệu địa phương
đăng ký, cách mép trái biển số 5 mm
1.2 Tổng quan chương trình nhận diện biển số xe
1.2.1 Cấu trúc cơ bản của chương trình nhận diện biển số xe
Chương trình nhận diện biển số xe là chương trình thị giác máy tính Chương trình thị giác máy tính là phần mềm máy tính dùng để xử lý ảnh số với mục đích phân tích dữ liệu trong ảnh như:
- Đọc biển số xe máy, xe hơi trong ảnh
- Tìm kiếm và đếm vật thể xuất hiện trong ảnh
- Tracking đối tượng từ hình ảnh trong camera
- Nhận diện khuôn mặt
Cấu trúc của chương trình nhận diện biển số xe được biểu diễn trong hình
Hình 2 Cấu trúc cơ bản của chương trình nhận diện biển số xe
Dữ liệu đầu vào (input) là ảnh số được lấy từ camera, sau quá trình xử lý dữ liệu sẽ cho ta dữ liệu đầu ra (output), ở đây sẽ là biển số xe
Trong chương trình, phần cốt lõi, phần quan trọng nhất là phần xử lý dữ liệu Phần này gồm ba bước: nhận diện vùng chưa biển số, nhận diện vùng chứa ký tự rồi cách li
ký tự, nhận diện ký tự sau khi đã được tách
Trang 128
1.2.2 Các bước xử lý dữ liệu
Hình 3 Các bước xử lý dữ liệu
Nhận diện vùng chứa biển số: có rất nhiều phương pháp để nhận diện được
biển số như khớp mẫu đơn giản, hình thái học, dùng mạng nơ-ron, SVM, thuật toán LBP…
Phương pháp so khớp mẫu thì các mẫu của biển số xe được nhận dạng trước
Từ một ảnh đưa vào, tính các giá trị tương quan so với mẫu chuẩn Thông qua các giá trị tương quan này mà quyết định có hay không có tồn tại biển số xe trong ảnh Ưu điểm: Phương pháp đơn giản, dễ cài đặt Nhược điểm: Không hiệu quả khi tỷ lệ, tư thế và hình dáng thay đổi
Phương pháp hình thái học dựa vào đặc trưng là biển số xe có độ sáng là tương đối khác so với các vùng khác, cũng như sự phân bố mức xám là khá đồng đều
Vì vậy khi được nhị phân hóa, vùng biển số có đặc thù hình thái, có thể phân biệt được với các vùng khác Ưu điểm: Phương pháp đơn giản Nhược điểm: Thời gian xử lý lớn
Trang 13 Phương pháp sử dụng máy học SVM lên trên các “ứng viên” được xem như là các vùng có kết cấu rời rạc Ưu điểm: Thực hiện tương đối nhanh Nhược điểm: Nhận dạng chưa chính xác
Phương pháp sử dụng đặc trưng LBP ( Local Binary Pattern ), ưu điểm: Thuật
toán trích rút đặc trưng LBP cài đặt đơn giản, thời gian tính toán giá trị đặc trưng nhanh vì nó làm việc với giá trị nguyên, độ chính xác khá cao
Với các ưu điểm của LBP, trong đồ án em sử dụng LBP để nhận diện vùng chứa biển số
Nhận diện vùng chứa ký tự: ta tiến hành cắt riêng từng vùng hình chữ nhật nhỏ là
kí tự trong hình chữ nhật lớn chứa biển số Để làm được việc này ta có thể sử dụng phép chiếu histogram, SVM hoặc dùng contour Trong đồ, án em sử dụng contour, sau khi cắt được ảnh biển số, ta sẽ xử lý ảnh rồi tìm các contour bao lấy ký tự, sau đó ta cắt
riêng các ký tự thành các hình chữ nhật nhỏ
Nhận diện ký tự: Sau khi cắt riêng từng kí tự ta chuyển qua bước nhận diện kí tự
Có rất nhiều phương pháp nhận diện kí tự như khớp mẫu đơn giản, SVM hoặc dùng Tesseract OCR Trong đồ án, em sử dụng thư viện Tesseract OCR để nhận diện các ký
Trang 1410
Kể từ khi được đưa ra, theo định nghĩa là bất biến với những thay đổi đơn điệu trong ảnh đen trắng Để cải tiến phương pháp, bổ sung thêm phương pháp tương phản trực giao địa phương Hình dưới minh họa cách tính độ tương phản trực giao (C) là ký hiệu cấp độ xám trung bình của các điểm ảnh lớn hơn hoặc bằng ngưỡng với các điểm ảnh thấp hơn ngưỡng Phân phối hai chiều của mã LBP và độ tương phản cục bộ được lấy làm đặc trưng gọi là LBP/C
Hình 5 Tập hợp các điểm xung quanh P tt
Không mất thông tin, có thể trừ gp đi một lượng là gc
T = t(gc,g0 – gc ,…,gp – gc)
Trang 1511
Giả sử sự sai số giữa gp và gc là độc lập với gc, ta có thể nhân tử hóa gc như sau:
T = t(gc)t(g0- gc,…,gp-1- gc) t(gc) biểu thị xu hướng độ sáng tối của cả bức ảnh nên không liên quan đến kết cấu của ảnh cục bộ do đó có thể bỏ qua
T~t((g0 – gc),…,(gp-1 – gc)) Mặc dù tính bất biến ngược với độ thay đổi tỷ lệ xám của điểm ảnh, sự khác biệt ảnh hưởng bởi tỷ lệ Để thu được đặc điểm bất biến với bất kỳ một sự thay đổi nào của ảnh đen trắng (gray scale) chỉ quan tâm đến dấu của độ lệch:
Với P pixel thì có 2p giá trị LBPP,R trong khoảng [0,2p-1 ] nhưng để đơn giản ta
có thể chọn một số giá trị trong 2p giá trị ký hiệu là: 2
Trang 16Dựa trên định nghĩa này, bảng ánh xạ cho bán kính làm việc P -neighbours sẽ
có P(P-1) + 3 nhãn Có nghĩa là có 59 nhãn trong trường hợp làm việc với
Trang 178-13
neighbour Hình vẽ sau đây thể hiện 59 nhãn (mẫu) và minh họa về histogram của đặc trưng LBP đồng dạng
Hình 8 Bảng thống kê các mẫu của LBP đồng dạng
Nguyên lý phân lớp không tham biến:
Trong phân lớp, sự khác biệt giữa mẫu và mô hình phân phối LBP được đánh giả bởi kiểm tra thống kê không tham biến Phương pháp tiếp cận này có ưu điểm là không cần phải có những giả thiết về phân phối của các đặc trưng Thông thường, những kiểm tra thống kê được chọn cho mục đích là nguyên lý crossentropy được giới thiệu bởi Kullback (1968) Sau đó, Sokal và Rohlf (1969) gọi cách đo này là thống kê
Với S, M kí hiệu phân phối mẫu và mô hình mong muốn Sb và Mb là xác suất
để b thuộc vào phân phối mẫu hoặc mô hình B là số phần tử trong phân phối Thống
kê G sử dụng trong phân lớp có thể viết lại như sau:
1( , ) B blog b
b
Trang 1814
Kiến trúc mô hình có thể xem như xử lý ngẫu nhiên có đặc tính có thể xác định bởi phân phối LBP Trong một phân lớp đơn giản , mỗi lớp được biểu diễn bởi một mô hình phân phối đơn giản Mi Tương tự , một kiến trúc mẫu không xác định có thể miêu
tả bởi phân phối S L là một giả ma trận đo khả năng mẫu S có thể thuộc lớp i
Lớp C của một mẫu không xác định có thể được xác định bởi luật “hàng xóm gần nhất”: C = argmini L(S, Mi)
Bên cạnh đó, một thống kê log- likelihood có thể xem như đơn vị đo sự khác biệt và có thể sử dụng để liên kết nhiều bộ phân lớp giống như bộ phân lớp k-NN hoặc self-oganizing map (SOM) Log-likelihood đúng trong một số trường hợp nhưng không ổn định khi mà cỡ mẫu nhỏ.Trong trường hợp này Chi-square- distance thường cho kết quả tốt hơn:
Hình 9 Minh họa các trường hợp của LBP khi quay với góc 15 độ
LBP đồng dạng có khả năng bất biến với phép quay Kết hợp của mẫu LBP đồng dạng và LBP bất biến với phép quay có thể tạo nên một dạng biến thể khác của LBP (uniform rotation – invariant LBP) Dựa trên định nghĩa này, bảng ánh xạ cho bán kính làm việc P-neighbors sẽ có P + 2 nhãn (label) Có nghĩa là có 10 nhãn trong trường hợp làm việc với 8-neighbour
Trang 1915
Để không bị ảnh hưởng bởi sự quay, mỗi giá trị LBP cần quay ngược lại về vị trí ban đầu, cách tốt nhất là tạo ra tất cả các trường hợp quay của một mẫu, sự quay có thể định nghĩa như sau:
, min{ ( , , ) 0,1, , 1}
ri
Trong đó ri là viết tắt của rotation invariant (quay bất biến), ROR(x,i) dịch
vòng tròn số nhị phân P - bit (x) i lần theo chiều kim đồng hồ
Độ tương phản và kết cấu mẫu:
Kết cấu có thể được coi là một hiện tượng hai chiều được đặc trưng bởi hai đặc tính trực giao: cấu trúc không gian (mô hình) và độ tương phản (độ mạnh của mô hình) Quay bất biến tương phản địa phương có thể được đo trong một hình tròn đối xứng xung quanh giống như LBP:
Trang 2016
Trang 2117
Hình 10 Ví dụ về quá trình tính toán đặc trưng
1.4 Xác định biển số nhờ giải thuật Cascade of Classifiers trong OpenCV
Cascade of Classifiers - nghĩa là “Phân lớp theo tầng” Dựa trên những đặc trưng LBP của đối tượng mà thuật toán tiến hành rút trích ra các đặc trưng của đối tượng Do đối tượng nhận dạng có nhiều hình dạng khác nhau nên phải phân tầng nhận dạng Thuật toán Cascade of Classifiers tiến hành phân ra thành các giai đoạn (gọi là stage), các vùng hình chữ nhật nghi ngờ phải đạt ngưỡng đúng (threshold) của tất cả các giai đoạn được xác định là chứa đối tượng Trong một giai đoạn có nhiều cây
Trang 22-Giai đoạn 1: ngưỡng 10%
Đặc trưng 1 có ngưỡng 11%: qua giai đoạn tiếp theo Đặc trưng 2 có ngưỡng 9%: lớp âm
-Giai đoạn 2: ngưỡng 15%
Đặc trưng 1 có ngưỡng 16%: qua giai đoạn tiếp theo Đặc trưng 2 có ngưỡng 14%: lớp âm
… -Giai đoạn n: ngưỡng xx%
Đặc trưng 1 có ngưỡng >xx%: lớp dương Đặc trưng 2 có ngưỡng <xx%: lớp âm
Số lượng giai đoạn và ngưỡng quyết định bởi dữ liệu học và các tham số khác
do người dùng chỉ định Để có thể nhận dạng thuật toán tiến hành lấy mẫu từ 2 tập dữ liệu: tập ảnh dương bao gồm ảnh chứa đối tượng và tập ảnh âm không chứa đối tượng Tiến hành học dựa trên các ảnh này Dữ liệu học càng nhiều thì nhận diện càng chính xác, bao gồm cả ảnh dương và ảnh âm, bù lại thì thời gian huấn luyện lâu hơn
Nếu vùng nghi ngờ được xác định đúng là đối tượng thì thuật toán trả về những khung hình chữ nhật Ngược lại thuật toán sẽ không xác định được đối tượng và trả về false
1.5 Tesseract OCR
1.5.1 Sơ lược về Tesseract
Tesseract bộ công cụ nhận diện ký tự quang học (Optical Character Recognition – OCR) thương mại, được phát triển bởi hãng HP giữa những năm 1985 và 1995 Nó được biết như là một phần mềm thêm vào cho dòng sản phẩm máy quét của HP Trong giai đoạn này, nó vẫn còn rất sơ khai và chỉ được dùng để cải thiện chất lượng của các bản in Nó được phát triển cho đến năm 1994 thì ngưng Sau khi cải thiện độ chính xác, nó được HP đưa vào cuộc kiểm tra thường niên về độ chính xác của các công cụ
Trang 2319
OCR và nó đã thể hiện được sự vượt trội của mình Sau đó, được mở mã nguồn vào năm 2005 và phát triển tại Google
1.5.2 Cấu trúc của Tesseract
Hình 11 Cấu trức của Tesseract
Tạo ngưỡng thích nghi giúp loại bỏ các yếu tố nền của hình ảnh (ví dụ: ánh sáng, bóng, …) và giúp phân tích các pixel thành ảnh nhị phân
Nhận dạng được tiến hành qua một quá trình với hai lần nhận dạng Lần thứ nhất, nhận ra lần lượt từng từ Mỗi từ có nghĩa là đạt yêu cầu, được thông qua và được lưu vào dữ liệu Lần thứ hai, khi phân loại thích ứng, công cụ sẽ nhận dạng lại các từ không được nhận dạng tốt ở lần trước đó
Xác định dòng và từ nhằm mục đích làm giảm sự mất thông tin khi nhận dạng ảnh nghiêng Tesseract nhận biết dòng văn bản nhờ vào các dòng cơ sở Nhận dạng từ là quá trình phân tích một từ và phụ thuộc vào từ được chia ra thành các ký tự
Trang 2420
1.6 Các phần mềm sử dụng trong đề tài
1.6.1 Visual Studio 2015
Là IDE rất nổi tiếng của Microsoft hỗ trợ nhiều ngôn ngữ lập trình, nổi tiếng nhất
là C# và C/C++ Visual Studio hỗ trợ rất nhiều tính năng hữu ích cho lập trình viên trong việc viết code, debug và hoàn thiện sản phẩm
Visual Studio có nhiều phiên bản khác nhau theo năm, hiện tại em chọn Visual Studio 2015 Community vì đây là phiên bản miễn phí nhưng đủ các tính năng cần thiết Phiên bản này cũng khá nhẹ, dễ cài đặt và sử dụng
Trong đề tài này project C# là project chính
Visual Studio 2015 chạy tốt trên hệ điều hành Windows 7, Windows 10 Tuy nhiên nhà sản xuất khuyến khích nên sử dụng Windows 10 để đạt tính tương thích tốt nhất
Trang chủ: https://www.visualstudio.com/
1.6.2 EmguCV
OpenCV là một thư viện mã nguồn mở hàng đầu cho thị giác máy tính (computer vision), xử lý ảnh và máy học, và các tính năng tăng tốc GPU trong hoạt động thời gian thực
OpenCV được phát hành theo giấy phép BSD, do đó nó hoàn toàn miễn phí cho cả học thuật và thương mại Nó có các interface C++, C, Python, Java và hỗ trợ Windows, Linux, Mac OS, iOS và Android OpenCV được thiết kế để tính toán hiệu quả và với sự tập trung nhiều vào các ứng dụng thời gian thực Được viết bằng tối ưu hóa C/C++, thư viện có thể tận dụng lợi thế của xử lý đa lõi Được sử dụng trên khắp thế giới, OpenCV có cộng đồng hơn 47 nghìn người dùng và số lượng download vượt
Trang 2521
quá 6 triệu lần Phạm vi sử dụng từ nghệ thuật tương tác, cho đến lĩnh vực khai thác
mỏ, bản đồ trên web hoặc công nghệ robot
Tuy nhiên Opencv không hỗ trợ C#, do đó em dùng EmguCV EmguCV là
hàm OpenCV được gọi từ các ngôn ngữ tương thích NET như C #, VB, VC ++,
Bản thân Opencv cũng có thể lấy hình ảnh từ camera, tuy nhiên Aforge cho biết có bao nhiêu camera đang sử dụng để người dùng lựa chọn camera phù hợp Còn Opencv chỉ lấy hình ảnh từ camera được chỉ định, nghĩa là người dùng phải biết rõ ID của camera cần sử dụng trong trường hợp PC có nhiều camera
Do đó em sử dụng Aforge để người dùng dễ dàng chọn lựa và thay đổi camera nhanh chóng, tiện lợi nhất
Trang 2622
Thư viện Aforge hỗ trợ ngôn ngữ C#, chạy tốt trên NET framework 3.5 trở lên, hệ điều hành từ Windows 7 trở lên
Trang chủ: http://www.aforgenet.com/