Để giải quyết được bài toán nhận dạng biển số xe ta phải giải quyết bốn bài toán nhỏ:
31
Bài toán 1: Chọn lựa các khung và trích chọn ảnh từ dãy tín hiệu đầu vào là
đoạn phim, camera kỹ thuật số hay thiết bị ghi hình khác. Ảnh thu được sẽ truyền vào máy tính.
Giải quyết :
- Đối với các hệ thống trực tiếp thu ảnh vào camera kỹ thuật số hay các
thiết bị ghi hình khác, thì giải pháp là nhờ vào bộ phận tách “khung” gọi là Frame Grabber. Hoạt động của bộ phận này là cứ 1 khoảng “khung” định trước, hệ thống sẽ gửi ảnh đến vị trí đích mà cụ thể ở đây là máy tính. Máy tính sẽ tiếp nhận ảnh này và tiến hành xử lý.
- Đối với hệ thống mà tín hiệu đầu vào là đoạn phim. Giải pháp ở đây là
xây dựng một ứng dụng “Capture” vùng nhìn. Tuy nhiên, cách này chỉ là bán thủ công. Giải pháp tốt nhất vẫn là kết nối với thiết bị Frame Grabber (thiết bị dùng để thu hình từ camera Analog).
- Đối với hệ thống mà tín hiệu đầu vào chỉ là ảnh thì cần trang bị một thư viện đọc và ghi ảnh.
Bài toán 2: Từ ảnh đầu vào (kết quả từ Bài toán 1) thực hiện việc dò tìm và
phát hiện ra vùng con có khả năng chứa biển số xe.
Giải quyết:
- Phương pháp 1: “Phát triển vùng” là ảnh chứa biển số xe sẽ có những vùng đồng nhất mà cụ thể là “màu trắng” và có diện tích nhất định. Như vậy ta sẽ áp dụng phương pháp phát triển vùng để tìm ra các vùng thỏa mãn đặc tính trên.
- Phương pháp 2: “Phép biến đổi Hough” là biển số xe có chứa các đường viền, nên chúng ta sử dụng phép biến Hough cho việc phát hiện các vùng có đường thẳng đứng và đường thẳng ngang. Giao điểm của các đường này sẽ cho ta tọa độ của khung viền.
32
- Phương pháp 3: “Phát hiện biên và Heuristic” ta áp dụng mặt nạ Sobel để dò tìm cạnh trong ảnh, kết quả là ảnh chứa tập các cạnh. Sau đó, áp dụng một số Heuristic về biển số xe như tỉ lệ chiều cao/ chiều rộng, kích thước hoặc sử dụng một cửa sổ di chuyển trên toàn bộ tập các cạnh để tìm ra vùng có số cạnh thỏa mãn điều kiện.
Bài toán 3: Từ các vùng con (kết quả có được từ Bài toán 2) thực hiện một số thao tác để xác định chính xác vùng con nào là vùng chứa biển số xe. Kết quả của bài toán này là một hay một tập các ảnh con chứa biển số xe.
Giải quyết:
- Nếu đầu vào chính xác chỉ chứa biển số xe hoặc vừa chứa biển số xe vừa chứa 1 phần duy nhất của xe. Thì việc chọn lọc trong tập hợp các vùng để đưa ra biển số xe là đơn giản. Ta chỉ cần dựa vào kích thước, chiều cao chiều rộng của vùng.
- Nếu ảnh đầu vào còn chứa các đối tượng khác thì cần phải bổ sung thêm heuristic để chọn lọc. Một số heuristic được dùng tại đây là:
+ Tỉ lệ chiều cao/ chiều rộng. + Số cạnh trong từng vùng. + Tỉ lệ Pixel ảnh/ Pixel nền.
+ Dạng của lược đồ xám theo (Ox, Oy).
Kết quả của bài toán này là tập ảnh mà mỗi phần tử trong tập hợp chỉ chứa biển số xe.
Bài toán 4: Giải quyết bài toán nhận dạng ký tự cho tập kết quả từ bài toán 3, bằng cách áp dụng các phương pháp và kỹ thuật của nhận dạng ký tự.
Giải quyết:
Đối với bài toán này hiện nay đã có rất nhiều phương án giải quyết gần như hoàn hảo. Bộ nhận diện ký tự nhận đầu vào là các ảnh có ký tự riêng rẽ và cho ra ký tự văn bản tương ứng. Hiện nay mạng noron là hệ thống máy học
33
được sử dụng phổ biến cho việc phân loại này, ngoài ra các giải thuật so khớp mẫu (Template Matching) cũng được áp dụng tùy theo từng tình huống.
34
3.2 Các bƣớc nhận dạng biển số
Nhận dạng biển số xe là bài toán dùng để đọc ảnh biển số xe lấy ra dưới dạng ký tự để lưu trữ hay in ấn. Bởi vì việc lưu trữ hay in ấn nguyên một cái ảnh thì khác hẳn so với lưu trữ hay in ấn một vài ký tự. Chính vì thế mà việc nhận dạng biển số xe là rất cần thiết và cũng khá là quan trọng.
Ảnh biển số xe máy được dùng trong nhận dạng là một biển số xe thật được chụp bằng máy ảnh hay máy quay... Trong thực tế hiếm khi nào mà máy ảnh hay máy quay lại chỉ chụp có mỗi cái biển số của xe không thôi mà nó sẽ chụp hình của cả cái xe có thể có cả người trong đó nói chung là còn cả cảnh bên ngoài. Nhiệm vụ đầu tiên là phải tách được vùng chỉ chứa biển số ra thôi và chuyển thành một cái ảnh mới đem vào hệ thống nhận dạng này để xử lý.
Ảnh xử dụng trong hệ thống nhận dạng là ảnh đã được xử lý một lần. Sau khi có ảnh đầu vào đã xử lý ta mới tiến hành đến các bước tiếp theo. Các bước thực hiện nhận dạng biển số được mô tả dưới hình 3.2
Ảnh đầu vào
Hình 3.2 Các bước nhận dạng biển số
3.2.1 Trích vùng biển số
Mục đích: Từ ảnh chụp được trong bước thu nhận ảnh, áp dụng các thuật toán trích ra được vùng ảnh nhỏ nhất chứa biển số.
Các phương pháp: Có nhiều phương pháp khác nhau thực hiện việc trích vùng biển số. Tuy nhiên có thể quy về ba phương pháp chính là:
Trích vùng biển số
Nhận dạng kí tự
Cách ly các kí tự
35
- Phương pháp dùng chuyển đổi Hough: Dựa vào đặc trưng cạnh biên trích được, áp dụng các phương pháp xác định đường thẳng như phép biến đổi Hough để phát hiện các cặp đường thẳng gần song song nghép thành biển số.
- Phương pháp khớp mẫu: Xem biển số là đối tượng có khung nền riêng và sử dụng các cửa sổ dò để trích từng đối tượng đưa qua mạng noron để phân lại có phải là vùng chứa biển số hay không.
- Phương pháp hình thái học: Dựa vào đặc trưng hình thái của biển số xe như màu sắc, độ sáng, sự đối xứng… để xác định và trích ra ảnh biển số.
Trong chương trình nhận dạng biển số xe ta sử dụng kết hợp hai phương pháp là chuyển đổi Hough và hình thái học.
Cụ thể:
Phương pháp chuyển đổi Hough:
Các bước thực hiện:
- Dò đặc trưng biên ngang, dọc: Làm nổi bật các viền bao của tất cả các đối tượng trong ảnh, trong đó có viền bao quanh biển số. Sử dụng các bộ lọc gradien để trích được các đặc trưng cạnh này và dùng bộ lọc sobel để tiến hành dò.
- Dùng chuyển đổi Hough tìm các đoạn thẳng ngang dọc trên cơ sở của ảnh nhị phân biên cạnh thu được ở bước trên.
- Tách các đoạn thẳng ngang dọc có thể là cạnh của biển số.
- Trích ứng viên biển số: Thành lập các hình chữ nhật là ứng viên cho biển số với tiêu chí cụ thể là: các bộ bốn đoạn thẳng thu được sẽ qua đánh giá về kích thước.
36
Nhược điểm: phụ thuộc lớn vào bước trích đặc trưng biên cạnh dẫn đến là các đoạn thẳng ứng viên thu được thường ngắn hơn nhiều so với chiều dọc cũng như chiều ngang của biển số.
Phương pháp hình thái học: Dựa vào đặc trưng quan trọng của biển xe
máy là biển xe máy có độ sáng (tức mức xám khi chuyển bức ảnh về dạng xám) là tương đối khác so với các vùng khác trong bức ảnh, cũng như sự phân bố mức xám là khá đồng đều trên biển số và vì vậy khi được nhị phân hóa, vùng biển số là một đối tượng có đặc thù hình thái, có thể phân biệt được với các vùng khác.
Các bước thực hiện:
- Xác định ngưỡng xám: Thực chất là không có phương pháp nào chọn cho đúng ngưỡng xám để thực hiện. Thay vào đó, ngưỡng xám sẽ được quét trong khoảng nào đó. Thông qua lược đồ xám ta nhận thấy vùng biển số thường có độ sáng tương đối lớn từ 130-200. Vì vậy ta sẽ xác định được lược đồ xám lớn nhất trong khoảng này và ngưỡng cần chọn sẽ thuộc vùng này, nhờ đó ta sẽ giảm được thời gian lặp tìm ngưỡng xám.
- Nhị phân hóa ảnh xám đầu vào với ngưỡng xám đã xác định.
- Lọc các nhiễu: Việc lọc các nhiễu này gây ảnh hưởng xấu tới đối tượng biển số do xử lý toàn bộ các pixel trong ảnh và vì vậy làm mất hoặc mờ đi các chi tiết ảnh.
- Gắn nhãn cho các đối tượng còn lại trong ảnh nhị phân thu được.
- Trích ra các đối tượng ứng viên theo tiêu chí cụ thể của biển số xe về chiều cao, chiều rộng, tỉ lệ các cạnh, diện tích, trọng tâm…
Ưu điểm: đơn giản và chọn ra chính xác vùng biển số. Nhược điểm: thời gian xử lý lớn.
37
Hình 3.3 Ảnh xám đầu vào và lược đồ xám của bức ảnh xám
3.2.2 Cách ly các kí tự
Mục đích: Tách thành tám ảnh đơn chứa các kí tự từ ảnh vùng biển số đã thu được.
Có nhiều phương pháp để thực hiện nhiệm vụ này như: tách tĩnh, lượng tử hóa vecto, lược đồ chiếu ngang và dọc, mạng noron, trí tuệ nhân tạo, hình thái học…
Chương trình này ta dùng phương pháp hình thái học để thực hiện.
Phương pháp hình thái học: Mỗi một kí tự trên biển số sẽ là một đối
tượng có đặc điểm hình thái cụ thể như chiều rộng, chiều cao, tỉ lệ hai chiều… biến đổi tương đối ít (nếu ảnh biển số được đưa về cùng kích cỡ) mà dựa vào đó ta có thể tách ra được cụ thể từng kí tự một. Từ đó ta có thuật toán tách kí tự từ ảnh xám biển số sau đây:
Bước một: Đưa ảnh biển số về cùng một độ phân giải sau đó thực hiện xóa biên ảnh biển số.
Bước hai: Xác định ngưỡng xám để nhị phân bức ảnh biển số. Khâu này rất quan trọng, nó quyết định tình chính xác của việc nhận dạng kí tự.
Chọn ngưỡng xám theo các bước sau:
- Nâng cao tính tương phản của biển số bằng thuật toán cân bằng hóa lược đồ xám
38
- Xác định ngưỡng xám của bức ảnh mới, đây là ngưỡng xám cần tìm. - Lọc nhiễu để loại bớt các đối tượng và gán nhãn cho các đối tượng
còn lại.
- Tách ra các kí tự thông qua các đặc tính về hình thái học Ưu điểm: không phụ thuộc vào độ nghiêng, nhiễu của ảnh.
Nhược điểm: phụ thuộc vào độ chính xác của ảnh nhị phân có lấy hết được ảnh kí tự từ ảnh xám không.
3.2.3 Nhận dạng ký tự
Phương pháp phổ biến nhất để nhận dạng ký tự là dùng mạng noron, tức là huấn luyện cho máy tính để máy tính nhận dạng các kí tự. Tuy vậy, do số lượng ký tự trên biển số là không nhiều nên để đảm bảo tốc độ xử lý trong chương trình này ta chọn phương pháp hình thái học vì các ký tự đều có những đặc điểm hình thái rất riêng biệt có thể phân biệt với nhau.
Các bước thực hiện:
- Quan sát chọn ra các đặc tính phân biệt ký tự để xây dựng ma trận đặc tính.
- Xây dựng cây nhị phân tối ưu từ ma trận đặc tính và tập ký tự thu được từ bước tách ký tự.
- Kiểm tra xem số đặc tính đã đủ để nhận dạng chưa. Nếu thiếu thì phải bổ sung, thừa thì phải lược bớt đi và quay lại bước đầu tiên.
- Tiến hành nhận dạng trên cơ sở cây nhị phân tìm được.
Trong biển số xe có cả chữ cái và số nên việc phân chia nhận dạng số và chữ là cần thiết. Đối với thuật toán trên ta sử dụng các đặc tính sau để nhận dạng kí tự là số và chữ cái.
Đối với chữ số: Số điểm cắt trục dọc, ½ trục dọc, trục ngang, số lỗ tròn, vị trí lỗ tròn.
Đối với chữ cái: Số lỗ tròn mở trên hay đóng trên, mở dưới hay đóng dưới, trục dọc, trục ngang, số điểm cắt dọc ½, số điểm cắt ngang ½.
39
3.2.4 Nâng cao chất lƣợng ảnh
Để hệ thống nhận dạng được chính xác hơn với những ảnh đầu vào có chất lượng thấp thì cần phải có một phần trong hệ thống để nâng cao chất lượng ảnh, phục vụ cho quá trình nhận dạng được chính xác hơn.
Ảnh đen trắng:
Ảnh đen trắng chỉ bao gồm 2 màu: màu đen và màu trắng. Người ta phân mức đen trắng đó thành L mức. Nếu sử dụng số bit B=8 bít để mã hóa
mức đen trắng (hay mức xám) thì L được xác định : L=2B (trong ví dụ của ta L=28= 256 mức)
Nếu L=2, B=1, nghĩa là chỉ có 2 mức: mức 0 và mức 1, còn gọi là ảnh nhị phân. Mức 1 ứng với màu sáng, còn mức 0 ứng với màu tối. Nếu L lớn hơn 2 ta có ảnh đa cấp xám.
Nói cách khác, với ảnh nhị phân mỗi điểm ảnh được mã hóa trên 1 bit, còn với ảnh 256 mức, mỗi điểm ảnh được mã hóa trên 8 bit. Như vậy, với ảnh đen trắng: nếu dùng 8 bit (1 byte) để biểu diễn mức xám, số các mức xám có thể biểu diễn được là 256. Mỗi mức xám được biểu diễn dưới dạng là một số nguyên nằm trong khoảng từ 0 đến 255, với mức 0 biểu diễn cho mức cường độ đen nhất và 255 biểu diễn cho mức cường độ sáng nhất.
Ảnh nhị phân khá đơn giản, các phần tử ảnh có thể coi như các phần tử logic. Ứng dụng chính của nó được dùng theo tính logic để phân biệt đối tượng ảnh với nền hay để phân biệt điểm biên với điểm khác.
Tách nhiễu và phân ngưỡng:
Tách nhiễu là trường hợp đặc biệt của dãn độ tương phản khi hệ số góc α=γ=0. Tách nhiễu được ứng dụng có hiệu quả để giảm nhiễu khi biết tín hiệu vào trên khoảng [a, b].
Phân ngưỡng là trường hợp đặc biệt của tách nhiễu khi a=b=const. Trong trường hợp này, ảnh đầu vào là ảnh nhị phân (có 2 mức). Phân ngưỡng
40
thường dùng trong kỹ thuật in ảnh 2 màu vì ảnh gần nhị phân không cho ảnh nhị phân khi quét ảnh do có nhiễu từ bộ cảm biến và biến đổi của nền. Trong bài toán nhận dạng biển số xe phân ngưỡng để ảnh đầu vào chỉ còn lại 2 màu (tối và sáng) để tiện cho việc xử lý sau này.
Trong hệ thống thì có mức phân ngưỡng mặc định, nhưng đối với một số ảnh thì mức đó là không phù hợp vì vậy cần phải thay đổi để phù hợp.
Hình 3.4 Tách nhiễu và phân ngưỡng Tăng giảm độ sáng cho ảnh:
Phép tăng giảm độ sáng cho ảnh là phép toán không phụ thuộc không gian, tức là không phụ thuộc vào vị trí điểm ảnh.
Tăng giảm độ sáng vào độ tương phản cho ảnh để làm nổi bật các chữ số lên khi ấy phân ngưỡng sẽ cho ra ảnh có chất lượng tốt hơn.
Giả sử ta có ảnh I là ma trận có kích thước m× n và số nguyên c Khi đó, kỹ thuật tăng, giảm độc sáng được thể hiện:
for (i = 0; i < m; i + +) for (j = 0; j < n; j + +) I [i, j] = I [i, j] + c -Nếu c > 0: ảnh sáng lên -Nếu c < 0: ảnh tối đi
41
Lọc nhiễu:
Cải thiện ảnh là làm cho ảnh có chất lượng tốt hơn theo ý đồ sử dụng. Thường là ảnh thu nhận có nhiễu cần phải loại bỏ nhiễu hay ảnh không sắc nét bị mờ hoặc cần làm rõ các chi tiết như đường biên ảnh.
Các toán tử không gian dùng trong kỹ thuật tăng cường ảnh được phân nhóm theo công dụng: làm trơn nhiễu, nổi biên.
Để làm trơn nhiễu hay tách nhiễu, người ta sử dụng các bộ lọc tuyến tính (lọc trung bình, thông thấp) hay lọc phi tuyến (trung vị, giả trung vị, lọc đồng hình). Từ bản chất của nhiễu (thường tương ứng với tần số cao) và từ cơ sở lý thuyết lọc là: bộ lọc chỉ cho tín hiệu có tần số nào đó thông qua. Do đó, để lọc nhiễu người ta thường dùng lọc thông thấp (theo quan điểm tần số không gian) hay lấy tổ hợp tuyến tính để san bằng (lọc trung bình). Để làm nổi cạnh (ứng với tần số cao), người ta dùng các bộ lọc thông cao, lọc