1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Ứng dựng xử lý ảnh Nhận diện và nhận dạng linh kiện dùng Python + File Code

12 12 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 đề Nhận Diện Và Định Dạng Linh Kiện Điện Tử
Tác giả Đàm Trung Nguyên, Nguyễn Thị Kim Thư, Trần Hoàng Chương
Người hướng dẫn TS. Nguyễn Văn Thái
Trường học Trường Đại Học Sư Phạm Kỹ Thuật TP. HCM
Chuyên ngành Xử Lý Ảnh
Thể loại Báo Cáo Cuối Kì
Năm xuất bản 2023
Thành phố Tp Hồ Chí Minh
Định dạng
Số trang 12
Dung lượng 1,08 MB
File đính kèm Nhận dạng và nhận diện linh kiện Python.rar (29 MB)

Nội dung

Tiêu đề: Nhận dạng và Nhận diện Linh kiện Tự động sử dụng Python: Ứng dụng Xử lý Ảnh Mô tả: Ứng dụng Nhận dạng và Nhận diện Linh kiện sử dụng Python là một hệ thống tự động hoạt động trên nền tảng xử lý ảnh và trí tuệ nhân tạo. Với mục tiêu tối ưu hóa quá trình kiểm tra linh kiện trong quy trình sản xuất hoặc kiểm tra hàng hóa, ứng dụng này kết hợp các kỹ thuật tiên tiến để nhận dạng và nhận diện các linh kiện hoặc sản phẩm trên các hình ảnh hoặc video. Chức năng Chính: Nhận dạng Linh kiện: Ứng dụng có khả năng nhận dạng và phân biệt giữa các loại linh kiện trong một bức ảnh hoặc video. Các thuật toán được áp dụng để xác định linh kiện dựa trên đặc điểm hình dạng, màu sắc, hoặc các đặc trưng đặc biệt khác. Nhận diện Đối tượng: Khả năng nhận diện các đối tượng cụ thể trên linh kiện, chẳng hạn như kết cấu, ký hiệu, hoặc các đặc điểm kỹ thuật khác. Điều này giúp phát hiện lỗi hoặc hỏng hóc, cũng như kiểm tra các thông số kỹ thuật quan trọng. Phân loại và Đánh giá: Ứng dụng có thể phân loại linh kiện dựa trên các tiêu chí nhất định và cung cấp đánh giá về chất lượng, hiệu suất, hoặc các yếu tố khác. Điều này giúp tối ưu hóa quy trình kiểm tra và quản lý chất lượng sản phẩm. Tích hợp Hệ thống: Có khả năng tích hợp với các hệ thống tự động hoá và quản lý dữ liệu để đưa ra quyết định tự động hoặc tự động báo động khi phát hiện lỗi hoặc không phù hợp. Tuỳ chỉnh và Mở rộng: Ứng dụng được thiết kế để dễ dàng mở rộng và tuỳ chỉnh cho các yêu cầu cụ thể của từng ứng dụng cụ thể, bằng cách cung cấp các giao diện lập trình ứng dụng (API) hoặc công cụ cấu hình. Công nghệ và Công cụ: Sử dụng ngôn ngữ lập trình Python với các thư viện như OpenCV, TensorFlow, hoặc Keras để xây dựng mô hình nhận diện và nhận dạng. Sử dụng các mô hình học sâu như Convolutional Neural Networks (CNNs) để trích xuất đặc trưng và nhận diện đối tượng. Áp dụng các kỹ thuật xử lý ảnh như lọc thông thấp, biến đổi hình dạng, hoặc phân đoạn để tối ưu hóa việc nhận diện và nhận dạng. Ứng dụng của Nhận dạng và Nhận diện Linh kiện có thể thấy rõ trong nhiều lĩnh vực, bao gồm sản xuất, kiểm tra chất lượng, và tự động hoá quy trình sản xuất, mang lại hiệu suất và đáng tin cậy cao hơn trong quy trình sản xuất và kiểm tra sản phẩm.

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM

KHOA ĐIỆN-ĐIỆN TỬ



MÔN HỌC: XỬ LÝ ẢNH

BÁO CÁO CUỐI KÌ NHẬN DIỆN VÀ ĐỊNH DẠNG

LINH KIỆN ĐIỆN TỬ

GVHD: TS Nguyễn Văn Thái SVTH: Nhóm 02

Đàm Trung Nguyên 21151292 Nguyễn Thị Kim Thư 21151509 Trần Hoàng Chương 21151268

Mã lớp học: IMPR432446_22_2_01

Tp Hồ Chí Minh, tháng 07 năm 2023

Trang 2

MỤC LỤC

Chương 1: TỔNG QUAN 1

1.1 Giới thiệu 1

1.2 Đặt vấn đề 2

1.3 Mục tiêu 2

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

1.5 Phạm vi đề tài 2

Chương 2 CƠ SỞ LÝ THUYẾT 2

2.1 Lý thuyết xử lý ảnh 2

2.2 Các thư viện sử dụng trong chương trình 3

2.2.1 Pillow - Xử lý hình ảnh 3

2.2.2 OpenCV - Xử lý hình ảnh 4

2.2.3 Numpy - Xử lý mảng đa chiều, ma trận 4

2.2.4 Tkinter – Cung cấp giao diện hướng đối tượng 5

Chương 3 NỘI DUNG THỰC HIỆN 5

3.1 Yêu cầu đề tài 5

3.2 Chương trình 5

Chương 4 NHẬN XÉT VÀ ĐÁNH GIÁ KẾT QUẢ 8

4.1 Kết quả 8

4.2 Hạn chế 9

4.3 Hướng phát triển 9

4.4 Kết luận 10

TÀI LIỆU THAM KHẢO 10

Trang 3

Chương 1: TỔNG QUAN

1.1 Giới thiệu

Từ trước đến nay con người chúng ta luôn luôn quan sát và thu thập thông tin phần lớn thông qua hình ảnh Từ đó, sự ra đời công nghệ xử lí ảnh có vai trò vô cùng quan trọng trong nền văn minh nhân loại Nó có thể xử lí một cách chính xác và có thể phát hiện được những cấu trúc nhỏ mà con người không thể quan sát được Đã có nhiều phát minh có giá trị to lớn trong hầu hết lĩnh vực: y tế, quân sự, khoa học … Điển hình như một số ứng dụng nhận dạng khuôn mặt, nhận dạng các vật thể, xử lí nhiễu, nhận dạng hành động …

Hình 1.1.1 Nhận diện người

Hình 1.1.2 Nhận diện dáng người

Trang 4

1.2 Đặt vấn đề

Từ những ứng dụng nổi bật trên ta nhận thấy thực tế trong lĩnh vực tự động hóa công nghiệp và sản xuất, việc nhận dạng và định dạng linh kiện điện tử là một công việc quan trọng Tuy nhiên việc quan sát bằng mắt thường rất mất thời gian và tốn nhân công Do đó, nhóm chúng em đã ứng dụng xử lý ảnh vào việc nhận diện và đo chiều cao người để có thể quan sát một cách tối ưu hơn

1.3 Mục tiêu

- Sử dụng ngôn ngữ python để lập trình

- Áp dụng kiến thức đã học từ môn xử lý ảnh

- Thiết kế bộ nhận diện người và đo chiều cao

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

Vận dụng các kiến thức đã học và tham khảo các mô hình trên internet để tìm ra phương pháp tối ưu cho đề tài

1.5 Phạm vi đề tài

- Ứng dụng trong lĩnh vực y tế và quân sự

- Giúp tăng hiệu suất và độ chính xác

Chương 2 CƠ SỞ LÝ THUYẾT

2.1 Lý thuyết xử lý ảnh

Xử lý ảnh (XLA) là đối tượng nghiên cứu của lĩnh vực thị giác máy, là quá trình biến đổi từ một ảnh ban đầu sang một ảnh mới với các đặc tính và tuân theo ý muốn của người sử dụng Xử lý ảnh có thể gồm quá trình phân tích, phân lớp các đối tượng, làm tăng chất lượng, phân đoạn và tách cạnh, gán nhãn cho vùng hay quá trình biên dịch các thông tin hình ảnh của ảnh Mục đích của xử lý ảnh gồm: Cải thiện chất lượng hình ảnh: Xử lý ảnh có thể được sử dụng để làm mịn, làm sắc nét, tăng cường độ tương phản, giảm nhiễu và loại bỏ các đối tượng không mong

Trang 5

muốn trong hình ảnh Điều này giúp cải thiện khả năng quan sát, đánh giá và phân tích hình ảnh

Trích xuất thông tin: Xử lý hình ảnh có thể giúp rút trích các thông tin hữu ích từ hình ảnh Qua việc áp dụng các phương pháp như phân đoạn, nhận dạng đối tượng

và trích xuất đặc trưng, ta có thể nhận biết và trích xuất thông tin liên quan đến các đối tượng, khu vực quan tâm, đặc điểm hình học và thuộc tính khác có trong hình ảnh

Nhận dạng và phân loại đối tượng: Việc xử lý hình ảnh đóng vai trò quan trọng trong việc nhận diện và phân loại các đối tượng hiện diện trong ảnh Để thực hiện công việc này, các giải thuật học máy và mô hình học sâu được áp dụng để phân loại đối tượng dựa trên các đặc trưng riêng biệt của chúng, bao gồm hình dạng, màu sắc, cấu trúc và vị trí

Phân tích và hiểu hình ảnh: Phân tích và hiểu hình ảnh được thực hiện thông qua

xử lý ảnh, một quá trình tương tự như con người Quá trình này bao gồm nhận dạng khuôn mặt, phát hiện đối tượng quan trọng, nhận biết hành động và tư thế, cũng như hiểu nội dung và ngữ cảnh của hình ảnh

Ứng dụng trong thị giác máy tính và thị giác máy: Việc xử lý ảnh đóng vai trò quan trọng trong lĩnh vực thị giác máy tính và thị giác máy, trong đó máy tính được lập trình để nhìn và hiểu hình ảnh tương tự như con người Ứng dụng của công nghệ này rất rộng rãi, từ nhận dạng khuôn mặt, xử lý ảnh y tế, xe tự hành, giám sát an ninh, thị giác robot cho đến nhiều lĩnh vực khác

2.2 Các thư viện sử dụng trong chương trình

2.2.1 Pillow - Xử lý hình ảnh

Khi sử dụng Pillow, người dùng có thể mở và lưu hình ảnh, mà còn có thể xử lý đặc điểm của hình ảnh, chẳng hạn như màu sắc, độ mờ, độ sáng, tối,

Trang 6

Pilow hỗ trợ xử lý nhiều tệp hình ảnh khác nhau như PDF, WebP, PCX, PNG, JPEG, GIF, PSD, WebP, PCX, GIF, IM, EPS, ICO, BMP, v.v

Với Pillow, bạn có thể dễ dàng tạo ra những ảnh thu nhỏ (thumbnails) cho hình ảnh, những ảnh thu nhỏ này mang hầu hết đặc điểm của hình ảnh và gần như không khác gì ảnh gốc ngoại trừ chúng được thu nhỏ lại

Pillow hỗ trợ một bộ sưu tập các bộ lọc hình ảnh như – FIND_EDGES, DETAIL, SMOOTH, BLUR, CONTOUR, SHARPEN, SMOOTH_MORE,

2.2.2 OpenCV - Xử lý hình ảnh

OpenCV là một gói mô-đun hình ảnh lý tưởng cho phép bạn đọc và ghi, thay đổi

dữ liệu nhiều hình ảnh cùng một lúc

Tạo ra thị giác máy tính cho phép bạn xây dựng lại, gián đoạn và thông hiểu môi trường 3D từ môi trường 2D tương ứng của nó

OpenCV được xử dùng nhiều trong nhận diện vật thể và hình ảnh được thiết lập trước, chẳng hạn như khuôn mặt, động vật, cây cối, các vật thể di chuyển, etc Bạn cũng có thể lưu và chụp bất kỳ khoảnh khắc nào của video và cũng có thể phân tích các thuộc tính khác nhau của nó như chuyển động, nền,

OpenCV tương thích với nhiều hệ điều hành như Windows, OS-X, Open BSD và nhiều hệ điều hành khác

2.2.3 Numpy - Xử lý mảng đa chiều, ma trận

Numpy là một thư viện mã nguồn mở cho Python được phát triển nhằm cung cấp hiệu suất biên dịch cao cho các phép toán số học và xử lý số liệu, bao gồm cả ma trận

và mảng có khối lượng dữ liệu lớn Ngoài ra, thư viện này cũng đem đến một bộ sưu tập lớn các chức năng toán học cao cấp, giúp dễ dàng và thuận tiện trong việc thao tác trên ma trận và mảng

Trang 7

Numpy cung cấp những masked arrays đồng thời với mảng gốc Nó cũng đi kèm với các chức năng như thao tác với hình dạng logic, biến đổi Fourier rời rạc, đại số tuyến tính tổng quát, và nhiều hơn nữa

Gói mô-đun này cung cấp các công cụ hữu ích để tích hợp với các ngôn ngữ lập trình khác Chẳng hạn như C, C++, và ngôn ngữ lập trình Fortran

Numpy cung cấp các chức năng tương đương với MATLAB Cả hai đều cho phép người dùng thao tác nhanh hơn

2.2.4 Tkinter – Cung cấp giao diện hướng đối tượng

Tkinter là một thư viện giao diện người dùng (GUI) được tích hợp sẵn trong

Python Nó là một phần của thư viện chuẩn của Python, do đó không cần phải cài đặt thêm

Tkinter cung cấp các công cụ và lớp để tạo và điều khiển các thành phần giao diện người dùng như cửa sổ, nút, nhãn, hộp thoại, và nhiều hơn nữa Thư viện này hỗ trợ việc xây dựng giao diện đồ họa đơn giản và tương tác với người dùng

Chương 3 NỘI DUNG THỰC HIỆN

3.1 Yêu cầu đề tài

Sử dụng thuật toán imutils để nhận diện và định dạng các linh kiện điện tử trong hình ảnh từ trong video và thư viện Tkinter để tạo giao diện người dùng

3.2 Chương trình

Khai báo các thư viện cần thiết cho chương trình:

Trang 8

Tạo cửa sổ giao diện:

Hiển thị logo và thông tin chương trình :

Trang 9

Tạo nút nhấn RUN:

Chạy vòng lặp chính của giao diện:

Tạo bộ phận phân loại Haar cascade cho nhận dạng cơ thể con người và lấy thông tin ảnh từ webcam:

Vòng lặp đọc video, phát hiện vật thể và tính toán chiều cao:

Trang 10

Hiển thị kết quả và thoát khỏi vòng lặp:

Giải phóng dòng video và đóng cửa sổ hiển thị:

Chương 4 NHẬN XÉT VÀ ĐÁNH GIÁ KẾT QUẢ

4.1 Kết quả

4.1.1 Kết quả thực nghiệm

Trang 11

4.2 Hạn chế

Giao diện đơn giản: Kết quả chỉ hiển thị chiều cao Điều này giới hạn khả năng tương tác và cung cấp thông tin cho người dùng

Chỉ hỗ trợ webcam: Chỉ hỗ trợ nhận diện người từ video từ webcam Không có khả năng nhập video từ file hoặc nguồn video khác

Không có chế độ lưu trữ kết quả: Chỉ hiển thị kết quả nhận diện trực tiếp trên giao diện đồ họa, không cung cấp khả năng lưu trữ kết quả hoặc xử lý chúng sau khi quá trình nhận diện kết thúc

Hiệu suất có thể bị hạn chế: Việc xử lý video livestream trực tiếp trên giao diện đồ họa, hiệu suất của ứng dụng có thể bị hạn chế, đặc biệt khi xử lý video có độ phân giải cao

Phụ thuộc vào các thư viện bên thứ ba: Sử dụng nhiều thư viện bên thứ ba như tkinter, PIL, cv2 và imutils Điều này có thể yêu cầu cài đặt và cấu hình thêm các thư viện này trước khi chạy được ứng dụng

4.3 Hướng phát triển

Tăng cường chức năng nhận diện và định danh: Mở rộng chức năng này để nhận diện và đo các đối tượng khác

Tích hợp khả năng ghi lại và lưu trữ kết quả: Lưu trữ các kết quả nhận diện Cải thiện độ chính xác và hiệu suất:Thử nghiệm và tinh chỉnh các mô hình nhận diện khác, cùng với việc điều chỉnh ngưỡng độ tin cậy để cải thiện độ chính xác và hiệu suất của hệ thống

Tối ưu hóa và triển khai: Tối ưu hóa thuật toán và mã nguồn, triển khai trên các nền tảng nhúng, hoặc sử dụng công nghệ phân phối để xử lý dữ liệu lớn và mở rộng ứng dụng

Trang 12

4.4 Kết luận

Đoạn code cung cấp một giao diện đơn giản để nhận diện người và đo chiều cao trong video từ webcam Đoạn mã này có một số điểm mạnh đáng kể Đầu tiên, nó tận dụng thuật toán imutils để nhận diện đối tượng, đồng thời cung cấp một giao diện đồ họa đơn giản và thân thiện với người dùng Tuy nhiên, để nâng cao tính linh hoạt của ứng dụng, có thể cần mở rộng các chức năng bổ sung như lưu trữ kết quả nhận diện và tương tác với các hệ thống khác

TÀI LIỆU THAM KHẢO

https://codelearn.io/sharing/top-30-libraries-packages-4-beginner-p1

Ngày đăng: 02/03/2024, 23:45

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

TÀI LIỆU LIÊN QUAN

w