Ngoài ra, chúng em xin gửi lời cảm ơn sâu sắc đến thầy Nguyễn Bá Trung, giảng viên trực tiếp hướng dẫn chúng em thực hiện khoá luận này, thời gian thật ngắn ngủi nhưng chúng em đã tiếp t
NHẬP ĐỀ
Giới thiệu
Với sự phát triển nhanh chóng của khoa học kỹ thuật, nhu cầu di chuyển và vận chuyển ngày càng gia tăng, dẫn đến việc quản lý và kiểm soát phương tiện giao thông trở nên khó khăn hơn Điều này đặt ra thách thức trong việc tìm ra giải pháp hiệu quả để quản lý phương tiện, và một trong những giải pháp tiềm năng là xây dựng hệ thống tự động hóa trong quản lý giao thông Hệ thống tự động nhận dạng biển số xe là một trong những công nghệ tiên tiến giúp cải thiện hiệu quả quản lý phương tiện giao thông.
Hệ thống nhận dạng biển số không chỉ nhằm tăng cường hiệu quả trong việc gửi và trả xe tại các bãi giữ, mà còn đóng vai trò quan trọng trong việc kiểm soát lưu thông, tìm kiếm xe bị mất cắp một cách hiệu quả hơn, và quản lý các trạm cân tự động.
Yêu cầu phần cứng của hệ thống (thiết bị):
- Camera dùng để thu nhận hình ảnh phương tiện
- Máy tính để hiển thị
Yêu cầu về phần mềm của hệ thống:
Khâu quan trọng nhất trong hệ thống là việc phát triển phần mềm có khả năng đọc hiểu biển số xe, trong khi việc chọn lựa camera thu hình chất lượng tốt hiện nay không còn là vấn đề khó khăn.
Sau khi nhận diện biển số xe, phần mềm sẽ lưu trữ thông tin vào thẻ từ hoặc in mã vạch, phục vụ cho các mục đích thống kê khác nhau Đề tài nhận dạng biển số xe yêu cầu áp dụng các kỹ thuật và phương pháp xử lý ảnh số, với mục tiêu cụ thể là nhận diện biển số xe máy từ ảnh đã chụp sẵn Quá trình này bao gồm việc xác định vùng biển số, tách riêng từng ký tự và nhận diện từng ký tự một cách độc lập Với tính thực tiễn cao, đề tài này hoàn toàn có khả năng phát triển thành một sản phẩm thương mại.
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 2
Mục tiêu nghiên cứu
Đề tài nhận dạng biển số xe là một lĩnh vực rộng lớn và phức tạp, nhưng nghiên cứu này chỉ tập trung vào xe mô tô và gắn máy Biển số xe có cấu trúc gồm hai hàng, mỗi hàng chứa 4 ký tự, trong đó ký tự thứ 3 từ trái qua phải của hàng đầu tiên là một ký tự chữ Các mục tiêu nghiên cứu đã được xác định rõ ràng.
1 Hệ thống trích chọn đƣợc ảnh biển số xe từ ảnh đầu vào Ảnh đầu vào phải đƣợc chụp đúng quy tắc (góc chụp vuông góc với biển số, biển số phải thẳng đứng, không bị chói sáng, bóng nhiễu, độ tương phản cao)
2 Xử lý loại phần biên và phần dư trước khi tiến hành khâu nhận dạng
3 Tách rời ảnh các ký tự trong ảnh biển số xe
4 Nhận dạng ảnh các ký tự thành ký tự số hoặc chữ
5 Xuất kết quả số đăng ký xe ở dạng chuỗi.
Các vấn đề khó khăn
Ảnh đầu vào ảnh hưởng rất lớn đến khả năng nhận dạng của hệ thống Nhưng việc chụp ảnh gặp nhiều khó khăn:
Góc chụp ảnh không vuông góc với biển số
Biển số xe bị lệch không thẳng đứng
Do chụp ngoài trời nên ảnh bị chói sáng
Độ tương phản ảnh không cao
Do biển số xe có kiếng bao phủ bên ngoài nên chụp dễ xuất hiện bóng mờ
Biển số xe bị dính bẩn
Quá trình nhận dạng phải quét ảnh nhiều lần nên dùng nhiều tài nguyên và thời gian xử lý
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 3
CÁC VẤN ĐỀ LÝ THUYẾT
Hệ thống nhận dạng biển số xe
Hình 1 – Hệ thống nhận dạng biển số xe
Hệ thống nhận dạng biển số xe đƣợc xây dựng nhƣ sơ đồ trên, gồm 3 phần:
Đầu vào: Các ảnh chụp sau xe dưới dạng các tập tin jpg, png…
Nhận dạng biển số xe bao gồm ba thành phần chính: trích chọn biển số, tách ký tự và nhận dạng ký tự Đầu tiên, trích chọn biển số xe sử dụng các phương pháp để cắt vùng biển số từ ảnh đầu vào, sau đó loại bỏ biên và trả về dưới dạng ảnh bitmap Tiếp theo, trong quá trình tách ký tự, biển số đã được xử lý sẽ được tách thành các ảnh ký tự riêng biệt thông qua phương pháp chiếu ngang và dọc, tạo ra tập ảnh các ký tự Cuối cùng, các ảnh ký tự này sẽ được nhận dạng thành các ký tự số hoặc chữ.
Đầu ra: Chuỗi ký tự biển số xe
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 4
Bài toán nhận dạng biển số xe
Hệ thống nhận dữ liệu đầu vào là ảnh chụp phần sau xe có biển số, yêu cầu ảnh chụp phải vuông góc với biển số, biển số phải thẳng, không bị chói sáng hoặc bóng mờ Sau khi nhận ảnh, hệ thống xác định vị trí biển số để tách riêng Cuối cùng, hệ thống nhận dạng biển số và trả về thông tin dưới dạng chuỗi ký tự Bài toán này được chia thành các vấn đề nhỏ hơn để xử lý hiệu quả.
Trích chọn biển số xe: Hệ thống không thể nhận dạng ngay trên ảnh đầu vào nên cần phải trích chọn chính xác vùng chứa biển số xe
Xóa bỏ phần biên và các phần thừa trên ảnh biển số xe là quá trình giữ lại chỉ các ký tự số và chữ trên nền trắng, giúp làm rõ thông tin cần thiết.
Các ký tự trong biển số xe, sau khi đã được xử lý để loại bỏ nhiễu, sẽ được tách ra thành từng ảnh riêng biệt nhằm phục vụ cho quá trình nhận dạng hiệu quả hơn.
Nhận dạng ký tự: Là quá trình nhận dạng ảnh các ký tự thành các ký tự số và chữ.
Ứng dụng nhận dạng biển số xe
Nhận dạng biển số xe đóng vai trò quan trọng trong hệ thống quản lý bãi xe tự động, giúp ghi nhận và đọc biển số, mã hóa và in phiếu giữ xe dạng mã vạch khi xe vào bãi Hệ thống này giảm thiểu công việc thủ công, tiết kiệm thời gian và nhân lực, đồng thời giảm thiểu tình trạng chờ đợi cho người gửi xe Chỉ cần hai người điều khiển máy, một người ghi nhận biển số và in phiếu, một người kiểm tra và thu tiền khi xe ra Tại thành phố Hồ Chí Minh, nhiều tổ chức đã áp dụng hệ thống này do mang lại lợi nhuận cao và sự tiện lợi cho người gửi xe Bên cạnh đó, công nghệ nhận dạng biển số còn được sử dụng trong các hệ thống giám sát tự động để ghi nhận xe vi phạm giao thông trên các tuyến đường và giao lộ.
Các thuật toán hỗ trợ việc xử lý ảnh biển số xe
2.4.1 Thay đổi kích thước ảnh
Giải thuật dùng để thay đổi một ảnh từ kích thước ban đầu sang một kích thước tùy ý
[7], không cần phải canh chỉnh tỷ lệ sử dụng lớp Graphics để vẽ lại ảnh, áp dụng
Trường Đại Học Hoa Sen - Khóa luận tốt nghiệp 5 đề cập đến việc xử lý ảnh, trong đó kích thước ảnh quá lớn có thể làm chậm tốc độ xử lý Do đó, cần điều chỉnh kích thước ảnh cho phù hợp Các ảnh cắt ra có kích thước khác nhau cần được đưa về kích thước chuẩn thông qua hàm public static Bitmap ResizeBitmap(Bitmap b, int nWidth, int nHeight).
Bitmap result = new Bitmap(nWidth, nHeight); try
{ using (Graphics g = Graphics.FromImage((System.Drawing.Image)result)) g.DrawImage(b, 0, 0, nWidth, nHeight); return result;
Giải thuật cắt ảnh từ ảnh lớn được áp dụng để tách biển số xe từ hình ảnh chụp bằng camera, cho phép cắt từng ký tự từ biển số Phương pháp này sử dụng lớp Graphics để vẽ lại khu vực ảnh đã chọn lên một ảnh mới Hàm cắt ảnh được định nghĩa như sau: public static Bitmap CutBitmap(Bitmap source, Rectangle rec).
Bitmap bmp = new Bitmap(rec.Width, rec.Height);
Graphics g = Graphics.FromImage(bmp); g.DrawImage(source, 0, 0, rec, GraphicsUnit.Pixel); g.Dispose(); return bmp;
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 6
2.4.3 Chuyển ảnh sang dạng ảnh xám Ảnh đầu vào của chương trình là ảnh màu nên không thể xử lý trực tiếp trên ảnh này mà cần phải chuyển qua ảnh xám [9] public static Bitmap MakeGrayscale(Bitmap original)
//create a blank bitmap the same size as original
Bitmap newBitmap = new Bitmap(original.Width, original.Height);
//get a graphics object from the new image
ColorMatrix colorMatrix = new ColorMatrix( new float[][]
{ new float[] {.3f, 3f, 3f, 0, 0}, new float[] {.59f, 59f, 59f, 0, 0}, new float[] {.11f, 11f, 11f, 0, 0}, new float[] {0, 0, 0, 1, 0}, new float[] {0, 0, 0, 0, 1}
//set the color matrix attribute attributes.SetColorMatrix(colorMatrix);
//draw the original image on the new image
//using the grayscale color matrix g.DrawImage(original, new Rectangle(0, 0, original.Width, original.Height),
0, 0, original.Width, original.Height, GraphicsUnit.Pixel, attributes);
//dispose the Graphics object g.Dispose(); return newBitmap;
2.4.4 Chuyển ảnh sang dạng ảnh nhị phân
Chương trình chuyển đổi ảnh từ dạng xám sang nhị phân, hỗ trợ trong việc dò tìm biển số, tách ký tự và nhận dạng ký tự Sau khi chuyển đổi, ảnh màu sẽ được xác định một ngưỡng xám; các pixel có giá trị nhỏ hơn ngưỡng sẽ được chuyển thành màu đen, trong khi các pixel có giá trị lớn hơn sẽ được gán màu trắng Chương trình sử dụng hai giải thuật: một do nhóm tự phát triển và một tham khảo từ nguồn khác.
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 7
Giải thuật tự viết: public static Bitmap ToBinary(Bitmap bm, Byte band, ref byte[,]
Bitmap bitmap = new Bitmap(bm); int x, y;
{ for (x = 0; x < bm.Width; x++) { c = bm.GetPixel(x, y); if (c.R < band) { bitmap.SetPixel(x, y, Color.FromArgb(0, 0, 0));
} else { bitmap.SetPixel(x, y, Color.FromArgb(255, 255, 255)); BinaryArray[y, x] = 0;
Giải thuật tham khảo: [9] public static Bitmap ToBinary(Bitmap bm)
Bitmap bitmap = new Bitmap(bm); using (Graphics gr = Graphics.FromImage(bitmap)) // SourceImage is a Bitmap object
{ var gray_matrix = new float[][] { new float[] { 0.299f, 0.299f, 0.299f, 0, 0 }, new float[] { 0.587f, 0.587f, 0.587f, 0, 0 }, new float[] { 0.114f, 0.114f, 0.114f, 0, 0 }, new float[] { 0, 0, 0, 1, 0 }, new float[] { 0, 0, 0, 0, 1 }
}; var ia = new System.Drawing.Imaging.ImageAttributes(); ia.SetColorMatrix(new
The code snippet utilizes a ColorMatrix to apply a grayscale effect to an image, adjusting the threshold to 0.75f as necessary It defines a rectangle that encompasses the entire bitmap and then draws the modified image onto the graphics object, ensuring the entire bitmap is rendered accurately.
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 8
Bộ lọc Sobel được sử dụng để làm nổi bật các cạnh biên, đặc biệt trong việc làm nổi bật đường viền của biển số xe, giúp việc nhận diện trở nên dễ dàng hơn Giải thuật này được áp dụng thông qua thư viện xử lý ảnh Aforge.
Mỗi điểm ảnh của ảnh kết quả đƣợc tính bằng độ dốc xấp xỉ tuyệt đối cho điểm ảnh tương ứng của ảnh gốc:
Trong đó Gx và Gy đƣợc tính dựa vào:
-1 0 +1 -1 -2 -1 Điểm ảnh x đƣợc tính nhƣ sau:
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 9
XÂY DỰNG HỆ THỐNG
Trích chọn biển số xe
Mục tiêu của dự án là nhận diện vùng chứa biển số xe từ ảnh đầu vào, nhằm tách biệt vùng biển số để thuận tiện cho việc nhận dạng Kết quả sau khi tách sẽ là ảnh xám của vùng biển số xe.
Hình 3 – Ảnh chụp phần xe lấy từ camera
Hình 4 – Phần ảnh biển số được tách ra
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 10
3.1.1 Phương pháp dò cạnh biển số xe
Phương pháp xác định vùng biển số xe sử dụng hình thái học và lược đồ ngang dọc để xác định vị trí các cạnh biển số Các cạnh của biển số thường có màu sắc khác biệt so với biển số xe và phần ảnh bao bên ngoài Để làm nổi bật các điểm ảnh khác biệt, ảnh đầu vào sẽ được chuyển sang màu xám, sau đó được lọc bằng bộ lọc Sobel và nhị phân Kết quả là ảnh nhị phân với hai màu đen trắng, trong đó các điểm trắng đại diện cho các điểm khác biệt, bao gồm cả các điểm cạnh của biển số.
Hình 5 – Ảnh đầu vào được chuyển sang ảnh xám
Hình 6 – Ảnh sobel từ ảnh xám
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 11
Hình 7 – Ảnh nhị phân từ ảnh sobel
Quét ảnh theo dòng hình chữ nhật có chiều rộng bằng chiều rộng ảnh và chiều cao thay đổi theo độ dày cạnh cần quét Trong quá trình quét, đếm số điểm trắng trong vùng quét và lưu kết quả vào mảng một chiều Hình chữ nhật sẽ được dịch chuyển xuống một điểm ảnh cho đến khi quét hết ảnh, từ đó tạo ra lược đồ biến thiên số điểm trắng theo chiều dọc.
Hình 8 – Lược đồ biến thiên điểm trắng theo chiều dọc
Quét ảnh từ trái qua phải bằng một hình chữ nhật có chiều cao bằng chiều cao ảnh, trong khi chiều rộng thay đổi theo độ dày cạnh cần quét Trong quá trình này, đếm số điểm trắng trong vùng quét và lưu trữ kết quả vào một mảng một chiều Mỗi lần di chuyển hình chữ nhật sang phải một điểm ảnh cho đến khi hết chiều rộng ảnh, ta sẽ thu được lược đồ biến thiên số điểm trắng theo chiều ngang.
Hình 9 – Lược đồ biến thiên điểm trắng theo chiều ngang
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 12
Dựa vào hai lƣợc đồ trên, ta xác sẽ xác định đƣợc vùng cạnh và vùng biển số
Hình 10 – Vùng cạnh trên và cạnh dưới biển số
Hình 11 – Vùng cạnh trái và cạnh phải biển số Ưu điểm: Dễ cài đặt, nhận dạng tương đối chính xác vùng chứa biển số
Nhược điểm của phương pháp nhận dạng biển số là yêu cầu biển số trong ảnh đầu vào phải thẳng, có thể lệch một góc từ 0 đến 5 độ so với phương ngang Hơn nữa, vùng biển số tách ra vẫn còn chứa phần viền bên ngoài.
Trước khi tiến hành dò ảnh, cần thay đổi kích thước ảnh đầu vào về kích thước chuẩn 420 pixel chiều rộng và 560 pixel chiều cao, nhằm tránh làm chậm quá trình xử lý và đảm bảo độ chính xác trong nhận dạng Ảnh sau đó sẽ được chuyển đổi sang ảnh xám và sử dụng bộ lọc Sobel để làm nổi bật các cạnh và biên Cuối cùng, ảnh Sobel sẽ được chuyển đổi thành ảnh nhị phân và lưu kết quả vào mảng.
Quét ảnh từ trên xuống để đƣợc lƣợc đồ biến thiên điểm trắng theo chiều dọc
//Mảng quetDoc chứa các giá trị quét theo chiều dọc
Vòng lặp h từ 0 đến hết chiều cao ảnh trừ chiều cao cạnh quét:
Vòng lặp yh từ h đến nhỏ hơn h cộng chiều cao cạnh quét:
Vòng lặp xh từ 0 đến hết chiều rộng ảnh:
Nếu mangNhiPhan[yh,xh] bằng màu trắng:
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 13 quetDoc[h]++;
Kết thúc nếu Kết thúc vòng lặp xh Kết thúc vòng lặp yh
Để xác định tọa độ của biển số xe, trước tiên cần lấy tọa độ cạnh dưới, vì phần trên thường bị nhiễu do các cạnh của phần sau xe Tọa độ cạnh dưới được xác định tại vị trí có độ dốc tăng nhất từ phải qua trái trong mảng quetDoc Sau đó, tọa độ cạnh trên sẽ được xác định cách cạnh dưới từ 70 đến 110 pixel theo hướng từ dưới lên, tỷ lệ này phù hợp với kích thước ảnh chuẩn 420x560 Tọa độ cạnh trên nằm ở vị trí có độ dốc giảm nhất từ phải qua trái trong mảng quetDoc.
//Lấy tọa độ cạnh dưới
Vòng lặp i giảm từ cuối mảng quetDoc đến nửa mảng quetDoc:
Thêm phần tử int[2]{i,0} vào danh sách sapxepDoc1;
Vòng lặp iA giảm từ i đến i trừ chiều cao cạnh quét: tamA = quetDoc[iA] – quetDoc[i]; sapxepDoc1[phần tử cuối][1] += tamA;
Kết thúc vòng lặp iA
Sắp xếp danh sách sapxepDoc1 giảm dần theo cột thứ 2 của phần tử;
Vị trí cạnh dưới bằng sapxepDoc1[0][0];
//Lấy tọa độ cạnh trên
Vòng lặp i giảm từ vị trí cạnh dưới trừ 70 đến trừ 110:
Thêm phần tử int[2]{i,0} vào danh sách sapxepDoc2;
Vòng lặp iA giảm từ i đến i trừ chiều cao cạnh quét: tamA = quetDoc[i] – quetDoc[iA]; sapxepDoc2[phần tử cuối][1] += tamA;
Kết thúc vòng lặp iA
Sắp xếp danh sách sapxepDoc2 giảm dần theo cột thứ 2 của phần tử;
Vị trí cạnh trên bằng sapxepDoc2[0][0];
Quét ảnh từ trái qua phải để đƣợc lƣợc đồ biến thiên điểm trắng theo chiều ngang
Ta chỉ quét ảnh trong khoảng giữa cạnh trên và dưới để loại bỏ bớt các phần nhiễu
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 14
//Mảng quetNgang chứa các giá trị quét theo chiều ngang
Vòng lặp v từ 0 đến hết chiều rộng ảnh trừ chiều rộng cạnh quét:
Vòng lặp xv từ v đến nhỏ hơn v cộng chiều rộng cạnh quét:
Vòng lặp yv từ vị trí cạnh trên đến vị trí cạnh dưới biển số:
Nếu mangNhiPhan[yv,xv] bằng màu trắng: quetNgang[v]++;
Kết thúc nếu Kết thúc vòng lặp yv Kết thúc vòng lặp xv
Để xác định tọa độ của biển số, cần lấy tọa độ cạnh trái và cạnh phải Tọa độ cạnh trái được xác định ở vị trí có độ dốc tăng cao nhất từ trái sang phải trong nửa đầu của mảng quetNgang, trong khi tọa độ cạnh phải nằm ở vị trí có độ dốc tăng cao nhất từ phải sang trái trong nửa sau của mảng quetNgang.
//Lấy tọa độ cạnh trái
Vòng lặp i từ 0 đến nửa mảng quetNgang:
Thêm phần tử int[2]{i,0} vào danh sách sapxepNgang1;
Vòng lặp iB từ i đến i cộng chiều rộng cạnh quét: tamB = quetNgang[iB] – quetNgang[i]; sapxepNgang1[phần tử cuối][1] += tamB;
Kết thúc vòng lặp iB
Sắp xếp danh sách sapxepNgang1 giảm dần theo cột thứ 2 của phần tử;
Vị trí cạnh trái bằng sapxepNgang1[0][0] cộng 5; //Cộng 5 để trừ hao độ lệch
//Lấy tọa độ cạnh phải
Vòng lặp i giảm từ cuối mảng quetNgang đến nửa mảng quetNgang:
Thêm phần tử int[2]{i,0} vào danh sách sapxepNgang2;
Vòng lặp iB giảm từ i đến i trừ chiều rộng cạnh quét: tamB = quetNgang[iB] – quetNgang[i]; sapxepNgang2[phần tử cuối][1] += tamB;
Kết thúc vòng lặp iB
Sắp xếp danh sách sapxepNgang2 giảm dần theo cột thứ 2 của phần tử;
Vị trí cạnh phải bằng sapxepNgang2[0][0] cộng 5; //Cộng 5 để trừ hao độ lệch
Cắt vùng biển số dựa vào tọa độ các cạnh
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 15
Trong một thí nghiệm kiểm tra tách thử trên 100 biển số mẫu, tất cả đều đạt yêu cầu với việc cắt đúng vùng chứa biển số mà không mất ký tự Tuy nhiên, phần biển tách được vẫn còn biên và phần dư thừa, do đó khả năng nhận dạng phụ thuộc nhiều vào quá trình xóa biên và phần dư này.
3.1.2 Phương pháp dò vùng biển số xe
Phương pháp sử dụng hình thái học và quét cạnh ngang dọc để trích lọc các ứng viên biển số Ý tưởng dựa trên đặc điểm màu sáng của vùng biển số so với các vùng khác, cho phép chuyển đổi ảnh sang dạng nhị phân (trắng, đen) để quét các đường màu trắng bao quanh biển số Các đường ngang và dọc trên bức ảnh được ghép lại thành những hình chữ nhật khả thi là biển số, từ đó dựa vào các đặc trưng của vùng biển số để nhận diện chính xác.
63 < Chiều cao < 350 (*) (*) Lưu ý: độ dài này có thể thay đổi tuỳ theo tỷ lệ của ảnh
Hình 12 – Ảnh chuyển sang trắng đen và những đường thẳng quét được
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 16 có nhiều ưu điểm nổi bật, bao gồm khả năng cài đặt dễ dàng, thuật toán đơn giản và độ chính xác cao khi chụp ảnh trong điều kiện cố định về vị trí, khoảng cách và ánh sáng.
Nhƣợc điểm: Nhận dạng ảnh không tốt nếu ảnh nhị phân chọn ngƣỡng sáng không kỹ, biển số xe chụp xéo, hoặc trong điều kiện ánh sáng chói
Quét qua ma trận các điểm ảnh để xác định xem tại vị trí đó là pixel đen hay trắng
Dùng 2 mảng một chiều để lưu độ dài của hàng, cột tại vị trí điểm đang xét
Nếu chiều dài hàng và cột tại vị trí đang xem xét lớn hơn một giá trị nhất định, đủ để xác định cạnh của biển số xe, hãy lưu lại vị trí của hàng và cột đó.
Sau khi xác định các đường ngang và dọc, chúng ta sẽ xem xét từng cặp đường để tạo thành hình chữ nhật, từ đó chọn ra biển số phù hợp nhất.
Thuật toán tạo tập các đường thẳng
Vòng lặp y đi từ 0 đến hết chiều cao của ảnh Vòng lặp x đi từ 0 hoặc 1 đến hết chiều rộng của ảnh Nếu pixel[y,x] là pixel màu đen:
Kết thúc nếu Nếu Cot[x] > Chiều dài cần quét:
Lưu lại vị trí cạnh dọc;
Kết thúc nếu Nếu Hang[x] > Chiều dài cần quét:
Lưu lại vị trí cạnh ngang;
Kết thúc nếu Nếu pixel[y,x] là pixel màu trắng:
Kết thúc nếu Kết thúc vòng lặp x Kết thúc vòng lặp y
Chọn ra hình chữ nhật có khả năng là biển số xe
//Doc[] là tập những cạnh thẳng đứng quét đƣợc //Ngang[] là tập những cạnh nằm ngang quét đƣợc Vòng lặp x1 đến hết chiều dài mảng Doc[]:
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 17
Vòng lặp x2 đến hết chiều dài mảng Doc[]:
Nếu Doc[x1] & Doc[x2]: có khả năng là 2 biên của biển số;
Vòng lặp y1 đến hết chiều dài mảng Ngang[]:
Vòng lặp y2 đến hết chiều dài mảng Ngang[]:
Nếu Ngang[y1] và Ngang[y2]: có khả năng là 2 biên của biển số;
Ngang[y2]: có thể tạo thành hình chữ nhật là ứng viên của biển số;
Kết thúc nếu Kết thúc nếu Kết thúc vòng lặp y2 Kết thúc vòng lặp y1 Kết thúc nếu
Kết thúc vòng lặp x2 Kết thúc vòng lặp x1
Trong một thí nghiệm kiểm tra tách thử trên 100 biển số mẫu, kết quả cho thấy 96 biển số đạt yêu cầu, tương đương tỷ lệ thành công 96% Các biển số được tách có độ chính xác cao, chỉ còn lại một ít phần biên Nguyên nhân chính gây ra sự tách sai là do ảnh quá sáng, dẫn đến việc chuyển nhị phân gặp khó khăn với nhiều mảng trắng, ảnh hưởng đến quá trình dò tìm vùng biển số.
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 18
Xóa biên và phần dƣ
3.2.1 Xóa biên và phần dư đối với phương pháp dò cạnh biển số
Mục tiêu của bài viết là sử dụng phương pháp dò cạnh để trích xuất ảnh vùng biển, tuy nhiên, do ảnh vẫn chứa biên và phần dư thừa, cần thực hiện quy trình loại bỏ các yếu tố này để tách biệt các ký tự một cách hiệu quả.
Hình 13 – Ảnh vùng biển số trích chọn bằng phương pháp dò cạnh
Hình 14 – Ảnh biển số sau khi xóa biên và phần dư
Phương pháp quét ảnh nhằm phát hiện các điểm ảnh có đặc tính biên, dựa trên cấu trúc của biển số xe Biển số bao gồm hai hàng, mỗi hàng có bốn ký tự và được ngăn cách bằng khoảng trống Qua đó, chúng ta có thể xác định các điểm biên với những đặc điểm cụ thể như hình minh họa.
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 19
Hình 15 – Đặc điểm của các điểm biên Ƣu điểm: Xóa biên và phần nhiễu với độ chính xác cao
Nhược điểm của phương pháp này là chỉ hiệu quả đối với các ảnh biển số có độ nghiêng dưới 5 độ và những biển số có khoảng cách giữa các số và biên không quá hẹp.
Chuyển ảnh trích chọn vùng biển số về kích thước rộng 210 pixel cao 160 pixel và chuyển sang ảnh nhị phân
Đối với ảnh có kích thước 210 pixel chiều rộng và 160 pixel chiều cao, độ dài khoảng trắng cần thiết là 50 pixel Tọa độ biên trên được xác định từ điểm biên trên, trong khi khoảng trắng ở các phía trái, phải và dưới cũng cần được lưu ý.
Vòng lặp i từ 0 đến hết 1/3 chiều cao ảnh:
Vòng lặp j từ đầu đến hết chiều rộng ảnh không tính 50 pixel đầu và cuối:
Nếu pixel[i,j] là điểm trắng:
Nếu không gặp điểm đen:
Nếu không gặp điểm đen:
Nếu không gặp điểm đen:
Tọa độ biên trên = i + 3;// + 3 để trừ hao độ lệch Dừng toàn bộ vòng lặp;
Kết thúc nếu Kết thúc vòng lặp n Kết thúc nếu
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 20
Kết thúc nếu Kết thúc vòng lặp k Kết thúc nếu
Lấy tọa độ biên dưới dựa vào điểm biên dưới (trái, phải và trên là khoảng trắng)
Vòng lặp i giảm từ cuối đến 2/3 chiều cao ảnh:
Vòng lặp j từ đầu đến hết chiều rộng ảnh không tính 50 pixel đầu và cuối:
Nếu pixel[i,j] là điểm trắng:
Nếu không gặp điểm đen:
Vòng lặp m giảm từ i – 1 đến i – 50:
Nếu không gặp điểm đen:
Nếu không gặp điểm đen:
Tọa độ biên dưới = i – 3 ;//– 3 để trừ hao độ lệch Dừng toàn bộ vòng lặp;
Kết thúc nếu Kết thúc vòng lặp n Kết thúc nếu
Kết thúc vòng lặp m Kết thúc nếu
Kết thúc vòng lặp k Kết thúc nếu
Lấy tọa độ biên trái dựa vào điểm biên trái (trên, dưới và phải là khoảng trắng)
Vòng lặp j từ 0 đến hết 1/3 chiều rộng ảnh:
Vòng lặp i từ đầu đến hết chiều cao ảnh không tính 50 pixel đầu và cuối:
Nếu pixel[i,j] là điểm trắng:
Vòng lặp k giảm từ i – 1 đến i – 50:
Nếu không gặp điểm đen:
Nếu không gặp điểm đen:
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 21
Nếu không gặp điểm đen:
Tọa độ biên trái = j + 10;//+10 để trừ hao độ lệch Dừng toàn bộ vòng lặp;
Kết thúc nếu Kết thúc vòng lặp n Kết thúc nếu
Kết thúc vòng lặp m Kết thúc nếu
Kết thúc vòng lặp k Kết thúc nếu
Lấy tọa độ biên phải dựa vào điểm biên phải (trên, dưới và trái là khoảng trắng).
Vòng lặp j giảm từ cuối ảnh đến đến 2/3 chiều rộng ảnh:
Vòng lặp i từ đầu đến hết chiều cao ảnh không tính 50 pixel đầu và cuối:
Nếu pixel[i,j] là điểm trắng:
Vòng lặp k giảm từ i – 1 đến i – 50:
Nếu không gặp điểm đen:
Nếu không gặp điểm đen:
Nếu không gặp điểm đen:
Tọa độ biên phải = j – 10;// –10 để trừ hao độ lệch Dừng toàn bộ vòng lặp;
Kết thúc nếu Kết thúc vòng lặp n Kết thúc nếu
Kết thúc vòng lặp m Kết thúc nếu
Kết thúc vòng lặp k Kết thúc nếu
Cắt biển số dựa vào tọa độ bốn biên
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 22
Trong một thí nghiệm, 100 biển số được chọn và tiến hành xóa biên cùng phần nhiễu bằng phương pháp dò cạnh Kết quả cho thấy có 95 biển đạt yêu cầu, tương ứng với tỷ lệ thành công 95% Nguyên nhân chính ảnh hưởng đến kết quả là do một số biển số quá nghiêng so với phương ngang.
3.2.2 Xóa biên đối với phương pháp dò vùng biển số
Mục đích của việc xóa phần viền dư của biển số sau khi tách ra khỏi ảnh là để loại bỏ khung biển số và những phần nhiễu do biển số bị dơ, bẩn, nhằm mang lại hình ảnh rõ ràng và sắc nét hơn.
Hình 16 – Ảnh biển số còn đường viền bao quanh
Hình 17 cho thấy ảnh biển số sau khi đã tách viền, với kích thước khá chính xác Tuy nhiên, vẫn còn một phần viền biển số chưa được tách hoàn toàn, như thể hiện trong ảnh Để nhận diện phần viền này, có thể quét các đoạn thẳng trắng giữa phần số và viền biển số.
Hình 18 – Vùng sẽ quét để tách viền trên và viền dưới
Viền trên sẽ đƣợc quét tìm ra trong 1/7 (từ trên xuống) bức ảnh
Viền dưới sẽ được quét tìm ra trong 1/7 (từ dưới lên) bức ảnh
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 23
Hình 19 – Vùng sẽ quét để tách viền trái và viền phải
Viền trái đƣợc quét trong khoảng 1/9 ảnh (từ trái qua)
Viền phải ảnh đƣợc quét trong khoảng 1/9 ảnh (từ phải qua)
Dữ liệu được tính toán dựa trên kích thước thực tế của biển số Ưu điểm của phương pháp này là tính đơn giản và độ chính xác cao, đặc biệt khi hình ảnh biển số được chụp ở góc độ thẳng đứng Việc tách đường viền hoàn toàn cũng hỗ trợ đáng kể cho quá trình nhận diện ký tự.
Nhược điểm: không chính xác trong trường hợp biển số bị che mờ làm cho độ sáng biển số không đồng đều giữa các vùng Ví dụ:
Hình 20 – Biển số ánh sáng không đều gây khó khăn trong việc tách viền
//d1[] là mảng dùng để đếm số lƣợng pixel theo hàng ngang
//d2[] là mảng dùng để đếm số lƣợng pixel theo hàng dọc
Vòng lặp y từ 0 đến chiều cao biển số:
Vòng lặp x từ 1 đến hết chiều rộng biển số:
Nếu pixel[y,x] là pixel đen: d1[x] = d1[x - 1] + 1; d2[x] = d2[x] + 1;
Nếu d1[x] lớn hơn 1 khoảng (từ 1/3 đến 1/2 chiều rộng biển số):
Nếu y nằm khoảng trên 1/7 biển số:
Vị trí cần để cắt viền ngang trên = y;
Kết thúc nếu Nếu y nằm khoảng dưới 1/7 biển số:
Vị trí cần để cắt viền ngang dưới = y;
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 24
Kết thúc nếu Kết thúc nếu Nếu d2[x] lớn hơn một khoảng (từ 6/9 đến 8/9 chiều cao biển số):
Nếu x nằm trong khoảng 1/7 bên trái biển số:
Vị trí cần để cắt viền dọc trái = x;
Kết thúc nếu Nếu x nằm trong khoảng 1/7 bên trái biển số:
Vị trí cần để cắt viền dọc phải = x;
Kết thúc nếu Kết thúc nếu Ngƣợc lại: d1[x] = 0; d2[x] = 0;
Kết thúc nếu Kết thúc vòng lặp x
Thực nghiệm: Tiến hành xóa biên 96 biển số trích chọn được bằng phương pháp dò vùng biển số Kết quả là 96 biển đạt yêu cầu.
So sánh hai phương pháp trích chọn biển số
Biển số Phương pháp dò cạnh Phương pháp dò vùng
Tách biển số Xóa biên Tách biển số Xóa biên
Bảng 1 – Bảng so sánh hai phương pháp trích chọn biển số
Cả hai phương pháp đều có tỷ lệ thành công tương đối cao, tuy nhiên, tỷ lệ thành công của phương pháp dò cạnh phụ thuộc nhiều vào quá trình xóa biên và phần dư Phương pháp dò vùng biển số cho kết quả chính xác với ít viền còn lại Ưu điểm của cả hai phương pháp là thời gian xử lý không quá lớn.
Phương pháp dò cạnh: Đạt tỷ lệ không cao khi biển số có cạnh hoa văn, biển số bị nghiêng nhiều so với phương ngang
Phương pháp dò vùng: Ảnh quá sáng ảnh hưởng lớn đến quá trình xử lý
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 25
Tách các ký tự
Mục đích: Tách biển số xe thành 8 ký tự riêng biệt gồm 7 ký tự số (0 9), 1 ký tự chữ (A Z)
Để nhận diện biển số xe, trước tiên cần giả định rằng ảnh đã được lọc nhiễu hoàn toàn Sau đó, ta tiến hành quét từng pixel trong ảnh để xác định vị trí của từng chữ số hoặc chữ cái, cụ thể là vị trí bên trái và bên dưới phải Cuối cùng, từ những vị trí này, ta sẽ cắt các ký tự ra khỏi ảnh gốc.
Sơ đồ xử lý nhƣ sau:
Quét đường ngang để tách ảnh ra 2 phần trên và dưới
Quét đường dọc để tách ra từng ký tự
Hình 21 – Sơ đồ xử lý tách ký tự
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 26
Quét ngang để tách ảnh ra 2 phần trên và dưới
Hình 22 – Quét hàng ngang để tách biển số ra trên và dưới
Quét ảnh dọc để tách ra từng ký tự của biển số ( từ 2 phần trên dưới đã tách )
Tương tự như cách quét theo hàng, sau khi quét theo cột, ta tách được từng ký tự của 2 phần trên và dưới của biển số
Hình 23 – Quét theo hàng dọc tách từng ký tự vùng trên của biển số
Hình 24 – Quét theo hàng dọc tách từng ký tự vùng dưới của biển số
D1: dòng bắt đầu thấy pixel màu đen phần trên biến số
D2: dòng không còn thấy pixel màu đen (kết thúc phần trên)
D3: dòng bắt đầu thấy pixel màu đen phần dưới biển số
D4: dòng không còn thấy pixel màu đen (kết thúc phần dưới)
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 27 Ƣu điểm:
Đơn giản, dễ xử lý
Thời gian xử lý ngắn
Với ảnh xử lý tốt đầu vào, phương pháp này nhận diện gần như chính xác hoàn toàn
Với ảnh có vùng khung bao quanh biển số, phải xử lý đầu vào để loại bỏ khung
Ảnh biển số phải có góc chụp khá thẳng đứng, vì nếu nghiêng thì việc xử lý tách theo dòng và cột thất bại hoàn toàn
//Tách phần trên biển số
Vòng lặp y từ 0 đến hết chiều cao biển số:
Vòng lặp x từ 0 đến hết chiều rộng biển số:
Nếu pixel[y,x] là pixel đen: y1 = y;
Dừng toàn bộ vòng lặp;
Kết thúc nếu Kết thúc vòng lặp x
Vòng lặp y từ y1 đến hết chiều cao biển số:
Vòng lặp x từ 0 đến hết chiều rộng biển số:
Nếu không thấy có pixel đen ở dòng y: y2 = y;
Dừng toàn bộ vòng lặp;
Kết thúc nếu Kết thúc vòng lặp x
Lặp lại các bước trên nếu y1, y2 chưa thỏa điều kiện loại nhiễu;
Cắt phần trên biển số từ dòng y1 đến dòng y2;
//Tách phần dưới biển số
Vòng lặp y từ y2 đến hết chiều cao biển số:
Vòng lặp x từ 0 đến hết chiều rộng biển số:
Nếu pixel[y,x] là pixel đen: y3 = y;
Dừng toàn bộ vòng lặp;
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 28
Kết thúc nếu Kết thúc vòng lặp x
Vòng lặp y từ y3 đến hết chiều cao biển số:
Vòng lặp x từ 0 đến hết chiều rộng biển số:
Nếu không thấy pixel đen ở dòng y: y4 = y;
Dừng toàn bộ vòng lặp;
Kết thúc nếu Kết thúc vòng lặp x
Lặp lại các bước trên nếu y3, y4 chưa thỏa điều kiện loại nhiễu;
Cắt phần dưới số từ dòng y3 đến dòng y4;
Tương tự, ta quét theo chiều dọc để tách ra từng ký tự theo 2 vùng trên dưới đã tách được
Thực nghiệm: Tách ký tự các biển số trích chọn được bằng hai phương pháp được kết quả như bên dưới:
Phương pháp dò cạnh Phương pháp dò vùng Biển số Ký tự Tỷ lệ Biển số Ký tự Tỷ lệ
Bảng 2 – Bảng kết quả tách ký tự
Kết quả tách ký tự đạt tỷ lệ thành công cao, tuy nhiên một số trường hợp không thành công là do biển số bị nghiêng hoặc bị nhiễu do vết bẩn trên bề mặt.
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 29
Nhận dạng các ký tự
Mục đích: Nhận dạng ảnh các ký tự thành các ký tự số và chữ tương ứng
Phương pháp nhận dạng ký tự phổ biến nhất hiện nay là sử dụng mạng nơ-ron, cho phép máy tính học cách nhận diện các ký tự Tuy nhiên, do biển số xe sử dụng font chữ và cỡ chữ theo quy định, cùng với số lượng ký tự hạn chế, nghiên cứu đã áp dụng phương pháp so sánh mẫu để đạt hiệu quả cao hơn trong việc nhận diện.
3.5.1 Phương pháp so sánh mẫu
Phương pháp nhận dạng ký tự yêu cầu một tập ảnh mẫu chứa các chữ số và chữ cái, với mỗi ảnh đại diện cho một ký tự riêng biệt có kích thước đồng nhất Để nhận diện ký tự, cần điều chỉnh kích thước của ký tự cần nhận dạng về kích thước của ký tự mẫu Quá trình này so sánh sự tương đồng giữa ký tự cần nhận dạng và toàn bộ ký tự trong tập mẫu, ghi nhận giá trị tương đồng Cuối cùng, ký tự có giá trị tương đồng cao nhất với ký tự mẫu sẽ được chọn làm kết quả nhận dạng.
Hình 25 – So sánh ảnh ký tự với ký tự mẫu
Ghi chú: Màu xanh là hai điểm giống nhau, màu đỏ là hai điểm khác nhau
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 30
Chuẩn bị tập mẫu bằng cách đọc và lưu các ảnh ký tự vào danh sách mảng hai chiều giúp việc so sánh trở nên dễ dàng hơn, tiết kiệm thời gian xử lý.
Để thực hiện so sánh ảnh, trước tiên cần chuyển đổi ảnh thành mảng hai chiều Sau đó, tiến hành so sánh mảng hai chiều này với các mảng hai chiều của ký tự mẫu, đồng thời lưu trữ các giá trị tương đồng thu được.
Chọn chữ số hoặc chữ cái tương ứng ký tự mẫu có giá trị tương đồng cao nhất làm kết quả của ký tự cần nhận dạng Ƣu điểm:
Đơn giản, dễ xử lý
Độ chính xác cao, có thể nhận dạng đƣợc các ký tự bị mất nét ít
Dễ dàng thêm mẫu mới, giúp hệ thống nâng cao khả năng nhận dạng chính xác
Tốn nhiều thời gian cho khâu so sánh
Phải chuẩn bị tập ảnh mẫu các ký tự tốt
Nếu số lượng mẫu ngày càng lớn, ảnh hưởng nhiều đến thời gian thực thi của hệ thống
Thực nghiệm: Tiến hành nhận dạng các ký tự tách đƣợc ở khâu trên
Phương pháp dò cạnh Phương pháp dò vùng
Ký tự Nhận dạng Tỷ lệ Ký tự Nhận dạng Tỷ lệ
Bảng 3 – Bảng kết quả nhận dạng ký tự
Phương pháp này đạt độ chính xác cao trong việc nhận diện các ký tự mờ, chỉ có một số ít ký tự bị sai do độ nghiêng quá lớn.
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 31
3.5.2 Phương pháp hình thái học
Các ký tự số có những đặc trưng riêng biệt, giúp phân biệt chúng với các ký tự khác Chẳng hạn, số 0 có lỗ tròn ở giữa, số 8 có hai lỗ tròn, số 6 có một lỗ tròn ở dưới và một mở ở trên, trong khi số 9 có một lỗ tròn ở trên và một mở ở dưới Dựa vào những đặc điểm này, chúng ta có thể phát triển một phương pháp nhận diện các ký tự số một cách chính xác.
Cắt các ký tự theo ba trục: một trục dọc và hai trục ngang, sau đó đếm số lần cắt qua hình để phân biệt từng ký tự.
Hình 26 – Các ký tự được cắt theo 3 trục
Bước 1: Lần đầu tiên, sau khi cắt theo trục dọc ở giữa hình, dựa vào số lần cắt qua hình ta có thể phân biệt các số ra thành 3 nhóm:
Hình 27 – Nhóm số 1 lần cắt
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 32
Hình 28 – Nhóm số 2 lần cắt
Hình 29 – Nhóm số 3 lần cắt
Bước 2: Tiếp tục cắt trục ngang 2 đường để giải quyết nhóm 2 và 3
Hình 30 - Cắt nhóm 2 thêm 2 đường ngang
Số điểm cắt theo 2 đường ngang của số 0 là 4, số 4 là 3, số 7 là 2
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 33
Hình 31 – Cắt nhóm 3 thêm 2 đường ngang
Số 9 cắt ở 2 lần trên và 1 lần ở dưới
Số 6 cắt 2 lần ở dưới và một lần ở trên
Bước 3: Dịch chuyển 2 đường ngang lên xuống để nhận biết nhóm số 2,3,5
Hình 32 – Dịch chuyển 2 đường ngang lên và xuống để nhận biết nhóm 2, 3, 5
- Số 3 cắt 4 lần (trên 2, dưới 2)
- Số 2 cắt 2 lần ở trên và 1 lần ở dưới
Kỹ thuật số 5 yêu cầu cắt 1 lần ở trên và 2 lần ở dưới, mang lại nhiều ưu điểm như tính đơn giản và dễ dàng áp dụng Chương trình này không có độ phức tạp cao, đồng thời cho kết quả chính xác với hình ảnh được xử lý tốt, đặc biệt là khi chụp ở góc thẳng đứng.
Nhƣợc điểm: Khó xử lý chính xác với ảnh bị nghiêng, bị nhiễu, gặp nhiều khó khăn trong vấn đề nhận dạng chữ cái
3.5.3 So sánh hai phương pháp nhận dạng ký tự
So sánh đƣợc thực hiện trên 100 biển mẫu đƣợc cắt bằng tay, lần lƣợt dùng hai phương pháp để nhận dạng
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 34
Phương pháp so sánh mẫu Phương pháp hình thái học
Ký tự số Ký tự chữ Ký tự số Ký tự chữ
Bảng 4 – Bảng so sánh hai phương pháp nhận dạng ký tự
Phương pháp so sánh mẫu cho độ chính xác cao hơn so với phương pháp hình thái học, đặc biệt trong việc nhận dạng ký tự chữ Ngược lại, phương pháp hình thái học chỉ hiệu quả với ký tự số và gặp khó khăn khi áp dụng cho ký tự chữ do tính phức tạp Các vấn đề như ký tự bị mất nét hoặc nghiêng làm giảm tỷ lệ nhận dạng của phương pháp hình thái học Vì những ưu điểm vượt trội của phương pháp so sánh mẫu, nhóm đã quyết định sử dụng hoàn toàn phương pháp này trong chương trình.
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 35
CHƯƠNG TRÌNH
Giao diện chính
Hình 33 – Giao diện chương trình
Nhóm Browse: Cho chuyển đổi tập tin ảnh đầu vào
Nhóm Option: Cho chọn phương pháp nhận dạng bằng dò cạnh hoặc vùng
1: Ảnh đầu vào đƣợc chuyển thành ảnh xám
2: Ảnh sobel từ ảnh đầu vào (chỉ có khi nhận dạng bằng phương pháp dò cạnh)
3: Ảnh nhị phân từ ảnh sobel (nếu nhận dạng bằng phương pháp dò cạnh) hoặc ảnh nhị phân từ ảnh xám (nếu nhận dạng bằng phương pháp dò vùng)
Nhóm Diagram: (chỉ có khi nhận dạng bằng phương pháp dò cạnh)
4: Hai lƣợc đồ biến thiên điểm trắng theo chiều dọc và ngang
5: Ảnh biển số trích chọn
6: Ảnh biển số sau khi xóa biên và phần dƣ
7: Ảnh biển số đƣợc chuyển sang nhị phân
8: Ảnh phần trên, phần dưới và các ký tự tách được
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 36
Chức năng
Cách chạy chương trình: Mở tập tin SegmentLicencePlate.exe
Cách thêm ảnh vào để nhận dạng: Chép tập tin ảnh cần nhận dạng vào thƣ mục hinhchup
Chọn chức năng nhận dạng trong nhóm Option
Hình 34 – Chức năng nhận dạng
Chọn ảnh muốn nhận dạng trong nhóm Browse
Trường Đại Học Hoa Sen – Khóa luận tốt nghiệp 37