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

báo cáo môn học tìm hiểu về opencv và các ứng dụng của opencv

18 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 7,11 MB

Nội dung

Đối tượng chính của OpenCV đó là các ứng dụng theo thời gian thực real-time applications.Ưu điểm OpenCV đó là nó cung cấp hơn 2.500 thuật toán cổ điển và hiện đại, tất cảđều được tối ưu

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

BÁO CÁO MÔN HỌC Tìm hiểu về OpenCV và các ứng dụng của OpenCV Giáo Viên Hướng Dẫn: Cô Bành Thị Quỳnh Mai

Thành Viên Bao Gồm: - Đoàn Hồng Phúc – 20194647

- Nguyễn Tuấn Thụy – 2019

- Tạ Huy Tuấn – 2019

- Hứa Việt Hoàng – 2019

- Nguyễn Đình Xuân Nghiêm – 2019

Hệ điều hành và quản trị mạng Linux theo tiêu chuẩn kĩ thuật ITSS – 135254

Trường Công nghệ thông tin và Truyền thông

HÀ NỘI, 2/2023

Trang 2

MỤC LỤC

PHẦN 1: GIỚI THIỆU VỀ OPENCV ……… 1

PHẦN 2: LỊCH SỬ RA ĐỜI CỦA OPENCV ……… 2

PHẦN 3: NHỮNG CẤU TRÚC MODULE CỦA OPENCV ……… 3

PHẦN 4: ỨNG DỤNG CỦA OPENCV ……… 4

PHẦN 5: TRIỂN KHAI MỘT SỐ ỨNG DỤNG CỦA OPENCV ………… 8

Trang 3

PHẦN 1: GIỜI THIỆU VỀ OPEN CV

OpenCV là dạng viết tắt của cụm từ “Open Source Computer Vision Library” một thư viện nguồn mở dành cho Machine Learning và Computer Vision OpenCV được tạo ra để phân tích và học máy theo thời gian thực cũng như xử lý hình ảnh, video Hiện bộ công cụ OpenCV còn được bổ sung tính năng tăng tốc GPU theo real-time Đối tượng chính của OpenCV đó là các ứng dụng theo thời gian thực (real-time applications)

Ưu điểm OpenCV đó là nó cung cấp hơn 2.500 thuật toán cổ điển và hiện đại, tất cả đều được tối ưu hóa cho học máy và thị giác máy tính Thư viện nguồn mở này có giấy phép BSD, vì vậy nó được phát hành miễn phí dành cho cả mục đích học tập

và thương mại

OpenCV tương thích với nhiều nền tảng như Windows, macOS, Linux, Android, iOS và các ngôn ngữ lập trình khác nhau như Java, Python, C hay C++ Thư viện này có khả năng tận dụng tối đa khả năng sẵn có của phần cứng, từ đó đảm bảo các ứng dụng máy tính đạt được hiệu suất cao nhất

Trang 4

PHẦN 2: LỊCH SỬ RA ĐỜI CỦA OPENCV

OpenCV ra đời vào năm 1999, do Gary Bradski đến từ Intel sáng tạo nên Sau đó đến năm 2000 thì phiên bản đầu tiên của OpenCV được phát hành Năm

2005, người ta đã ứng dụng OpenCV trong chiếc xe Stanley – chiếc xe giành giải

vô địch cuộc thi DARPA Grand Challenge Từ đó tới nay, OpenCV đã ngày một phát triển và được ứng dụng trong nhiều lĩnh vực của cuộc sống

Cùng với cuộc chạy đua của các công ty công nghệ trong việc sử dụng computer vision, OpenCV đã xây dựng được một cộng đồng người dùng vô cùng hùng hậu đến từ khắp nơi trên thế giới Nhu cầu sử dụng OpenCV đang gia tăng chóng mặt

và được đa dạng hóa từ interactive art cho tới khai thác web map, khai thác mỏ, robotic cao cấp…

Trang 5

PHẦN 3: NHỮNG CẤU TRÚC MODULE CỦA OPENCV

Cấu trúc module là gói có chứa các static libraries (thư viện liên kết tĩnh) hoặc shared libraries (thư viện liên kết động) Sau đây là một số module có trong OpenCV:

Core functionality (core): Đây là module nhỏ gọn cho phép xác định các cấu trúc dữ liệu cơ bản Trong đó bao gồm những tính năng cơ bản mà tất

cả các module khác đều cần đến

Image Processing (imgproc): Imgproc là module xử lý hình ảnh của OpenCV Trong đó có chuyển đổi không gian màu, phép biến đổi hình học, lọc hình ảnh tuyến tính và phi tuyến, biểu đồ…

Video Analysis (video): Trong module phân tích video, bạn có thể tìm thấy các thuật toán như tách nền, tính toán chuyển động, theo dõi vật thể…

Camera Calibration and 3D Reconstruction (calib3d): Module này bao gồm các thuật toán liên như tái tạo 3D, dự đoán kiểu dáng, hình học đa chiều cơ bản, thư tín âm thanh nổi…

Object Detection (objdetect): Module này cho phép nhận dạng đối tượng

và mô phỏng các predefined classes (hàm được định nghĩa sẵn)… 2D Features Framework (features2d): Đây là module chứa các thuật toán phát hiện các đặc trưng của bộ nhận diện, thông số đối chọi, bộ truy xuất thông số…

Trang 6

PHẦN 4: ỨNG DỤNG CỦA OPENCV 4.1 Xử lý hình ảnh

OpenCV cung cấp hầu hết các công cụ xử lý hình ảnh cơ bản để hỗ trợ bạn trong quá trình viết thuật toán cho computer vision Một số chức năng xử lý hình ảnh của OpenCV gồm phân tích hình dạng, chuyển đổi màu sắc, biến đổi hình học, lọc hình ảnh…

Ảnh lúc ban đầu:

Ảnh lúc sau: (sử dụng OpenCV)

- Chuyển về ảnh từ màu rgb sang gray: thường là 1 trong những bước đầu tiên trong xủ lý hình ảnh

Trang 7

4.2 Xây dựng GUI

OpenCV được tích hợp module có tên highgui cho phép xử lý mọi hoạt động của giao diện người dùng (GUI) Module highgui giúp bạn kiểm tra hình ảnh/video bằng cách tạo một cửa sổ hiển thị để bạn có thể căn chỉnh ảnh hoặc video sao cho phù hợp trước khi chuyển sang bước tiếp theo

4.3 Phân tích video

Thư viện mở OpenCV còn cung cấp tính năng phân tích video, giúp bạn xử

lý các tác vụ như tạo mô hình theo dõi video, giám sát các đối tượng khác nhau trong video, phân tích chuyển động của các khung hình liên tiếp…

Bên cạnh đó, bạn còn có thể sử dụng OpenCV để xử lý sự ổn định của video – một yếu tố cực kỳ quan trọng Trên thực tế, mọi thiết bị hiện đại trước khi trình chiếu tới người dùng đều phải trải qua các kỹ thuật xử lý video

4.4 Tái tạo 3D

Đối với computer vision, tái tạo 3D đóng vai trò cực kỳ thiết yếu OpenCV cung cấp cho các bạn thuật toán cần thiết kế tìm ra mối liên hệ giữa đối tượng này với đối tượng khác trong tập hợp hình 2D Từ đó tính toán vị trí và tái tạo lại cảnh 3D từ các hình ảnh 2D đó

4.5 Phát hiện đối tượng

Phát hiện đối tượng tức là tìm ra vị trí của một đối tượng nào đó xuất hiện trong hình ảnh nhất định Tuy nhiên phát hiện đối tượng chỉ cho biết vị trí chứ không thể phân loại đối tượng Trong nhiều hệ thống computer vision, tính năng phát hiện vị trí đối tượng đóng vai trò then chốt

Giả sử như bạn đang muốn xây dựng phần mềm nhận diện áo Phần mềm này sẽ chỉ ra vị trí cụ thể của chiếc áo từ một hình ảnh nhất định được cung cấp Tuy nhiên phần mềm đó có thể sẽ không chỉ ra được những điểm đặc trưng của chiếc áo như kích cỡ, màu sắc, kiểu dáng (trừ khi được thiết lập)

Trang 8

4.6 Nhận dạng khuôn mặt

Nhận dạng khuôn mặt được hiểu đơn giản là việc phát hiện ra khuôn mặt của

ai đó từ một hình ảnh cụ thể Nếu muốn phát triển hệ thống sinh trắc học thực tế cho phép phát hiện khuôn mặt trước ống kính máy ảnh, bạn cần đến tính năng nhận diện đặc điểm để dò tìm vị trí khuôn mặt Sau đó dựa trên các đặc điểm đã thu nhập được, bạn có thể tạo nên phần mềm cho phép nhận diện khuôn mặt và phát hiện đối tượng chính xác

Trang 9

4.7 Học máy

OpenCV được tích hợp 1 loại module cung cấp đa dạng các thuật toán học máy (machine learning) Trong đó có Neural Networks, Decision Trees, Support Vector Machines, K-Nearest Neighbors, Bayes Classifier…

Các thuật toán machine learning ngày nay đang được ứng dụng phổ biến để phát triển và hoàn thiện những hệ thống tìm kiếm trực quan, nhận diện khuôn mặt, phân loại hình ảnh, nhận dạng đối tượng…

4.8 Phân tích hình dạng

Trong computer vision, khái niệm hình dạng rất quan trọng và được đề cao OpenCV có khả năng phát hiện ra nhiều hình dạng khác nhau có trong một hình ảnh nhất định Bước này có ý nghĩa then chốt trong nhiều thuật toán Bạn có thể sử dụng các thuật toán có trong module của OpenCV để trích xuất nhiều hình dạng khác nhau, tính toán sự biến đổi hình dạng và điểm tương đồng giữa hình dạng của các đối tượng

4.9 Nhận dạng văn bản

OpenCV còn được tích hợp một loại module khác cung cấp các thuật toán nhằm phát hiện, nhận dạng và xử lý văn bản Nhận dạng văn bản tức là việc phát hiện ra nội dung dưới dạng văn bản trong một số ngữ cảnh Bao gồm quét dữ liệu

để số hóa, nhận dạng biển chỉ đường, nhận diện bảng tên…

4.10 Nhiếp ảnh điện toán

Việc áp dụng các kỹ thuật xử lý hình ảnh hiện đại nhằm nâng cao chất lượng hình ảnh được gọi chung là nhiếp ảnh điện toán Nhờ có nhiếp ảnh điện toán mà bạn có thể thao tác và xử lý các dữ liệu hình ảnh ngay trên phần mềm, từ đó giảm nhẹ vai trò của các phương pháp chụp ảnh và các quy trình quang học

Trang 10

PHẦN 5: TRIỂN KHAI MỘT SỐ ỨNG DỤNG CỦA OPENCV 5.1 Ứng dụng nhận dạng vật thể

Bài toán: Đếm xem có bao nhiêu đồng xu trong 1 bức ảnh

Đầu vào:

Sau khi xử lý:

Trang 11

Các bước thực hiện:

1 Đọc ảnh

2 Sử dụng cvtColor đổi ảnh thành màu xám

3 Sử dụng GaussianBlur để làm mờ ảnh

4 Canny để vẽ đường viền rồi tính số đồng xu

5.2 Ứng dụng nhận diện khuôn mặt

Bài toán: Nhận diện khuôn mặt người

Đầu vào: (Ảnh)

Đầu ra:

Trang 12

Các bước tiến hành:

1 Đọc ảnh

2 Sử dụng cvtColor đổi ảnh thành màu xám

3 Sử dụng bộ lọc haarcascade và CV2.CascadeClassificer để quét qua ảnh từ

độ tìm ra tọa độ của các khuôn mặt

4 Sử dụng CV2.rectangle để vẽ hình chữ nhật tại các tạo độ được tìm ra

5.3 Ứng dụng xử lý video

Bài toán: Đếm số xe xuất hiện trong 1 đoạn video

Trang 13

Đầu vào: (Video)

Bước 1: Nhận điện xe ô tô

Bước 2: tăng Car Counter lên 1

Trang 14

Các bước tiến hành:

1 Đọc video, chuyển về màu xám làm mở video

2 Sử dụng createBackgroundSubtractorKNN để tách nền

3 Xóa bóng của vật thể

4 Vẽ countours rồi tracking bằng cách so sánh tâm trước và sau

5.4 Xóa background

Bài toán: Xóa phong 1 bức ảnh cho sẵn

Trang 15

Ảnh ban đầu:

Các bước tiến hành:

1 Đọc file ảnh

2 Tạo ngưỡng để sách định màu cần xóa phong

3 Tạo mask để tiến hành lộc ảnh

4 Sử dụng lệnh cv2.bitwise_and và mask vừa tạo để tiến hành lọc ảnh

Mask:

Trang 16

Kết quả xử lý:

5.5 Nhận dạng chữ từ một bước ảnh cho trước.

Trang 17

Bài toán: Đầu vào là ảnh chứa 1 đoạn text tiến hành xử lý để trích xuất đoạn text ra file txt

Đầu ra:

this is SAMLE TEXT

Text is at different regions

Ngày đăng: 30/05/2024, 14:55

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w