3.4.2.1 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 3.10: Cấu tạo một Neural
Mỗ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ác ngõ 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ác nhau để tính toán giá trị ngõ ra. Mạng nhiều lớp thường dùng hàm truyền log – signoid (logsig)
Hình 3.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ền logsig 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)
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)
Hình 3.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à tansig thì 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ị )
3.4.2.2 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 theo hình bên trái, còn bên phải là sơ đồ khối các lớp
Hình 3.14: Cấu trúc mạng một lớp S : số neural trong một lớp
R : số ngõ vào
Mạng lan truyền ngược với các neural có hàm truyền đạt phi tuyến cho phép nơron học được những mối liên quan tuyến tính và phi tuyến
giữa ngõ vào và ngõ ra. Nếu giới hạn ngõ ra trong khoảng 0 đến 1 thì nên dùng hàm sigmoid.
Mô hình một mạng hai lớp như sau:
Hình 3.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
3.4.2.3 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ết hay 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ỗi mặc định cho mạng lan truyền ngược là trung bình bình phương lỗi (mean square error 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à lan truyền ngược.
3.4.2.4 Nguyên lý chung:
Nếu gọi ( )w là hàm lỗi và w* là trọng số tối ưu cần tìm thì: *
( )w ( )w
Để tìm được giá trị nhỏ nhất của hàm ( )w hay trọng số tối ưu w*, ta tiến hành lấy đạo hàm hàm lỗi thông qua phép gradient. Và ta sẽ có
* ( ) 0w Đặt 1 2 , ,..., T N w w w là toán tử gradient ( )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))
3.4.2.5 Vấn đề quá khớp và năng lực của mạng:
Một trong những vấn đề thường xảy ra trong suốt quá trình huấn luyện mạng là quá khớp. Sai số trong tập huấn luyện được kéo xuống rất bé, nhưng khi đưa dữ liệu mới vào thì mạng lại tạo sai số lớn. Mạng có nhớ được các mẫu huấn luyện, nhưng mạng không học được tính tổng quát hóa trường hợp mới.
Mạng Neural có càng nhiều trọng số thì hàm càng phức tạp và do đó sẽ rơi vào tình trạng khớp quá mức. Mạng có ít trọng số hơn sẽ không đủ khả năng để mô phỏng hàm cơ sở. Ví dụ như mạng không có các lớp ẩn chỉ mô phỏng hàm truyền tuyến tính đơn giản.
Vậy chúng ta sẽ chọn lựa độ phức tạp của mạng đúng như thế nào? Mạng lớn hơn sẽ hầu như luôn luôn có được sai số nhỏ hơn, nhưng điều này có thể là khớp quá mức hơn là một mô hình tốt.
Câu trả lời là sử dụng xác nhận mức giao. Vài mẫu huấn luyện được lưu lại và không thực sự dùng cho huấn luyện trong thuật toán backpropagation. Để thay thế, những mẫu này được sử dụng để kiểm tra độc lập trong quá trình của thuật toán. Như vậy hiệu suất ban đầu của mạng luôn luôn bằng nhau ở những tập huấn luyện và xác minh lại. Trong quá trình huấn luyện, sai số huấn luyện tự nhiên giảm xuống, và
cho phép huấn luyện cực tiểu hóa hàm sai số thực, sai số xác minh cũng giảm xuống. Tuy nhiên, nếu sai số xác minh không giảm, hay bắt đầu tăng lên, điều này có nghĩa là mạng bắt đầu khớp quá mức dữ liệu, và huấn luyện nên dừng lại. Trường hợp khớp quá mức xảy ra trong quá trình xử lý huấn luyện gọi là học quá mức. Trong trường hợp này, chúng ta nên giảm số neural ẩn hay lớp ẩn vì mạng quá mạnh đối với vấn đề này. Ngược lại, nếu mạng không đủ mạnh để mô phỏng hàm cơ sở, học quá mức không có khả năng xảy ra, cũng như sai số huấn luyện hay xác minh lại không rơi vào mức bão hòa.
Những vấn đề liên quan đến cực tiểu cục bộ, và những quyết định sử dụng quá kích thước của mạng, nghĩa là chúng ta phải chạy thử trên nhiều mạng khác nhau, có thể huấn luyện mỗi mạng vài lần và quan sát hiệu suất từng mạng. Điều quan trọng là quan sát sai số xác minh. Tuy nhiên, nên nhớ rằng nên mô phỏng mạng đơn giản hơn là mạng phức tạp, chúng ta cũng thể chọn mạng nhỏ hơn là mạng lớn có khả năng cải thiện sai số xác minh không đáng kể.
Vấn đề đối với kỹ thuật này về việc thí nghiệm lặp đi lặp lại là tập xác minh không thực sự đóng vai trò chọn lựa mạng, nghĩa là nó chỉ là một phần trong quá trình huấn luyện. Độ tin cậy của nó chỉ ở mức độ vừa phải – khi số lần thí nghiệm đủ, chúng ta có khả năng rơi vào trường hợp mạng thực hiện tốt trên tập xác minh. Để thêm độ tin cậy hiệu suất của mô hình cuối cùng thì trong thực tế thường sử dụng thêm một tập thứ ba – là tập kiểm tra. Mô hình cuối cùng được kiểm tra với tập dữ liệu kiểm tra để đảm bảo rằng kết quả của tập xác minh và huấn luyện là thật.
3.5 Ứng dụng mạng Neural trong lĩnh vực nhận dạng 3.5.1 Nhiệm vụ 3.5.1 Nhiệm vụ
Vấn đề nhận dạng đặc tính là một lĩnh vực ứng dụng của những phương pháp phân loại tự động tiêu biểu. Ngoài sự quan tâm ứng dụng của nó qua vấn đề nhận dạng mã Zip, tự động đọc của ngân hàng kiểm tra..., nó liên quan tới
tất cả các vấn đề tiêu biểu sẽ gặp khi tiến hành phân loại: sự lựa chọn khi trình bày dữ liệu, sự lựa chọn kiểu và cấu trúc thích hợp, và huấn luyện có giám sát phân loại sử dụng một tập hợp những mẫu và khả năng tổng quát của mạng.
3.5.2Cách tiếp cận
Từ những lớp perceptrons đơn, là thành phần chính cho việc xây dựng những lớp phân loại tuyến tính, những hệ phân loại mạng neural mạnh hơn đã được phát triển. Mạng thông dụng nhất là Mạng nuôi tiến nhiều lớp (Multi Layer feedforward Network) huấn luyện bởi giải thuật lan truyền ngược (backpropagation). Mạng này với một lớp ẩn thì thông dụng cho những hệ phân loại, chúng có thể xấp xỉ những hàm quyết định phức tạp nếu cung cấp đủ số neural bên trong lớp ẩn .Tuy nhiên, không có quy tắc đơn giản nào cho biết như thế nào là đủ hoặc thiếu những neural lớp ẩn để học một hàm đã cho. Cách duy nhất là thử và chọn cho đến khi có một mạng tốt nhất.
Quá trình nhận dạng cổ điển được tách ra thành những bước xử lý trước và sự phân loại kế tiếp. Trong cách tiếp cận chúng ta, những thao tác xử lý trước có thể không cần thiết khi sử dụng mạng nơron vì khả năng chịu nhiễu rất tốt của nó.
Các kiểu chữ do những người khác nhau thực hiện. Những người này vẽ những chữ số thẳng góc để làm giới hạn bớt sự đa dạng lớn của những kích thước và những kiểu viết. Những chữ số được số hóa bởi một scanner: những chữ số đen và trắng nhị phân. Ngoài những sự biến đổi kiểu kích thước và ghi, vấn đề phân đoạn làm khó hơn bởi sự tồn tại của những chữ số gối lên nhau, những dấu ngang và những sự đánh dấu trên phong bì, hay các dấu gạch trên biển số xe. Bởi vậy, nhiều chữ số bị cắt một phần, bao gồm bên ngoài những sự dánh dấu hoặc những phần từ những chữ số khác, và vài chữ số không thể được phân vùng được
Tập mẫu huấn luyện và tập mẫu thử của dữ liệu mà những cơ sở chứa đựng không rõ ràng có những mẫu có thể nhận ra được tuy khó khăn có vài mẫu thì thậm chí được gán cho lớp sai trong lúc phân loại.
Sự lựa chọn hình thức trình bày dữ liệu thích hợp là một điểm khẩn yếu khi nào giải quyết một nhiệm vụ phân loại, hoặc với một có thể dạy được hoặc với một hệ phân loại không có thể dạy được. Nếu một kiểu dữ liệu có nhiễu một cách tương đối được sử dụng, thì cần phải có một tập mẫu đủ lớn để huấn luyện mới có những kết quả thỏa mãn. Bởi vì hệ phân loại trên tập hợp mẫu thử thì khá gần với những đặc tính của tập huấn luyện.
Cho một kiểu dữ liệu đã cho, một siêu phẳng tối ưu phân ra những lớp trong N-chiều nhập vào không gian có thể được tìm thấy nếu những phân phối xác suất nằm bên dưới cũng được biết hoặc đánh giá đúng đắn. Siêu phẳng này có thể được xấp xỉ bởi việc huấn luyện hệ phân loại mạng neural nào đó trên những mẫu của tập huấn luyện. Hệ phân loại có một tập hợp những tham số, những trọng số trong trường hợp của một mạng neural, phải được xác định. Với câu hỏi vừa rồi : Làm sao nhiều mẫu huấn luyện được dùng đến đạt được một độ chính xác đã cho của việc xấp xỉ? Trong khi trả lời tới câu hỏi này chắc chắn đầy đủ phụ thuộc vào sự phức tạp của vấn đề phân loại tại chỗ, nó là số mẫu cần phải có đểù đạt được một độ chính xác đã cho nó phụ thuộc vào lũy thừa với kích thước N của không gian đầu vào , đây là khó khăn đặc biệt cho việc nhận biết thế giới thực mà những vấn đề như nhiệm vụ nhận dạng chữ số sẽ bàn luận ở đây.
3.6 Kết luận chương 3
Giải pháp nhận dạng biển số xe trên cơ sở công nghệ xử lý ảnh để trích lọc được các ký tự số và chữ trên biển số xe, Ứng dụng mô hình mạng neural để xây dựng phần mềm nhận dạng biển số xe.
CHƯƠNG 4: XÂY DỰNG PHẦN MỀM NHẬN DẠNG BIỂN SỐ XE 4.1 Mô hình tổng quát hệ thống nhận dạng biển số xe mô tô hai bánh
Một hệ nhận dạng biển số xe mô tô trực tuyến có thể được mô tả tóm lược như sau:
Khi có xe vào phạm vi camera chụp ảnh xe (dừng đúng vị trí quy định), ảnh chụp sẽ được truyền vào chương trình nhận dạng chính. Ảnh chụp sẽ được đưa vào module trích ảnh biển số, ảnh này sẽ được tiền xử lý, sau đó module tách ký tự đơn sẽ thực hiện tách từng ký tự trên biển số trước khi đua vào module nhận dạng ký tự. Ký tự sau khi nhận dạng sẽ được kết xuất và lưu vào cơ sở dữ liệu (có thể dùng quản lý trong bãi giữ xe,…) của chương trình. Sau đây tôi sẽ trình bày chi tiết từng module và thuật toán giải quyết vấn đề.
4.1.1 Thu nhận ảnh Vị trí chụp ảnh Vị trí chụp ảnh
Hệ thống sử dụng thiết bị camera để chụp ảnh xe, có vị trí đặt thu chụp cách phương tiện giao thông một khoảng 1m. Với điều kiện chụp ảnh như trên sẽ giúp cho hệ thống có các thông tin trong quá trình nhận dạng như: tỉ lệ của vùng ảnh có biển số so với ảnh thu được từ camera, phạm vi bảng số trên ảnh,… làm tăng hiệu quả nhận dạng của hệ thống.
4.1.2 Nhận ảnh và các tham số đầu vào
Thiết bị chụp ảnh được điều khiển bởi chương trình thực hiện tại máy tính. Camera được điều khiển chụp ảnh gián tiếp thông qua module điều khiển phát hiện chuyển động, truyền tín hiệu yêu cầu chụp và lưu giữ tạm các ảnh chụp.
Ảnh chụp nhận được là ảnh chụp phía sau xe, có độ phân giải là 640x480 chứa một phần xe và ảnh biển số.
Ảnh biển số: trong phạm vi của đề tài này sẽ xử lý các dạng biển số lưu thông do cơ quan cảnh sát giao thông qui định.
Dạng biển số Hình chữ nhật bao gồm 2 dòng chữ Ký tự trên biển số Gồm có 10 ký tự số in: 0,…9 và 21 ký tự chữ
in hoa gồm {A …Z} \ {I, J, O, Q, W}. Thông tin trên biển số gồm 2 phần:
Thông tin tỉnh thành, quận huyện: 4 ký tự dòng 1.
Số hiệu biển số: ký tự dòng 2.
Miền kích thước của biển số. Cao = 40
Rộng = 50
Màu ảnh nền và màu chữ ảnh có nền sáng chữ tối Vị trí tương đối của biển số
trong ảnh
Thường nằm khoảng giữa ảnh.
Chiều rộng, cao của một ký tự trên biển số.
Rộng = 7 Cao = 10
Bảng 4.1: Bảng mô tả thông tin ảnh biển số xe mô tô
Các điều kiện trình bày ở trên sẽ được tham số hóa trong hệ thống nhận dạng của đề tài và mang tính chất tăng cường ràng buộc ảnh đầu vào.
4.2Trích biển số, xử lý ảnh biển số và tách ký tự chữ số xe mô tô
4.2.1 Thuật toán trích biển số dùng phương pháp phân tích phổ tần số (Fast Fourier Transform) (Fast Fourier Transform)
Kỹ thuật phân tích phổ Fourier được sử dụng rộng rãi trong lĩnh vực xử lý ảnh, và thường được áp dụng để tăng cường chất lượng ảnh (ví dụ như làm trơn và làm sắc nét cho ảnh). Các ảnh có thể xem như là các hàm rời rạc của thời gian, mà phép biến đổi Fourier một chiều hay hai chiều có thể áp dụng được. Đối với xử lý ảnh số, luôn luôn tồn tại phép biến đổi Fourier và biến đổi ngược của nó. Phép biến đổi Fourier F(u), thu được từ hàm ngõ vào f(x), với x là biến không gian số rời rạc và u là biến tần số rời rạc trong miền tần số. Phép
biến đổi Fourier rời rạc một chiều được trình bày trong biểu thức (4.1) và phép biến đổi Fourier rời rạc 2 chiều được cho trong biểu thức (4.2).
1 0 2 ) ( 1 ) ( M x M ux j e x f M u F với u=0,1,…,M-1 (4.1) 1 0 1 0 2 ) , ( 1 ) ( M x N y N vy M ux j e y x f MN u F với u = 0,1,…,M-1 (4.2) và v = 0,1,…,N-1
Do biến đổi Fourier phức tạp, cho nên sẽ thuận tiện hơn nếu ta dùng phổ biên độ của nó, còn được gọi là phổ Fourier, cho bởi biểu thức 4.3. Dạng phổ thường được dùng là phổ năng lượng hay phổ mật độ, bằng bình phương của phổ Fourier, cho bởi biểu thức 4.4
2 1 2 2 ) ( ) ( | ) ( |F u R u I u (4.3) ) ( ) ( | ) ( | ) (u F u 2 R2 u I2 u P (4.4)
Chúng ta cũng cần chú ý đến mối liên hệ giữa miền không gian và miền tần số: x M u 1 (4.5) y