Các hệ thống nhận dạng biển số xe License Plate Recognition : Đề tài nhận dạng trực tuyến xe mô tô bao gồm các bước phát hiện biển số xe,chụp lại ảnh, trích ảnh chứa vùng văn bản và dùng
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
NGUYỄN THỊ HỒNG MINH
NHẬN DẠNG TRỰC TUYẾN
XE MÔ TÔ HAI BÁNH
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Trang 2Thành Phố Hồ Chí Minh – Năm 2008ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
NGUYỄN THỊ HỒNG MINH
NHẬN DẠNG TRỰC TUYẾN
XE MÔ TÔ HAI BÁNH
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 604801
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS TRƯƠNG ĐÌNH CHÂU
Trang 3Thành Phố Hồ Chí Minh – Năm 2008
Trang 4LỜI CẢM ƠN
Tôi xin chân thành gời đến toàn thể Quý Thầy Trường Đại học Công NghệThông Tin lời cảm ơn chân thành nhất Quý thầy cô đã truyền đạt cho tôi nhữngkiến thức chuyên môn cũng như kinh nghiệm học tâp vô cùng quý báu và phongphú trong suốt thời gian học tại trường
Đặc biệt tôi xin cảm ơn sâu sắc đến Thầy TS Trương Đình Châu đã hướngdẫn tôi rất tận tình trong suốt thời gian qua cùng những lời động viên, khích lệ đúnglúc giúp tôi vượt qua các thời điểm khó khăn nhất Những tài liệu bổ ích mà thầy đãcung cấp cũng như những lời góp ý vô cùng quý báo đã giúp tôi hoàn thành tốt luậnvăn này
Tôi xin chân thành cảm ơn ThS Nguyễn Thiện Minh đã giúp đỡ tôi rất nhiềutrong thời gian tôi thực hiện luận văn
Ngoài ra tôi cũng xin cảm ơn gia đình, bạn bè đã giúp đỡ, góp ý và cổ vũ chotôi trong suốt thời gian qua
Tp Hồ Chí Minh, tháng 06 năm 2008HỌC VIÊN: NGUYỄN THỊ HỒNG MINH
Trang 5NHẬN XÉT (Của giảng viên hướng dẫn)
Trang 6
Trang 7
NHẬN XÉT (Của giảng viên phản biện)
Trang 8
MỤC LỤC
CHƯƠNG 1: TỔNG QUAN 12
1 Giới thiệu: 12
2 Đặt vấn đề: 12
3 Phát biểu bài toán: 13
4 Mục tiêu luận văn: 14
5 Phạm vi giải quyết của đề tài: 14
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 15
1 Các hệ thống nhận dạng biển số xe (License Plate Recognition) : 15
2 Xử lý ảnh: 16
2.1 Các loại ảnh cơ bản: 16
2.2 Kỹ thuật chuyển ảnh sang ảnh mức xám (Gray Level): 17
2.3 Lược đồ mức xám (Histogram): 17
2.4 Xử lý ảnh bằng thuật toán K-means: 19
2.5 Lọc trung vị (Median): 21
2.6 Bộ lọc BlobsFiltering: 21
3 Mạng Neural nhân tạo: 22
3.1 Giới thiệu: 22
3.2 Ứng dụng của Neural Network: 24
3.3 Mô hình một Neural nhân tạo: 25
3.4 Mạng Neural một lớp: 27
3.5 Mạng Neural truyền thẳng 3 lớp: 27
4 Thiết lập mạng Neural: 28
4.1 Các bước chuẩn bị thiết lập mạng: 29
4.2 Các bước thiết kế mạng: 30
5 Phân loại cấu trúc mạng: 31
5.1 Mạng có cấu trúc tiến: 31
5.2 Mạng hồi quy (recurrent network): 33
6 Cơ sở lý thuyết và giải thuật huấn luyện cho mạng lan truyền ngược: 33
Trang 96.1 Cấu trúc mạng lan truyền ngược: 33
6.2 Huấn luyện cho mạng lan truyền ngược: 36
6.3 Vấn đề quá khớp và năng lực của mạng: 41
6.4 Hai phương pháp cải thiện tính tổng quát hóa: 44
6.5 Kết luận: 46
6.6 Ứng dụng mạng Neural trong lĩnh vực nhận dạng: 46
CHƯƠNG 3: HỆ THỐNG NHẬN DẠNG TRỰC TUYẾN BẢNG SỐ XE 49
1 Mô hình tổng quát hệ thống nhận dạng trực tuyến xe mô tô hai bánh: 49
2 Thu nhận ảnh (1): 50
3 Trích biển số, xử lý ảnh biển số và tách ký tự chữ số xe mô tô (2), (3): 52
4 Nhận dạng ký tự đơn trên biển số bằng mạng Neural nhân tạo (4): 64
2.1 Mô hình mạng: 64
2.2 Huấn luyện mạng: 64
5 Xây dựng hệ thống: 66
CHƯƠNG 4: THỬ NGHIỆM VÀ ĐÁNH GIÁ 71
1 Dữ liệu thử nghiệm: 71
2 Kết quả thử nghiệm: 71
3 Đánh giá kết quả: 72
4 Một số kết quả minh họa thử nghiệm thuật toán: 74
CHƯƠNG 5: KẾT LUẬN 76
1 Các mặt đã đạt được: 76
2 Các mặt còn hạn chế: 76
3 Đề xuất hướng phát triển: 76
PHỤ LỤC: 78
1 Thư viện AForge: 78
2 Cảm biến phát hiện chuyển động: 81
3 Giao tiếp cổng COM: 85
TÀI LIỆU THAM KHẢO 87
Trang 10DANH SÁCH CÁC HÌNH
Hình 2.1: Ảnh nhận từ camera (a) và ảnh đã chuyển sang ảnh mức xám (b) 17
Hình 2.2: Lược đồ mức xám của các loại ảnh 18
Hình 2.3: Mô hình toán học tổng quát của mạng Neural 23
Hình 2.4: Neural một ngõ vào 25
Hình 2.5: Neural có nhiều ngõ vào 25
Hình 2.6: Các hàm truyền cơ bản 26
Hình 2.7: Mô hình mạng Neural một lớp 27
Hình 2.8: Mạng Neural truyền thẳng 3 lớp 28
Hình 2.9: Cấu trúc mạng Neural tiến 31
Hình 2.10: Cấu tạo một Neural 33
Hình 2.11: Hàm truyền logsig 34
Hình 2.12: Hàm truyền tansig 34
Hình 2.13: Hàm truyền pureline (tuyến tính) 35
Hình 2.14: Cấu trúc mạng một lớp 35
Hình 2.15: Mạng 2 lớp dùng Neural tagsig và pureline 36
Hình 2.16: Mạng bị quá khớp với mẫu học 42
Hình 2.17: Mạng được ngưng tiến trình huấn luyện đúng lúc 45
Hình 3.1: Mô hình hệ thống nhận dạng xe trực tuyến 49
Hình 3.2: Mô hình chụp ảnh xe 50
Hình 3.3: Phân tích phổ ngang cho ảnh chứa biển số 53
Hình 3.4: Tách dòng chứa biển số 54
Hình 3.5: Phân tích phổ ngang cho ảnh chứa biển số 54
Hình 3.6: Tách biển số 55
Hình 3.7: Một số ảnh sau khi tách được biển số 57
Hình 3.8: Ảnh bảng số 58
Hình 3.9: Ảnh bảng số (Gray level) 58
Hình 3.10: Ảnh bảng số (K-mean) 58
Hình 3.11: Ảnh bảng số (Invert) 58
Trang 11Hình 3.12: Ảnh bảng số (Median) 59
Hình 3.13: Ảnh bảng số (BlobsFiltering) 59
Hình 3.14: Lược đồ chiếu ngang để tách dòng 60
Hình 3.15: Lược đồ chiếu dọc để tách ký tự 60
Hình 3.16: Kết quả tách ký tự 60
Hình 3.17: Một số hình ảnh tách ký tự 63
Hình 3.18: Chuẩn hóa ký tự về 20 x 10 64
Hình 3.19: Huấn luyện chữ 65
Hình 3.20: Huấn luyện số 66
Hình 3.21: Giao diện chương trình nhận dạng xe mô tô hai bánh 68
Hình 3.22: Chụp ảnh xe 69
Hình 3.23: Nhận dạng biển số và lưu thông tin vào cơ sở dữ liệu 70
Hình 4.1: Các bước trích biển số trong trường hợp 1 74
Hình 4.2: Các bước trích biển số trong trường hợp 2 75
Trang 12DANH SÁCH CÁC BẢNG
Bảng 3.1: Bảng mô tả thông tin ảnh biển số xe mô tô 51
Bảng 4.1: Mô tả tập ảnh IMG_TEST 71
Bảng 4.2: Cấu hình máy tính chạy thử nghiệm 71
Bảng 4.3: Bảng thống kê kết quả thử nghiệm trên tập dữ liệu 72
Trang 13TÓM TẮT LUẬN VĂN
Luận văn “Nhận dạng trực tuyến xe mô tô hai bánh” sẽ tập trung nghiên cứu những phần sau:
Dùng cảm biến phát tia hồng ngoại để phát hiện xe vào đúng vị trí
Xây dựng vi điều khiển giao tiếp máy tính thông qua cổng nối tiếp, ra lệnh cho máy tính tác động vào camera chụp ảnh
Nhận ảnh có chứa biển số thông qua camera
Trích ảnh biển số và tách ký tự
Nhận dạng ký tự trên ảnh biển số
Lưu thông tin xe vào cơ sở dữ liệu (số xe, ngày giờ gửi,…)
Do thời gian thực hiện đề tài có giới hạn, chắc chắn không thể tránh khỏi saisót, tôi rất mong sự chỉ bảo và hướng dẫn thêm của quý Thầy Cô và các bạn
Trang 14DANH SÁCH CÁC TỪ KHÓA
License Plate Recognition: Hệ thống nhận dạng biển số xe
Histogram: Biểu đồ mức xám
Fast Fourier Transform: Phân tích phổ tần số
Back Propagation Neural Network : mạng Nơron tiến đa mức lan truyền ngược
Trang 15CHƯƠNG 1: TỔNG QUAN
1 Giới thiệu:
Ngày nay công nghệ thông tin là ngành khoa học mới nhưng có tốc độ pháttriển rất nhanh trên toàn thế giới, sự phát triển của nó thể tính bằng từng giây, từngphút một Những ứng dụng của công nghệ thông tin cũng rộng khắp trong tất cả cáclĩnh vực khoa học như: giáo dục, y tế, kinh tế, văn hóa,…nó góp phần giúp đời sốngcon người ngày càng hiện đại, giảm đi những công việc nặng nhọc trong đời sốnghằng ngày Nhận dạng và xử lý ảnh cũng là một trong những chuyên ngành của tinhọc có tầm ứng dụng to lớn Có thể kể ra hàng loạt các lĩnh vực đã áp dụng kỹ thuậtnhận dạng ảnh như: xử lý ảnh chụp vệ tinh, dự báo thời tiết, điều khiển giao thôngcông cộng, nhận dạng chữ viết tay, phân tích chữ ký, nhận dạng vân tay, nhận dạngmặt người,…Ở đề tài này tôi sẽ trình bày phương pháp nhận dạng xe mô tô hai bánhthông qua camera, sau đó qua các quá trình xử lý ảnh, tách ký tự, nhận dạng ký tự ta
sẽ nhận được kết quả của biển số xe Đây là đề tài được nhiều cơ quan trong nướcquan tâm khi xe mô tô đang là phương tiện đi lại chủ yếu của người dân
2 Đặt vấn đề:
Thực tế hiện nay, các bãi giữ xe mô tô 2 bánh ở nước ta đều quản lí bằng cáchthức thủ công đơn giản nhất đó là trong bãi giữ xe sẽ có ít nhất là 3 người: mộtngười đọc biển số, một người khác sẽ ghi biển số xe vào thẻ giữ xe, sau đó sẽ bấmvào xe một phần vé xe, phần còn lại sẽ đưa cho chủ xe giữ Sau đó xe trong bãi sẽ
do nhiều người trông chừng tùy theo bãi xe đó rộng hay hẹp, có nhiều hay ít góckhuất,…
Ưu điểm của phương pháp thủ công là đơn giản không cần các thiết bị phứctạp Tuy nhiên phương pháp này cũng tồn tại rất nhiều nhược điểm Thứ nhất làlãng phí nguồn nhân lực, do phương pháp này phải cần rất nhiều người để có thểquản lý tốt toàn bộ bãi giữ xe Thứ hai là độ chính xác không được đảm bảo, doviệc đọc, ghi biển số xe đều do con người thực hiện nên không thể tránh khỏi saisót Thứ ba là độ an toàn thấp, do dùng quá nhiều người nên việc quản lí con ngườikhá phức tạp, hay do việc giám sát cũng là con người nên khó có thể bao quát tốt
Trang 16toàn bộ bãi xe Và đa số vé xe khá đơn giản và dễ nhầm lẫn , việc đối chiếu lúc xe
ra cũng do con người (dễ bị ảnh hưởng các yếu tố chủ quan , nhầm lẫn) nên kẻ gian
có thể tráo vé , sửa đổi vé hoặc làm vé giả để qua mặt các nhân viên giữ xe…Thứ tư
là tốc độ công việc không cao, do thực hiện việc xe ra vào qua nhiều khâu như đọcbiển số, ghi vé, bấm vé,…Và cuối cùng nhược điểm của phương pháp trên là không
có một bằng chứng nào để lưu giữ những thông tin khi xe ra vào bãi, thời gian rakhỏi bãi, …Do đó khi sự cố xảy ra (mất xe, mất vé xe,…) thì không có thông tin đểkiểm tra, đối chiếu Không có khả năng thống kê, tính toán lượng xe ra, vào …Tóm lại nhược điểm của phương pháp trên là tốc độ và hiệu quả thấp, khảnăng quản lý, kiểm soát rất kém Rất dễ xảy ra mất mát tài sản
Xuất phát từ những nhược điểm trên, chúng tôi đề xuất một phương pháp làmtăng hiệu quả trong việc quản lý giữ xe, đó là sẽ đặt camera ở vị trí cổng giữ xe, khi
có xe vào camera sẽ chụp ảnh biển số Sau khi phân tích và xử lý ảnh chương trìnhmáy tính sẽ lưu giữ lại biển số xe và sẽ in phần vé cho người gởi xe Phương phápnày khắc phục những nhược điểm của phương pháp thủ công, và giai đoạn nhận ảnh
từ camera, xử lý, nhận dạng ký tự trên biển số sẽ là nội dung của đề tài nhận dạngtrực tuyến xe mô tô hai bánh mà tôi sẽ trình bày
3 Phát biểu bài toán:
Trong đề tài này tôi sẽ giải quyết vấn đề bằng cách phân rã thành ba bài toánliên quan lẫn nhau, trong đó kết quả bài toán trước sẽ là đầu vào của bài toán sau:
Trích biển số trong ảnh đơn: (1)
Ngõ vào: ảnh chụp có nền phức tạp hay đoạn video
Ngõ ra: ảnh biển số được trích từ ảnh chụp hay đoạn video trên
Tách các ký tự trong ảnh biển số: (2)
Ngõ vào: ảnh biển số, là kết quả của bài toán (1)
Ngõ ra: ảnh các ký tự rời rạc trên biển số
Nhận dạng ký tự đơn trên biển số: (3)
Ngõ vào: ảnh các ký tự đơn trên biển số, là kết quả của bài toán(2)
Trang 17 Ngõ ra: chuỗi kết quả ghi nhận lại giá trị từng ký tự trên biển sốxe.
4 Mục tiêu luận văn:
Đây là bài toán về nhận dạng và xử lý ảnh, trong luận văn này, tôi tập trungnghiên cứu giải thuật trích biển số xe thông qua ảnh chụp hay camera, tách ký tựtrên biển số và nhận dạng kí tự trên biển số xe, cụ thể như sau:
Xây dựng bộ cảm biến phát hiện ảnh biển số bằng tia hồng ngoại
Xây dựng một chương trình trực tuyến (dùng camera) để chụp ảnh khi
có xe qua cổng, trích biển số, và nhận dạng biển số
Dùng ngôn ngữ CSharp để hiện thực chương trình
5 Phạm vi giải quyết của đề tài:
Đề tài tập trung nghiên cứu các thuật toán nhằm giải quyết bài toán nhận dạngtrực tuyến xe mô tô hai bánh trên ảnh đơn được chụp từ thiết bị camera trong đóphạm vi vấn đề như sau:
Ảnh có nền phức tạp, với các điều kiện sáng tối
Các loại biển số xe mô tô được qui định theo luật biển số hiện nay củacông an giao thông về màu sắc, phông chữ, chất liệu,…
Đối với hệ thống cài đặt cụ thể, các điều kiện về vị trí, khoảng cách đặtcamera chụp cũng sẽ được dùng làm tham số để tăng hiệu quả nhận dạng
Xây dựng hệ thống thử nghiệm sẽ bao gồm các thiết bị như: camera chụpảnh, bộ cảm biến phát hiện chuyển động, …
Trang 18CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
1 Các hệ thống nhận dạng biển số xe (License Plate Recognition) :
Đề tài nhận dạng trực tuyến xe mô tô bao gồm các bước phát hiện biển số xe,chụp lại ảnh, trích ảnh chứa vùng văn bản và dùng thuật toán thích hợp nhận dạngcác ký tự trong biển số thành các ký tự ASCII để máy tính có thể lưu trữ và xử lýđược
Như vậy hệ thống nhận dạng sẽ bao gồm: bộ phận cảm biến phát hiện chuyểnđộng, camera trực tuyến dùng để chụp ảnh xe, chương trình trích biển số, chươngtrình tách ký tự trong hình biển số, chương trình nhận dạng từng ký tự trong biển số.Sau đây tôi giới thiệu lịch sử về các phương pháp tiếp cận cho hệ thống này:
Các phương pháp trích biển số xe trong một ảnh:
Đây là bước không thể thiếu trong bài toán nhận dạng biển số xe, do đó córất nhiều hướng giải quyết bài toán này Cụ thể, có một số hướng tiếp cậnchính như: dựa vào đặc trưng cạnh biên trích được ta áp dụng các thuật toánxác định đường thẳng như phép biến đổi Hough để phát hiện các cặp đoạnthẳng gần song song ghép thành một ảnh ứng viên biển số ( Luận văn Thạc sĩ
“Xây dựng thử nghiệm hệ thống nhận dạng tự động biển số xe ô tô” của TrầnĐức Duẩn năm 2003), nhưng do biển số xe mô tô hiện nay ở nước ta không cóđường bao (xe mới) hay do thời gian đường bao sẽ bị mờ (xe cũ) nên ta khôngthể dùng phương pháp này; hay tiếp cận theo hướng hình thái học, trong đóchú trọng vào các đặc trưng màu sắc, độ sáng, sự đối xứng, các góc,…; hoặctiếp cận theo hướng khung nền Trong luận văn này tôi sử dụng một hướngtiếp cận phân tích phổ tần số trên ảnh (Fast Fourier Transform), sẽ được giớithiệu rõ hơn trong chương 3
Các phương pháp tách ký tự trong ảnh biển số:
Sau khi trích được vùng chứa biển số, ta thực hiện tách các ký tự từ ảnhthành từng ảnh đơn Dạng chung của biển số xe mô tô hai bánh hiện nay làcác ký tự sẽ có cùng kích cỡ, cùng hướng và xuất hiện trên hai dòng Đây làđặc trưng rất quan trọng giúp ta đơn giản hóa bài toán này Hiện nay có một
Trang 19số thuật toán tách ký tự trên biển số khá hiệu quả như: áp dụng phép chiếuđếm số điểm ảnh theo đường ngang và đường dọc, dựa vào đó xác định cácđiểm tách ( Luận văn Thạc sĩ “Xây dựng thử nghiệm hệ thống nhận dạng tựđộng biển số xe ô tô” của Trần Đức Duẩn năm 2003); hoặc áp dụng thuật toánxác định các thành phần liên thông của từng ký tự trên ảnh đã được phânngưỡng nhị phân Và trong luận văn này, tôi đã chọn phương pháp tách ký tựbằng phân tích biểu đồ mức xám (Histogram).
Các phương pháp nhận dạng ký tự:
Có nhiều phương pháp nhận dạng ký tự đơn đã được nghiên cứu trong thờigian gần đây, đặc biệt là trên các ký tự chữ in Vấn đề quan trọng trong nhậndạng ký tự đơn in là việc định loại font chữ , kiểu chữ; chất lượng ảnh nhậnđược có tốt hay không; và một vấn đề quan trọng nữa là khả năng học tăngcường để tự chỉnh lỗi trong quá trình nhận dạng cũng khá phức tạp
Hiện nay có nhiều hướng tiếp cận để giải quyết bài toán này như: phươngpháp đo khoảng cách hình học không gian; phương pháp phân loại bằng máyhọc như: mạng Neural, SVM, mô hình Markov ẩn (Luận văn Thạc sĩ “Xâydựng thử nghiệm hệ thống nhận dạng tự động biển số xe ô tô” của Trần ĐứcDuẩn năm 2003),… Trong luận văn này tôi sử dụng mạng Neural để xâydựng module nhận dạng ký tự, và lý thuyết về mạng Neural và ứng dụng của
PCX: sử dụng phương pháp mã loạt dài RLE ( Run – Length –Encoded) để nén dữ liệu ảnh
Trang 20 GIF: ( Graphics Interchanger Format): ảnh dạng nén, lưu trữ tốt ảnh ởdạng đen trắng và ảnh 16 màu, nhưng đối với ảnh 256 màu thì khả năngnén kém.
JPGE: (Joint Photographic Expert Group): là tên của một tổ chức nghiêncứu các chuẩn nén cho ảnh tone liên tục Khắc phục nhược điểm của ảnhgif
2.2 Kỹ thuật chuyển ảnh sang ảnh mức xám (Gray Level):
Sử dụng camera thu nhận ảnh thì ảnh sẽ là 24 bit màu, do đó dung lượng lưutrữ rất lớn và ảnh hưởng đến tốc xử lý ảnh Vì vậy khi thu nhận ảnh, ta sẽ chuyểnảnh về ảnh mức xám ( Gray Scale) 8 bits theo công thức:
Trang 21Miền giá trị của p f ( ) [0,1]k
Một cách biễu diễn toán học khác của histogram của một ảnh là số lần xuấthiện của mỗi mức xám :
( )k k
p f n (2.2)
Khi lược đồ xám được biễu diễn trong một hệ tọa độ vuông góc x, y (trụchoành x biễu diễn số mức xám từ 0 đến L -1, trục tung y biễu diễn số điểm ảnh cócùng mức xám hay tỷ lệ số điểm ảnh có cùng mức xám trên tổng số điểm ảnh), thìhình dạng của histogram của ảnh sẽ mang đến cho chúng ta thông tin về tính độngcủa ảnh (ảnh rất sáng hay ảnh rất đậm) dùng làm cơ sở cho việc tăng cường độtương phản
Hình 2.2: Lược đồ mức xám của các loại ảnh.
Nhìn và biểu đồ trên ta nhận thấy rằng: nếu ảnh tối thì mức xám sẽ tập trung
ở gần gốc tọa độ
Ảnh có độ tương phản thấp Ảnh có độ tương phản cao
Trang 222.4 Xử lý ảnh bằng thuật toán K-means:
Đây là thuật toán dùng để phân ngưỡng động trong xử lý ảnh thông qua việcphân nhóm Phân nhóm là quá trình phân chia hoặc nhóm lại một tập hợp các mẫucho sẵn thành những nhóm tách rời Các mẫu trong cùng một nhóm sẽ giống hoặckhác nhau (hoặc gần nhau) Sự phân nhóm được dùng rộng rãi trong các lĩnh vựcứng dụng bao gồm mạng Neural, trí tuệ nhân tạo và thống kê
Nhiều thuật toán phân nhóm đã được đưa ra như: ISODATA, CLARA,CLARANS, P-CLUSTER, DBSCAN,…tuy nhiên phương pháp K-Means nổi trộihơn do kết quả tốt và được kiểm chứng nhiều trong thực tế Hiểu đơn giản phânnhóm K-means là một thuật toán phân loại hoặc nhóm các đối tượng dựa vào đặctrưng, thuộc tính thành K nhóm Trong lĩnh vực xử lý ảnh, việc nhóm các pixelđược thực hiện được thực hiện bằng cách tính tổng của bình phương khoảng cáchcác pixel với pixel trung tâm của nhóm tương ứng
Các bước thực hiện phân nhóm K-means:
Qui định số nhóm K và giả định trọng tâm cho mỗi nhóm Các trọngtâm này có thể là các điểm tùy ý trong ảnh Ta giả sử rằng số nhóm K
là cố định trong K-means Cho K trọng tâm (w1, …,wk) được khởi trị
là một trong n điểm ảnh (i1, …, in) Do đó:
Wj=il, j {1, …,k}, l {1, …, n}
Cj là nhóm thứ j và là tập hợp con tập hợp con được tách ra khỏi tập hợp các mẫu ban đầu Chất lượng phân nhóm được quyết định bởi hàm sai số:
2 1
j l
w i E
Thuật toán K-means gồm các bước sau:
o Đặc trưng các thành phần phân nhóm sẽ được trích ra
o Mỗi thành phần sẽ được đánh dấu và đưa vào nhóm có trị trungbình gần nhất với thành phần đó bằng cách tính khoảng cáchgiữa thành phần đó và trị trung bình của mỗi nhóm Khoảng
Trang 23cách đó có thể là khoảng cách Euclidean, khoảng cách khốiCity,…
o Khi tất cả các thành phần đã được đánh dấu, trị trung bình củamỗi nhóm được tính toán lại
o Quá trình lặp lại cho đến khi không có sự thay đổi trị trungbình của mỗi nhóm hoặc thuật toán đạt đến số lần lặp đã đượcđịnh trước
), ,1
/ (wi*j Ci l iC j k
j l
w i E
Until E không thay đổi nhiều hoặc không có sự thay
đổi các mẫu trong các nhóm
}
2.5 Lọc trung vị (Median):
Trang 24Đây là phương pháp lọc phi tuyến trong xử lý ảnh, mục đích của phươngpháp lọc này nhằm loại bỏ nhiễu hạt tiêu (pepper noise) hay nhiễu hạt muối (saltnoise) rất hiệu quả mà vẫn đảm bảo độ phân giải Tuy nhiên hiệu quả sẽ giảm đi khi
số điểm nhiễu trong cửa số lớn hơn hay bằng một nữa số điểm ảnh trong cửa sổ
Trong phương pháp này, mức xám của điểm ảnh trung tâm được thay thếbằng trung vị của một chuỗi các mức xám của các điểm ảnh lân cận thay vì giá trịtrung bình
Trung vị m của một chuỗi các giá trị là một giá trị sao cho một nửa các giá trịtrong chuỗi nhỏ hơn m và một nửa lớn hơn m
Giả sử U (m, n) và V(m, n) là ảnh vào và ảnh ra của bộ lọc, lọc trung vị đượcđịnh nghĩa:
V(m,n)=Median(U(m-k,n-l)) với k,l thuộc [1,L]
Tìm trung vị của cửa sổ lân cận kích thước J*K của một điểm ảnh ta làm nhưsau:
Lấy các phần tử trong cửa sổ ra mảng 1 chiều (J*K phần tử)
là một loại nhiễu mà đối với bảng số nào cũng có Vì chương trình nhận dạng củachúng ta không cần phải nhận dạng ký tự này, do ta luôn biết vị trí của nó ở đâu trênbảng số xe Nếu ta dùng bộ lọc Erosion thì không tốt vì ta phải dùng mặt nạ quéttương đối lớn và có thể lặp lại nhiều lần và sẽ gây ảnh hưởng đến ký tự cần nhậndạng Đối với bộ lọc BlobsFiltering thì chỉ quét một lần trong ảnh, nó sẽ tìm tất cảcác đối tượng (các ký tự, nét gạch ngang và nhiễu nếu có ) trong ảnh, đánh dấu vị trí
và kích thước của từng đối tượng Việc còn lại là ta sẽ qui định một ngưỡng kích
Trang 25thước thích hợp cho bộ lọc để nĩ sẽ chỉ giữ lại các ký tự (vì nĩ cĩ kích thước lớnhơn ngưỡng) và loại bỏ tất cả các đối tượng cịn lại (bao gồm nét gạch ngang và cácnhiễu).
3 Mạng Neural nhân tạo:
Đến những năm 50 và 60, một nhĩm các nhà nghiên cứu đã kết hợp nhữngkiến thức về sinh học và tâm thần học để tạo ra một mạng neural nhân tạo hồnchỉnh đầu tiên Ban đầu được chế tạo dưới dạng một mạch điện tử, sau đĩ các mạngneural được chuyển thành các chương trình mơ phỏng trên máy tính cĩ mức độ linhhoạt cao hơn
Trong thời gian gần đây mạng Neural được phát triển mạnh mẽ với các nghiêncứu của Rosenblatt, Widrow và Hoff về các mạng Neural nhiều lớp phức tạp Mặtkhác do khả năng phần cứng của máy tính tăng lên rất nhiều cũng gĩp phần vào sựphát triển của lĩnh vực nghiên cứu này
Mơ hình đơn giản của mạng Neural cĩ thể được hiểu đơn giản như hình 2.3
Mạng Neural Networksvới các trọng số và
Đích
Điều chỉnh trọng số
Trang 26Hình 2.3: Mô hình toán học tổng quát của mạng Neural
Tín hiệu ngõ vào sau khi qua mạng Neural sẽ được tính toán và ngõ ra củamạng sẽ được so sánh với tín hiệu đích mong muốn Mạng sẽ tiếp tục cập nhật vàđiều chỉnh trọng số và ngưỡng đến khi thỏa mãn ngõ ra yêu cầu
Điều kiện quan trọng trong việc sử dụng Neural Networks là phải biết mốiliên hệ giữa ngõ vào và ngõ ra biết trước Mối quan hệ này có thể kéo theo nhiềuthứ nhưng nó nhất định phải tồn tại
Tổng quát, nếu ta sử dụng một mạng neural ta sẽ không biết chính xác trạngthái tự nhiên của mối liên hệ giữa ngõ vào và ngõ ra, nếu ta biết mối liên hệ ta sẽlàm mô hình đó trực tiếp Một tính năng khác của Neural Networks là nó có thểhọc mối liên hệ giữa ngõ vào và ngõ ra thông qua việc huấn luyện Có hai loại huấnluyện sử dụng trong Neural Networks là huấn luyện có giám sát và không giám sát.Với những loại mạng khác nhau thì sử dụng các loại huấn luyện khác nhau Huấnluyện có giám sát sử dụng thông dụng nhất
Trong việc học có giám sát, người sử dụng mạng phải có một tập hợp dữ liệucần huấn luyện Tập hợp này chứa những ngõ vào mẫu với ngõ ra tương ứng vàmạng sẽ huấn luyện để đưa ra mối liên hệ giữa ngõ ra và ngõ vào Tập hợp dữ liệuthường được lấy từ những bản ghi chép trước đó
Neural Networks sau đó được huấn luyện bằng một trong các thuật toán học
có giám sát (ví dụ backpropagation), sử dụng các dữ liệu để điều chỉnh trọng số vàngưỡng của mạng sao cho cực tiểu hóa sai số trong việc dự báo của mạng trên tậphuấn luyện Nếu mạng được huấn luyện chính xác, nghĩa là nó đã học mô phỏngmột hàm chưa biết với mối liên hệ giữa ngõ ra và ngõ vào, do đó với các tín hiệuvào đến sau, mạng sẽ dự báo tín hiệu ra tương ứng
3.2 Ứng dụng của Neural Network:
Những mạng Neural đã được sử dụng trong một sự đa dạng của những ngànhnghề khác nhau giải quyết những vấn đề trong một phạm vi rộng Những kiểu vấn
Trang 27đề được giải quyết ( hoặc hiện thời hoặc đang ở dạng nghiên cứu sử dụng) mạngbao gồm :
Nhận dạng tiếng nói
Nhận dạng hình ảnh
Dự đoán thị trường chứng khoán: nếu biết giá cả chứng khoán củatuần trước và chỉ số FTSE, ta sẽ dự đoán được giá cả chứng khoánngày mai
Dẫn đường robot điều khiển : ta muốn biết có hay không một robot biếtquẹo phải, trái hay chuyển động về một phía để đạt được mục tiêu, ta
sẽ biết được những gì robot đang quan sát
Nén dữ liệu
Nhận dạng đặc tính
Dự đoán ngựa đua
Chẩn đoán bệnh trong Y khoa
Điều khiển các thành phần pha chế thuốc tối ưu trong Dược khoa
Dò vết nứt các mối hàn
Điều khiển các quá trình gia công Cơ Khí
Về lý thuyết, những mạng Neural có thể tính toán bất kỳ hàm nào miễn làcung cấp cho nó đủ số neural lớp ẩn và bộ nhớ máy tính có thể Trong thực hành,những mạng Neural hữu ích cho những vấn đề với một mức độ lỗi cao, mà có nhiều
ví dụ, và không tồn tại giải thuật tối ưu giải quyết vấn đề
3.3 Mô hình một Neural nhân tạo:
Neural nhân tạo nhận một số các ngõ vào (từ dữ liệu gốc, hay từ ngõ ra cácNeural khác trong mạng) Mỗi kết nối đến ngõ vào có một cường độ (hay trọng số).Ngõ vào của Neural có thể là vô hướng hay hữu hướng Mỗi Neural cũng có mộtgiá trị ngưỡng Tín hiệu được truyền qua hàm kích hoạt (hay còn gọi là hàm truyền)tạo giá trị ngõ ra Neural
Trang 28 n f a
bp
Hình 2.5: Neural có nhiều ngõ vào
Trong đó
(1)(2)( )
p p p
R : số ngõ vào của Neuron
Hàm truyền f có thể là các hàm: tansig, logsig, purelin, hardlim,… hay cáchàm khác do người dùng định nghĩa
Trang 293.4 Mạng Neural một lớp:
Trang 303.5 Mạng Neural truyền thẳng 3 lớp:
Trang 31n 1 S1
b 1 S1
1
2 S2
n 2 S2
b 2 S2
1
a 2 =f 2 (LW 2,1 a 1 +b 2 )
LW 2,1 1,1
LW 2,1 s2,s1
1
3 S3
n 3 S3
b 3 S3
1
LW 3,2 1,1
LW 3,2 s3,s2
4 Thiết lập mạng Neural:
Để có thể tạo ra một mạng Neural ta phải biết trước mối liên hệ giữa ngõ vào
và ngõ ra Điều này có thể thực hiện bằng 2 cách :
Trực tiếp : bằng cách nào đó, nếu ta biết trước mối liên hệ này, thì ta sẽlàm mô hình đó trực tiếp
Học (huấn luyện) : có thể dùng 2 cách : học giám sát và không giámsát
Trang 32Với cách học không giám sát, mạng không cần biết trước ngõ ra yêu cầu.Trong qua trình huấn luyện, chỉ những mẫu nhập được đưa vào mạng, thuật toán tựđộng điều chỉnh các trọng số kết nối với các Neural để phân chia các mẫu nhập cócác đặc điểm tương tự vào chung một nhóm.
Ngược lại, việc học có giám sát đòi hỏi người giám sát phải cho biết ngõ rayêu cầu Trong cách học này, người sử dụng mạng phải có một tập hợp dữ liệu cầnhuấn luyện Tập hợp này (thường được lấy từ những bản ghi chép trước đó) chứanhững ngõ vào mẫu với ngõ ra tương ứng và mạng sẽ huấn luyện để đưa ra mối liên
hệ giữa ngõ ra và ngõ vào Cách huấn luyện mạng thông thường là: dùng một trongcác thuật toán học có giám sát (ví dụ backpropagation), sử dụng các dữ liệu để điềuchỉnh trọng số và ngưỡng của mạng sao cho cực tiểu hóa sai số (trên tập huấnluyện) trong việc dự báo của mạng Nếu mạng được huấn luyện chính xác, nghĩa là
nó đã học mô phỏng một hàm chưa biết với mối liên hệ giữa ngõ ra và ngõ vào, thìvới các tín hiệu vào đến sau, mạng sẽ dự báo tín hiệu ra tương ứng
4.1 Các bước chuẩn bị thiết lập mạng:
Thu Thập dữ liệu để huấn luyện mạng:
Trước hết ta phải xác định được tập dữ liệu – là tập bao gồm một sốcác trường hợp, mỗi trường hợp chứa những giá trị của tầm ngõ vào vàngõ ra khác nhau Sau đó xác định những biến nào sẽ sử dụng, bao nhiêutrường hợp cần thu thập
Việc lựa chọn những biến sẽ được sử dụng thường do trực giác quyếtđịnh và phụ thuộc vào công việc chuyên môn cũng như lĩnh vực của nó.Trong Neural Networks, ta có thể chọn và loại bỏ nhiều biến hoặc xác địnhbằng thực nghiệm những biến hữu ích Bước đầu, ta nên tính đến bất kìbiến nào mà ta nghĩ có ảnh hưởng đến quá trình thiết kế
Trong khi đó, số trường hợp mẫu dùng để huấn luyện mạng rất khóxác định Đã có một vài hướng dẫn về mối liên hệ giữa số trường hợpmẫu với kích thước mạng (cách đơn giản nhất là số trường hợp mẫu gấp
10 lần số kết nối trong mạng) Thực ra số trường hợp mẫu cũng liên quan
Trang 33đến độ phức tạp của hàm mà mạng phải học Khi số biến tăng lên, sốtrường hợp mẫu cần để huấn luyện cũng tăng phi tuyến, vì thế với một sốnhỏ các biến (50 hoặc nhỏ hơn) thì lại cần một số lớn các trường hợp mẫu.Trong hầu hết các vấn đề trong thực tế, số trường hợp mẫu là khoảng hàngtrăm hay hàng ngàn mẫu Đối với những vấn đề rất phức tạp thì cần nhiềuhơn, nhưng trường hợp này rất ít Nếu dữ liệu huấn luyện ít hơn, thì sẽkhông đủ thông tin để huấn luyện mạng, và cách tốt nhất là dùng mạngtuyến tính.
Sau khi thu thập xong tất cả những dữ liệu cần thiết thì ta sẽ xử lýchúng Có 2 loại dữ liệu :
Dữ liệu số: được chia nhỏ thành những khoảng thích hợp cho mạng
và những giá trị thiếu có thể được thay thế bằng giá trị trung bình hay giátrị thống kê của biến đó thông qua những biến khác đã được huấn luyện
Dữ liệu phi số: xử lý khó hơn Loại dữ liệu không phải là số thông
thường nhất là những biến có giá trị danh định như giới tính (nam, nữ).Biến có giá trị danh định có thể biểu diễn bằng số học và Neural Networks
có chức năng hỗ trợ điều này Tuy nhiên Neural Networks làm việc tốtvới những trường hợp biến danh định là một tập nhiều giá trị
Huấn luyện:
Khi số các lớp, số Neuron mỗi lớp đã được chọn, trọng số và ngưỡngcủa mạng phải được cài đặt sao cho có được cực tiểu sai số trong việc dựđoán của mạng
4.2 Các bước thiết kế mạng:
Chọn cấu hình ban đầu (thường là một lớp ẩn có số Neural ẩn bằng nửa tổng
số Neural ngõ vào và ngõ ra)
Thực hiện lặp đi lặp lại số thí nghiệm của mỗi cấu hình, giữ lại mạng tốt nhất(thường dựa trên sai số xác minh) Thí nghiệm nhiều lần trên mỗi cấu hình mạng đểtránh rơi vào sai số cục bộ
Trang 34Trong mỗi lần thí nghiệm, nếu xảy ra việc học chưa đủ (mạng không đạt đượcmức hiệu suất chấp nhận) thì thử tăng số Neural trong lớp ẩn Nếu không hiệu quả,thì thêm một lớp ẩn.
Nếu xảy ra học quá mức (sai số xác minh bắt đầu tăng lên) thử bỏ bớt một vàiNeural ẩn (và có thể bỏ lớp ẩn)
5 Phân loại cấu trúc mạng:
Mỗi Neural lấy tổng trọng số và ngưỡng của ngõ vào, qua hàm truyềnđến ngõ ra, các Neural được sắp xếp theo các lớp tới Hàm truyền cho cácnơron là hàm truyền mức giá trị 0 hoặc 1
Lỗi trong một cấu hình cụ thể của mạng sẽ được xác định bằng cáchcho chạy tất cả các trường hợp huấn luyện qua mạng, so sánh giá trị ngõ ra
Trang 35của mạng với giá trị mong muốn Lỗi này được tính theo hàm sai số củamạng Thông thường hàm sai số là tổng bình phương lỗi (SSE – SumSquared Error).
Mạng Tuyến Tính (Adapt Linear Neural Network):
Mạng tuyến tính (ADALINE) tương tự như mạng percepton, tuynhiên hàm truyền của các neural là hàm tuyến tính nhiều mức giá trị hơn
so với hàm mức của mạng percepton Tuy nhiên cả mạng percepton vàmạng tuyến tính chỉ cũng giải quyết được các bài toán tuyến tính, chưagiải quyết được các bài toán phi tuyến cho các ứng dụng trong thực tế
Mạng Nuôi Tuyến Lan Truyền Nguợc (Back Propagation Feed Forward Network):
Đây là một cải tiến so với mạng percepton và mạng tuyến tính Cáchàm truyền phi tuyến của các neural rất đa dạng , do đó có thể giải quyếtđược những bài toán phi tuyến phức tạp của các ứng dụng thực tế Giảithuật lan truyền ngược được sử dụng phổ biến và hoàn toàn có thể đápứng được những yêu cầu của các bài toán phức tạp Việc thiết kế mạng lantruyền ngược cũng khá đơn giản, chính vì vậy , mạng lan truyền ngượcđựoc sử dụng trong chương trình này Chúng ta sẽ đề cập kĩ hơn trong cácphần sau
Mạng Kohonen :
Mạng này dùng để thiết kế chuỗi cho việc học không giám sát
Có khả năng tự tổ chức học nhận ra các nhóm vector ngõ vào tương tựnhau nên đây là lợi điểm dùng cho các ứng dụng nhận dạng
Trang 36Tầm ứng dụng thấp, khả năng linh động kém.
Mạng Tự Tổ Chức (Self Organization Network):
Mạng có thể kiểm tra mức độ thường xuyên và mối liên hệ của cácđầu vào và các đáp ứng ngõ ra hợp lý tương ứng Các neural trong mạngcạnh tranh có khả năng nhận ra các đầu vào tương tự nhau
Mạng LVQ (Learning Vector Quantization):
Mạng này dùng để huấn luyện cho các lớp cạnh tranh trong việc học
có giám sát.Một lớp học cạnh tranh sẽ tự động phân chia các vector đầuvào thành các lớp , tuy nhiên các lớp này chỉ phụ thuộc khoảng cách giữacác vector đầu vào Nếu hai đầu vào tương tự nhau sẽ được sắp xếp vàomột lớp
5.2 Mạng hồi quy (recurrent network):
Giống mạng có cấu trúc tiến nhưng nó còn chứa các kết nối ngược trở về cácNeural trước đó Mạng có thể chạy không ổn định và dao động rất phức tạp gồm:Elman và Hopfield network
6 Cơ sở lý thuyết và giải thuật huấn luyện cho mạng lan truyền ngược:
6.1 Cấu trúc mạng lan truyền ngược:
Các Loại Neural (Tansig , Logsig , Purelin):
Một loại neural có R ngõ vào thể hiện như sau
Hình 2.10: Cấu tạo một Neural
Trang 37Mỗi ngõ vào tương ứng với một trọng số thích hợp lí w Tổng của cácngõ vào sau khi nhân với các trọng số tương ứng và giá trị ngưỡng sẽ trởthành ngõ vào đối với hàm truyền f Neural dùng nhiều hàm truyền khácnhau để tính toán giá trị ngõ ra Mạng nhiều lớp thường dùng hàm truyềnlog – signoid (logsig)
Hình 2.11: Hàm truyền logsig
Hàm logsig tính toán ngõ ra nằm trong khoảng 0 và 1 trong khi giá trịđầu vào là từ âm vô cực cho đến dương vô cực Neural dùng hàm truyềnlogsig gọi là neural logsig
Tiếp đến, mạng nhiều lớp có thể dùng hàm truyền tan – signoid(tansig)
Hình 2.12: Hàm truyền tansig
Neural dùng hàm truyền tansig gọi là neural tansig
Hiếm khi hàm truyền tuyến tính dùng trong mạng lan truyền ngược(thường chỉ sử dụng phổ biến trong mạng tuyến tính)
Trang 38Hình 2.13: Hàm truyền pureline (tuyến tính)
Neural dùng hàm truyền tuyến tính gọi là neural pureline
Nếu lớp cuối cùng dùng hàm truyền signoid ( neural logsig và tansigthì ngõ ra chỉ giới hạn trong một khoảng nhỏ Còn nếu neural tuyến tínhđược dùng thì ngõ ra chỉ lấy một vài giá trị )
Cấu trúc các lớp trong mạng lan truyền ngược:
Mạng một lớp với S neural logsig có R ngõ vào được thể hiện theohình bên trái ,còn bên phải là sơ đồ khối các lớp
Hình 2.14: Cấu trúc mạng một lớp
S : số neural trong một lớp
R : số ngõ vào
Trang 39Mạng lan truyền ngược với các neural có hàm truyền đạt phi tuyếncho phép nơron học được những mối liên quan tuyến tính và phi tuyếngiữa ngõ vào và ngõ ra Nếu giới hạn ngõ ra trong khoảng 0 đến 1 thì nêndùng hàm signoid (như logsig).
Mô hình một mạng hai lớp như sau:
Hình 2.15: Mạng 2 lớp dùng Neural tagsig và pureline
Mạng này nói chung có thể xấp xỉ một hàm bất kì nào Mạng có thểxấp xỉ bất kì một hàm nào với một số điểm gián đoạn tương đối tốt khi có
đủ số neural trong lớp ẩn
6.2 Huấn luyện cho mạng lan truyền ngược:
Mạng được huấn luyện để xấp xỉ một hàm phi tuyến, một mô hình liên kếthay phân lớp Trong suốt quá trình huấn luyện, các trọng số và các giá trị ngưỡng sẽđược điều chỉnh một cách hợp lí để làm tối thiểu giá trị hàm lỗi của mạng Hàm lỗimặc định cho mạng lan truyền ngược là trung bình bình phương lỗi (mean squareerror hay mse) – lỗi trung bình bình phương giữa ngõ ra thực tế và ngõ ra tính toánđược Sau đây là một vài thuật toán huấn luyện cho mạng lan truyền ngược Tất cảcác thuật toán này đều dùng độ dốc (gradient) của hàm lỗi để điều chỉnh các trọng
số sao cho tối thiểu hàm lỗi Độ dốc được tính toán dựavào một kĩ thuật gọi là lantruyền ngược
Trang 40 Nguyên lý chung:
Nếu gọi ( )w là hàm lỗi (hay hàm chi phí) và w* là trọng số tối ưucần tìm thì:
*( )w ( )w
là vector gradient của hàm lỗi
Nguyên lý chung của việc tìm ra trọng số tối ưu là:
Khởi tạo trọng ban đầu w(0)
Lặp tìm trọng số thứ n, w(n) sao cho ( ( ))w n ( (w n1))
Sơ lược về một số giải thuật cơ bản thường được dùng trong huấn luyện mạng lan truyền ngược:
Giảm dốc nhất ( steepest decent gradient ):
Trong thuật toán lan truyền ngược, vector gradient của mặt phẳngsai số sẽ được tính toán Vector này chỉ ra đường giảm dốc nhất và vịtrí hiện tại, vì thế chúng ta biết rằng nếu chúng ta di chuyển dọc theo
nó một “khoảng ngắn”, cuối cùng chúng ta sẽ đạt được giá trị nhỏ nhất.Tuy nhiên, khó khăn ở đây là quyết định độ lớn của từng bước dichuyển Bước lớn có thể hội tụ nhanh hơn, nhưng có thể vượt quá điểmcần đến hay đi ra khỏi vùng có cực tiểu (nếu mặt phẳng sai số bị lệchtâm) Ngược lại, bước quá nhỏ có thể đi đến đúng hướng nhưng chúng
ta cần phải thực hiện phép lặp nhiều lần Trong thực tế, kích thướcbước tỷ lệ với độ dốc và hằng số đặc biệt: tốc độ học Giá trị chính xáccủa tốc độ học phụ thuộc vào từng ứng dụng cụ thể, và thường đượcchọn qua thực tiễn