Đồ án tốt nghiệp cơ điện tử Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết máy trên một dây truyền sản xuất tự động - Pdf 24

Mục lục
CHƯƠNG 1: MỞ ĐẦU 7
1.1 Bài toán , hướng giải quyết bài toán nhận dạng phân loại vật thể 7
1.2 Tóm tắt nội dung đồ án 8
CHƯƠNG 2: TỔNG QUAN VỀ XỬ LÝ ẢNH - NHẬN DẠNG VẬT
THỂ 9
2.1 Xử lý ảnh (số) và các khái niệm liên quan: 9
2.2 Nhận dạng và phân loại ảnh 13
CHƯƠNG 3: XỬ LÝ ẢNH VỚI MATLAB 15
3.1 Giới thiệu về MATLAB 15
3.2 Xử lý ảnh bằng MATLAB 20
CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH XỬ LÝ ẢNH 35
4.1 Bài toán nhận dạng vật thể 35
4.2 Sơ đồ thuật toán xử lý ảnh 36
4.3 Các bước chi tiết để xử lý ảnh 37
CHƯƠNG 5: KẾT QUẢ THỰC HIỆN 41
5.1 Kết quả 41
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỒ ÁN 44
6.1 Đánh giá kết quả đạt được 44
6.2 Các ứng dụng có thể áp dụng: 45
1
TÀI LIỆU THAM KHẢO 46
PHỤ LỤC 47
51
2
DANH MỤC HÌNH VẼ
3
Danh mục từ viết tắt
PEL: Picture Element.
CGA: Color Graphic Adaptor.
VGA: Video Graphic Array.

Nhận dạng và phân tích ảnh là một lĩnh vực liên ngành. Để thực hiện tốt
công việc nhận dạng và phân tích này, đòi hỏi người nghiên cứu phải am hiểu
nhiều lĩnh vực trong đó đặc biệt là các lĩnh vực liên quan tới cảm biến, các hệ
thống xử lý ảnh, các giải thuật xử lý hình ảnh/tín hiệu, phần cứng và phần mềm,
các hệ thống tích hợp…
Mục đích của báo cáo này là trình bày một phương pháp nhận dạng và phân
loại chi tiết máy. Theo đó, em sẽ lần lượt trình bày về cơ sở lý thuyết của việc
xử lý ảnh, nhận dạng vật thể,chương trình MATLAB với các hộp công cụ về
khảo sát và xử lý ảnh(image acquisition toolbox và image processing toolbox).
Bởi thời gian hạn hẹp cũng và nhiều hạn chế về kiến thức trong lĩnh vực hết
sức mới mẻ này, em mong báo cáo này sẽ trình bày một sự hiểu biết tương đối
về xử lý ảnh nói chung và nhận dạng vật thể nói riêng. Đồng thời, hy vọng rằng
trong một tương lai không xa sẽ có điều kiện ứng dụng những nghiên cứu đã đạt
được trong báo cáo này vào thực tế sản xuất.
6
CHƯƠNG 1: MỞ ĐẦU
1.1 Bài toán , hướng giải quyết bài toán nhận dạng phân loại vật thể.
- Bài toán: Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết
máy trên một dây truyền sản xuất tự động.
- Phương hướng giải quyết
Để giải quyết bài toán xử lý ảnh trong nhận dạng thì chúng ta có rất nhiều
công cụ hỗ trợ tốt cho việc xử lý ảnh như: Open CV Microsoft Visual Studio
hay công cụ image processing toolbox của Matlab…
Với sự tiện dụng đơn giản trong quá trình lập trình, gần gũi với kỹ thuật thì
công cụ image processing toolbox của Matlab là tối ưu hơn cả và trong báo cáo
em sẽ trình bày ứng dụng xử lý ảnh trên image processing toolbox của Matlab
Hình 1. 1 Các bước thực hiện hoàn chỉnh của một quá trình.
Hình 1. 2 Các bước phân tích và xử lý ảnh
7
Thu nhận

kiếm, vv. Nhận dạng đối tượng có rất nhiều cách tiếp cận để giải quyết, tuy
nhiên với mỗi loại đối tượng sẽ có một phương pháp cụ thể để thực hiện. Đơn
giản nhất là ta so sánh các điểm ảnh (pixel) với nhau giữa các đối tượng cần
nhận dạng. Tuy nhiên việc so sánh này thường tốn nhiều thời gian và không đạt
được kết quả như mong muốn. Một trong những phương pháp được sử dụng đạt
được hiệu quả tốt hơn đó là trích chọn các đặc trưng của ảnh. Các đặc trưng
được trích chọn thường dựa vào các đặc trưng bất biến.
Bố cục của đồ án được trình bày như sau : Trước hết đồ án trình bày về bài
toán đặt ra và phương hướng giải quyết ,sau đó trình bày các cơ sở lý thuyết của
xử lý ảnh và nhận dạng vật thể. Tiếp đó em xin giới thiệu cơ sở lý thuyết về
matlab và công cụ xử lý ảnh trên matlab " image processing toolbox". Trên cơ
sở tìm hiểu công cụ image processing toolbox đồ án xây dựng thuật toán phân
loại và nhận dạng sản phẩm chi tiết máy. Kết quả của đồ án là cơ sở để phát
triển và xây dựng các phần mềm phân loại và nhận dạng vật thể cho hệ thống
phân loại sản phẩm.
8
CHƯƠNG 2: TỔNG QUAN VỀ XỬ LÝ ẢNH - NHẬN DẠNG
VẬT THỂ
2.1 Xử lý ảnh (số) và các khái niệm liên quan:
2.1.1 Xử lý ảnh (số).
Xử lý ảnh(số) là một dạng của xử lý tín hiệu trong đó đầu vào là một hình
ảnh (các bức ảnh, các khung hình) và đầu ra của quá trình xử lý ảnh có thể là
một hình ảnh khác hoặc là một tập chứa các tính chất hoặc tham số liên quan tới
hình ảnh đó. Phần lớn các kỹ thuật xử lý ảnh thì thường qui về việc xử lý hình
ảnh như là một tín hiệu hai chiều rồi sử dụng các kỹ thuật xử lý tín hiệu để xử lý
nó.
2.1.2 Các khái nịêm liên quan:
• Điểm ảnh (Picture Element)
Gốc của ảnh (ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng. Để xử
lý bằng máy tính (số), ảnh cần phải được số hoá. Số hoá ảnh là sự biến đổi gần

xám ở các điểm ảnh có thể khác nhau.
Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt tức ding 1 bit mô tả 2
1
mức khác nhau hay mỗi điểm ảnh nhị phân chi có 1 trong 2 giá trị hoặc là 1 hoặc
là 2.
Ảnh màu: với mỗi điểm ảnh thì người ta dung 3 byte để mô tả mức màu (do
thế giới màu được tạo nên từ 3 màu cơ bản: đỏ(red), lục(blue) và lơ(green)). Do
đó có 2
8*3
=2
24
=16,7 triệu màu.
10
• Biểu diễn ảnh
Trong biểu diễn ảnh, người ta thường dùng các phần tử đặc trưng của ảnh là
pixel. Do đó ta có thể biểu diễn một ảnh bởi một hàm 2 biến chứac thông tin.
Các mô hình biểu diễn ảnh cho ta một mô tả lô gic hay định lượng các tính chất
của hàm này. Chất lượng ảnh hoặc tính hiệu quả của các kỹ thuật xử lý phụ
thuộc vào nhiều yếu tố như: độ phân giải, nhiễu,
Để xử lý được ảnh, thì ảnh đó phải được lấy mẫu (sample) rồi lượng tử hoá
(quantization). Tức là đầu tiên chuyển từ ảnh tương tự sang ảnh số sau đó lưu
giá trị của từng điểm ảnh với một số hữu hạn các mức xám.
• Tăng cường và khôi phục ảnh
- Tăng cường ảnh (image enhancement):
Khi ảnh được chuyển từ dạng này sang dạng khác bởi các quá trình như:
truyền ảnh, quét ảnh,… thì ảnh nhận được thường có chất lượng thấp hơn so với
ảnh ban đầu. Để giúp người ta có thể quan sát bức ảnh một cách chính xác hơn
thì đòi hỏi phải có biện pháp để nâng cao chất lượng ảnh. Qúa trình này được
gọi là tăng cường ảnh (image enhancement).
Tăng cường ảnh giúp loại bỏ các suy giảm (degradation) gây ra bởi hệ thống

ảnh. Ở đây ảnh có thể được coi như một chuỗi các tín hiệu một chiều được biểu
diễn bởi các hàm cơ sở. Có nhiều biến đổi được dùng như: biến đổi Fourier,
cosin, sin, karhumen loeve,…
* Phân tích ảnh (image analysis)
Sau các bước tiền xử lý ảnh, ảnh đã được tăng cường hay được khôi phục để
làm nổi các đặc trưng chủ yếu. Lúc này nó bắt đầu được đưa vào quá trình phân
tích. Quá trình phân tích ảnh gồm các công đoạn: trích chọn các đặc tính (feature
extraction), phân đoạn ảnh (segmentation) thành các phần tử. Tuỳ theo mục đích
của việc xử lý, các giai đoạn tiếp theo của quá trình phân tích ảnh có thể là nhận
dạng ảnh (phân thành các lớp có miêu tả) hay là giải thích và miêu tả ảnh.
12
Hình vẽ trang 115
Hình 2. 1 Các bước trong phân tích ảnh
Phân tích ảnh thường dựa trên việc phân tích các đặc trưng của ảnh: mật độ
xám, phân bố xác suất, phân bố không gian, biên ảnh…
2.2 Nhận dạng và phân loại ảnh.
* Nhận dạng ảnh (recognition of image partterns):
Khi một bức ảnh đã được phân đoạn, nhiệm vụ tiếp theo là nhận dạng vật thể
hoặc vùng đã được phân đoạn. Mỗi một vật thể là một thành phần ở trong ảnh và
các giá trị đo được là các đặc tính của thành phần đó. Một tập các vật thể cùng
có các đặc tính giống nhau được gọi là một ‘lớp vật thể’(pattern class).
Theo đó có thể định nghĩa, nhận dạng là quá trình phân loại các đối tượng
được biểu diễn theo một mô hình nào đó và gán cho chúng vào một lớp (gán cho
đối tượng một tên gọi) dựa theo những quy luật và các mẫu chuẩn.
Sự nhận dạng ảnh thường dựa trên nhiều tính chất của vật và với mỗi tính
chất đều có các kỹ thuật nhận dạng khác nhau. Ví dụ: Mỗi chữ cái trong tiếng
anh đều là một tập các đường thẳng đứng, ngang, chéo hoặc cong. Trong khi
chữ ‘A’ được mô tả bởi 2 đường chéo và một đường nằm ngang thì chữ ‘B’
được mô tả bởi một đường thẳng đứng với 2 đoạn cong. Một số tính chất của
các vật thể 2 hoặc 3 chiều là diện tích, thể tích, chu vi, bề mặt,… có thể đo được

các ngôn ngữ lập trình truyền thống như C, C++ hay Fortran thì MATLAB có
nhiều ưu điểm hơn do được tích hợp các hỗ trợ rất mạnh.
MATLAB được sử dụng trong nhiều lĩnh vực ứng dụng bao gồm: sử lý tín
hiệu và hình ảnh, truyền thông, thiết kế điều khiển, kiểm tra và đo lường, phân
tích và mô hình hóa các thông tin tài chính, tính toán trong hóa sinh… Ngoài ra,
MATLAB còn được tích hợp các hộp công cụ (mỗi hộp gồm hệ thống các hàm
có những chức năng đặc biệt của MATLAB) nhằm giải quyết các lớp vấn đề cụ
thể trong các lĩnh vực ứng dụng khác nhau.
MATLAB cung cấp nhiều đặc tính tiện lợi đối với việc xử lý và chia sẻ
công việc. Trong quá trình làm việc với MATLAB, các đoạn mã của nó có thể
được tích hợp với các ngôn ngữ và ứng dụng khác.
3.1.1 Các đặc điểm cơ bản của MATLAB:
- Là ngôn ngữ bậc cao dùng cho các tính toán kỹ thuật.
- Là môi trường phát triển để quản lý dữ liệu.
- Gồm nhiều công cụ tương tác cho việc khai thác và xử lý dữ liệu, thiết kế
và giải quyết vấn đề.
- Các hàm đồ thị đối với ảnh 2 hoặc 3 chiều cho phép hình ảnh hóa dữ liệu.
- Chứa các công cụ để xây dựng các giao diện đồ thị của người sử dụng.
15
- Gồm nhiều hàm chức năng dựa trên các giải thuật cơ sở nhằm tích hợp
MATAB với các ứng dụng và ngôn ngữ lập trình khác như: C,C++,
Fortran, Java, Microsoft excel…
3.1.2 Phát triển giải thuật và ứng dụng
MATLAB là một ngôn ngữ bậc cao được tích hợp các công cụ phát triển
giúp người sử dụng phát triển và phân tích các giải thuật và ứng dụng một cách
nhanh chóng.
3.1.3 Ngôn ngữ lập trình MATLAB:
Ngôn ngữ lập trình MATLAB hỗ trợ các phép toán đối với ma trận và vec-tơ
cơ sở cho các vấn đề kỹ thuật và khoa học.
Việc lập trình và phát triển giải thuật trong MATLAB có tốc độ nhanh hơn so

17
3.1.4 Phân tích và tiếp cận dữ liệu
Trong quá trình phân tích dữ liệu, MATLAB hỗ trợ hầu hết các công đoạn
như: thu nhận dữ liệu từ thiết bị ngoại vi, các phân tích số học, tiền xử lý, hình
ảnh hóa…
Phân tích dữ liệu:
Chương trình MATLAB cung cấp các công cụ tương tác cũng như các hàm
điều khiển theo dòng cho việc tính toán trong phân tích dữ liệu bao gồm:
- Các phép nội suy.
- Trích chọn tính chất.
- Chọn ngưỡng và lọc nhiễu.
- Tương quan, phân tích Fourier và lọc.
- Phát hiện các điểm đỉnh, đáy và điểm không.
- Thống kê cơ bản và chuẩn hóa các đường cong.
- Phân tích ma trận.
Tiếp cận dữ liệu
Việc tiếp cận dữ liệu từ các thư mục, ứng dụng, cơ sở dữ liệu và thiết bị
ngoại vi bởi MATLAB là hết sức dễ dàng. MATLAB hỗ trợ nhiều loại định
dạng file: ASCII, nhị phân, các file hình ảnh và âm thanh hay thậm chí các file
định dạng HDF.
Trong MATLAB có nhiều hộp công cụ (toolbox) hỗ trợ cho việc tiếp cận
dữ liệu như: hộp công cụ cơ sở dữ liệu (Database Toolbox), hộp công cụ thu
nhận dữ liệu (Data Acquisition Toolbox) hay hộp công cụ điều khiển thiết bị
(Instrument Control Toolbox).
18
3.1.5 Hình ảnh hóa dữ liệu
Tất cả các đặc tính về hình ảnh cần thiết cho hình ảnh hóa các dữ liệu khoa
học kỹ thuật đều được tích hợp trong MATLAB. Những đặc tính này bao gồm:
các hàm vẽ ảnh 2 và 3 chiều, các hàm vẽ thể tích 3 chiều, các công cụ tương tác
tạo ảnh, khả năng xuất kết quả dưới các dạng file ảnh thông thường.

thứ tự gồm các phần tử số thực hoặc phức). Ảnh trong Matlab cũng được lưu trữ
bởi các mảng phần tử với các giá trị lưu trữ có thể là mầu, cường độ… của ảnh.
Hầu hết các ảnh được MATLAB lưu trữ dưới dạng các mảng 2 chiều (ví
dụ: ma trận). Trong các mảng 2 chiều này, mỗi phần tử tương ứng với một pixel
và thường được biểu diễn bởi một điểm trên màn hình máy tính(ví dụ: Một bức
ảnh có 500 hàng và 700 cột gồm nhiều điểm mầu khác nhau được lưu trữ bởi
một ma trận có kích thước 500x700). Một số bức ảnh, như ảnh mầu đòi hỏi phải
20
được lưu trữ bởi mảng ba chiều. Trong đó, mặt phẳng thứ nhất trong mảng ba
chiều này biểu diễn cho cường độ đỏ (red) của phần tử, mặt phẳng thứ hai biểu
diễn cho cường độ màu xanh là cây (green) và mặt phẳng còn lại biểu diễn cho
cường độ màu xanh da trời (blue) của phần tử. Với việc lưu trữ các ảnh dưới
dạng mảng, việc xử lý ảnh với dữ liệu được lưu bởi dạng ma trận nào đều được
thực hiện rất thuận tiện.
3.2.2 Hộp công cụ xử lý ảnh (image processing toolbox):
Matlab có thể xử lý cũng như lưu trữ các bức ảnh dưới nhiều định dạng
khác nhau: BMP, HDF, JPEG, TIFF… Dù vậy tất cả các định dạng này đều
được quy chuẩn về 4 dạng cơ bản: nhị phân (Binary), được gán chỉ số (Indexed),
mức xám (Grayscale), RGB (RGB hay truecolor). Các định dạng ảnh này sẽ qui
định cách mà Matlab biên dịch các phần tử của ma trận dữ liệu (VD: các giá trị
cường độ phần tử).
* Ảnh dạng mức xám (gray scale image):
Ảnh loại này được biểu diễn bởi một ma trận mà mọi phần tử của nó đều
biểu diễn một giá trị sáng/tối của điểm ảnh ở vị trí tương ứng. Có 2 cách để biểu
diễn giá trị thể hiện mức độ ‘xám’ của một pixel: dạng double và dạng uint8.
Dạng double gán cho mỗi pixel một giá trị động thuộc khoảng (0,1): giá trị 0
ứng với màu đen còn 1 ứng với màu trắng. Dạng uint8 gán cho mỗi pixel một
giá trị từ 0 đến 255 thể hiện độ sáng (brightness): giá trị 0 tương ứng với màu
đen còn 255 ứng với màu trắng. Mỗi bức ảnh lưu trữ dưới dạng uint8 chỉ chiếm
1/8 không gian nhớ so với lưu trữ dưới dạng double. Mặc dù vậy, đôi khi thuật

Trong ví dụ này, imread sẽ nhận ra định dạng file để sử dụng từ tên file. Ta cũng
có thể chỉ ra định dạng file như một tham số trong hàm imread. Matlab trợ giúp
rất nhiều định dạng đồ hoạ thông dụng chẳng hạn: BMP, GIF, JPEG, PNG,
TIFF … Để biết thêm các kiểu gọi hàm và tham số truyền vào, xem trợ giúp
online của Matlab.
22
Đọc nhiều ảnh từ một file đồ hoạ
- Matlab trợ giúp một số định dạng file đồ hoạ chẳng hạn như: HDF và TIFF,
chúng chứa nhiều ảnh. Theo mặc định, imread chỉ trợ giúp ảnh đầu tiên trong
file. Để nhập thêm các ảnh từ file, sử dụng cú pháp được trợ giúp bởi định dạng
file. Chẳng hạn khi được sử dụng với TIFF, ta có thể sử dụng một giá trị chỉ số
với imread để chỉ ra ảnh mà ta muốn nhập vào.
- Khi file chứa nhiều ảnh theo một số kiểu nhất định chẳng hạn theo thứ tự
thời gian, ta có thể lưu ảnh trong Matlab dưới dạng mảng 4 chiều. Tất cả các ảnh
phải có cùng kích thước.
Ghi một ảnh đồ hoạ
- Hàm imwrite sẽ ghi một ảnh tới một file đồ hoạ dưới một trong các định
dạng được trợ giúp. Cấu trúc cơ bản nhất của imwrite sẽ yêu cầu một biến ảnh
và tên file. Nếu ta gộp một phần mở rộng trong tên file, Matlab sẽ nhận ra định
dạng mong muốn từ nó.
Chỉ ra định dạng phụ - Tham số đặc biệt
- Khi sử dụng imwrite với một số định dạng đồ hoạ, ta có thể chỉ ra các tham số
phụ. Chẳng hạn, với định dạng PNG ta có thể chỉ ra độ sâu bit như một tham số
phụ.
- Để biết thêm các cấu trúc khác của hàm xem phần trợ giúp trực tuyến của
Matlab.
Đọc và ghi ảnh nhị phân theo định dạng 1 bit
- Trong một số định dạng file, một ảnh nhị phân có thể được lưu trong một
định dạng 1 bit. Nếu định dạng file trợ giúp nó, Matlab ghi ảnh nhị phân như
ảnh 1 bit theo mặc định. Khi ta đọc một ảnh nhị phân với định dạng 1 bit,

24
- Chiều cao ảnh tính theo pixel.
- Số lượng bít trên một pixel.
- Kiểu ảnh: RGB, chỉ số …
3.2.3.2 Hiển thị ảnh
Dùng hàm imview
- Để hiển thị một ảnh sử dụng hàm imview, dùng hàm imview, chỉ rõ ảnh mà ta
muốn hiển thị. Ta có thể sử dụng imview để hiển thị một ảnh mà đã được nhập
vào trong không gian làm việc của Matlab.
moonfig = imread('moon.tif');
imview(moonfig);
Ta cũng có thể chỉ định tên của file ảnh như trong ví dụ sau:
imview('moon.tif');
- File ảnh phải có mặt trong thư mục hiện tại hoặc trong đường dẫn của
Matlab. Cấu trúc này có thể hữu ích cho việc quét qua nhiều ảnh. Tuy nhiên, lưu
ý, khi sử dụng cấu trúc này, dữ liệu ảnh không được lưu trong không gian làm
việc của Matlab.
- Nếu ta gọi hàm imview mà không chỉ ra mất kì tham số nào, nó sẽ hiển thị
một hộp chọn file cho phép ta chỉ ra tên file muốn hiển thị.
Xem nhiều ảnh
- Nếu ta chỉ ra một file mà chứa nhiều ảnh, hàm imview chỉ hiển thị ảnh đầu
tiên trong file đó. Để xem tất cả các ảnh trong file, sử dụng hàm imread để nhập
mỗi ảnh vào trong không gian làm việc của Matlab sau đó gọi hàm imview
nhiều lần để hiển thị mỗi ảnh riêng biệt.
Dùng hàm imshow
25


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status