Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.55 MB, 18 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>Hà Nội tháng 2/2022</b>
<small>1</small>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">1.2.1 Nhị phân hóa ảnh văn bản...5
1.3 Cải thiện hình ảnh văn bản...5
1.3.1 Mịn ảnh...6
1.4 Xác định góc nghiêng ảnh văn bản...7
1.5 Tách dòng văn bản, ký tự...9
CHƯƠNG 2 : Nhận diện biển số bằng OpenCV...10
2.1. Thư viện Tesseract...10
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3"><b>MỞ ĐẦU</b>
Hiện nay, với sự phát triển kinh tế xã hội đã bùng nổ số lượng phương tiện giaothông. Gây ra những khó khăn trong cơng tác quản lý, xử lý vi phạm giao thơng mànguồn nhân lực con người khó có thể đảm đương được. Vì vậy vấn đề cần thiết là cómột hệ thống quản lý, xử lý vi phạm giao thông tự động.
Để xây dựng hệ thống quản lý giao thơng tự động thì “ Bài toán nhận diện biển sốxe “ là tiền đề để xây dựng những mơ hình quản lý đó. Tuy nhiên hiện nay ở ViệtNam hệ thống đó chưa nhiều và lĩnh vực nhận dạng còn đang phát triển.
Từ những thực tế đó, trong q trình học mơn Xử lý ảnh, chúng em đã lựa chọntìm hiểu về bài tốn nhận diện biển số xe. Trong điều kiện năng lực và thời gian cóhạn, nên báo cáo của chúng em không khỏi tránh những sai sót.
Chúng em xin gửi lời cảm ơn đến cô Mạc Thị Thoa và thầy Phạm Đức An đã giúpđỡ chỉ bảo trong quá trình học để có thể hồn thành báo cáo này.
<small>3</small>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><b>1.1.1. Tính chất</b>
- Nhận dạng là q trình phân loại các đối tượng được biểu diễn theo một mơ hìnhnào đó và gán cho chúng vào một lớp dựa theo những quy luật và các mẫu chuẩn.Quá trình nhận dạng dựa vào những mẫu học biết trước gọi là nhận dạng có thầy( supervised learning), trong trường hợp ngược lại gọi là học không thầy (nonsupervised learning).
<b>1.1.2 Sự cần thiết </b>
- Cùng với sự phát triển không ngừng của kinh tế xã hội và các ngành kỹ thuật hiệnnay, đòi hỏi sự quản lý và xử lý thơng tin chính xác mà nó vượt q sức của conngười. Vì vậy cần có các cơng cụ có thể làm thay con người với độ chính xác cao.Việc giúp máy móc nhận diện như con người sẽ giúp chúng hoạt động hiệu quả nhưcon người với độ chính xác cao hơn rất nhiều.
Một số ứng dụng của bài toán nhận diện :
- Nhận diện dấu vân tay : sử dụng trong chấm cơng, điểm danh, làm khóa an tồncho cửa, máy tính xách tay….
- Nhận diện khn mặt : được ứng dụng trong các loại smartphone hoặc cửa ra vàođể tăng độ bảo mật…
<b> 1.2. Cơ sở lý thuyết</b>
<b> 1.2.1 Nhị phân hóa ảnh văn bản</b>
Trong thực tế, ảnh văn bản ban đầu là ảnh chứa nhiều màu hơn là trắng vàđen. Vì vậy để có thể thực hiện được q trình phân tích và nhận dạng, cần phảichuyển chúng thành ảnh nhị phân trong đó mỗi điểm ảnh được biểu diễn bởi mộttrong 2 giá trị là 0 hoặc 255. Đầu tiên, ảnh màu nhận vào sẽ được chuyển thành
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">ảnh xám với các mức xám có giá trị từ 0 đến 255 dựa trên ba giá trị red, green,blue của ảnh đầu vào.
Phương trình chuyển đổi ảnh màu sang ảnhxám: greycolor = r * 0.299 + g * 0.587 + b * 0.114.
Từ ảnh xám này, so sánh mức xám của từng điểm với một ngưỡng chotrước để quyết định điểm đó sẽ là 0 hoặc 255, giá trị 0 biểu diễn cho màu đen và255 biểu diễn cho màu trắng. Một trong các phương pháp là giải thuật Otsu đềnghị để tìm ra ngưỡng thích hợp đối với mỗi ảnh nhận vào.
<b> 1. Cải thiện hình ảnh văn bản3</b>
Mục tiêu của cải thiện ảnh số là những chức năng xử lý ảnh nâng chất lượngtừ ảnh ban đầu và phù hợp với ứng dụng đặc trưng. Đối với bài toán nhận dạngvăn bản, ảnh số được tạo ra từ những trang văn bản với thiết bị quét không phảilúc nào cũng cho hình ảnh tốt nhất, vì văn bản gốc lâu năm nên ảnh quét có chữviết mờ hay mất nét, có thể có nhiễu. Trong mục này, ta xem xét hai kỹ thuậtnâng cao chất lượng ảnh số văn bản phục vụ cho quá trình nhận dạng là làm mịnảnh và tăng cường sắc nét ảnh.
<i><b> 1.3.1 Mịn ảnh</b></i>
Mịn ảnh được thực hiện dựa trên bộ lọc trơn (Smoothing filter) nhằm loạinhiễu, bước này dùng trong quá trình tiền xử lý (Pre-processing) khi phải giảmbớt một số chi tiết không cần thiết của một đối tượng nào đó trong ảnh. Mộthướng áp dụng phổ biến để giảm nhiễu là lọc tuyến tính, những bộ lọc tuyến tínhtheo hướng này được biết đến như là lọc thông thấp.
Ý tưởng cho những bộ lọc thông thấp là thay thế giá trị mức sáng của mọiđiểm ảnh bằng giá trị mức sáng trung bình của các hàng xóm, định nghĩa theomặt nạ lọc. Kết quả trên dẫn tới ảnh số văn bản mất đi những chi tiết nhiễu, matrận của một bộ lọc làm mịn ảnh thường sử dụng có các hệ số như sau:
<small>5</small>
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">M= hoặc M=
<b> 1.3.2 Tăng cường sắc nét ảnh</b>
Trái ngược với bộ lọc mịn ảnh, bộ lọc tăng cường độ sắc nét (Sharpeningfilter ) để nhấn mạnh hay cải thiện chi tiết bị mờ của đối tượng đang xét trongảnh văn bản, ví dụ như dấu của các chữ cái không rõ ràng. Qua những bộ lọcloại này, bức ảnh màu tối có mức sáng trung bình của tồn bộ điểm ảnh đượctăng cường. Ma trận của một loại bộ lọc tăng cường độ sắc nét ảnh thường sửdụng có các hệ số như sau:
M= hoặc M=
<b> 1.4 Xác định góc nghiêng ảnh văn bản</b>
Quá trình sao chụp hay qt ảnh khơng chuẩn dẫn tới văn bản bị nghiêng(Skewed document). Nếu văn bản bị nghiêng thì nó sẽ ảnh hưởng đến các bướctiếp theo của giải thuật nhận dạng ngay khi góc nghiêng chỉ cỡ khoảng 5 , và<small>o</small>
khiến cho hiệu quả nhận dạng giảm sút.
Đã có nhiều hướng tiếp cận nhằm khắc phục vấn đề trên ở nhiều mức độkhác nhau. Có hai tiêu chuẩn cơ bản để khử độ nghiêng (De-skew) của ảnh vănbản: Tiêu chuẩn đầu tiên là giới hạn góc ước lượng, ví dụ góc ước lượng của vănbản giới hạn trong khoảng giới hạn nào đó. Tiêu chuẩn cịn lại là số lượng gócnghiêng trong tồn văn bản nghĩa là văn bản có một hay nhiều góc nghiêng.Trong trường hợp này, ta hãy xét văn bản cùng có một góc nghiêng nhỏ.
Nếu cho trước tập các đỉnh phân biệt trong mặt phẳng, cần kiểm tra xemchúng có tạo thành đường thẳng không. Mỗi cặp điểm khác nhau tạo thành mộtđường thẳng và n điểm tạo thành n(n – 1)/2 đường thẳng, với mỗi đường thẳng
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">cần kiểm tra n – 2 điểm cịn lại có thuộc vào đường thẳng đó khơng, như thế sẽcần 0(n ) phép thử. Với ảnh số kích thước lớn thì hướng giải quyết trên tạo ra số<small>3</small>
lượng phép tính bùng nổ. Do đó, có một lựa chọn khác là sử dụng biến đổiHough (Hough transform). Giải thuật đã được áp dụng trong việc phát hiệnnhững đối
tượng hình học cơ sở như đường thẳng, đường tròn hay elip. Từ đó, ý tưởng biếnđổi Hough được áp dụng ước lượng góc nghiêng văn bản nhằm tối ưu số lượngphép tính.
Biến đổi Hough tính tốn theo phương trình tọa độ cực: r = x cosθ +<small>0</small>
y<small>0</small>sinθ, trong đó r là khoảng cách nhỏ nhất giữa gốc tọa độ và đường thẳng, θ làgóc tạo bởi trục hồnh với đoạn thẳng OA. Như hình 1.1 thì góc nghiêng giữađường thẳng và trục hồnh là α bằng 90 – θ.
Hình 1.1 Đường thẳng và góc nghiêng Hình 1.2 Đường thẳng đi qua 3 điểm
Tập các đoạn thẳng trong mặt phẳng xác định từ những cặp tham số (r, θ).Ta xét trường hợp ảnh đầu vào có màu đen trắng, chỉ chứa các dịng văn bản vàsử dụng một phơng chữ. Có thể coi các dịng văn bản song song với nhau nêngóc nghiêng tồn văn bản là góc nghiêng của một dịng, như trong hình 1.3.Trước tiên, ta tìm ra tập các điểm màu đen dưới chân của một dòng văn bản nàođó, với mỗi điểm như thế duyệt các góc θ trong khoảng giới hạn và ước lượngcác khoảng cách r tương ứng. Với mỗi cặp tham số (r, θ) ghi nhận số lượng điểm
<small>7</small>
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">trong tập các điểm màu đen đang xét thuộc vào đường thẳng tương ứng cặptham số đó.
Đường thẳng nào đi qua nhiều điểm màu đen nhất sẽ có tham số θ cầntìm.
Hình 1.2 phía trên mơ tả có những đường thẳng khác nhau tương ứng cáccặp (r, θ) đi qua một điểm, nhưng chỉ có một đường thẳng thỏa mãn điều kiện điqua 3 điểm.
Hình 1.3 Văn bản nghiêng
Trong một dòng văn bản, số lượng ký tự có hạn nên tập các điểm màu đendưới chân dịng đó có số lượng nhỏ. Hơn nữa, θ được chọn giá trị rời rạc theobước trong ngưỡng (-90 , 90 ). Từ đó kích thước ma trận chứa các cặp (r, θ) sẽ<small>oo</small>
khơng lớn.
<b>1.5 Tách dịng văn bản, ký tự</b>
Để nhận dạng được toàn bộ văn bản trong ảnh số, ta phải nhận dạng được cácdòng và các ký tự trong ảnh. Sau khi qua tiền xử lý, dựa trên các đặc trưng vănbản sẽ tách được các dòng và từ, ký tự trong ảnh. Mỗi dòng văn bản ln có tọađộ chặn dưới và chặn trên, trong khi đó mỗi ký tự có tọa độ chặn dưới, chặntrên, giới hạn trái và giới hạn phải.
Giải thuật xác định tọa độ chặn trên và dưới của mỗi dòng văn bản được mơtả tóm tắt như sau: Từ tọa độ ban đầu (0,0), duyệt theo chiều ngang để tìm điểm
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">Dòng ch n trênặ
Dòng ch n dặ ưới
Vùng t a đ m t ọ ộ ộký tự
có màu đen, nếu đã hết dịng mà vẫn chưa thấy thì bắt đầu duyệt lại từ đầu dịngkế tiếp. Nếu tìm thấy điểm có màu đen thì ghi nhận tung độ điểm đó là tung độcủa dịng chặn trên và dừng duyệt. Tương tự với tọa độ chặn dưới, xuất phát từđiểm có hồnh độ là 0 và tung độ bằng tung độ của dòng chặn trên, cũng duyệttheo chiều ngang, nếu sau hết dịng khơng thấy điểm đen nào thì ghi nhận tungđộ
dịng đang xét là tung độ của dịng chặn dưới, cịn nếu tìm thấy điểm đen thìlại xét lại từ dịng kế tiếp.
Lặp lại các bước trên để tìm tọa độ chặn trên và chặn dưới cho những dòngcòn lại trong ảnh văn bản.
Giải thuật xác định vùng tọa độ cho mỗi ký tự như sau: Có được tọa độ giớihạn mỗi dịng, xác định được tọa độ chặn dưới và chặn trên của mỗi ký tự trêndịng đó.
Trong khi đó, để tìm tọa độ giới hạn trái và phải của một ký tự, bắt đầu từ đầudòng chặn trên, duyệt theo chiều dọc tới tung độ của dòng chặn dưới, nếu gặpđiểm màu đen thì ghi nhận hồnh độ điểm đó là hồng độ của cột giới hạn trái,nếu khơng thấy điểm màu đen thì tiếp tục lại từ đầu cột kế tiếp. Tương tự với tọađộ giới hạn phải, bắt đầu từ đầu dòng chặn trên, duyệt theo chiều dọc tới tung độcủa dịng chặn dưới, nếu sau hết cột khơng tìm thấy điểm màu đen thì hồnh độ
<small>9</small>
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">cột đang xét là hoành độ cột giới hạn phải của ký tự, nếu tìm thấy thì tiếp tục lạitừ đầu cột kế tiếp.
<b>2.1.1. Ứng dụng nhận dạng ký tự quang học</b>
Nhận dạng ký tự quang học (OCR) là một chương trình được xây dựng đểchuyển đổi các hình ảnh của chữ viết tay hoặc chữ đánh máy thành các văn bảntài liệu số. Ứng dụng OCR được bắt đầu từ một lĩnh vực nghiên cứu trong lýthuyết nhận dạng mẫu, trí tuệ nhân tạo và thị giác máy tính. Mặc dù cơng việcnghiên cứu học thuật vẫn tiếp tục, một phần công việc của OCR đã chuyển sangthực tế với những giải thuật đã được chứng minh. So với chữ đánh máy, nhậndạng chữ viết tay khó khăn hơn và cho hiệu quả thấp. Nhìn chung, nếu khơng cónhững thơng tin thêm về ngữ pháp và ngữ cảnh thì nhận dạng chữ viết tay khơngdẫn tới kết quả tốt.
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">Ngày nay, các hệ thống nhận dạng thỏa mãn độ chính xác nhận dạng cao
Hình 2.1 Quy trình xử lý của một ứng dụng nhận dạng ký tự quang học
đối với hầu hết các phông chữ tiêu chuẩn như Unicode. Một số hệ thống cịn cókhả
năng tái tạo lại các định dạng của tài liệu gần giống với bản gốc bao gồm hình ảnh,các cột, bảng biểu, các thành phần không phải là văn bản.
<b>2.1.2. Thư viện Tesseract</b>
<small> </small>Khác với những phần mềm vì mục tiêu thương mại, Tesseract là một thư viện –khơng phải là chương trình – nhận dạng ký tự quang học. Nó có mã nguồn mở,được công khai dưới giấy phép Apache, phiên bản 2.0, và được phát triển dưới sựtài trợ của Google từ năm 2006. Tesseract được đánh giá là một trong số ít nhữngthư viện nhận dạng ký tự quang học mã nguồn mở tốt nhất hiện nay.
Giải thuật nhận dạng chữ in :
Sơ đồ nhận dạng một từ là quy trình phân tích một từ được chia ra thành các ký tự:
<small>11</small>
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">Hình 2.2 Sơ đồ nhận dạng từ
Cơ chế hoạt động của Tesseract OCR:
Trước tiên, hình ảnh sẽ được phân tích để tìm ra các vùng kết nối (connectedcomponent). Bước này cho phép OCR dễ dàng nhận biết những vùng ký tự ngược đểcó thể nhận diện những ký tự bên trong.
Tiếp đến, những blob này sẽ tiếp tục được phân tích để tìm ra các dịng, rồi đến cácký tự. Việc tìm các dịng sẽ được xử lý bởi thuật toán dựa vào vùng ký tự, cỡ chữcùng toạ độ (trục x). Sau đó, các đường cơ sở (baseline) cũng được tìm kiếm nhờ vàoviệc
<b>2.2. Xử lý ảnh</b>
Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhăm cho ra
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">kết quả mong muốn. Kết quả đầu ra của một q trình xử lý ảnh có thể là một ảnh tốthơn theo ý muốn hoặc một kết luận nào đó.
<b>2.2.1 Đọc dữ liệu </b>
Ứng dụng nhận diện biển số xe có khả năng phân tích hình ảnh và xác định biển sốxe từ các hình ảnh chụp được từ các thiết bị thu hình. Hình ảnh có thể được lấy từ dữliệu của máy tính hoặc được trích xuất từ camera (realtime).
Sử dụng OpenCV để đọc dữ liệu đầu vào :- Dữ liệu là ảnh tĩnh :
- Dữ liệu là được trích xuất từ camera:
Nhận dạng các kýtự bằng TesseractXử lý trích xuất từ
vùng biển sốTiền xử lý ảnh
Đọc dữ liệu
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14"><b>2.2.2 Tiền xử lý ảnh</b>
Sau khi đã đọc dữ liệu, bước tiền xử lý sẽ chuyển đổi không gian màu, lọc nhiễu, cânbằng ánh sáng, chuyển đổi sang ảnh xám,… từ ảnh đã thu được.
Hình 2.3 Chuyển sang ảnh xám
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">Hình 2.4 Ảnh threshold và canny
<b>2.2.3 Xử lý ảnh trích xuất vùng biển số</b>
Sau khi chuyển ảnh về ảnh xám và ảnh threshold ta sẽ tiến hành làm rõ vùng biển sốbằng cách tìm tất cả các vùng biên bằng hàm findContours trong thư viện OpenCVđể trích các vùng và lấy thơng số như tọa độ điểm hay diện tích các vùng.
Lọc contour theo vùng và lấy các contour có giá trị lớn nhất để tránh nhiễu.Sau đó ta tính chu vi từng contour bằng cv2.arcLength và dùng cv2.approxPolyDPđể xấp xỉ đa giác ở đây là hình chữ nhật do đó chỉ cần giữ lại contour có 4 cạnh. Tách contour ra khỏi image ta thu được hình dưới:
<b>2.2.4 Nhận dạng ký tự bằng Tesseract</b>
Sau khi đã thu được contour chứa biển số xe như các bước trên, ta tiến hành táchriêng từng ký tự .Ý tưởng là lọc nhiễu và tách các ký tự ra khỏi image thu được. Sử dụng cv2.GaussianBlur để lọc nhiễu, sau đó dùng cv2.thresh_binary_inv để đưa
<small>15</small>
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">về ảnh trắng đen, cuối cùng thu được contour trên image:
Do các ký tự thu được sẽ có một số contour nhiễu nên ta sẽ tính area của contour đểlấy các kí tự lớn nhất và in ra màn hình.
Một số kết quả thu được :
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">Với sự phát triển của cơng nghệ thơng tin đã có những tác động tích cực đến nhiềumặt của đời sống xã hội trong đó phải kể đến lĩnh vực giám sát tự động, trong đóviệc giám sát đối với các phương tiện giao thông là một vấn đề quan trọng. Nhiềuthành phố đã xây dựng hệ thống giám sát tự động đối với các phương tiện giao thônglấy biển số xe là mục tiêu giám sát.
Với mục đích phát biển số, báo cáo này đã tìm hiểu bài tốn “ Nhận diện biển sốxe” để có thể quản lý và giám sát các phương tiện giao thông. Do thời gian có hạn nên sẽ khơng thể tránh khỏi sai sót trong q trình nhận diện. Qua bài báo cáo nàygiúp chúng em biết thêm nhiều kiến thức về xử lý ảnh và ứng dụng của chúng trongthực tế.
<small>17</small>
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">[1] Xử lý ảnh trong cơ điện tử. T.s Mạc Thị Thoa
[2] Luận văn nhận diện biển số xe của anh Phạm Thế Tài trường Đại học Thủy Lợi [3] Đề tài ứng dụng thư viện lập trình mã nguồn mở xây dựng chương trình nhậndạng văn bản chữ việt, anh từ ảnh số. Th.S Phạm Tuấn Đạt, Th.S Nguyễn Văn Thủytrường Đại học Hàng Hải
[4] [5]
</div>