Phát hiện hợp nhất

Một phần của tài liệu HD3 trần ngọc tiến nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo (Trang 45 - 64)

Thống nhất các thành phần riêng biệt của phát hiện đối tượng thành một mạng nơ-ron duy nhất. Mạng của chúng tôi sử dụng các tính năng từ toàn bộ hình ảnh để dự đoán từng hộp giới hạn. Nó cũng dự đoán tất cả các hộp giới hạn trên tất cả các lớp

cho một hình ảnh đồng thời. Điều này có nghĩa là mạng của chúng tôi lý do toàn cầu hóa về hình ảnh đầy đủ và tất cả các đối tượng trong hình ảnh. Thiết kế YOLO cho phép đào tạo từ đầu đến cuối và tốc độ thời gian thực trong khi vẫn duy trì độ chính xác trung bình cao.

Hệ thống của chúng tôi chia hình ảnh đầu vào thành một lưới S × S. Nếu tâm của một đối tượng rơi vào một ô lưới, ô lưới đó có nhiệm vụ phát hiện đối tượng đó.

Mỗi ô lưới dự đoán các ô giới hạn B và điểm tin cậy cho các ô đó. Các điểm tin cậy này phản ánh mức độ tin cậy của mô hình rằng hộp chứa một đối tượng và cũng như nó cho rằng hộp đó dự đoán chính xác như thế nào. Về mặt chính thức, chúng tôi định nghĩa độ tin cậy là Pr(Object)*IOUPrTruthed . Nếu không có đối tượng nào tồn tại trong

ô đó, điểm tin cậy phải bằng không. Nếu không, chúng tôi muốn điểm tin cậy bằng với giao điểm qua liên hợp (IOU) giữa hộp dự đoán và giá trị cơ bản.

Mỗi ô giới hạn bao gồm 5 dự đoán: x, y, w, h và độ tin cậy. Các tọa độ (x, y) đại diện cho tâm của hộp so với các giới hạn của ô lưới. Chiều rộng và chiều cao (w, h) được dự đoán so với toàn bộ hình ảnh. Cuối cùng, dự đoán tin cậy đại diện cho IOU giữa hộp dự đoán và bất kỳ hộp chân lý cơ bản nào.

Mỗi ô lưới cũng dự đoán xác suất lớp có điều kiện C, Pr (Classi | Object). Các xác suất này được điều kiện hóa trên ô lưới có chứa một đối tượng. Chúng tôi chỉ dự đoán một bộ xác suất lớp trên mỗi ô lưới, bất kể số lượng ô B.

Tại thời điểm kiểm tra, chúng tôi nhân xác suất lớp có điều kiện và các dự đoán độ tin cậy của ô riêng lẻ, cung cấp cho chúng tôi điểm tin cậy theo lớp cụ thể cho mỗi hộp. Những điểm số này mã hóa cả xác suất xuất hiện của lớp đó trong hộp và mức độ phù hợp của hộp được dự đoán với đối tượng.

Pr Pr

Hình 2.29 Mô hình.

Hệ thống của chúng tôi phát hiện mô hình như một vấn đề hồi quy. Nó chia hình ảnh thành một lưới S × S và đối với mỗi ô lưới dự đoán các ô giới hạn B, độ tin cậy cho các ô đó và xác suất lớp C. Những dự đoán này được mã hóa dưới dạng tensor S × S × (B ∗ 5 + C).

Để đánh giá YOLO trên PASCAL VOC, chúng tôi sử dụng S = 7, B = 2. PASCAL VOC có 20 lớp được gắn nhãn nên C = 20. Dự đoán cuối cùng của chúng tôi là tensor 7 × 7 × 30. [15]

a, Thiết kế mạng

Chúng tôi thực hiện mô hình này như một mạng nơ-ron tích tụ và đánh giá nó trên bộ dữ liệu phát hiện PASCAL VOC. Các lớp tích tụ ban đầu của mạng trích xuất các tính năng từ hình ảnh trong khi các lớp được kết nối đầy đủ dự đoán xác suất và tọa độ đầu ra.

Kiến trúc mạng của chúng tôi được lấy cảm hứng từ mô hình GoogLeNet để phân loại hình ảnh. Mạng của chúng tôi có 24 lớp phức hợp theo sau là 2 lớp được kết nối đầy đủ. Thay vì các mô-đun khởi đầu được sử dụng bởi GoogLeNet, chúng tôi chỉ sử dụng các lớp giảm 1 × 1, tiếp theo là các lớp tích chập 3 × 3, tương tự như Lin và cộng sự. Mạng đầy đủ được hiển thị trong Hình 2.20.

Chúng tôi cũng đào tạo một phiên bản nhanh của YOLO được thiết kế để đẩy ranh giới của việc phát hiện đối tượng nhanh. Fast YOLO sử dụng mạng nơ-ron với ít

lớp phức hợp hơn (9 thay vì 24) và ít bộ lọc hơn trong các lớp đó. Ngoài quy mô của mạng, tất cả các thông số đào tạo và kiểm tra đều giống nhau giữa YOLO và Fast YOLO.

Hình 2.30 Kiến trúc.

Mạng phát hiện của chúng tôi có 24 lớp phức tạp theo sau là 2 lớp được kết nối đầy đủ. Các lớp chập 1 × 1 xen kẽ làm giảm không gian đối tượng từ các lớp trước đó. Chúng tôi sắp xếp trước các lớp phức hợp trong nhiệm vụ phân loại ImageNet ở một nửa độ phân giải (hình ảnh đầu vào 224 × 224) và sau đó tăng gấp đôi độ phân giải để phát hiện

Kết quả cuối cùng trong mạng của chúng tôi là hàng chục dự đoán 7 × 7 × 30. b, Đào tạo

Chúng tôi chuẩn bị trước các lớp phức hợp của mình trên tập dữ liệu cạnh tranh 1000 lớp ImageNet. Để đào tạo trước, chúng tôi sử dụng 20 lớp phức hợp đầu tiên từ Hình 2.20, tiếp theo là một lớp gộp trung bình và một lớp được kết nối đầy đủ. Chúng tôi đào tạo mạng này trong khoảng một tuần và đạt được độ chính xác của crop top 5 là 88% trên bộ xác thực ImageNet 2012, có thể so sánh với các mô hình GoogLeNet trong Caffe’s Model Zoo.

Sau đó, chúng tôi chuyển đổi mô hình để thực hiện phát hiện. Ren và cộng sự. cho thấy rằng việc thêm cả hai lớp phức hợp và lớp kết nối vào mạng được sàng lọc trước có thể cải thiện hiệu suất [28]. Theo ví dụ của họ, chúng tôi thêm bốn lớp tích chập và hai lớp được kết nối đầy đủ với các trọng số được khởi tạo ngẫu nhiên. Việc

phát hiện thường yêu cầu thông tin hình ảnh chi tiết nên chúng tôi tăng độ phân giải đầu vào của mạng từ 224 × 224 lên 448 × 448.

Lớp cuối cùng là dự đoán cả xác suất lớp và tọa độ hộp giới hạn. Chúng tôi chuẩn hóa chiều rộng và chiều cao của hộp giới hạn bằng chiều rộng và chiều cao của hình ảnh sao cho chúng nằm trong khoảng từ 0 đến 1.

Chúng tôi tham số hóa các tọa độ x và y của hộp giới hạn thành các hiệu số của một vị trí ô lưới cụ thể để chúng cũng được giới hạn từ 0 đến 1. Chúng tôi sử dụng chức năng kích hoạt tuyến tính cho lớp cuối cùng và tất cả các lớp khác sử dụng kích hoạt tuyến tính chỉnh lưu rò rỉ sau:

, 0 ( ) 0.1 , x ifx x x otherwise  =   

Tối ưu hóa cho lỗi tổng bình phương trong đầu ra của mô hình đưa ra trước đó. Sử dụng lỗi tổng bình phương vì nó dễ dàng chọn, tuy nhiên nó không hoàn toàn phù hợp với mục tiêu tối đa hóa độ chính xác trung bình của chúng tôi. Nó cân bằng lỗi bản địa hóa với lỗi phân loại có thể không lý tưởng. Ngoài ra, trong mọi hình ảnh, nhiều ô lưới không chứa bất kỳ đối tượng nào. Điều này đẩy điểm "độ tin cậy" của các ô đó về 0, thường áp đảo gradient từ các ô có chứa các đối tượng. Điều này có thể dẫn đến sự không ổn định của mô hình, khiến việc đào tạo bị lệch hướng từ rất sớm.

Để khắc phục điều này, chúng tôi tăng tổn thất từ các dự đoán tọa độ hộp giới hạn và giảm tổn thất từ các dự đoán về độ tin cậy cho các hộp không chứa đối tượng. Chúng tôi sử dụng hai tham số, λcoord và λnoobj để thực hiện điều này. Chúng tôi đặt λcoord = 5 và λnoobj = .5.

Sai số tổng bình phương cũng có trọng số như nhau trong các hộp lớn và hộp nhỏ. Chỉ số lỗi của chúng tôi phải phản ánh rằng các sai lệch nhỏ trong các hộp lớn ít quan trọng hơn trong các hộp nhỏ. Để giải quyết một phần vấn đề này, chúng tôi dự đoán căn bậc hai của chiều rộng và chiều cao của hộp giới hạn thay vì trực tiếp chiều rộng và chiều cao.

YOLO dự đoán nhiều ô giới hạn trên mỗi ô lưới. Tại thời điểm đào tạo, chúng tôi chỉ muốn một bộ dự đoán hộp giới hạn chịu trách nhiệm cho mỗi đối tượng. Chúng tôi chỉ định một dự đoán chịu trách nhiệm “dự đoán” một đối tượng dựa trên dự đoán

nào có IOU hiện tại cao nhất với sự thật cơ bản. Điều này dẫn đến sự chuyên biệt hóa giữa các yếu tố dự đoán hộp giới hạn. Mỗi công cụ dự đoán trở nên tốt hơn trong việc dự đoán các kích thước, tỷ lệ khung hình hoặc các lớp đối tượng nhất định, cải thiện khả năng thu hồi tổng thể. Trong quá trình đào tạo, chúng tôi tối ưu hóa những điều sau đây, nhiều phần loss function.

c, Suy luận

Cũng giống như trong đào tạo, việc dự đoán các phát hiện cho một hình ảnh thử nghiệm chỉ yêu cầu một đánh giá mạng. Trên PASCAL VOC, mạng dự đoán 98 hộp giới hạn cho mỗi hình ảnh và xác suất lớp cho mỗi hộp. YOLO cực kỳ nhanh tại thời điểm thử nghiệm vì nó chỉ yêu cầu một đánh giá mạng duy nhất, không giống như các phương pháp dựa trên trình phân loại.

Thiết kế lưới thực thi đa dạng không gian trong các dự đoán hộp giới hạn. Thông thường, nó rõ ràng là một ô lưới mà một đối tượng rơi vào và mạng chỉ dự đoán một ô cho mỗi đối tượng. Tuy nhiên, một số vật thể lớn hoặc vật thể gần đường viền của nhiều ô có thể được bản địa hóa tốt bởi nhiều ô. Có thể sử dụng phương pháp triệt tiêu không cực đại để sửa nhiều lần phát hiện này. Mặc dù không quan trọng đối với hiệu suất như đối với R-CNN hoặc DPM, nhưng sự triệt tiêu không tối đa sẽ tăng thêm 2-3% trong mAP.

2.3.2.2. Anchor box

Để tìm được hộp giới hạn cho vật thể, YOLO sẽ cần các anchor box làm cơ sở ước lượng. Những anchor box này sẽ được xác định trước và sẽ bao quanh vật thể một cách tương đối chính xác. Sau này thuật toán hồi quy sẽ tinh chỉnh lại anchor box để tạo ra các hộp giới hạn dự đoán cho vật thể. Trong một mô hình YOLO:

Mỗi một vật thể trong hình ảnh huấn luyện được phân bố về một anchor box. Trong trường hợp có từ 2 anchor boxes trở lên cùng bao quanh vật thể thì ta sẽ xác định anchor box mà có IoU với hộp giới hạn đúng của đối tượng là cao nhất.

Hình 2.31 Ví dụ về Anchor box

Xác định anchor box cho một vật thể. Từ cell i ta xác định được 3 anchor box viền xanh như trong hình. Cả 3 anchor box này đều giao nhau với hộp giới hạn của vật thể. Tuy nhiên chỉ anchor box có đường viền dày nhất màu xanh được lựa chọn làm anchor box cho vật thể bởi nó có IoU so với hộp giới hạn đúng của đối tượng là cao nhất.

Mỗi một vật thể trong hình ảnh huấn luyện được phân bố về một cell trên feature map mà chứa điểm mid point của vật thể.

Như vậy khi xác định một vật thể ta sẽ cần xác định 2 thành phần gắn liền với nó là (cell, anchor box). Không chỉ riêng mình cell hoặc chỉ mình anchor box.

Một số trường hợp 2 vật thể bị trùng tâm, mặc dù rất hiếm khi xảy ra, thuật toán sẽ rất khó xác định được lớp cho chúng. Thuật toán sẽ cần những lượt tính toán phụ để quyết định đâu là lớp cho cell.

Hình 2.32 Trường hợp 2 anchor box bị trùng tâm

2.3.2.3. Dự đoán hộp giới hạn

Cho một anchor box có kích thước (pw, ph) tại ô nằm trên feature map với góc trên cùng bên trái của nó là (cx, cy), mô hình dự đoán 4 tham số (tx, ty, tw, th) trong

đó hai tham số đầu độ lệch so với góc trên cùng bên trái của ô và 2 tham số sau tỷ lệ là tỷ lệ so với anchor box. Và các tham số này sẽ giúp xác định hộp giới hạn dự đoán có tâm (bx, by) và kích thước (bw, by) thông qua hàm sigmoid và hàm exponential như sau: ( ) ( ) x x x y y y tw w w tw h h b t c b t c b p e b p e   = + = + = = (2.4)

Ngoài ra do các tọa độ đã được hiệu chỉnh theo chiều dài và chiều rộng của bức ảnh nên luôn có giá trị nằm trong ngưỡng [0, 1]. Do đó khi áp dụng hàm sigmoid giúp ta giới hạn được tọa độ không vượt quá xa các ngưỡng này.

Hình 2.33 Công thức ước lượng hộp giới hạn từ anchor box [2 0 ]

Cách hoạt động của thuật toán YOLO:

Thuật toán YOLO là một thuật toán dựa trên hồi quy. Nó dự đoán xác suất lớp của đối tượng và các hộp giới hạn sẽ xác định vị trí của từng đối tượng cho toàn bộ hình ảnh. Các hộp giới hạn của đối tượng được biểu diễn như sau:

Hình 2.34 Dự đoán hộp giới hạn

YOLO lấy đầu vào là các hình ảnh và sau đó chia nó thành các lưới SxS. Sau đó sử dụng kỹ thuật phân loại hình ảnh và bản địa hóa đối tượng được áp dụng cho mỗi lưới của hình ảnh và mỗi lưới có một nhãn. Tiếp theo, thuật toán YOLO sẽ kiểm tra mọi lưới để xác định đối tượng, nhãn và hộp giới hạn của đối tượng. Đối với các ô lưới không có đối tượng thì nhãn của lưới sẽ được mặc định bằng 0. Với mỗi lưới có nhãn được định nghĩa là S×S thường có 8 giá trị và được biểu diễn dưới dạng vecto như sau: 1 2 ... c x y w h P B B B B C C                           Trong đó: c

Plà xác suất dự báo vật thể xuất hiện trong hộp giới hạn, nếu có tồn tại đối tượng thì Pc sẽ có giá trị là 1 ngược lại không có đối tượng sẽ nhận giá trị là 0.

x

B , Bylà tọa độ tâm của hộp giới hạn.

w

B , Bh là chiều rộng và chiều cao của hộp giới hạn.

1

Việc phát hiện được thực hiện trên ba lớp riêng biệt, có kích thước đầu vào (chiều rộng và chiều cao) là 13x13, 26x26 và 52x52. Việc phát hiện đối tượng được thực hiện ở 3 quy mô khác nhau giải quyết vấn đề của kiến trúc mạng thần kinh YOLO cũ hơn, việc phát hiện các đối tượng nhỏ. Các bộ căng đầu ra từ các lớp phát hiện đó có cùng chiều rộng và chiều cao với đầu vào của chúng, nhưng độ sâu được định nghĩa là: [16]

(4 1 ) 3

depth= + +classprobabilities x (2.5)

Trong đó: 4 là số thuộc tính hộp giới hạn như chiều rộng (bw), chiều cao (bh), vị trí x và y của hộp (bx, by) bên trong hình ảnh, 1 là xác suất hộp chứa đối tượng có thể phát hiện (pc) và xác suất lớp cho mỗi lớp (c1, c2… c5). Tổng đó được nhân với 3, vì mỗi ô bên trong lưới có thể dự đoán 3 ô giới hạn. Là đầu ra từ mạng, nhận được 10647 dự đoán hộp giới hạn. [16]

Hình 2.35 Ví dụ về lưới 3×3

Hình 2.36 Ô thứ nhất trong ví dụ lưới 3×3

Hình 2.22 là một ô trong lưới 3×3, vì không có đối tượng nào thích hợp nên giá trị Pc sẽ bằng 0 còn các giá trị còn lại không quan trọng và được biểu diễn như sau:

0 ? ? ? ? ?                   Hình 2.37 Là một ô khác trong ví dụ về lưới 3×3

Trong hình 2.23 này có xuất hiện của một đối tượng phù hợp nên giá trị của Pc lúc này sẽ là 1 và C2 sẽ nhận giá trị bằng 1 vì C2 là lớp đối tượng ô tô và được biểu diễn bằng vecto như sau:

1 0 1 x y w h B B B B                      

Nhưng trong thực tế thì sẽ có trường hợp là nhiều hơn hai lưới có cùng một đối tượng.

Để biết được chính xác đối tượng ở đâu, chúng ta có thể sử dụng hai phương pháp sau:

• Intersection over Union (IOU) • Non-Max Suppression

2.3.2.4. IOU

IOU (Intersection Over Union) là hàm đánh giá độ chính xác của object detector trên tập dữ liệu cụ thể. IoU đơn giản chỉ là một chỉ số đánh giá. Mọi thuật

toán có khả năng dự đoán ra các bounding box làm output đều có thể được đánh giá

Một phần của tài liệu HD3 trần ngọc tiến nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo (Trang 45 - 64)

Tải bản đầy đủ (PDF)

(120 trang)