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 22
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 33
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 41.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 55
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 66
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 77
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 81.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 1010
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 1111
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 1212
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 1313
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 1414
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 1515
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 1616
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 là
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 1818
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 1919
Đâ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 2020
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 2121
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 2323
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 243.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