Nhận diện động vật bằng YOLOv5

39 15 0
Nhận diện động vật bằng YOLOv5

Đ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

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN ĐIỆN TỬ BỘ MÔN KỸ THUẬT MÁY TÍNH - VIỄN THƠNG BÁO CÁO TIỂU LUẬN ĐỀ TÀI NHÂṆ DIÊṆ ĐÔNGG̣ VÂṬ BẰNG YOLOv5 NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - VIỄN THÔNG Sinh viên: TRƯƠNG THANH SANG MSSV: 18161265 PHAN HỮU PHÚC MSSV: 18161262 Hướng dẫn: PGS.TS TRƯƠNG NGỌC SƠN TP HỒ CHÍ MINH – 06/2021 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN ĐIỆN TỬ BỘ MƠN KỸ THUẬT MÁY TÍNH - VIỄN THƠNG BÁO CÁO TIỂU LUẬN ĐỀ TÀI NHÂṆ DIÊṆ ĐÔNGG̣ VÂṬ BẰNG YOLOv5 NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - VIỄN THÔNG Sinh viên: TRƯƠNG THANH SANG MSSV: 18161265 PHAN HỮU PHÚC MSSV: 18161262 Hướng dẫn: PGS.TS TRƯƠNG NGỌC SƠN TP HỒ CHÍ MINH – 06/2021 STT BẢNG NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN NÔỊDUNG THỰC HIÊN Nhận xét tổng quát: ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ……………………………………………………………………………………… MỤC LỤC DANH MỤC HÌNH ẢNH DANH MUC BANG CHƯƠNG 1: TỔNG QUAN 1.1 Giơi thiêụ 1.2 Mục tiêu đề tài 1.3 Giơi hạn đề tài 1.4 Phương phap nghiên cứu 1.5 Đối tượng và phạm vi nghiên cứu 1.6 Bố cục quyển bao cao CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tông quan về YOLO 2.1.1 Kiến trúc mạng YOLO 2.1.2 Nguyên lý hoạt đôngg̣ của mạng YOLO 2.2 Output của YOLO 2.2.1 Dự bao nhiều feature map 2.2.2 Anchor box 2.2.3 Hàm mất mat ( Loss Function) 2.2.3.1 Classification Loss 2.2.3.2 Localization Loss 2.2.3.3 Confidence Loss 2.3 Dự bao bounding box 2.3.1 2.4 Non-max suppression Thuâṭtoan sử dụng YOLOv5 2.4.1 Phân loại YOLOv5 2.5 Cấu trúc của YOLOv5 viêcg̣nhâṇ diêṇ vâṭthể (Object Detection) 2.6 Những cải tiến của YOLOv5 so vơi cac phiên bản trươc CHƯƠNG : THIẾT KẾ HÊ T g̣ HỐNG 3.1 Tâpg̣ dữ liêụ chuẩn bị cho qua trình huấn luyêṇ 3.2 Qua trình huấn luyêṇ 3.2.1 Tiến hành huấn luyêṇ CHƯƠNG 4: KẾT QUA 4.1 Kết quả qua trình huấn luyêṇ .31 4.2 Hoạt đôngg̣ của g̣thống .32 CHƯƠNG 5: KẾT LUÂN VA HƯƠNG PHAT TRIỂN 34 5.1 Kết luâṇ 34 5.2 Hương phat triển 34 PHỤ LỤC 35 TAI LIÊỤ THAM KHAO 38 DANH MỤG̣C HÌNH ẢNH Hình 2.1: Kiến trúc mạng YOLO 10 Hình 2.2: Các layer mạg̣ng darknet-53 11 Hình 2.3: Cach hoạt đôngg̣ của mạng YOLO 12 Hình 2.4: Kiến trúc môṭoutput của model YOLO .13 Hình 2.5: Các feature maps mạng YOLOv3 với input shape 416x416, output feature maps có kích thước 13x13, 26x26 52x52 14 Hình 2.6: Xác địg̣nh anchor box cho vật thểể 15 Hình 2.7: Khi vật thểể người vàà̀ xe trùng mid point vàà̀ thuộc cell Thuật toán cần thêm nhữữ̃ng lượg̣t tiebreak đểể quyếế́t địg̣nh đâu làà̀ class cho cell .16 Hình 2.8: Tính toan Loss Function cho object: tam giac và hình thoi 17 Hình 2.9: Công thứế́c ước lượg̣ng bounding box từ anchor box .20 Hình 2.10: Non-max suppression Từ bounding box ban đầu bao quanh chiếế́c xe giảểm x́ế́ng cịn bounding box cuốế́i 20 Hình 2.11: So sanh kich thươc lưu trữ Model cua cac mẫu mã YOLOv5 22 Hình 2.12: So sanh đô ̣trễ trung bình giữa cac phiên bản YOLO(v3,v4,v5) .23 Hình 2.13: Cấu trúc nhâṇ diêṇ vâṭthể của YOLOv5 24 Y Hình 3.1: Hình ảnh về Trâu và label của tưng hình .25 Hình 3.2: Hình ảnh về Hươu và label của tưng hình 26 Hình 3.3: Hình ảnh về Voi và label của tưng hình .26 Hình 3.4: Hình ảnh về Hươu cao cổ và label của tưng hình 27 Hình 3.5: Sử dụng roboflow.ai để gia tăng tâpg̣ dữ liêụ vốn co 27 Hình 3.6: clone Yolov5 và cài đăṭcac dependencies 28 Hình 3.7: Thêm cac hình và label cho qua trình huấn luyêṇ .28 Hình 3.8: Phân chia hình theo label tưng loài 29 Hình 3.9: Qua trình huấn luyêṇ vơi 16 lơp và 100 lân 29 Hình 4.1: Kết quả display sau đa train xong 30 DANH MỤC BANG Bảng 1: Đanh gia mức đô ̣chinh xac cua qua trình nhâṇ diêṇ 32 CHƯƠNG 1: TỔNG QUAN 1.1 Giới thiêu Ngàà̀y nay, tríế́ tuệ nhân tạg̣o-Artificial Intelligence (AI) ngày càng phô biến và goế́p phần thay đổi sâu sắc nhiềà̀u khíế́a cạg̣nh sốế́ng ngàà̀y Trong đoế́ thịg̣ giác máy tíế́nh-Computer Vision (CV) làà̀ lĩnh vựg̣c quan trọng củểa AI bao gồm phương pháp thu nhận, xửể líế́ ảểnh kỹ thuật sốế́, phân tíế́ch vàà̀ nhận dạg̣ng hìà̀nh ảểnh Mạg̣ng Nơron học sâu (Deep learning Network) làà̀ lĩnh vựg̣c nghiên cứế́u thuật toán, chương trìà̀nh máy tíế́nh đểể máy tíế́nh coế́ thểể học tập vàà̀ đưa nhữữ̃ng dựg̣ đoán người Noế́ đượg̣c ứế́ng dụg̣ng vàà̀o nhiềà̀u ứế́ng dụg̣ng khác khoa học, kỹ thuật, lĩnh vựg̣c đời sốế́ng khác ứế́ng dụg̣ng vềà̀ phân loạg̣i vàà̀ phát đốế́i tượg̣ng Một víế́ dụg̣ điểển hìà̀nh làà̀ CNN (Convolutional Neural Network) áp dụg̣ng đểể nhận dạg̣ng tựg̣ động, tìà̀m hiểểu mẫu phân biệt từ ảểnh cách xếế́p chồng liên tiếế́p lớp lên vàà̀ nhiềà̀u ứế́ng dụg̣ng, CNN đượg̣c coi làà̀ trìà̀nh phân loạg̣i ảểnh mạg̣nh vàà̀ thúế́c đẩểy công nghệ lĩnh vựg̣c thịg̣ giác máy tíế́nh, làà̀m đòn bẩểy cho trìà̀nh học máy Nhưng bên cạg̣nh đoế́, đểể phân loạg̣i đượg̣c đốế́i tượg̣ng thìà̀ công nghệ CNN tiêu tốế́n cựg̣c lớn vềà̀ tàà̀i nguyên băng thông, nhớ vàà̀ khảể xửể lýế́ củểa phần cứế́ng Đểể giảểm thiểểu nhữữ̃ng tàà̀i ngun tiêu hao nàà̀y, nhữữ̃ng thuật tốn, mơ hìà̀nh giảểi thuật theo thời gian đượg̣c đời ngàà̀y càà̀ng nhiềà̀u vàà̀ đoế́ coế́ mơ hình YOLOv5 cho bàà̀i tốn nhận diện, cụg̣ thểể làà̀ ứế́ng dụg̣ng vàà̀o đềà̀ tàà̀i “Nhận diện động vật” 1.2 Muc tiêu đề tài Vâṇ dụng được những kiến thức bản về huấn luyêṇ mạng nơ-ron Xây dựng được môṭmô hình co khả huấn luyêṇ cac tâpg̣ dữ liêụ đôngg̣ vâṭkhac Nhâṇ diêṇ được tất cả cac loài đôngg̣ vâṭco tâpg̣ dữ liêụ 1.3 Giới hạn đề tài Trong đề tài này nhận diện đượg̣c 10 loàà̀i động vật: Trâu, Voi, Tê giác, Ngựg̣a vằn, Nai, Hươu cao cổ, Ngựg̣a đua, Sư tửể, Vẹt, Hổ Tâpg̣ dữ liêụ coế́ sốế́ lượg̣ng íế́t ảểnh hưởng đếế́n độ chíế́nh xác củểa mộ hìà̀nh 1.4 Phương pháp nghiên cứu đoế́ Dựa cac kiến thức đa hoc về cach huấn luyêṇ môṭmạng nơ-ron Thu thập tàà̀i liệu, tham khảểo nhữữ̃ng ứế́ng dụg̣ng liên quan coế́ trước 1.5 Đối tượng và phạm vi nghiên cứu Nhâṇ dạng cac loài đôngg̣ vâṭhoang da tự nhiên co tâpg̣ dữ liêu,g̣ làà̀ 10 loàà̀i động vật: Trâu, Voi, Tê giác, Ngựg̣a vằn, Nai, Hươu cao cổ, Ngựg̣a đua, Sư tửể, Vẹt, Hổ 1.6 Bố cuc quyển báo cáo Đề tài co tông côngg̣ chương: Chương - Tổng quan Trong chương nàà̀y tìà̀m hiểểu vềà̀ vấế́n đềà̀ hìà̀nh thàà̀nh nên đềà̀ tàà̀i Kèm theo đoế́ làà̀ sốế́ nội dung vàà̀ giới hạg̣n củểa đềà̀ tàà̀i màà̀ nhoế́m thựg̣c đềà̀ tàà̀i đặt Chương – Cơ sở lý thuyết Giới thiệu vềà̀ kiếế́n thứế́c nềà̀n tảểng công nghệ vàà̀ phần mềà̀m đượg̣c sửể dụg̣ng đề tài bao gồm kiếế́n thứế́c vềà̀ xửể lýế́ ảểnh, lýế́ thuyếế́t mạg̣ng nơ-ron, đăcg̣điểm và cach huấn luyêṇ môṭtâpg̣ dữ liêụ YOLOv5 Chương – Thiết kế tG̣ hống Lên kếế́ hoạg̣ch sửể dụg̣ng tập mẫu, diễn giảểi thông sốế́ củểa mô hìà̀nh, trìà̀nh huấế́n luyện, trìà̀nh kiểểm tra vàà̀ thiếế́t kếế́ hệ thốế́ng nhận diện động nền tảng YOLOv5 Chương – Kết qua Kiểm tra kết quả của qua trình huấn luyên,g̣ kiểm tra mô hình g̣thống Chương 5- Kết luâṇ và hướng phát triển Trong chương nàà̀y trìà̀nh bàà̀y nhữữ̃ng kếế́t quảể củểa đề tài đạg̣t đượg̣c so vơi mục tiêu đăṭra, nêu sốế́ hướng nghiên cứế́u vàà̀ phát triểển cho đềà̀ tàà̀i CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Trong vàà̀i năm trở lạg̣i đây, Object detection làà̀ nhữữ̃ng đềà̀ tàà̀i rấế́t hot củểa deep learning khảể ứế́ng dụg̣ng cao, dữữ̃ liệu dễ chuẩển bịg̣ vàà̀ kếế́t quảể ứế́ng dụg̣ng thìà̀ cựg̣c kìà̀ nhiềà̀u Các thuật toán củểa Object detection YOLO, SSD coế́ tốế́c độ nhanh vàà̀ độ chíế́nh xác cao nên giúế́p cho Object Detection coế́ thểể thựg̣c đượg̣c tác vụg̣ dường làà̀ real time, chíế́ làà̀ nhanh so với người màà̀ độ chíế́nh xác không giảểm Các mô hìà̀nh trở nên nhẹ nên coế́ thểể hoạg̣t động thiếế́t bịg̣ IoT đểể tạg̣o nên thiếế́t bịg̣ thông minh 2.1 Tổng quan về YOLO YOLO(You only look once) làà̀ mô hìà̀nh mạg̣ng CNN cho việc phát hiện, nhận dạg̣ng, phân loạg̣i đốế́i tượg̣ng YOLO đượg̣c tạg̣o từ việc kếế́t hợg̣p giữữ̃a convolutional layers vàà̀ connected layers Trong đoế́p convolutional layers tríế́ch xuấế́t feature củểa ảểnh, cịn full-connected layers dựg̣ đốn xác śế́t đoế́ vàà̀ tọa độ củểa đốế́i tượg̣ng.[1] YOLO coế́ thểể khơng phảểi làà̀ thuật tốn tớế́t nhấế́t noế́ làà̀ thuật tốn nhanh nhấế́t lớp mơ hìà̀nh object detection Noế́ coế́ thểể đạg̣t đượg̣c tốế́c độ gần real time màà̀ độ chíế́nh xác không giảểm so với model thuộc top đầu YOLO làà̀ thuật toán object detection nên mụg̣c tiêu củểa mô hìà̀nh không làà̀ dựg̣ báo nhãn cho vật thểể bàà̀i tốn classification màà̀ noế́ cịn xác địg̣nh location củểa vật thểể Do đoế́ YOLO coế́ thểể phát đượg̣c nhiềà̀u vật thểể coế́ nhãn khác bứế́c ảểnh thay vìà̀ phân loạg̣i nhấế́t nhãn cho bứế́c ảểnh Một ưu điểểm màà̀ YOLO đem lạg̣i đoế́ làà̀ sửể dụg̣ng thông tin toàà̀n bứế́c ảểnh lần vàà̀ dựg̣ đoán toàà̀n object box chứế́a đốế́i tượg̣ng, mô hìà̀nh đượg̣c xây dựg̣ng theo kiểểu end-to-end nên đượg̣c huấế́n luyện hoàà̀n toàà̀n gradient descent Tính đến thơi điểm hiêṇ tại YOLO đa co tông côngg̣ phiên bản(v1,v2,v3,v4,v5) Trong đo bản v5 là bản mơi nhất, khac phục được cac nhược điểm của cac phiên bản trươc như: lỗi vềà̀ việc xác địg̣nh vịg̣ tríế́ củểa vật thểể, ràà̀ng buộc vềà̀ không gian nhữữ̃ng bounding box, grid cell coế́ thểể predict rấế́t íế́t bounding box, 2.1.1 Kiến trúc mạng YOLO Hình 2.13: Cấu trúc nhâṇ diêṇ vâṭthê cua YOLOv5 2.6 Những cai tiến của YOLOv5 so với các phiên ban trước YOLOv5 đượg̣c triểển khai PyTorch ban đầu nên noế́ đượg̣c hưởng lợg̣i từ hệ sinh thái PyTorch đượg̣c thiếế́t lập: hỗ trợg̣ đơn giảển vàà̀ triểển khai dễ dàà̀ng Hơn nữữ̃a, làà̀ khung nghiên cứế́u đượg̣c biếế́t đếế́n rộng rãi hơn, việc lặp lạg̣i YOLOv5 coế́ thểể dễ dàà̀ng cho cộng đồng nghiên cứế́u rộng lớn Điềà̀u nàà̀y làà̀m cho việc triểển khai đếế́n thiếế́t bịg̣ di động đơn giảển vìà̀ mô hìà̀nh coế́ thểể đượg̣c biên dịg̣ch sang ONNX vàà̀ CoreML cách dễ dàà̀ng.[6] Khảể đàà̀o tạg̣o khảể suy luận rấế́t làà̀ nhanh, độ chíế́nh xác cao Cuốế́i YOLOv5 coế́ dung lượg̣ng nhỏ YOLOv5 rất nhỏ Cụg̣ thểể, tệp trọng sốế́ cho YOLOv5 làà̀ 27 megabyte Trong đo môṭtệp trọng sốế́ củểa cho YOLOv4 (với kiếế́n trúế́c Darknet) làà̀ 244 megabyte YOLOv5 nhỏ gần 90% so với YOLOv4 Điềà̀u nàà̀y coế́ nghĩa làà̀ YOLOv5 coế́ thểể đượg̣c triểển khai cho thiếế́t bịg̣ nhúế́ng dễ dàà̀ng nhiềà̀u.[6] 24 CHƯƠNG : THIẾT KẾ HỆTHỐNG 3.1 TâpG̣ dữ liêu chuẩn bị cho quá trinh huấn luyêṇ Để thực hiêṇ qua trình gan nhan và huấn luyêṇ ta cân chuẩn bị tâpg̣ dữ liêụ khoản 3000 ảnh về 10 loài vâṭ(Trâu, Voi, Tê giác, Ngựg̣a vằn, Nai, Hươu cao cổ, Ngựg̣a đua, Sư tửể, Vẹt, Hổ), vơi môi hình se co file gan nhan kem.Dưới làà̀ sốế́ hìà̀nh ảểnh vềà̀ tập dữữ̃ liệu Hình 3.1: Hình ảnh về Trâu va label cua tưng hình 25 Hình 3.2: Hình ảnh về Hươu va label cua tưng hình Hình 3.3: Hình ảnh về Voi va label cua tưng hình 26 Hình 3.4: Hình ảnh về Hươu cao cổ va label cua tưng hình Sử dụng công cụ Flip và Rotate của website app.roboflow.ai để tạo cho môi hình thêm hình dạng lâṭvà xoay trai phải 90 đô,g̣resize và gan nhan cho những file đo nhăm đa dạng hoa tâpg̣ dữ liêụ để giúp cho qua trình huấn luyêṇ được chính xac Hình 3.5: Sử dụng roboflow.ai đê gia tăng tâp ̣ dữ liêụ vôn co 27 3.2 Quá trinh huấn luyêṇ Sử dụng nền tảng co sẵn Google Colab kết hợp vơi models YOLOv5 để tiến hành qua trình huấn luyêṇ Hình 3.6: clone Yolov5 va cai đăṭcac dependencies Sau đo ta liên kết link của tâpg̣ dữ liêụ đa được ta dung app.roboflow đa resize, flip,rotate, thêm dữữ̃ liệu thủể công vàà̀o tab File vào colab để tiến hành huấn luyêṇ Hình 3.7: Thêm cac hình va label cho qua trình huấn luyêṇ Sau đo phân loại cac hình theo label của riêng tưng loài theo file data.yaml 28 Hình 3.8: Phân chia hình theo label tưng loai Sau đoế́ tiếế́n hàà̀nh địg̣nh nghĩa cấế́u hìà̀nh vàà̀ kiếế́n trúế́c mô hìà̀nh theo tập dữữ̃ liệu vàà̀ tiếế́n hàà̀nh huấế́n luyện bước tiếế́p theo 3.2.1 Tiến hành huấn luyêṇ Huấn luyêṇ vơi 16 lơp và 100 lân Hình 3.9: Qua trình huấn luyêṇ vơi 16 lơp va 100 lân Sau qua trình huấn luyêṇ xong ta tiến hành chạy tiếp code display images sau đa train xog 29 CHƯƠNG 4: KẾT QUA 4.1 Kết qua quá trinh huấn luyêṇ Hình 4.1: Kết quả display sau đã train xong 30 4.2 Hoạt đôngG̣ của G̣thống Dươi là môṭsố hình ảnh qua trình test sau đa training xong 31 Sau tiến hành kiểm tra, nhom em đưa được bảng đanh gia mức đô g̣chính xac: Tên đôngg̣ vâṭ Trâu Hươu Voi Hươu cao cổ Ngựg̣a đua Sư tửể Vẹt Tê giác Hổ Ngựg̣a vằn Bảng 1: Đanh gia mức đô ̣chinh xac cua qua trình nhâṇ diêṇ 32 CHƯƠNG 5: KẾT LUÂṆ VA HƯỚNG PHAT TRIÊN 5.1 Kết luâṇ Mô hình đa bản thực hiêṇ được viêcg̣nhâṇ dạng đôngg̣ vâṭdựa vào tâpg̣ dữ liêụ huấn luyêṇ Đô g̣chính xac chưa cao vì tâpg̣ dữ liêụ íế́t, và đô đg̣ a dạng đôngg̣ vâṭthấp, và hạn chế viêcg̣nhâṇ diêṇ nhiều loài cung môṭlúc 5.2 Hướng phát triển Cảểi tiếế́n thêm giảểi thuật xửể lýế́ ảểnh đểể thu nhận đượg̣c hìà̀nh ảểnh chấế́t lượg̣ng tốế́t Cảểi tiếế́n giảểi thuật đểể ứế́ng dụg̣ng coế́ thểể phát đượg̣c động vật chưa coế́ đặc tíế́nh riêng vàà̀ loàà̀i tương đốế́i đa dạg̣ng Đa dạg̣ng hoế́a tập mẫu đểể ứế́ng dụg̣ng coế́ thểể nhận dạg̣ng đượg̣c đa dạg̣ng loàà̀i vàà̀ thu đượg̣c kếế́t quảể chíế́nh xác 33 PHỤG̣ LỤG̣C # clone YOLOv5 repository !git clone https://github.com/ultralytics/yolov5 # clone repo %cd yolov5 !git reset hard 886f1c03d839575afecb059accf74296fad395b6 # install dependencies as necessary !pip install -qr requirements.txt # install dependencies (ignore errors) import torch from IPython.display import Image, clear_output # to display images from utils.google_utils import gdrive_download # to download models/datas ets # clear_output() print('Setup complete Using torch %s %s' % (torch. version , torch.cuda get_device_properties(0) if torch.cuda.is_available() else 'CPU')) %cd /content # this is the YAML file Roboflow wrote for us that we're loading into this notebook with our data %cat data.yaml # define number of classes based on YAML import yaml with open("data.yaml", 'r') as stream: num_classes = str(yaml.safe_load(stream)['nc']) #this is the model configuration we will use for our tutorial %cat /content/yolov5/models/yolov5s.yaml #customize iPython writefile so we can write variables from IPython.core.magic import register_line_cell_magic @register_line_cell_magic def writetemplate(line, cell): with open(line, 'w') as f: f.write(cell.format(**globals())) %%writetemplate /content/yolov5/models/custom_yolov5s.yaml # parameters nc: {num_classes} # number of classes depth_multiple: 0.33 # model depth multiple width_multiple: 0.50 # layer channel multiple # anchors anchors: - [10,13, 16,30, 33,23] # P3/8 - [30,61, 62,45, 59,119] # P4/16 - [116,90, 156,198, 373,326] # P5/32 34 # YOLOv5 backbone backbone: # [from, number, module, args] [[-1, 1, [-1, 1, [-1, 3, [-1, 1, [-1, 9, [-1, 1, [-1, 9, [-1, 1, [-1, 1, [-1, 3, Focus, [64, 3]], Conv, [128, 3, 2] BottleneckCSP, [1 Conv, [256, 3, 2] BottleneckCSP, [2 Conv, [512, 3, 2] BottleneckCSP, [5 Conv, [1024, 3, SPP, [1024, [5, BottleneckCSP, [1 ] # YOLOv5 head head: [[-1, 1, Conv, [512, 1, 1]], [-1, 1, nn.Upsample, [None, 2, 'nearest']], [[-1, 6], 1, Concat, [1]], # cat backbone P4 [-1, 3, BottleneckCSP, [512, False]], # 13 [-1, 1, Conv, [256, 1, nn.Upsample, [None, 2, 1, Concat, [1]], # cat [-1, 3, BottleneckCSP, 1]], [-1, 1, 'nearest']], [[-1, 4], backbone P3 [256, False]], # 17 (P3/8-small) [-1, 1, Conv, [256, 3, 2]], [[-1, 14], 1, Concat, [1]], # cat head P4 [-1, 3, BottleneckCSP, [512, False]], # 20 (P4/16-medium) [-1, 1, Conv, [512, 3, 2]], [[-1, 10], 1, Concat, [1]], # cat head P5 [-1, 3, BottleneckCSP, [1024, False]], # 23 (P5/32-large) [[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5) ] # train yolov5s on custom data for 100 epochs # time its performance %%time %cd /content/yolov5/ !python train.py img 416 batch 16 epochs 100 data ' /data.yaml' - -cfg /models/custom_yolov5s.yaml weights '' name yolov5s_results cache # first, display our ground truth data 35 print("GROUND TRUTH TRAINING DATA:") Image(filename='/content/yolov5/runs/train/yolov5s_results/test_batch0_lab els.jpg', width=900) # print out an augmented training example print("GROUND TRUTH AUGMENTED TRAINING DATA:") Image(filename='/content/yolov5/runs/train/yolov5s_results/train_batch0.jp g', width=900) # use the best weights! %cd /content/yolov5/ !python detect.py weights runs/train/yolov5s_results/weights/best.pt -img 416 conf 0.4 source /test/images #display inference on ALL test images #this looks much better with longer training above import glob from IPython.display import Image, display for imageName in glob.glob('/content/yolov5/runs/detect/exp/*.jpg'): #assu ming JPG display(Image(filename=imageName)) print("\n") 36 TAI LIÊỤ THAM KHAO [1] Phạm Đình Khanh, “YOLO-You only look once”, Khoa hoc dữ liêụ-Khanh’s blog [2] Phạg̣m Việt Bìà̀nh, Đỗ Năng Toàà̀n, “Giáo trìì̀nh mơn học Xửả̉ lý ảả̉nh”, Khoa Công nghệ Thông tin – Đạg̣i học Thái Nguyên, 2007 [3] Nguyễn Quang Hoan, “Giáo trìì̀nh Xửả̉ lý ảả̉nh”, Học viện Công nghệ Bưu chíế́nh Viễn thông, 2006 [4] Nguyễn Đìà̀nh Thúế́c, “Trí tuệ nhân tạo, mạng NơRon phương pháp ứế́ng dụ ̣ng”, NXB Giáo Dụg̣c 2000 [5] Quốc Phạm,”Tìm hiểu mô hình YOLO cho bài toan Object Detection” [6] Joseph Nelson, Jacob Solawetz, “YOLOv5 is Here:State-of-the-Art Object Detection at 140 FPS” 37 38 ... ngàà̀y càà̀ng nhiềà̀u vàà̀ đoế́ coế́ mơ hình YOLOv5 cho bàà̀i tốn nhận diện, cụg̣ thểể làà̀ ứế́ng dụg̣ng vàà̀o đềà̀ tàà̀i ? ?Nhận diện động vật? ?? 1.2 Muc tiêu đề tài Vâṇ dụng được những... song giúế́p tăng tốế́c độ nhận diện vàà̀ giảểm thời gian huấế́n luyện cách tốế́i ưu 2.4.1 Phân loại YOLOv5 Coế́ mô hìà̀nh khác nhau: YOLOv5s, YOLOv5m, YOLOv5l, YOLOv5x Đầu tiên làà̀ nhỏ... loài đôngg̣ vâṭco tâpg̣ dữ liêụ 1.3 Giới hạn đề tài Trong đề tài này nhận diện đượg̣c 10 loàà̀i động vật: Trâu, Voi, Tê giác, Ngựg̣a vằn, Nai, Hươu cao cổ, Ngựg̣a đua, Sư tửể, Vẹt,

Ngày đăng: 01/12/2021, 09:07

Hình ảnh liên quan

BẢNG NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN NÔỊDUNG THỰC HIÊNNÔỊDUNG THỰC HIÊN - Nhận diện động vật bằng YOLOv5
BẢNG NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN NÔỊDUNG THỰC HIÊNNÔỊDUNG THỰC HIÊN Xem tại trang 3 của tài liệu.
BẢNG NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN NÔỊDUNG THỰC HIÊNNÔỊDUNG THỰC HIÊN - Nhận diện động vật bằng YOLOv5
BẢNG NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN NÔỊDUNG THỰC HIÊNNÔỊDUNG THỰC HIÊN Xem tại trang 3 của tài liệu.

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan