Tải bản đầy đủ (.doc) (26 trang)

ĐỒ ÁN CƠ SỞ 5ĐỀ TÀI:Xây dựng thuật toán xử lý pixel trong chương trình xử lý ảnh

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 (4.59 MB, 26 trang )

ĐẠI HỌC ĐÀ NẴNG

KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG

ĐỒ ÁN CƠ SỞ 5
ĐỀ TÀI:……………………………………….. ……......................

Xây dựng thuật tốn xử lý pixel trong chương trình xử lý ảnh
...........................................................................................................

Sinh viên thực hiện : HỒ NHẬT HUY
Giảng viên hướng dẫn : ThS. NGUYỄN THANH BÌNH
Lớp
: 17IT3

Đà nẵng, tháng 08 năm 2020



ĐẠI HỌC ĐÀ NẴNG

KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG

ĐỒ ÁN CƠ SỞ 5
Xây dựng thuật tốn xử lý pixel trong chương
trình xử lý ảnh
………………………………………………………………………
...........................................................................................................

Đà Nẵng, tháng 08 năm 2020




MỞ ĐẦU

Trong Cách mạng Công Nghiệp 4.0, những yếu tố mà các nước đang phát triển
(Việt Nam, Lào, Indonesia….) tự hào là ưu thế như lực lượng lao động trẻ, dồi
dào sẽ khơng cịn là thế mạnh hơn nữa cịn có thể sớm bị thay thế bởi Trí tuệ
nhân tạo (AI). Trong tương lai, lực lượng lao động trong mọi lĩnh vực đều có thể
mất việc làm bởi cơng nghệ robot có thể tác động tới tất cả các ngành nghề từ
dệt may, dịch vụ, giải trí đến y tế, giao thơng, giáo dục...Chính vì vậy, đây là thời
kỳ thuận lợi để sinh viên học Công nghệ thông tin: Lập trình, Quản trị mạng,
Bảo mật,.. thể hiện kiến thức, kỹ năng và bản lĩnh trong thời đại mới – thời đại
4.0.
“Nhu cầu tuyển dụng nhân lực ngành CNTT cao nhất trong lịch sử" là nhận định
của VietnamWorks (Website tuyển dụng lớn nhất Việt Nam). Theo dự đoán của
Top Dev, năm 2020, Việt Nam sẽ cần 1.000.000 nhân lực ngành CNTT. Hơn
90% các nhà tuyển dụng được khảo sát cũng chia sẻ, họ đang đấu tranh để tuyển
dụng và giữ chân các nhân viên IT giỏi.
Có thể thấy, ngành CNTT đang là “miền đất hứa” với cơ hội việc làm rộng mở
và mức lương hấp dẫn (khởi điểm 400$ - theo Vietnamworks). Chính vì vậy học
CNTT trong thời điểm hiện tại chính là lợi thế.
Ngày nay, với sự phát triển nhanh chóng của các khu đơ thị và các khu du lịch,
sự quản lý con người rất khó. Nhưng với nhận dạng hình ảnh thì nó có thể giúp
các hệ thống an ninh xác định một người hoặc một phương tiện nào đó, hay hỡ
trợ cảnh sát tìm tội phạm… Vì vậy em chọn đề tài “ Xây dựng thuật toán xử lý
ảnh” với mục đích nghiên cứu , tìm hiểu về cách thực hoạt động của một số thuật
toán về nhận diện vật thể trong ảnh.

1|Page



LỜI CẢM ƠN
Trong thời gian làm đồ án, em đã nhận được nhiều sự giúp đỡ, đóng góp ý kiến và chỉ
bảo nhiệt tình của thầy cơ và bạn bè.
Em cũng xin chân thành cảm ơn các thầy cô trong khoa Công Nghệ Thông Tin Và
Truyền Thông, những người đã dạy dỗ và trang bị cho em khiến thức để hoàn thành đề tài
đồ án này.
Em xin cảm ơn giảng viên hướng dẫn Ths. Nguyễn Văn Bình đã giúp đỡ em với sự
nhiệt huyết của mình, cũng như chỉ bảo những thiếu sót của em.

2|Page


NHẬN XÉT
(Của giảng viên hướng dẫn)
(Bold, size 16, xếp sau trang nhận xét của cơ quan thực tập)

size 13.......................................................................................................................
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
………………………………………………………

3|Page


MỤC LỤC
Trang

MỞ ĐẦU..............................................................................................................1
Chương 1 Giới thiệu...........................................................................................6
1.1 Tổng quan................................................................................................6
1.2 Phương pháp, kết quả...............................................................................6
1.3 Cấu trúc đồ án..........................................................................................6
Chương 2 Nghiên cứu tổng quan........................................................................7
2.1 Trí tuệ nhân tạo là gì ?.................................................................................7
2.2 Tìm hiểu về nhận dạng hình ảnh..................................................................7
2.2.1 Nhận dạng vật thể có trong ảnh là gì ?..................................................7
2.2.2 Nguyên tắc làm việc của các mơ hình nhận dạng hình ảnh...................8
2.2.3 Các thuật tốn sữ dụng trong nhận dạng hình ảnh:...............................9
2.2.4. Cơng dụng của nhận dạng hình ảnh:..................................................14
Chương 3 Triển khai xây dựng........................................................................15
1.1 Xây dựng tổng quan:..............................................................................15
1.2 Xây dựng chi tiết :..................................................................................15
1.2.1 Tiến hành mở phần mềm MATLAB:...............................................15
1.2.2 Chuyển đổi ảnh màu thành ảnh xám................................................15
1.2.3 Tách để lấy các vật thể có trong ảnh :..............................................16
1.2.4 In ra màn hình kết quả:....................................................................16
1.2.5 Mã nguồn đầy đủ:............................................................................17
Chương 4 Kết luận và hướng phát triển...........................................................21
4.1 Kết luận:....................................................................................................21
4.2 Hướng phát triển:.......................................................................................21
PHỤ LỤC.............................................................................................................23
DANH MỤC TÀI LIỆU THAM KHẢO..............................................................23

4|Page


DANH MỤC HÌNH

Trang
Hình 1 Hình ảnh Ai................................................................................................7
Hình 2 Nhận dạng vật thể......................................................................................8
Hình 3 Sản xuất oto.............................................................................................14
Hình 4 Hệ thống an tồn trên xe oto....................................................................14
Hình 5 Giao diện MATLAB................................................................................15
Hình 6 Ảnh nhiễu................................................................................................16
Hình 7 Ảnh nhận dạng.........................................................................................16
Hình 8 Giao diện chương trình xử lý ảnh............................................................17

5|Page


Chương 1

Giới thiệu

1.1 Tổng quan
Với sự phát triển nhanh chóng của ngành công nghệ thông tin và khả năng chụp
ảnh lấy nét cao của các thiết bị như camera ngày càng tốt, kể cả trong điều kiện
thiếu ánh sáng.Thì việc áp dụng các hệ thống xử lý ảnh vào các hệ thống nhận
dạng có tỉ lệ sai lệch rất nhỏ. Chẳng hạn như các quốc gia Mỹ, Australia, Áo, Bỉ,
Pháp, Anh, Dubai,…
Áp dụng kiến thức đã học để phát triển một chương trình như trên là cần thiết.
Bởi vì, điều này cho phép học thêm các công nghệ mới, rèn luyện kỹ năng tư duy
cũng như kỹ năng lập trình, đồng thời nâng cao kinh nghiệm và học thêm các kỹ
năng quan trọng khác. Chính vì thế, em chọn đề tài “Xây dựng thuật tốn xử lý
pixel trong chương trình xử lý ảnh”.
Nhận dạng ảnh giúp cho người quản lý cũng như người sữ dụng có thể đọc được
những vật thể có trong ảnh, từ đó phục vụ nhiều nhu cầu khác nhau cho đặc thù

từng công việc hoặc ngành nghề.

1.2 Phương pháp, kết quả
Phương pháp xây dựng chương trình bao gồm các bước sau:
- Tìm hiểu về cách thức hoạt động của các bộ lọc ảnh
- Nghiên cứu các ứng dụng về xử lý ảnh trong thực tế
- Ứng dụng thư viện MATLAB để xây dựng chương trình

1.3 Cấu trúc đồ án
Phần tiếp theo của báo cáo bao gồm:
Chương 2: Nghiên cứu tổng quan
Trong chương này, em sẽ giới thiệu tổng quát về Trí tuệ nhân tạo(AI),
nhận dạng vật thể trong ảnh, lọc số học, lọc hình học, lọc trung vị, lọc harmonic,
phát hiện biên: Sobel, Prewitt, Robert bao gồm:
- Trí tuệ nhân tạo(AI) là gì ?
- Tìm hiểu về nhận dạng vật thể có trong ảnh ?
- Lọc số học là gì ?
- Lọc hình học là gì ?
- Lọc trung vị là gì ?
- Lọc harmonic là gì ?
- Phát hiện biên Sobel là gì ?
- Phát hiện biên Prewitt là gì ?
- Phát hiện biên Robert là gì ?
- Tìm hiểu về MATLAB
Chương 3: Triển khai xây dựng
Ở phần này em sẽ trình bày mơ hình tổng quan của đề tài và cách thức
triển khai nó.
Chương 4: Kết luận và hướng phát triển.

6|Page



Trong chương này, em chia thành 2 phần. Phần 1 kết luận sẽ giới thiệu về
những gì đã đạt được và hạn chế. Phần 2 hướng phát triển đưa ra hướng đi tiếp
theo của ứng dụng.

Chương 2

Nghiên cứu tổng quan

2.1 Trí tuệ nhân tạo là gì ?

Hình 1 Hình ảnh Ai
Trí tuệ nhân tạo (AI - Artificial Intelligence) là trí thông minh của máy do con
người tạo ra. Ngay từ khi chiếc máy tính điện tử đầu tiên ra đời, các nhà khoa học
máy tính đã hướng đến phát hiển hệ thống máy tính (gồm cả phần cứng và phần
mềm) sao cho nó có khả năng thơng minh như lồi người.
Mặc dù cho đến nay, theo quan niệm của người viết, ước mơ này vẫn còn xa mới
thành hiện thực, tuy vậy những thành tựu đạt được cũng không hề nhỏ: chúng ta
đã làm được các hệ thống (phần mềm chơi cờ vua chạy trên siêu máy tinh
GeneBlue) có thể thắng được vua cờ thế giới; chúng ta đã làm được các phần
mềm có thể chứng minh được các bài tốn hình học; v.v. Hay nói cách khác,
trong một số lĩnh vực, máy tính có thể thực hiện tốt hơn hoặc tương đương con
người (tất nhiên không phải tất cả các lĩnh vực).

2.2 Tìm hiểu về nhận dạng hình ảnh
2.2.1 Nhận dạng vật thể có trong ảnh là gì ?
Nhận dạng hình ảnh ngày nay có thể so sánh với nhận thức thị giác của con
người. Nó đã đi vào cuộc sống hàng ngày và phục vụ các nhu cầu khác nhau.
Facebook và các nền tảng truyền thông xã hội khác sử dụng cơng nghệ này để

tăng cường tìm kiếm hình ảnh và hỡ trợ người dùng khiếm thị.

7|Page


Các doanh nghiệp bán lẻ sử dụng nhận dạng hình ảnh để quét cơ sở dữ liệu lớn
để đáp ứng tốt hơn nhu cầu của khách hàng và cải thiện cả trải nghiệm khách
hàng tại cửa hàng và trực tuyến.
Trong chăm sóc sức khỏe, hệ thống nhận dạng và xử lý hình ảnh y tế giúp các
chun gia dự đốn rủi ro sức khỏe, phát hiện bệnh sớm hơn và cung cấp nhiều
dịch vụ tập trung vào bệnh nhân hơn. Danh sách này có thể đi và về.
Nhận dạng riêng các vật thể có trong hình rơi vào nhóm các nhiệm vụ thị giác
máy tính cũng bao gồm tìm kiếm trực quan, phát hiện đối tượng, phân đoạn ngữ
nghĩa và hơn thế nữa.
Bản chất của nhận dạng các vật thể có trong hình là trong việc cung cấp một
thuật tốn có thể lấy một hình ảnh đầu vào thơ và sau đó nhận ra những gì trên
hình ảnh này và hiển thị rõ từng vật thể lên.
Cần lưu ý rằng máy móc khơng thể nhìn thấy và cảm nhận hình ảnh như chúng ta
làm. Đối với họ, đó là tất cả về toán học, và bất kỳ đối tượng nào sẽ trơng như thế
này:

Hình 2 Nhận dạng vật thể
2.2.2 Ngun tắc làm việc của các mơ hình nhận dạng hình ảnh
Dựa vào một ma trận 3x3 cho trước, mơ hình sẽ tiến hành lấy từng pixel tương
ứng có trong hình ảnh đọc được, sau đó nhân từng phần tử tương ứng các vị trí
với ma trận đã được cho trước từ đó cho ra những kết quả tương ứng và cuối
cùng là xuất ra một ảnh tương ứng với kết quả đã được xử lý.
Vì vậy, các bước chính trong nhận dạng hình ảnh đó là thu thập và sắp xếp số
pixel tương ứng.
8|Page



2.2.3 Các thuật tốn sữ dụng trong nhận dạng hình ảnh:
Một số thuật toán được sữ dụng trong nhận dạng hình ảnh bằng pixel là:
- Lọc hình học (Geometrix filter):
o Bộ lọc trung bình học là một quá trình lọc hình ảnh có nghĩa là làm mịn và
giảm nhiễu của hình ảnh. Nó dựa trên ý nghĩa hình học tốn học. Hình ảnh
đầu ra G(x,y) của trung bình hình học được cho bởi:

Trong đó S(x,y) là ảnh gốc và mặt nạ lọc là m x n pixel.
Mỡi pixel của hình ảnh đầu ra tại điểm (x,y) được cho bởi sản phẩm của
các pixel trong mặt nạ trung bình hình học được nâng lên với cơng suất 1 /
mn. Ví dụ: sử dụng kích thước mặt nạ 3 nhân 3, pixel (x, y) trong hình ảnh
đầu ra sẽ là sản phẩm của S (x, y) và tất cả 8 pixel xung quanh của nó
được nâng lên mức 1/9. Sử dụng hình ảnh gốc sau với pixel (x, y) ở trung
tâm:

- Lọc Trung vị (Median filter):
oBộ lọc trung vị là một kỹ thuật lọc kỹ thuật số phi tuyến tính , thường
được sử dụng để loại bỏ nhiễu khỏi hình ảnh hoặc tín hiệu. Giảm
nhiễu như vậy là một bước xử lý trước điển hình để cải thiện kết quả xử
lý sau này (ví dụ: phát hiện cạnh trên ảnh). Lọc trung vị được sử dụng rất
rộng rãi trong xử lý ảnh kỹ thuật số bởi vì, trong một số điều kiện nhất
định, nó giữ được các cạnh trong khi loại bỏ nhiễu (nhưng xem thảo luận
bên dưới), cũng có các ứng dụng trong xử lý tín hiệu .
oÝ tưởng chính của bộ lọc trung vị là chạy qua mục nhập tín hiệu bằng
cách nhập, thay thế từng mục bằng trung vị của các mục lân cận. Mẫu
của hàng xóm được gọi là "cửa sổ", trượt, nhập theo mục, trên toàn bộ tín
hiệu. Đối với tín hiệu một chiều, cửa sổ rõ ràng nhất chỉ là một vài mục
nhập trước và sau đầu tiên, trong khi đối với dữ liệu hai chiều (hoặc

chiều cao hơn), cửa sổ phải bao gồm tất cả các mục trong bán kính
hoặc vùng elip nhất định (nghĩa là bộ lọc trung vị không phải là bộ lọc
tách rời ).

9|Page


Chương 2

Lọc Harmonic:
oHàm này sẽ lọc ảnh bằng phương pháp điều hịa trung bình phi
tuyến. Chức năng này chỉ hoạt động đối với hình ảnh đơn sắc, 8 bit mỡi
pixel và 24 bit cho mỡi pixel. Bộ lọc trung bình hài là thành viên của một
bộ các bộ lọc trung bình phi tuyến tốt hơn trong việc loại bỏ nhiễu loại
Gaussian và bảo tồn các tính năng cạnh so với bộ lọc trung bình số
học. Bộ lọc trung bình hài rất tốt trong việc loại bỏ các ngoại lệ tích
cực. Định nghĩa của bộ lọc trung bình hài là:

trong đó tọa độ (x + i, y + j) được xác định trên ảnh A và tọa độ (i, j) được
xác định trên mặt nạ vng kích thước N x N.

Hình ảnh 180 x 210 pixel ban đầu và hình ảnh được lọc trung bình hài hịa
sử dụng mặt nạ vng 2 x 2 pixel.
- Lọc số học (Arithmetic filter):
oÁp dụng bộ lọc trung bình số học cho hình ảnh.
oMột hoạt động của bộ lọc trung bình số học trên một hình ảnh sẽ loại bỏ
nhiễu đi ngắn như nhiễu đồng nhất và loại Gaussian khỏi hình ảnh với
chi phí làm mờ hình ảnh. Bộ lọc trung bình số học được định nghĩa là
trung bình của tất cả các pixel trong một vùng cục bộ của hình ảnh.
oTrung bình số học được định nghĩa là:


oCác pixel được bao gồm trong hoạt động tính trung bình được chỉ định bởi
mặt nạ. Mặt nạ lọc càng lớn càng trở nên chiếm ưu thế và độ chi tiết tần
số không gian thấp hơn vẫn còn trong ảnh.
10 | P a g e


Chương 3
Phát hiện Biên Sobel:
oMột biến thể khác của Prewitt mask sử dụng tăng trọng số của điểm trung
tâm lên 2 là Sobel mask. Giá trị 2 được sử dụng để làm mượt ảnh và
cũng để đánh giá điểm trung tâm quan trọng hơn các điểm khác.

oVà đây là kết quả khi sữ dụng sobel mask với bức ảnh đầu vào:

- Phát hiện biên Prewitt:
o Prewitt mask được định nghĩa như sau:

Ta có 1 ví dụ sữ dụng Prewitt mask:

11 | P a g e


- Phát hiện biên Robert:
oRobert mask tính gradient theo đường chéo giữa 2 điểm. Kernel đạo hàm
theo x và y như sau:

3.1
Kết quả cùng với một ảnh gốc ở ví dụ pixel difference masks với
Robert mask như sau:


oTa thấy kết quả sẽ đậm hơn theo đường chéo mà không phải ngang hay dọc
như ở kernel trước, Kernel kích thước 2 x 2 thường khó để cài đặt bởi
tính tốn của chính khơng rõ ràng. Do đó, cửa sổ kích thước 3 x 3
thường được sử dụng.

12 | P a g e


Chương 4

Tìm hiểu về MATLAB ?

o MATLAB là ngơn ngữ bậc cao, tích hợp khả năng tính tốn, hình ảnh hóa, lập
trình trong một mơi trường dễ sử dụng, ở đó vấn đề và giải pháp được trình
bày trong cùng một lời chú thích tốn học. Thường MATLAB được dùng cho:






Tốn và điện tốn
Phát triển thuật tốn
Dựng mơ hình, giả lập, tạo ngun mẫu
Phân tích, khám phám hình ảnh hóa dữ liệu
Đồ họa khoa học và kỹ thuật

o Phát triển ứng dụng, có cả xây dựng giao diện đồ họa người dùng Graphic
User Interface

o MATLAB là hệ thống tương tác, trong đó các phần tử dữ liệu xếp dưới dạng
mảng, không cần chiều hướng, cho phép giải quyết nhiều vấn đề tính tốn, đặc
biệt là với ma trận và véc-tơ, trong thời gian nhanh chóng, chỉ bằng một phần
so với viết phần mềm bằng các ngôn ngữ không tương tác vô hướng như C hay
Fortran.
o MATLAB là viết tắt của Matrix Laboratory (phịng thí nghiệm ma trận). Ban
đầu MATLAB được viết để dễ dàng truy cập phần mềm ma trận do các dự án
của LINPACK và EISPACK phát triển. Họ cũng đã mang tới những tính năng
mới nhất cho phần mềm trong thế giới điện toán ma trận.
o Qua nhiều năm, MATLAB đã phát triển và phục vụ nhiều người dùng. Trong
mơi trường đào tạo, nó là cơng cụ hướng dẫn chuẩn mực cho cả các khóa học
dẫn nhập và chuyên sâu trong toán học, kỹ thuật và khoa học. Trong ngành,
MATLAB cũng là công cụ được nhiều nghiên cứu, phân tích, phát triển lựa
chọn.
o MATLAB cịn có một bộ các giải pháp hướng tới ứng dụng có tên toolbox.
Toolbox rất quan trọng với hầu hết người dùng MATLAB bởi nó cho phép học
và áp dụng cơng nghệ chun mơn hóa. Toolbox là bộ sưu tập các hàm
MATLAB (M-file) mở rộng môi trường MATLAB để giải quyết từng lớp vấn
đề. Các lĩnh vực mà toolbox có thể làm việc gồm xử lý tín hiệu, hệ thống kiểm
sốt, mạng thần kinh, logic mờ, phép biến đổi wavelet, mô phỏng…

13 | P a g e


2.2.4. Cơng dụng của nhận dạng hình ảnh:
Sản xuất: Kiểm tra dây chuyền sản xuất, đánh giá các điểm quan trọng một
cách thường xuyên trong cơ sở. Giám sát chất lượng của các sản phẩm cuối cùng
để giảm các khuyết tật. Đánh giá tình trạng của cơng nhân có thể giúp các ngành
sản xuất kiểm sốt hồn tồn các hoạt động khác nhau trong các hệ thống.


Hình 3 Sản xuất oto
Xe tự hành: Xe tự hành có nhận dạng hình ảnh có thể xác định các hoạt động
trên đường và thực hiện các hành động cần thiết. Robot mini có thể giúp các
ngành công nghiệp hậu cần định vị và chuyển các vật thể từ nơi này sang nơi
khác. Nó cũng duy trì cơ sở dữ liệu về lịch sử di chuyển sản phẩm để ngăn sản
phẩm bị thất lạc hoặc đánh cắp.

Hình 4 Hệ thống an tồn trên xe oto

14 | P a g e


Chương 3

Triển khai xây dựng

4.1 Xây dựng tổng quan:
Các bước tổng quan:
o Chuyển ảnh màu thành ảnh xám.
o Chuyển ảnh xám thành ảnh nhiễu.
o Dựa vào các thuật toán cụ thể để xác định từng vật thể trong ảnh, lọc biên đối
với các hình ảnh chứa nội dung cần xác định.
o Xuất ra ảnh đã được xử lý và lưu kết quả vào thiết bị.

4.2 Xây dựng chi tiết :
4.2.1 Tiến hành mở phần mềm MATLAB:

Hình 5 Giao diện MATLAB
Để chạy chương trình, chọn Run là dấu biểu tượng hình tam giác.
4.2.2 Chuyển đổi ảnh màu thành ảnh xám

o Đầu tiên convert color sang gray color.
o Tiếp theo giảm nhiễu bằng Gaussian(Tuỳ thuộc vào image mà ta xử lý khác
nhau).
o Tiếp theo dùng threshold chuyển vè ảnh binary.

15 | P a g e


Hình 6 Ảnh nhiễu
4.2.3 Tách để lấy các vật thể có trong ảnh :

Hình 7 Ảnh nhận dạng
4.2.4 In ra màn hình kết quả:

16 | P a g e


Hình 8 Giao diện chương trình xử lý ảnh
4.2.5 Mã nguồn đầy đủ:

17 | P a g e


18 | P a g e


19 | P a g e


20 | P a g e



Chương 4

Kết luận và hướng phát triển

4.1 Kết luận:
Nhìn chung, sau khi kết thúc đề tài em đã làm được những điều sau đây:
o Tìm hiểu về MATLAB và cách sử dụng các thư viện được tích hợp
sẵn trong MATLAB.
o Xây dựng được các thuật toán xử lý ảnh cơ bản
o Bước đầu nhận diện tốt các vật thể có trong ảnh.
Bên cạnh đó, cịn một số hạn chế như sau:
o Tốc độ xử lý còn chậm.
o Nhiều ảnh kết quả còn chưa rõ ràng.
4.2 Hướng phát triển:
Hướng phát triển mà em hướng đến đó là :
o Tối ưu hố mã nguồn tốt hơn để tốc độ xử lý cải thiện hơn.
o Nhiều ảnh chưa xử lý tốt sẽ được xử lý hoàn thiện hơn nữa.

21 | P a g e


×