Tìm hiểu ứng dụng TensorFlow cho bài toán nhận dạng hình ảnh tại HCMUTE

Đồ án nghiên cứu hcmute tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng, áp dụng công nghệ tiên tiến, tối ưu giải pháp kỹ thuật cho bài toán toán học.

Người đăng

Ẩn danh

Thể loại

đồ án tốt nghiệp

2018

76
4
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CẢM ƠN

1. CHƯƠNG 1: TỔNG QUAN

1.1. Nội dung nghiên cứu

1.2. Mục tiêu

1.3. Nội dung nghiên cứu chi tiết

1.4. Giới hạn

1.5. Bố cục

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1. Giới thiệu về trí tuệ nhân tạo (AI – Artificial Intelligence)

2.2. Định nghĩa về Machine Learning

2.3. Ứng dụng của Machine Learning

2.4. Các bước giải quyết bài toán bằng phương pháp Machine Learning

2.5. Các phương pháp Machine Learning

2.5.1. Học không giám sát (Unsupervised Learning)

2.5.2. Học có giám sát (Supervised Learning)

2.6. Giới thiệu về Deep Learning

2.7. Giới thiệu về mạng nơ-ron (Neural Networks)

2.7.1. Mạng nơ-ron sinh học

3. CHƯƠNG 3: THIẾT KẾ VÀ TÍNH TOÁN

4. CHƯƠNG 4: THI CÔNG HỆ THỐNG

5. CHƯƠNG 5: KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ

6. CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

PHỤ LỤC

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Giới thiệu về TensorFlow và Nhận dạng hình ảnh tại HCMUTE

Đồ án tốt nghiệp này, thực hiện tại HCMUTE, tập trung vào việc ứng dụng TensorFlow, một thư viện máy học mạnh mẽ, trong bài toán nhận dạng hình ảnh. Nghiên cứu này khai thác tiềm năng của Học máy (Machine Learning), cụ thể là Học sâu (Deep Learning), để xây dựng một hệ thống nhận dạng hiệu quả. TensorFlow được lựa chọn do tính linh hoạt và khả năng hỗ trợ đa dạng các kiến trúc mạng nơ-ron, trong đó có Mạng nơ-ron tích chập (CNN) – một kiến trúc đặc biệt hiệu quả cho xử lý hình ảnh. Mục tiêu chính là đánh giá khả năng của TensorFlow trong việc giải quyết bài toán nhận dạng hình ảnh, cụ thể là phân loại hình ảnhphát hiện đối tượng. Nghiên cứu cũng xem xét các khía cạnh thực tiễn như việc lựa chọn dữ liệu huấn luyện nhận dạng hình ảnh, kiến trúc CNN, và huấn luyện mô hình TensorFlow.

1.1. Trí tuệ nhân tạo AI và Học sâu Deep Learning

Đồ án nằm trong bối cảnh phát triển nhanh chóng của Trí tuệ nhân tạo (AI)Học sâu (Deep Learning). AI hướng đến việc mô phỏng khả năng tư duy của con người trong máy móc. Học sâu, một nhánh của Học máy, sử dụng các mạng nơ-ron nhiều lớp để học các biểu diễn phức tạp từ dữ liệu. Deep Learning đã đạt được những tiến bộ đáng kể trong lĩnh vực nhận dạng hình ảnh, vượt trội so với các phương pháp truyền thống. Việc sử dụng TensorFlow trong đồ án này giúp tận dụng sức mạnh của Deep Learning trong việc xây dựng hệ thống nhận dạng hình ảnh chính xác và hiệu quả. Mạng nơ-ron tích chập (CNN), một cấu trúc quan trọng trong Deep Learning, được ứng dụng rộng rãi trong các hệ thống xử lý ảnh tiên tiến. Những ứng dụng thực tiễn của AIDeep Learning bao gồm nhận dạng khuôn mặt, nhận dạng vật thể, và xe tự lái.

1.2. TensorFlow và Ứng dụng TensorFlow trong HCMUTE

TensorFlow là một thư viện mã nguồn mở mạnh mẽ cho Học sâu, phát triển bởi Google. Nó cung cấp một nền tảng toàn diện để xây dựng và triển khai các mô hình Học sâu, bao gồm các công cụ hỗ trợ lập trình TensorFlow, huấn luyện mô hình TensorFlow, và xử lý dữ liệu. TensorFlow cho phép xây dựng các mô hình TensorFlow phức tạp, bao gồm cả CNN cho nhận dạng hình ảnh. Ứng dụng TensorFlow trong HCMUTE được tập trung trong đồ án này, với mục tiêu chứng minh tính khả thi của TensorFlow trong giải quyết bài toán nhận dạng hình ảnh trong môi trường học thuật. Đồ án đã khảo sát và áp dụng các kỹ thuật cơ bản của TensorFlow, bao gồm các lớp trong TensorFlow, TensorFlow Object Detection API, và TensorFlow Lite. Khả năng tích hợp TensorFlow với các hệ thống khác, chẳng hạn như OpenCV, cũng được xem xét.

II. Phương pháp luận và Xử lý dữ liệu

Đồ án sử dụng phương pháp học có giám sát với CNN là kiến trúc chính. Quá trình bao gồm các bước: thu thập và tiền xử lý dữ liệu huấn luyện nhận dạng hình ảnh, thiết kế kiến trúc CNN, huấn luyện mô hình bằng TensorFlow, và đánh giá hiệu suất. Dữ liệu huấn luyện bao gồm các hình ảnh đã được gán nhãn. Kiến trúc CNN được lựa chọn dựa trên yêu cầu của bài toán và khả năng tính toán. Quá trình huấn luyện mô hình TensorFlow liên quan đến tối ưu hóa các tham số của mạng nơ-ron để đạt được độ chính xác cao. Hiệu suất được đánh giá dựa trên các chỉ số như độ chính xác, độ tin cậy, và thời gian xử lý.

2.1. Thu thập và tiền xử lý dữ liệu

Việc thu thập dữ liệu huấn luyện nhận dạng hình ảnh là bước quan trọng. Dữ liệu cần đủ lớn và đa dạng để đảm bảo mô hình học được các đặc trưng tổng quát. Tiền xử lý dữ liệu bao gồm việc làm sạch, chuẩn hóa và tăng cường dữ liệu. Các kỹ thuật tiền xử lý giúp cải thiện chất lượng dữ liệu và tăng hiệu suất của mô hình. Chất lượng dữ liệu huấn luyện ảnh hưởng trực tiếp đến độ chính xác của hệ thống nhận dạng. Việc sử dụng các kỹ thuật xử lý ảnh như xử lý ảnh bằng TensorFlow có thể cải thiện đáng kể chất lượng dữ liệu.

2.2. Thiết kế kiến trúc CNN và huấn luyện mô hình

Thiết kế kiến trúc CNN bao gồm việc lựa chọn số lượng lớp, kích thước bộ lọc, và hàm kích hoạt. Việc lựa chọn kiến trúc CNN phù hợp rất quan trọng đối với hiệu suất của mô hình. Huấn luyện mô hình sử dụng TensorFlow bao gồm việc tối ưu hóa các tham số của mạng nơ-ron để giảm thiểu hàm mất mát. Python và TensorFlow được sử dụng như công cụ chính cho việc lập trình và huấn luyện. Các kỹ thuật tối ưu hóa như suy giảm độ dốc (Gradient Descent) được áp dụng. Quá trình huấn luyện mô hình TensorFlow đòi hỏi khả năng tính toán mạnh mẽ và có thể mất nhiều thời gian.

III. Kết quả và Phân tích

Đồ án trình bày kết quả nhận dạng hình ảnh đạt được. Hiệu suất được đánh giá dựa trên các chỉ số như độ chính xác, độ nhạy, và độ đặc hiệu. Đánh giá mô hình nhận dạng hình ảnh được thực hiện trên tập dữ liệu kiểm thử độc lập. Kết quả được phân tích để đánh giá hiệu quả của TensorFlow trong việc giải quyết bài toán nhận dạng. Các yếu tố ảnh hưởng đến hiệu suất, như kích thước dữ liệu và kiến trúc mạng, được xem xét. Nghiên cứu chỉ ra những điểm mạnh và hạn chế của phương pháp đề xuất.

3.1. Đánh giá hiệu suất

Hiệu suất của hệ thống nhận dạng hình ảnh được đánh giá trên tập dữ liệu kiểm thử độc lập. Các chỉ số quan trọng bao gồm độ chính xác (accuracy), độ nhạy (recall), và độ đặc hiệu (precision). Phân tích kết quả giúp xác định hiệu quả của CNNTensorFlow trong việc phân loại hình ảnh. Các trường hợp nhận dạng sai được phân tích để tìm hiểu nguyên nhân và cải thiện hệ thống. Kết quả sẽ được so sánh với các phương pháp nhận dạng hình ảnh khác để đánh giá tính cạnh tranh của phương pháp được đề xuất trong đồ án.

3.2. Phân tích và thảo luận

Kết quả được phân tích để hiểu rõ hơn về hiệu quả của việc sử dụng TensorFlowCNN trong bài toán nhận dạng hình ảnh. Các yếu tố ảnh hưởng đến hiệu suất, chẳng hạn như kích thước dữ liệu huấn luyện, kiến trúc CNN, và các tham số huấn luyện, được thảo luận. Phân tích cũng bao gồm việc so sánh kết quả với các nghiên cứu trước đây. Thảo luận tập trung vào những điểm mạnh, hạn chế, và hướng phát triển của hệ thống nhận dạng hình ảnh được xây dựng.

01/02/2025

Trích đoạn nội dung tài liệu

đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nội dung nghiên cứu, giới hạn và bố cục đồ án.  Chƣơng 2: Cơ Sở Lý Thuyết. Giới thiệu về Machine Learning, Deep Learning, Neural Network, Convolution Neural Network, Tensowflow, VGG.  Chƣơng 3: Thiết Kế và Tính Toán Xây dựng sơ đồ khối hệ thống, chức năng của từng khối.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 2 do an CHƢƠNG 1. TỔNG QUAN  Chƣơng 4: Thi Công Hệ Thống Cách cài đặt Tensorflow trên Python bằng Anaconda, giới thiệu các phần mềm giúp viết chương trình.  Chƣơng 5: Kết Quả, Nhận Xét và Đánh Giá Các kết quả đạt được khi thực hiện chương trình, phân tích, nhận xét, đánh giá kết quả thu được.  Chƣơng 6: Kết Luận và Hướng Phát Triển Tóm tắt những kết quả đạt được, những hạn chế và nêu lên các hướng phát triển trong tương lai.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 3 do an CHƢƠNG 2. CƠ SỞ LÝ THUYẾT Chƣơng 2. Giới thiệu về trí tuệ nhân tạo (AI – Artificial Intelligence) Ngày nay thì trí tuệ nhân tạo thì có mặt ở khắp mọi nơi. Trí tuệ nhân tạo là xu hướng mà các hãng công nghệ lớn đang hướng đến như Google, Facebook, Amazon, Microsoft,.

Các hãng đó đều đầu tư rất lớn vào trí tuệ nhân tạo nhắm tạo ra các sản phẩm phục vụ cho lợi ích của con người. Trí tuệ nhân tạo là trí tuệ được biểu diễn bởi bất cứ một hệ thống nhân tạo nào. Thuật ngữ này thường dùng để nói đến các máy tính có mục đích không nhất định và ngành khoa học nghiên cứu về các lý thuyết và ứng dụng của trí tuệ nhân tạo. Nó liên quan đến việc cư xử, sự học hỏi, khả năng thích ứng thông minh của máy móc.

[2][3] Bellman (1978) định nghĩa: trí tuệ nhân tạo là tự động hoá các hoạt động phù hợp với suy nghĩ con người, chẳng hạn các hoạt động ra quyết định, giải bài toán, … Rich anh Knight (1991) thì cho rằng: Trí tuệ nhân tạo là khoa học nghiên cứu xem làm thế nào để máy tính có thể thực hiện những công việc mà hiện con người còn làm tốt hơn máy tính. [3][5] Mỗi khái niệm, định nghĩa đều có điểm đúng riêng, nhưng để đơn giản chúng ta có thể hiểu trí tuệ nhân tạo là một ngành khoa học máy tính. Nó xây dựng trên một nền tảng lý thuyết vững chắc và có thể ứng dụng trong việc tự động hóa các hành vi thông minh của máy tính. Giúp máy tính có được những trí tuệ của con người như: biết suy nghĩ và lập luận để giải quyết vấn đề, biết giao tiếp do hiểu ngôn ngữ, tiếng nói, biết học và tự thích nghi.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 4 do an CHƢƠNG 2. CƠ SỞ LÝ THUYẾT Nó là thứ giúp ta sử dụng để trả lời tin nhắn tự động, học cách lái xe, lái máy bay để chúng ta có thể ngồi đó quan sát không cần phải điểu khiển, sắp xếp lại các ảnh của những chuyến đi chơi khác nhau vào những cuốn album riêng biệt, thậm chí AI còn giúp chúng ta quản lí nhà của khi đi vắng hoặc đi mua sắm nữa. Định nghĩa về Machine Learning Machine Learning tương tự như AI và là một tập con của AI. Nếu AI thể hiện mục tiêu của con người thì Machine Learning giúp con người đạt được mục tiêu đó.

Machine learning có khả năng tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải được lập trình cụ thể. Ta có thể định nghĩa Machine Learning như sau: “là một lĩnh vực của trí tuệ nhận tạo liên quan đến việc phát triển các kĩ thuật cho phép các máy tính có thể học. Cụ thể hơn, Machine Learning là một phương pháp để tạo ra các chương trình máy tính bằng việc phân tích các tập dữ liệu đã có sẵn, nhưng khác với thống kê, Machine Learning tập trung vào sự phức tạp của các giải thuật trong việc thực thi tính toán, tìm ra các mối quan hệ giữ các tập dữ liệu đó, kể cả khi không được chỉ dẫn cụ thể. Nhiều bài toán suy luận được xếp vào loại bài toán khó vì thế nhiệm vụ của Machine Learning là nghiên cứu sự phát triển các giải thuật, suy luận hướng giải quyết tối ưu có thể xử lí được.

Ứng dụng của Machine Learning Machine Learning có nhiều ứng dụng ta có thể phân loại như sau:  Ứng dụng trong các bái toán phân loại: chuẩn doán bệnh, bộ lọc spam trong thư điện tử, các bài toán về nhận dạng ảnh…  Ứng dụng trong phân cụm: phân vùng ảnh, object detection, tìm quy luật của tự nhiên (thời tiết, biến đổi khí hậu…).  Ứng dụng trong các bài toán về xấp xỉ: dự đoán giá nhà, giá vàng, đô la ngoại tệ, dự đoán thời tiết khí hậu… BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 5 do an CHƢƠNG 2. Các bƣớc trong giải quyết bài toán bằng phƣơng pháp Machine Learning Thu thập dữ liệu từ các nguồn liên quan đến bài toán xử lý (đi thu thập các mẫu để training). Chọn các thuộc tính đặc trưng và mã hóa chúng làm cơ sở cho thực hiện Machine Learning.

Tùy vào các bài toán cụ thể mà mức độ phức tạp của các đặc trưng có thể khác nhau. Đối với các bài toán có nhiều đặc tính để chọn, nếu ta chọn hết các đặc tính có thể dẫn đến mất thời gian trong quá trình xử lý cũng như tính toán. Trong những trường hợp này ta có thể hực hiện một số thuật toán về việc lựa chọn thuộc tính như tìm kiếm ngược, tìm kiếm chuyển tiếp… Chọn các mô hình được đào tạo phù hợp để áp dụng. Mỗi mô hình có thể phù hợp với từng lớp bài toán, tuy nhiên một bài toán cũng có thể được giải quyết bằng nhiều mô hình khác nhau.

Các phƣơng pháp Machine Learning a. Học không giám sát (Unsupervised Learning) Chúng ta không biết được đầu ra (outcome) hay các nhãn mà chỉ có dữ liệu đầu vào. Thuật toán Unsupervised Learning sẽ dựa vào cấu trúc của dữ liệu để thực hiện một công việc nào đó, ví dụ như phân nhóm (clustering) hoặc giảm số chiều của dữ liệu (dimension reduction) để thuận tiện trong việc lưu trữ và tính toán. Các bài toán Unsupervised Learning được tiếp tục chia nhỏ thành hai loại:  Clustering (phân nhóm) Một bài toán phân nhóm toàn bộ dữ liệu XX thành các nhóm nhỏ dựa trên sự liên quan giữa các dữ liệu trong mỗi nhóm.

Ví dụ: phân nhóm khách hàng dựa trên hành vi mua hàng. Điều này cũng giống như việc ta đưa cho một đứa trẻ rất nhiều mảnh ghép với các hình thù và màu sắc khác nhau, ví dụ tam giác, vuông, tròn với màu xanh và đỏ, sau đó yêu cầu trẻ phân chúng thành từng BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 6 do an CHƢƠNG 2. CƠ SỞ LÝ THUYẾT nhóm. Mặc dù không cho trẻ biết mảnh nào tương ứng với hình nào hoặc màu nào, nhiều khả năng chúng vẫn có thể phân loại các mảnh ghép theo màu hoặc hình dạng.

 Association Đây là bài toán khi chúng ta muốn khám phá ra một quy luật dựa trên nhiều dữ liệu cho trước. Ví dụ: những khách hàng nam mua quần áo thường có xu hướng mua thêm đồng hồ hoặc thắt lưng; những khán giả xem phim Spider Man thường có xu hướng xem thêm phim Bat Man, dựa vào đó tạo ra một hệ thống gợi ý khách hàng (Recommendation System), thúc đẩy nhu cầu mua sắm. Như vậy học không giám sát, số lớp cần phân loại không được biết trước, thuật toán sẽ dựa trên các đặc trương cụ thể của từng đối tượng mà phân lớp cho phù hợp với đối tượng đó sau đó tính toán dự đoán dữ liệu ra phù hợp. Học có giám sát (Supervised Learning) Đây là thuật toán dự đoán đầu ra (outcome) của một dữ liệu mới (new input) dựa trên các cặp (input, outcome) đã biết từ trước.

Cặp dữ liệu này còn được gọi là (data, label) nghĩa là (dữ liệu, nhãn). Supervised Learning là nhóm phổ biến nhất trong các thuật toán Machine Learning. Sai số giữa đầu ra thực và đầu ra mong muốn sẽ được dùng để điều chỉnh các trọng số của mạng về gần hơn với kết quả mong muốn. Thuật toán Supervised Learning còn được tiếp tục chia nhỏ ra thành hai loại chính:  Classification (Phân loại) Một bài toán được gọi là classification nếu các label của input data được chia thành một số hữu hạn nhóm.

Ví dụ: Gmail xác định xem một email có phải là spam hay không; các hãng tín dụng xác định xem một khách hàng có khả năng thanh toán nợ hay không. Ba ví dụ phía trên được chia vào loại này. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 7 do an CHƢƠNG 2. CƠ SỞ LÝ THUYẾT  Regession (Hồi quy) Nếu label không được chia thành các nhóm mà là một giá trị thực cụ thể.

Ví dụ: một căn nhà rộng x m2, có y phòng ngủ và cách trung tâm thành phố z km sẽ có giá là bao nhiêu? Như vậy học có giám sát, số lớp cần phân loại đã được biết trước, dựa vào dữ liệu đầu vào và đầu ra để tính toán dự đoán cho các dữ liệu tiếp sau. GIỚI THIỆU VỀ DEEP LEARNING Deep Learning đã và đang là một chủ đề được đề cập rộng rãi gần đây. Là một phạm trù nhỏ của Machine Learning, Deep Learning tập trung giải quyết các vấn đề liên quan đến mạng thần kinh nhân tạo nhằm nâng cấp các công nghệ như nhận diện giọng nói, tầm nhìn máy tính và xử lý ngôn ngữ tự nhiên, đó là một thuật toán dựa trên một số ý tưởng từ não bộ tới việc tiếp thu nhiều tầng biểu đạt, cả cụ thể lẫn trừu tượng, qua đó làm rõ nghĩa của các loại dữ liệu. Điểm đặc biệt của Deep Learning là tính chính xác dựa vào lượng dữ liệu, lượng dữ liệu có thể có kích thước khổng lồ mà không bị hạn chế.

[2] Deep Learning đang trở thành một trong những lĩnh vực nóng nhất trong khoa học máy tính. Chỉ trong vài năm, Deep Learning đã thúc đẩy tiến bộ trong đa dạng các lĩnh vực như nhận thức sự vật (object perception), dịch tự động (machine translation), nhận diện giọng nói,… những vấn đề từng rất khó khăn với các nhà nghiên cứu trí tuệ nhân tạo. Và để xây dựng được các mô hình của Deep Learning như đã nói ở trên chúng ta cần có một số công cụ hỗ trợ như Caffe, Torch, Tensorflow, Theano. Trong đề tài này nhóm đã quyết định chọn công cụ Tensorflow để nghiên cứu và xây dựng mô hình nhỏ về Deep Learning.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 8 do an CHƢƠNG 2. GIỚI THIỆU VỀ MẠNG NƠ-RON (NEURAL NETWORKS) 2.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Bài viết "Ứng dụng TensorFlow trong nhận dạng hình ảnh tại HCMUTE" khám phá cách mà công nghệ TensorFlow được áp dụng trong lĩnh vực nhận dạng hình ảnh, đặc biệt tại trường Đại học Công nghệ TP.HCM (HCMUTE). Bài viết nêu bật những lợi ích của việc sử dụng TensorFlow, như khả năng xử lý dữ liệu lớn và cải thiện độ chính xác trong nhận diện hình ảnh. Độc giả sẽ tìm thấy thông tin hữu ích về cách mà công nghệ này có thể được tích hợp vào các dự án nghiên cứu và ứng dụng thực tiễn, từ đó mở rộng kiến thức về công nghệ hiện đại trong giáo dục và nghiên cứu.

Nếu bạn quan tâm đến việc ứng dụng công nghệ trong giáo dục, hãy tham khảo thêm bài viết "Luận văn quản lý ứng dụng công nghệ thông tin trong dạy học các môn khoa học tự nhiên ở các trường trung học phổ thông trên địa bàn huyện quang bình tỉnh hà giang", nơi bạn có thể tìm hiểu về việc áp dụng công nghệ thông tin trong giảng dạy. Ngoài ra, bài viết "Luận văn thạc sĩ ứng dụng thị giác máy tính để trích xuất số báo danh và điểm thi tuyển sinh lớp 10 tại trường thpt vũng tàu" cũng sẽ cung cấp cho bạn cái nhìn sâu sắc về ứng dụng của thị giác máy tính trong giáo dục. Cuối cùng, bài viết "Luận văn vận dụng quan điểm giao tiếp vào dạy học ngữ pháp ở bậc trung học phổ thông" sẽ giúp bạn hiểu rõ hơn về cách thức giao tiếp trong dạy học, một khía cạnh quan trọng trong việc nâng cao hiệu quả giáo dục. Những tài liệu này sẽ giúp bạn mở rộng kiến thức và khám phá thêm nhiều ứng dụng thú vị của công nghệ trong giáo dục.