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

Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh

45 601 13
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Ứng Dụng YOLO Trong Nhận Diện Đối Tượng Từ Hình Ảnh
Tác giả Phùng Văn Tuyên
Người hướng dẫn TS. Ngô Thị Hiền
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Toán Tin
Thể loại đồ án
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 45
Dung lượng 3,57 MB

Cấu trúc

  • TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC

    • Chuyên ngành: Toán Tin Chuyên sâu: Tin học

  • Hà Nội, 7-2021

    • NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

  • LỜI NÓI ĐẦU

  • Chương 1: Kiến thức cơ sở

    • 1.1. Bài toán nhận diện đối tượng

    • 1.2. Nhận diện đối tượng

    • 1.3. Mạng Nơ-ron nhân tạo (Artificial Neural Network)

      • ANN là gì ?

      • Kiến trúc của Neural Network

      • Deep Learning

        • Deep Learning.

      • Feed Forward và Back Propagation

    • 1.4. Mạng Nơ-ron tích chập (Convolutional Neural Network)

      • CNN là gì ?

      • Tổng quan về kiến trúc của CNN

      • Feature

      • Convolutional là gì ?

      • Các layer cơ bản trong CNN

        • Convolutional Layer

        • ReLU Layer

        • Pooling Layer

        • Fully Connected Layer

      • Cấu trúc của CNN

      • Chọn tham số cho CNN

      • Kiến trúc các mạng CNN tiêu biểu

        • LeNet-5 (1998)

        • AlexNet (2012)

        • VGG-16 (2014)

        • Inception (GoogleNet)

  • Chương 2: Mô hình YOLO nhận diện đối tượng từ hình ảnh

    • 2.1. Giới thiệu về YOLO

    • 2.2. Cách YOLO cải thiện so với các phương pháp Object Detection trước

    • 2.3. Kiến trúc mạng YOLO

    • 2.4. Cách hoạt động của YOLO

      • Dự đoán các boungding box

      • Non-max suppression

    • 2.5. Hàm Loss Funtion

      • Classifycation loss

      • Localization loss

      • Confidence loss

    • 2.6. The Network

    • 2.7. Hạn chế của YOLO

    • 2.8. So sánh các phiên bản YOLO

      • YOLOv1

      • YOLOv2

      • YOLOv3

    • 2.9. Kết quả thực nghiệm

  • Kết luận

  • Tài liệu tham khảo

Nội dung

Trong thời đại hiện nay, xã hội chúng ta bước vào cuộc cách mạng công nghiệp 4.0, có cốt lõi là công nghệ thông tin và các thiết bị máy móc thông minh để phục vụ nhu cầu đời sống con người và tăng năng suất lao động. Để các thiết bị máy móc này trở nên thật sự thông minh thì con người chúng ta cần phải dạy cho chúng biết nhận biết và xử lí các sự vật, sự việc trong thực tế để đạt được mục đích trong công việc. Từ đó, chúng ta cần phát triển các chương trình có thể giúp máy tính nhận diện được đối tượng ngoài xã hội đời thực. Thị giác máy tính (Computer Vision) là một trong những lĩnh vực hot nhất của khoa học máy tính và nghiên cứu trí tuệ. Mang lại rất nhiều ứng dụng trong đời sống : xử lí hình ảnh, trình đọc tự động, phát hiện các đối tượng, nhận diện khuôn mặt, xe tự lái…. Trong đó, Nhận diện đối tượng (Object Detection) là một đề tài rất được quan tâm hiện nay bởi khả năng ứng dụng cao,dữ liệu dễ chuẩn bị và kết quả ứng dụng thì cực kì nhiều. Vì vậy,em quyết định làm đồ án về Object Detection là “ Ứng dụng YOLO trong nhận diện đối tượng từ hinh ảnh ”.Em chọn sử dụng mô hình của Object detection ở đây là YOLO-“You only look once” tốc độ thực thi rất nhanh, đạt được việc nhận diện đối tượng trong thời gian thực.

Kiến thức cơ sở

Bài toán nhận diện đối tượng

Khi con người nhìn vào hình ảnh, họ có thể nhận diện các đối tượng và sự kiện như con người, tòa nhà và hành động, từ đó suy ra nhiều thông tin khác nhau Ngược lại, máy tính chỉ xem hình ảnh như một tập hợp các pixel, với các giá trị số đại diện cho ba màu cơ bản: đỏ, xanh lá và xanh dương (RGB) Một trong những thách thức lớn mà các nhà khoa học máy tính đã đối mặt từ những năm 1950 là phát triển các hệ thống có khả năng hiểu hình ảnh và video tương tự như con người.

Hiện nay, số lượng ảnh và video đang gia tăng đáng kể, với hàng triệu người sử dụng trên toàn cầu Những dữ liệu này thuộc dạng phi cấu trúc và tạo thành khối lượng lớn, do đó, cần có các giải pháp hiệu quả để xử lý và quản lý chúng.

Việc phát hiện và xác định đối tượng là một ứng dụng quan trọng trong nghiên cứu, góp phần cải tiến và đạt được những thành tựu khoa học hiện đại.

Nhận diện đối tượng

Nhận diện đối tượng (Object Detection) là một lĩnh vực quan trọng trong Thị giác máy tính (Computer Vision) và Trí tuệ nhân tạo (Artificial Intelligence) Để hiểu rõ hơn về khái niệm này, chúng ta sẽ bắt đầu từ việc phân loại hình ảnh theo các mức độ tăng dần.

Phân loại hình ảnh là quá trình gán một hình ảnh vào các danh mục khác nhau như ô tô, chó, mèo, hoặc người, nhằm trả lời câu hỏi "Cái gì trong hình này?" Mỗi hình ảnh chỉ được gán một danh mục duy nhất.

• Object localization (Định vị đối tượng) : xác định vị trí đối tượng trong hình ảnh, vì vậy câu hỏi của chuyển thành "Nó là gì và nó ở đâu?"

Nhận diện đối tượng là quá trình kết hợp hai nhiệm vụ chính: xác định vị trí của một hoặc nhiều đối tượng trong hình ảnh và vẽ bounding box xung quanh chúng Đồng thời, nó cũng gán nhãn phân loại cho các đối tượng đã được nhận diện.

Object Detection được ứng dụng phổ biến trong việc nhận diện khuôn mặt, phát hiện xe, đếm số người đi bộ, hệ thống an ninh và xe tự lái Nhiều phương pháp nhận diện đối tượng có thể được áp dụng trong các lĩnh vực khác nhau.

Hiện nay, công nghệ mạng nơ-ron đang được ứng dụng rộng rãi trong Trí tuệ nhân tạo để nhận diện và phân tích các đối tượng Ba công cụ phát hiện đối tượng chính thường gặp hiện nay bao gồm:

 R-CNN và các biến thể như : Fast R-CNN, Faster R-CNN, Mask R- CNN

YOLO (You Only Look Once) là một trong những phương pháp nhận diện đối tượng hiệu quả và nhanh chóng nhất hiện nay, cho phép thực hiện nhận diện trong thời gian thực Phương pháp này nổi bật với khả năng xử lý hình ảnh một cách nhanh gọn, giúp phát hiện và phân loại đối tượng ngay lập tức.

Mạng Nơ-ron nhân tạo (Artificial Neural Network)

Chó có khả năng phân biệt giữa các thành viên trong gia đình và người lạ, trong khi con người cũng có thể nhận biết các loài vật khác nhau Mặc dù những khả năng này có vẻ hiển nhiên, nhưng việc tái tạo chúng bằng máy tính lại rất khó khăn Sự khác biệt chính nằm ở cấu trúc não bộ, nơi chứa một lượng lớn nơ-ron thần kinh liên kết chặt chẽ với nhau.

Mạng nơ-ron nhân tạo (ANN), hay còn gọi là mạng nơ-ron (NN), là hệ thống tính toán được thiết kế dựa trên cấu trúc và nguyên lý hoạt động của các mạng nơ-ron sinh học trong não động vật Mặc dù ANN lấy cảm hứng từ não bộ, nhưng chúng không thể sao chép hoàn toàn các chức năng phức tạp của nó Nhiệm vụ của chúng ta là áp dụng mô hình này để giải quyết các bài toán cụ thể.

Kiến trúc của Neural Network

ANN hoạt đông theo hướng mô tả lại cách hoạt đôṇ g của hê ̣thần kinh với các neuron được kết nối với nhau.

Một mạng ANN gồm ba lớp: lớp đầu vào (input layer), các lớp ẩn (hidden layer) ở giữa và lớp đầu ra (output layer) cuối cùng Các hình tròn trong mạng được gọi là node Mỗi mô hình ANN luôn có một lớp đầu vào và một lớp đầu ra, có thể có hoặc không có các lớp ẩn Tổng số lớp trong mô hình được xác định là số lượng lớp.

Mô hình tổng quát Neural Netword

Input layer chịu trách nhiệm nhận các giá trị đầu vào, sau đó chuyển tiếp chúng qua quá trình tính toán đến hidden layer Tại hidden layer, các hidden neural sử dụng các hàm kích hoạt để xử lý thông tin, trước khi truyền kết quả đến output layer, nơi chúng ta nhận được các giá trị mong muốn Mỗi node trong hidden layer và output layer đều đóng vai trò quan trọng trong quá trình này.

 Liên kết với tất cả các node ở layer trước đó với các hệ số w (weights) riêng

 Mỗi node có 1 hệ số bias riêng b.

 Diễn ra 2 bước : tính tổng linear z i (l) = ∑ l j=1 a j (l-1) * w ji (l) +b i (l) ( số node trong hidden layer thứ i là l ) và activation function: a j (l) = σ(z i (l) )

Mạng nơ-ron đơn giản nhất chỉ với input layer và output layer được gọi là Single-layer Perceptron.

Khi có thêm ít nhất một hidden layer thì mạng đó được gọi là Multi-layer Perceptron.

Một trong những hạn chế của mạng nơ-ron đa lớp (MLP) là hiện tượng vanishing gradient Tuy nhiên, ý tưởng về tiền huấn luyện không giám sát (unsupervised pretraining) thông qua deep belief nets (DBN) do Geoffrey Hinton giới thiệu vào năm 2006 đã phần nào khắc phục được vấn đề này.

Kể từ đây, neural networks với nhiều hidden layer được đổi tên thành

Deep Learning là kỹ thuật để thực hiện hóa Machine Learning.

Feed Forward và Back Propagation

Trong quá trình huấn luyện cho mạng ANN dựa vào 2 bước xử lý chính là Feed Forward và Back Propagation.

Feed Forward là thuật toán mà mỗi neural ở một tầng nào đó nhận các giá trị đầu vào của tầng trước đó mà không suy luận ngược lại.

Thuật toán Back Propagation sử dụng quy tắc đạo hàm của hàm hợp và phép tính ngược đạo hàm để tính toán đạo hàm của tất cả các trọng số Mục tiêu của quá trình này là điều chỉnh các trọng số nhằm giảm thiểu lỗi giữa giá trị dự đoán sau khi lan truyền tiến và giá trị thực tế.

Mạng Nơ-ron tích chập (Convolutional Neural Network)

Mạng Nơ-ron Tích Chập (CNN) là một trong những mô hình Deep Learning tiên tiến, đóng vai trò quan trọng trong lĩnh vực Computer Vision Mô hình này cho phép phát triển các hệ thống thông minh với khả năng phản ứng nhanh và độ chính xác cao CNN được áp dụng rộng rãi trong việc nhận diện và phân loại đối tượng trong hình ảnh kỹ thuật.

Máy tính xử lý hình ảnh đầu vào dưới dạng mảng pixel, phụ thuộc vào độ phân giải của hình ảnh với kích thước H x W x D (H: Chiều cao, W: Chiều rộng, D: Độ dày) CNN hoạt động bằng cách giảm kích thước ảnh mà vẫn giữ được các đặc trưng quan trọng, sau đó chuyển đổi ảnh thành vector một chiều để phục vụ cho quá trình huấn luyện, tương tự như ANN đã đề cập trước đó.

Tổng quan về kiến trúc của CNN

Mạng Nơ-ron Tích Chập (CNN) có cấu trúc khác biệt so với mạng Nơ-ron Nhân Tạo (ANN) thông thường Trong khi ANN chuyển đổi đầu vào qua nhiều tầng ẩn liên kết đầy đủ, CNN được chia thành ba chiều: chiều rộng, chiều cao và chiều sâu Các nơ-ron trong CNN không kết nối hoàn toàn với tất cả nơ-ron ở tầng kế tiếp, mà chỉ kết nối với một vùng nhỏ Cuối cùng, tầng đầu ra của mạng được tối giản thành véc-tơ xác suất, đại diện cho dự đoán của mạng.

Mô hình ANN (trái) và CNN (phải)

Trong bài viết này, "feature" được hiểu là đặc điểm, và CNN (Mạng Nơ-ron Tích Chập) so sánh hình ảnh theo từng mảnh, mỗi mảnh gọi là feature Thay vì chỉ khớp các bức ảnh lại với nhau, CNN có khả năng phát hiện sự tương đồng bằng cách tìm kiếm các feature tương ứng giữa hai hình ảnh một cách hiệu quả hơn.

Mỗi feature trong bức ảnh được xem như một hình ảnh mini, tương đương với những mảng 2 chiều nhỏ Các feature này sẽ được liên kết với các khía cạnh chung của bức ảnh, tạo nên sự nhất quán và rõ ràng trong việc phân tích hình ảnh.

Tích chập trong mạng nơ-ron tích chập (CNN) là quá trình quan trọng giúp xác định vị trí và các đặc điểm (feature) trong hình ảnh Khi CNN gặp một hình ảnh mới, nó sẽ thử nghiệm các vị trí khác nhau để tìm ra sự khớp nhau của các đặc điểm Quá trình này tạo ra một bộ lọc, gọi là Filter, được sử dụng để phân tích và nhận diện hình ảnh hiệu quả hơn.

Để tính toán sự khớp của các đặc trưng (feature) với từng mảnh hình ảnh, ta nhân giá trị mỗi điểm ảnh trong feature với điểm ảnh tương ứng trong hình ảnh Sau đó, tổng hợp kết quả từ tất cả các phép tính và chia cho tổng số điểm ảnh trong feature Nếu các điểm ảnh khớp, kết quả sẽ là 1; ngược lại, kết quả sẽ là -1 Quá trình tích chập yêu cầu lặp lại hành động này, sắp xếp tất cả các feature vào từng mảnh hình ảnh có thể Kết quả cuối cùng là các hình ảnh đã được lọc, mỗi hình ảnh sẽ có bộ lọc (filter) tương ứng, và quá trình tích chập diễn ra theo từng lớp (layer).

Các layer cơ bản trong CNN

CNN bao gồm nhiều lớp (layer) hoạt động để chuyển đổi dữ liệu đầu vào 3D thành đầu ra 3D, với các chức năng khác nhau có thể có hoặc không có tham số Các thao tác này được lặp lại qua hàng trăm lớp để xác định và trích xuất các đặc điểm (feature) khác nhau.

Có thể nói đây là một lớp cực kì quan trọng trong CNN,bởi ở lớp này sẽ thực hiện mọi phép tính toán.

Tích chập là bước đầu tiên trong việc trích xuất các tính năng từ hình ảnh đầu vào, giúp duy trì mối quan hệ giữa các pixel Phương pháp này hoạt động bằng cách sử dụng các ô vuông nhỏ trong dữ liệu đầu vào để nhận diện các đặc điểm hình ảnh, thông qua phép toán có hai đầu vào: ma trận hình ảnh và bộ lọc hay hạt nhân.

VD : Xét ma trận hình ảnh đầu vào 5x5 có giá trị pixel là 0 và 1.Ma trận filter 3x3 như hình sau đây :

Ta nhận được kết quả lớp tích chập của ma trận hình ảnh 5x5 nhân với ma trận filter 3x3 gọi là Feature map :

Sự kết hợp hình ảnh với các bộ lọc khác nhau cho phép thực hiện nhiều thao tác như phát hiện cạnh, làm mờ và làm sắc nét Bằng cách áp dụng các bộ lọc, người dùng có thể cải thiện chất lượng hình ảnh một cách hiệu quả.

Stride là số pixel thay đổi trên ma trận đầu vào.

Sau khi nhận được feature map, kích thước của ma trận đầu vào giảm dần và không còn phù hợp với hình ảnh gốc Để duy trì kích thước đầu ra không thay đổi sau mỗi tầng convolution, chúng ta sẽ thực hiện việc chèn thêm các số 0 vào bốn cạnh của hình ảnh, gọi là padding.

ReLU (Rectified Linear Unit) là một hàm phi tuyến có công thức ƒ(x) = max(0, x), trong đó nó gán tất cả các giá trị đầu vào âm thành 0 và giữ nguyên các giá trị dương.

Một số hàm phi tuyến như tanh và sigmoid có thể thay thế ReLU, nhưng ReLU vẫn được ưa chuộng hơn do mang lại hiệu suất tốt hơn.

Layer pooling giúp giảm số lượng tham số khi xử lý hình ảnh lớn, thường được sử dụng giữa các lớp convolutional Việc giảm kích thước dữ liệu không chỉ giữ lại các thuộc tính quan trọng mà còn giảm thiểu khối lượng tính toán trong mô hình.

Hầu hết khi dùng pooling layer sẽ dùng size=(2,2), stride=2, padding=0.Khi đó output height và width của dữ liệu giảm đi 1 nửa,depth được giữ nguyên

Có 2 loại pooling layer phổ biến là : max pooling và average pooling

Dùng để đưa ra kết quả

Sau khi trải qua nhiều lớp convolutional và pooling, mô hình đã học được các đặc điểm quan trọng của hình ảnh như mắt, mũi và khung mặt Tensor đầu ra từ lớp cuối cùng có kích thước H*W*D sẽ được chuyển đổi thành một vector kích thước (H*W*D) Để liên kết các đặc điểm này và tạo ra đầu ra, chúng ta sử dụng lớp fully connected.

Mô hình YOLO nhận diện đối tượng từ hình ảnh

Giới thiệu 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, cho phép nhận diện đối tượng trong thời gian thực Mô hình này đã được ứng dụng rộng rãi trong việc nhận diện tín hiệu giao thông, con người và động vật, mang lại hiệu quả cao trong các lĩnh vực khác nhau.

YOLO, viết tắt của "You Only Look Once", nổi bật với khả năng nhận diện đối tượng chỉ qua một lần quan sát Nó sử dụng một mạng nơ-ron tích chập (CNN) duy nhất để phân tích và học các đặc trưng từ ảnh đầu vào, giúp tối ưu hóa quy trình nhận diện một cách hiệu quả.

YOLO có thể không phải là thuật toán chính xác nhất trong lĩnh vực phát hiện đối tượng, nhưng nó nổi bật với tốc độ nhanh nhất, gần như thời gian thực Độ chính xác của YOLO chỉ giảm nhẹ so với các mô hình hàng đầu, làm cho nó trở thành lựa chọn lý tưởng cho các ứng dụng cần nhận diện đối tượng nhanh chóng mà không yêu cầu độ chính xác quá cao, hoặc cho các đối tượng dễ nhận diện.

Cách YOLO cải thiện so với các phương pháp Object Detection trước

Các phương pháp phát hiện đối tượng trước đây như R-CNN và các biến thể của nó, như Fast R-CNN, dựa vào các đề xuất khu vực để nhận diện đối tượng R-CNN tập trung vào từng khu vực cụ thể và huấn luyện các thành phần riêng lẻ, nhưng quá trình này yêu cầu phân loại 2000 vùng trên mỗi hình ảnh, dẫn đến thời gian xử lý lâu (47 giây/hình) và không khả thi cho ứng dụng thời gian thực Hơn nữa, R-CNN sử dụng thuật toán chọn lọc cố định, không có quá trình học tập trong giai đoạn này, làm giảm chất lượng của các đề xuất vùng.

YOLO áp dụng một phương pháp độc đáo bằng cách sử dụng một mạng nơ-ron duy nhất để thực hiện tất cả các tác vụ Kiến trúc của YOLO tương tự như FCNN (Mạng Nơ-ron Tích chập Đầy đủ), cho phép hình ảnh được xử lý chỉ qua một lần duy nhất và trả về kết quả ngay lập tức Dự đoán được thực hiện thông qua một mạng duy nhất, khác với hàng nghìn mạng như R-CNN Nhờ đó, tốc độ của YOLO rất nhanh, nhanh hơn hàng nghìn lần so với R-CNN và hàng trăm lần so với Fast R-CNN.

Kiến trúc mạng YOLO

The YOLO architecture is developed by integrating convolutional layers with fully connected layers The convolutional layers extract features from images, while the fully connected layers predict the probabilities and coordinates of objects within the image.

Sơ đồ kiến trúc của YOLO

The DarkNet Architecture features a base network composed of multiple convolutional layers designed for feature extraction The output from this base network is a 7x7x1024 feature map, which serves as the input for fully connected layers that predict object labels and bounding box coordinates.

Cách hoạt động của YOLO

Đầu tiên, hình ảnh đầu vào sẽ được chia thành một lưới SxS ô (grid of cells).

YOLO chia hình ảnh thành mạng lưới 7x7 ô

Mỗi ô trong lưới sẽ phát hiện các đối tượng xuất hiện bên trong nó Nếu trung tâm của một đối tượng nằm trong một ô nhất định, ô đó sẽ đảm nhận trách nhiệm phát hiện đối tượng đó.

Dự đoán các boungding box

Mỗi ô lưới trong mạng sẽ dự đoán một số lượng B bounding boxes với kích thước khác nhau để bao phủ các đối tượng cần nhận diện trong hình ảnh, đồng thời phân phối xác suất cho C lớp trong bài toán.

Mỗi bounding box dự đoán bao gồm năm thành phần chính: (x, y, w, h, confidence) Trong đó, (x, y) là tọa độ của tâm bounding box, liên quan đến vị trí của grid cell Kích thước (w, h) đại diện cho chiều rộng và chiều cao của bounding box, được chuẩn hóa trong khoảng [0;1].

Sau khi thuật toán được áp dụng, mỗi bounding box sẽ nhận được một chỉ số confidence, đại diện cho khả năng chứa đối tượng bên trong, được tính toán dựa trên xác suất cụ thể.

Confidence (độ tin cậy) được định nghĩa là Pr (Object) × IOU (pred, truth).

The probability of an object being contained within a bounding box is represented as Pr(Object) The Intersection over Union (IOU) metric, denoted as IOU(pred, truth), measures the overlap between the predicted bounding box and the ground truth of the object.

Nếu không có đối tượng nào tồn tại, độ tin cậy (confidence) sẽ bằng 0 Trong thực tế, chúng ta không thể có được giá trị đúng (groundtruth) của đối tượng, vì vậy trong quá trình kiểm tra, chỉ số confidence chỉ còn lại là xác suất Pr(Object).

Một biểu diễn công thức IOU

Mỗi bounding box dự đoán trong YOLO có 5 thành phần tham số, với mỗi ô tạo ra B box dự đoán, dẫn đến tổng số đầu ra là SxSxB*5 YOLO chỉ dự đoán một xác suất cho mỗi lớp trên mỗi ô, vì vậy tổng xác suất của các lớp là SxSxC, trong đó C là số lượng lớp của bài toán Kết quả cuối cùng là một ma trận khối 3 chiều (tensor) có kích thước SxSx(B*5+C) làm đầu ra.

Sau khi thu được output, chúng ta có nhiều bounding boxes được dự đoán bởi mỗi cell, nhưng phần lớn trong số đó có chỉ số confidence thấp hoặc trùng lặp với nhau Do đó, cần loại bỏ những bounding boxes "dư thừa" để xác định chính xác và giữ lại chỉ một bounding box tốt nhất cho mỗi đối tượng YOLO áp dụng kỹ thuật Non-Max Suppression (NMS) để loại bỏ hầu hết các bounding box trùng lặp và những box có confidence thấp hơn một ngưỡng nhất định, chỉ giữ lại những bounding box có chỉ số cao.

Để giảm số lượng bounding box, bước đầu tiên là loại bỏ các bounding box có xác suất chứa vật thể dưới ngưỡng confidence nhất định, thường là 0.5.

Trong bước 2, đối với các bounding box giao nhau, thuật toán non-max suppression sẽ chọn ra bounding box có xác suất chứa vật thể cao nhất Sau đó, nó sẽ tính toán chỉ số giao thoa IoU với các bounding box còn lại.

Hàm Loss Funtion

Hàm mất mát trong YOLO được xác định thông qua sai số giữa dự đoán và nhãn của mô hình Cụ thể, hàm này bao gồm tổng độ mất mát từ ba thành phần con khác nhau.

• Classifycation loss : Đo lường sai số của việc dự đoán loại nhãn của object -

• Localization loss : Đo lường sai số của dự đoán tọa độ tâm, chiều dài, rộng của boundary box (x, y ,w, h)

• Confidence loss : Đo lường sai số 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

Hàm 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 cần quan tâm

Classifycation loss có công thức tính là :

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.

Hàm này tính dựa vào cả những ô vuông có xuất hiện object và không xuất hiện object.

The Network

YOLO is a conventional CNN model that consists of convolutional layers combined with max pooling layers, culminating in two fully connected layers The final layer employs a linear activation function, while all other layers utilize leaky ReLU as their activation function.

Hạn chế của YOLO

YOLO áp dụng các ràng buộc không gian cho các bounding box, cho phép mỗi ô lưới chỉ dự đoán một số lượng giới hạn bounding box và một lớp duy nhất Những ràng buộc này gây khó khăn trong việc nhận diện các đối tượng gần nhau và các đối tượng có kích thước nhỏ.

YOLO sử dụng các đặc điểm thô để dự đoán bounding box, nhờ vào việc áp dụng nhiều lớp downsampling từ ảnh đầu vào Tuy nhiên, những hạn chế này trong quá trình huấn luyện khiến YOLO gặp khó khăn trong việc nhận diện các đối tượng có hình khối mới hoặc bất thường so với tập dữ liệu Mặc dù YOLOv2 đã cải thiện một phần vấn đề này, nhưng vẫn chưa đạt được hiệu suất tốt như FRCNN.

Trong quá trình huấn luyện, hàm mất mát không phân biệt giữa lỗi của bounding box kích thước nhỏ và lớn, dẫn đến việc tổng hợp chúng có thể làm giảm độ chính xác của mạng Lỗi nhỏ trên bounding box lớn thường ít ảnh hưởng, nhưng lỗi nhỏ trên bounding box nhỏ lại có tác động đáng kể đến giá trị IOU.

So sánh các phiên bản YOLO

Những người phát triển YOLO đã cho ra mắt các phiên bản mới nhằm nâng cao độ chính xác trong việc phát hiện, tập trung vào việc cải tiến hiệu suất so với các phiên bản trước.

Phiên bản đầu tiên của YOLO được giới thiệu vào năm 2015, sử dụng khung Darknet và được đào tạo trên tập dữ liệu ImageNet-1000 Tuy nhiên, bộ dữ liệu này có nhiều hạn chế, ảnh hưởng đến khả năng hoạt động của YOLO V1 Cụ thể, YOLO V1 gặp khó khăn trong việc nhận diện các đối tượng nhỏ trong cụm và không hiệu quả trong việc tổng quát hóa các đối tượng có kích thước khác so với hình ảnh đào tạo, dẫn đến việc bản địa hóa các đối tượng trong hình ảnh đầu vào kém.

YOLO V2, phát hành năm 2016 với tên gọi YOLO9000, sử dụng mạng darknet-19 gồm 19 lớp và 11 lớp bổ sung để phát hiện vật thể Thiết kế của YOLO V2 tối ưu hóa việc sử dụng Máy dò đa hộp (SSD) R-CNN và Single Shot, mang lại hiệu suất phát hiện đối tượng vượt trội.

Các nâng cấp của YOLO V2 so với YOLO V1 bao gồm:

• Cải thiện độ chính xác trung bình trung bình (MAP) —công cụ phân loại độ phân giải cao hơn mới đã tăng kích thước đầu vào từ 224

* 224 trong YOLO V1 lên 448 * 448 và cải thiện MAP.

Việc chia hình ảnh thành các ô lưới 13 * 13 nhỏ hơn giúp cải thiện khả năng phát hiện và nhận dạng các đối tượng nhỏ hơn, từ đó nâng cao độ chính xác trong việc định vị chúng trong hình ảnh.

Cải thiện khả năng phát hiện đối tượng trong hình ảnh có kích thước đa dạng bằng cách đào tạo thuật toán với các hình ảnh ngẫu nhiên Việc này giúp nâng cao độ chính xác dự đoán của mạng đối với các đối tượng từ những hình ảnh đầu vào có kích thước khác nhau.

Anchor boxes cung cấp một khung duy nhất để phân loại và dự đoán các hộp giới hạn trong các tập dữ liệu cụ thể Chúng được thiết kế thông qua phương pháp phân cụm k-means, giúp tối ưu hóa hiệu suất trong việc nhận diện và phân loại đối tượng.

YOLO V3 là phiên bản nâng cấp của YOLOv2, sử dụng biến thể khác của Darknet Kiến trúc của YOLOv3 bao gồm 53 lớp được huấn luyện trên ImageNet, cùng với 53 lớp khác chuyên trách phát hiện đối tượng, cho phép nhận diện nhiều loại đối tượng khác nhau.

Việc tăng số lượng lớp lên 106 đã nâng cao đáng kể độ chính xác của mạng, tuy nhiên, điều này cũng dẫn đến sự giảm tốc độ, từ 45 khung hình/giây xuống còn 30 khung hình/giây.

Các layer trong mạng DarkNet53

Các nâng cấp YOLOv3 so với YOLOv2 bao gồm:

Dự đoán hộp giới hạn đã được cải thiện thông qua việc áp dụng hồi quy logistic, giúp cung cấp các điểm dự đoán cho tất cả các đối tượng trong mỗi hộp giới hạn.

Trong YOLO V2, softmax đã được thay thế bằng bộ phân loại hậu cần cho mỗi lớp, nhằm cải thiện độ chính xác trong việc dự đoán lớp và phục vụ cho mục đích đa nhãn.

Cải thiện khả năng ở các quy mô khác nhau bằng cách đưa ra ba dự đoán cho mỗi vị trí trong hình ảnh đầu vào Điều này cho phép lấy mẫu ngược từ các lớp trước, từ đó thu thập thông tin chi tiết và ngữ nghĩa đầy đủ, góp phần nâng cao chất lượng đầu ra.

Kết quả thực nghiệm

Ở đây em sử dụng YOLOv3 để cho ra kết quả :

Ngày đăng: 21/11/2021, 09:03

HÌNH ẢNH LIÊN QUAN

Khi con người nhìn vào những hình ảnh sẽ nhận thấy các sự vật, sự việc trong bức ảnh như: con người, tòa nhà, các hành động … nhìn vào nhiều chi tiết khác nhau sẽ suy ra nhiều thông tin hơn từ hình ảnh.Nhưng đối với máy tính, tất cả hình ảnh đều được coi  - Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh
hi con người nhìn vào những hình ảnh sẽ nhận thấy các sự vật, sự việc trong bức ảnh như: con người, tòa nhà, các hành động … nhìn vào nhiều chi tiết khác nhau sẽ suy ra nhiều thông tin hơn từ hình ảnh.Nhưng đối với máy tính, tất cả hình ảnh đều được coi (Trang 5)
Để khám phá khái niệm Object Detection, chúng ta bắt đầu với phân loại hình ảnh qua các mức độ tăng dần: - Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh
kh ám phá khái niệm Object Detection, chúng ta bắt đầu với phân loại hình ảnh qua các mức độ tăng dần: (Trang 6)
Mô hình tổng quát Neural Netword - Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh
h ình tổng quát Neural Netword (Trang 9)
Mô hình ANN (trái) và CNN (phải) - Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh
h ình ANN (trái) và CNN (phải) (Trang 15)
Tích chập là lớp đầu tiên để trích xuất các tính năng từ hình ảnh đầu vào. Tích chập  duy trì mối quan  hệ giữa các  pixel bằng  cách  tìm  hiểu các  tính - Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh
ch chập là lớp đầu tiên để trích xuất các tính năng từ hình ảnh đầu vào. Tích chập duy trì mối quan hệ giữa các pixel bằng cách tìm hiểu các tính (Trang 16)
V D: Xét ma trận hình ảnh đầu vào 5x5 có giá trị pixel là và 1.Ma trận filter 3x3 như hình sau đây : - Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh
t ma trận hình ảnh đầu vào 5x5 có giá trị pixel là và 1.Ma trận filter 3x3 như hình sau đây : (Trang 17)
năng hình ảnh bằng cách sử dụng cá cô vương nhỏ của dữ liệu đầu vào. Nó là 1 phép toán có 2 đầu vào như ma trận hình ảnh và 1 bộ lọc hoặc hạt nhân. - Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh
n ăng hình ảnh bằng cách sử dụng cá cô vương nhỏ của dữ liệu đầu vào. Nó là 1 phép toán có 2 đầu vào như ma trận hình ảnh và 1 bộ lọc hoặc hạt nhân (Trang 17)
Pooling layer sẽ giảm bớt số lượng tham số khi hình ảnh quá lớn, thường được dùng giữa các convolutional layer, để giảm kích thước dữ liệu nhưng vẫn giữ được các thuộc tính quan trọng - Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh
ooling layer sẽ giảm bớt số lượng tham số khi hình ảnh quá lớn, thường được dùng giữa các convolutional layer, để giảm kích thước dữ liệu nhưng vẫn giữ được các thuộc tính quan trọng (Trang 19)
Trong mô hình CNN có 2 điều cần quan tâm là: tính bất biến (Location Invariance) và tính kết hợp (Compositionality).Với cùng một đối tượng,nếu được chiếu theo các góc độ khác nhau (translation,rotation,sacling) thì độ chính xác sẽ bị ảnh hưởng đáng kể - Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh
rong mô hình CNN có 2 điều cần quan tâm là: tính bất biến (Location Invariance) và tính kết hợp (Compositionality).Với cùng một đối tượng,nếu được chiếu theo các góc độ khác nhau (translation,rotation,sacling) thì độ chính xác sẽ bị ảnh hưởng đáng kể (Trang 22)
Được tạo ra bởi Yann Lecun,để nhận diện chữ viết tay. Mô hình này là cơ sở thiết kế cho các mạng sau này. - Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh
c tạo ra bởi Yann Lecun,để nhận diện chữ viết tay. Mô hình này là cơ sở thiết kế cho các mạng sau này (Trang 24)
Kiến trúc các mạng CNN tiêu biểu - Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh
i ến trúc các mạng CNN tiêu biểu (Trang 24)
Hình thành xu hướng cải thiện độ chính xác của các mạng học sâu thông qua gia tăng độ sâu của chúng. - Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh
Hình th ành xu hướng cải thiện độ chính xác của các mạng học sâu thông qua gia tăng độ sâu của chúng (Trang 25)
Xét hình trê n: Thành phần DarkNet Architecture được gọi là base network gồm nhiều convolution layers có tác dụng trích xuất feature - Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh
t hình trê n: Thành phần DarkNet Architecture được gọi là base network gồm nhiều convolution layers có tác dụng trích xuất feature (Trang 28)
Đầu tiên, hình ảnh đầu vào sẽ được chia thành một lưới SxS ô (grid of cells). - Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh
u tiên, hình ảnh đầu vào sẽ được chia thành một lưới SxS ô (grid of cells) (Trang 29)
YOLO chia hình ảnh thành mạng lưới 7x7 ô - Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh
chia hình ảnh thành mạng lưới 7x7 ô (Trang 29)
cho mọi vị trí trong hình ảnh đầu vào để cho phép lấy mẫu ngược từ các lớp trước để có được thông tin chi tiết và thông tin ngữ nghĩa đầy đủ và cải thiện chất lượng đầu ra. - Ứng dụng YOLO trong nhận diện đối tượng từ hình ảnh
cho mọi vị trí trong hình ảnh đầu vào để cho phép lấy mẫu ngược từ các lớp trước để có được thông tin chi tiết và thông tin ngữ nghĩa đầy đủ và cải thiện chất lượng đầu ra (Trang 39)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w