Đề tài này tập trung vào việc sử dụng mô hình nhận diện đốitượng YOLOv8 để tự động nhận dạng trang phục bảo hộ lao động tạicác công trường.. Mô hình YOLO You only look once: 1.1YOLO là g
Trang 1KHOA ĐIỆN – ĐIỆN TỬ
GVHD : ThS.Nguyễn Văn Thái
TÊN SV : Nguyễn Công Nhuận Phúc
Cao Minh Nhật
LỚP : CA20A1A
NGÀNH : CNKT Điều Khiển Và Tự Động Hoá KHOA : Điện-Điện Tử
Trang 2Mục lục I.
Tổng quan về đề tài 1
II Cơ sở lý thuyết 2
1. Mô hình YOLO (You only look once): 2
1.1 YOLO là gì: 2
1.2 Cách YOLO hoạt động: 3
1.3 Hàm tính IOU: 4
1.4 Loss Funtion (Hàm lỗi): 5
1.5 Classifycation loss (tổn thất phân loại): 5
1.6 Localization loss (tổn thất về vị trí): 5
1.7 Confidence loss (độ lỗi dự đoán): 7
1.8 Total loss (tổng lỗi): 7
2 Chú thích thông tin đồ vật sử dụng CVAT: 8
2.1 CVAT là gì: 8
2.2 Vì sao sử dụng CVAT: 8
III Nguyên lý hoạt động 10
1. Tải ảnh: 10
2 Chú thích thông tin ảnh: 11
IV Mô phỏng hoạt động 14
1 Nhận diện đối tượng qua ảnh: 14
2 Nhận diện đối tượng qua video: 16
V Kết quả mô phỏng 18
VI Kết luận 19
VII Hướng phát triển 20
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Đà Nẵng, ngày tháng năm
Giảng viên hướng dẫn
(kí và ghi rõ họ tên)
Trang 4LỜI NÓI ĐẦU
Trong thời đại ngày nay, Xử lý ảnh đóng vai trò quan trọng trongnhiều lĩnh vực của công nghiệp, đem lại những tiện ích và ứng dụng
đa dạng Khả năng thu thập, xử lý, và hiểu được thông tin từ hình ảnh
đã mở ra nhiều cánh cửa tiềm năng cho sự phát triển và tối ưu hóa cácquy trình sản xuất, kiểm soát chất lượng, và quản lý tài nguyên trongcác ngành công nghiệp khác nhau
Trong ngữ cảnh ngày càng nhộn nhịp của môi trường làm việccông nghiệp, việc đảm bảo an toàn cho người lao động đã trở thànhmột ưu tiên hàng đầu Để đáp ứng yêu cầu ngày càng cao về quản lý
an toàn lao động, ứng dụng của công nghệ xử lý ảnh đã trở thành mộtcông cụ quan trọng Trong bối cảnh này, nghiên cứu và triển khai các
hệ thống nhận diện người lao động mặc trang phục bảo hộ lao độngqua xử lý ảnh đang mở ra những triển vọng mới trong việc đảm bảo antoàn và quản lý hiệu quả trong môi trường làm việc công nghiệp.Bài báo cáo này tập trung vào việc phân tích ứng dụng của xử lýảnh trong nhận diện người lao động mặc trang phục bảo hộ lao động,giúp nâng cao khả năng giám sát và quản lý an toàn tại các nhà máy,xưởng sản xuất và các môi trường công nghiệp khác Chúng ta sẽ đisâu vào cách các hệ thống này hoạt động, những thách thức cụ thể màchúng giúp giải quyết, cũng như những lợi ích đáng kể mà chúng đemlại trong việc giảm rủi ro tai nạn lao động và duy trì môi trường làmviệc an toàn
Qua nghiên cứu này, chúng ta sẽ nhận thức rõ hơn về tiềm năng
và sức mạnh của xử lý ảnh trong việc nâng cao chuẩn an toàn laođộng, tăng cường hiệu suất sản xuất, và xây dựng một môi trường làmviệc công nghiệp hiện đại và bền vững
Nhóm em xin gửi lời cảm ơn chân thành đến TS Nguyễn VănThái đã tận tình chỉ dạy và đồng hành trong suốt quá trình học Nhữngkiến thức mà thầy truyền đạt rất cô đọng và có trọng tâm, khiến choviệc học trở nên đơn giản và dễ tiếp thu hơn
Trang 5Cuối cùng, do thời gian thực hiện ngắn và kiến thức chuyên môncòn hạn chế, có thể sẽ phát sinh sai sót trong quá trình thực hiện báocáo Rất mong nhận được lời khuyên và góp ý của Thầy để bài báocáo của em trở nên hoàn thiện hơn.
Một lần nữa, nhóm em xin chân thành cảm ơn!
Trang 6I Tổng quan về đề tài.
Ngày nay, vấn đề an toàn lao động trở thành mối quan tâm hàngđầu trong môi trường công việc chuyên nghiệp, đặc biệt là trong cáccông trường xây dựng và các nhà máy công nghiệp Để đảm bảo antoàn cho người lao động, việc sử dụng trang phục bảo hộ là quantrọng, nhưng đôi khi việc kiểm tra và đảm bảo việc sử dụng đúngtrang phục trở nên khó khăn trong các môi trường lớn và phức tạp, đặtbiệt là thói quen của công nhân Việt Nam thường không mang đầy đủhoặc không mang đồ bảo hộ đúng theo yêu cầu
Đề tài này tập trung vào việc sử dụng mô hình nhận diện đốitượng YOLOv8 để tự động nhận dạng trang phục bảo hộ lao động tạicác công trường YOLOv8, với khả năng nhận diện và phân loại đốitượng nhanh chóng, được lựa chọn để xử lý vấn đề này
Cụ thể, đề tài sẽ sử dụng YOLOv8 để nhận diện các thành phầncủa trang phục bảo hộ như mũ bảo hiểm, áo bảo hộ Khi nhận diệnđược, hệ thống sẽ cung cấp thông báo hoặc ghi lại thông tin về việcđeo đầy đủ trang phục bảo hộ tương ứng theo số lượng công nhân xuấthiện trong ảnh hoặc video Điều này giúp nâng cao tính hiệu quả vàchính xác trong quản lý an toàn lao động tại các công trường, đồngthời giảm thiểu rủi ro tai nạn
Hình 1.1 Trang phục ở công trường xây dựng thường có áo phản
quang và mũ bảo hộ
1
Trang 7Với sự kết hợp giữa công nghệ nhận dạng đối tượng hiệu quả vàmục tiêu cụ thể trong việc đảm bảo an toàn lao động, đề tài này hứahẹn mang lại giải pháp toàn diện và tiện lợi cho việc quản lý an toànlao động ở các công trường công nghiệp và xây dựng.
II Cơ sở lý thuyết.
1 Mô hình YOLO (You only look once):
1.1YOLO là gì:
Object Detection (nhận diện đối tượng) là một bài toán quan trọngtrong lĩnh vực Computer Vision (thị giác máy tính), thuật toán ObjectDetection được chia thành hai nhóm chính:
Họ các mô hình RCNN (Region-Based Convolution NeuralNetworks) dịch ra là mạng nơ-ron cấu trúc dựa trên khu vực, nóđược sử dụng để giải quyết các bài toán về định vị và nhận diệnvật thể
Họ các mô hình YOLO dùng để nhận dạng đối tượng được thiết
kế để nhận diện các vật thể trong thời gian thực
YOLO là một mô hình CNN (Convolution Neural Networks) dịch
ra là mạng nơ-ron tích chập cho việc phát hiện, nhận dạng, phân loạiđối tượng YOLO được tạo ra từ việc kết hợp giữa convolution layers(các lớp tích chập) và connected layers (các lớp kết nối) Trong đó cácconvolution layers sẽ trích xuất ra các đặc điểm 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
Trang 8Hình 2.1 Các dạng lớp tích chập kết hợp với lớp kết nối.
1.2 Cách YOLO hoạt động:
Đầ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ượngtrong bức ảnh Ảnh đầu vào được chia thành thành S× ô thường thìS
sẽ là 3×3, 7×7, 9×9 việc chia ô này có ảnh hưởng tới việc mô hìnhphát hiện đối tượng
Hình 2.2 Các bước nhận dạng vật trong ảnh của YOLO.
Với Input (đầu vào) là 1 ảnh, đầu ra mô hình là một ma trận 3chiều có kích thước S×S×(5×N+M) với số lượng tham số mỗi ô
3
Trang 9là (5×N+M) với N và M lần lượt là số lượng Bounding 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ự đoán 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ề 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ìnhYOLO1, vậy ta cần phải 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ìnhphát hiện đối tượng
Trang 10Trong đó Area of Overlap là diện tích phần giao nhau giữapredicted bounding box với grouth-truth bouding box, còn Area ofUnion 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 taytrong tập traing set và test set Nếu IOU > 0.5 thì prediction được đánhgiá là tốt.
1.4 Loss Funtion (Hàm lỗi):
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 Classifycation loss
- Độ lỗi của dự đoán tọa độ tâm, chiều dài, rộng của boundarybox (x, y ,w, h) - Localization loss
Độ lỗi của việc dự đoán bounding box đó chứa object so vớinhãn thực tế tại ô vuông đó - Confidence loss
1.5 Classifycation loss (tổn thất phân loại):
Classifycation loss - độ lỗi của việc dự đoán loại nhãn của object, hàmlỗ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 Classifycation loss được tính bằngcông thức sau:
5
Trang 111.6 Localization loss (tổn thất về vị trí):
Localization loss là hàm lỗi dùng để tính giá trị lỗi cho boundarybox được dự đoán bao gồm tọa độ tâm, chiều rộng, chiều cao của sovới vị trí thực tế từ dữ liệu huấn luyện của mô hình Lưu ý rằng chúng
ta không nên tính giá trị hàm lỗi này trực tiếp từ kích thức ảnh thực tế
mà cần phải chuẩn hóa về [0, 1] so với tâm của bounding box Việcchuẩn hóa này kích thước này giúp cho mô hình dự đoán nhanh hơn
và chính xác hơn so với để giá trị mặc định của ảnh
Hình 2.3 Ví dụ một bounding box của một object.
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ớigrouth-truth bounding box Tại mỗi ô có chưa object, ta chọn 1
Trang 12boundary 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 boundingbox và ( , ŷ) là tọa độ tâm của truth bounding box được tính như sau :x
Giá trị hàm lỗi dự đoán (w, h) của predicted bounding box so vớitruth bounding box được tính như sau :
Với ví dụ trên thì S = 7, B = 2, còn λcoord là trọng số thành phầntrong paper gốc tác giả lấy giá trị là 5
1.7 Confidence loss (độ lỗi dự đoán):
Confidence loss là độ lỗi giữa dự đoán boundary box đó chứaobject 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
Với ví dụ trên thì S =7, B =2, còn λnoobject là trọng số thànhphần trong paper gốc tác giả lấy giá trị là 0.5 Đối với các hộp j của ôthứ i nếu xuất hiệu object thì Ci =1 và ngược lại
1.8 Total loss (tổng lỗi):
Tổng lại chúng ta có hàm lỗi là tổng của 3 hàm lỗi trên :
7
Trang 13mẽ để thực hiện các nhiệm vụ quan trọng trong lĩnh vực chú thích hìnhảnh, bao gồm phát hiện đối tượng, phân loại, theo dõi, và phân đoạnđối tượng Điều này giúp đảm bảo sự thuận tiện và linh hoạt cho cácchuyên gia và nhóm làm việc trong lĩnh vực thị giác máy tính và họcmáy để thực hiện các dự án chú thích với hiệu suất cao.
2.2 Vì sao sử dụng CVAT:
Để tiến hành huấn luyện mô hình YOLO để nhận diện các vậtphẩm quan trọng như mũ bảo hộ, áo phản quang, và người lao động,việc chuẩn bị dữ liệu là quan trọng đối với quá trình này Chúng ta cầncung cấp cho mô hình những dữ liệu chất lượng và chú thích đầy đủ để
nó có thể học được một cách hiệu quả
Đầu tiên, dữ liệu cần phải đặc trưng rõ ràng về hình dạng và màusắc của các đối tượng quan tâm, bao gồm cả mũ bảo hộ và áo phản
Trang 14chụp, và môi trường làm việc để mô hình có thể học được đối vớinhiều tình huống thực tế.
Hình 3.1 Một số hình ảnh được chú thích sử dụng công cụ CVAT
Quan trọng nhất, chú thích dữ liệu cần phải được thực hiện mộtcách rõ ràng và đầy đủ Mỗi đối tượng cần được chú thích bằng cách
sử dụng các bounding box (hộp giới hạn) để xác định vị trí chính xáccủa đối tượng trong ảnh Chú thích cũng nên bao gồm các nhãn mô tảchí tiết về loại đối tượng, ví dụ: "mũ bảo hộ", "áo phản quang", "côngnhân"
9
Trang 15Dữ liệu chú thích chính xác là yếu tố then chốt giúp mô hình hiểubiểu hiện của các đối tượng mong muốn Việc này đảm bảo rằng môhình có khả năng nhận diện và phân loại các đối tượng này với độchính xác cao khi triển khai trong môi trường thực tế.
III Nguyên lý hoạt động.
1 Tải ảnh:
Để bắt đầu quá trình huấn luyện mô hình, bước đầu tiên là thuthập dữ liệu chú thích thông tin Một cách hiệu quả và nhanh chóng đểthực hiện điều này là sử dụng thư viện Simple Image Download củaJakub Dobies trong ngôn ngữ lập trình Python Thư viện này cung cấpgiải pháp thuận tiện để tải về ảnh từ Internet, giúp xây dựng bộ dữ liệu
đa dạng để huấn luyện mô hình nhận diện đối tượng Dưới đây là một
ví dụ về cách sử dụng thư viện này:
from simple_image_download import simple_image_download as simp
response = simp simple_image_download
keywords = [ 'building workers' ]
for kw in keywords :
response () download ( kw , 100 )
Đoạn code trên sử dụng thư viện để tải 100 bức ảnh có từ khóa làbuilding workers (công nhân xây dựng) từ mạng Internet về máy
Trang 16Hình 4.1 Ảnh tải về sử dụng thư viện simple image download.
2 Chú thích thông tin ảnh:
Khi đã thu thập được bộ ảnh về công nhân xây dựng, bước tiếptheo là sử dụng công cụ CVAT để thực hiện chú thích thông tin trongảnh thủ công Quá trình này giúp xác định và đánh dấu các thành phầnnhư mũ bảo hộ, áo phản quang và đảm bảo rằng công nhân đang mangđầy đủ trang phục bảo hộ
Hình 4.2 Sử dụng công cụ CVAT chú thích thông tin ảnh.
11
Trang 17Sau khi hoàn tất quá trình chú thích thủ công cho các đối tượng vàngười, chẳng hạn như mũ bảo hộ, áo phản quang và công nhân đangmang đầy đủ đồ bảo hộ, công cụ CVAT sẽ xuất ra dữ liệu như sau:
Ảnh Chú Thích (Annotated Images): Các hình ảnh gốc được chúthích bằng các bounding box (hộp giới hạn) quanh các đối tượng
và người được nhận diện Mỗi bounding box có thể đính kèm vớinhãn để mô tả loại đối tượng
Tệp Chú Thích (Annotation Files): Các tệp chú thích chứa thôngtin cụ thể về vị trí, kích thước, và loại của các bounding boxtrong ảnh Các định dạng thông dụng như XML, YOLO, hoặcCOCO có thể được sử dụng để lưu trữ dữ liệu này
Danh Sách Nhãn (Label List): Danh sách các nhãn được sử dụng
để đánh dấu các đối tượng, chẳng hạn như "mũ bảo hộ," "áo phảnquang," và "công nhân."
Dữ Liệu Huấn Luyện (Training Data): Các tập dữ liệu được tạo
ra từ quá trình chú thích có thể được sử dụng để huấn luyện môhình nhận diện đối tượng, chẳng hạn như mô hình YOLO, để tựđộng nhận diện các đối tượng và người trong hình ảnh mới
3 Huấn luyện mô hình nhận diện:
Chúng ta tổng hợp thông tin từ các tệp chú thích, chứa vị trí, kíchthước và loại đối tượng, cùng với hình ảnh đã thu thập được từ trênmạng, và lưu trữ chúng trong một tệp dữ liệu Tiếp theo, quá trìnhhuấn luyện mô hình YOLOv8n.yaml được thực hiện để tối ưu hóa khảnăng nhận diện
from ultralytics import YOLO
model = YOLO ( 'yolov8n.yaml' )
results = model train( data = 'config.yaml' , epochs = 100 )
Trang 18Sử dụng thư viện YOLO để tải mô hình YOLOv8n.yaml và tiếnhành quá trình huấn luyện với dữ liệu được chỉ định trong tệpconfig.yaml Quá trình huấn luyện được thực hiện một trăm lần để đảmbảo mô hình đạt được hiệu suất và độ chính xác tối ưu.
Sau khi hoàn thành việc huấn luyện mô hình thì ta có kết quả nhưsau:
Hình 4.3 Các sai số giảm xuống và độ nhận diện chính xác hơn
trong những chu kỳ huấn luyện sau
13
Trang 19Hình 4.4 Các ảnh mà mô hình nhận diện được vật thể theo ý
muốn
IV Mô phỏng hoạt động.
1 Nhận diện đối tượng qua ảnh:
Ta có code nhận dạng đối tượng qua ảnh như sau:
from ultralytics import YOLO
Trang 20model = YOLO ( 'best.pt' )
source = 'workerimage.png'
results = model predict( source , show_conf = False , conf = 0.6 )
image = cv2 imread( source )
for result in results :
image_detect = result plot()
cv2 imshow ( 'Ai Detect result' , image_detect )
Dòng đầu tiên import class YOLO từ thư viện ultralytics.
Dòng thứ hai import thư viện cv2 cho việc xử lý ảnh
model = YOLO ( 'best.pt' )
Tạo một đối tượng model từ class YOLO và cung cấp đườngdẫn đến tệp trọng số đã được huấn luyện (best.pt là mô hìnhđược huấn luyện đạt được chỉ số nhận diện tốt nhất)
results = model predict( source , show_conf = False , conf = 0.6 )
Gọi phương thức predict của đối tượng model để dự đoán cácđối tượng trong ảnh
show_conf=False: Tắt hiển thị độ tin cậy của dự đoán trên ảnh.
conf=0.6: Thiết lập ngưỡng độ tin cậy, chỉ những dự đoán có độ
tin cậy cao hơn ngưỡng này sẽ được giữ lại
15