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 (28.76 MB, 66 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<i><b>Lời cam kết ... iii </b></i>
<i><b>Danh mục các từ viết tắt ... xii </b></i>
<i><b>Chương 1 Giới thiệu đề tài ... 1 </b></i>
<b><small>1.1 Đặt vấn đề ... 1</small></b>
<b><small>1.2 Mục tiêu và phạm vi đề tài ... 2</small></b>
<b><small>1.3 Định hướng giải pháp ... 3</small></b>
<b><small>1.4 Bố cục đồ án ... 3</small></b>
<i><b>Chương 2 Tình hình nghiên cứu hiện nay ... 5 </b></i>
<b><small>2.1 Lịch sử phát triển của hệ thống nhận dạng biển số tự động ANPR ... 5</small></b>
<b><small>2.2 Phân tích cấu trúc hệ thống ANPR thơng thường ... 7</small></b>
<small>2.2.1 Thu thập hình ảnh ... 8</small>
<small>2.2.2 Phát hiện biển số ... 8</small>
<small>2.2.3 Phân đoạn ký tự ... 8</small>
<small>2.2.4 Nhận dạng ký tự ... 9</small>
<b><small>2.3 Các nghiên cứu liên quan ... 9</small></b>
<small>2.3.1 Nghiên cứu về phát hiện vùng biển số ... 9</small>
<small>2.3.2 Nghiên cứu về phân đoạn ký tự ... 12</small>
<small>2.3.3 Nghiên cứu về nhận dạng ký tự ... 13</small>
<b><small>3.1 Giới thiệu công nghệ nhận diện vật thể YOLO ... 16</small></b>
<small>3.1.1 Phân tích giải pháp YOLO ... 16</small>
<small>3.1.2 Cách hoạt động của Yolo ... 17</small>
<small>3.1.3 Kiến trúc mạng ... 24</small>
<small>3.1.4 Cách đánh giá mơ hình nhận diện vật thể ... 24</small>
<b><small>3.2 Xử lý ảnh với OpenCV ... 26</small></b>
<small>3.2.1 Các loại ảnh ... 27</small>
<small>3.2.2 Nhị phân ảnh với ngưỡng thích ứng (Adaptive threshold) ... 28</small>
<small>3.2.3 Đường viền (contour) ... 29</small>
<i><b>Chương 4 Phát triển và triển khai ứng dụng ... 35 </b></i>
<b><small>4.1 Giải pháp đề xuất cho phát hiện biển số ... 35</small></b>
<small>4.1.1 Chuẩn bị dữ liệu huấn luyện ... 35</small>
<small>4.1.2 Huấn luyện mơ hình ... 37</small>
<b><small>4.3 Giải pháp đề xuất cho nhận dạng ký tự ... 47</small></b>
<small>4.3.1 Chuẩn bị dữ liệu huấn luyện ... 47</small>
<small>4.3.2 Xây dựng mơ hình ... 48</small>
<small>4.3.3 Đánh giá mơ hình ... 50</small>
<i><b>Chương 5 Kết luận và hướng phát triển ... 51 </b></i>
<b><small>5.1 Đánh giá hiệu năng hệ thống ... 51</small></b>
<b><small>5.2 Hướng phát triển ... 53</small></b>
<i><b>Tài liệu tham khảo ... 55 </b></i>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><b>Hình 1 Quy trình cơ bản của hệ thống ANPR ... 7</b>
<b>Hình 2 Mơ hình YOLO ... 17</b>
<b>Hình 3 Biểu diễn cơng thức IOU ... 18</b>
<b>Hình 4 Minh họa cho mối liên hệ giữa các tham số ... 19</b>
<b>Hình 5 Giá trị lưu trong tensor trả về từ mạng CNN ... 20</b>
<b>Hình 6 Mơ tả vector confident scores cho mỗi bounding box ... 20</b>
<b>Hình 7 Mơ tả tồn bộ vector confident scores cho ảnh ... 21</b>
<b>Hình 8 Mơ tả q trình xét score cho các class ... 22</b>
<b>Hình 9 Mơ tả quá trình xét duyệt bounding box ... 23</b>
<b>Hình 10 Kết quả sau khi duyệt bounding box ... 23</b>
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5"><b>Hình 20 Ví dụ thực hiện thuật tốn Top-hat ... 32</b>
<b>Hình 21 Ví dụ thực hiện thuật tốn Black-hat ... 32</b>
<b>Hình 22 Các điểm dữ liệu tương tự thường tồn tại gần nhau ... 33</b>
<b>Hình 23 Dữ liệu biển số thu thập được ... 35</b>
<b>Hình 24 Dán nhãn dữ liệu với LabelImg ... 36</b>
<b>Hình 25 Cấu trúc file xml ... 36</b>
<b>Hình 26 Bắt đầu huấn luyện mơ hình ... 38</b>
<b>Hình 27 Hình ảnh thư mục ckpt chứa checkpoint ... 38</b>
<b>Hình 28 Giá trị training loss qua từng bước ... 39</b>
<b>Hình 29 Giá trị cho mơ hình sử dụng checkpoint 1000 ... 40</b>
<b>Hình 30 Giá trị cho mơ hình sử dụng checkpoint 1500 ... 40</b>
<b>Hình 31 Giá trị cho mơ hình sử dụng checkpoint 2000 ... 40</b>
<b>Hình 32 Giá trị cho mơ hình sử dụng checkpoint 2500 ... 41</b>
<b>Hình 33 Ví dụ kết quả trả về dưới dạng json của thư viện darkflow ... 41</b>
<b>Hình 34 Ví dụ kết quả dự đốn nhận được bằng darkflow ... 42</b>
<b>Hình 35 Ví dụ cắt vùng biển để phân đoạn ký tự ... 43</b>
<b>Hình 36 Kết quả của quá trình tiền xử lý ảnh ... 44</b>
<b>Hình 37 Kết quả lọc các khu vực có khả năng là ký tự ... 45</b>
<b>Hình 38 Kết quả tìm các ký tự có khả năng tạo thành 1 dịng ... 46</b>
<b>Hình 39 Bộ dữ liệu font chữ biển số xe Việt Nam ... 47</b>
<b>Hình 40 Dữ liệu chuẩn bị cho huấn luyện KNN ... 48</b>
<b>Hình 41 Trích xuất từng ký tự trong bộ ảnh dữ liệu ... 49</b>
<b>Hình 42 Ảnh nhị phân của ký tự ... 49</b>
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6"><b>Hình 43 Bộ dữ liệu kiểm thử mơ hình dự đốn ký tự ... 50Hình 44 Vị trí đặt camera xa ... 51Hình 45 Vị trí đặt camera gần ... 52</b>
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7"><b>Bảng 1 So sánh các phương pháp phát hiện vùng biển số ... 9</b>
<b>Bảng 2 So sánh các phương pháp phân đoạn ký tự ... 13</b>
<b>Bảng 3 So sánh các phương pháp nhận dạng ký tự ... 14</b>
<b>Bảng 4 Kết quả kiểm thử hệ thống ... 52</b>
<b>ANPR <sup>Automatic Number Plate Recognition </sup></b>
Thuật toán K láng giềng gần nhất
<b>PSDB </b> <sup>Police Scientific Development Branch </sup>
Chi nhánh phát triển khoa học cảnh sát Vương quốc Anh
<b>ASCII </b> <sup>American Standard Code for Information Interchange </sup>
Chuẩn mã trao đổi thông tin Hoa Kỳ
<b>NADC </b> <sup>The Police National ANPR Data Centre </sup>
Trung tâm dữ liệu ANPR cảnh sát quốc gia
<b>NMS </b> Non-Maximum Suppresstion
Mạng nơ-ron tích chập
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Hiện nay, cùng với sự phát triển về khoa học kỹ thuật và cơng nghệ thơng tin thì tốc độ đơ thị hố ngày càng tăng, kéo theo đó là nhu cầu đi lại của người dân ngày một tăng cao. Do đó dẫn đến số lượng phương tiện giao thông tham gia trên đường ngày càng lớn. Với số lượng lớn phương tiện như vậy thì việc quản lý các phương tiện gặp phải rất nhiều khó khăn. Cơng tác quản lý các phương tiện giao thông rất phức tạp, dễ nhầm lẫn, tốn nhiều thời gian và nhân công. Đặc biệt với lưu lượng giao thông dày đặc thì việc ùn tắc ở những điểm ra vào bãi đỗ xe là chuyện thường xuyên xảy ra.
Để giải quyết vấn đề ở trên thì giải pháp đưa ra là áp dụng các hệ thống hoạt động tự động. Mỗi một phương tiện đều có một biển số của riêng nó. Vì vậy sinh viên hướng đến mục tiêu xây dụng hệ thống nhận dạng biển số xe tự động nhằm giúp các bãi đỗ xe giảm thiểu thời gian và nhân công trong công tác quản lý các phương tiện giao thông.
Nhận dạng biển số tự động (Automatic Number Plate Recognition) là một q trình trong đó phương tiện được xác định hoặc nhận dạng bằng biển số xe. ANPR sử dụng các kỹ thuật xử lý hình ảnh để trích xuất biển số xe từ hình ảnh kỹ thuật số. ANPR có thể được sử dụng để lưu trữ hình ảnh được chụp bởi camera cũng như văn bản trích xuất từ biển số xe, và thêm một số cấu hình để lưu trữ hình ảnh của người điều khiển phương tiện.
Các hệ thống ANPR thường bao gồm một camera, bộ xử lý và ứng dụng có khả năng thực hiện nhận dạng ký tự quang học (OCR), để biến đổi hình ảnh của biển số xe thành các ký tự chữ và số; Cung cấp giao diện người dùng để hiển thị hình ảnh được chụp, kết quả về chuyển đổi OCR.
Việc triển khai thành công hệ thống nhận dạng biển số tự động mang lại kết quả nhanh hơn và dễ dàng hơn trong nhận dạng xe. Điều này dẫn đến việc tìm kiếm và lấy các thơng tin liên quan đến phương tiện nhanh hơn và chính xác hơn.
Nhận dạng biển số tự động là một phương pháp giám sát được phát triển lần đầu tiên vào năm 1976 tại Chi nhánh phát triển khoa học cảnh sát Vương quốc Anh (Police Scientific Development Branch) với mục đích chống tội phạm.
Một hệ thống nhận dạng biển số tự động thường được chia làm 3 mơ-đun chính như sau: • Phát hiện vùng biển số
• Phân đoạn ký tự • Nhận dạng ký tự
Trong mơ-đun phát hiện vùng biển số, có nhiều kỹ thuật được đề xuất như: phương pháp hình thái học và biến đổi mũ [1], xác định cạnh, tương quan và biến đổi hình thái học [2], cường độ phương sai cục bộ & mật độ cạnh dọc và mơ hình mật độ cạnh [3], xác định cạnh dọc sobel và phân tích mật độ cạnh [4], thơng tin màu sắc và hình dạng [5], phương pháp biến đổi Hough và thuật toán xác định viền [6], xác định cạnh dọc và ngang [7], thuật tốn adaboost [8]…
Trong mơ-đun phân đoạn ký tự, có một số các kỹ thuật như: phát hiện cạnh, biến đổi mơ hình màu, phân tích thành phần [4], một khung hình thơng minh phác thảo đặc tính của biển số xe bằng nhiều cách chiếu sáng khác nhau [9], thuật toán đa cụm [10], ngưỡng và thành phần kết nối [11], biến đổi hình thái học và thành phần kết nối [12]…
Trong mô-đun nhận dạng ký tự có một số kỹ thuật đề xuất như: cây quyết định [13], xử lý ảnh màu [5], máy vectơ hỗ trợ [14], mạng nơ-ron đa lớp và đa cụm [10], khớp mẫu [12], các phần mềm OCR [8]…
Mặc dù, có nhiều phương pháp được đề xuất cho hệ thống ANPR. Nhưng khơng có phương pháp duy nhất nào có thể cung cấp hiệu suất thỏa đáng cho tất cả các trường hợp phức tạp khác nhau, chẳng hạn như: sự không chắc chắn của các cạnh, các dạng biển khác nhau, biển nhỏ, ánh sáng mờ, hình ảnh mờ, hình ảnh được chiếu sáng thấp hoặc cao, các loại biển với màu sắc, phông chữ, cú pháp, kích thước, khoảng cách, góc khác nhau; thời tiết và môi trường; biển với nhiều hàng. Mặt khác, mỗi nhà nghiên cứu đã sử dụng nhiều nguồn hình ảnh, mơi trường với chất lượng hình ảnh, thơng số của hình ảnh khơng giống nhau và hình ảnh xe khơng được thu thập tại Việt Nam. Do đó, hầu hết các phương pháp trước đây không
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">thể áp dụng cho tất cả các quốc gia, tất cả các môi trường, tất cả các loại biển số xe nói chung và biển Việt Nam nói riêng.
Ngày nay, với sự tiến bộ trong lĩnh vực Học máy (Machine learning) nói chung và học sâu (Deep learning) nói riêng có rất nhiều phương pháp đã chứng minh được tính hiệu quả trong việc giải quyết những bài toán phức tạp mà các cách tiếp cận truyền thống chưa thể giải quyết triệt để được. Do đó sinh viên xin đề xuất áp dụng các phương pháp trong lĩnh vực máy học và học sâu vào trong bài toán xây dựng hệ thống tự động nhận dạng biển số xe.
• Ở mơ-đun phân đoạn ký tự: kết hợp các phương pháp xử lý ảnh được cung cấp bởi thu viện mã nguồn mở OpenCV như biến đổi hình thái học trên ảnh màu xám để tăng độ tương phản, sử dụng kỹ thuật làm mờ ảnh để loại bỏ các vật thể nhỏ (nhiễu), xác định viền, xoay ảnh, thay đổi kích thước ảnh,… để phân đoạn biển ra thành dịng rồi từ đó phân đoạn ra từng ký tự riêng lẻ.
• Ở mơ-đun nhận diện ký tự: sử dụng thuật toán machine learning K nearest neighbor (KNN) để xây dựng mơ hình dự đốn ký tự và chữ số trong biển số xe Việt Nam.
Phần còn lại của báo cáo đồ án tốt nghiệp này được tổ chức như sau.
<b>Chương 2: Tình hình nghiên cứu hiện nay - Chương này nêu ra lịch sử phát triển của hệ </b>
thống tự động nhận dạng biển số và cấu trúc xây dựng một hệ thống thường có. Sau đó nêu ra các nghiên cứu liên quan đến hệ thống tự động nhận dạng biển số. Nhiều nỗ lực đã được dành cho ANPR trong ba mươi năm qua và có nhiều nghiên cứu về lĩnh vực này. Các phần 2.3.1-2.3.3 cung cấp tổng quan ngắn gọn về các phương pháp chính được sử dụng trong ba bước ANPR chính: phát hiện vùng biển số, phân đoạn ký tự và nhận dạng ký tự. Sinh viên
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">để so sánh. Thay vào đó, việc so sánh xem xét ưu điểm và nhược điểm với từng phương pháp được tiến hành.
<b>Chương 3: Cơ sở lý thuyết - Ở chương này sinh viên đưa ra những lý thuyết về công nghệ </b>
nhận diện vật thể You Only Look Once (YOLO) để phục vụ cho bài toán phát hiện biển số. Tiếp theo là các khái niệm cơ bản về xử lý ảnh với thư viện mã nguồn mở OpenCV: tìm cạnh, làm mờ ảnh, biến đổi hình thái học,… thực hiện trong bước phân đoạn ký tự. Cuối cùng là giới thiệu thuật toán K – Nearest Neighbor sẽ được sử dụng trong mô-đun nhận dạng ký tự.
<b>Chương 4: Phát triển và triển khai hệ thống - Chương này trình bày các bước cụ thể để xây </b>
dựng lên hệ thống tự động nhận dạng biển số. Từ xây dựng mơ hình phát hiện biển số với kiến trúc YOLO, đến các bước xử lý ảnh bằng thư viện mã nguồn mở OpenCV để phân đoạn ký tự. Cuối cùng là xây dựng mơ hình dự đoán ký tự với thuật toán K-NN.
<b>Chương 5: Kết luận và hướng phát triển - Chương kết của báo cáo đồ án, sinh viên đánh giá </b>
hiệu năng của hệ thống và xem xét các hướng phát triển để cải thiện năng suất của hệ thống tự động nhận dạng biển số xe.
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">ANPR được phát minh vào năm 1976 tại Anh, nơi được gọi là Chi nhánh phát triển khoa học cảnh sát (PSDB) và các hệ thống ban đầu được phát triển để sử dụng từ năm 1979. Các hệ thống thử nghiệm ban đầu đã được triển khai ở Anh trên tuyến đường A1 và tại đường hầm Dartford trên đường cao tốc M25 và vụ bắt giữ đầu tiên được ghi nhận nhờ vào ANPR phát hiện một chiếc xe bị đánh cắp là vào năm 1981. Kể từ khi thành lập, công nghệ ANPR đã phát triển và thích nghi với thời đại, tìm ra nhiều hướng đi mới. Dưới đây là một vài cột mốc đáng chú ý trong suốt hành trình phát triển của ANPR cho đến nay:
1993 - ANPR được triển khai lần đầu tiên như một phần của mạng lưới camera "Vành đai thép" quanh thành phố Luân Đôn. Dự án này là hoạt động lớn nhất vào thời điểm đó và được cảnh sát thủ đơ Ln Đơn triển khai trong nỗ lực chấm dứt chuỗi các vụ đánh bom khủng bố tại khu tài chính, bởi IRA.
1997 - Trung tâm dữ liệu ANPR cảnh sát quốc gia (NADC) được thành lập. Trước khi tạo ra NADC, dữ liệu được thu thập từ các hệ thống ANPR đã được lưu trữ cục bộ trong lực lượng cảnh sát vận hành camera, nhưng trung tâm dữ liệu ANPR quốc gia đã cho phép phân tích tồn bộ dữ liệu của khắp các cục cảnh sát, bằng cách tập trung tất cả dữ liệu của cảnh sát ANPR từ khắp nước Anh.
2003 - Chương trình Phí tắc nghẽn được giới thiệu nhằm mục đích giảm lưu lượng ở trung tâm Ln Đơn. Vùng thu phí, bao gồm 20km2 của thủ đô, được vận hành bởi cục giao thông vận tải Luân Đôn và gần 700 camera ANPR được lắp đặt trên mọi con đường trong và ngoài khu vực. Điều này đánh dấu việc sử dụng ANPR quy mô lớn đầu tiên cho mục đích dân sự. 2005 - ANPR International Limited được thành lập ngày 18 tháng 5 năm 2005. Xuất phát từ niềm tin rằng công nghệ ANPR có thể làm được nhiều hơn so với trước đây. Sự thành lập
lý dữ liệu ANPR từ nhiều nguồn khác nhau và xử lý dữ liệu thông qua một loạt các ứng dụng mô-đun.
2006 - ANPR International đã triển khai hệ thống camera tĩnh đầu tiên cho quản lý đỗ xe - bayGAURDIAN, đây là mô-đun đầu tiên được xây dựng cho văn phòng hỗ trợ eyeTRAFFIC. Hệ thống cho phép người điều khiển bãi đỗ xe giám sát các phương tiện ra vào bãi đỗ xe, tính tốn thời gian phương tiện sử dụng tại chỗ và tự động xác định những phương tiện không được ủy quyền hoặc ở lại quá lâu.
2007 - mô-đun bayGUARDIAN được mở rộng với sự tích hợp vào thiết bị Charge Car. Hệ thống tích hợp hồn tồn với một loạt các máy thu phí đậu xe, để cho phép các hệ thống văn phòng hỗ trợ tự động phát hiện một chiếc xe chưa trả tiền đỗ xe hoặc trả quá ít.
2009 - ANPR International phát triển sản phẩm ANPR di động đầu tiên của mình - streetSweEPER, được thiết kế dành cho nhiều ứng dụng bao gồm khảo sát giao thông, giám sát di động cho Cơ quan cấp phép lái xe. Vào ngày đầu tiên trên đường ở trung tâm Luân Đôn, streetSweEPER phát hiện hơn 27 phương tiện chưa đóng thuế chỉ trong vài giờ. 2011 - hệ thống roadGUARDIAN được phát triển và triển khai để chống lại vấn đề xe cộ đi cắt qua các tuyến đường bị cấm để tránh tắc nghẽn. Hệ thống được triển khai cùng với Hội đồng quận và các vụ phát hiện được xử lý bởi Cảnh sát, đưa ra thông báo phạt cho bất kỳ người phạm tội nào.
2012 - Hệ thống ghi nhận thiệt hại phương tiện đầu tiên được phát triển để ghi lại tình trạng của phương tiện đến khu vực đỗ xe tại sân bay, nhằm ngăn chặn các yêu cầu bảo hiểm gian lận về thiệt hại xe cộ đối với nhân viên sân bay. Hệ thống liên kết 360 độ. hình ảnh của chiếc xe đến số đăng ký của nó, cung cấp một phương pháp nhanh chóng và dễ dàng để phục hồi và phân tích các hình ảnh trong trường hợp có u cầu từ người lái xe.
2013 - ANPR International giành Giải thưởng Công nghệ cho công việc khảo sát giao thông di động được thực hiện cho Hội đồng Hạt Gloucestershire. Cuộc khảo sát sử dụng một đội xe được trang bị StreetSweEPER để thu thập dữ liệu về hồ sơ giao thông và thói quen đỗ xe quanh một số thị trấn và thành phố để giúp Hội đồng hiểu rõ hơn về lưu lượng giao thông và sử dụng phương tiện.
2014 - speedSENTINEL được phát triển để giải quyết các vấn đề về tốc độ trong các nút giao thông công cộng. Sentinel được thiết kế để trở thành một hệ thống camera tốc độ triển
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">khai ngẫu nhiên để đảm bảo tuân thủ các giới hạn tốc độ giúp cho người đi bộ có thể đi bộ an tồn tại các điểm giao thơng bộn rộn.
2016 - Hệ thống ghi nhận thiệt hại phương tiện được mở rộng để chụp làn đường kép, cho phép chụp nhiều làn đường và tối đa 14 camera được tích hợp với dữ liệu ANPR để tăng trải nghiệm của khách hàng và tăng sự thuận tiện.
Hệ thống ANPR thường bao gồm hai thành phần: máy ảnh hay camera được sử dụng để chụp ảnh biển số xe, và phần mềm trích xuất biển số từ ảnh chụp được bằng cách sử dụng một công cụ nhận dạng ký tự cho phép các pixel được dịch thành các ký tự có thể đọc được. Một hệ thống nhận dạng biển số xe thường hoạt động theo bốn phần chính là thu thập hình ảnh, phát hiện biển số xe, phân đoạn ký tự và cuối cùng là nhận dạng ký tự.
Hình 1 bên dưới là quy trình cơ bản của một hệ thống ANPR.
<b>Hình 1 Quy trình cơ bản của hệ thống ANPR </b>
Bản mô tả cơ bản chức năng của các quá trình trong ANPR là:
• Bước 1: Camera chụp ảnh xe chứa biển số (Thu thập hình ảnh).
• Bước 2: Cơ lập biển số, điều chỉnh độ sáng và độ tương phản và phân đoạn nó thành các ký tự (Phát hiện biển số và phân đoạn ký tự).
• Bước 3: Mẫu của mỗi ký tự được phân tích để chuyển đổi hình ảnh thành văn bản (Nhận dạng ký tự).
<b>2.2.1 Thu thập hình ảnh </b>
Bước đầu tiên là cơng đoạn thu nhận hình ảnh. Hình ảnh của xe sẽ được chụp bằng camera. Yêu cầu cơ bản là hình ảnh của xe phải được chụp theo cách sao cho hình ảnh đầu vào phải có chứa hình ảnh của biển số. Hình ảnh thường được chụp trong mơ hình màu RGB (Đỏ, Xanh lục và Xanh lam). Hình ảnh được chụp bị ảnh hưởng bởi nhiều yếu tố như: hệ thống quang học, méo hình, nhiễu hệ thống, thiếu phơi sáng hoặc chuyển động quá mức của máy ảnh hoặc phương tiện, do đó làm giảm chất lượng hình ảnh biển xe do đó ảnh hưởng xấu đến kết quả xử lý hình ảnh tổng thể. Như một cơ chế để chỉnh sửa, công đoạn tiền xử lý ảnh được đưa vào để xử lý bất kỳ lỗi nào có thể xảy ra trong bước thu thập hình ảnh. Tiền xử lý ảnh chủ yếu liên quan đến việc chuyển đổi hình ảnh RGB thành màu xám, loại bỏ nhiễu và tăng cường đường viền cho độ sáng. Việc tiền xử lý ảnh thường được thực hiện thông qua lọc ảnh.
<b>2.2.2 Phát hiện biển số </b>
Phát hiện biển số tìm kiếm hình ảnh đầu vào, xác định hình ảnh nào có chứa biển số. Biển số có thể được tìm thấy ở bất cứ đâu trong một hình ảnh, phi thực tế khi kiểm tra tất cả các pixel của ảnh để xác định vị trí biển số. Vì vậy, chỉ tập trung vào những pixel có biển số.
<b>2.2.3 Phân đoạn ký tự </b>
Phân đoạn ký tự có thể được định nghĩa là một kỹ thuật, trong đó phân vùng hình ảnh chứa dịng hoặc cụm từ thành các ký tự riêng lẻ. Đây là quá trình tìm cách phân tách một hình ảnh chứa chuỗi ký tự thành các hình ảnh phụ chứa các biểu tượng riêng lẻ.
Phân đoạn ký tự là q trình mà thơng qua đó thành phần văn bản trong ảnh được cơ lập khỏi nền. Để nhận dạng văn bản diễn ra chính xác, dịng văn bản được phân đoạn đầu tiên, sau đó từ dịng được phân đoạn, ta phân đoạn các từ và sau đó là phân đoạn ký tự.
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18"><b>2.2.4 Nhận dạng ký tự </b>
Nhận dạng ký tự là quá trình phát hiện và nhận dạng các ký tự từ hình ảnh đầu vào và chuyển đổi nó thành văn bản ASCII có ý nghĩa (Mã tiêu chuẩn Mỹ cho trao đổi thông tin). Nhận dạng ký tự là quá trình phân loại ký tự đầu vào theo lớp ký tự được xác định trước.
<b>2.3.1 Nghiên cứu về phát hiện vùng biển số </b>
Bước phát hiện biển số ảnh hưởng rất lớn đến độ chính xác của các bước tiếp theo. Đầu vào là một hình ảnh khơng chứa, chứa một hoặc nhiều biển số xe và đầu ra chỉ là một phần của hình ảnh chỉ chứa biển số xe. Rất nhiều thuật toán đã được đề xuất trong những năm qua để giải quyết vấn đề đầy thách thức này. Độ chính xác đã được cải thiện trong những năm gần đây, nhưng việc xác định biển số xe trong hình ảnh được chụp từ một vị trí tùy ý với nhiều yếu tố ảnh hưởng đến q trình như chiếu sáng vẫn cịn là một thách thức. Cách tiếp cận vét cạn là xử lý mọi pixel trong ảnh khiến mất nhiều thời gian xử lý. Thay vào đó, cách tiếp cận phổ biến là sử dụng các đặc trưng nổi bật trong biển số xe và chỉ xử lý các pixel có các đặc trưng này giúp giảm đáng kể thời gian xử lý. Năm phương pháp chính sẽ được trình bày ở đây là: dựa trên cạnh, dựa trên màu sắc, dựa trên kết cấu, dựa trên ký tự và kết hợp hai hoặc nhiều phương pháp. Tóm tắt về ưu điểm và nhược điểm của từng phương pháp được nêu trong Bảng 1.
<b>Bảng 1 So sánh các phương pháp phát hiện vùng biển số </b>
<b>Phương pháp tiếp cận Ưu điểm Nhược điểm </b>
khi hình ảnh có nhiều cạnh và gặp sự cố khi hình ảnh bị mờ
hình ảnh nghiêng hoặc biến dạng
Kết quả hạn chế khi sử dụng một mình
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">Dựa trên cấu trúc Không phụ thuộc vào việc biển có hình dạng thơng thường hay khơng
Tính tốn phức tạp khi hình ảnh đầu vào có nhiều cạnh hoặc độ chiếu sáng khác nhau
xoay ảnh
Gặp sự cố khi hình ảnh chứa văn bản khác
Phương pháp tiếp cận dựa trên cạnh phát hiện biển số xe bằng cách khai thác thực tế là biển số xe có hình chữ nhật với tỷ lệ khung hình đã biết. Bằng cách sử dụng chuyển đổi màu giữa biển số và nền, ranh giới của biển số xe có thể được nhìn thấy. Các khu vực có mật độ cạnh cao được xem là biển số xe tiềm năng và cả phát hiện cạnh ngang và dọc có thể được thực hiện để đề xuất các khu vực ứng cử viên. Nhiều người chỉ sử dụng phát hiện cạnh dọc vì phát hiện cạnh ngang đã cho thấy lỗi cao hơn, vì các cạnh ngang của biển số xe có thể dễ dàng bị nhầm lẫn với các cạnh ngang của đầu xe. Hơn nữa, chỉ các hình chữ nhật có cùng tỷ lệ như biển số xe được xem xét để loại trừ các ứng viên và cải thiện kết quả chung. Tỷ lệ phát hiện được báo cáo là 99,7%. Biến đổi Hough cũng có thể được sử dụng để phát hiện biển số xe trong ảnh bằng cách phát hiện các đường thẳng. Ưu điểm của biến đổi Hough là nó có thể phát hiện các đường thẳng với độ nghiêng lên tới 30°. Tuy nhiên, đó là một q trình tiêu tốn thời gian và bộ nhớ.
Nói chung, các phương pháp dựa trên cạnh là cách đơn giản nhất và nhanh nhất để thực hiện phát hiện biển số xe. Tuy nhiên, nó gặp vấn đề khi hình ảnh đầu vào phức tạp. Nó có thể trả lại quá nhiều ứng cử viên nếu hình ảnh đầu vào chứa quá nhiều cạnh hoặc gặp vấn đề khi tìm biển số xe nếu hình ảnh bị mờ.
Phương pháp tiếp cận dựa trên màu sắc sử dụng màu sắc để phát hiện biển số xe. Biển số xe thường có màu khác so với nền và điều này có thể được sử dụng để tìm biển số. Sự kết hợp
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">màu sắc của biển số và các ký tự của nó hiếm khi được tìm thấy ở những nơi khác ngồi khu vực biển số. Một thuật toán di truyền được sử dụng để tìm hiểu cách nhận biết các kết hợp màu này. Bằng cách đào tạo trong các điều kiện chiếu sáng khác nhau, nó học được những màu sắc cần tìm. Với độ sáng trung bình của từng khu vực, nó có thể phân biệt khu vực biển số xe với các khu vực khác. Các tác giả báo cáo độ chính xác 92,8%. Thuật tốn dịch chuyển trung bình được sử dụng để phân vùng dựa trên các màu khác nhau. Và để tìm biển số xe trong khu vực ứng cử viên sau khi áp dụng thuật tốn đó, phương pháp dựa trên cạnh được sử dụng. Tỷ lệ phát hiện biển số xe là 97,6%. Thời gian thực hiện không được đề cập. Các phương pháp dựa trên màu thường được sử dụng kết hợp với các phương pháp khác, nhưng có thể được sử dụng một mình. Chúng khơng bị ảnh hưởng bởi biển số nghiêng hoặc biến dạng. Tuy nhiên, các phương pháp dựa trên màu sắc có thể có kết quả hạn chế khi được sử dụng một mình vì chúng chỉ xem xét điều kiện chiếu sáng.
Phương pháp tiếp cận dựa trên kết cấu sử dụng phân bố mật độ pixel độc đáo bên trong biển số xe để phát hiện biển trong hình ảnh. Các ký tự trên biển số tương phản với phần cịn lại của biển và có thể được phát hiện bằng các phương pháp dựa trên kết cấu khác nhau. Một phương pháp sử dụng cửa sổ trượt đồng tâm được đề xuất. Biển số xe được xem là một sự bất thường trong kết cấu của hình ảnh. Những thay đổi đột ngột trong kết cấu được sử dụng để phát hiện biển số xe tiềm năng. Một phương pháp kết hợp các cửa sổ trượt đồng tâm và biểu đồ, tăng độ chính xác được đề xuất.
Bởi vì cách tiếp cận dựa trên kết cấu không phụ thuộc vào biển số xe có hình dạng và hoạt động ngay cả khi ranh giới của biển số bị biến dạng, chúng có thể phát hiện nhiều hơn các đặc điểm màu sắc và cạnh. Nhược điểm với các phương pháp dựa trên kết cấu là chúng phức tạp về mặt tính tốn. Nếu hình ảnh đầu vào có nhiều cạnh hoặc độ chiếu sáng khác nhau, thời gian xử lý có thể cao.
Phương pháp tiếp cận dựa trên ký tự xử lý biển số xe dưới dạng chuỗi ký tự. Các phương pháp này kiểm tra hình ảnh cho sự hiện diện của các ký tự không. Các khu vực nơi các ký tự được tìm thấy được đề xuất là các khu vực tiềm năng có chứa biển số. Một mạng nơ-ron được sử dụng để phân loại các vùng trong hình ảnh dựa trên các vùng giống như ký tự và
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">biển số được phát hiện nếu tìm thấy sự kết hợp tuyến tính của các vùng giống như ký tự. Có người đưa phương pháp này tiến thêm một bước bằng cách phát hiện tất cả các ký tự trong ảnh bằng cách sử dụng mạng nơ-ron tích chập đầu ra 37 chiều (CNN) và sau đó sử dụng CNN mới để loại bỏ các kết quả false positive. Quá trình này khá chậm, tốn khoảng 5s cho mỗi hình ảnh, nhưng loại bỏ được bước phân đoạn ký tự.
Phương pháp tiếp cận dựa trên ký tự thường có tỷ lệ bỏ sót thấp và dễ dàng xử lý đối với các hình ảnh bị xoay. Tuy nhiên, các phương pháp này có thể gây ra lỗi cao khi tìm thấy văn bản khác trong ảnh. Các phương pháp cũng có xu hướng tốn thời gian.
Khi giá cả phải chăng, kết hợp nhiều tính năng là một cách hiệu quả để phát hiện biển số xe. mạng nơ-ron có thể phát hiện các biển số xe bằng cách huấn luyện để nhận biết vùng có biển số và vùng khơng có biển số. Có thể sử dụng hai mạng nơ-ron để thực hiện phát hiện biển số. Mạng nơ-ron đầu tiên phân tích màu sắc của biển số xe trong khi mạng nơ-ron thứ hai phân tích kết cấu. Đầu ra của hai mạng nơ-ron sau đó được kết hợp để tìm các khu vực ứng cử viên. Tỷ lệ phát hiện được trong báo cáo của họ ở mức 100% trên bộ dữ liệu chứa 1000 chuỗi video từ các cổng thu phí.
Các cách tiếp cận kết hợp hai hoặc nhiều tính năng thường đáng tin cậy và hiệu quả hơn các cách tiếp cận sử dụng một tính năng duy nhất. Tuy nhiên, các phương pháp phức tạp hơn về mặt tính tốn so với các phương pháp đơn tính năng.
<b>2.3.2 Nghiên cứu về phân đoạn ký tự </b>
Trước khi nhận dạng ký tự, thì ta cần thiết phải phân đoạn các ký tự. Thông thường tiền xử lý được thực hiện trước bước này để tránh các vấn đề gây ra bởi việc hình ảnh bị nghiêng hoặc thay đổi độ sáng trên hình ảnh. Về cơ bản, có 2 loại thuật tốn phù hợp chính: dựa trên quy chiếu và dựa trên kết nối của pixel. Cả hai đều yêu cầu hình ảnh đầu vào phải là hình ảnh nhị phân. Tóm tắt về ưu điểm và nhược điểm của từng phương pháp được nêu trong Bảng 2.
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22"><b>Bảng 2 So sánh các phương pháp phân đoạn ký tự </b>
<b>Phương pháp tiếp cận Ưu điểm Nhược điểm </b>
xoay ảnh
Yêu cầu kiến thức trước, nhạy cảm với thay đổi phông chữ và nhiễu ảnh hưởng đến kết quả
Dựa trên sự kết nối của pixel Đơn giản và dễ dàng để xoay ảnh
hỏng và liền với nhau
Các cách tiếp cận dựa trên phép quy chiếu dựa trên việc các ký tự và nền của biển số xe có các màu khác nhau nên sẽ cho các giá trị ngược nhau sau khi nhị phân ảnh. Hình ảnh nhị phân được chiếu theo chiều dọc để tìm vị trí bắt đầu và kết thúc của mỗi ký tự. Sau đó, hình ảnh được chiếu theo chiều ngang để phân đoạn từng ký tự. Điều này dẫn đến tỷ lệ phân đoạn là 97,5%.
Phương pháp chiếu dọc và ngang rất đơn giản và thường được sử dụng. Nó hoạt động độc lập với vị trí ký tự và hoạt động cả khi biển số xe hơi bị nghiêng. Tuy nhiên, nó địi hỏi kiến thức trước về các ký tự chữ và số khiến nó nhạy cảm với các thay đổi phông chữ. Nhiễu cũng ảnh hưởng đến kết quả.
Phương pháp tiếp cận dựa trên sự kết nối pixel thực hiện phân đoạn bằng cách gắn nhãn tất cả các pixel được kết nối trong hình ảnh nhị phân. Các pixel có các thuộc tính giống như các ký tự được coi là một phần của ký tự.
Phương pháp này là đơn giản và dễ dàng để xoay ảnh. Tuy nhiên, nó khơng phân đoạn chính xác khi các ký tự xuất hiện bị hỏng hoặc liền với nhau.
<b>2.3.3 Nghiên cứu về nhận dạng ký tự </b>
Bước cuối cùng là nhận ra từng ký tự đã được phân đoạn còn được gọi là nhận dạng ký tự
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">mỗi ký tự chữ và số. Tổng cộng có 36 lớp có thể khi phân tích hầu hết các biển số xe, 26 chữ cái và 10 chữ số. Các phương thức hiện có có thể được chia thành hai loại: phương pháp dựa trên khớp mẫu và phương pháp học tập. Tóm tắt về ưu điểm và nhược điểm của từng phương pháp được nêu trong Bảng 3.
<b>Bảng 3 So sánh các phương pháp nhận dạng ký tự </b>
<b>Phương pháp tiếp cận Ưu điểm Nhược điểm </b>
chữ và không thực hiện được khi ký tự bị nghiêng và mờ
Cách tiếp cận khớp mẫu rất đơn giản và hoạt động bằng cách so sánh sự giống nhau của ký tự và mẫu. Mẫu tương tự nhất với ký tự được chọn. Phương pháp mẫu này được sử dụng trên ảnh nhị phân. Một số biện pháp tương tự đã được đề xuất bao gồm khoảng cách Mahalanobis, giá trị Jaccard và khoảng cách Hamming. Tỷ lệ nhận dạng là khoảng 97,2%. Phương pháp khớp mẫu đơn giản, nhưng hạn chế. Nó u cầu một mẫu cho mỗi phơng chữ, với kích thước cố định và không hoạt động trên các ký tự nghiêng hoặc bị hỏng. Nó dễ bị nhiễu và chậm vừa phải vì nó xử lý nhiều pixel khơng quan trọng đối với tác vụ phân loại và so sánh nó với mọi mẫu.
Phương pháp tiếp cận dựa trên “học tập” sử dụng các kỹ thuật học máy để phân biệt các ký tự dựa trên một hoặc nhiều đặc trưng. Có thể sử dụng mạng nơ-ron để học cách phân biệt dựa trên mật độ hình ảnh. Một số kiến trúc CNN cũng hoạt động tốt với phương pháp này. CNN sử dụng nhiều đặc trưng và chúng không bắt buộc phải xác định trước các đặc trưng. Với một mơ hình CNN 9 lớp cho ta độ chính xác khi dự đốn là 97,6%.
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">Phương pháp này mạnh mẽ đối với mọi biến dạng và phần nhận dạng nhanh do có ít đặc trưng hơn pixel. Tuy nhiên, trích xuất đặc trưng cần có thời gian và nếu các đặc trưng khơng đúng được chọn, các sự cố có thể xảy ra. Cách tiếp cận dựa trên học tập phù hợp với đồ án này bằng cách sử dụng thuật toán KNN để giải quyết vấn đề nhận dạng ký tự.
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">Ta có thể quy bài tốn phát hiện biển số về bài toán phát hiện vật thể, với vật thể ở đây là biển số xe Việt Nam. Có rất nhiều phương pháp được đề xuất để giải quyết bài toán nhận diện vật thể. Sau đâu em xin giới thiệu và áp dụng phương pháp sử dụng kiến trúc YOLO (You Only Look Once) để nhận diện vật thể.
Khi bạn muốn phát hiện ra vật thể trong một bức ảnh, sau đó đánh nhãn cho vật thể đó, các phương pháp lúc bấy giờ quá chậm để phục vụ trong thời gian thực, hoặc đòi hỏi thiết bị mạnh mẽ, đắt đỏ... cho đến khi YOLO ra đời. YOLO có khả năng gán nhãn cho tồn bộ vật trong khung hình với chỉ duy nhất một lần thực thi.
YOLO là một trong những thuật toán nhận diện vật thể nhanh nhất thời điểm hiện tại. Mặc dù khơng phải là phương pháp chính có độ xác cao nhất nhưng Yolo vẫn là được ứng dụng rất nhiều trong những dự án thực tế khi mà độ chính xác khơng phải là ưu tiên hàng đầu. Những lợi thế của YOLO :
• "Hiểu" được khái quát về đại diện của mỗi đối tượng. Qua đó có thể phát hiện và phân loại chính xác vật thể trong đời thực và các tác phẩm hội hoạ.
• Gọn nhẹ • Mã nguồn mở • Nhanh
<b>3.1.1 Phân tích giải pháp YOLO </b>
YOLO chỉ dùng một mạng nơ-ron tích chập và áp dụng lên ảnh đầu vào một lần duy nhất để học các đặc trưng trên ảnh. Nó giống như là ta nhìn tồn thể bức ảnh và bắt đầu dị tìm các đối tượng trong nó. Do đó thế nên thời gian thực thi thuật toán của YOLO là rất nhanh (171 khung hình trên một giây với cấu trúc mạng Darknet-19) và có thể áp dụng cho các bài toán nhận dạng đối tượng trên các ứng dụng theo thời gian thực và video.
YOLO mơ hình bài toán nhận dạng đối tượng thành bài toán hồi quy trong miền không gian các rời rạc của các bounding box. Thuật toán chia nhỏ ảnh đầu vào thành lưới gồm S x S ô. Nếu tâm của đối tượng cần xác định rơi vào một ơ nào đó thì ô đó sẽ chịu trách nhiệm xác định đối tượng đó và bounding box của nó. Thuật tốn sử dụng một mạng nơ-ron đơn với đặc trưng có được từ các feature map của các lớp tích chập để dự đốn B bounding box ở mỗi ơ và xác suất loại đối tượng nào đang được chứa bên trong. Cuối cùng, ta sẽ có rất nhiều bounding box được thuật tốn đưa ra với kích thước khác nhau. Sử dụng thuật tốn Non-Maximum Suppresstion (NMS) ta có thể loại bỏ được hầu hết các bounding box là miền bao của cùng một đối tượng, có chỉ số score thấp và giữ lại các bounding box có score cao.
<b>Hình 2 Mơ hình YOLO </b>
<b>3.1.2 Cách hoạt động của Yolo </b>
Tại mỗi ơ sẽ có trách nhiệm xác định B bounding box có kích thước và tỉ lệ khác nhau, để bắt lấy các đối tượng cần xác định trong hình. Sau khi thuật toán được thực thi, mỗi bounding box sẽ được gán những confident rate. Chỉ số này phản ánh cho ta biết box có đang chứa một đối tượng nào hay không, với xác suất cụ thể. Thông thường, trong quá trình huấn luyện, confident rate thường được thiết lập với cơng thức sau:
𝐶𝑜𝑛𝑓𝑖𝑑𝑒𝑛𝑡_𝑟𝑎𝑡𝑒 = Pr(𝑜𝑏𝑗𝑒𝑐𝑡) × 𝐼𝑂𝑈<sub>89:;</sub><small><9=<></small>
Với 𝑃𝑟(𝑜𝑏𝑗𝑒𝑐𝑡) có giá trị trong khoảng [0, 1] thể hiện xác suất có một đối tượng được chứa bên trong bounding box đó. 𝐼𝑂𝑈<sub>89:;</sub><small><9=<></small>là giá trị Intersection Over Union (khái niệm của IoU được giới thiệu ở mục 3.1.4.d), là tỉ lệ trùng khớp của bounding box được dự đoán với bounding box thật sự (sau này ta gọi là ground-truth) của một đối tượng (được miêu tả ở
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">bằng 0. Trong thực tế, ta khơng có được ground-truth của vật thể nên trong quá trình kiểm thử chỉ số confident rate sẽ chỉ còn là xác suất 𝑃𝑟(𝑜𝑏𝑗𝑒𝑐𝑡).
<b>Hình 3 Biểu diễn cơng thức IOU </b>
Ở mỗi ô, để xác định được vị trí của các bounding box, thuật tốn phải tính được được 5 giá trị tương ứng cho mỗi box: 𝑏<sub>A</sub>,𝑏<sub>B</sub>,𝑏<sub>C</sub>,𝑏<sub>></sub>và confident rate. Giá trị (𝑏<sub>A</sub>, 𝑏<sub>B</sub>) là tọa độ của tâm điểm của box, 𝑏<sub>></sub> và 𝑏<sub>C</sub>lần lượt là chiều cao và chiều rộng của box. 4 giá trị 𝑏<sub>A</sub>,𝑏<sub>B</sub>,𝑏<sub>C</sub>, và 𝑏<sub>></sub>sẽ lần lượt được tính thơng qua 𝑡<sub>A</sub>,𝑡<sub>B</sub>,𝑡<sub>C</sub>, và 𝑡<sub>></sub> theo cơng thức sau:
𝑏<sub>A</sub> = 𝜎(𝑡<sub>A</sub>) + 𝑐<sub>A</sub>𝑏<sub>B</sub> = 𝜎G𝑡<sub>B</sub>H + 𝑐<sub>B</sub>𝑏<sub>C</sub> = 𝑝<sub>C</sub>𝑒<small><J</small>
𝑏<sub>></sub> = 𝑝<sub>></sub>𝑒<small><</small><sub>K</sub>
với kích thước ảnh đầu vào. (𝑐<sub>A</sub>, 𝑐<sub>B</sub>) là tọa độ trên trái của ô đang xét. Bốn tham số𝑡<sub>A</sub>,𝑡<sub>B</sub>,𝑡<sub>C</sub>,
bounding box sẽ được xác định dựa trên tọa độ của ơ đang xét và kích thước của anchor mặc
minh họa cho mối liên hệ giữa các tham số với nhau. Ở YOLO phiên bản 2 trở đi, các kích thước của anchor được thiết lập dựa trên kích thước của các đối tượng trong tập huấn luyện bằng thuật tốn gom nhóm k-means.
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28"><b>Hình 4 Minh họa cho mối liên hệ giữa các tham số </b>
Ngoài giá trị confident rate đã được nói đến ở trên, thuật tốn cần xác định cụ thể đối tượng
Cuối cùng, ta tổng hợp xác suất này với confident rate được nêu trên để tạo thành confident scores cho từng loại đối tượng (class).
𝐶𝑜𝑛𝑓𝑖𝑑𝑒𝑛𝑡_𝑠𝑐𝑜𝑟𝑒 = 𝑃𝑟(𝐶𝑙𝑎𝑠𝑠<sub>R</sub>|𝑂𝑏𝑗𝑒𝑐𝑡) × 𝑃𝑟(𝑂𝑏𝑗𝑒𝑐𝑡) × 𝐼𝑂𝑈<sub>89:;</sub><small><9=<></small>= 𝑃𝑟(𝐶𝑙𝑎𝑠𝑠<sub>R</sub>) × 𝐼𝑂𝑈<sub>89:;</sub><small><9=<></small>
Tóm lại, network được thiết kế để trả về một ma trận khối 3 chiều (tensor) có 𝑆 × 𝑆 × (𝐵 × 5 + 𝐶) giá trị, với C là số lượng đối tượng của bài tốn. Sau khi có được đầu ra này, ta sẽ có rất nhiều bounding box được đưa ra bởi mỗi ô. Tuy nhiên hầu hết trong số chúng đều có confident scores thấp hoặc cùng bao phủ một đối tượng trong ảnh. Vì thế ta cần phải loại bỏ hết các miền bao “dư thừa” này càng nhiều càng tốt. Các bước để chọn các bounding box của các đối tượng trong ảnh và loại các box dư thừa sẽ được trình bày ở phần dưới đây.
Để dễ dàng mơ tả q trình chọn các bounding box, ta giả sử số lượng bounding box mà mỗi cell cần xác định là bằng 2 (B=2), số lượng đối tượng là 20 (C=20) và S=7. Hình 5 mơ tả chi tiết các giá trị được lưu trong tensor trả ra từ mạng nơ-ron tích chập, bao gồm các tham số
</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29"><b>Hình 5 Giá trị lưu trong tensor trả về từ mạng CNN</b>
Đầu tiên, ta cần tính được vector của confident scores cho mỗi bounding box bằng tích confident rate của mỗi bounding box và vector xác suất Pr(〖Class〗_i│Object) (được mơ tả ở hình 6). Sau khi lần lượt tính được các vector của confident scores cho mỗi bounding box, ta có được một mảng các vector được mơ tả ở hình 7.
<b>Hình 6 Mơ tả vector confident scores cho mỗi bounding box</b>
</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30"><b>Hình 7 Mơ tả tồn bộ vector confident scores cho ảnh </b>
Kế tiếp, sau khi có được tồn bộ confident scores, ta bắt tay vào xét từng class để xem có đối tượng nào thuộc class này tồn tại trong ảnh đang xét hay không. Với mỗi class, ta lần lượt lấy những score tương ứng của class đó ở từng bounding box. Đồng thời ta loại bỏ những trường hợp có score thấp hơn một ngưỡng nhất định nào đó bằng cách gán 0 cho score đó. Mảng chứa score này sẽ được sắp xếp theo chiều giảm dần để có thể dễ dàng áp dụng thuật tốn NMS.
Ý tưởng của NMS rất đơn giản như sau:
<b>Bước 1: Ta lấy bounding box có score của class đang xét cao nhất làm chuẩn và cho rằng </b>
đây chính là bounding box của một đối tượng thuộc class đó có trong ảnh. Ta tạm gọi là box_max.
<b>Bước 2: Xét bounding box có score cao thứ nhì (score khác 0). Nếu chỉ số IOU của box </b>
đang xét và box_max lớn hơn 0.5, ta sẽ xem như 2 bounding box này đang bao phủ cho cùng một đối tượng nên chỉ giữ lại box có score cao hơn (box_max). Sau đó, score của box đang xét được gán về 0. Ngược lại, nếu chỉ số IOU của hai box này nhỏ hơn 0.5, ta sẽ giữ lại cả 2 bounding box. Trong hình 8, box_max hiện tại là box thứ 47, box thứ 20 có chỉ số IOU với box thứ 47 lớn hơn 0.5. Do đó, score của box thứ 47 là 0.3 sẽ được gán bằng 0.
<b>Bước 3: Lặp lại bước 2 với các bounding box có score thấp hơn (khác 0). Mục đích là để </b>
loại hết tất cả các bounding box đang bao phủ cùng một đối tượng với box_max.
<b>Bước 4: Sau khi loại hết cái box cùng bao phủ một đối tượng với box_max, ta tiến hành xét </b>
duyệt xét box có score khác 0 và khơng cùng bao phủ một đối tượng với các box_max trước
</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">đó, gán nó là box_max. Sau đó tiếp tục lặp lại bước 1 cho đến khi đảm bảo rằng các box còn lại chỉ bao phủ một đối tượng riêng biệt thuộc class đang xét.
<b>Hình 8 Mơ tả q trình xét score cho các class </b>
Sau khi áp dụng thuật toán NMS lên tất cả các class của bài toán, ta sẽ tiến hành xét duyệt các bounding box có score khác 0 lần cuối cùng. Trong YOLO, một bounding box chỉ có thể là miền bao cho chỉ một đối tượng vì thế chúng chỉ có thể là biểu diễn cho class có xác
box lần cuối cùng trước khi xuất ra kết quả ở hình 10.
</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32"><b>Hình 9 Mơ tả q trình xét duyệt bounding box</b>
<b>Hình 10 Kết quả sau khi duyệt bounding box </b>
</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33"><b>3.1.3 Kiến trúc mạng </b>
YOLO được cài đặt như một Convolutional Neural Network. Các convolution layer trích xuất feature từ ảnh, trong khi đó các fully connected layer sẽ dự đoán xác suất và toạ độ đầu ra.
<b>Hình 11 Kiến trúc mạng YOLO</b>
Yolo có 24 layer tích chợp và theo sau đó là 2 fully connected layer. Cho layer tích chập cuối đầu ra của nó là 1 tensor (7, 7, 1024). Rồi sau đó tensor sẽ được làm phẳng. Sử dụng 2 fully connected layers dưới dạng hồi quy tuyến tính, đầu ra của nó 7x7x30 tham số sẽ được đưa ra dưới hình dạng (7, 7, 30).
<b>3.1.4 Cách đánh giá mơ hình nhận diện vật thể </b>
Để đánh giá mơ hình nhận diện vật thể, người ta thường sử dụng chỉ số mAP (mean Average Precision) và IoU (Intersection over Union). Bên dưới đây sinh viên sẽ trình bày cụ thể các chỉ số đó có nghĩa là gì và được dùng như thế nào.
<b>Precision đo độ chính xác của dự đốn, hay nói cách khác là tỷ lệ phần trăm dự đoán của </b>
mơ hình là chính xác.
<b>Recall đo xem mơ hình có thực hiện tốt trong việc tìm tất cả các trường hợp chính xác khơng. </b>
Bên dưới là cơng thức để tính 2 giá trị precision và recall:
</div>