Bên cạnh các kỹ thuật đã được đề xuất và giới thiệu trên đây bởi các nhà nghiên cứu trong và ngoài nước, đồ án này cũng xin phép được giới thiệu một kỹ thuật rút trích đặc trưng khác, hầu làm phong phú thêm và đóng góp phần nào cho công tác nghiên cứu và cải tiến hiệu quả bài toán nhận dạng chữ viết tay. Kỹ thuật được đề xuất có tên gọi là Dense Distribution (phân bố đậm đặc).
Nền tảng của kỹ thuật Dense Distribution cũng dựa trên mức độ phân bố điểm ảnh màu đen trong ảnh ký tự, tương tự như các kỹ thuật cùng nhóm như Zoning, wavelet Haar,… Kỹ thuật này gồm hai ý tưởng chính:
Phân bin lượng điểm ảnh màu đen trong một vùng: cả ma trận ảnh sẽ được chia ra thành n vùng, mỗi vùng có kích thước r × r điểm ảnh. Tổng số điểm ảnh của một vùng là Q = r2, đồng thời gọi số điểm ảnh màu đen trong vùng đó là p. Khi đó, tùy vào giá trị thực tế của p mà ta phân vào một trong 3 bin theo hình 2.16:
Hình 2.16. Các giá trị nhãn bin và mốc tính bin
Việc lựa chọn giá trị nhãn bin a, b, c và cột mốc tính bin x, y đều có khả năng ảnh hưởng đến hiệu quả của kỹ thuật. Thực nghiệm đã cho thấy bộ giá trị nhãn bin là 0, 1, 2 cho kết quả tốt hơn bộ nhãn bin là 0, 0.5, 1. Đồng thời giá trị của x và y không hoàn toàn là
3
Q
và
3 2Q
mà cả hai có chút xê dịch về giá trị
2
Q
thì sẽ cho hiệu quả của kỹ thuật tốt hơn.
Ngoài việc phân bin cho n vùng ảnh như trên, ta cũng phân bin cho 5 vùng được cho là đặc biệt, thể hiện trong hình 2.17:
Hình 2.17. Vị trí của 5 vùng đặc biệt
Lý do cho việc chọn 5 vùng này vì hầu hết các ký tự chữ viết, đặc biệt là chữ viết Latin đều khá khác nhau trong việc phân bố điểm đen tại những vùng này. Ví dụ như trong hình 2.18:
a b c
x y
Hình 2.18. Vị trí 5 vùng đặc biệt đối với hai mẫu dữ liệu
Sự phân bố lượng điểm ảnh màu đen trong một vùng: mỗi một vùng trong số n vùng trên được chia ra thành 4 tiểu vùng bằng nhau và lần lượt được đánh số như trong hình 2.19:
Hình 2.19. Vị trí bốn tiểu vùng trong một vùng
Tên của kỹ thuật được thể hiện rõ nét nhất trong ý tưởng này. Các tiểu vùng sẽ được tính tổng số điểm ảnh màu đen trong nó, tiểu vùng nào có số điểm đen nhiều nhất, tức là “đám mây điểm đen” đậm đặc nhất ở tiểu vùng nào (1, 2, 3 hoặc 4) thì gán tên của tiểu vùng đó cho giá trị phân bố của toàn bộ vùng đang xét.
Yêu cầu để thực hiện được kỹ thuật này là ảnh đầu vào phải là ảnh nhị phân, các thông số a, b, c, x, y phải được xác định trước và thống nhất cho tất cả các vùng của ảnh. Chi tiết các thí nghiệm về xác định sự ảnh hưởng của các tham số trong kỹ thuật này sẽ được trình bày trong chương 4 của đồ án.
Thuật toán Dense Distribution sẽ được trình bày dưới dạng mã giả như sau, trong đó hàm chính là hàm DenseDistribution(), còn các hàm IntoBin(), ValueAZone(), Distribution() chỉ là các hàm để thực hiện các thao tác con.
IntoBin(tempValue) {
Nếu (0<=tempValue<=x) thì return a; Nếu (y<=tempValue<=Q) thì return c; return b;
}
BinAZone(zoneID)
{ return IntoBin(Tổng số điểm ảnh đen trong zoneID); } Distribute(zoneID)
{
S1 = Tổng số điểm ảnh đen trong tiểu vùng 1; S2 = Tổng số điểm ảnh đen trong tiểu vùng 2; S3 = Tổng số điểm ảnh đen trong tiểu vùng 3; S4 = Tổng số điểm ảnh đen trong tiểu vùng 4; return (ID của tiểu vùng có Sn lớn nhất); }
DenseDistribution()
{ //Tổng cộng có n vùng thông thường
Khởi tạo mảng v chứa vector đặc trưng có (2n + 5) chiều; Đếm = 0;
Lần lượt xét tất cả vùng thông thường { v[Đếm] = BinAZone(zoneID); v[Đếm + 1] = Distribute(zoneID); Đếm = Đếm + 2; } v[n] = BinAZone(vùng đặc biệt 1); v[n + 1] = BinAZone(vùng đặc biệt 2); v[n + 2] = BinAZone(vùng đặc biệt 3); v[n + 3] = BinAZone(vùng đặc biệt 4); v[n + 4] = BinAZone(vùng đặc biệt 5); }
Kết thúc thuật toán, từ một mẫu dữ liệu được phân ra thành n vùng, ta sẽ thu được một vector đặc trưng có số chiều là 2n + 5.