1. Trang chủ
  2. » Luận Văn - Báo Cáo

Safety Clothes Detection on Raspberry Pi 3 using yolo tiny

48 313 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 48
Dung lượng 1,17 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thực hiện hệ thống giám sát trên thời gian thực để nhận diện bảo hộ lao động sử dụng raspberry pi 3, mô hình dectect là yolov3 tiny với độ chính xác trên 70%. Hệ thống phát hiện người không thực hiện bảo hộ lao động và phát ra cảnh báo qua loa

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ

BỘ MÔN VIỄN THÔNG

-o0o -

BÁO CÁO BÀI TẬP LỚN

HỆ THỐNG GIÁM SÁT ĐỒNG PHỤC BẢO HỘ LAO ĐỘNG SỬ DỤNG MÔ HÌNH MẠNG YOLO

Giáo viên hướng dẫn

Sinh viên thực hiện 1

2

3

4

Trang 2

2

MỤC LỤC CHƯƠNG 1 GIỚI THIỆU HỆ THỐNG GIÁM SÁT ĐỒNG PHỤC BẢO HỘ LAO

ĐỘNG 4

1.1 Tính cấp thiết của đề tài 4

1.2 Tình hình nghiên cứu trong và ngoài nước 6

1.3 Đối tượng và phạm vi nghiên cứu 8

1.3.1 Đối tượng 8

1.3.2 Phạm vi nghiên cứu 8

1.4 Nhiệm vụ của đề tài 8

CHƯƠNG 2 KIẾN TRÚC YOLO VÀ MẠNG YOLOV3 9

2.1 Mô hình mạng YOLO 9

2.2 Kiến trúc YOLOV3 15

2.3 Kiến trúc YOLOv3 tiny 22

CHƯƠNG 3 THIẾT LẬP VÀ KẾT NỐI RASPBERRY PI 3 24

3.1 Giới thiệu về Raspberry Pi 3 model B+ 24

3.2 Thiết lập và kết nối RPI 27

3.2.1 Cài đặt hệ điều hành cho RPI 27

4.2.2 Kết nối với RPI 27

CHƯƠNG 4 NHẬN DIỆN ĐỒNG PHỤC BẢO HỘ LAO ĐỘNG TRÊN RASPBERRY PI 3 29

4.1 Xây dựng tập dữ liệu cho bài toán nhận diện đồ bảo hộ lao động 29

4.1.1 Xác định yêu cầu bài toán 29

4.1.2 Thu thập dữ liệu và gán nhãn 30

4.2 Huấn luyện mô hinh YOLO tiny trên Google Colab 31

Trang 3

3

4.3 Chương trình nhận diện đồng phục bảo hộ lao động trên camera Raspberry Pi

36

4.4 Thiết kế chương trình nhận diện và cảnh báo trên Raspberry Pi 38

4.5 Nhúng mô hình đã huấn luyện lên Raspberry Pi 3 39

CHƯƠNG 5 ĐÁNH GIÁ MÔ HÌNH 40

VÀ KẾT QUẢ THỰC HIỆN 40

5.1 Đánh giá hệ thống đã huấn luyện 40

5.1.1 Các thông số đánh giá 40

5.1.2 Đánh giá hệ thống trên tập validation: 41

5.2 Khảo sát hệ thống trên thực tế 43

5.3 Ưu điểm, nhược điểm của hệ thống 45

CHƯƠNG 6 KẾT LUẬN VỀ KHẢ NĂNG THỰC HIỆN CỦA HỆ THỐNG VÀ HƯỚNG PHÁT TRIỂN 46

6.1 Kết luận 46

6.2 Hướng phát triển 47

TÀI LIỆU THAM KHẢO 48

Trang 4

1.1 Tính cấp thiết của đề tài

Hiện nay,trên thế giới và trong nước xảy ra nhiều vụ tai nạn lao động Những sự cố như sập tường, sập giàn giáo, giật điện… khiến số người chết và bị thương gia tăng Trong

đó, công trường xây dựng là nơi có nhiều rủi ro như: Vật rơi từ trên cao xuống; Hóa chất khi hít vào gây ảnh hưởng đến da, đường hô hấp Những vật dụng sắc nhọn bị rơi trên mặt đất khi dẫm vào làm bị thương Nguồn điện rò rỉ gây giật điện,…

Một số vụ tai nạn lao động tại Việt Nam: Bức tường cao 8m, dài 109 m bất ngờ bị sập, làm 10 người chết, 15 người bị thương tại công trình xây dựng ở Đồng Nai; Sập giàn giáo tại Hiệp Bình Chánh, Thủ Đức làm 3 người bị thương nặng,…

Trang 5

5

Hình 1.1 Hiện trường sập tường tại Trảng Bom,Đồng Nai[1]

Hình 1.2 Hiện trường sập giàn giáo tại Hiệp Bình Chánh, Thủ Đức[2]

Để hạn chế những rủi ro trên, việc tuân thủ đúng quy định về an toàn lao động là vấn

đề quan trọng Đồ bảo hộ lao động giúp bảo vệ người lao động tránh được các tác nhân gây hại, cụ thể: Bảo vệ người lao động tránh bụi bẩn, dầu nhớt, chất thải môi trường tia UV,… Tránh các vật nhọn va quẹt gây thương tích Bảo vệ phần đầu bằng nón bảo hộ Bảo vệ đôi chân tránh đạp phải đinh, vật nặng rơi trúng bằng giày bảo hộ Bảo vệ khí quản bằng khẩu trang bảo hộ;… Tuy nhiên, số lượng người lao động trong công trường khoảng từ vài chục đến vài trăm người Việc kiểm soát bằng mắt thường là khó khăn và khó kiểm soát Do đó,

Trang 6

6

cần một hệ thống giám sát tự động để nhắc nhở, cảnh báo đến người lao động khi chưa tuân thủ đúng quy định về đồng phục bảo hộ lao động Ưu điểm của hệ thống là độ chính xác cao, không tốn nhân công và hoàn toàn tự động

1.2 Tình hình nghiên cứu trong và ngoài nước

Để thực hiện hệ thống tự động nhận diện vật thể, nhóm chúng em lựa chọn phương pháp học sâu, cụ thể là mạng nơ- ron tích chập Dưới đây là tình hình nghiên cứu của trí tuệ nhân tạo và mạng nơ- ron tích chập trên thế giới và ở Việt Nam

Trên thế giới, Trí tuệ nhân tạo (Artificial Intelligence) ngày nay đã trở nên phổ biến cùng với sự xuất hiện của cuộc cách mạng công nghiệp lần thứ 4 diễn ra trên phạm vi toàn cầu Trí tuệ nhân tạo (AI), máy học (ML) hay học sâu (DL) ngày càng được nghiên cứu và được hỗ trợ nhiều hơn [1]

Máy móc hiện tại vẫn chưa thể thay thế con người Tuy nhiên, nó đang ngấm vào cuộc sống của con người, ảnh hưởng đến cách chúng ta sống, làm việc và giải trí Từ các trợ lý

cá nhân được hỗ trợ bằng giọng nói như Siri và Alexa, cho đến các công nghệ cơ bản hơn như thuật toán hành vi, tìm kiếm gợi ý và phương tiện tự lái xe có khả năng dự đoán mạnh

mẽ, độ chính xác cao Ngày nay, một hệ thống sử dụng trí tuệ nhân tạo thực sự là một hệ thống có thể tự học, có thể cải thiện các lần lặp lại trong quá khứ, ngày càng thông minh hơn và nhận thức rõ hơn, cho phép nâng cao khả năng và kiến thức của mình [3]

Một số ứng dụng nổi tiếng của trí tuệ nhân tạo như:

Siri: Được phát triển bởi Apple, Siri là một trợ lý cá nhân quen thuộc của rất nhiều

người Cô ấy là máy tính kích hoạt bằng giọng nói thân thiện mà người dùng tương tác hàng ngày Cô ấy giúp tìm kiếm thông tin, chỉ đường, thêm sự kiện vào lịch, giúp gửi tin nhắn,…

Cô ấy sử dụng công nghệ máy học để thông minh hơn và có thể dự đoán, hiểu câu hỏi và yêu cầu bằng ngôn ngữ tự nhiên tốt hơn [3]

Ô tô điện Tesla: Được sản xuất bởi hãng xe Tesla, Mĩ Chiếc xe điện Tesla sở hữu

khả năng trợ lái nâng cao với các tính năng như điều khiển xe đi giữa làn đường, kiểm soát hành trình thích ứng, tự đỗ xe, giúp giảm đáng kể các thao tác xử lí trên đường mà vẫn đảm bảo an toàn Tesla không ngừng phát triển kỹ năng mới Hãng đang thử nghiệm tính năng nhận diện và đáp ứng biển báo giao thông [4]

Trang 7

7

Trong việc hình thành những tính năng này, trí tuệ nhân tạo được sử dụng để đưa ra quyết định dựa trên điều kiện đường xá xung quanh phương tiện chẳng hạn như hướng di chuyển, điểm đến theo kế hoạch và hành vi của những phương tiện giao thông khác trong vùng lân cận Dữ liệu camera được xử lý bằng công nghệ thị giác máy tính (là một phần của trí tuệ nhân tạo) cho phép chiếc xe hiểu được những gì nó đang “nhìn thấy” và đưa ra phản ứng tương ứng[4]

Mạng nơ- ron tích chập (CNN hay ConvNet) là mạng nơ-ron phổ biến nhất được dùng cho dữ liệu ảnh, bên cạnh các lớp liên kết đầy đủ (Fully Connected), CNN còn đi cùng với các lớp ẩn đặc biệt giúp phát hiện và trích xuất những đặc trưng xuất hiện trong ảnh Chính những tích chập này làm CNN trở nên khác biệt so với mạng nơ-ron truyền thống và hoạt động cực kỳ hiệu quả trong bài toán phân tích ảnh CNN đước ứng dụng cho bài toán nhận diện gương mặt, nhận diện hành động, phân loại ảnh, dự đoán tư thế của người,…[4] Trên thế giới, đã có rất nhiều công ty sản xuất các hệ thống phát hiện người lao động

có mặc đúng tiêu chuẩn an toàn lao động hay không Tại công ty Kapernikov, họ sản xuất

hệ thống giám sát sử dụng deep learning để phát hiện người xuất hiện trong camera có đội

mũ bảo hộ hay không [5] Hình 1.3 thể hiện việc nhận diện của hệ thống này

Hình 1.3 Canera giám sát, nhận diện người đội mũ bảo hộ của Kapernikov [5]

Tại Việt Nam, trong bối cảnh phát triển và hội nhập quốc tế, cùng với sự phát triển mạnh mẽ của cuộc cách mạng công nghiệp 4.0, Việt Nam xác định tập trung phát triển công nghê trí tuệ nhân tạo, được dự báo trở thành ngành công nghệ đột phá nhất trong 10 năm

Trang 8

1.4 Nhiệm vụ của đề tài

Các công việc cần thực hiện trong đề tài là :

• Tìm hiểu về Deep Learning, các thuật toán liên quan đến CNN trong bài toán nhận dạng vật thể

• Tìm hiểu và sử dụng Raspberry trong bài toán nhận dạng

• Thiết kế một hệ thống giám sát bảo hộ lao động

• Đánh giá mô hình, ưu nhược điểm của mô hình

• Đưa ra các phương pháp cải tiến và kết luận

Trang 9

đề xuất các bounding boxes và class scores tương ứng một cách đồng thời YOLO được tạo

ra từ việc kết hợp giữa các convolutional layers và connected layers Trong đó các convolutional layers sẽ trích xuất ra các feature của ảnh, còn full-connected layers sẽ dự đoán ra xác suất đó và tọa độ của đối tượng

Hình 2.1 Kiến trúc YOLO

Đầu vào của mô hình là một ảnh, mô hình sẽ nhận dạng ảnh đó có đối tượng nào hay không, sau đó sẽ xác định tọa độ của đối tượng trong bức ảnh Ảnh đầu vào được chia thành thành S×S ô thường thì sẽ là 3×3, 7×7, 9×9 việc chia ô này có ảnh hưởng tới việc mô hình phát hiện đối tượng, được trình bày ở phần sau

Trang 10

10

Hình 2.2 Nhận diện đối tượng của YOLO

Với Input là một ảnh, đầu ra mô hình là một ma trận ba chiều có kích thước S×S×(5×N+M) với số lượng tham số mỗi ô là (5×N+M) với N và M lần lượt là số lượng Box và Class mà mỗi ô cần dự đoán Ví dụ với hình ảnh trên chia thành 7×7 ô, mỗi

ô cần dự đóan 2 bounding box và 3 object : con chó, ô tô, xe đạp thì output là 7×7×13, mỗi

ô sẽ có 13 tham số, kết quả trả về (7×7×2=98) bounding box Chúng ta sẽ cùng giải thích con số (5×N+M) được tính như thế nào [6]

Dự đoán mỗi bounding box gồm 5 thành phần: (x, y, w, h, prediction) với (x, y ) là tọa độ tâm của bounding box, (w, h) lần lượt là chiều rộng và chiều cao của bounding box, prediction được định nghĩa Pr(Object)∗ IOU(pred,truth).Với hình ảnh trên như ta tính mỗi

ô sẽ có 13 tham số, ta có thể hiểu đơn giản như sau tham số thứ 1 sẽ chỉ ra ô đó có chứa đối tượng nào hay không P(Object), tham số 2, 3, 4, 5 sẽ trả về x, y ,w, h của Box1 Tham số

6, 7, 8, 9, 10 tương tự sẽ Box2, tham số 11, 12, 13 lần lượt là xác suất ô đó có chứa object1( P(chó|object), object2(P(ô tô|object)), object3(P( xe đạp|object)) Lưu ý rằng tâm của bounding box nằm ở ô nào thì ô đó sẽ chứa đối tượng, cho dù đối tượng có thể ở các ô khác thì cũng sẽ trả về là 0 Vì vậy việc mà 1 ô chứa 2 hay nhiều tâm của bouding box hay đối tượng thì sẽ không thể detect được, đó là một hạn chế của mô hình YOLO1, vậy ta cần phải

Trang 11

11

tăng số lượng ô chia trong 1 ảnh lên đó là lí do vì sao mình nói việc chia ô có thể làm ảnh hưởng tới việc mô hình phát hiện đối tượng [6]

Hàm tính IOU

Trên ta có đề cập prediction được định nghĩa Pr(Object)∗ IOU(pred,truth), ta sẽ làm

rõ hơn IOU(pred, truth) là gì 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 được tính bằng:

Hình 2.3 Tính hàm IoU [6]

Trong đó Area of Overlap là diện tích phần giao nhau giữa predicted bounding box với grouth-truth bouding box, còn Area of Union là diện tích phần hợp giữa predicted bounding box với grouth-truth bounding box Những bounding box được đánh nhãn bằng tay trong tập traing set và test set Nếu IOU > 0.5 thì prediction được đánh giá là tốt

Loss function

Hàm lỗi trong YOLO được tính trên việc dự đoán và nhãn mô hình để tính Cụ thể hơn nó là tổng độ lỗi của 3 thành phần con sau:

+ Độ lỗi của việc dự đoán loại nhãn của object - Classification loss

+ Độ lỗi của dự đoán tọa độ tâm, chiều dài, rộng của boundary box (x, y ,w, h) - Localization loss

+ Độ lỗi của việc dự đoán bounding box đó chứa object so với nhãn thực tế tại ô vuông

đó - Confidence loss

Classification loss

Trang 12

12

Classification loss - độ lỗi của việc dự đoán loại nhãn cuả object, hàm lỗi này chỉ tính trên những ô vuông có xuất hiện object, còn những ô vuông khác ta không quan tâm Classification loss được tính bằng công thức sau:

2

2

obj S classification i i c class i

Hình 2.4 Hàm Localization loss [9]

Trang 13

13

Giá trị hàm Localization loss được tính trên tổng giá trị lỗi dự đoán toạ độ tâm (x, y)

và (w, h) của predicted bounding box với grouth-truth bounding box Tại mỗi ô có chưa object, ta chọn 1 boundary box có IOU (Intersect over union) tốt nhất, rồi sau đó tính độ lỗi theo các boundary box này

Giá trị hàm lỗi dự đoán tọa độ tâm (x, y) của predicted bounding box và (x̂, ŷ) là tọa

độ tâm của truth bounding box được tính như sau:

Confidence loss là độ lỗi giữa dự đoán boundary box đó chứa object so với nhãn thực

tế tại ô vuông đó Độ lỗi này tính trên cả những ô vuông chứa object và không chứa object

Total loss

Tổng lại chúng ta có hàm lỗi là tổng của 3 hàm lỗi trên

total classification localization confidence

Trang 14

14

The Network

Như ta đã nói ở trên mô hình mạng YOLO là một mô hình mạng CNN thông thường gồm các convolutional layers kết hợp maxpooling layers và cuối cùng là 2 lớp fully connected layers, với hàm kích hoạt cho layer cuối cùng là một linear activation function

và tất cả các layers khác sẽ sử dụng leaky RELU:

Hình 2.5 Các layer trong mạng YOLO [6]

Trang 15

15

2.2 Kiến trúc YOLOV3

Kiến trúc YOLO bao gồm: base network là các mạng convolution làm nhiệm vụ trích xuất đặc trưng Phần phía sau là những Extra Layers được áp dụng để phát hiện vật thể trên feature map của base network

Hình 2.6 Kiến trúc mạng YOLO [7]

Thành phần Darknet Architechture được gọi là base network có tác dụng trích suất đặc trưng Output của base network là một feature map có kích thước 7x7x1024 sẽ được sử dụng làm input cho các Extra layers có tác dụng dự đoán nhãn và tọa độ bounding box của vật thể

YOLOv3 sử dụng một mạng feature extractor là darknet-53 Mạng này gồm 53 convolutional layers kết nối liên tiếp, mỗi layer được theo sau bởi một batch normalization

và một activation Leaky Relu Để giảm kích thước của output sau mỗi convolution layer, tác giả down sample bằng các filter với kích thước là 2 Mẹo này có tác dụng giảm thiểu số lượng tham số cho mô hình

Trang 16

16

Hình 2.7 Các layer trong mạng darknet-53

Các bức ảnh khi được đưa vào mô hình sẽ được scale để về chung một kích thước phù hợp với input shape của mô hình và sau đó được gom lại thành batch đưa vào huấn luyện Hiện tại YOLO đang hỗ trợ 2 đầu vào chính là 416x416 và 608x608 Mỗi một đầu vào sẽ

có một thiết kế các layers riêng phù hợp với shape của input Sau khi đi qua các layer convolutional thì shape giảm dần theo cấp số nhân là 2 Cuối cùng ta thu được một feature map có kích thước tương đối nhỏ để dự báo vật thể trên từng ô của feature map Kích thước của feature map sẽ phụ thuộc vào đầu vào Đối với input 416x416 thì feature map có các kích thước là 13x13, 26x26 và 52x52 Và khi input là 608x608 sẽ tạo ra feature map 19x19, 38x38, 72x72

Output của mô hình YOLO là một véc tơ sẽ bao gồm các thành phần:

Trang 17

(3.6) Trong đó:

▪ p0 là xác suất dự báo vật thể xuất hiện trong bounding box

x, , ,y w h

bounding box

t t t t giúp xác định bounding box Trong đó t t x, ylà tọa độ tâm và t tw, h

kích thước rộng, dài của bounding box

▪ 1, 2, , c

scores of c classes

p p p là véc tơ phân phối xác suất dự báo của các classes

Việc hiểu output khá là quan trọng để chúng ta cấu hình tham số chuẩn xác khi huấn luyện model qua các open source như darknet Như vậy output sẽ được xác định theo số lượng classes theo công thức (n_class+5) Nếu huấn luyện 80 classes thì sẽ có output là 85 Trường hợp áp dụng 3 anchors/cell thì số lượng tham số output sẽ là:

(n_class +5) =3 85 3 =255

Hình 2.8 Kiến trúc một output của model YOLO [10]

Trang 18

18

Hình ảnh gốc là một feature map kích thước 13x13 Trên mỗi một cell của feature

map chúng ta lựa chọn ra 3 anchor boxes với kích thước khác nhau lần lượt là Box 1, Box

2, Box 3 sao cho tâm của các anchor boxes trùng với cell Khi đó output của YOLO là một

véc tơ concatenate của 3 bounding boxes Các attributes của một bounding box được mô tả

như dòng cuối cùng trong hình 2.8

Dự báo trên nhiều feature map

YOLOv3 dự báo trên nhiều feature map Những feature map ban đầu có kích thước

nhỏ giúp dự báo được các object kích thước lớn Những feature map sau có kích thước lớn

hơn trong khi anchor box được giữ cố định kích thước nên sẽ giúp dự báo các vật thể kích

thước nhỏ

Hình 2.9 Các feature maps của mạng YOLOv3 (với input shape là 416x416, output là 3 feature maps có kích thước lần lượt

là 13x13, 26x26 và 52x52)

Trên mỗi một cell của các feature map áp dụng 3 anchor box để dự đoán vật thể Như

vậy số lượng các anchor box khác nhau trong một mô hình YOLO sẽ là 9 (3 featue map x

3 anchor box) Đồng thời trên một feature map hình vuông S x S, mô hình YOLOv3 sinh

ra một số lượng anchor box là: S x S x 3 Như vậy số lượng anchor boxes trên một bức ảnh

sẽ là:

(13×13+26×26+52×52) × 3=10647(anchor boxes)

Trang 19

19

Đây là một số lượng rất lớn và là nguyên nhân khiến quá trình huấn luyện mô hình YOLO vô cùng chậm bởi cần dự báo đồng thời nhãn và bounding box trên đồng thời 10647 bounding boxes

Anchor box

Để tìm được bounding box 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 Thuật toán regression bounding box sẽ tinh chỉnh lại anchor box để tạo ra bounding box 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 ground truth bounding box là cao nhất

Từ Cell ta xác định được 3 anchor boxes viền xanh như trong hình bên dưới Cả 3 anchor boxes này đều giao nhau với bounding box 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 ground truth bounding box 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ể Chẳng hạn như hình chú chó trong hình 2.9 sẽ được phân về cho cell màu đỏ vì điểm mid point của ảnh chú chó rơi vào đúng cell này Từ cell ta sẽ xác định các anchor boxes bao quanh hình ảnh chú chó

Hình 2.10 Xác định anchor box cho một vật thể [10]

Trang 20

20

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 mid point, mặc dù rất hiếm khi xảy ra, thuật toán sẽ rất khó xác định được class cho chúng

Hàm loss function

Như đã trình bày trong phần tổng quan về YOLO các hàm loss function YOLOv3 nhìn chung không thay đổi gì về cách tính và xác định hàm loss Bao gồm: (localization loss) đo lường sai số của bounding box (là hàm mất mát của bounding box dự báo so với thực tế.) và (confidence loss) đo lường sai số của phân phối xác suất các classes (là hàm mất mát của phân phối xác suất Trong đó bao gồm 2 tổng: Tổng đầu tiên là mất mát của

dự đoán có vật thể trong cell hay không? Và tổng thứ 2 là mất mát của phân phối xác suất nếu có vật thể trong cell.)

Dự báo bounding box

Để dự báo bounding box cho một vật thể chúng ta dựa trên một phép biến đổi từ anchor box và cell YOLOv3 dự đoán bounding box sao cho nó sẽ không lệch khỏi vị trí trung tâm quá nhiều Nếu bounding box dự đoán có thể đặt vào bất kỳ phần nào của hình ảnh, như trong mạng regional proposal network, việc huấn luyện mô hình có thể trở nên không ổn định

Cho một anchor box có kích thước (pw,ph) tại cell 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 đó 2 tham số đầu là độ lệch (offset) so với góc trên cùng bên trái của cell và 2 tham số sau là tỷ lệ so với anchor box Và các tham số này sẽ giúp xác định bounding box dự đoán b có tâm (bx,by) và kích thước (bw,bh) thông qua hàm sigmoid và hàm exponential như các công thức hình bên dưới:

Trang 21

21

Hình 2.11 Công thức ước lượng bounding box từ anchor box [11]

Ngoài ra do các tọa độ đã được hiệu chỉnh theo width và height 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 chữ nhật nét đứt bên ngoài là anchor box có kích thước là (pw,ph) Tọa độ của một bounding box sẽ được xác định dựa trên đồng thời cả anchor box và cell mà nó thuộc

về Điều này giúp kiểm soát vị trí của bounding box dự đoán đâu đó quanh vị trí của cell

và bounding box mà không vượt quá xa ra bên ngoài giới hạn này Do đó quá trình huấn luyện sẽ ổn định hơn rất nhiều so với YOLO version 1

Non-max suppression

Do thuật toán YOLO dự báo ra rất nhiều bounding box trên một bức ảnh nên đối với những cell có vị trí gần nhau, khả năng các khung hình bị overlap là rất cao Trong trường hợp đó YOLO sẽ cần đến non-max suppression để giảm bớt số lượng các khung hình được sinh ra một cách đáng kể

Trang 22

+ Bước 2: Đối với các bouding box giao nhau, non-max suppression sẽ lựa chọn ra một bounding box có xác xuất chứa vật thể là lớn nhất Sau đó tính toán chỉ số giao thoa IoU với các bounding box còn lại

Nếu chỉ số này lớn hơn ngưỡng threshold thì điều đó chứng tỏ 2 bounding boxes đang chồng chéo nhau rất cao Ta sẽ xóa các bounding có có xác xuất thấp hơn và giữ lại bouding box có xác xuất cao nhất Cuối cùng, thu được một bounding box duy nhất cho một vật thể

2.3 Kiến trúc YOLOv3 tiny

Công cụ phát hiện đối tượng YOLO thường được coi là một trong những công cụ phát hiện đối tượng dựa trên học sâu nhanh nhất, đạt được tốc độ FPS cao hơn so với các công

cụ phát hiện hai giai đoạn tính toán đắt tiền (Faster R-CNN) và một số công cụ phát hiện một giai đoạn (các biến thể của SSD) Tuy nhiên, ngay cả với tất cả tốc độ

đó, YOLO vẫn không đủ nhanh để chạy trên các thiết bị nhúng như Raspberry Pi Để giúp làm cho YOLO nhanh hơn nữa, ta sử dụng một biến thể của kiến trúc YOLO được gọi

là Tiny-YOLO

Trang 23

23

Kiến trúc Tiny-YOLO nhanh hơn khoảng 442% so với những người anh em lớn hơn của nó, đạt được tối đa 244 FPS trên một GPU Kích thước mô hình nhỏ (<50MB) và tốc

độ suy luận nhanh làm cho máy dò đối tượng Tiny-YOLO tự nhiên phù hợp với các thiết

bị học sâu, thị giác máy tính nhúng như Raspberry Pi, Google Coral và NVIDIA Jetson Nano

Trang 24

3.1 Giới thiệu về Raspberry Pi 3 model B+

Raspberry Pi (RPI) là một máy tính thu nhỏ, được tích hợp mọi thứ cần thiết như CPU, GPU, RAM, khe cắm thẻ microSD, Wi-Fi Raspberry Pi không hoàn toàn có thể thay thế được máy tính để bàn hoặc laptop nhưng nó là một thiết bị đa năng có thể được sử dụng cho những hệ thống điện tử, thiết lập hệ thống tính toán, những dự án DIY… với chi phí

rẻ Các ứng dụng điển hình của RPI là: Làm camera an ninh, máy nghe nhạc, máy đọc sách, Terminal di động, làm thiết bị điều khiển thiết bị trong nhà, điều khiển Smart Home Những

ưu điểm của thiết bị này là: Giá thành thấp, khoảng 35 USD, tích hợp đầy đủ Wi-Fi, Bluetooth Đơn giản, dễ sử dụng, kích thước nhỏ Tiêu thụ ít năng lượng Có tính di động cao

Raspberry Pi có hai phiên bản là Model A và Model B Trong thực tế Raspberry Pi Model B được sử dụng phổ biến Đề tài sử dụng Raspberry Pi 3 Model B+ Đây là sản phẩm nổi bật với chip 4 nhân 64-bit có tốc độ 1.4GHz Phiên bản này hỗ trợ Wifi Dual-band 2.4GHz và 5GHz, Bluetooth 4.2/Bluetooth Low Energy, cổng Ethernet tốc độ cao (300Mbps) và Power over Ethernet (PoE) thông qua PoE HAT

Ngày đăng: 19/02/2021, 11:44

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] TTXVN, (2019), “Tai nạn lao động tại công trình xây dựng, ba công nhân bị thương nặng”, Báo Điện tử Đảng Cộng Sản Sách, tạp chí
Tiêu đề: Tai nạn lao động tại công trình xây dựng, ba công nhân bị thương nặng
Tác giả: TTXVN
Năm: 2019
[3] R.L.Adams,( 2017), “10 Powerful Examples of Artificial Intelligence In Use Today”, Forbes Sách, tạp chí
Tiêu đề: 10 Powerful Examples of Artificial Intelligence In Use Today
[5] “Deep Learning see whether people wear their helmet”, Kapernikov.com Sách, tạp chí
Tiêu đề: Deep Learning see whether people wear their helmet
[6] V. Hoàng, “Tìm hiểu về YOLO trong bài toán real-time object detection”, AI Research Team of R&amp;D Lab, 16 November 2019 Sách, tạp chí
Tiêu đề: Tìm hiểu về YOLO trong bài toán real-time object detection
[7] Vũ Hữu Tiệp,(2016), “Machine Learning cơ bản”, Nhà xuất bản khoa học và kỹ thuật Sách, tạp chí
Tiêu đề: Machine Learning cơ bản
Tác giả: Vũ Hữu Tiệp
Nhà XB: Nhà xuất bản khoa học và kỹ thuật
Năm: 2016
[8] N. T. Tuấn, “Deeplearning cơ bản”, 2019 Sách, tạp chí
Tiêu đề: Deeplearning cơ bản
[9] Hacker Noon, “Understanding YOLO”, Mauricio Menegaz, 17 March 2018 Sách, tạp chí
Tiêu đề: Understanding YOLO
[10] P. Đ. Khánh, “YOLO You Only Look Once”, Bài 25 Sách, tạp chí
Tiêu đề: YOLO You Only Look Once
[11] Joseph Redmon, Ali Farhadi, “YOLOv3: An Incremental Improvement”, University of Washington Sách, tạp chí
Tiêu đề: YOLOv3: An Incremental Improvement
[4] Aarian Marshall, ,”Tesla’s Favorite Autopilot Safety Stat Just Doesn’t Hold Up”, Wired Khác

TỪ KHÓA LIÊN QUAN

w