Để góp phần nâng cao ý thức chấp hành luật giao thông của người điều khiển phương tiện và tiết kiệm được thời gian và nhân sự cho lực lượng cảnh sát giao thông khi tiến hành nhiệm vụ thự
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG TP HỒ CHÍ MINH
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
1 PGS.TS Lê Tiến Thường
CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA ĐIỆN – ĐIỆN TỬ
PGS.TS Lê Tiến Thường TS Đỗ Hồng Tuấn
Trang 3NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ và tên học viên: PHAN LÊ CƯỜNG
Ngày tháng năm sinh: 18/6/1989
Chuyên ngành: Kỹ thuật Điện tử
MSHV: 12214180 Nơi sinh: An Giang MS: 60 52 70
I TÊN ĐỀ TÀI
Kiểm soát và xử lý vi phạm giao thông tự động
II NHIỆM VỤ
Tìm hiểu, nghiên cứu các kỹ thuật và phương pháp xử lý ảnh số
Thiết kế một chương trình xác định lỗi vi phạm và biển số của các phươngtiện tham gia giao thông đường bộ
III NGÀY GIAO NHIỆM VỤ
CÁN BỘ HƯỚNG DẪN TRƯỞNG BỘ MÔN VIỄN THÔNG
PGS.TS Hồ Văn Khương TS Huỳnh Phú Minh Cường
TRƯỞNG KHOA ĐIỆN – ĐIỆN TỬ
TS Đỗ Hồng Tuấn
Trang 4LỜI CẢM ƠN
Lời đầu tiên, tôi xin trân trọng gửi lời cảm ơn chân thành đến các giảng viên Khoa Điện – Điện tử, Trường Đại học Bách khoa – ĐHQG Tp Hồ Chí Minh đã giảng dạy, truyền đạt cho tôi những kiến thức, kinh nghiệm quý báu
về lĩnh vực chuyên môn, giúp tôi có được nền tảng cơ bản để thực hiện luận văn và áp dụng vào thực tiễn cuộc sống
Đặc biệt, tôi xin bày tỏ lời cảm ơn sâu sắc đến thầy PGS.TS Hồ Văn Khương, Bộ môn Viễn thông, Khoa Điện – Điện tử, Trường Đại học Bách khoa – ĐHQG Tp Hồ Chí Minh vì sự định hướng, chỉ dẫn, truyền đạt những kiến thức bổ ích của thầy cho tôi trong quá trình thực hiện luận văn
Tôi cũng xin gửi lời cảm ơn đến các bạn học viên đã hỗ trợ, chia sẻ, giúp đỡ tôi trong thời gian cùng nhau học tập tại trường Đại học Bách khoa Bên cạnh đó, tôi xin gửi lời cảm ơn đến gia đình, người thân và đồng nghiệp đã động viên, giúp đỡ tôi về vật chất lẫn tinh thần trong suốt thời gian thực hiện luận văn
Cuối cùng, xin kính chúc Quý thầy, cô, gia đình, người thân, bạn bè và đồng nghiệp nhiều sức khỏe, hạnh phúc và gặt hái được nhiều thành công trong cuộc sống
Tp Hồ Chí Minh, ngày 02 tháng 12 năm 2015
Học viên Phan Lê Cường
Trang 5TÓM TẮT
Tai nạn giao thông là một vấn đề nan giải xảy ra hàng ngày, hàng giờ ở hầu hết các quốc gia trên thế giới và không loại trừ Việt Nam Để góp phần nâng cao ý thức chấp hành luật giao thông của người điều khiển phương tiện
và tiết kiệm được thời gian và nhân sự cho lực lượng cảnh sát giao thông khi
tiến hành nhiệm vụ thực thi pháp luật về trật tự an toàn giao thông, đề tài
“Kiểm soát và xử lý vi phạm giao thông tự động” được trình bày có chức năng kiểm soát và tự động phát hiện một số lỗi vi phạm như vượt đèn đỏ, lấn làn, nhận dạng biển số của phương tiện, lưu trữ, thống kê, tra cứu thông tin về lỗi
vi phạm, biển số của phương tiện vi phạm Áp dụng các kỹ thuật xử lý ảnh để tiến hành nhận dạng biển số, xác định lỗi vi phạm từ nguồn video của camera giám sát giao thông tại địa phương Kết quả chạy thử nghiệm chương trình cho thấy khả năng nhận dạng chính xác biển số từ tập tin ảnh là 90% bao gồm cả
xe máy và xe ô tô, có khả năng phát hiện được tất cả những phương tiện vi phạm nằm trong vùng kiểm tra lỗi, tuy nhiên với nguồn dữ liệu video thu nhận được thì khả năng nhận dạng biển số của chương trình còn chưa hiệu quả, có trường hợp nhận dạng sai hoặc thiếu ký tự trong biển số vì một số nguyên nhân được trình bày cụ thể ở phần kết quả thử nghiệm hệ thống Một số đề xuất nhằm cải thiện kết quả nhận dạng cũng như gia tăng tính hiệu quả, mở rộng thêm các chức năng cũng được trình bày ở phần kết luận và hướng phát triển của luận văn
Trang 6ABSTRACT
Traffic accident is a problem that happens every day, every hour in most countries around the world and do not exclude Vietnam To help raise awareness observance of traffic rules of vehicle’s operators and to save time and human resource for the police force when conducting law enforcement duties on traffic safety and order, the subject "Automatically control and process in traffic violations" is presented with functions of controlling and automatically detecting kinds of violations, such as red light violation, road lane violation, recognition of vehicle’s license plate, storage, statistics, finding information of violations, license plate of vehicles Some image processing techniques is applied to conduct recognition of vehicle’s license plate and identify the violation from the video of traffic surveillance cameras The results showed that the ability of accurately recognizing the license plate from the image file is 90% including motorcycles and cars, and the system is able to detect all vehicles in the violation error checking region However, with video data source acquired, the license plate recognition’s capability of the program was not effective in some cases, which cause misidentification or lack of character on the license plate for some reasons that have been presented at the system test results Some suggestions for improving recognition results as well
as increased efficiency, extended functions are also presented in the conclusion and development direction of the thesis
Trang 7LỜI CAM ĐOAN
Tôi xin cam đoan đây là đề tài hoàn toàn do tôi thực hiện Tất cả các nội dung về thiết kế, giải thuật, chương trình, kết quả chạy chương trình đều trung thực và không thuộc bất kỳ công trình nghiên cứu nào đã công bố
Tp Hồ Chí Minh, ngày 02 tháng 12 năm 2015
Tác giả
Phan Lê Cường
Trang 8MỤC LỤC
TÓM TẮT 4
ABSTRACT 5
LỜI CAM ĐOAN 6
KÝ HIỆU VÀ VIẾT TẮT 9
DANH MỤC CÁC BẢNG 10
DANH MỤC CÁC HÌNH 11
Chương I 13
GIỚI THIỆU 13
1 Lý do chọn đề tài 13
2 Mục đích nghiên cứu 14
3 Đối tượng và phạm vi nghiên cứu 14
4 Phương pháp nghiên cứu 15
5 Tổng quan tình hình nghiên cứu trong và ngoài nước 15
5.1 Về hệ thống xử lý vi phạm giao thông bằng hình ảnh 15
5.2 Về các công trình nghiên cứu liên quan đến đề tài 18
6 Sơ lược về đề tài 19
7 Bố cục luận văn 22
Chương II 23
CƠ SỞ LÝ THUYẾT 23
1 Tổng quan về xử lý ảnh 23
1.1 Giới thiệu về xử lý ảnh 23
1.2 Quy trình xử lý ảnh 23
2 Không gian màu và các phép biến đổi 26
2.1 Không gian màu 26
2.2 Các phép biến đổi không gian màu 29
3 Biến đổi Hough 30
4 Kỹ thuật phát hiện biên Canny 31
5 Nhận dạng ký tự quang học 33
5.1 Tổng quan về nhận dạng ký tự quang học 33
5.2 Các phương pháp nhận dạng quang học 34
5.3 So sánh các thư viện nhận dạng ký tự quang học 35
5.4 Giới thiệu bộ nhận dạng ký tự quang học Tesseract 37
6 Giới thiệu thư viện xử lý ảnh EmguCV 39
Chương III 41
TRIỂN KHAI GIẢI THUẬT 41
1 Phương pháp xác định biển số xe 41
Trang 91.1 Thu nhận hình ảnh 41
1.2 Tách biển số xe 43
1.3 Phân đoạn ký tự 49
1.4 Nhận dạng ký tự 50
2 Phương pháp phát hiện lỗi vượt đèn đỏ và lấn làn 51
2.1 Phát hiện phương tiện vượt đèn đỏ 51
2.2 Phát hiện phương tiện vi phạm làn đường 53
2.3 Phương pháp xác định vùng kiểm tra lỗi 54
Chương IV 59
CHƯƠNG TRÌNH XỬ LÝ 59
1 Biểu đồ phân cấp chức năng của chương trình 60
2 Mô hình tổng quan của chương trình xử lý 61
2.1 Mô hình use case 61
2.2 Danh sách các tác nhân và mô tả 62
2.3 Danh sách use case và mô tả 63
2.4 Đặc tả yêu cầu các chức năng trong chương trình 63
2.5 Công cụ xây dựng chương trình 69
2.6 Thiết kế giao diện chương trình 69
Chương V 71
KẾT QUẢ THỰC HIỆN 71
1 Nhận dạng biển số 71
1.1 Kết quả 71
1.2 Nhận xét 74
2 Phát hiện lỗi vi phạm 75
2.1 Kết quả 75
2.2 Nhận xét 78
3 Truy vấn cơ sở dữ liệu 79
3.1 Thống kê báo cáo 79
3.2 Tra cứu 79
3.3 Trích xuất văn bản thông báo vi phạm 80
Chương VI 82
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 82
1 Kết luận 82
2 Hướng phát triển 83
TÀI LIỆU THAM KHẢO 84
Trang 10KÝ HIỆU VÀ VIẾT TẮT
Trang 11DANH MỤC CÁC BẢNG
Bảng 1 Kích thước biển số xe theo quy chuẩn Việt Nam 46
Bảng 2 Danh sách các tác nhân và mô tả 62
Bảng 3 Danh sách các use case và mô tả 63
Bảng 4 Đặc tả chức năng xác định biển số 64
Bảng 5 Đặc tả chức năng phát hiện lỗi vượt đèn đỏ 65
Bảng 6 Đặc tả chức năng phát hiện lỗi vi phạm làn đường 66
Bảng 7 Đặc tả chức năng truy vấn cơ sở dữ liệu 67
Bảng 8 Kết quả thử nghiệm hệ thống với ảnh chụp biển số phương tiện 73
Trang 12DANH MỤC CÁC HÌNH
Hình 1.1 Camera phát hiện vi phạm giao thông ở Mỹ 15
Hình 1.2 Camera phát hiện vi phạm giao thông ở Nhật 16
Hình 1.3 Camera phát hiện vi phạm giao thông tại Đồng Nai 16
Hình 1.4 Camera phát hiện vi phạm vượt đèn đỏ tại Đắk lắk 17
Hình 1.5 Vị trí thu hình từ camera giám sát giao thông 20
Hình 1.6 Sơ đồ chức năng của chương trình xử lý 21
Hình 2.1 Các bước cơ bản trong xử lý ảnh 24
Hình 2.2 Không gian màu RGB 26
Hình 2.3 Không gian màu HSV 27
Hình 2.4 Hình tròn biểu diễn màu sắc (Hue) 27
Hình 2.5 Không gian màu CMYK 29
Hình 2.6 Quá trình nhận dạng ký tự quang học 35
Hình 2.7 Kiến trúc tổng thể thư viện Tesseract 39
Hình 2.8 Cấu trúc thư viện EmguCV 39
Hình 3.1 Sơ đồ tổng quát khối tách biển số 43
Hình 3.2 Sơ đồ quá trình nhận dạng biển số 43
Hình 3.3 Minh họa ảnh tối và ảnh sáng 45
Hình 3.4 Ảnh sau khi nhị phân 45
Hình 3.5 Biển số xe trong trường hợp bị nghiêng 46
Hình 3.6 Biển số sau khi nhị phân 47
Hình 3.7 Cắt biển số với vùng biên an toàn 47
Hình 3.8 Ảnh chụp ban đầu 48
Hình 3.9 Ảnh cắt biển số với vùng biên an toàn 48
Hình 3.10 Ảnh biển số sau khi được nhị phân 49
Hình 3.11 Khoanh vùng và cắt vùng đèn đỏ trên camera 51
Hình 3.12 Chuyển đổi ảnh vùng đèn đỏ từ RGB sang HSV 52
Hình 3.13 Ảnh kênh màu Hue với bộ lọc Canny lấy vùng màu đỏ 52
Hình 3.14 Lỗi vi phạm vượt đèn đỏ 53
Hình 3.15 Lỗi vi phạm làn đường 53
Hình 3.16 Capture frame từ camera để xác định vùng kiểm tra lỗi 54
Hình 3.17 Xác định vùng kiểm tra lỗi vượt đèn đỏ 55
Trang 13Hình 3.18 Xác định vùng kiểm tra lỗi lấn làn 55
Hình 3.19 Minh họa đường thẳng trong trục tọa độ Đêcac 56
Hình 3.20 Minh họa đường thẳng trong trục tọa độ của OpenCV 57
Hình 3.21 Các đặc trưng Haar Like 58
Hình 4.1 Biểu đồ phân cấp chức năng của chương trình 60
Hình 4.2 Mô hình use case của hệ thống 62
Hình 4.3 Mô hình use case chức năng nhận dạng biển số xe 65
Hình 4.4 Mô hình use case chức năng phát hiện vượt đèn đỏ 66
Hình 4.5 Mô hình use case chức năng phát hiện vi phạm làn đường 67
Hình 4.6 Mô hình use case chức năng truy vấn cơ sở dữ liệu 68
Hình 4.7 Mô hình thiết kế giao diện chương trình 69
Hình 4.8 Giao diện chính của chương trình 70
Hình 5.1 Kết quả chạy chương trình với ảnh biển số xe máy 72
Hình 5.2 Kết quả chạy chương trình với ảnh biển số xe ô tô 72
Hình 5.3 Kết quả chạy chương trình với nguồn video 73
Hình 5.4 Thiết lập vùng kiểm tra lỗi vượt đèn đỏ 76
Hình 5.5 Các phương tiện bị phát hiện vượt đèn đỏ 76
Hình 5.6 Phương tiện vi phạm lỗi vượt đèn đỏ bị ghi nhận biển số 77
Hình 5.7 Thống kê các phương tiện và lỗi vi phạm trong ngày 79
Hình 5.8 Tra cứu cơ sở dữ liệu bằng biển số của phương tiện 79
Hình 5.9 Kết quả tra cứu phương tiện vi phạm 80
Hình 5.10 Kết quả trích xuất văn bản thông báo vi phạm 81
Trang 14Để đảm bảo trật tự an toàn giao thông, giảm thiểu tai nạn thì điều quan trọng nhất là phải nâng cao ý thức của người tham gia giao thông Việc tuyên truyền, giáo dục ý thức tham gia giao thông cho mọi người là một giải pháp cơ bản và xuyên suốt, tuy nhiên đối với nhiều người chỉ có tác dụng nhất thời, việc chấp hành các quy định chỉ được thực hiện tốt khi có mặt CSGT, do vậy
Trang 15cần phải có giải pháp bao quát, linh động, kịp thời, không cần thiết sự hiện
diện thường xuyên của CSGT Từ yêu cầu đó, ý tưởng về đề tài “Kiểm soát và
xử lý vi phạm giao thông tự động” được hình thành Theo đó, với chức năng
kiểm soát và xử lý tự động thông qua camera giao thông, một số lỗi vi phạm của người tham gia giao thông có thể bị phát hiện và ghi nhận mà không cần
sự phát hiện trực tiếp của CSGT, căn cứ vào các lỗi được ghi nhận từ camera,
cơ quan có thẩm quyền sẽ ra quyết định xử phạt tương ứng Do đó dù không
có CSGT tuần tra kiểm soát nhưng người điều khiển phương tiện tham gia giao thông đường bộ vẫn bị xử phạt nếu vi phạm một số quy định về trật tự an toàn giao thông Từ đó bản thân người tham gia giao thông vì sợ bị xử phạt sẽ
có ý thức chấp hành luật giao thông tốt hơn, loại bỏ được thói quen chấp hành theo kiểu đối phó khi gặp CSGT Việc kiểm soát và xử lý vi phạm giao thông
tự động cũng góp phần tiết kiệm được thời gian và nhân sự cho lực lượng CSGT khi tiến hành nhiệm vụ thực thi pháp luật về trật tự an toàn giao thông
2 Mục đích nghiên cứu
Tìm hiểu các phương pháp, kỹ thuật xử lý ảnh số nhằm phát hiện và nhận dạng biển số, phát hiện phương tiện vi phạm giao thông Từ đó, thiết kế một chương trình xử lý video thu được từ camera giao thông để xác định lỗi vi phạm của các phương tiện tham gia giao thông, ghi nhận hình ảnh vi phạm và xác định biển số của phương tiện vi phạm, thống kê số lượng phương tiện và các lỗi vi phạm, tra cứu biển số phương tiện
3 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu của đề tài này là video từ camera giám sát các phương tiện tham gia lưu thông trên đường Trong đó, các loại phương tiện giao thông đường bộ như xe máy, xe con, xe tải, xe buýt là đối tượng được kiểm soát thông qua camera ghi hình từ phía sau của phương tiện
Phạm vi nghiên cứu của đề tài là tập trung đi sâu vào nghiên cứu, thiết
kế một chương trình xử lý áp dụng và cải tiến các kỹ thuật xử lý ảnh, video để xác định một số lỗi vi phạm cơ bản như vượt đèn đỏ, lấn tuyến và xác định biển số của các phương tiện tham gia giao thông
Trang 164 Phương pháp nghiên cứu
Tìm kiếm, thu thập các tin tức, tài liệu, bài báo, công trình nghiên cứu
có liên quan đến đề tài
Thu thập hình ảnh biển số xe và video từ camera giám sát giao thông để tiến hành xử lý và thử nghiệm
Nghiên cứu, kết hợp các phương pháp xử lý ảnh số để xác định lỗi vi phạm và phân tách biển số của phương tiện
Tìm hiểu ngôn ngữ lập trình C# trên nền tảng NET của Microsoft và thư viện xử lý ảnh EmguCV để triển khai các thuật toán và phương pháp xử lý ảnh trong chương trình
Nhận xét, đánh giá các kết quả thu được trong từng trường hợp cụ thể
để rút ra kết luận về các phương pháp và giải thuật đã áp dụng cũng như đề xuất các hướng phát triển tiếp theo
5 Tổng quan tình hình nghiên cứu trong và ngoài nước
5.1 Về hệ thống xử lý vi phạm giao thông bằng hình ảnh
Hiện nay, trên thế giới đã có nhiều quốc gia nghiên cứu và áp dụng hệ thống giám sát giao thông bằng hình ảnh, sử dụng camera gắn cố định ở các tuyến đường nhằm giám sát các phương tiện tham gia lưu thông trên đường, đi kèm với hệ thống giám sát là trung tâm xử lý để phát hiện các trường hợp vi phạm luật giao thông
Hình 1.1 Camera phát hiện vi phạm giao thông ở Mỹ
Trang 17Hình 1.2 Camera phát hiện vi phạm giao thông ở Nhật
Các hệ thống camera giám sát và phát hiện vi phạm giao thông đã được
sử dụng rộng rãi ở các quốc gia phát triển thế giới và mang lại hiệu quả cao Ở Việt Nam, vào tháng 6 năm 2012, tại Diễn đàn cấp cao Công nghệ thông tin – Truyền thông Việt Nam (Viet Nam ICT 2012) tổ chức tại Hà Nội, Công ty Cổ phần Biển Bạc đã ra mắt giải pháp phần mềm STM01 ứng dụng trong quản lý phương tiện và phát hiện vi phạm giao thông Phần mềm này kết hợp với các camera gắn tại các ngã ba, ngã tư, các tuyến cao tốc và các điểm đen về tai nạn giao thông giúp phát hiện các trường hợp vi phạm như vượt đèn đỏ, đi sai làn đường, đi ngược chiều, dừng đỗ không đúng nơi quy định và vượt quá tốc độ
Hình 1.3 Camera phát hiện vi phạm giao thông tại TP Biên Hòa (Đồng Nai)
Trang 18Tính đến tháng 7 năm 2015, công ty Biển Bạc đã triển khai hệ thống này đến 09 tỉnh, thành phố ở Việt Nam như Hà Nội, Tây Ninh, Kiên Giang, Đồng Nai, Quảng Nam, Quảng Ngãi, Đà Nẵng, Đắk lắk, Cần Thơ 1 Các dự án được triển khai có giá trị từ hàng chục tỷ đồng đến hàng trăm tỷ đồng bao gồm chi phí về thiết bị, phần mềm, cơ sở hạ tầng, lắp đặt,… So với giải pháp mà luận văn này triển khai là chỉ cần có một camera quan sát từ phía sau của phương tiện thì giải pháp STM01 cần ít nhất 02 camera hoặc hơn để triển khai tại một nút giao thông nhằm phát hiện vi phạm2, Hình 1.4 mô tả vị trí các camera phát hiện vi phạm vượt đèn đỏ tại một nút giao thông trong dự án STM01 mà công ty Biển Bạc triển khai
Hình 1.4 Camera phát hiện vi phạm vượt đèn đỏ tại Đắk lắk
(Nguồn ảnh: Công ty cổ phần Biển Bạc, bieu-n958/Bien-Bac-trien-khai-du-an-giam-sat-phat-hien-xu-ly-vi-pham-giao-thong-
http://bienbacsecurity.com.vn/en/Cong-trinh-tieu-STM01-tai-Dak-Lak-d806)
Theo đó, giải pháp mà công ty Biển Bạc thực hiện là triển khai 03 camera có độ phân giải cao, trong đó một camera có nhiệm vụ xác định màu của đèn tín hiệu giao thông, 02 camera còn lại có nhiệm vụ ghi hình ảnh biển
số của phương tiện, mỗi camera ứng với một làn đường nhằm thu được hình ảnh biển số rõ nét và ít bị lệch nhất so với giải pháp sử dụng một camera mà
1
Công ty Cổ phần Biển Bạc “Tổng hợp các dự án giao thông Biển Bạc đã triển khai” http://bienbacsecurity.com.vn/en/Cong-trinh-tieu-bieu-n958/Tong-hop-cac-du-an-giao-thong-Bien-Bac-da- trien-khai-d847
2
pham-giao-thong-bang-hinh-anh-STM01-d709
Trang 19http://www.bienbacsecurity.com.vn/en/Giai-phap-tham-khao-h974/Giai-phap-phat-hien-va-xu-phat-vi-đề tài này đưa ra Tuy nhiên, điều này sẽ dẫn đến chi phí triển khai gia tăng đáng kể khi phải gắn thêm các camera chụp biển số của phương tiện và gia tăng tính phức tạp trong việc kết nối và xử lý luồng dữ liệu từ các camera Vì vậy, để tránh sự gia tăng chi phí và độ phức tạp về cơ sở hạ tầng so với dự án STM01 của công ty Biển Bạc thì giải pháp của đề tài này chỉ sử dụng một camera duy nhất vừa xác định đèn đỏ, vừa xác định vùng vi phạm và xác định biển số của phương tiện Với giải pháp này, đòi hỏi cần phải có các bước tiền
xử lý ảnh hiệu quả nhằm giảm thiểu sự ảnh hưởng của khoảng cách, góc nghiêng trong ảnh chụp biển số từ một camera gắn cố định để có thể nhận dạng được biển số các phương tiện một cách chính xác
5.2 Về các công trình nghiên cứu liên quan đến đề tài
Liên quan đến lĩnh vực xử lý ảnh từ camera giao thông, hiện nay trên thế giới có nhiều công trình nghiên cứu về các khía cạnh có liên quan như phân loại phương tiện, đếm lưu lượng phương tiện tham gia giao thông, xác định làn đường, xác định biển số, xác định màu sắc đèn tín hiệu và biển báo giao thông để cảnh báo cho người lái xe Trong các bài báo được trình bày ở các hội nghị và tạp chí uy tín trên thế giới, các tác giả đã đưa ra những giải thuật và phương pháp cải tiến, kết hợp các giải thuật nhằm đạt được những kết quả tối ưu nhất
Trong đó, các thuật toán xử lý ảnh dùng để xác định biển số rất đa dạng
và đã có nhiều nghiên cứu, thử nghiệm như Hough Transform [5], Gabor Transform [7], Morphology-based [12], AdaBoost [8], Edged-based and Color-aided [19] hoặc sử dụng thư viện nhận dạng ký tự quang học Tesseract của HP nghiên cứu và phát triển [22, 23, 24] Theo đó, phương pháp Edged-based and Color-aided là đơn giản và cần ít thời gian để xử lý nhất, tuy nhiên
độ chính xác không cao nên chỉ thích hợp cho các ứng dụng real-time Phương pháp sử dụng Gabor Transform có khả năng nhận dạng biển số cao nhất nhưng mất khá nhiều thời gian do tính phức tạp của giải thuật và dễ bị ảnh hưởng bởi điều kiện môi trường nên không thích hợp cho các ứng dụng real-time và điều kiện thời tiết, môi trường ở Việt Nam Phương pháp sử dụng thư viện nhận dạng ký tự quang học Tesseract cho kết quả tốt trong việc nhận dạng ký tự trên biển số [22] vì số lượng ký tự ở biển số là không nhiều và theo một quy
Trang 20chuẩn cụ thể Ở đề tài này, người thực hiện lựa chọn sự cân đối về khả năng nhận dạng ký tự, thời gian xử lý nên thư viện Tesseract được tích hợp và kết hợp với một vài bước tiền xử lý ảnh để xác định biển số của phương tiện Ngoài các nghiên cứu về nhận dạng biển số thì một vài công trình nghiên cứu khác có liên quan đến đề tài như xác định đèn tín hiệu giao thông, nhận dạng xe cũng được quan tâm đến, các phương pháp Fuzzy, morphology [3, 6], HSI color model [14], Laplacian edge detection [11, 14], Canny edge detection [9, 20] là các phương pháp được các tác giả sử dụng khi nghiên cứu
về nhận dạng hình ảnh, video về lĩnh vực giao thông đường bộ
6 Sơ lược về đề tài
Đề tài Kiểm soát và xử lý vi phạm giao thông tự động giới hạn ở một số chức năng cơ bản do quỹ thời gian và kinh phí thực hiện luận văn hạn chế, tuy nhiên cho phép khả năng cải tiến, mở rộng hơn nữa trong tương lai Các chức năng của đề tài bao gồm:
- Tự động phát hiện phương tiện vượt đèn đỏ
- Tự động phát hiện phương tiện lưu thông, dừng đỗ không đúng làn đường quy định
- Xác định biển số của phương tiện
- Tra cứu biển số phương tiện vi phạm
- Báo cáo thống kê lỗi vi phạm, phương tiện vi phạm theo ngày, tháng Cũng như mọi hệ thống khác, hệ thống kiểm soát và xử lý vi phạm giao thông tự động yêu cầu cần có phần cứng và phần mềm Phần cứng có phần chính là camera để thu nhận hình ảnh và phần mềm sẽ phân tích các hình ảnh
đó để lấy ra các ký tự trên biển số xe và phát hiện lỗi vi phạm của phương tiện Tuy nhiên, trong giới hạn luận văn, người thực hiện chỉ tập trung nghiên cứu, xây dựng phần mềm xử lý, dựa trên phần cứng là hệ thống camera giám sát giao thông có sẵn ở địa phương
Nguồn dữ liệu video được lấy từ camera giám sát giao thông trên địa bàn Thành phố Châu Đốc, tỉnh An Giang Camera được đặt tại một ngã ba và thu nhận hình ảnh từ phía sau các phương tiện lưu thông hoặc dừng đèn đỏ
Trang 21trên đường Với vị trí đặt camera như trên, các loại xe như xe con, xe khách,
xe tải, xe máy khi lưu thông cùng chiều với hướng ghi hình và nằm trong phạm vi quan sát của camera sẽ được kiểm soát, từ đó có thể nhận dạng được biển số cũng như phát hiện được các lỗi vượt đèn đỏ và vi phạm làn đường
Hình 1.5 Vị trí thu hình từ camera giám sát giao thông
Trang 22Chương trình xử lý của đề tài gồm các khối chức năng như sau:
Hình 1.6 Sơ đồ chức năng của chương trình xử lý
Kiểm soát và xử lý vi phạm giao
thông tự động
Nhận dạng biển số xe Nhận dạng biển số qua file ảnh
Nhận dạng biển số qua file video
Phát hiện phương tiện vượt đèn đỏ
Nhận dạng đèn đỏ
Nhận dạng phương tiện vượt đèn đỏ
Phát hiện phương tiện
lấn làn
Xác định vùng kiểm soát lỗi
Nhận dạng phương tiện
lấn làn Xác định vùng kiểm soát lỗi
Truy vấn cơ sở dữ liệu
Tra cứu biển số phương tiện
Lưu thông tin phương tiện
vi phạm
Trích xuất báo cáo thống kê
Trang 23Chương I: Giới thiệu
Giới thiệu tổng quan về lý do chọn đề tài, đối tượng, phạm vi, mục đích, phương pháp nghiên cứu và tình hình các nghiên cứu có liên quan đến đề tài
Chương II: Cơ sở lý thuyết
Trình bày những nền tảng lý thuyết cần nghiên cứu và nắm vững để thực hiện đề tài
Chương III: Triển khai giải thuật
Triển khai các phương pháp, giải thuật xử lý ảnh để thực hiện các chức năng của đề tài đã đặt ra ở Chương I
Chương IV: Chương trình xử lý
Mô tả tổng quan về chương trình xử lý và các khối chức năng cụ thể của chương trình
Chương V: Kết quả thực hiện
Trình bày kết quả chạy thử nghiệm chương trình Phân tích, đánh giá những kết quả đạt được
Chương VI: Kết luận và hướng phát triển
Nêu lên những nhận xét về ưu điểm và khuyết điểm của đề tài, đề xuất các hướng phát triển, cải tiến về sau
Trang 24Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng cao chất lượng ảnh và phân tích ảnh Các phương pháp tri thức nhân tạo như mạng neural nhân tạo, các thuật toán xử lý hiện đại và cải tiến, các công cụ nén ảnh ngày càng được áp dụng rộng rãi và thu được nhiều kết quả khả quan
1.2 Quy trình xử lý ảnh
Ảnh tự nhiên từ thế giới ngoài được thu nhận qua các thiết bị thu (như camera, máy chụp ảnh) Trước đây, ảnh thu qua camera là các ảnh tương tự (loại camera ống kiểu CCIR) Ngày nay, với sự phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ camera, sau đó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho các bước xử lý tiếp theo Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh, có thể quét từ ảnh chụp bằng máy quét ảnh
Quy trình xử lý ảnh bao gồm các bước cơ bản như sau:
Trang 25Hình 2.1 Các bước cơ bản trong xử lý ảnh
Sơ đồ này bao gồm các thành phần sau:
a Phần thu nhận ảnh (Image Acquisition)
Ảnh số thu nhận được từ các nguồn như camera, máy ảnh kỹ thuật số, máy scan Chất lượng ảnh thu nhận được phụ thuộc vào thiết bị thu, người điều khiển thiết bị thu và điều kiện môi trường
b Tiền xử lý (Image Processing)
Sau khi thu nhận, ảnh có thể bị nhiễu hoặc có độ tương phản thấp nên cần đưa vào bộ tiền xử lý để nâng cao chất lượng ảnh Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn
c Phân đoạn (Segmentation) hay phân vùng ảnh
Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn phân tích, nhận dạng ảnh Ví dụ: để nhận dạng chữ (hoặc mã vạch)
Trang 26trên phong bì thư cho mục đích phân loại bưu phẩm, cần chia các câu, chữ về địa chỉ hoặc tên người thành các từ, các chữ, các số (hoặc các vạch) riêng biệt
để nhận dạng Đây là phần phức tạp khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của ảnh Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này
d Biểu diễn và mô tả ảnh (Image Representation)
Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn) cộng với mã liên kết với các vùng lận cận Việc biến đổi các số liệu này thành dạng thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính Việc chọn các tính chất để thể hiện ảnh gọi là trích chọn đặc trưng (Feature Selection) gắn với việc tách các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt lớp đối tượng này với đối tượng khác trong phạm vi ảnh nhận được Ví dụ: trong nhận dạng ký tự trên phong bì thư, chúng
ta miêu tả các đặc trưng của từng ký tự giúp phân biệt ký tự này với ký tự khác
Ảnh sau khi số hoá sẽ được lưu vào bộ nhớ, hoặc chuyển sang các khâu tiếp theo để phân tích Nếu lưu trữ ảnh trực tiếp từ các ảnh thô, đòi hỏi dung lượng bộ nhớ cực lớn và không hiệu quả theo quan điểm ứng dụng và công nghệ Thông thường, các ảnh thô đó được đặc tả lại (hay đơn giản là mã hoá) theo các đặc điểm của ảnh được gọi là các đặc trưng ảnh (Image Features) như: biên ảnh (Boundary), vùng ảnh (Region) Một số phương pháp biểu diễn thường dùng:
- Biểu diễn bằng mã chạy (Run-Length Code)
- Biểu diễn bằng mã xích (Chaine -Code)
- Biểu diễn bằng mã tứ phân (Quad-Tree Code)
e Nhận dạng và nội suy ảnh (Image Recognition and Interpretation) Nhận dạng ảnh là quá trình xác định ảnh Quá trình này thường thu được bằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước
Nội suy là phán đoán theo ý nghĩa trên cơ sở nhận dạng Ví dụ: một loạt chữ số và nét gạch ngang trên phong bì thư có thể được nội suy thành mã điện thoại Có nhiều cách phân loại ảnh khác nhau về ảnh Theo lý thuyết về nhận
Trang 27dạng, các mô hình toán học về ảnh được phân theo hai loại nhận dạng ảnh cơ bản:
- Nhận dạng theo tham số
- Nhận dạng theo cấu trúc
Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trong khoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản, nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người…
2 Không gian màu và các phép biến đổi
2.1 Không gian màu
2.1.1 Không gian màu RGB
RGB là không gian màu rất phổ biến được dùng trong đồ họa máy tính
và nhiều thiết bị kỹ thuật số khác Ý tưởng chính của không gian màu này là
sự kết hợp của 3 màu sắc cơ bản: màu đỏ (R, Red), xanh lục (G, Green) và xanh lơ (B, Blue) để mô tả tất cả các màu sắc khác
Nếu như một ảnh số được mã hóa bằng 24 bit, nghĩa là 8 bit cho kênh
R, 8 bit cho kênh G, 8 bit cho kênh B, thì mỗi kênh màu này sẽ nhận giá trị từ 0-255 Với mỗi giá trị khác nhau của các kênh màu kết hợp với nhau ta sẽ được một màu khác nhau, như vậy ta sẽ có tổng cộng 256x256x256 = 16.7 triệu màu sắc Ví dụ: màu đen là sự kết hợp của các kênh màu (R, G, B) với giá trị tương ứng (0, 0, 0) màu trắng có giá trị (255, 255, 255), màu vàng có giá trị (255, 255, 0), màu tím đậm có giá trị (64, 0, 128), Nếu ta dùng 16 bit
để mã hóa một kênh màu (48 bit cho toàn bộ 3 kênh màu) thì dải màu sẽ trải rộng lên tới (216)3 màu
Hình 2.2 Không gian màu RGB
Trang 282.1.2 Không gian màu HSV
HSV là không gian màu được dùng nhiều trong việc chỉnh sửa ảnh, phân tích ảnh và một phần của lĩnh vực thị giác máy tính Hệ không gian này dựa vào 3 thông số sau để mô tả màu sắc:
- H (Hue): màu sắc
- S (Saturation): độ đậm đặc, sự bảo hòa
- V (Value): giá trị cường độ sáng
Không gian màu này thường được biểu diễn dưới dạng hình trụ hoặc hình nón
Hình 2.3 Không gian màu HSV
Theo đó, đi theo vòng tròn từ 0-360 độ là trường biểu diễn màu sắc (Hue) Trường này bắt đầu từ màu đỏ đầu tiên (red primary) đến màu xanh lục đầu tiên (green primary) nằm trong khoảng 0-120 độ, từ 120-240 độ là màu
xanh lục đến xanh lơ (green primary - blue primary) Từ 240 - 360 là từ màu
đen đến màu đỏ đầu tiên
Hình 2.4 Hình tròn biểu diễn màu sắc (Hue)
Trang 29Theo như cách biểu diễn không gian màu theo hình trụ như trên, đi từ giá trị độ sáng (V) được biểu diễn bằng cách đi từ dưới đáy hình trụ lên và nằm trong khoảng từ 0 đến 1 Ở đáy hình trụ V có giá trị là 0 là tối nhất và trên đỉnh hình trụ là có độ sáng lớn nhất (V = 1) Đi từ tâm hình trụ ra mặt trụ là giá trị bão hòa của màu sắc (S) S có giá trị từ 0 đến 1 0 ứng với tâm hình trụ
là chỗ mà màu sắc là nhạt nhất S = 1 ở ngoài mặt trụ, là nơi mà giá trị màu sắc là đậm đặc nhất
Như vậy với mỗi giá trị (H, S, V) sẽ cho ta một màu sắc mà ở đó mô tả đầy đủ thông tin về màu sắc, độ đậm đặc và độ sáng của màu đó
2.1.3 Không gian màu CMYK
CMYK là không gian màu được sử dụng phổ biến trong ngành công nghiệp in ấn Ý tưởng cơ bản của hệ không gian này là dùng 4 màu sắc cơ bản
để phục vụ cho việc pha trộn mực in Trên thực tế, người ta dùng 3 màu là C=Cyan: xanh lơ, M=Magenta: hồng sẫm, và Y=Yellow: vàng để biểu diễn các màu sắc khác nhau Nếu lấy màu hồng sẫm cộng với vàng sẽ ra màu đỏ, màu hồng sẫm kết hợp với xanh lơ sẽ cho xanh lam Ký hiệu K trong hệ màu CMYK là sự kết hợp của 3 màu trên và sẽ cho ra màu đen, tuy nhiên màu đen
ở đây không phải là đen tuyệt đối và thường có độ tương phản lớn, nên trong ngành in, để tiết kiệm mực in người ta thêm vào mực màu đen để in những chi tiết có màu đen thay vì phải kết hợp 3 màu sắc trên
Nguyên lý làm việc của hệ màu này như sau: Trên một nền giấy trắng, khi mỗi màu này được in lên sẽ loại bỏ dần đi thành phần màu trắng 3 màu C,
M, Y khác nhau in theo những tỉ lệ khác nhau sẽ loại bỏ đi thành phần đó một cách khác nhau và cuối cùng cho ta màu sắc cần in Khi cần in màu đen, thay
vì phải in cả 3 màu người ta dùng màu đen để in lên Nguyên lý này khác với nguyên lý làm việc của hệ màu RGB ở chỗ hệ màu RGB là sự kết hợp của các thành phần màu, còn hệ màu CMYK là sự loại bỏ lẫn nhau của các thành phần màu
Trang 30Hình 2.5 Không gian màu CMYK
2.2 Các phép biến đổi không gian màu
2.2.1 Chuyển đổi RGB sang CMYK và ngược lại
Như đã nói ở trên, thành phần K là thành phần phụ dùng để in cho những điểm màu có màu đen trong hệ CYMK, do vậy để chuyển không gian màu từ RGB sang CMYK trước hết ta chuyển RGB sang CMY sau đó tìm thành phần K còn lại Công thức chuyển từ RGB sang CMY:
(C', M', Y') = ((255 - R), (255 - G), (255 - B)) (2.1) Việc tính giá trị của K lại là một vấn đề khác vì nó liên quan tới nhà sản xuất công nghệ in, tuy nhiên về mặt lý thuyết có thể chấp nhận rằng:
K = min {C'/2,55, M'/2,55, Y'/2,55} (2.2) Như vậy 0 <= K <= 100
Nếu K = 100, thì C = M = Y = 0 (trường hợp in màu đen)
Nếu 0 < K < 100:
C = (C'/2.55 - K) * 100 /(100 - K)
M = (M'/2.55 - K) * 100 /(100 - K)
Y = (Y'/2.55 - K) *100 /(100 - K) trong đó: C, M, Y, K được làm tròn lên để lấy chỉ số nguyên
2.2.2 Chuyển đổi RGB sang HSV và ngược lại
Giả sử ta có một điểm màu có giá trị trong hệ RGB là (R, G, B), ta chuyển sang không gian HSV như sau:
Đặt M = Max(R, G, B), m = Min(R, G, B) và C = M - m
Trang 31Nếu M = R, H' = (G - B)/C mod 6
Nếu M = G, H' = (B - R)/C + 2
Nếu M = B, H' = (R - G)/C + 4 và H = H'x60
Trong trường hợp C = 0, H = 0 độ, thì V = M, S = C/V
Trong trường hợp V hoặc C bằng 0 thì S = 0
Để chuyển từ HSV sang RGB ta làm như sau:
Giả sử ta có không gian màu HSV với H = [0, 360], S = [0, 1], V = [0, 1], khi đó ta tính C = V*S.H’ = H/60, X = C(1 - |H’ mod2 -1|) Biểu diễn hệ (R1, G1, B1) như sau:
(R1, G1, B1) = (2.3)
Đặt m = V – C, ta có kết quả cuối cùng:
3 Biến đổi Hough
Biến đổi Hough (Hough Transform) là một kỹ thuật có thể dùng để tách các đặc điểm của một hình dạng cụ thể trong một ảnh nhị phân Khi dùng các chương trình máy tính để nhận diện một đối tượng nào đó có hình dạng bất kỳ, phương pháp hữu hiệu hiện nay là sử dụng biến đổi Hough Các bài toán tìm kiếm từ những mức đơn giản như tìm đường thẳng tới các bài toán phức tạp hơn như tìm hình tròn, hình elipse hoặc các hình phức tạp đều có thể thực hiện bằng biến đổi Hough (với điều kiện các hình dạng này biểu diễn toán học được)
Circle Hough Transform (CHT) là một phương pháp phát hiện một vật thể hình tròn Biến đổi này được thực hiện như sau:
Với một phương trình đường tròn có dạng:
(0, 0, 0) nếu H không xác định (C, X, 0) nếu 0 ≤ H' < 1
(X, C, 0) nếu 1 ≤ H' < 2 (0, C, X) nếu 2 ≤ H' < 3 (0, X, C) nếu 3 ≤ H' < 4 (X, 0, C) nếu 4 ≤ H' < 5 (C, 0, X) nếu 5 ≤ H' < 6
Trang 32(x – a)2 + (y – b)2 = r2 (2.5) Trong đó (a, b) là tọa độ tâm đường tròn và r là bán kính đường tròn Nếu bán kính đường tròn được cho trước thì trong một ảnh 2D với tham số a,
b lần lượt được thay vào ta tìm được đường tròn trong ảnh
4 Kỹ thuật phát hiện biên Canny
Kỹ thuật phát hiện biên theo phương pháp Canny (Canny Edge Detection) là phương pháp phát hiện biên trực tiếp rất hiệu quả áp dụng cho các loại ảnh kể cả ảnh bị nhiễu Phương pháp này do John F Canny thực hiện
ở phòng thí nghiệm MIT năm 1986 Canny đã đưa ra tập hợp các mục tiêu của một phương pháp phát hiện biên và đưa ra một phương pháp tối ưu để thực hiện các mục tiêu đó Phương pháp này gọi là phương pháp Canny Edge Detection
Canny đưa ra ba điểm chính mà một phương pháp phát hiện biên phải xác định được, đó là:
+ Tỉ lệ sai thấp: nghĩa là phải tìm ra tất cả các biên và không có đường biên nào bị bỏ sót
+ Các điểm biên phải được xác định chính xác: khoảng cách giữa các điểm biên được tìm thấy trong giải thuật và biên trong thực tế phải càng nhỏ càng tốt
+ Đáp ứng điểm đơn biên: không được phép chỉ ra nhiều biên trong khi chỉ có một biên tồn tại
Bản chất của thuật toán Canny là biểu diễn theo toán học ba tiêu chuẩn
đó và cố gắng tìm ra giải pháp tối ưu cho những mục đích này Canny đã giả thiết rằng nhiễu trong ảnh tuân theo phân bố Gauss, đồng thời ông cũng cho rằng một phương pháp tìm biên thực chất là một bộ lọc nhân xoắn (chập) có khả năng làm mịn nhiễu và định vị được các cạnh Vấn đề là làm sao để có một bộ lọc tối ưu nhất
Nội dung thuật toán như sau:
Về mặt một chiều, đáp ứng của bộ lọc f với biên G được tính bởi tích phân chập:
Trang 33H = w G x f x dx
w
(2.6) Dưới đây là việc xây dựng một bộ lọc tối ưu f được xấp xỉ bằng đạo hàm
Bộ lọc f được giả thiết f=0 ngoài đoạn (-w, w) Ba ràng buộc trên tương ứng với ba điều kiện như sau:
SNR =
)(
2 0
n w w
w
dx x f
dx x f A
2
n w
w f x dx
f A
dx x f
)('
)(
Trang 34
y x
e (2.12) Khi đó G có đạo hàm theo cả hai hướng x và y Sự xấp xỉ với bộ lọc tối
ưu của thuật toán phát hiện biên Canny chính là G’ và do vậy, bằng phép nhân xoắn ảnh vào với G’ ta thu được ảnh E đã được tách biên ngay cả trong trường hợp ảnh có nhiều nhiễu
Phép nhân xoắn thực hiện một cách dễ dàng trong khi việc tính toán khá phức tạp, nhất là nhân xoắn với mảng hai chiều Tuy nhiên một phép nhân xoắn với mảng hai chiều Gauss có thể được chia thành hai phép nhân xoắn với mặt nạ Gauss một chiều Việc vi phân cũng có thể được thực hiện bằng phép nhân xoắn ở mảng một chiều tạo nên hai ảnh: ảnh một là việc nhân xoắn thành phần của x với mảng một chiều, ảnh hai là việc nhân xoắn thành phần của y
5 Nhận dạng ký tự quang học
5.1 Tổng quan về nhận dạng ký tự quang học
Nhận dạng ký tự quang học (tên tiếng anh là Optical Character Recognition – OCR) là một quá trình thực hiện việc chuyển đổi từ dạng hình ảnh của chữ viết in hoặc các ký hiệu sang các dạng văn bản tài liệu hoặc thông tin có thể chỉnh sửa trên máy tính Đầu vào của quá trình này là tập tin hình ảnh và đầu ra sẽ là các tập tin văn bản chứa nội dung là các chữ viết có trong hình ảnh đó Nhận dạng ký tự quang học được hình thành từ các lĩnh vực nghiên cứu nhận dạng mẫu, trí tuệ nhân tạo và thị giác máy tính Ngày nay kỹ thuật nhận dạng ký tự quang học được sử dụng rộng rãi và ứng dụng nhiều trong thực tế song song với việc nghiên cứu về lý thuyết để cải tiến kết quả nhận dạng
Thông thường, các hệ thống nhận dạng ký tự quang học được sử dụng dưới dạng các phần mềm trong máy tính hoặc tích hợp trong máy in, máy quét
để thực hiện việc nhận dạng ký tự
Trang 355.2 Các phương pháp nhận dạng quang học
5.2.1 Nghiên cứu và tự xây dựng bộ nhận dạng ký tự quang học
Đây là cách khó khăn khi thực hiện vì hiện nay trên thế giới đã có nhiều hướng nghiên cứu về lĩnh vực này và cho ra đời nhiều phương pháp nhận dạng
ký tự quang học Tự viết lại bộ nhận dạng ký tự quang học sẽ tốn khá nhiều thời gian mà hiệu quả sẽ không được cao, luận văn này chủ yếu tập trung vào việc sử dụng nhận dạng ký tự quang học để thực hiện nhận dạng ký tự của biển số nên cách này sẽ không khả thi và việc nghiên cứu các kỹ thuật nhận dạng ký tự quang học là một đề tài lớn nên người thực hiện sẽ không chọn phương pháp này để thực hiện nhận dạng ký tự quang học
5.2.2 Sử dụng các bộ nhận dạng ký tự quang học trực tiếp trên web thông qua môi trường mạng
Máy tính sẽ gửi hình ảnh lên máy chủ web để máy chủ sẽ trực tiếp xử lý
áp dụng các thuật toán nhận dạng ký tự quang học được cài đặt sẵn để xử lý, phân tích bức ảnh và gửi trả kết quả đã được nhận dạng về người dùng Cách này có ưu điểm là dễ thực hiện và độ chính xác có thể cao tuy nhiên khi sử dụng chương trình đòi hỏi người sử dụng phải cài đặt mạng để kết nối mạng internet cho việc truyền và nhận dữ liệu từ máy chủ trên web Chưa kể đến việc xử lý và chờ kết quả từ máy chủ trên mạng sẽ khá lâu gây bất tiện cho người sử dụng chương trình
5.2.3 Sử dụng các bộ thư viện nhận dạng ký tự quang học có sẵn
So với hai cách được nêu ra ở trên thì cách này có ưu điểm là thực hiện không quá khó khăn, chỉ cần cài đặt và biên dịch để chạy trên máy tính, vừa khắc phục được nhược điểm là ứng dụng không phụ thuộc vào môi trường mạng, có thể chạy độc lập, tiết kiệm nhiều thời gian vì việc xử lý trên khối nhận dạng được thực hiện hoàn toàn trực tiếp trên máy tính
Trang 36Hình 2.6 Quá trình nhận dạng ký tự quang học
5.3 So sánh các thư viện nhận dạng ký tự quang học
Hiện nay trên thế giới đã có khá nhiều bộ thư viện nhận dạng ký tự quang học với độ chính xác khá cao Sử dụng một trong các thư viện đó sẽ giúp chúng ta tiết kiệm khá nhiều công sức Sau đây là một số bộ và phần mềm nhận dạng ký tự quang học miễn phí được sử dụng rộng rãi hiện nay: Tesseract OCR3: là bộ nhận dạng ký tự quang học thương mại ban đầu được phát triển tại công ty HP (Hewlett-Packard) trong khoảng 1985-1995 và được giải thưởng top 3 phần mềm nhận dạng ký tự quang học chính xác nhất trong hội nghị thường niên của UNLV (University of Nevada - Las Vegas) Sau đó bộ nhận dạng này được chuyển thành mã nguồn mở trên Google và tiếp tục được phát triển cho đến ngày nay với sự đóng góp của nhiều lập trình viên chuyên nghiệp Trưởng bộ phận của dự án hiện nay là Ray Smith
3
http://code.google.com/p/tesseract-ocr/
Trang 37GOCR4: Là một chương trình nhận dạng ký tự quang học được phát triển dưới dạng giấy phép công cộng GNU và được bắt đầu bởi Joerg Schulenberg vào năm 2000
FreeOCR5: Được xem là một trong các phần mềm nhận dạng ký tự quang học chính xác nhất vì sử dụng bộ engine Tesseract của HP Ngoài ra, FreeOCR còn cung cấp dịch vụ nhận dạng ký tự quang học trực tuyến trên web
JavaOCR6: Là phần mềm nhận dạng ký tự quang học được viết hoàn toàn toàn bằng thư viện Java cho việc xử lý ảnh và nhận dạng ký tự Ưu điểm của chương trình này là chiếm ít tài nguyên bộ nhớ, dễ thực hiện trên các môi trường di động hạn chế về bộ nhớ và chỉ sử dụng được ngôn ngữ Java
Trong các thư viện nhận dạng ký tự quang học trên thì bộ nhận dạng Tesseract OCR nổi trội nhất với các ưu điểm sau:
- Có lịch sử phát triển lâu dài và mang độ chính xác cao ngay từ khi mới ra mắt
- Khả năng mở rộng và tùy biến cao đồng thời được Google tài trợ và đông đảo các nhà phát triển tham gia đóng góp cho Tesseract
- Phiên bản được cập nhật thường xuyên, hỗ trợ ngày càng nhiều ngôn ngữ, có khả năng huấn luyện trên các ngôn ngữ mới và nhiều loại font chữ khác nhau
- Một số phần mềm OCR hiện nay đều sử dụng bộ nhận dạng này cho việc nhận dạng ký tự nên Tesseract đã trở nên phổ biến hơn, đồng thời khả năng hỗ trợ trên nhiều môi trường, nền tảng khác nhau từ máy tính cho đến các thiết bị di động
- Chính vì các ưu điểm nêu trên, đề tài này sẽ sử dụng Tesseract để thực hiện quá trình nhận dạng ký tự để tách biển số của phương tiện
Trang 385.4 Giới thiệu bộ nhận dạng ký tự quang học Tesseract
Lúc mới khởi động thì Tesseract là một dự án nghiên cứu tiến sĩ tại phòng thí nghiệm HP ở Bristol và đã được tích hợp vào trong các dòng máy quét dạng phẳng của hãng dưới dạng các add-on phần cứng hoặc phần mềm Nhưng thực tế dự án này đã thất bại ngay từ trong trứng nước vì nó chỉ làm việc hiệu quả trên các tài liệu in có chất lượng tốt
Sau đó, dự án này cùng với sự cộng tác của bộ phận máy quét HP ở bang Colorado đã đạt được một bước tiến quan trọng về độ chuẩn xác khi nhận dạng và vượt lên nhiều bộ nhận dạng OCR thời đó nhưng dự án đã không thể trở thành sản phẩm hoàn chỉnh vì độ cồng kềnh và phức tạp Sau
đó, dự án được đưa về phòng thí nghiệm của HP để nghiên cứu về cách thức nén và tối ưu mã nguồn Dự án tập trung cải thiện hiệu năng làm việc của Tesseract dựa trên độ chính xác đã có Dự án này được hoàn tất vào cuối năm
1994 và sau đó vào năm 1995 bộ Tesseract được gửi đi tham dự hội nghị UNLV thường niên về độ chính xác của OCR, vượt trội hơn hẳn so với các phần mềm OCR lúc bấy giờ Tuy nhiên, Tesseract đã không thể trở thành một sản phẩm thương mại hoàn chỉnh được và vào năm 2005, HP đã chuyển Tesseract sang mã nguồn mở và được hãng Google tài trợ Tesseract cho đến nay vẫn được nhiều nhà phát triển cộng tác và tiếp tục hoàn thiện Phiên bản mới nhất của bộ nhận dạng Tesseract là phiên bản 3.0.1
Vì Tesseract hiện nay là bộ thư viện mã nguồn mở hoàn toàn miễn phí nên trên thế giới đã có nhiều phần mềm nhận dạng ký tự quang học ra đời dựa trên bộ Tesseract với giao diện và các tính năng dễ sử dụng hơn so với giao diện đơn giản của Tesseract ban đầu như: VietOCR7 cho nhận dạng tiếng Việt,
7
http://vietocr.sourceforge.net/usage_vi.html
Trang 39Tessenet28 bộ nhận diện Tesseract trên nền Net của Microsoft, giao diện Java (Java GUI frontend) cho Tesseract
5.4.2 Kiến trúc hoạt động
Đầu tiên, bộ nhận diện Tesseract sẽ nhận đầu vào là ảnh màu hoặc ảnh mức xám Ảnh này sẽ được chuyển đến bộ phận phân tích ngưỡng thích ứng (Adaptive Thresholding) để cho ra ảnh nhị phân Vì trước kia HP cũng đã phát triển bộ phận phân tích bố cục trang nên Tesseract không cần phải có thành phần đó và được thừa hưởng từ HP Vì thế mà Tesseract nhận đầu vào là một ảnh nhị phân với các vùng đa giác tùy chọn đã được xác định
Ban đầu, Tesseract được thiết kế làm việc trên ảnh nhị phân sau đó chương trình được cải tiến để có thể nhận dạng cả ảnh màu và ảnh mức xám Chính vì thế mà cần bộ phận phân tích ngưỡng thích ứng để chuyển đổi ảnh màu hoặc ảnh mức xám sang ảnh nhị phân
Sau đó quá trình nhận dạng sẽ được thực hiện tuần tự theo từng bước:
- Bước đầu tiên là phân tích các thành phần liên thông Kết quả của bước này sẽ là tạo ra các đường bao quanh các ký tự
- Bước thứ hai là tìm hàng và tìm từ, kết quả của bước này cũng giống như bước trên sẽ tạo ra các vùng bao quanh các hàng chữ và ký tự chứa trong vùng văn bản
- Bước tiếp theo sẽ là nhận dạng từ Công đoạn nhận dạng từ sẽ được xử
lý qua 2 giai đoạn Giai đoạn đầu sẽ là nhận dạng các từ theo lượt Các
từ thỏa yêu cầu trong giai đoạn này sẽ được chuyển sang bộ phân loại thích nghi (Adaptive Classifier) để làm dữ liệu huấn luyện Bộ lọc này
có tác dụng làm giảm nhiễu, chính nhờ đó mà bộ phân loại thích ứng sẽ
có khả năng nhận diện được chính xác hơn ở phần sau của trang Sau khi bộ phân loại thích nghi đã học được các thông tin có ích từ giai đoạn đầu khi nhận dạng phần trên của trang thì giai đoạn thứ 2 của việc nhận dạng sẽ được thực hiện Giai đoạn này sẽ quét hết toàn bộ ảnh, các ký tự không được nhận diện chính xác ở giai đoạn đầu sẽ được nhận diện lại
8
http://www.pixel-technology.com/freeware/tessnet2/
Trang 40lần nữa Cuối cùng bộ nhận diện sẽ tổng hợp lại các thông tin ở trên và cho ra kết quả nhận diện hoàn chỉnh
Hình 2.7 Kiến trúc tổng thể thư viện Tesseract
6 Giới thiệu thư viện xử lý ảnh EmguCV
EmguCV là một gói bao bên ngoài (wrapper) của thư viện xử lý ảnh OpenCV do Intel giới thiệu và phát triển EmguCV là một thư viện xử lý hình ảnh mạnh dành riêng cho nền tảng NET, cho phép gọi được tất cả các chức năng của OpenCV
Hình 2.8 Cấu trúc thư viện EmguCV