Chương 1 trình bày, giới thiệu về bài toán dò tìm và nhận dạng biển số xe tự động ALPR hoặc ANPR. ALPR đã được nghiên cứu và phát triển thành các sản phẩm thương mại và đưa vào ứng dụng trong thực tiễn. Tuy nhiên, những tiến bộ gần đây của công nghệ mạng học sâu, mạng nhân chập đã đẩy độ chính xác, tính bền vững của hệ thống ALPR lên một cấp độ mới. Do vậy, các nghiên cứu hiện đại về bài toán ALPR hiện đang thu hút sự quan tâm của các nhà nghiên cứu.
Chương 1 cũng cung cấp tổng quan thông tin về các loại đặc trưng biển số xe tại Việt Nam và trên thế giới, cung cấp một số thông tin về các hệ thống ALPR thương mại tại Việt Nam. Trong phần tiếp theo, chúng tôi sẽ trình bày có hệ thống các giải pháp công nghệ và nghiên cứu liên quan trong lĩnh vực này, đặc biệt chú trọng đến những tiến bộ gần đây của công nghệ mạng học sâu (Deep Learning). TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU 2. Các phương pháp dò tìm đối tượng tổng quát Dò tìm biển số xe là một trường hợp đặc biệt của bài toán dò tìm đối tượng (General Object Detection).
Vì vậy, các thuật toán dò tìm đối tượng tổng quát có thể áp dụng. Trong phần này chúng tôi trình bày, phân tích đánh giá một số hệ thống dò tìm đối tượng tổng quát dựa trên mạng nơ ron nhân chập CNN (Convolutional Neuron Network). Thuật toán R-CNN [13] Thuật toán R-CNN được đề xuất trong [13] gồm các bước như mô tả trên Hình 2.1, cụ thể: - Bước 1 (Sinh các vùng tiềm năng): các ảnh đầu vào được đưa qua một thuật toán phân vùng để sinh ra khoảng 2000 vùng tiềm năng. - Bước 2 (Trích chọn đặc trưng): mỗi vùng tiềm năng sẽ đưa vào một mạng CNN để trích chọn các đặc trưng trực quan.
- Bước 3 (Phân lớp): Sử dụng một bộ phân lớp chuẩn (SVM) để phân loại các vector đặc trưng thành các đối tượng khác nhau. Ở bước 1, thuật toán tìm kiếm có chọn lọc (Selective Search [16]) được áp dụng để sinh ra các vùng ứng viên. Thuật toán này sử dụng nhiều đặc trưng mức thấp (màu sắc, texture,…) để phân cụm điểm ảnh thành các nhóm khác nhau và sau đó sử dụng một thuật toán gộp để hình thành các vùng ứng cử viên. Ở bước 2, các tác giả sử dụng một mạng CNN (AlexNet [17]) để trích chọn các vector đặc trưng CNN (có 4096 chiều) từ vùng ảnh đầu vào (được chuẩn hóa về kích thước 227 × 227).
Trong bước cuối, các tác giả huấn luyện bộ phân lớp SVM để phân loại nhãn của các đối tượng. Kết quả thực nghiệm cho thấy R- CNN tạo ra độ chính xác dò tìm đối tượng khá tốt tại thời điểm giới thiệu nhưng nhược điểm chính của nó liên quan đến độ phức tạp tính toán khá cao. Kiến trúc hệ thống R-CNN [13]. Thuật toán Fast R-CNN [14] Để giảm độ phức tạp tính toán của R-CNN, các tác giả trong [14] đề xuất hệ thống Fast R-CNN trong đó tập trung khai thác ý tưởng tính toán dùng chung (Hình 2.
Fast R-CNN vẫn áp dụng thuật toán Selective Search để sinh ra các vùng ứng viên. Tuy nhiên, các vùng ứng viên này sẽ không được đưa vào mạng CNN một cách độc lập để học các đặc trưng. Thay vì vậy, quá trình trích chọn các đặc trưng chỉ được thực hiện một lần bằng cách cho ảnh đầu vào qua một mạng CNN (các tác giả sử dụng mạng VGG16 [18] thay cho AlexNet). Sau khi thu được ma trận đặc trưng từ mạng VGG16 trên ảnh đầu vào, các vùng ứng viên sẽ được ánh xạ vào ma trận đặc trưng để tự động nhận được vùng đặc trưng quan tâm RoI (Regions of Interest).
Các vùng RoI này được chuẩn hóa về kích thước cố định bằng tầng RoI Pooling. Giả sử mỗi RoI có kích thước 𝑚𝑛, tầng RoI Pooling sẽ áp dụng phép toán Max Pooling để rút gọn kích thước không gian về các bản đồ đặc trưng có kích thước cố định là 77. Các bản đồ đặc trưng này sau đó được đưa vào một mạng CNN kết nối đầy đủ FC (Fully Connected) và có 2 nhánh đầu ra. Một nhánh sử dụng hàm Softmax để dự đoán nhãn của đối tượng (có K + 1 nhãn cho K đối tượng và nền).
Một nhánh sử dụng hàm mục tiêu hồi quy để nội suy tọa độ của đối tượng dưới dạng hình hộp chữ nhật (Bounding Box). Mặc dù kết quả thu được tốt hơn đáng kể so với R-CNN về thời gian xử lý, nhưng thời gian tính toán của Fast R-CNN vẫn khá cao do độ phức tạp của thuật toán tìm kiếm chọn lọc. Kiến trúc hệ thống Fast R-CNN [14]. Thuật toán Faster R-CNN [15] Các tác giả trong Faster R-CNN [15] tiếp tục cải tiến Fast R-CNN để rút gọn thời gian dò tìm đối tượng.
Cụ thể, Faster R-CNN loại bỏ hoàn toàn thuật toán Selective Search. Thay vào đó, để sinh ra các vùng tiềm năng, Faster R- CNN đề xuất một kiến trúc mạng CNN mới có tên là Region Proposal Network (RPN). Mạng RPN (Hình 2.3) được xây dựng từ một số tầng CNN (được kết hợp để dùng chung/tích hợp với kiến trúc mạng dùng trong Fast R-CNN), nhận đầu vào ảnh đầu vào và tạo ra một bản đồ đặc trưng. Tại mỗi ô trên bản đồ đặc trưng, các tác giả sẽ sử dụng một tập K hộp neo (anchor box) để sinh ra các vùng ứng viên.
Các anchor khác nhau về kích thước, tỉ lệ để mô phỏng các hình dạng khác nhau của đối tượng. Kiến trúc mạng RPN [15]. Mỗi anchor được biểu diễn một hình chữ nhật và được mô tả bởi 4 tham số: top, left, right, bottom. Các anchor được sinh ra tại các cell của feature maps.
Giả sử tại mỗi vị trí của bản đồ đặc trưng, chúng ta sử dụng K anchors, khi đó mạng RPN sẽ có hai nhánh đầu ra song song nhau, một nhánh dùng để nội suy tọa độ của đối tượng và có tổng 4K đầu ra (mỗi anchor sẽ có 4 giá trị top, left, right, bottom). Một nhánh còn lại sẽ có 2K đầu ra dự đoán nhãn của đối tượng ở dạng: object or background (chỉ xem xét 2 nhãn là đối tượng hay nền). Trong bài báo, các tác giả chọn K=9 và sinh ra khoảng 2400 vùng ứng viên cho mỗi ảnh đầu vào. Các vùng ứng viên được sinh ra bởi mạng RPN tiếp tục được xử lý tương tự như quy trình của Fast R-CNN để tiếp tục dự đoán nhãn chính xác của đối tượng và tiếp tục làm mịn tọa độ chính xác của đối tượng (Hình 2.
Kiến trúc tổng thể của Faster R-CNN [15]. Chi tiết về các hàm mục tiêu được sử dụng trong Faster R-CNN, các tác giả áp dụng có 2 hàm loại hàm mục tiêu. Một hàm dùng để điều khiển quá trình nội suy tọa độ của đối tượng được gọi là RegressionLoss. Một hàm dùng để dự đoán nhãn của đối tượng được gọi là Classification Lozss.
- Các ký hiệu tên biến dùng trong hàm mục tiêu: + [x, y, w, h]: tọa độ của box dự đoán (bp ) + [x ∗ , y ∗ , w ∗ , h∗ ]: tọa độ của box groundtruth (bg ) + 𝑤𝑎 , ℎ𝑎 , (𝑥𝑎 , 𝑦𝑎 ): tọa độ của anchor box (hộp neo). + t p , t g là các tọa độ sau khi chuyển đổi của bp và bg : (𝑥−𝑥𝑎 ) 𝑦 (𝑦−𝑦𝑎 ) 𝑡𝑝𝑥 = , 𝑡𝑝 = , 𝑡𝑝𝑤 = log(𝑤/𝑤𝑎 ), 𝑡𝑝ℎ = log(ℎ/ℎ𝑎 ) 𝑤𝑎 ℎ𝑎 (𝑥 ∗ −𝑥𝑎 ) 𝑦 (𝑦 ∗ −𝑦𝑎 ) 𝑡𝑔𝑥 = , 𝑡𝑔 = , 𝑡𝑔𝑤 = log(𝑤 ∗ /𝑤𝑎 ), 𝑡𝑔ℎ = log(ℎ∗ /ℎ𝑎 ) 𝑤𝑎 ℎ𝑎 * RegressionLoss: Gọi Apos = {tập tất cả positive anchors của mọi ảnh trong một batch (vd: một batch là 16, 32, hoặc 64)}. Công thức hàm mục tiêu hàm nội suy tọa độ (𝐿𝑟𝑒𝑔 ) được tính như sau: 16 𝐿𝑟𝑒𝑔 (𝑡𝑔 , 𝑡𝑝 ) = ∑ smooth𝐿1 (𝑡𝑔𝑖 , 𝑡𝑝𝑖 ) 𝑖∈𝐴𝑝𝑜𝑠 Trong đó: Smooth-L1 được định nghĩa như sau: Như vậy, nếu tại mỗi ô (cell) của Feature Map (bản đồ đặc trưng), thuật toán sử dụng nhiều hơn một anchor box với các kích thước khác nhau, tỉ lệ khác nhau thì các tọa độ của bp cũng sẽ được biến đổi theo. Mỗi hộp neo sẽ được dùng để nội suy ra một bp phù hợp với kích thước (size), tỉ lệ (scale ratio), và vị trí của hộp neo đó.
Vai trò của các hộp neo chỉ ở sự chuyển đổi giữa bp , bg thành t p , t g. Thông tin hữu ích nhất của hộp neo liên quan đến quá trình nội suy vị trí là các chiều dài(width) và chiều cao (height) của nó (để đạt được mục tiêu bât biến với sự thay đổi về kích thước ảnh/đối tượng). Ngoài ra, do các hộp neo được sinh ra tại mỗi ô của Feature Map nên thuật toán cũng có tính chất bất biến với các thay đổi về vị trí của đối tượng. * Classification Loss: được tính trên hai tập hộp neo: positive (Apos) và negative (Aneg).
Chú ý, có thể có các hộp neo không là positive và không là negative. Gọi Acls = Apos Aneg: của mọi ảnh trong một batch, hàm mục tiêu phân loại (𝐿𝑐𝑙𝑠 ) được đính nghĩa như sau (sử dụng hàm Cross Entropy): 𝐿𝑐𝑙𝑠 (𝑐𝑔 , 𝑐𝑝 ) = 𝐻(𝑐𝑔 , 𝑐𝑝 ) = − ( ∑ 𝑐𝑔𝑖,0 × log(𝑐𝑝𝑖,0 ) + 𝑐𝑔𝑖,1 × log(𝑐𝑝𝑖,1 )) 𝑖∈𝐴𝑐𝑙𝑠 Trong đó: + 𝑐𝑔𝑖,0 , 𝑐𝑔𝑖,1 : nhãn của hộp neo thứ (i) (ký hiệu: anchor_i). Các nhãn là nhị phân, là Object hoặc Not-Object. Hơn nữa, chú ý rằng:𝑐𝑔𝑖,0 = 1nếu anchor_i là postive, 0 ngược lại.
Tương tự:𝑐𝑔𝑖,1 = 1 if anchor_i là negative, 0 ngược lại. 17 + 𝑐𝑝𝑖,0 , 𝑐𝑝𝑖,1 : là các xác suất biểu diễn anchor_i làObject hoặc Not-Object: 𝑐𝑝𝑖,0 + 𝑐𝑝𝑖,1 =1. Kết hợp các thông tin trên, ta có công thức hàm 𝐿𝑐𝑙𝑠 được tính như sau: 𝐿𝑐𝑙𝑠 (𝑐𝑔 , 𝑐𝑝 ) = − ( ∑ log(𝑐𝑝𝑖,0 ) + ∑ log(𝑐𝑝𝑖,1 )) 𝑖∈𝐴𝑝𝑜𝑠 𝑖∈𝐴𝑛𝑒𝑔 Nhận xét: từ công thức này, chúng ta thấy nếu số lượng các mẫu negative nhiều quá sẽ lấn át các mẫu positive, dẫn đến việc học bị lệch. Do vậy, việc áp dụng Hard negative mining là rất cần thiết để cân bằng hai phân bố dữ liệu học: positive và negative.
Công thức tổng hợp hai hàm mục tiêu sẽ là: 𝑛0 𝐿𝑐𝑙𝑠 (𝑐𝑔 , 𝑐𝑝 ) + 𝑛1 𝐿𝑟𝑒𝑔 (𝑡𝑔 , 𝑡𝑝 ) 𝐿(𝑐𝑔 , 𝑐𝑝 , 𝑡𝑔 , 𝑡𝑝 ) = 𝑁 Trong đó: + 𝑛0 , 𝑛1 là các trọng số gán cho mỗi loại hàm mục tiêu. + 𝑡𝑝 , 𝑡𝑔 : tọa độ của box dự đoán và box groundtruth sau khi chuyển đổi tương đối so với các hộp neo (anchor box). + 𝑐𝑝 , 𝑐𝑔 : nhãn dự đoán và nhãn groundtruth.