Tải bản đầy đủ (.pdf) (12 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.08 MB, 12 trang )

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

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

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

1

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 q 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

2

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. Q trình này bao gồm nhận dạng
khn 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, ...

3

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ư khn 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. Ngồ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.

4


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:

5


Tạo cửa sổ giao diện:
Hiển thị logo và thông tin chương trình :

6

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:

7

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

8

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 tố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.

9


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

/>
10


×