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

Python Phát hiện chuyển động sử dụng opencv

22 57 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 đề Python Phát hiện chuyển động sử dụng OpenCV
Tác giả Nguyễn Thị Thanh Huyền
Trường học Khoa Công Nghệ Thông Tin - Đại học Công Nghệ Thông Tin - Đại học Quốc Gia Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đề tài
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 22
Dung lượng 1,66 MB
File đính kèm Phát hiện chuyển động.rar (888 B)

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

Nội dung

Phát hiện chuyển động bằng thư viện OpenCV, Tkinter. Trong quá trình xây dựng chương trình, tôi đã sử dụng PyCharm để phát triển mã nguồn và quản lý dự án. PyCharm cung cấp cho người dùng một loạt tính năng hữu ích, giúp tăng hiệu suất và tiết kiệm thời gian. Để phát hiện chuyển động sử dụng OpenCV, chúng ta có thể sử dụng một số kỹ thuật xử lý ảnh, như: Lấy background: Lấy background từ các khung hình đầu tiên hoặc từ video. So sánh frame hiện tại với background để xác định các vật thể hoặc phần nào đó của ảnh có chuyển động hay không. Áp dụng các bộ lọc để loại bỏ nhiễu. Sử dụng các hàm xác định ranh giới để xác định các đối tượng. Chương trình có báo cáo đầy đủ, giải thích chi tiết về từng hàm, câu lệnh.

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

THỊ GIÁC MÁY TÍNH

ĐỀ TÀI: PHÁT HIỆN CHUYỂN ĐỘNG SỬ DỤNG OPENCV

SVTH: Nguyễn Thị Thanh Huyền Lớp :

GVHD:

-2023

Trang 2

MỤC LỤC

MỞ ĐẦU

1 Lí do nghiên cứu đề tài 3

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

3 Đối tượng nghiên cứu 3

4 Phạm vi nghiên cứu 4

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

6 Kết cấu đề tài: 4

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT

1.1 Tổng quan về thị giác máy tính 5

1.1.1 Khái niệm 5

1.1.2 Một số lĩnh vực ứng dụng của thị giác máy tính 5

1.2 Tổng quan về Pycharm 10

1.2.1 Khái niệm 10

1.2.2 Các tính năng của Pycharm 11

1.2.3 Ưu điểm của Pycharm 12

1.2.4 Nhược điểm của Pycharm 12

1.3 Tổng quan về OpenCV 13

1.3.1 Khái niệm 13

1.3.2 Đặc điểm nổi bật của OpenCV 13

1.3.3 Ứng dụng thực tế của Opencv 14

1.3.4 Các module phổ biến của Opencv 14

CHƯƠNG 2 CÀI ĐẶT CHƯƠNG TRÌNH

2.1 Cài đặt Pycharm 16

2.2 Hướng dẫn sử dụng Pycharm 19

2.3 Cài đặt OpenCV 20

2.4 Thực hiện chương trình 22

2.5 Chạy chương trình 22

KẾT LUẬN

Trang 3

MỞ ĐẦU

1 Lí do nghiên cứu đề tài

Trong thực tế hiện nay, việc phát hiện đối tượng chuyển động là một trongnhững vấn đề quan trọng trong lĩnh vực thị giác máy tính và trí tuệ nhân tạo Việcphát hiện đối tượng chuyển động có thể được áp dụng trong nhiều lĩnh vực nhưgiám sát an ninh, giám sát giao thông, giám sát tàu thuyền, giám sát dịch bệnh,điều khiển robot và nhiều ứng dụng khác Việc sử dụng OpenCV trong nghiên cứuphát hiện đối tượng có nhiều lợi ích, bao gồm tốc độ xử lý nhanh, tính ổn định vàkhả năng xử lý các loại ảnh và video khác nhau Bên cạnh đó, OpenCV còn cónhiều thuật toán phát hiện đối tượng khác nhau, cho phép người nghiên cứu lựachọn phù hợp với nhu cầu và yêu cầu của ứng dụng cụ thể

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

Các mục tiêu cụ thể của nghiên cứu phát hiện đối tượng chuyển động bao gồm:

 Tìm cách xây dựng các phương pháp phát hiện đối tượng chuyển động có độchính xác cao, tốc độ xử lý nhanh để đáp ứng nhu cầu thực tế của các ứngdụng

 Tìm hiểu và phát triển các thuật toán và kỹ thuật mới để xử lý các vấn đề pháthiện đối tượng chuyển động khó như phát hiện đối tượng chuyển động trongmôi trường phức tạp, những đối tượng chuyển động bị che khuất hoặc mấtdấu, các đối tượng chuyển động nhanh, v.v

 Tìm cách tối ưu hóa quá trình phát hiện đối tượng chuyển động để giảm thiểusai sót phát hiện, làm tăng độ chính xác, đồng thời giảm tải cho hệ thống xử

lý và lưu trữ

 Áp dụng các kỹ thuật học máy để phát hiện đối tượng chuyển động trong cáctình huống khó xử lý, như các đối tượng có kích thước, hình dạng và màu sắckhác nhau, giúp tăng độ chính xác và khả năng phát hiện

 Nghiên cứu và phát triển các ứng dụng của phát hiện đối tượng chuyển độngtrong các lĩnh vực khác nhau, như an ninh, giám sát, robot,… giúp tăng hiệuquả và nâng cao chất lượng cuộc sống của con người

3 Đối tượng nghiên cứu

 Các đối tượng trong các hình ảnh hoặc video, được di chuyển trong khônggian và thường có hướng và tốc độ khác nhau Các đối tượng này có thể làngười, động vật, phương tiện giao thông, vật thể trong sản xuất, v.v

 Trong quá trình phát hiện đối tượng chuyển động, các đối tượng này được xácđịnh dựa trên sự khác biệt giữa các khung hình liên tiếp, được phân loại dựa

Trang 4

trên các đặc trưng như kích thước, hình dạng, màu sắc, vị trí và hướng dichuyển.

 Công nghiệp: Phát hiện đối tượng chuyển động trong các dây chuyền sản xuấtgiúp tăng năng suất và giảm chi phí sản xuất bằng cách giám sát và kiểm traquy trình sản xuất

 Tự động hóa: Phát hiện đối tượng chuyển động trong các ứng dụng tự độnghóa, bao gồm xe tự hành và robot, giúp cho các thiết bị di chuyển một cách antoàn và hiệu quả

 Giải trí: Phát hiện đối tượng chuyển động trong các ứng dụng giải trí như tròchơi điện tử và các ứng dụng AR/VR giúp tạo ra trải nghiệm người dùng tốthơn

 Phạm vi nghiên cứu có thể mở rộng đến việc áp dụng các kỹ thuật phát hiệnđối tượng chuyển động trong các lĩnh vực mới và phát triển các thuật toánphát hiện chuyển động mới để cải thiện độ chính xác và tốc độ xử lý

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

Phương pháp nghiên cứu tài liệu: nghiên cứu các tài liệu chuyên ngành

Phương pháp thực nghiệm: xây dựng và chạy thử nghiệm chương trình

6 Kết cấu đề tài:

Chương 1: Cơ sở lý thuyết: Tổng quan về Thị giác máy tính, ứng dụng của thịgiác máy tính

Chương 2: Giới thiệu về Pycharm, OpenCV, hướng dẫn cài đặt

Chương 3: Xây dựng chương trình Phát hiện chuyển động sử dụng OpenCV

Trang 5

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1.1 Tổng quan về thị giác máy tính

1.1.1 Khái niệm

Thị giác máy tính (Computer Vision - CV) là một lĩnh vực của trí tuệ nhântạo (AI) liên quan đến việc giúp máy tính hiểu và xử lý thông tin từ hình ảnh vàvideo Trong thị giác máy tính, các thuật toán được sử dụng để phân tích, định

vị, phân loại và hiểu nội dung của hình ảnh và video

Hình 1.1 Thị giác máy tính (Computer Vision)Với sự phát triển của trí tuệ nhân tạo và công nghệ máy tính, thị giác máytính đang trở thành một lĩnh vực quan trọng và có tiềm năng rất lớn trong nhiềulĩnh vực khác nhau

1.1.2 Một số lĩnh vực ứng dụng của thị giác máy tính

Robot và các máy tự động như xe tự lái là lĩnh vực áp dụng nhiều đến côngnghệ thị giác máy tính Tuy nhiên, hàng loạt các lĩnh vực trong đời sống hàngngày đang phát triển sử dụng đến công nghệ thị giác máy tính:

Lĩnh vực y tế:

Những tiến bộ lớn liên tục xuất hiện trong các lĩnh vực nhận dạng mẫu và xử lýhình ảnh Đồng thời, không có gì đáng ngạc nhiên khi cộng đồng y tế và cácchuyên gia trong lĩnh vực chăm sóc sức khỏe cho rằng hình ảnh y khoa (kỹ thuật

Trang 6

tạo hình ảnh trực quan về bên trong của cơ thể để phân tích lâm sàng và can thiệp

y tế, cũng như biểu thị trực quan chức năng của một số cơ quan hoặc mô sinh lýhọc) đã trở thành một phần thiết yếu trong cách thức làm việc của họ, hướng đếncác công cụ chẩn đoán tốt hơn và tăng đáng kể khả năng đưa ra các hành độnghiệu quả hơn

Phân tích hình ảnh y khoa là một trợ giúp lớn cho phân tích dự đoán và trị liệu

Ví dụ, thị giác máy tính được áp dụng cho hình ảnh nội soi có thể làm tăng mức

độ hợp lệ và đáng tin cậy của dữ liệu để giảm tỷ lệ tử vong liên quan đến ung thưđại trực tràng

Trong một ví dụ khác, công nghệ thị giác máy tính cũng cung cấp hỗ trợ kỹthuật cho phẫu thuật Mô hình hình ảnh 3D của hộp sọ, như là một phần của điềutrị khối u não, cung cấp tiềm năng to lớn trong việc chuẩn bị phẫu thuật thần kinhtiên tiến Ngoài ra, khi mà học sâu ngày càng được sử dụng trong các công nghệ

AI, việc tận dụng nó để phân loại các nốt phổi đã đạt được tiến bộ to lớn để chẩnđoán sớm ung thư phổi

Lĩnh vực Bán lẻ:

Thị giác máy tính đang được sử dụng trong các cửa hàng ngày càng nhiều, đặc biệt là giúp cải thiện trải nghiệm của khách hàng Pinterest Lens là một công cụ tìm kiếm sử dụng thị giác máy tính để phát hiện các đối tượng giống như cách Shazam phát hiện âm nhạc Bằng cách sử dụng ứng dụng điện thoại thông minh trong các cửa hàng, bạn có thể hình dung một sản phẩm trông như thế nào và nhận được các sản phẩm khác liên quan đến nó.

Nhận dạng khuôn mặt là một ứng dụng nổi tiếng về thị giác máy tính có thể được sử dụng trong trung tâm mua sắm hoặc trong cửa hàng Lolli & Pops, một cửa hàng kẹo có trụ sở tại Mỹ, đang sử dụng nhận dạng khuôn mặt để tích điểm cho khách hàng trung thành “Hãy tưởng tượng: Bạn bước vào cửa hàng yêu thích của mình và nhân viên bán hàng chào đón bạn bằng tên và bất cứ lúc nào bạn cần, họ chia sẻ với bạn những sản phẩm mới nhất của mình mà bạn có thể sẽ quan tâm nhất.” Sự đổi mới công nghệ có thể đưa

ra các giới thiệu được cá nhân hóa cụ thể cho từng khách hàng.

Dường như không có giới hạn khi nói về các trường hợp sử dụng của thị giác máy tính trong lĩnh vực bán lẻ, chúng cũng có thể bao gồm phân tích các kệ hoặc tầng trong cửa hàng, thậm chí cả phân tích tâm trạng của khách hàng, cụ thể phát hiện cảm xúc dựa trên các thuật toán thông qua hình ảnh trong video và phân tích các biểu cảm nhỏ nhất trên gương mặt, xử lý chúng

và cuối cùng, diễn giải cảm xúc chung.

Trang 7

Chấm dứt việc phải xếp hàng để thanh toán có thể là mục tiêu cuối cùng của cải tiến công nghệ trong các cửa hàng Thị giác máy tính kết hợp với AI cuối cùng cũng có thể xóa sổ những hàng đợi thanh toán dài ác mộng.

Amazon đã phát triển một mô hình mới, Amazon Go, thúc đẩy các công nghệ bao gồm thị giác máy tính, IoT và AI để phát hiện, theo dõi và phân tích hành vi cũng như hành động của khách hàng trong cửa hàng để xử lý tự động quá trình thanh toán và gửi cho họ hóa đơn điện tử

Lĩnh vực Ngân hàng:

Khi nói đến việc liên kết các công nghệ AI với ngân hàng, chúng ta chủ yếu nghĩ đến việc phát hiện gian lận Mặc dù đó là một lĩnh vực tập trung đặc biệt cho công nghệ tiên tiến trong lĩnh vực này, thị giác máy tính có thể cải tiến nhiều thứ hơn nữa Các ứng dụng nhận dạng hình ảnh sử dụng học máy

để phân loại và trích xuất dữ liệu phục vụ cho việc giám sát quá trình xác thực các tài liệu như thẻ căn cước hoặc giấy phép lái xe có thể được sử dụng

để cải thiện trải nghiệm của khách hàng từ xa và tăng cường bảo mật.

Máy bay không người lái cũng có thể cải thiện an ninh và hiệu quả của hoạt động cứu hỏa bằng cách giám sát hoặc nghiên cứu các khu vực nguy hiểm Nhân viên cứu hỏa có thể chạy các phân tích dựa trên thuật toán tiên tiến để kiểm tra khói và lửa, từ đó đánh giá rủi ro và đưa ra dự đoán về sự lan truyền lửa.

Hệ sinh thái công nghệ thị giác máy tính tiên tiến

Theo nghiên cứu của ResearchAndMmarket.com, “AI trong thị trường thị giác máy tính dự kiến sẽ được định giá 3,62 tỷ USD vào năm 2018 và dự kiến

sẽ đạt 25,32 tỷ USD vào năm 2023”.

Trang 8

Số lượng công nghệ là một phần của thị giác máy tính rất rộng và chúng bao gồm, ví dụ, nhận dạng hình ảnh, công nghệ được sử dụng để nhận dạng đối tượng, con người và cả hành động ngay trước khi học máy hoặc điện toán đám mây hay điện toán cạnh tận dụng các tài nguyên về CPU và khả năng lưu trữ trong nhiều ứng dụng thực tế như như máy bay không người lái cần xử lý thông tin tại chính nơi chúng được tạo ra Trong số những công nghệ tiên tiến đó, học máy và học sâu cho phép phát triển thị giác máy tính.

Học máy – Machine Learning

Học máy là một lớp thuật toán nhằm cung cấp cho các ứng dụng mức độ chính xác cao hơn Điểm thú vị là những thuật toán này không nhất thiết phải có một kế hoạch rõ ràng để đạt được điều này Dựa trên luồng dữ liệu đầu vào, số liệu thống kê định kỳ và phân tích nâng cao, chúng có thể liên tục cải thiện giá trị của kết quả.

Học máy dựa vào tiềm năng cao của các bộ dữ liệu Nói một cách đơn giản, một bộ dữ liệu về cơ bản là một tập hợp các dữ liệu có liên quan được kết hợp lại để mang đến nhiều giá trị hơn.

Hiện nay, hệ sinh thái thị giác máy tính cung cấp cho cộng đồng công nghệ một lượng lớn dữ liệu hình ảnh miễn phí Ví dụ, Thư viện hình ảnh của Đại học Columbia chia sẻ một bộ dữ liệu gồm 100 đối tượng khác nhau được chụp ở mọi góc trong một vòng quay 360 độ.

Học sâu – Deep learning

Học sâu là một phần của trí tuệ nhân tạo dựa trên các nguyên tắc trong cách học của con người để có được kiến thức tốt hơn Do đó, nó cung cấp những khả năng để cải thiện các quy trình, bao gồm tính chính xác của các kết quả thị giác máy tính.

Các thuật toán học sâu dựa vào các mạng thần kinh để ánh xạ các quy trình con dưới dạng phân cấp khái niệm Những khái niệm phức tạp được phân loại thành một chuỗi các khái niệm đơn giản hơn nhiều.

Nhận diện khuôn mặt – Face ID

Nhận dạng khuôn mặt lập bản đồ và lưu trữ danh tính kỹ thuật số nhờ vào các thuật toán học sâu Loại nhận dạng sinh trắc học này có thể được so sánh với các công nghệ nhận dạng giọng nói, mống mắt hoặc dấu vân tay hiện đang rất phổ biến.

Khái niệm này xuất hiện từ năm 2011 khi Google chứng minh rằng có thể tạo ra một máy dò tìm khuôn mặt chỉ bằng những hình ảnh không được gắn

Trang 9

nhãn Họ đã thiết kế một hệ thống có thể tự học để phát hiện hình ảnh con mèo mà không cần giải thích với hệ thống là con mèo trông như thế nào Vào thời điểm đó, mạng lưới thần kinh là 1.000 máy tính được tạo thành từ 16.000 lõi Nó được nuôi dưỡng với 10 triệu video YouTube ngẫu nhiên, Tiến

sĩ J Dean, người làm việc trong dự án này, đã giải thích trong một cuộc phỏng vấn với New York Times rằng họ không bao giờ nói với hệ thống trong quá trình đào tạo rằng “đây là một con mèo”, vì vậy nó, về cơ bản, tự phát minh ra khái niệm về một con mèo.

Thị giác máy tính trong cuộc sống hàng ngày

Hình 1.2 Thị giác máy tính

Ngày nay, điện thoại thông minh có thể sử dụng máy ảnh chất lượng cao để nhận dạng Ví dụ: iPhone X của Apple chạy công nghệ Face ID để người dùng có thể mở khóa điện thoại của họ Dữ liệu khuôn mặt này được mã hóa

và lưu trữ trên đám mây và nó cũng có thể được sử dụng cho mục đích khác như xác thực khi thanh toán.

Tại Trung Quốc, các chuyên gia nghiên cứu về công nghệ thị giác máy tính đang đưa nó vào cuộc sống hàng ngày một tốc độ gia tăng đều đặn Không chỉ người tiêu dùng Trung Quốc sử dụng điện thoại thông minh và khả năng nhận dạng khuôn mặt của thiết bị như một phương tiện thanh toán ưa thích

mà công nghệ này còn giúp phát hiện và bắt giữ tội phạm.

Điều này có ý nghĩa gì với con người?

Trang 10

Thị giác máy tính đang được sử dụng trong lĩnh vực an ninh để tìm kiếm tội phạm, dự đoán sự di chuyển khẩn cấp của đám đông, v.v.

Bằng cách phát triển ngày càng nhiều thuật toán thị giác máy tính tiên tiến phức tạp và hiệu quả, chúng ta đang cải thiện kết quả của nó và nhận dạng giọng nói của con người vì cả hai chủ đề này đều dựa trên các nguyên tắc so sánh Tất cả những điều này góp phần tăng cường khả năng nhận thức tình huống của AI và robot.

Khả năng học sâu và sức mạnh của các thuật toán học máy ngày càng lớn mạnh là nguyên nhân của những mối lo ngại liên tục gia tăng, hoặc ít nhất là cần phải có một sự chú ý đặc biệt đến sự phát triển của chúng Cụ thể, những công nghệ này đang đặt ra các vấn đề về quyền riêng tư và đạo đức Tuy nhiên, điều đó không có nghĩa là chúng ta nên dừng lại việc nghiên cứu Ngược lại, giống như bất kỳ quá trình phát triển công nghệ nào, thị giác máy tính phải được giám sát bởi tất cả mọi người trên toàn cầu thay vì chỉ là một cường quốc công nghiệp hay quân sự hay nào.

1.2 Tổng quan về Pycharm

1.2.1 Khái niệm

Pycharm là một nền tảng kết kết hợp được JetBrains phát triển như một IDE (Môi

trường phát triển tích hợp) để phát triển các ứng dụng cho lập trình trong Python.

Một số ứng dụng lớn như Tweeter, Facebook, Amazon và Pinterest sử dụngPycharm để làm IDE Python của họ Chúng ta có thể chạy PyCharm trên Windows,Linux hoặc Mac OS Ngoài ra, nó chứa các module và các package giúp các lậptrình viên phát triển phần mềm bằng Python tiết kiệm thời gian và công sức Hơnnữa, nó cũng có thể được tùy chỉnh theo yêu cầu của các nhà phát triển

Trang 11

Hình 1.3 Giao diện của Pycharm

1.

1.1.

1.2.

1.2.1.

1.2.2 Các tính năng của Pycharm

Trình sửa code thông minh

 Giúp chúng ta viết mã chất lượng cao hơn

 Nó bao gồm các lược đồ màu (color schemes) cho từ khóa, lớp và hàm Điềunày giúp tăng khả năng đọc và hiểu mã

Trang 12

 Hơn nữa, bằng cách sử dụng chế độ thấu kính, nhà phát triển có thể kiểm tra

và vá lỗi toàn bộ mã nguồn một cách kỹ lưỡng

Hỗ trợ cho nhiều công nghệ web khác

 Nó giúp các nhà phát triển tạo các ứng dụng web bằng Python

 Nó hỗ trợ các công nghệ web phổ biến như HTML, CSS và JavaScript

 Các nhà phát triển có lựa chọn chỉnh sửa trực tuyến với IDE này Đồng thời,

họ có thể xem trước trang web đã cập nhật/đã tạo

 Các nhà phát triển có thể theo dõi các thay đổi trên trình duyệt web trực tiếp

 PyCharm cũng hỗ trợ AngularJS và NodeJS để phát triển các ứng dụng web

Hỗ trợ cho các web framework Python phổ biến

 PyCharm hỗ trợ các web framework như Django

 Cung cấp tính năng tự động điền và gợi ý cho các thông số của Django

 Giúp vá lỗi các code của Django

 Hỗ trợ các web framework thông dụng như web2py và Pyramid

Hỗ trợ cho Thư viện Khoa học Python

 PyCharm hỗ trợ các thư viện khoa học của Python như Matplotlib, NumPy

và Anaconda

 Các thư viện khoa học này giúp xây dựng các dự án về Khoa học Dữ liệu vàHọc máy

 Hỗ trợ các biểu đồ tương tác giúp các nhà phát triển hiểu dữ liệu tốt hơn

 Nó có khả năng tích hợp với những công cụ khác nhau như IPython, Django

và Pytest Sự tích hợp này giúp thúc đẩy các giải pháp độc đáo

Ngày đăng: 17/03/2023, 17:49

w