
























Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
essay report on photo processing learn about photo processing and do small projects
Typology: Papers
1 / 32
This page cannot be seen from the preview
Don't miss anything!
Sinh viên thực hiện: Ngô Chế Quốc Đại
Lớp: CQ.61.TĐH
Giảng viên hướng dẫn: Mai Vạn Hậu
Hình 2.5. Hình biểu diễn trước và sau khi sử dụng thuật toán non-max suppression.
Trong thế giới hiện đại, vấn đề về sự suy thoái môi trường sống, biến đổi khí hậu
và săn bắn trái phép đang đẩy nhiều loài động vật đến bờ vực tuyệt chủng. Thực trạng
này không chỉ ảnh hưởng đến đa dạng sinh học mà còn gây ra mất cân bằng sinh thái,
đe dọa trực tiếp đến cuộc sống của con người.
Để đối phó với những thách thức này, các nhà khoa học và nhà bảo tồn đã từ lâu áp dụng
nhiều phương pháp truyền thống để giám sát và bảo vệ các loài động vật. Tuy nhiên,
trong thời đại của trí tuệ nhân tạo, chúng ta có thêm một công cụ mạnh mẽ để hỗ trợ
công việc này.
Trí tuệ nhân tạo, đặc biệt là trong lĩnh vực thị giác máy tính, đã mang lại nhiều
tiềm năng trong việc nhận diện và phân loại động vật. Mạng nơron học sâu, chẳng hạn
như mô hình YOLO (You Only Look Once), đã được áp dụng rộng rãi để xử lý các
nhiệm vụ nhận diện đối tượng, bao gồm cả việc nhận diện và phân loại động vật.
Bằng cách kết hợp sức mạnh của trí tuệ nhân tạo và các công nghệ thị giác máy
tính, chúng ta có thể tăng cường khả năng giám sát và bảo vệ đa dạng sinh học, từ việc
nhận diện loài động vật quý hiếm đến giám sát và quản lý các khu vực sinh thái tự nhiên.
Trong báo cáo tiểu luận này, chúng em sẽ đi sâu vào việc tìm hiểu về các phương pháp,
thuật toán về học sâu trong việc nhận diện động vật.
Chúng em xin cảm ơn Thầy và các bạn đã hỗ trợ nhóm chúng em hoàn thành bài tiểu
luận này. Chúng em hy vọng rằng báo cáo này sẽ đóng góp vào sự hiểu biết về một ứng
dụng xử lý ảnh trong bảo vệ đa dạng sinh học và môi trường sống.
và độ chính xác trong công tác giám sát và bảo vệ động vật mà còn giảm thiểu tác động
trực tiếp đến động vật, tiết kiệm thời gian và nguồn lực. Việc áp dụng công nghệ xử lý
ảnh vào nhận diện động vật mang lại nhiều lợi ích đáng kể.
Trước hết, công nghệ này giúp tăng cường khả năng giám sát và thu thập dữ liệu
một cách liên tục và chi tiết, cung cấp những thông tin quan trọng về hành vi, di chuyển
và môi trường sống của động vật.
Thứ hai, việc tự động hóa quy trình nhận diện giúp giảm thiểu sai sót và tăng cường
hiệu quả phân tích dữ liệu.
Cuối cùng, công nghệ này không xâm lấn, đảm bảo động vật không bị làm phiền
hay tổn thương trong quá trình nghiên cứu.
Trong bối cảnh tình hình động vật trên thế giới đang đứng trước nhiều nguy cơ,
việc ứng dụng công nghệ xử lý ảnh vào nhận diện và bảo vệ động vật không chỉ là một
hướng đi mới mẻ mà còn là một bước tiến quan trọng, góp phần vào công cuộc bảo vệ
môi trường và đa dạng sinh học. Chính vì lý do này nên nhóm chúng em đã tìm hiểu và
thực hiện đề tài “NHẬN DIỆN ĐỘNG VẬT ỨNG DỤNG XỬ LÝ ẢNH VỚI MÔ
1.2. Mục tiêu đề tài
Vận dụng được những kiến thức cơ bản về huấn luyện mạng nơ-ron.
Xây dựng được một mô hình có khả năng huấn luyện các tập dữ liệu động vật
khác nhau.
Nhận diện được tất cả các loài động vật có trong tập dữ liệu.
2.1. Tổng quan về YOLO
YOLO (You Only Look Once) là một mô hình mạng nơ-ron tích chập (CNN) nổi
bật được sử dụng cho việc phát hiện, nhận dạng và phân loại đối tượng trong hình ảnh.
Mô hình này kết hợp giữa các lớp tích chập (convolutional layers) và các lớp kết nối
đầy đủ (fully-connected layers). Các lớp tích chập chịu trách nhiệm trích xuất các đặc
trưng của ảnh, trong khi các lớp kết nối đầy đủ dự đoán xác suất và tọa độ của các đối
tượng.
Mặc dù YOLO có thể không phải là thuật toán tốt nhất về độ chính xác, nhưng nó
được công nhận là một trong những thuật toán nhanh nhất trong các lớp mô hình phát
hiện đối tượng (object detection). YOLO có thể đạt được tốc độ gần như thời gian thực
mà không làm giảm đáng kể độ chính xác so với các mô hình hàng đầu khác. Điểm
mạnh của YOLO nằm ở khả năng phát hiện và nhận dạng nhiều đối tượng khác nhau
trong một bức ảnh, thay vì chỉ phân loại duy nhất một nhãn cho mỗi ảnh như trong các
bài toán phân loại (classification) thông thường.
Một trong những ưu điểm quan trọng của YOLO là khả năng sử dụng thông tin từ
toàn bộ bức ảnh một lần và dự đoán toàn bộ hộp chứa các đối tượng (object boxes). Mô
hình được xây dựng theo kiểu end-to-end, tức là toàn bộ quá trình huấn luyện có thể
thực hiện hoàn toàn bằng phương pháp giảm độ dốc (gradient descent), giúp tối ưu hóa
hiệu suất và độ chính xác.
Tính đến thời điểm hiện tại, YOLO có nhiều phiên bản với nhiều cải tiến phát triển
hiện tại phiên bản mới và ổn định nhất là YOLOv8, đã khắc phục nhiều nhược điểm của
các phiên bản trước đó như lỗi về việc xác định vị trí của vật thể, các ràng buộc về không
gian trên những hộp chứa (bounding box), và khả năng dự đoán hạn chế của mỗi ô lưới
(grid cell) đối với số lượng hộp chứa. Sự cải tiến liên tục qua các phiên bản giúp YOLO
trở thành một trong những lựa chọn hàng đầu cho các ứng dụng yêu cầu tốc độ và hiệu
quả trong việc phát hiện đối tượng.
2.2. Kiến trúc mạng YOLO
Base network của yolo sử dụng chủ yếu là các convoluional layer và các fully -
conntected layer. Các kiến trúc Yolo cũng khá đa dạng và có thể tùy biến thành các
version cho nhiều input shape khác nhau.
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.
2.3. Sơ đồ thuật toán của YOLO
Hình 2.3. Tổng quan về thuật toán 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 SxS ô thường thì sẽ là 3x3,7x7,9x9,…. Việc chia ô có ảnh hưởng đến việc
phát hiện đối tượng của mô hình.
Với Input là 1 ảnh, đầu ra mô hình là một ma trận 3 chiều có kích thước SxSx(
x N + M) với số lượng tham số mỗi ô là (5 x 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. Xét ví dụ ở hình trên chia thành 7x7 ô, mỗi ô cầndự
đoán 2 bounding box và 3 object: con chó, ô tô, xe đạp thì output sẽ là 7x7x13, mỗi ô sẽ
có 13 tham số, cho kết quả trả về (7x7x2 =98) bounding box.
2.4. Đầu ra của YOLO
Output của mô hình YOLO là một véc tơ sẽ bao gồm các thành phần:
y
T
0
௫
௬
௪
௬
௨ௗ௫
ଵ
ଶ
௦ ௦௦௦
Trong đó:
p 0
: là xác suất dự báo vật thể xuất hiện trong bounding box.
௫
௬
௪
௬
௨ௗ௫
: giúp xác định bounding box. Trong đó t x
,t y
là tọa độ tâm và t w
,t h
là kích thước rộng, dài của bounding box.
ଵ
ଶ
௦ ௦௦௦
: là véc tơ phân phối xác suất dự báo của các classes.
2.5. Hàm mất mát (Loss Function)
Sau khi đã định nghĩa được những thông tin mà mô hình cần phải dự đoán, và kiến
trúc của mô hình CNN. Bây giờ là lúc mà chúng ta sẽ định nghĩa hàm lỗi.
YOLO sử dụng hàm độ lỗi bình phương giữ dự đoán và nhãn để tính độ lỗi cho mô hình.
Cụ thể, độ lỗi tổng của chúng ta sẽ là tổng của 3 độ lỗi 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ạo độ cũng như chiều dài, rộng của Boundary Box -
Localization Loss.
Độ lỗi của ô vuông có chứa object nào hay không - Confidence Loss.
Chúng ta mong muốn hàm lỗi có chức năng sau:
Trong quá trình huấn luyện, mô hình sẽ nhìn vào những ô vuông có chứa object.
Tăng Classification Score lớp đúng của object đó lên.
Sau đó, cũng nhìn vào ô vuông đó, tìm boundary box tốt nhất trong 2 boxes được
dự đoán.
Tăng Localization Score của boundary box đó lên, thay đổi thông tin boundary
box để gần đúng với nhãn. Đối với những ô vuông không chứa object, giảm
Confidence Score và chúng ta sẽ không quan tâm đến classification score và
Localization Score của những ô vuông này.
box còn lại trong ô vuông (được tô viền màu xanh) sẽ được bỏ qua trong quá trình tính
toán độ lỗi, nhằm giảm thiểu sự phức tạp và tránh các tính toán không cần thiết. Điều
này cũng giúp tập trung vào việc tối ưu hóa bounding box có khả năng cao nhất, đảm
bảo rằng mô hình học được các đặc trưng quan trọng nhất cho việc phát hiện vật
thể.Localization loss là độ lỗi quan trọng nhất trong 3 loại độ lỗi trên. Do đó, ta cần đặt
trọng số cao hơn cho độ lỗi này.
2.5.3. Confidence Loss
Confidence loss thể hiện độ 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 nên cả những ô vuông chứa object và không
chứa object.
ௗ
ଶ
ୀ
ௌ
మ
ୀ
௧
ଶ
ୀ
ௌ
మ
ୀ
Độ lỗi này là độ lỗi bình phường của dự đoán boundary đó chứa object với nhãn
thực tế của ô vuông tại vị trí tương ứng, chúng ta lưu ý rằng, độ lỗi tại ô vuông mà nhãn
chứa object quan trọng hơn là độ lỗi tại ô vuông không chứa object, do đó chúng ta cần
sử dụng hệ số lambda để cân bằng điều này.
Tổng kết lại, tổng lỗi của chúng ta sẽ bằng tổng của 3 loại độ lỗi trên
௧௧
௦௦௧
௭௧
ௗ
2.6. Dự đoán 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 trên feature map. Điều này giúp đảm bảo rằng việc dự đoán bounding
box sẽ không lệch quá xa khỏi vị trí trung tâm của cell, giữ cho quá trình huấn luyện mô
hình trở nên ổn định hơn. Nếu bounding box dự đoán có thể được đặt vào bất kỳ phần
nào của hình ảnh, như trong trường hợp của mạng regional proposal network (RPN),
việc huấn luyện mô hình có thể trở nên không ổn định do sự phân tán quá rộng của các
dự đoán.
Giả sử chúng ta có một anchor box có kích thước (pw, ph) tại cell 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 sẽ 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ệ (scale) so với kích thước của anchor box. Các tham số này sau
đó sẽ được sử dụng để xác định bounding box dự đoán b có tâm (bx, by) và kích thước
(bw, bh) thông qua các hàm sigmoid và hàm exponential như các công thức dưới đây.
b x
=(t x
) + c x
b y
=(t y
) + c y
bw= w𝑒
௧
ೢ
b h
h
௧
Hàm sigmoid được sử dụng để giới hạn độ lệch của tâm bounding box, đảm bảo
rằng nó nằm trong một phạm vi hợp lý xung quanh cell trên feature map. Điều này giúp
tránh việc bounding box dự đoán bị lệch quá xa, duy trì tính ổn định trong quá trình
huấn luyện mô hình. Trong khi đó, hàm exponential được áp dụng cho các tham số kích
thước để đảm bảo rằng các giá trị tỷ lệ luôn dương, giúp xác định kích thước bounding
box một cách chính xác và hợp lý. Phương pháp này không chỉ giúp mô hình dễ dàng
học được các đặc trưng cần thiết để phát hiện vật thể một cách hiệu quả, mà còn giảm
thiểu nguy cơ dự đoán sai lệch quá nhiều so với vị trí thực tế của vật thể. Kết hợp các
phép biến đổi này giúp mô hình đạt được hiệu suất tốt hơn trong việc phát hiện và dự
đoán bounding box, góp phần nâng cao độ chính xác và độ tin cậy của hệ thống phát
hiện vật thể tổng thể.
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 2.4. Công thức ước lượng bounding box từ anchor box.
2.7. YOLOv
2.7.1. Tổng quan về YOLOv
YOLOv8 là một mô hình nhận dạng đối tượng tiên tiến dựa trên mạng
convolutional neural network (CNN) được phát triển bởi Joseph Redmon và nhóm
nghiên cứu của ông tại Đại học Washington. Đây là phiên bản nâng cấp của YOLOv7,
với những cải tiến đáng kể về cả tốc độ và độ chính xác trong việc nhận diện đối tượng.
Những tiến bộ này đạt được thông qua một loạt các cải tiến kỹ thuật, bao gồm việc sử
dụng mạng kim tự tháp đặc trưng (feature pyramid network), các mô-đun chú ý không
gian (spatial attention modules), và các kỹ thuật tăng cường dữ liệu tiên tiến (advanced
data augmentation techniques).
Mô hình YOLOv8 sử dụng kiến trúc darknet-53, một loại mạng nơ-ron sâu được
tối ưu hóa cho việc trích xuất đặc trưng từ hình ảnh. Darknet-53 có 53 lớp convolutional,
giúp mô hình học được các đặc trưng phức tạp từ dữ liệu hình ảnh một cách hiệu quả.
Trên cơ sở các đặc trưng này, thuật toán nhận dạng đối tượng của YOLOv8 được áp
dụng để xác định vị trí và phân loại các đối tượng trong ảnh. Dưới đây là các tính năng
nổi bật của YOLOv8:
Tăng cường mô hình bằng cách thêm các kênh phân tán để tăng tốc độ tính toán.
Sử dụng kỹ thuật Attention để cải thiện khả năng nhận dạng đối tượng của mô
hình.
Áp dụng phương pháp đào tạo mới để tăng tốc độ hội tụ.
Sử dụng kiến trúc mạng nơ-ron mới: Sử dụng kiến trúc YOLOv4 làm cơ sở để
tăng hiệu suất và độ chính xác của mô hình.
Tích hợp cơ chế tự động điều chỉnh tỷ lệ tăng kích thước của hình ảnh đầu vào
(AutoScale).
Hỗ trợ giám sát bằng video (Video Supervision): Mô hình có khả năng phát hiện
và giám sát vật thể trong các video và đưa ra dự đoán liên tục trên toàn bộ video.
Tích hợp công nghệ Ensemble.
Tính năng điều chỉnh tỷ lệ tự động (AutoAnchor): Cải thiện việc phát hiện đối
tượng với nhiều tỷ lệ khác nhau.
Hình 2.6. Lịch sử hình thành
2.7.2. Ưu điểm và hạn chế của YOLOv
a. Ưu điểm
Tốc độ: YOLOv8 được đánh giá là nhanh chóng và thời gian phản hồi thấp, giúp
xử lý các tác vụ nhận diện đối tượng và phân-segment ảnh trong thời gian thực.
Độ chính xác: YOLOv8 được xây dựng trên các tiến bộ về học sâu và thị giác
máy tính, đảm bảo độ chính xác cao trong việc nhận diện đối tượng.
Sự linh hoạt: YOLOv8 hỗ trợ việc nhận diện đối tượng và phân-segment trên cả
GPU và CPU, tận dụng các công nghệ như TensorRT của Nvidia và OpenVino
của Intel.
b. Nhược điểm:
Phải có kiến thức chuyên sâu về Machine Learning, Deep Learning và các thuật
toán liên quan. Cần phải được huấn luyện trên một tập dữ liệu đủ lớn và đa dạng
để đạt được hiệu quả cao nhất.
Yêu cầu các tài nguyên tính toán cao để đạt được tốc độ xử lý nhanh và chính
xác.
YOLOv8 có thể không hoạt động tốt trong tất cả các môi trường và có thể cần
thêm điều chỉnh hoặc tối ưu hóa để đạt được hiệu suất tối ưu.
Hình 2.7. So sánh độ chính xác và hiệu suất của các mô hình YOLO
khác nhau của mạng hoặc từ các nguồn khác nhau để tạo ra một tensor có thông tin
phong phú hơn.
C2f (C2F - C2F Block)
C2f có thể là viết tắt của "Cross Stage Partial Network (CSP) with Focus". Đây
là một phần cấu trúc sử dụng CSP và kỹ thuật tập trung để tối ưu hóa việc truyền thông
tin và giảm độ phức tạp của mô hình.
Upsample
Upsample là quá trình tăng kích thước không gian của tensor (ảnh) thông qua các
kỹ thuật như interpolation (nội suy). Trong YOLOv8, upsample thường được sử dụng
để đưa các đặc trưng từ các mức độ phân giải thấp lên mức độ phân giải cao hơn để kết
hợp với các đặc trưng từ các tầng trước.
Conv (Convolution)
Conv là viết tắt của convolution (tích chập), một kỹ thuật trong mạng nơ-ron tích
chập (CNN) để trích xuất các đặc trưng từ ảnh đầu vào. Các lớp convolution áp dụng
các bộ lọc (filter) để tạo ra các bản đồ đặc trưng (feature map).
Detect
Detect là một lớp hoặc một khối trong YOLOv8 chịu trách nhiệm trực tiếp dự
đoán các bounding boxes và các lớp đối tượng. Đây là nơi mà các đầu ra cuối cùng của
mạng được tạo ra.
Loss Terms
Các thuật ngữ liên quan đến hàm loss trong YOLOv8 bao gồm:
Bbox (Bounding Box Regression): Đây là thành phần của hàm loss liên quan đến
việc dự đoán các tọa độ của bounding boxes. Nó đo lường sự khác biệt giữa các
bounding boxes dự đoán và bounding boxes thực tế.
Cls (Classification): Đây là thành phần của hàm loss liên quan đến việc dự đoán
lớp của các đối tượng. Nó đo lường sự khác biệt giữa các dự đoán lớp và các nhãn lớp
thực tế.
CIoU (Complete Intersection over Union): Đây là một metric nâng cao cho
bounding box regression, không chỉ tính toán IoU mà còn bao gồm các yếu tố như
khoảng cách giữa các tâm của các bounding boxes, tỷ lệ khung hình, và độ chồng chéo.
DFL (Distribution Focal Loss): Đây là một kỹ thuật loss được sử dụng để cải
thiện độ chính xác của các dự đoán bounding box thông qua việc tối ưu hóa các phân
phối của bounding box.
BCE (Binary Cross-Entropy): Đây là một hàm loss thường được sử dụng cho các
bài toán phân loại nhị phân. Trong YOLOv8, BCE có thể được sử dụng cho các thành
phần phân loại của loss.
Tóm lại:
Backbone: Trích xuất đặc trưng từ ảnh đầu vào.
Head: Dự đoán bounding boxes và lớp đối tượng.
Concat: Nối các tensor lại với nhau.
C2f: Cấu trúc CSP với kỹ thuật tập trung.
Upsample: Tăng kích thước không gian của tensor.
Conv: Tích chập để trích xuất đặc trưng.
Detect: Dự đoán bounding boxes và lớp đối tượng cuối cùng.
Loss Terms:
Bbox: Regression của bounding boxes.
Cls: Phân loại lớp đối tượng.
CIoU: Metric nâng cao cho bounding box regression.
DFL: Kỹ thuật focal loss cho bounding box.
BCE: Hàm loss cho phân loại nhị phân.