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

Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu

68 8 0

Đ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

Định dạng
Số trang 68
Dung lượng 2,52 MB

Cấu trúc

  • Page 1

Nội dung

Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu

TỔNG QUAN

Tổng quan về lĩnh vực nghiên cứu

Deep Learning là một thuật toán lấy cảm hứng từ cấu trúc não bộ, cho phép tiếp thu và xử lý nhiều tầng biểu diễn, từ cụ thể đến trừu tượng, nhằm làm rõ ý nghĩa của dữ liệu Công nghệ này được áp dụng rộng rãi trong các lĩnh vực như nhận diện hình ảnh, nhận diện giọng nói và xử lý ngôn ngữ tự nhiên.

Hiện nay, nhiều bài toán nhận dạng đang áp dụng Deep Learning để giải quyết, nhờ vào khả năng xử lý khối lượng lớn dữ liệu và kích thước đầu vào lớn Công nghệ này mang lại hiệu suất và độ chính xác vượt trội so với các phương pháp phân lớp truyền thống.

Mạng nơ-ron tích chập (CNNs) là một trong những mô hình Deep Learning tiên tiến, cho phép xây dựng các hệ thống thông minh với độ chính xác cao.

Hiện nay trên thế giới có một số mô hình kiến trúc CNNs đạt được kết quả khả quan như:

Lenet là mô hình CNN đầu tiên thành công, nổi bật trong việc nhận diện chữ số và ký tự trong văn bản Được phát triển bởi Yann Lecun vào cuối những năm 90, Lenet đã mở ra hướng đi mới cho các ứng dụng trong lĩnh vực nhận dạng hình ảnh.

AlexNet, được phát triển bởi Alex Krizhevsky, Ilya Sutskever và Geoff Hinton, lần đầu tiên được giới thiệu vào năm 2012 Mạng neural này có cấu trúc tương tự như LeNet nhưng với số lượng neural, filter và layer lớn hơn AlexNet được coi là mạng neural đầu tiên phổ biến rộng rãi khả năng của mạng nơ-ron tích chập (CNNs).

ZF Net, developed by Matthew Zeiler and Rob Fergus in 2013, is recognized as one of the best CNNs of its time The network builds upon AlexNet, incorporating refined hyperparameters such as filter size and stride Notably, it utilizes smaller filter sizes and strides in the layers closest to the input layer, enhancing its performance in image classification tasks.

GoogLeNet, được phát triển bởi Szegedy từ Google, là mạng CNNs hàng đầu năm 2014 Mạng này đã giảm số lượng tham số từ 60 triệu trong AlexNet xuống chỉ còn 4 triệu bằng cách sử dụng Average Pooling thay vì FC-Layer.

- VGGNet [5]: Là mạng CNNs tốt nhất năm 2015 được phát triển bởi Karen Simonyan và Andrew Zisserman Sử dụng filter 3x3 và pooling 2x2 từ đầu tới cuối mạng

ResNet, developed by Kaiming He in 2015, is recognized as the best CNN architecture of that year It innovatively eliminates the fully connected layer at the end of the network, utilizing special skip connections and batch normalization The architecture has continued to evolve, with its latest results published in March 2016.

Các mô hình CNNs đã được huấn luyện trên tập dữ liệu lớn với hàng ngàn đối tượng và đạt độ chính xác cao, nhưng chúng yêu cầu cấu hình phần cứng máy tính cao và không hướng đến ứng dụng cụ thể Trong luận văn cao học này, tác giả nghiên cứu mạng neural và mạng neural tích chập (Convolution), cùng với ý tưởng của mô hình CNNs trong phân lớp ảnh (Image Classification), và áp dụng để xây dựng hệ thống nhận dạng các đối tượng tham gia giao thông.

Trong bài viết này, tác giả tập trung vào mạng nơ ron tích chập (CNN) do tính dễ sử dụng và tính phổ biến của nó trong nhận dạng và xử lý ảnh số Đề tài được đổi tên từ dữ liệu ban đêm sang dữ liệu ban ngày vì sự khan hiếm và thiếu hụt dữ liệu để huấn luyện mạng, tác giả đã quyết định thực nghiệm mô hình trên nhiều tập dữ liệu khác nhau.

Hình 3.8 và hình 3.10 minh họa lưu đồ quá trình huấn luyện và các bước tính toán trong các lớp CNN, do tác giả tự đề xuất Đề tài "Nhận dạng hành động người sử dụng mạng nơ ron tích chập" của tác giả Nguyễn Thành Tâm tập trung vào việc nhận diện các đối tượng trong ảnh bằng mạng nơ ron Các nghiên cứu của tác giả khác nhau chủ yếu ở kiến trúc mô hình CNN, các layer trong mạng, các bộ lọc sử dụng và khả năng nhận dạng các đối tượng khác nhau.

Phương pháp nhận dạng đối tượng sử dụng kỹ thuật CNN trong nghiên cứu của tác giả tập trung vào việc nhận diện các đối tượng giao thông như xe đạp, chó, ô tô, xe máy và con người trong ảnh và video Công nghệ này có thể được ứng dụng thực tiễn trong các lĩnh vực như robot ngoài trời và xe tự lái.

Mô hình CNN mới được giới thiệu bởi tác giả bao gồm 15 lớp và 32 bộ lọc chập, đánh dấu sự đổi mới chưa từng được công bố trước đó trong lĩnh vực này.

Để đánh giá độ chính xác của mạng, tác giả tiến hành huấn luyện và điều chỉnh kiến trúc mạng nhiều lần nhằm đạt được độ chính xác cao nhất Cuối cùng, mô hình kiến trúc có độ chính xác tốt nhất sẽ được chọn làm tiêu chuẩn.

Mục đích của đề tài

Mục đích của đề tài là xây dựng một mô hình cấu trúc CNNs mới và huấn luyện mạng trên nhiều tập dữ liệu khác nhau để tối ưu hóa kiến trúc mạng Đặc biệt, tác giả sẽ tiến hành huấn luyện mạng với các dữ liệu về xe đạp, ô tô, chó, xe máy và con người, nhằm ứng dụng vào việc nhận dạng các đối tượng tham gia giao thông.

Tác giả lựa chọn 5 loại đối tượng tham gia giao thông vì đây là những nhóm chính, có vai trò quan trọng trong việc lưu thông Việc giới hạn số lượng đối tượng chỉ còn 5 cũng giúp phù hợp với khả năng xử lý của phần cứng máy tính mà tác giả đang sử dụng.

Để tránh nhầm lẫn với các đề tài khác sử dụng mạng nơ-ron tích chập (CNNs) trong nhận dạng đối tượng, cần lưu ý rằng mặc dù cùng một công nghệ được áp dụng, nhưng cấu trúc mạng và các bộ lọc (filter) sử dụng sẽ dẫn đến kết quả khác nhau.

Nhiệm vụ và giới hạn của đề tài

- Tìm hiểu một số mô hình và ứng dụng của Deep learning trong xử lý hình ảnh

- Tìm hiểu các phương pháp rút trích đặc trưng trong ảnh

- Trích xuất các đặc trưng ảnh và biểu diễn nó trong mạng nơron tích chập

- Tập hợp các đặc trưng ảnh và dự đoán tính chất, đặc trưng của ảnh

- Thực hiện huấn luyện, mô phỏng bằng phần mềm Matlab để dự đoán và nhận dạng đối tượng

- Data nhỏ, không training được với lượng data lớn vì phần cứng máy tính không cho phép

- Không có tính thực tế, chỉ mô phỏng trên phần mềm Matlab

- Mô hình mạng chưa được tối ưu lắm nên mạng có độ chính xác chưa cao lắm.

Phương pháp nghiên cứu

- Thu thập, tổng hợp các tài liệu lý thuyết cơ bản liên quan đến đề tài

- Tìm hiểu các kết quả nghiên cứu đã công bố trong nước và quốc tế

- Phân tích lý thuyết và mô phỏng kết quả tính toán bằng phần mềm Matlab

- Tổng hợp viết báo cáo.

Tóm tắc nội dung chính của đề tài

Với mục đích là dự đoán và nhận dạng được các đối tượng tham gia giao thông, nội dung của bài báo cáo bao gồm các phần sau:

Chương 1 cung cấp cái nhìn tổng quan về đề tài, nêu rõ mục đích nghiên cứu và các công trình liên quan Đồng thời, chương này cũng trình bày mục tiêu cụ thể và phương pháp thực hiện nghiên cứu một cách chi tiết.

 Chương 2: Cơ sở lý thuyết: Chương này giới thiệu cơ sở lý thuyết liên quan đến nội dung của đề tài

Chương 3 trình bày phương pháp áp dụng mạng nơ ron tích chập để nhận dạng các đối tượng tham gia giao thông, tập trung vào việc giải quyết bài toán cụ thể liên quan đến nhận diện.

 Chương 4: Kết luận: Chương này đưa ra kết quả thực hiện được và hướng phát triển sau này của đề tài.

CƠ SỞ LÝ THUYẾT

Tế bào thần kinh và mạng thần kinh nhân tạo

Mạng thần kinh nhân tạo, hay còn gọi là mạng thần kinh, là mô hình toán học đơn giản mô phỏng hoạt động của bộ não con người Nó bao gồm các tế bào thần kinh, là các đơn vị xử lý, được kết nối với nhau thông qua các liên kết Mỗi liên kết này đi kèm với một trọng số, thể hiện đặc tính kích thích hoặc ức chế của các tế bào thần kinh.

Hình 2.1: Tế bào thần kinh nhân tạo

Mỗi tế bào thần kinh được kết nối với các tế bào thần kinh khác và nhận các tín hiệu xi từ chúng với các trọng số wi

Quá trình xử lý thông tin của tế bào thần kinh bao gồm hai giai đoạn chính: xử lý ngõ vào và xử lý ngõ ra Hàm xử lý ngõ vào được biểu diễn dưới dạng hàm tổng, giúp tổng hợp và phân tích các tín hiệu nhận được.

Hàm tuyến tính (linear function):

Hàm toàn phương (quadratic function):

Trong mỗi biểu thức,  đại diện cho mức ngưỡng của tế bào thần kinh Hàm tổng ở ngõ vào thường được sử dụng nhiều nhất là hàm tuyến tính Ngõ ra của mỗi tế bào thần kinh được biểu diễn qua công thức y = a(f).

Hàm ặ) gọi là hàm tác động Các dạng hàm tác động thường dùng là:

Hình 2.2 : Hàm nấc Hàm dấu: a(f) = { 1 𝑛ế𝑢 𝑓 ≥ 0

Hình 2.5 : Hàm dốc bão hòa Hàm tuyến tính bão hòa: a(f) = {

Hình 2.6 : Hàm tuyến tính bão hòa

Hình 2.7 : Hàm dạng s đơn cực

Hình 2.8 : Hàm dạng s lưỡng cực

2.1.2 Mạng thần kinh nhân tạo Định nghĩa: Mạng nơron nhân tạo, Artificial Neural Network (ANN) là một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin của các hệ nơron sinh học Nó được tạo nên từ một số lượng lớn các phần tử (nơron) kết nối với nhau thông qua các liên kết (trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó Một mạng nơron nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận dạng mẫu, phân loại dữ liệu, ) thông qua một quá trình học từ tập các mẫu huấn luyện Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các nơron

Tùy theo cấu trúc mạng người ta chia ra các loại mạng sau:

Bảng 2.1 : Các loại mạng thần kinh nhân tạo thường gặp

Một số kiểu mạng nơron

Cách kết nối các nơron trong mạng xác định kiến trúc của mạng Các nơron có thể được kết nối đầy đủ, nghĩa là mỗi nơron kết nối với tất cả các nơron khác, hoặc kết nối cục bộ, chỉ liên kết giữa các nơron trong các tầng khác nhau.

Người ta chia ra hai loại kiến trúc mạng chính:

2.2.1 Tự kết hợp (autoassociative): là mạng có các nơron đầu vào cũng là các nơron đầu ra Mạng Hopfield là một kiểu mạng tự kết hợp

Hình 2.9 : Mạng tự kết hợp

2.2.2 Kết hợp khác kiểu (heteroassociative): là mạng có tập nơron đầu vào và đầu ra riêng biệt Perceptron, các mạng Perceptron nhiều tầng (MLP: MultiLayer Perceptron), mạng Kohonen, … thuộc loại này

Hình 2.10 : Mạng kết hợp khác kiểu

Ngoài ra, tùy thuộc vào sự hiện diện của các kết nối phản hồi từ nơron đầu ra đến nơron đầu vào, mạng nơron được phân chia thành hai loại kiến trúc khác nhau.

Kiến trúc truyền thẳng (feedforward architecture) là loại mạng nơron không có kết nối ngược từ đầu ra về đầu vào, nghĩa là nó không lưu giữ giá trị đầu ra hay trạng thái kích hoạt của các nơron Trong mạng nơron truyền thẳng, tín hiệu chỉ di chuyển theo một hướng từ đầu vào đến đầu ra, và đầu ra của bất kỳ tầng nào sẽ không ảnh hưởng đến tầng đó Một ví dụ điển hình của mạng truyền thẳng là mạng Perceptron.

Kiến trúc hồi tiếp (Feedback architecture) là một loại mạng có kết nối từ nơron đầu ra đến nơron đầu vào, cho phép mạng lưu giữ các trạng thái trước đó Trong kiến trúc này, trạng thái tiếp theo không chỉ phụ thuộc vào tín hiệu đầu vào mà còn vào các trạng thái trước đó của mạng Mạng Hopfield là một ví dụ điển hình của kiến trúc hồi tiếp.

Các phương pháp huấn luyện mạng thần kinh nhân tạo

Mạng thần kinh nhân tạo [7] phải đươc huấn luyện trước khi sử dụng Có hai kiểu học:

- Học cấu trúc (Structure Learning): để thay đổi cấu trúc mạng bao gồm số tế bào thần kinh và cách liên kết giữa chúng

- Học thông số (Parameter Learning): để cập nhật các trọng số liên kết giữu các tế bào thần kinh trong mạng

Có ba phương pháp học thông số

2.3.1 Học có giám sát : Là quá trình học có sự tham gia giám sát của một

Việc dạy chữ cái cho trẻ em giống như việc hướng dẫn một em nhỏ nhận biết chữ "a" Chúng ta giới thiệu từng chữ cái một và giải thích ý nghĩa của chúng Khi trẻ đã nắm vững, chúng ta sẽ kiểm tra bằng cách đưa ra một chữ cái khác, có thể viết hơi khác, và hỏi trẻ đó là chữ gì.

Trong học có giám sát, số lượng lớp cần phân loại đã được xác định từ trước Nhiệm vụ của thuật toán là phát triển một phương pháp phân loại để đảm bảo mỗi vector đầu vào được phân loại chính xác vào lớp tương ứng của nó.

Hình 2.13 : Học có giám sát 2.3.2 Học không giám sát : Là việc học không cần có bất kỳ một sự giám sát nào

Hình 2 14 : Học không giám sát

Trong học máy không giám sát, tập dữ liệu huấn luyện được biểu diễn dưới dạng D = {(x1, x2, …, xn)}, trong đó (x1, x2, …, xn) là các vector đặc trưng của mẫu huấn luyện Thuật toán có nhiệm vụ phân chia tập dữ liệu D thành các nhóm con, mỗi nhóm chứa các vector đầu vào có đặc trưng tương đồng.

Học không giám sát cho phép xác định số lớp phân loại mà không cần biết trước, và sự đa dạng của các lớp này phụ thuộc vào tiêu chuẩn đánh giá độ tương tự giữa các mẫu.

2.3.3 Học củng cố : Đôi khi còn được gọi là học thưởng-phạt (rewardpenalty learning), là sự tổ hợp của cả hai mô hình trên Phương pháp này cụ thể như sau: với vector đầu vào, quan sát vector đầu ra do mạng tính được Nếu kết quả được xem là “tốt” thì mạng sẽ được thưởng theo nghĩa tăng các trọng số kết nối lên; ngược lại mạng sẽ bị phạt, các trọng số kết nối không thích hợp sẽ được giảm xuống Do đó học củng cố là học theo nhà phê bình (critic), ngược với học có giám sát là học theo thầy giáo (teacher)

Bảng 2 2 Sự tương quan giữa mạng thần kinh nhân tạo và bộ não con người

Tổng quát trọng số W của mạng thần kinh thay đổi theo quy luật:

Trong đó: ŋ: tốc độ học r: tín hiệu hiệu học r = fr(wi(k), x(k), di)

Thuật toán lan truyền ngược

Hình 2.16 : Mô hình mạng nơron lan truyền ngược

 Lớp vào (Input Layer) – Số node vào là số thuộc tính của đối tượng cần phân lớp

 Lớp ra (Output Layer) – Số node ra là số đặc điểm cần hướng tới của đối tượng (giá trị ra cần hướng đến – học có giám sát)

Lớp ẩn (Hidden Layer) trong mạng nơ-ron có số lượng node không xác định trước, thường phụ thuộc vào kinh nghiệm của người thiết kế Nếu số node ẩn quá nhiều, mạng sẽ trở nên cồng kềnh và quá trình học sẽ chậm Ngược lại, nếu số node ẩn quá ít, mạng sẽ không học chính xác.

Các nơ-ron trong các lớp thường được kết nối đầy đủ với tất cả nơ-ron của lớp ngoài, và mỗi kết nối giữa hai nơ-ron ở hai lớp khác nhau đều có một trọng số mạng (weight) Những trọng số này là các giá trị ẩn mà mạng cần học để khi nhận đầu vào, kết quả đầu ra đạt được gần với đầu ra mong muốn của mẫu học.

Bước 1: Chọn tốc độ học >0, chọn sai số cực đại Emax

- Gán các trọng số wiq (k), vqi (k) bằng giá trị ngẫu nhiên nhỏ bất kỳ

Bước 3: (Truyền thuận dữ liệu) Tính ngõ ra của mạng với tín hiệu vào là x(k)

Bước 4: Lan truyền ngược sai số, cập nhật trọng số mạng

  w oi k 1 w ( ) iq k  oi ( ) ( )k z k q (i=1, n; q=1, 1) Bước 5: Tính sai số tích lũy

Bước 6: Nếu k Emax thì gán E=0, k=1 và trở lại bước 3 bắt đầu một chu kỳ huấn luyện mới.

Sự khác biệt giữa AI, Machine Learning và Deep Learning

2.5.1 Trí tuệ nhân tạo (Artificial Intelligence – AI)

Trí tuệ con người được mô phỏng bởi máy móc, đại diện cho trí tuệ của các hệ thống nhân tạo Đây không chỉ là tương lai và khoa học viễn tưởng, mà còn là một phần quan trọng trong cuộc sống hàng ngày của chúng ta.

Vào năm 2016, huyền thoại cờ vây Lee Se-dol từ Hàn Quốc đã bị máy tính AlphaGo của Google đánh bại, đánh dấu một bước tiến quan trọng trong lĩnh vực trí tuệ nhân tạo Các thuật ngữ AI, Machine Learning và Deep Learning thường được sử dụng để mô tả thành công của DeepMind, nhưng cần lưu ý rằng chúng không hoàn toàn giống nhau Sự kết hợp của AI, machine learning và deep learning đã đóng vai trò quan trọng trong chiến thắng của AlphaGo trước kì thủ Se-dol.

Hình 2.17 : Mối quan hệ giữa AI, Machine Learning và Deep Learning

(Nguồn : What’s the Difference Between Artificial Intelligence, Machine Learning, and Deep Learning?)

Để hình dung rõ ràng mối quan hệ giữa AI, machine learning và deep learning, chúng ta có thể sử dụng sơ đồ Venn Trong đó, AI là khái niệm rộng nhất, tiếp theo là machine learning, và cuối cùng là deep learning, đóng vai trò quan trọng trong sự bùng nổ của AI hiện nay.

In the 1950s, the development of "King Me," the first computer program capable of playing chess, sparked significant interest and excitement in the field of artificial intelligence This groundbreaking innovation marked a pivotal moment in the evolution of AI technologies.

2.5.2 Machine Learning – Cách tiếp cận để chinh phục trí tuệ nhân tạo

Google utilizes machine learning technology to effectively filter spam in its Gmail service, enhancing user experience and email management.

Machine learning, theo định nghĩa cơ bản, là việc áp dụng các thuật toán để phân tích dữ liệu, học hỏi từ đó và đưa ra quyết định hoặc dự đoán liên quan Thay vì lập trình phần mềm theo cách thủ công với hướng dẫn cụ thể, máy được "đào tạo" bằng cách sử dụng lượng lớn dữ liệu và các thuật toán, cho phép nó tự học và thực hiện các tác vụ.

Machine learning phát triển từ những định nghĩa ban đầu về trí tuệ nhân tạo (AI) và trải qua nhiều phương pháp thuật toán khác nhau như lập trình logic, phân cụm, học tăng cường và mạng Bayes Mặc dù đã có nhiều tiến bộ, nhưng chưa ai đạt được mục tiêu cuối cùng của General AI.

AI, và thậm chí cả Narrow AI hầu hết là ngoài tầm với những phương pháp tiếp cận Machine learning sơ khai

Một trong những ứng dụng nổi bật của Machine Learning trong những năm qua là computer vision, mặc dù vẫn yêu cầu kỹ năng lập trình thủ công để hoàn thành Người dùng thường viết các lớp phân loại để xác định vị trí bắt đầu và kết thúc của đối tượng, như phát hiện hình dạng với tám mặt hoặc nhận diện chữ cái “S-T-O-P” Từ các ứng dụng phân loại này, họ phát triển thuật toán để cải thiện khả năng nhận diện hình ảnh, giúp xác định liệu một dấu hiệu có phải là biển báo dừng hay không.

Mặc dù công nghệ nhận diện hình ảnh và thị giác máy tính có nhiều ưu điểm, nhưng vẫn tồn tại những hạn chế, đặc biệt trong điều kiện thời tiết xấu như sương mù hoặc khi có vật cản che khuất Điều này khiến cho các hệ thống này trở nên nhạy cảm và dễ gặp phải lỗi, dẫn đến sự thiếu tin cậy trong một số tình huống.

Thời gian, và ứng dụng đúng thuật toán đã tạo ra sự khác biệt

2.5.3 Deep Learning – Kỹ thuật để hiện thực hóa Machine Learning

One of the groundbreaking advancements in deep learning is the ability to extract images of cats from YouTube videos, as highlighted in the article "What’s the Difference Between Artificial Intelligence, Machine Learning, and Deep Learning?"

Một phương pháp tiếp cận thuật toán phổ biến trong cộng đồng machine learning là Mạng Nơ-ron Nhân tạo, đã được nghiên cứu trong nhiều thập kỷ Mạng Nơ-ron này được phát triển dựa trên sự hiểu biết về cấu trúc sinh học của bộ não con người, đặc biệt là cách mà các nơ-ron kết nối với nhau Tuy nhiên, khác với bộ não sinh học, nơi các nơ-ron có thể liên kết tự do trong một khoảng cách nhất định, các mạng nơ-ron nhân tạo có cấu trúc phân lớp rõ ràng, với các kết nối và hướng truyền dữ liệu cụ thể.

Bạn có thể cắt một hình ảnh thành các nhóm và đưa chúng vào lớp đầu tiên của mạng thần kinh nhân tạo Tại lớp đầu tiên, các nơ-ron truyền dữ liệu đến lớp thứ hai, nơi nơ-ron thực hiện nhiệm vụ của mình Quá trình này tiếp tục cho đến lớp cuối cùng, nơi sản phẩm cuối cùng được tạo ra.

Mỗi neuron trong mạng thần kinh gán trọng số cho các đầu vào của nó, giúp xác định kết quả đầu ra cuối cùng liên quan đến tác vụ cụ thể Ví dụ, khi phân tích hình ảnh biển báo "dừng", các thuộc tính như hình dạng, màu sắc, chữ cái và kích thước được kiểm tra bởi các neuron Nhiệm vụ của mạng thần kinh là xác định liệu hình ảnh đó có phải là biển báo dừng hay không, kèm theo một "vector xác suất" Trong trường hợp này, hệ thống có thể xác định 86% là biển báo dừng, 7% là biển báo giới hạn tốc độ và 5% là một vật thể khác, từ đó thông báo cho mạng neuron về độ chính xác của nhận diện.

Mạng lưới thần kinh đã đạt được những tiến bộ đáng kể, tuy nhiên vẫn chưa nhận được sự công nhận đầy đủ từ cộng đồng nghiên cứu AI.

AI đã xuất hiện từ những ngày đầu, nhưng chỉ tạo ra rất ít sản phẩm trí tuệ Dù các mạng nơ-ron cơ bản có khả năng tính toán cao, chúng không phải là phương pháp thực tiễn Tuy nhiên, nhóm nghiên cứu do Geoffrey Hinton tại Đại học Toronto đã thành công trong việc song song hóa các thuật toán cho siêu máy tính, chứng minh khái niệm này, nhưng sự chính xác chỉ đạt được khi GPU được triển khai.

Mạng nơ ron tích chập (Convolutional Neural Networks – CNNs)

Tích chập, lần đầu tiên được ứng dụng trong xử lý tín hiệu số, đã được các nhà khoa học áp dụng vào xử lý ảnh và video nhờ vào nguyên lý biến đổi thông tin Để hình dung rõ hơn, tích chập có thể được xem như một cửa sổ trượt áp đặt lên một ma trận Bạn có thể tham khảo cơ chế của tích chập qua hình minh họa bên dưới.

Hình 2.27: Cơ chế tích chập Nguồn : http://deeplearning.stanford.edu/wiki/index.php/Feature_extraction_using_c onvolution

Ma trận bên trái biểu thị một bức ảnh đen trắng, trong đó mỗi giá trị của ma trận tương ứng với một điểm ảnh (pixel) Giá trị 0 đại diện cho màu đen, trong khi giá trị 1 thể hiện màu trắng Đối với ảnh grayscale, giá trị pixel sẽ thay đổi từ 0 đến 255.

Phương pháp sliding window, còn được gọi là kernel, filter hay feature detector, sử dụng ma trận filter 3×3 để nhân từng thành phần tương ứng với ma trận ảnh bên trái Giá trị đầu ra được tính bằng cách cộng lại tích của các thành phần này Kết quả của phép toán tích chập là một ma trận (convolved feature) được tạo ra từ việc trượt ma trận filter và thực hiện tích chập trên toàn bộ ma trận ảnh bên trái Dưới đây là một số ví dụ minh họa cho phép toán tích chập.

Ta có thể làm mờ [11] bức ảnh ban đầu bằng cách lấy giá trị trung bình của các điểm ảnh xung quanh cho vị trí điểm ảnh trung tâm

Hình 2.28 : Hình ảnh bị mờ sau khi chập Nguồn: http://www.wildml.com/2015/11/understanding-convolutional- neural-networks-for-nlp/

Ngoài ra, ta có thể phát hiện biên cạnh bằng cách tính vi phân (độ dị biệt) giữa các điểm ảnh lân cận

Hình 2.29 : Phát hiện biên sau khi dùng tích chập Nguồn : http://www.wildml.com/2015/11/understanding-convolutional-neural- networks-for-nlp/

2.6.2 Mạng nơron tích chập (Convolutional Neural Networks – CNNs)

Mô hình mạng nơ ron nhân tạo truyền thẳng (feedforward neural network) đã được ứng dụng rộng rãi trong nhận dạng, nhưng lại gặp khó khăn khi xử lý dữ liệu hình ảnh Sự kết nối quá dày đặc của mô hình dẫn đến những hạn chế, đặc biệt là với ảnh có kích thước lớn Ví dụ, một ảnh xám 32×32 pixels tạo ra vector đặc trưng 1024 chiều, trong khi ảnh màu cùng kích thước lên tới 3072 chiều Điều này yêu cầu một số lượng lớn trọng số giữa lớp vào và lớp ẩn, và số lượng này sẽ tăng lên đáng kể khi số node và lớp ẩn gia tăng Do đó, ngay cả với ảnh nhỏ, mô hình cũng trở nên phức tạp, gây khó khăn trong việc xử lý ảnh lớn hơn.

Việc liên kết tất cả các điểm ảnh vào một node trong mạng có thể là dư thừa do sự phụ thuộc giữa các điểm ảnh xa không đáng kể, chủ yếu là giữa các điểm lân cận Dựa trên ý tưởng này, mạng nơ-ron tích chập (Convolutional Neural Network) đã được phát triển với kiến trúc khác biệt so với mạng truyền thẳng Thay vì kết nối toàn bộ ảnh với một node, chỉ một phần cục bộ trong ảnh được kết nối với node trong lớp tiếp theo (Local connectivity) Qua các lớp của mô hình này, dữ liệu hình ảnh sẽ được "học" để rút ra các đặc trưng, từ đó thực hiện phân lớp một cách hiệu quả.

Về cơ bản mô hình mạng nơ-ron tích chập bao gồm các lớp sau: lớp

Convolutional layers, ReLU layers, pooling layers, and fully connected layers are fundamental components of neural networks The arrangement and quantity of these layers can be adjusted to create diverse models tailored for various tasks.

Trong quá trình huấn luyện, mạng nơ-ron tích chập (CNNs) tự động tối ưu hóa các thông số cho các bộ lọc Cụ thể, trong nhiệm vụ phân loại hình ảnh, CNNs sẽ tìm kiếm thông số tối ưu cho các bộ lọc, bắt đầu từ các pixel thô cho đến các cạnh.

> shapes > facial > high-level features Layer cuối cùng được dùng để phân lớp ảnh

CNNs sở hữu tính bất biến và tính kết hợp cục bộ, cho phép nhận diện đối tượng hiệu quả Khi một đối tượng được chiếu từ các góc độ khác nhau như dịch chuyển, quay hoặc co giãn, độ chính xác của thuật toán có thể bị ảnh hưởng đáng kể Layer pooling giúp tăng cường tính bất biến đối với các phép biến đổi này, bao gồm phép dịch chuyển, phép quay và phép co giãn.

Tính kết hợp cục bộ trong CNNs cho phép biểu diễn thông tin từ mức độ thấp đến cao và trừu tượng hơn thông qua các phép convolution với filter Điều này giúp CNNs đạt được độ chính xác cao trong việc nhận diện hình ảnh, tương tự như cách con người phân biệt các vật thể trong tự nhiên Chẳng hạn, chúng ta có thể nhận ra một con chó và một con mèo dựa vào những đặc trưng từ mức độ thấp như có bốn chân và đuôi, đến những đặc trưng cao hơn như dáng đi, hình thể và màu lông.

Chi tiết các lớp của mô hình CNNs

Lớp này thể hiện tư tưởng cơ bản của mạng nơ-ron tích chập, sử dụng các bộ lọc nhỏ (thường 3×3 hoặc 5×5) thay vì kết nối toàn bộ điểm ảnh Các bộ lọc này được áp dụng lên từng vùng của ảnh và thực hiện phép tích chập với giá trị điểm ảnh trong vùng đó Bộ lọc sẽ được dịch chuyển theo một bước trượt (stride) để quét toàn bộ bức ảnh.

Hình 2.31: Kết quả chập đầu tiên

Hình 2.32: Kết quả chập thứ 4

Hình 2.33: Kết quả chập hết ảnh ngõ vào

Hình 2.34: Kết quả chập với filter thứ 2

Nguồn: https://www.youtube.com/watch?v=FrKWiRv254g

Ta sử dụng bao nhiêu filter để tính tích chập ngõ vào thì sẽ có bấy nhiêu ảnh ngõ ra sau lớp tích chập đầu tiên

Hình 2.35: Các trọng số được kết nối vào neural đầu tiên

Sau khi tích chập, mỗi neural của lớp ngõ ra có 10 tham số, bao gồm 9 trọng số và 1 bias Số lượng neural trong lớp tích chập sẽ được tính bằng cách nhân số neural với số lượng filter sử dụng Đối với ảnh đầu vào là ảnh RGB, cần nhân thêm với 3 để tính toán chính xác.

Khi sử dụng một bức ảnh kích thước 64×64 và một filter 5×5, kết quả thu được sẽ là một bức ảnh mới cũng có kích thước 64×64, nhờ vào việc thêm padding vào ảnh gốc để tính tích chập cho các trường hợp filter quét ra biên cạnh Số lượng filter trong lớp này tương ứng với số lượng ảnh được tạo ra và sẽ được truyền vào lớp tiếp theo Các trọng số của filter ban đầu được khởi tạo ngẫu nhiên và sẽ được điều chỉnh qua quá trình huấn luyện mô hình.

Hình 2.36: Kích thước ngõ ra của lớp Convolution đầu tiên

Công thức tính ngõ ra tích chập: 𝑊−𝐹+2𝑃

𝑆 + 1 Trong đó: W: kích thước ma trận chập

2.7.2 Lớp ReLU (Rectified Linear Unit)

Lớp này được cài đặt ngay sau lớp Convolutional và sử dụng hàm kích hoạt f(x) = max(0, x), nhằm chuyển toàn bộ giá trị âm thành giá trị 0 Việc này tạo ra tính phi tuyến cho mô hình, điều này rất quan trọng vì nếu chỉ dựa vào các phép biến đổi tuyến tính, việc xây dựng mạng đa tầng sẽ trở nên vô nghĩa Mặc dù có nhiều hàm kích hoạt khác như sigmoid hay tanh, nhưng hàm f(x) = max(0, x) nổi bật nhờ vào tính dễ cài đặt, tốc độ tính toán nhanh và hiệu quả cao.

Hình 2.37: Hàm kích hoạt ReLU 2.7.3 Lớp Pooling

Lớp Pooling sử dụng cửa sổ trượt để quét qua ảnh dữ liệu, với mỗi lần trượt theo một bước trượt nhất định, khác với lớp Convolutional, lớp này không thực hiện tích chập mà tiến hành lấy mẫu Khi cửa sổ trượt, chỉ có một giá trị đại diện cho thông tin ảnh tại vùng đó được giữ lại Các phương pháp phổ biến trong lớp Pooling bao gồm MaxPooling, MinPooling và AveragePooling Ví dụ, với ảnh kích thước 64×64 và filter 2×2 cùng bước trượt stride = 2, MaxPooling sẽ giữ lại giá trị lớn nhất từ 4 giá trị trong vùng cửa sổ 2×2.

Hình 2.308: Cách hoạt động của hàm Maxpooling

Như vậy sau khi qua lớp Pooling, ảnh sẽ giảm kích thước xuống còn 32×32 (kích thước mỗi chiều giảm 2 lần)

Hình 2.39: Kích thước ngõ ra của lớp Pooling

Công thức tính ngõ ra pooling: 𝑊−𝐹

𝑆 + 1 Trong đó: W: kích thước ma trận pooling

Lớp Pooling đóng vai trò quan trọng trong việc giảm kích thước dữ liệu, giúp thu nhỏ bức ảnh lớn mà vẫn giữ lại các đặc trưng cần thiết cho nhận dạng thông qua phương pháp lấy mẫu Việc này không chỉ giảm lượng tham số mà còn tăng hiệu quả tính toán và kiểm soát hiện tượng quá khớp (overfitting).

Lớp fully-connected trong mạng nơ-ron tương tự như lớp trong mô hình truyền thẳng, nơi các giá trị ảnh được liên kết đầy đủ với các nút trong lớp tiếp theo Sau khi xử lý và rút trích đặc trưng từ các lớp trước, dữ liệu ảnh trở nên nhỏ gọn hơn, cho phép áp dụng mô hình truyền thẳng để thực hiện nhận dạng Tóm lại, lớp fully-connected đóng vai trò quan trọng trong việc phân lớp dựa trên dữ liệu đã được xử lý trước đó.

Hình 2.40: Lớp kết nối đầy đủ các neural từ các lớp trên lại với nhau

Input: Các neural ngõ ra của lớp Maxpooling cuối cùng sẽ là ngõ vào của lớp Full Connected.

ÁP DỤNG MẠNG NƠ RON TÍCH CHẬP TRONG VIỆC NHẬN DẠNG CÁC ĐỐI TƯỢNG THAM GIA GIAO THÔNG

Sơ đồ khối

Tác giả thực hiện huấn luyện trên nhiều tập dữ liệu khác nhau với kích thước là 64x64

 Dữ liệu tự tạo tên T_01

Tác giả download trên mạng 5 loại dữ liệu để huấn luyện mạng cho việc nhận dạng các đối tượng tham gia giao thông như sau:

Bicycle, Car, Dog, Motobike, People Mỗi đối tượng có 300 hình ảnh

Chia dữ liệu huấn luyện

Hình 3.2 : Dữ liệu các đối tượng tham gia giao thông

 Dữ liệu chuẩn [14] Caltech-101 được thu thập bởi Fei-Fei Li, Marco Andreetto, and Marc 'Aurelio Ranzato

Caltech-101 có tấc cả 101 đối tượng, tác giả chọn ngẫu nhiên ra 5 loại đối tượng để thực hiện huấn luyện

Hình 3 3 : Một số hình ảnh trong Caltech-101

Cifar-10 có tấc cả 10 loại [15] đối tượng, tác giả chọn ra 5 loại ngẫu nhiên đó là Deer, Dog, Frog, Ship, Cat

Hình 3 4 : Một số hình ảnh trong Cifar-10 Nguồn https://www.cs.toronto.edu/~kriz/cifar.html

Dữ liệu có tên là MerchData và DigitDataset [16]

Hình 3 5 : Một số hình ảnh trong tập dữ liệu Merch

Hình 3 6 : Một số hình ảnh trong tập dữ liệu DigitDataset

3.1.2 Chia dữ liệu huấn luyện

Tác giả thực hiện chia dữ liệu huấn luyện thành 2 phần là dữ liệu training (70%) và dữ liệu test (30%)

3.1.3 Xây dựng mô hình CNN

Tác giả đã phát triển một mô hình CNN gồm 15 lớp để nhận dạng các đối tượng tham gia giao thông, bao gồm 3 lớp Convolution, 4 lớp ReLU và 3 lớp khác Mô hình này được xây dựng dựa trên các lớp đã đề cập ở mục 2.7.

Maxpooling và 2 lớp Fully Connected Output gồm 5 loại

Hình 3 7 : Mô hình CNN trong việc nhận dạng các đối tượng tham gia giao thông

Một mạng nơ-ron tích chập được xây dựng bằng cách kết hợp các lớp khác nhau, bắt đầu với lớp Convolutional Lớp ReLU thường được đặt ngay sau lớp Convolutional, hoặc thậm chí được kết hợp thành một lớp duy nhất Các lớp tiếp theo có thể là Convolutional hoặc Pooling, tùy thuộc vào kiến trúc mong muốn Cuối cùng, lớp Fully-Connected sẽ được sử dụng để thực hiện phân loại.

 Lớp convolution đầu tiên sử dụng 32 filter kích thước 5x5 với stride là

1 (mặc định), padding là 2 để chập với ảnh gốc

 Lớp Maxpooling cả ba lớp đều sử dụng ma trận 3x3 với stride là 2 và padding là 0 (mặc định) để giảm kích thước của lớp convolution đầu tiên

 Lớp convolution thứ hai giống như lớp convolution đầu tiên sử dụng

32 filter kích thước 5x5 với stride là 1 và padding là 2

 Lớp convolution thứ ba sử dụng 64 filter kích thước 5x5 với stride là 1 và padding là 2

 Lớp Fully connected sử dụng 64 nơ ron để tiến hành phân lớp

Sau khi hoàn thành việc huấn luyện ta tiến hành phân loại các đối tượng thành 5 loại

Ta tiến hành kiểm tra lại mạng bằng cách đưa một ảnh mới vào trong mạng và tiến hành dự đoán đối tượng dựa vào bộ phân loại.

Lưu đồ quá trình huấn luyện

Hình 3 8 : Lưu đồ quá trình huấn luyện

Quá trình huấn luyện được thực hiện theo như lưu đồ trên Sau khi huấn luyện xong ta tiến hành đánh giá mạng dựa vào bộ phân loại

Cách hoạt động của mô hình

Hình 3 9 : Mô hình CNN chi tiết

Thực hiện huấn luyện mạng với mô hình CNN trên với thuật toán lan truyền ngược sử dụng Stochastic Gradient Descent with Momentum (SGDM)

Theo mô hình, ảnh đầu vào có kích thước 64x64x3 pixel Chúng ta áp dụng 32 ma trận chập kích thước 5x5x3 với Padding là 2 và Stride mặc định là 1, tạo ra 32 ma trận ảnh đặc trưng sau khi thực hiện chập lần đầu Mỗi ma trận ánh xạ đặc trưng có kích thước 64x64x32, cho thấy ảnh gốc đã được phân tích theo 32 chiều đặc trưng khác nhau thông qua ma trận chập 5x5x3.

Ta có thể tính được tấc cả các tham số trong lớp Convolution đầu tiên như sau:

Ta có ảnh ngõ ra có kích thước 64x64x32 pixel tương ứng với 64*64*32 131072 neural, mỗi neural có 5*5*3 = 75 trọng số và 1 bias nữa là 76

Vậy ta có tất cả 131072*76 = 9961472 tham số Con số này quá lớn nên ta tiếp tục các lớp tiếp theo để kích thước ảnh nhỏ lại

Do kích thước của các ảnh đặc trưng ở tầng chập trên là 64x64, chúng ta cần thực hiện phép giảm số chiều ở ma trận đặc trưng Bước tiếp theo là áp dụng phương pháp down sampling (hay còn gọi là pooling hoặc subsampling) với kernel kích thước 3x3 và stride bằng 2, sử dụng hàm max để lấy giá trị lớn nhất.

Sau khi áp dụng hàm maxpooling với kích thước 3x3 và Stride 2, 32 ma trận đặc trưng kích thước 64x64 ở tầng chập đã được chuyển đổi thành 32 ma trận kích thước 31x31 tại tầng C1.

Tiếp tục sử dụng 32 ma trận chập kích thước 5x5, Padding là 2, Stride là 1, chập với các ma trận ở tầng C1 ta được 32 ma trận ánh xạ đặc trưng kích thước 31x31

Do kích thước các ảnh đặc trưng ở tầng chập trên là 31x31, chúng ta tiến hành giảm số chiều ở ma trận đặc trưng thông qua phép giảm mẫu (down Sampling) với kích thước 3x3, stride 2 và sử dụng hàm maxpooling Kết quả thu được là 32 ma trận đặc trưng có kích thước 15x15 ở tầng C2.

Tiếp tục sử dụng 64 ma trận chập kích thước 5x5, Padding là 2, Stride là 1, chập với các ma trận ở tầng C2 ta được 32 ma trận ánh xạ đặc trưng kích thước 15x15

Do kích thước các ảnh đặc trưng ở tầng chập trên là 15x15, chúng ta thực hiện phép giảm số chiều ở ma trận đặc trưng bằng cách sử dụng phương pháp down sampling (hay còn gọi là pooling hoặc subsampling) với kích thước 3x3, stride 2 và hàm max pooling Kết quả thu được là 32 ma trận đặc trưng có kích thước 7x7 ở tầng C3.

Chúng ta đã tạo ra 64 ma trận đặc trưng ảnh kích thước 7x7, dẫn đến tổng số 3136 neural (7*7*64) Để giảm số lượng neural này, chúng ta áp dụng hàm softmax, giúp thu hẹp về còn 64 neural ở tầng FC1.

Lưu ý rằng đối với mỗi khối ở các tầng từ đầu tới FC1 ta sử dụng hàm kích hoạt Sigmoid dạng : Y = f(x) = 1

Để tính toán giá trị của các node trong mạng, công thức được sử dụng là Y’ = f(A*I), trong đó A đại diện cho ảnh chập, I là ma trận chập, và Y’ là giá trị của một node trên ma trận ánh xạ đặc trưng.

Với 64 node ở tầng FC1, ở đây sử dụng mô hình mạng neural truyền thẳng với các kết nối Fully Connection, với 5 outputs Lớp Fully Connected này sẽ xử lý và đưa ra kết quả nhận dạng

Mạng nơ-ron tích chập là một mô hình học tương tự như mạng nơ-ron truyền thẳng, với việc khởi tạo trọng số ngẫu nhiên và điều chỉnh qua quá trình học Thuật toán học của mạng nơ-ron tích chập sử dụng phương pháp lan truyền ngược và Stochastic Gradient Descent with Momentum (SGDM), nhưng khác biệt ở chỗ mạng tích chập không có liên kết đầy đủ, do đó độ lỗi ở mỗi lớp chỉ được tính dựa trên một phần các node trong lớp tiếp theo.

Ta có thế hình dung mô hình nhận dạng các đối tượng tham gia giao thông được thực hiện như sau:

Hình 3 10 : Minh họa các bước tính các lớp CNN

Thực nghiệm

3.4.1 Trên tập dữ liệu tự tạo tên T_01

 Số lượng dữ liệu là 1500 ảnh RGB chia đều cho 5 loại đối tượng: Bicycle, Car, Dog, Motorbike, People mỗi loại 300 ảnh

 Thời gian huấn luyện gần 3 giờ

 Độ chính xác thu được là 89%

3.4.2 Trên tập dữ liệu Caltech-101

 Số lượng dữ liệu là 1000 ảnh RGB chia đều cho 5 loại đối tượng: Airplanes, Bathtub, Billiards, Faces, Leopards mỗi loại 200 ảnh

 Thời gian huấn luyện hơn 1 giờ

 Độ chính xác thu được là 87%

3.4.3 Trên tập dữ liệu Cifar-10

 Số lượng dữ liệu là 5000 ảnh RGB chia đều cho 5 loại đối tượng: Deer, Dog, Frog, Ship, Cat mỗi loại 1000 ảnh

 Thời gian huấn luyện gần 4 giờ

 Độ chính xác thu được 76%

3.4.4 Trên tập dữ liệu trong Matlab tên DigitDataset

 Số lượng dữ liệu là 5000 ảnh trắng đen chia đều cho 5 loại đối tượng, mỗi loại 1000 ảnh

 Thời gian huấn luyện gần 1 giờ

 Độ chính xác thu được là 99,84%

Dữ liệu Số chu kì Độ chính xác (%)

Một số hình ảnh trong quá trình huấn luyện

Kết quả

3.5.1 Nhận dạng trên hình ảnh

Hình 3 11 : Kết quả nhận dạng xe đạp

 Ảnh ngõ vào là xe đạp

 Ảnh thứ 1 là ảnh lớp pooling lần thứ 1

 Ảnh thứ 2 là ảnh lớp pooling lần thứ 2

 Ảnh thứ 3 là ảnh lớp pooling lần thứ 3

 Ảnh thứ cuối cùng là ảnh sau khi nhận dạng đúng là xe đạp (Bicycle)

Hình 3 12 : Kết quả nhận dạng xe hơi

 Ảnh ngõ vào là xe hơi

 Ảnh thứ 1 là ảnh lớp pooling lần thứ 1

 Ảnh thứ 2 là ảnh lớp pooling lần thứ 2

 Ảnh thứ 3 là ảnh lớp pooling lần thứ 3

 Ảnh thứ cuối cùng là ảnh sau khi nhận dạng đúng là xe hơi (Car)

Hình 3 13 : Nhận dạng đúng đối tượng là Dog

Hình 3 14 : Nhận dạng đúng đối tượng là Car

So sánh phương pháp CNN với HOG – Histogram of Oriented Gradient

HOG (Histogram of Oriented Gradients) là một descriptor đặc trưng quan trọng trong lĩnh vực computer vision và xử lý hình ảnh, được sử dụng để phát hiện đối tượng Mặc dù các khái niệm về HOG đã được giới thiệu từ năm 1986, nhưng đến năm 2005, HOG mới trở nên phổ biến nhờ vào những cải tiến của Navneet Dalal và Bill Triggs HOG tương tự như các biểu đồ Edge Orientation và các descriptor như SIFT, SURF, nhưng nó được tính toán trên một lưới dày đặc các cell và chuẩn hóa độ tương phản giữa các block để tăng cường độ chính xác HOG chủ yếu được sử dụng để mô tả hình dạng và sự xuất hiện của đối tượng trong ảnh, với quy trình tính toán bao gồm 5 bước chính.

1 Chuẩn hóa hình ảnh trước khi xử lý

2 Tính toán gradient theo cả hướng x và y

3 Lấy phiếu bầu cùng trọng số trong các cell

5 Thu thập tấc cả các biểu đồ cường độ gradient định hướng để tạo ra vector đặc trưng cuối cùng

Chuẩn hóa hình ảnh trước khi xử lý

Bước chuẩn hóa không bắt buộc nhưng có thể nâng cao hiệu suất của bộ mô tả HOG trong một số trường hợp Có ba phương pháp chuẩn hóa chính để thực hiện điều này.

 Quy định về chuẩn Gamma/power: trong trường hợp này ta lấy log(p) của mỗi pixel p trong hình ảnh đầu vào

Chuẩn hóa góc vuông là quá trình lấy căn bậc hai của giá trị p của mỗi pixel trong hình ảnh đầu vào Phương pháp này giúp nén cường độ điểm ảnh đầu vào ở mức thấp hơn so với chuẩn bình thường gamma, từ đó cải thiện chất lượng hình ảnh.

Chuẩn hóa phương sai (Variance Normalization) là quá trình tính toán giá trị cường độ điểm ảnh trung bình và độ lệch chuẩn σ của hình ảnh đầu vào Để chuẩn hóa mỗi điểm ảnh, ta trừ đi giá trị trung bình cường độ điểm ảnh và sau đó chia cho độ lệch chuẩn, công thức được biểu diễn như sau: p’ = (p - à)/σ.

Tính toán Gradient Để lấy được hình ảnh Gradient chúng ta sử dụng tích chập (convolution):

Gx = I x Dx và Gy = I x Dy

Với: I là hình ảnh đầu vào

Dx là bộ lọc cho chiều x

Dy là bộ lọc cho chiều y, cho phép tính toán cường độ hình ảnh thông qua công thức |G| = √(Gx² + Gy²) Định hướng của gradient cho mỗi pixel trong hình ảnh được xác định bằng θ = arctan2(Gy, Gx) Từ |G| và θ, chúng ta có thể xây dựng biểu đồ cường độ gradient, trong đó chiều cao của mỗi cột biểu đồ dựa trên θ và trọng số tương ứng.

Hình 3 15 : Biểu đồ cường độ gradient Lấy phiếu bầu trong mỗi cell

Chúng ta cần phân chia hình ảnh thành các ô (cell) và khối (block) Một ô là một vùng hình chữ nhật được xác định bởi số điểm ảnh trong mỗi ô Ví dụ, với hình ảnh kích thước 128x128 pixel và ô có kích thước 4x4 pixel, sẽ có tổng cộng 32x32 = 1024 ô Ngược lại, nếu ô có kích thước 32x32 pixel, sẽ chỉ có 4x4 ô.

Để xây dựng biểu đồ cường độ gradient cho mỗi cell trong bức ảnh, mỗi pixel sẽ đóng góp một phiếu bầu với trọng số tương ứng là cường độ gradient tại pixel đó Trọng lượng của phiếu bầu được xác định bởi cường độ gradient |G| tại mỗi pixel Sau khi thu thập các phiếu bầu, chúng ta sẽ ghép các biểu đồ để tạo ra vector đặc trưng cuối cùng Để đạt được kết quả tốt hơn, các block sẽ được chuẩn hóa trước khi ghép.

Hình 3 16 : Vector đặc trưng cuối cùng Chuẩn hóa các block

Chúng ta cần chia các block tương tự như cách chia cell trước đó, nhưng lần này đơn vị sử dụng là các cell thay vì điểm ảnh Thông thường, chúng ta sử dụng các block 2x2 hoặc 3x3 để đảm bảo độ chính xác hợp lý trong hầu hết các trường hợp Các block này sẽ chồng lên nhau; ví dụ, với mỗi block kích thước 3x3 và 2x2, chúng ta có tổng cộng 4 block Sau đó, chúng ta sẽ thu thập và ghép các biểu đồ của cell trong từng block.

Thu thập tấc cả các biểu đồ cường độ gradient định hướng để tạo ra vector đặc trưng cuối cùng

Dữ liệu so sánh hai phương pháp có tên là MyData chứa đựng 1500 ảnh chia đều cho 5 loại đối tượng là Bicycle, Car, Dog, Motorbike, People mỗi loại 300 ảnh

Sau khi so sánh hai phương pháp CNN và HOG bằng phần mềm MATLAB với cùng một tập dữ liệu kích thước 64x64x3, chúng tôi đã thu được kết quả thể hiện qua ba bảng dưới đây.

Hình 3.17: kết quả nhận dạng và phát hiện đối tượng bằng phương pháp

Hình 3 18: Kết quả nhận dạng và phát hiện đối tượng bằng phương pháp CNN + SVM

Hình 3 19: Kết quả nhận dạng và phát hiện đối tượng bằng phương pháp HOG + SVM

Kết quả hiển thị ra màn hình Command Window của Matlab bằng ma trận Confusion

Kết quả nghiên cứu chỉ ra rằng phương pháp nhận dạng và phát hiện đối tượng sử dụng CNN đạt độ chính xác cao nhất Tiếp theo là sự kết hợp giữa CNN và SVM, trong khi phương pháp HOG kết hợp với SVM có độ chính xác thấp nhất.

Ngày đăng: 15/03/2022, 20:40

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Yann LeCun, Leon Bottou, Yoshua Bengio, and Patrick Haffner. Gradient- Based Learning Applied to Document Recognition. PROC. OF THE IEEE, NOVEMBER 1998 Sách, tạp chí
Tiêu đề: Gradient- Based Learning Applied to Document Recognition
Tác giả: Yann LeCun, Leon Bottou, Yoshua Bengio, Patrick Haffner
Nhà XB: PROC. OF THE IEEE
Năm: 1998
[2] Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton. ImageNet Classification with Deep Convolutional Neural Networks. Advances in neural information processing systems. 2012 Sách, tạp chí
Tiêu đề: ImageNet Classification with Deep Convolutional Neural Networks
Tác giả: Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton
Nhà XB: Advances in neural information processing systems
Năm: 2012
[3] Matthew D Zeiler, Rob Fergus. Visualizing and Understanding Convolutional Networks. arXiv:1311.2901, nov 2013 Sách, tạp chí
Tiêu đề: Visualizing and Understanding Convolutional Networks
Tác giả: Matthew D Zeiler, Rob Fergus
Nhà XB: arXiv
Năm: 2013
[5] Karen Simonyan, Andrew Zisserman. Very Deep Convolutional Networks For Large-Scale Image Recognition. arXiv:1409.1556v6, 10 Apr 2015 Sách, tạp chí
Tiêu đề: Very Deep Convolutional Networks For Large-Scale Image Recognition
Tác giả: Karen Simonyan, Andrew Zisserman
Nhà XB: arXiv
Năm: 2015
[7] Huỳnh Thái Hoàng. Hệ thống điều khiển thông minh. NXB Đại học Quốc gia, 2014, tr 88 Sách, tạp chí
Tiêu đề: Hệ thống điều khiển thông minh
Tác giả: Huỳnh Thái Hoàng
Nhà XB: NXB Đại học Quốc gia
Năm: 2014
[8] Lê Thị Thu Hằng. Nghiên cứu về mạng nơ ron tích chập và ứng dụng cho bài toán nhận dạng biển số xe. Đại học Quốc gia Hà Nội, 2016 Sách, tạp chí
Tiêu đề: Nghiên cứu về mạng nơ ron tích chập và ứng dụng cho bài toán nhận dạng biển số xe
Tác giả: Lê Thị Thu Hằng
Nhà XB: Đại học Quốc gia Hà Nội
Năm: 2016
[9] Michael Copeland. What’s the Difference Between Artificial Intelligence, Machine Learning, and Deep Laearning? Internet:https://blogs.nvidia.com/blog/2016/07/29/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/, 26/11/2017 Sách, tạp chí
Tiêu đề: What’s the Difference Between Artificial Intelligence, Machine Learning, and Deep Laearning
Tác giả: Michael Copeland
Nhà XB: NVIDIA Blog
Năm: 2017
[11] Denny Britz. Understanding Convolutional Neural Networks for NLP. Internet: http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/, 24/07/2017 Sách, tạp chí
Tiêu đề: Understanding Convolutional Neural Networks for NLP
Tác giả: Denny Britz
Năm: 2017
[16] MerchData and DigitDataset. Internet: https://www.mathworks.com/, 12/12/2017 Sách, tạp chí
Tiêu đề: MerchData and DigitDataset
Năm: 2017
[18] Nguyễn Thành Tâm. Nhận dạng hành động người dùng mạng nơ ron tích chập. Đại học Sư Phạm Kỹ Thuật TpHCM, 2017 Sách, tạp chí
Tiêu đề: Nhận dạng hành động người dùng mạng nơ ron tích chập
Tác giả: Nguyễn Thành Tâm
Nhà XB: Đại học Sư Phạm Kỹ Thuật TpHCM
Năm: 2017
[10] Feature extraction using convolution. Internet: http://deeplearning.stanford.edu/wiki/index.php/Feature_extraction_using_convolution, 21/07/2017 Link
[12] Convolutional Neural Network. Internet: https://www.youtube.com/watch?v=FrKWiRv254g, 06/08/2017 Link
[13] Convolutional Neural Networks (CNNs/ConvNets). Internet: http://cs231n.github.io/convolutional-networks/, 04/08/2017 Link
[14] Caltech 101. Internet: http://www.vision.caltech.edu/Image_Datasets/Caltech101/, 29/10/2017 Link
[15] The Cifar-10 dataset. Internet: https://www.cs.toronto.edu/~kriz/cifar.html, 04/11/2017 Link
[17] Nguyễn Phương Lan. Tìm hiểu về HOG (Histogram of Oriented Gradient). Internet : https://viblo.asia/p/tim-hieu-ve-hoghistogram-of-oriented-gradients-m68Z0wL6KkG, 20/12/2017 Link
[4] Christian Szegedy, Wie Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincnet Vanhoucke, Andrew Rabinovich.Going deeper with convolutions. arXiv:1409.4842v1, 17 Sep 2014 Khác
[6] Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun. Deep Residual Learning for Image Recognition. arXiv:1512.03385, 10 Dec 2015 Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.3 : Hàm dấu - Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu
Hình 2.3 Hàm dấu (Trang 14)
Bảng 2.1 : Các loại mạng thần kinh nhân tạo thường gặp - Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu
Bảng 2.1 Các loại mạng thần kinh nhân tạo thường gặp (Trang 16)
Hình 2.10 : Mạng kết hợp khác kiểu - Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu
Hình 2.10 Mạng kết hợp khác kiểu (Trang 17)
Hình 2.16 : Mô hình mạng nơron lan truyền ngược - Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu
Hình 2.16 Mô hình mạng nơron lan truyền ngược (Trang 21)
Hình 2.17 : Mối quan hệ giữa AI, Machine Learning và Deep Learning - Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu
Hình 2.17 Mối quan hệ giữa AI, Machine Learning và Deep Learning (Trang 24)
Hình 2.18 : King me: chương trình máy tính đầu tiên biết chơi cờ - Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu
Hình 2.18 King me: chương trình máy tính đầu tiên biết chơi cờ (Trang 25)
Hình 2.20 : Lấy hình ảnh mèo ra khỏi video trên Youtube là một trong - Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu
Hình 2.20 Lấy hình ảnh mèo ra khỏi video trên Youtube là một trong (Trang 27)
Hình 2.22 : Mô hình DBN. Nguồn: - Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu
Hình 2.22 Mô hình DBN. Nguồn: (Trang 30)
Hình 2.24 : Mô hình RNN. Nguồn: - Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu
Hình 2.24 Mô hình RNN. Nguồn: (Trang 31)
Hình 2.28 : Hình ảnh bị mờ sau khi chập. Nguồn: - Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu
Hình 2.28 Hình ảnh bị mờ sau khi chập. Nguồn: (Trang 34)
Hình 2.29 : Phát hiện biên sau khi dùng tích chập. Nguồn : - Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu
Hình 2.29 Phát hiện biên sau khi dùng tích chập. Nguồn : (Trang 34)
Hình 2.33: Kết quả chập hết ảnh ngõ vào - Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu
Hình 2.33 Kết quả chập hết ảnh ngõ vào (Trang 38)
Hình 2.34: Kết quả chập với filter thứ 2 - Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu
Hình 2.34 Kết quả chập với filter thứ 2 (Trang 38)
Hình 2.35: Các trọng số được kết nối vào neural đầu tiên - Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu
Hình 2.35 Các trọng số được kết nối vào neural đầu tiên (Trang 39)
Hình 2.37: Hàm kích hoạt ReLU  2.7.3.  Lớp Pooling - Nhận dạng các đối tượng tham gia giao thông dùng mạng nơron học sâu
Hình 2.37 Hàm kích hoạt ReLU 2.7.3. Lớp Pooling (Trang 41)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w