1. Trang chủ
  2. » Tất cả

Realtime object detection for camera streaming using c

37 2 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

Tiêu đề Realtime object detection for camera streaming using C
Người hướng dẫn ThS. Nguyễn Thị Liệu
Trường học Trường Đại Học Công Nghệ Đồng Nai
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo cáo tổng kết đề tài nghiên cứu khoa học
Năm xuất bản 2021
Thành phố Đồng Nai
Định dạng
Số trang 37
Dung lượng 2,72 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • 1. Lý do chọn đề tài (9)
  • 2. Tình hình nghiên cứu (9)
    • 2.1. Ngoài nước (9)
    • 2.2. Trong nước (10)
  • 3. Mục tiêu nghiên cứu (10)
  • 4. Đối tượng và phạm vi nghiên cứu (10)
    • 4.1. Đối tượng nghiên cứu (10)
    • 4.2. Phạm vi nghiên cứu (10)
  • 5. Phương pháp nghiên cứu (10)
  • 6. Những đóng góp mới của đề tài và những vấn đề mà đề tài chưa thực hiện được11 1. Những đóng góp mới (11)
    • 6.2. Những vấn đề chưa thực hiện được (11)
  • 7. Kết cấu của đề tài (11)
  • Chương 1 Cơ sở lý thuyết (12)
    • 1.1. Tổng quan về học máy (12)
      • 1.1.1. Học máy là gì? (12)
      • 1.1.2. Các phương pháp học máy (12)
      • 1.1.3. Tại sao phải học máy (13)
        • 1.1.3.1. Trường hợp không ai biết câu trả lời (13)
        • 1.1.3.2. Trường hợp chúng ta biết cách thực hiện nhưng không thể diễn giải để máy tính có thể thực hiện lại được (13)
        • 1.1.3.3. Trường hợp dữ liệu thay đổi liên tục, ta không thể thường xuyên lập trình lại chức năng đó (13)
        • 1.1.3.4. Trường hợp ta không thể lập trình cụ thể cho từng người dùng do giới hạn về nhân lực (14)
      • 1.1.4. Ứng dụng của học máy hiện nay (14)
    • 1.2. Thư viện Keras (14)
      • 1.2.1. Thư viện Keras là gì? (14)
      • 1.2.2. Tại sao lại sử dụng Keras (15)
      • 1.2.3. Một số thuật ngữ trong học máy và trong Keras (15)
        • 1.2.3.1. Deep Learning (15)
        • 1.2.3.2. Layer (15)
        • 1.2.3.3. Model (16)
        • 1.2.3.4. Train (16)
        • 1.2.3.5. Data (16)
        • 1.2.3.6. Sequential model (16)
        • 1.2.3.7. Custom model (16)
        • 1.2.3.8. Fit (16)
        • 1.2.3.9. Compile (16)
        • 1.2.3.10. Predict (17)
        • 1.2.3.11. Test (17)
        • 1.2.3.12. Overfitting (17)
        • 1.2.3.13. Features (17)
        • 1.2.3.14. Convolution (17)
      • 1.2.4. Một số layer chính trong Keras (18)
        • 1.2.4.1. Convolution Layer (18)
        • 1.2.4.2. Conv2D Transpose (18)
        • 1.2.4.3. Pooling Layer (19)
        • 1.2.4.4. Fully-Connected Layer (19)
      • 1.2.5. Quy trình làm việc của Keras (19)
    • 1.3. Ngôn ngữ lập trình và các thư viện khác dùng trong đề tài (0)
      • 1.3.1. Python 3.6.3 (19)
      • 1.3.2. Thư viện OpenCV (20)
      • 1.3.3. Thư viện Tensorflow (20)
      • 1.3.4. Thư viện Numpy (20)
    • 1.4. Mô hình CNN (20)
      • 1.4.1. Tầng Convolution (Conv) (21)
      • 1.4.2. Tầng Pooling (22)
      • 1.4.3. Tầng Relu (22)
      • 1.4.4. Tầng Fully-connected (23)
      • 1.4.5. Kết luận (23)
    • 1.5. Mô hình SRCNN (24)
    • 1.6. Tiểu kết (25)
  • Chương 2 Xây dựng công cụ cải thiện chất lượng ảnh (26)
    • 2.1. Tìm hiểu (26)
    • 2.2. Chọn phương pháp học máy (26)
    • 2.3. Thu thập kiến thức từ nhiều nguồn (27)
    • 2.4. Cài đặt môi trường làm việc và một số thư viện cần thiết (27)
      • 2.4.1. Cài đặt chương trình Atom (27)
      • 2.4.2. Cài đặt Python (27)
      • 2.4.3. Cài đặt thư viện OpenCV (27)
      • 2.4.4. Cài đặt thư viện Tensorflow trên windows (27)
      • 2.4.5. Cách cài đặt Keras trên windows (28)
      • 2.4.6. Cài đặt thư viện numpy (28)
    • 2.5. Xử lý data và xây dựng mô hình học máy (28)
      • 2.5.1. Vài nét về data (28)
      • 2.5.2. Xử lý data (28)
      • 2.5.3. Xây dựng mô hình học máy (29)
      • 2.5.4. Quá trình học máy (30)
      • 2.5.5. Giao diện của công cụ (31)
    • 2.6. Tiểu kết (31)
  • Chương 3 Thử nghiệm và đánh giá kết quả (32)
    • 3.1. Kiểm chứng mô hình (32)
    • 3.2. Đánh giá công cụ (35)
    • 3.3. Tiểu kết (35)
  • TÀI LIỆU THAM KHẢO (36)

Nội dung

Kết quả chính đạt được khoa học, đào tạo, kinh tế-xã hội, ứng dụng, ...: Hoàn thành đề tài, ứng dụng làm tài liệu học tập, nghiên cứu cho giảng viên và sinh viên về lĩnh vực xử lý, nân

Tình hình nghiên cứu

Ngoài nước

Việc nâng cao chất lượng ảnh hiện đang là vấn đề được quan tâm hàng đầu trên toàn thế giới Năm 2017, cuộc thi “New Trends in Image Restoration and Enhancement” đã thu hút sự chú ý lớn, góp phần thúc đẩy nghiên cứu và ứng dụng các công nghệ mới nhằm cải thiện chất lượng hình ảnh.

The "Enhancement Workshop and Challenge on Image Super-Resolution" was held in conjunction with CVPR 2017, one of the largest conferences in Machine Learning and Computer Vision This event demonstrated the promising potential of image super-resolution technology for future advancements in the field.

In their paper titled “End-to-End Image Super-Resolution via Deep and Shallow Convolutional Networks,” authors Yifan Wang, Lijun Wang, Hongyu Wang, and Peihua Li utilize Keras to develop a deep learning model that enhances image resolution while preserving image sharpness This approach leverages convolutional neural networks to effectively increase image size without compromising clarity, demonstrating significant advancements in super-resolution techniques.

Bài toán nâng cao chất lượng ảnh còn được ứng dụng trên các trang web nổi tiếng như letsenhance.io, một nền tảng miễn phí giúp người dùng tận dụng công nghệ AI và mạng nơ-ron để cải thiện độ phân giải và chất lượng hình ảnh Công cụ này vượt xa khả năng của các phần mềm chỉnh sửa truyền thống như Photoshop, mang lại kết quả tối ưu cho việc nâng cao hình ảnh.

Trong nước

Tình hình nghiên cứu trong nước về xử lý và nâng cao chất lượng ảnh còn ít sôi động hơn so với các nước phát triển khác Một số đề tài nổi bật bao gồm nghiên cứu của Nguyễn Xuân Cường về các kỹ thuật xử lý ảnh nhằm nâng cao chất lượng nhận dạng tiếng Việt, trong đó sử dụng OpenCV để tăng độ nét, tăng độ tương phản, loại bỏ phông nền và nhiễu Bên cạnh đó, đề tài của Phạm Ngọc Quảng tập trung vào các phương pháp nâng cao chất lượng ảnh y học như điều chỉnh độ sáng, phân ngưỡng, bó cụm và cân bằng histogram để cải thiện hiệu quả trong ứng dụng chăm sóc sức khỏe.

Mục tiêu nghiên cứu

Đề tài thực hiện với các mục tiêu:

 Nghiên cứu về thư viện Keras và thư viện OpenCV

 Tìm hiểu và tạo ra một mô hình học máy phù hợp

 Tìm và xây dựng tập data dành cho quá trình học

 Xây dựng công cụ giúp tăng gấp đôi kích thước ảnh và cải thiện được độ nét so với phóng to gấp đôi bình thường

 Kiểm tra và đánh giá công cụ.

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

 Sử dụng mô hình CNN (Convolutional Neural Network) để cải thiện chất lượng ảnh và giảm thiểu việc vỡ điểm ảnh khi phóng to lên

 Ngôn ngữ lập trình được sử dụng là C#

 Sử dụng thư viện Keras để xây dựng mô hình

 Sử dụng Tensorflow làm nền tảng cho Keras

 Sử dụng tập Dataset của DIV2K gồm 900 ảnh độ phân giải lớn (800 Train, 100 Valid).

Những đóng góp mới của đề tài và những vấn đề mà đề tài chưa thực hiện được11 1 Những đóng góp mới

Những vấn đề chưa thực hiện được

 Chưa tạo được một công cụ thân thiện nhất với người sử dụng

 Không xử lý được các tấm ảnh có độ phân giải cao.

Kết cấu của đề tài

Luận văn được chia làm ba phần: phần mở đầu, phần nội dung và phần kết luận

Chọn đề tài dựa trên lý do thực tiễn và tiềm năng phát triển, đồng thời tổng quan tình hình nghiên cứu trong nước và quốc tế để làm rõ vị thế của đề tài Mục tiêu nghiên cứu hướng đến việc đóng góp kiến thức mới, phân tích đối tượng và phạm vi rõ ràng, áp dụng phương pháp nghiên cứu phù hợp để đảm bảo tính chính xác và khả thi Đề tài cũng mang lại những đóng góp mới trong lĩnh vực, mở ra hướng phát triển tiếp theo, tuy nhiên còn tồn tại hạn chế cần khắc phục để nâng cao chất lượng và phạm vi ứng dụng trong các nghiên cứu tiếp theo.

Phần nội dung chính: gồm 3 chương

 Chương 1: Cơ sở lý thuyết

Trong chương này, nhóm tác giả sẽ trình bày tổng quan về Machine Learning và Deep Learning, giúp độc giả hiểu rõ các khái niệm cơ bản và ứng dụng của chúng Các phương pháp đào tạo học máy giám sát và học máy không giám sát được giới thiệu nhằm làm rõ các kỹ thuật phổ biến trong lĩnh vực này Đồng thời, bài viết cũng giới thiệu thư viện học máy Keras và một số thư viện nhóm tác giả đã sử dụng trong đề tài, nhằm giúp tối ưu hóa quá trình phát triển mô hình và nâng cao hiệu quả nghiên cứu.

 Chương 2: Xây dựng công cụ cải thiện chất lượng ảnh

Trong chương này nhóm tác giả trình bày chi tiết về các bước mà nhóm tác giả đã làm để hoàn thành được đề tài này

 Chương 3: Thử nghiệm và đánh giá kết quả

Trong chương này nhóm tác giả đã nêu ra phương pháp để thử nghiệm và đánh giá được kết quả mà công cụ này đem lại.

Cơ sở lý thuyết

Tổng quan về học máy

Machine Learning là lĩnh vực trọng tâm trong trí tuệ nhân tạo (AI), nghiên cứu cách tạo ra các máy móc có khả năng tự học hỏi mà không cần lập trình cụ thể Khả năng học hỏi đóng vai trò then chốt trong việc phát triển trí tuệ nhân tạo có trình độ như con người Để xây dựng các hệ thống AI thông minh, chúng ta cần thiết kế các cỗ máy có khả năng tự học dựa trên các kinh nghiệm tích lũy trong quá trình hoạt động của chúng.

Machine Learning khác với hướng nghiên cứu cổ điển về AI, nơi các lập trình viên tạo ra quy tắc để máy móc thực hiện theo bằng cách lập trình cố định Thay vào đó, Machine Learning cho phép máy tự nghiên cứu và khám phá dữ liệu để bổ sung kiến thức cho chính mình, nâng cao khả năng tự học và thích nghi Phương pháp này vẫn có thể kết hợp các quy tắc lập trình truyền thống với kiến thức thu thập được bởi máy, giúp hệ thống trở nên thông minh hơn và linh hoạt hơn trong việc xử lý dữ liệu mới.

1.1.2 Các phương pháp học máy

Có 4 phương pháp học máy như bên dưới:

 Học có giám sát (supervised learning) cần có các dữ liệu dùng để "học", và phải đưa ra được một kết quả nhất định

 Học không giám sát (unsupervised learning) cũng cần có các dữ liệu dùng để "học", nhưng không phải đưa ra các kết quả cụ thể nào

 Học bán giám sát (semi-supervised learning) cũng cần có các dữ liệu dùng để "học", và có thể đưa ra được một vài kết quả khác nhau

Học củng cố (reinforcement learning) đang trở thành một phương pháp học phổ biến hiện nay, giúp AI học thông qua việc được thưởng dựa trên thành quả của mình Phương pháp này cho phép máy móc phát triển khả năng như chơi game máy tính bằng cách thử nghiệm và điều chỉnh qua quá trình thử và lỗi, nhằm tối ưu hóa điểm số và đạt hiệu quả cao hơn trong các nhiệm vụ phức tạp.

1.1.3 Tại sao phải học máy

Dưới đây là 4 trường hợp khiến chúng ta phải cần dùng đến học máy [3]:

1.1.3.1 Trường hợp không ai biết câu trả lời Đây là trường hợp con người không thể nhưng máy tính có thể Trong ngành y học, các nhà khoa học đã tiến hành hàng trăm cuộc thí nghiệm để tìm ra loại thuốc có khả năng kháng lại virus HIV Nhưng cho đến hiện nay, chúng ta vẫn chưa thể tìm ra được câu trả lời vì giới hạn thời gian không cho phép chúng ta tiến hành tất cả hàng triệu phép thử để tìm ra loại thuốc hữu hiệu nhất Thật là tốt biết mấy, nếu chúng ta có thể sử dụng sức mạnh của máy tính Ta sẽ lấy tất cả dữ liệu của các loại thuốc hiện có Sau đó, xác định xem đâu là loại thuốc có khả năng kháng lại virus HIV Nhờ vậy mà ta đã thu hẹp và giới hạn lại thí nghiệm của mình giúp tiết kiệm rất nhiều thời gian

1.1.3.2 Trường hợp chúng ta biết cách thực hiện nhưng không thể diễn giải để máy tính có thể thực hiện lại được Đây là trường hợp con người có thể nhưng máy tính không thể Cho một tấm hình có kí tự viết tay, xác định xem tấm hình đó chứa kí tự gì nằm trong bảng chữ cái ABC Quả thật với khả năng của con người, ta có thể nhận biết ngay đó là kí tự gì chỉ trong vài giây Nhưng ngược lại, đối với máy tính, ta khó có thể diễn giải được tại sao chúng ta có thể làm được như vậy

1.1.3.3 Trường hợp dữ liệu thay đổi liên tục, ta không thể thường xuyên lập trình lại chức năng đó

Trong thị trường chứng khoán, việc phân tích dữ liệu 10 ngày trước là cực kỳ quan trọng để đưa ra dự đoán chính xác về giá trị chứng khoán hiện tại Do dữ liệu thay đổi liên tục, cần có hệ thống tự động cập nhật và phân tích dữ liệu hàng ngày nhằm hỗ trợ quyết định đầu tư chính xác và kịp thời Việc sử dụng các công cụ phân tích tự động giúp giảm thiểu sai số và nâng cao hiệu quả ra quyết định trong môi trường biến động liên tục của thị trường chứng khoán.

Hình 1-1: Phân loại học máy.

1.1.3.4 Trường hợp ta không thể lập trình cụ thể cho từng người dùng do giới hạn về nhân lực

Để hiểu rõ thói quen của người dùng khi mua sắm online, các hệ thống như Amazon và YouTube sử dụng công nghệ phân tích dữ liệu để xác định hành vi và xu hướng mua hàng của khách hàng Nhờ đó, họ có thể đề xuất các sản phẩm phù hợp dựa trên lịch sử mua hàng trước đó, nâng cao trải nghiệm mua sắm và tăng tỷ lệ chuyển đổi Việc cá nhân hóa đề xuất dựa trên thói quen người dùng đóng vai trò quan trọng trong chiến lược tối ưu hóa doanh thu và tạo sự hài lòng cho khách hàng.

1.1.4 Ứng dụng của học máy hiện nay

Học máy đóng vai trò quan trọng trong các bộ lọc thư rác của hệ thống email, giúp phân loại chính xác giữa email hữu ích và email rác Ban đầu, các bộ lọc được lập trình viên thiết lập các quy tắc căn bản, sau đó hệ thống tự động học hỏi và điều chỉnh để nâng cao hiệu quả lọc, phát hiện các email quan trọng cho người dùng Công nghệ học máy không ngừng cải thiện khả năng phân loại, mang lại trải nghiệm email tối ưu nhất.

Ngoài ra học máy còn được ứng dụng vào các trường hợp sau:

 Các kết quả tìm kiếm trên web

 Quảng cáo theo thời gian thực trên các trang web và các thiết bị di động

 Phân tích tình cảm dựa trên văn bản

 Điểm số tín dụng và lời mời chào tiếp theo tốt nhất

 Dự đoán những hư hỏng của thiết bị

 Những mô hình định giá mới

 Phát hiện xâm nhập mạng

 Nhận dạng qua pattern (mẫu) và hình ảnh.

Thư viện Keras

1.2.1 Thư viện Keras là gì?

Keras is a high-level Machine Learning framework written in Python that aims to reduce the time between conceptualizing ideas and implementing them It offers two main APIs: Keras Sequential and Keras Functional, providing flexible options for building neural networks Additionally, Keras allows users to easily switch between different backends such as TensorFlow and Theano (C++), enhancing its versatility and adaptability for various deep learning projects.

Keras nổi bật với khả năng dễ dàng triển khai các mô hình học sâu cấp cao, giúp tiết kiệm thời gian và công sức trong quá trình phát triển Vì vậy, tôi sẽ sử dụng Keras kết hợp với backend TensorFlow để xây dựng mô hình cho đề tài này, nhằm tận dụng sự linh hoạt và hiệu quả của các công cụ này trong xử lý dữ liệu và tối ưu hóa mô hình học máy.

Hình 1-2: Keras đứng thứ 2 trong bảng xếp hạng về độ phổ biến trên GibHub (17)

1.2.2 Tại sao lại sử dụng Keras

Phổ biến: Là thư viện được khá nhiều người dùng nên các tài liệu hướng dẫn rất chi tiết và dễ dàng tìm được

Ngôn ngữ Python nổi bật nhờ cú pháp đơn giản và dễ hiểu, giúp lập trình viên dễ dàng thao tác với các thư viện như Caffe, Theano Đặc biệt, Keras được viết hoàn toàn bằng Python, mang lại ưu điểm lớn trong việc phát triển và triển khai các mô hình học sâu Python cung cấp nhiều thư viện mạnh mẽ, thúc đẩy quá trình lập trình nhanh chóng, hiệu quả hơn.

1.2.3 Một số thuật ngữ trong học máy và trong Keras

Deep Learning là một nhánh của ngành máy học, sử dụng các thuật toán phức tạp để mô hình hóa dữ liệu trừu tượng hóa ở mức cao Phương pháp này bao gồm nhiều lớp xử lý có cấu trúc phức tạp và tích hợp các biến đổi phi tuyến, giúp hệ thống học hỏi và nhận diện dữ liệu một cách hiệu quả hơn.

Học sâu là một phần của họ các phương pháp học máy dựa trên đại diện học của dữ liệu Các đại diện này giúp biểu diễn dữ liệu một cách trừu tượng hơn, ví dụ như dưới dạng các cạnh, các khu vực hình dạng hoặc các giá trị cường độ điểm ảnh Việc sử dụng các đại diện phù hợp giúp làm cho quá trình học các nhiệm vụ như nhận diện khuôn mặt hoặc xác định cảm xúc trở nên dễ dàng hơn Một trong những tiềm năng lớn của học sâu là khả năng thay thế các tính năng thủ công bằng các thuật toán hiệu quả cho học không giám sát hoặc bán giám sát, đồng thời tạo ra các tính năng phân cấp mạnh mẽ.

Là các lớp xử lý dữ liệu trong model

Khi đi qua các lớp này giá trị output sẽ thay đổi theo các tham số truyền vào

Có thể có nhiều layer trong model càng nhiều layer, model càng phức tạp

Các layer được sử dụng trong đề tài này: Convolutional Layer, Activation Layer

Kết quả của quá trình training chính là một mô hình học máy hoạt động như một "hộp đen," cung cấp đầu ra chính xác dựa trên đầu vào Quá trình training giúp điều chỉnh và tối ưu hóa "hộp đen" đó, nhằm đạt được kết quả đầu ra mong muốn Hiểu đơn giản, nó giống như quá trình tuning để mô hình hoạt động hiệu quả hơn, mang lại kết quả chính xác cho các tác vụ dựa trên dữ liệu đầu vào.

Quá trình huấn luyện giúp máy tính học cách tạo ra các đầu ra dựa trên dữ liệu đầu vào và kết quả đã biết, tương tự như con người học chơi cờ vua qua kinh nghiệm Nhờ vào quá trình này, máy tính có thể dự đoán và phản ứng chính xác hơn trong các trận đấu tiếp theo, dựa trên những lần thắng trước đó Quá trình training của máy tính chủ yếu dựa vào việc sử dụng bộ dữ liệu đã sẵn có để cải thiện khả năng dự đoán và hành xử.

Data là dữ liệu có được sau khi thu tập có thể là dữ liệu hình ảnh, dãy số

 Là một cách để tạo model trong Keras

Bạn có thể tạo các lớp của mô hình bằng cách truyền vào danh sách các lớp, giúp xây dựng cấu trúc mạng một cách dễ dàng và nhanh chóng Ngoài ra, phương pháp add cũng là một lựa chọn hiệu quả để thêm các lớp vào mô hình một cách linh hoạt, phù hợp với quá trình tùy chỉnh và mở rộng mô hình sâu Việc sử dụng các phương pháp này đảm bảo quá trình phát triển mô hình linh hoạt, phù hợp với các yêu cầu khác nhau trong học sâu và trí tuệ nhân tạo.

 Sequential model dữ liệu sẽ được đi tuần tự qua các lớp của model

 Custom model cũng là một cách để tạo model trong Keras

 Custom model cho phép người dùng có thể tùy chỉnh được luồng đi của dữ liệu

Dùng để đưa data vào training để tìm tham số model

Sau khi xây dựng model xong thì compile có tác dụng là biên tập lại toàn bộ model mà chúng ta đã xây dựng

Predict là thuật ngữ chỉ hàm mà ta sử dụng để chạy model

Quá trình đánh giá kết quả huấn luyện mô hình được thực hiện bằng cách sử dụng bộ dữ liệu bên ngoài tập dữ liệu đã biết trong quá trình huấn luyện Điều này giúp kiểm tra khả năng của mô hình khi đối mặt với dữ liệu mới, chưa từng xuất hiện trong quá trình huấn luyện, tương tự như việc chơi cờ vua để đối mặt với đối thủ mới nhằm xác định khả năng thực sự của người chơi Chính vì vậy, chúng ta chia dữ liệu thành bộ đào tạo và bộ kiểm tra để đảm bảo mô hình học máy có thể thể hiện hiệu quả trong các tình huống chưa từng gặp, qua đó đánh giá chính xác khả năng tổng quát của mô hình.

Trong quá trình training, mô hình học máy có thể đạt hiệu quả cao nhưng lại không thể vượt qua được trên dữ liệu thử nghiệm và thực tế, gây ra hiện tượng overfitting Overfitting xảy ra khi mô hình không tổng quát hóa tốt, chỉ phù hợp với dữ liệu đã huấn luyện và gặp khó khăn khi xử lý dữ liệu mới hoặc dữ liệu thử nghiệm Điều này khiến mô hình trở thành "chuyên gia" trong quá trình training nhưng lại kém hiệu quả khi áp dụng trên thực tế.

1.2.3.13 Features Đó là biểu diễn đầu vào dưới dạng số, mảng hoặc bất kỳ thứ gì mà máy tình có thể xử lý được Mục tiêu chính của việc sử dụng biểu diễn feature là tạo ra dữ liệu duy nhất và được tính bằng máy Ví dụ, nếu dữ liệu đưa vào là một hình ảnh, chắc chắn chúng ta cần phải chuyển nó thành mảng màu Trong trường hợp này, feature mày đỏ sẽ thế nào? màu xanh thế nào? và mày xanh thì thế nào? hoặc RGB Trong ví dụ khác, nếu input là text, máy tính cũng không thể tính toán văn bản, vì vậy cần một phương thức để biểu diễn dữ liệu như kỹ thuật Word2Vec và bow Nếu chúng ta sử dụng bow, feature thì sẽ thường là một từ trong một câu, trong khi đó nếu ta sử dụng word2vec thì feature sẽ thường là cột trong matrix

Convolution là kỹ thuật quan trọng trong xử lý ảnh, đóng vai trò chủ đạo trong các phép toán như đạo hàm ảnh, làm mờ ảnh và trích xuất biên cạnh Phương pháp này giúp tăng cường khả năng phân tích đặc trưng của ảnh, từ đó nâng cao hiệu quả trong các ứng dụng xử lý hình ảnh Việc hiểu rõ kỹ thuật convolution là nền tảng để phát triển các thuật toán nhận diện khuôn mặt, phân loại ảnh và các hệ thống thị giác máy tính.

1.2.4 Một số layer chính trong Keras

Lớp tích chập (Convolutional Layer) giúp loại bỏ các đặc điểm chính của hình ảnh, từ đó nâng cao khả năng hiểu biết về cách bố trí và sắp xếp các pixel giữa dữ liệu và nhãn Điều này làm tăng hiệu quả trong việc trích xuất đặc điểm và nhận diện mẫu trong quá trình xử lý ảnh.

1D convolution involves a filter moving in a single direction across the input, which requires converting the image into a vector format The length of this vector corresponds to the dimensions of the input data This process enables effective feature extraction along one axis, making it suitable for sequential data analysis Understanding 1D convolution is essential for applications in signal processing and time series analysis.

2D convolution allows the filter to move in two directions—width and height—enabling effective feature extraction from images This two-dimensional convolution layer is essential for capturing spatial hierarchies in data The authors employ this 2D convolution layer in their research to enhance the model's ability to learn complex patterns within visual inputs.

Hình 1-3: Minh họa về lớp convolution 2D

Convolution 3D: Tương tự ta cũng có tích chập 3 chiều là khi hàm filter có thể di chuyển thêm cả chiều sâu của ảnh nữa

Ngôn ngữ lập trình và các thư viện khác dùng trong đề tài

Pooling layer trong mạng CNN giúp loại bỏ các thông tin không cần thiết sau quá trình tích chập, từ đó giảm thiểu độ phức tạp của dữ liệu Điều này rất hữu ích khi xử lý các hình ảnh có kích thước lớn, giúp tối ưu hóa hiệu suất và tăng độ chính xác của mô hình.

(dimentional reduction) Tuy nhiên nếu lạm dụng loại layer này cũng có thể khiến data đi qua bị mất dữ liệu

Cũng như khi sử dụng mạng ANN truyền thống để xử lý những data có dạng matrix như image

Bạn cần chuyển đổi dữ liệu thành dạng vector trước khi đưa vào mạng neural nhân tạo (ANN) như bình thường Phần Fully-Connected Layer (FC Layer) chính là một mạng neural được gắn vào phần cuối của mô hình để xử lý và tạo ra kết quả cuối cùng Việc flatten dữ liệu thành vector giúp cho quá trình đưa vào FC Layer trở nên dễ dàng hơn, đảm bảo hiệu quả và chính xác trong việc dự đoán hoặc phân loại.

CNNs Phần FC-Layer này chính là nơi từ các feature được extract bởi phần convolution và pooling tạo ra kết quả cuối cùng (Classification hoặc Regression)

1.2.5 Quy trình làm việc của Keras:

Quy trình làm của Keras trải qua 4 quá trình:

 Xây dựng dữ liệu để đào tạo

Hình 1-4: Quy trình làm việc của Keras

1.3 Ngôn ngữ lập trình và các thư viện khác được dùng trong đề tài

Python là một ngôn ngữ lập trình bậc cao được sử dụng rộng rãi trong lĩnh vực Machine

Learning với các ưu điểm:

- Cú pháp Python rất dễ học

- Có thư viện phong phú

- Có một cộng đồng sử dụng lớn

OpenCV (Open Source Computer Vision Library) là thư viện mã nguồn mở về thị giác máy tính và học máy, hoàn toàn miễn phí cho các mục đích học thuật và thương mại theo giấy phép BSD Nó hỗ trợ nhiều ngôn ngữ lập trình như C++, C, Python, Java, cùng với các nền tảng Windows, Linux, Mac OS, iOS và Android, giúp phát triển các ứng dụng đa nền tảng Được thiết kế để xử lý hiệu quả và tối ưu cho các ứng dụng thời gian thực, OpenCV tận dụng xử lý đa lõi nhờ viết bằng C/C++ tối ưu Với hơn 47 nghìn người dùng và hơn 6 triệu lượt tải, OpenCV có phạm vi sử dụng rộng rãi từ nghệ thuật tương tác, khai thác mỏ, bản đồ trực tuyến đến công nghệ robot Các ứng dụng của OpenCV gồm nhận dạng ảnh, xử lý ảnh, phục hồi hình ảnh/video, thực tế ảo và nhiều lĩnh vực khác, chứng tỏ tính đa dạng và mạnh mẽ của thư viện này trong lĩnh vực thị giác máy tính.

TensorFlow là một thư viện mã nguồn mở do nhóm Google Brain phát triển, chuyên cung cấp khả năng xử lý tính toán số học dựa trên biểu đồ mô tả sự thay đổi của dữ liệu Trong đề tài này, TensorFlow đóng vai trò là backend hỗ trợ cho Keras, giúp tối ưu hóa hiệu suất và dễ dàng triển khai các mô hình học sâu Việc sử dụng TensorFlow giúp cải thiện tốc độ xử lý, khả năng mở rộng và độ chính xác của các dự án trí tuệ nhân tạo Do đó, TensorFlow là một công cụ không thể thiếu cho các nhà phát triển và nhà nghiên cứu trong lĩnh vực học máy.

 Tích hợp sẵn rất nhiều các thư viện machine learning

 Có khả năng tương thích và mở rộng tốt Được Google phát triển cho machine learning phục vụ cả nghiên cứu lẫn xây dựng các ứng dụng thực tế

NumPy (viết tắt của Numeric Python) là thư viện hỗ trợ tính toán vô cùng hiệu quả trên mảng (array), giúp các phép tính diễn ra nhanh hơn nhiều so với sử dụng danh sách (list) mặc định của Python Ngoài ra, NumPy còn cho phép thực hiện các phép tính trực tiếp trên toàn bộ mảng mà không cần duyệt qua từng phần tử, tối ưu hóa hiệu suất xử lý dữ liệu.[6]

Mô hình CNN

CNN là một trong những thuật toán Deep Learning hiệu quả nhất hiện nay trong lĩnh vực thị giác máy, chuyên xử lý các bài toán phân loại và nhận dạng hình ảnh Mẫu mạng này hoạt động dựa trên kiến trúc truyền thẳng của mạng neural nhân tạo (ANN), gồm nhiều thành phần liên kết chặt chẽ với nhau qua nhiều tầng Các thành phần chính trong CNN bao gồm Convolution, Pooling, ReLU và Fully connected, giúp nâng cao khả năng trích xuất đặc trưng và phân loại chính xác từ dữ liệu hình ảnh.

Các thành phần cơ bản của mạng CNN:

Là tầng quan trọng nhất trong cấu trúc của CNN, tầng tích chập (Conv) dựa trên lý thuyết xử lý tín hiệu số giúp trích xuất các đặc trưng quan trọng từ dữ liệu Phép tích chập hoạt động bằng cách dịch chuyển một cửa sổ (kernel) trên ma trận đầu vào để tính tổng tích chập tại từng vị trí, qua đó phản ánh các thông tin cốt lõi của dữ liệu Ví dụ, khi kernel kích thước 2x2 dịch chuyển trên ma trận kích thước 3x4, kết quả đầu ra sẽ thể hiện các giá trị tích chập tại các vị trí khác nhau, góp phần nâng cao khả năng nhận diện mẫu trong mạng nơ-ron convolutional.

Hình 1-5: Phép tính trong tầng convolution

Phép tính Conv trong xử lý ảnh giúp biến đổi dữ liệu đầu vào thành các yếu tố đặc trưng, giống như các bộ phát hiện về cạnh, hướng, đốm màu Hình 4 minh họa quá trình áp dụng Conv trên ảnh, trong đó (a) thể hiện kết quả biến đổi hình ảnh khi thực hiện các cách Conv khác nhau, tạo ra các kết quả khác biệt, còn (b) trình bày trực quan các kernel dùng để phát hiện đặc trưng như cạnh, hướng và đốm màu.

Hình 1-6: Kết quả thu được sau khi tính toán

Tầng pooling, còn gọi là subsampling hoặc downsample, là thành phần chính trong cấu trúc CNN, giúp giảm kích thước ma trận đầu vào mà vẫn giữ được các đặc trưng quan trọng Quá trình này được thực hiện bằng cách tính toán trên ma trận đầu vào để làm nổi bật đặc điểm và giảm độ phức tạp của dữ liệu Trong CNN, toán tử pooling được thực hiện độc lập trên từng kênh màu của ảnh, đảm bảo bảo toàn các đặc trưng riêng biệt của mỗi kênh.

Max-Pooling là loại toán tử pooling phổ biến nhất, giúp xác định vị trí của tín hiệu mạnh nhất trong quá trình xử lý dữ liệu Trong ngữ cảnh xử lý ảnh và nhận diện đối tượng, Max-Pooling hoạt động như một bộ lọc giúp phát hiện vị trí của các đặc trưng quan trọng trên hình ảnh Các toán tử pooling khác như Sum-Pooling hay L2-Pooling cũng tồn tại, nhưng Max-Pooling được ưa chuộng vì khả năng làm nổi bật các đặc trưng nổi bật nhất trong dữ liệu Đặc điểm nổi bật của Max-Pooling là khả năng lựa chọn vị trí chứa tín hiệu mạnh nhất, giúp tăng cường khả năng trích xuất đặc trưng cho các mô hình học sâu trong nhiệm vụ nhận diện và phân loại ảnh.

Hình 1-7: Phép tính trong tầng Pooling

Trong cơ bản, phép biến đổi convolution là một phép biến đổi tuyến tính, giúp các neural network có thể được biểu diễn dưới dạng hàm tuyến tính Tuy nhiên, để mạng neural hoạt động hiệu quả, cần có các hàm truyền phi tuyến nhằm xử lý các vấn đề phức tạp hơn Các hàm phi tuyến phổ biến như ReLU (Rectified Linear Unit) đã được chứng minh là mang lại hiệu quả tốt hơn trong quá trình huấn luyện neural network hiện đại Do đó, việc sử dụng hàm ReLU có vai trò quan trọng trong việc nâng cao hiệu suất và khả năng học của các mô hình deep learning.

Trong quá trình xây dựng mạng neural, tạo ra tính thưa (sparsity) ở các neural ẩn đóng vai trò quan trọng Ví dụ, sau bước khởi tạo ngẫu nhiên các trọng số, khoảng 50% các neural ẩn được kích hoạt với giá trị lớn hơn 0, giúp giảm thiểu sự phụ thuộc và tăng khả năng tổng quát của mô hình Tính thưa này không chỉ giúp cải thiện hiệu suất mà còn thúc đẩy tính linh hoạt và khả năng hiểu của mạng neural trong các nhiệm vụ phức tạp.

 Quá trình huấn luyện nhanh hơn ngay cả khi không phải trải qua bước tiền huấn luyện

Như vậy tầng ReLu cơ bản chỉ đơn giản là áp dụng hàm truyền ReLu

Fully-connected là dạng kết nối các neural ở hai tầng với nhau, trong đó tầng sau hoàn toàn kết nối với các neural ở tầng trước, giúp mô hình học và truyền tải thông tin một cách toàn diện Đây là kiểu kết nối phổ biến trong mạng neural nhân tạo (ANN), đặc biệt thường được sử dụng ở các tầng cuối của kiến trúc mạng để tối ưu hóa khả năng phân loại và dự đoán.

Hình 1-8: Kết nối các neural

CNN là một thuật toán có kiến trúc gồm nhiều tầng, trong đó tầng chính hoạt động dựa trên cơ chế Conv để trích xuất đặc trưng Trong quá trình huấn luyện, CNN tự động học các thông số của các filter, phản ánh các cấp độ đặc trưng khác nhau như pixel, cạnh, hình dạng, khuôn mặt và đặc trưng cấp cao Nhờ khả năng tối ưu hóa các filter này theo thứ tự từ đơn giản đến phức tạp, CNN đạt hiệu quả vượt trội so với các thuật toán trước đây trong nhiệm vụ phân lớp ảnh.

Hình 1-9: Hình ảnh minh họa về mô hình CNN.

Mô hình SRCNN

Mô hình SRCNN (Super-Resolution Convolutional Neural Network) hoạt động dựa trên nguyên lý giống các mạng CNN thông thường, sử dụng các lớp Convolution để trích xuất đặc điểm của ảnh Thay vì dùng các lớp Pool để giảm chiều dữ liệu như các mô hình CNN truyền thống, SRCNN sử dụng Conv2Dtranspose để tăng kích thước ảnh đầu ra, ví dụ từ 32x32 lên 64x64 Công dụng chính của SRCNN là tăng kích thước ảnh mà vẫn giữ được các nét đặc trưng, hạn chế hiện tượng vỡ điểm ảnh, giúp nâng cao chất lượng ảnh siêu phân giải hiệu quả. -**Sponsor**Need help polishing your article and making it SEO-friendly? As a content creator, I understand the need for coherent paragraphs and SEO compliance Instead of just rewriting, consider generating fresh, SEO-optimized articles instantly with tools like [Article Generation](https://pollinations.ai/redirect-nexad/so9gbJBd?user_id=983577) It can save you time and money, providing 2,000-word articles and potentially saving you over $2,500 a month compared to hiring a writer, all while retaining the essence of your ideas.

Hình 1-10: Minh họa về tăng kích thước ảnh vẫn giữ được độ nét.

Tiểu kết

Trong phần này, chúng tôi đã trình bày cơ sở lý thuyết và các thư viện đã sử dụng trong đề tài, nhằm thiết lập nền tảng cho việc xây dựng công cụ cải thiện chất lượng ảnh Tiếp theo, phần quan trọng của luận văn tập trung vào Chương 2, nơi phát triển phương pháp nâng cao chất lượng hình ảnh dựa trên framework Keras, mang lại hiệu quả tối ưu cho quá trình xử lý ảnh.

Xây dựng công cụ cải thiện chất lượng ảnh

Tìm hiểu

Việc nắm vững kiến thức mới trước khi bắt đầu giải quyết vấn đề là vô cùng cần thiết, đặc biệt trong lĩnh vực trí tuệ nhân tạo và học máy Nhóm tác giả đã nghiên cứu các công nghệ quan trọng như Python, Machine Learning, Deep Learning, Keras và CNN để xây dựng mô hình SRCNN hiệu quả Hiểu rõ các thành phần này giúp tối ưu hoá quá trình phát triển và nâng cao hiệu suất của mô hình Nhờ đó, nhóm tự tin thực hiện các bước thứ cấp trong quá trình xử lý, đảm bảo mô hình đạt kết quả tốt nhất.

Chọn phương pháp học máy

Ở đề tài này nhóm tác giả sử dụng học có giám sát

Supervised learning is a machine learning algorithm used to predict the outcome of new data based on previously known input-output pairs These pairs, also known as data-label pairs, consist of the data and its corresponding label As the most popular group of machine learning algorithms, supervised learning plays a crucial role in applications requiring accurate predictions based on labeled datasets.

Hình 2-1: Mô hình học máy có giám sát.

Thu thập kiến thức từ nhiều nguồn

Các vấn đề liên quan thường đã có hướng giải quyết hoặc người giải quyết trước đó; nhiệm vụ hiện tại là tìm kiếm các nguồn này để sử dụng và nâng cao chúng Tôi chọn Github và Google Scholar để tra cứu các bài viết đáng tin cậy và chính xác về dữ liệu, trong khi đó để tạo dữ liệu riêng, có thể tận dụng Kaggle hoặc Google Image Đặc biệt, đối với đề tài này, tôi chọn bộ dữ liệu nổi tiếng và phổ biến là DIV2K để dễ dàng trong quá trình nghiên cứu và phát triển dự án.

Cài đặt môi trường làm việc và một số thư viện cần thiết

2.4.1 Cài đặt chương trình Atom

Có thể cài đặt Atom bằng cách tải phần mền tại địa https://atom.io/ và cài đặt hoặc làm theo hướng dẫn như trong website [9]

Truy cập vào trang web https://www.python.org/downloads/ và cài đặt [10]

2.4.3 Cài đặt thư viện OpenCV Ở đề tài này nhóm tác giả sử dụng OpenCV 3.4.1 Để cài đặt thực hiện tải thư viện OpenCV từ đường dẫn https://pypi.org/project/opencv-python/#downloads và tiến hành tải gói cài đặt phù hợp về Sau khi tải về sẽ cài đặt thư viện bằng lệnh sau:

To install TensorFlow on Windows, you can use the command "pip install path," replacing "path" with the directory where the downloaded file is located For detailed installation instructions, refer to the official TensorFlow website [11].

Cũng có thể cài bằng câu lệnh đơn giản là:

KhoaC:> Pip install –upgrade tensorflow

2.4.5 Cách cài đặt Keras trên windows:

Cài đặt Keras chúng ta chỉ cần vào cmd và gõ câu lệnh:

Mặc định câu lệnh này sẽ cài đặt theo backend tensorflow

2.4.6 Cài đặt thư viện numpy

Cài đặt thư viện Numpy bằng lệnh:

Xử lý data và xây dựng mô hình học máy

2.5.1 Vài nét về data Ở đề tài này nhóm tác giả sử dụng bộ data DIV2K (của tác giả : Agustsson, Eirikur and Timofte, Radu) gồm những tấm ảnh có độ phân giải cao được thu thập từ internet [12]

Train data: Gồm 800 tấm ảnh có độ phân giải cao

Validation data: Gồm 100 tấm ảnh có độ phân giải cao

Thông thường, để tạo ra một ảnh độ phân giải cao (HR), cần kết hợp thông tin từ nhiều ảnh độ phân giải thấp qua kỹ thuật Multiple Image Super Resolution (MISR) Các phương pháp này đã từng được áp dụng trong các máy ảnh kỹ thuật cao hoặc qua phần mềm xử lý ảnh như Photoshop Tuy nhiên, nhược điểm của phương pháp này là đòi hỏi nhiều ảnh độ phân giải thấp, yêu cầu căn chỉnh chính xác và đối tượng trong ảnh phải đứng yên trong quá trình chụp Thêm vào đó, tốc độ xử lý của kỹ thuật này còn hạn chế, làm giảm khả năng ứng dụng trong các tình huống yêu cầu xử lý nhanh.

Việc căn chỉnh tỉ mỉ có thể được thực hiện dễ dàng hơn nếu chỉ sử dụng một ảnh độ phân giải thấp, nhưng chất lượng của ảnh đầu ra lại khó đảm bảo vì nhiều thông tin mới cần được tái tạo dựa trên lượng dữ liệu đầu vào hạn chế Đây gọi là bài toán Single Image Super-Resolution (SISR), chính là phương pháp mà tôi sẽ áp dụng để cải thiện chất lượng ảnh.

Quá trình trích lọc Data cũng có thể được hiểu như sơ đồ bên dưới:

Hình 2-2: Cách trích xuất data

2.5.3 Xây dựng mô hình học máy

The SRCNN model in this project will be built based on the EEDS framework, which is recognized as one of the most accurate models developed by authors Yifan Wang, Lijun Wang, Hongyu Wang, and Peihua Li in their research paper “End-to-End Image Super-Resolution via Deep and Shallow Convolutional Networks.”

Keras là thư viện được nhóm tác giả sử dụng để xây dựng mô hình EEDS, giúp dễ dàng triển khai các kiến trúc deep learning phức tạp Mô hình này sử dụng hai lớp chính là Conv2D và Conv2DTranspose để xử lý hình ảnh Lớp Conv2D giúp trích xuất các đặc điểm nổi bật của ảnh, làm nổi bật các đặc trưng quan trọng để mô hình dễ dàng học hơn Trong khi đó, lớp Conv2DTranspose được sử dụng để tăng kích thước ảnh gấp đôi, phù hợp với đầu ra mong muốn của mô hình Việc kết hợp hai lớp này giúp tối ưu quá trình xử lý và nâng cao hiệu quả của mô hình EEDS.

1 Crop ảnh HR thành nhiều khung ảnh nhỏ khác nhau với kích thước 96x96 và đây sẽ là tập label để train

2 Từ ảnh HR tạo ra ảnh LR đối chiếu bằng cỏch giảm tỷ lệ ẵ

3 Crop ảnh LR tương ứng với HR để tạo ra tập Data ảnh 48x48 đối chiếu với label

4 Từ Data(X) và Label(Y) ta sẽ đưa vào model để tìm ra những đặc điểm bố trí pixel phù hợp

Hình 2-3: Mô hình học máy của đề tài.

Dữ liệu đầu vào gồm hai tập ảnh: tập train và tập validation, với các bức ảnh được chuyển đổi thành mảng hai chiều chứa các giá trị từ 0 đến 255 đại diện cho màu sắc của ảnh Các mảng này sẽ được đưa qua các lớp của mô hình đã được nhóm tác giả xây dựng để huấn luyện Quá trình đào tạo mô hình diễn ra bằng cách liên tục cung cấp các cặp dữ liệu và nhãn, giúp mô hình học phù hợp với dữ liệu Trong quá trình huấn luyện, độ chính xác của mô hình sẽ được theo dõi bằng dữ liệu thử nghiệm, với mục tiêu là độ chính xác tăng dần cho đến khi đạt đến một ngưỡng xác định, từ đó có thể dừng lại để tránh quá tải.

Quá trình đạo tạo sẽ được diễn ra như trong hình:

1 Mô hình gồm 2 phần là Deep Network và Shallow Network

2 Vùng Shallow network đơn giản chỉ Upsampling ảnh để tăng kích thước đầu ra

3 Vùng Deep network thực hiện chuyên sâu theo tuần tự: Bóc tách features của ảnh nhờ vào Convolution Layer, Tăng kích thước đầu ra bằng Conv2Dtranspose(x2) và sau đó là liên tục sử dụng các Convolution Layer để tìm ra những features nhỏ nhất cho đến khi mô hình thật sự fully-connected

Hình 2-4: Quá trình học máy của Keras

2.5.5 Giao diện của công cụ

Hình 2-5: Giao diện của công cụ.

Tiểu kết

Chương 2 của bài viết trình bày toàn bộ quá trình nghiên cứu và các thư viện đã được áp dụng để xây dựng công cụ cải thiện chất lượng ảnh của nhóm tác giả Trong phần này, các bước thực hiện và phương pháp tiếp cận kỹ thuật đã được mô tả rõ ràng nhằm đảm bảo hiệu quả của công cụ Tiếp theo, chương 3 tập trung vào các thử nghiệm và đánh giá kết quả của quá trình xử lý ảnh, giúp xác định độ chính xác và khả năng ứng dụng của công cụ trong thực tế Các kết quả thử nghiệm cho thấy mức độ cải thiện rõ rệt về chất lượng ảnh sau khi áp dụng các phương pháp đề xuất, góp phần tăng cường hiệu quả của hệ thống.

Thử nghiệm và đánh giá kết quả

Kiểm chứng mô hình

Để kiểm chứng mô hình, nhóm tác giả đã sử dụng công thức tính PSNR làm phương pháp kiểm chứng

Sau mỗi lần thu được ảnh từ chương trình, chúng ta sử dụng công thức tính PSNR (Tỉ số tín hiệu cực đại trên nhiễu) để đo chất lượng tín hiệu khôi phục của các thuật toán nén mất dữ liệu (lossy compression), như trong nén ảnh PSNR càng cao phản ánh chất lượng dữ liệu khôi phục càng tốt, và có thể thấy rõ qua các ví dụ so sánh dưới đây Nhóm tác giả đã thực hiện so sánh giữa hai phương pháp phóng to: phóng to bằng trang web https://letsenhance.io, nổi tiếng ứng dụng học máy để nâng cao chất lượng ảnh, và phóng to bằng công cụ do nhóm phát triển Các kết quả cho thấy phóng to bằng công cụ của nhóm tác giả cho chất lượng ảnh rõ ràng hơn so với phương pháp online.

Hình 3-1: Kết quả kiểm chứng

Các bức ảnh được phóng to bằng công cụ của nhóm tác giả cho thấy khả năng giữ chi tiết tốt hơn so với việc sử dụng trang web https://letsenhance.io/ để phóng to Công nghệ của nhóm tác giả đảm bảo giữ nguyên các chi tiết quan trọng của ảnh gốc, mang lại chất lượng hình ảnh rõ nét, sắc nét hơn Đây là giải pháp tối ưu cho những ai cần nâng cao chất lượng ảnh phóng to mà vẫn giữ được độ chi tiết.

Đánh giá công cụ

Quá trình kiểm chứng cho thấy, các bức ảnh được phóng to bằng công cụ nâng cao chất lượng ảnh do nhóm tác giả phát triển duy trì độ chính xác cao Các hình ảnh sau khi phóng to vẫn giữ được các chi tiết đặc trưng của ảnh gốc, đảm bảo chất lượng và độ chân thực.

Tiểu kết

Trong chương 3 nhóm tác giả đã ghi lại quá trình kiểm tra độ chính xác của công cụ mà nhóm đã xây dựng trong đề tài.

Ngày đăng: 20/02/2023, 20:42

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Machine Learning book for Vietnamese - Nguyễn Xuân Khánh University of Marylandhttps://ml-book-vn.khanhxnguyen.com/.Tài liệu internet Link
[2] Trang web chuyên về học máy: https://viettimes.vn/may-hoc-machine-learning-la-gi-va-tai-sao-cang-ngay-no-cang-pho-bien-146666.html Link
[3] Tại sao cần machine learning: https://ongxuanhong.wordpress.com/2015/07/06/tai-sao-can-machine-learning/ Link
[4] Thông tin về các Convolution Layer: https://trantheanh.github.io/2017/09/29/ML-20/ Link
[5] Những kiến thức cơ bản về OpenCV cũng như các cài đặt: https://blog.vietnamlab.vn/2017/12/22/xu-ly-anh-voi-opencv-tut-1-cai-dat-opencv/ Link
[6] Thư viện Numpy và cách sử dụng: https://viblo.asia/p/machine-learning-deep-learning-cho-nguoi-bat-dau-python-mang-numpy-numpy-array-OeVKByL25kW[7] Mô hình CNN:https://tiendv.wordpress.com/2016/12/25/convolutional-neural-networks/ Link
[8] Phân loại học máy: https://machinelearningcoban.com/2016/12/27/categories/#supervised-learning-hoc-co-giam-sat Link
[13] Bài toán nâng cao chất lượng ảnh: https://arxiv.org/pdf/1607.07680.pdf Link
[14] Nghiên cứu các kỹ thuật xử lý ảnh phục vụ cho việc nhận dang chữ tiếng việt: https://text.123doc.org/document/3154808-nghien-cuu-cac-ky-thuat-xu-ly-anh-phuc-vu-viec-nang-cao-chat-luong-nhan-dang-tieng-viet.htm Link
[15] Tìm hiểu phương pháp nâng cao chất lượng ảnh trong y học: http://luanvan.co/luan-van/do-an-tim-hieu-phuong-phap-nang-cao-chat-luong-anh-y-hoc-44640/ Link
[16] Sợ lượt về Keras: http://code24h.com/keras-va-dataset-api-da-tro-thanh-phan-khong-the-thieu-trong-tensorflow-1-4-d309.htm Link
[17] Độ phổ biến của Keras: https://twitter.com/fchollet/status/971974547854381056 [18] Tổng quan về deep learning Link

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

TÀI LIỆU LIÊN QUAN

w