1. Trang chủ
  2. » Thể loại khác

ĐỒ Á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

26 29 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

Định dạng
Số trang 26
Dung lượng 4,6 MB

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

Nội dung

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 t

Trang 1

ĐẠ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 toá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

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

Trang 3

ĐẠ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 toán xử lý pixel trong chương

trình xử lý ảnh

………

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

Trang 5

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 đấutranh để 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

Trang 6

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

Trang 7

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

………

………

………

………

………

………

Trang 8

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 toá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

Trang 9

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 toà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

Trang 10

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 toá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ì ?

- 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ứctriển khai nó

Chương 4: Kết luận và hướng phát triển.

Trang 11

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ếptheo 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 conngườ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ọcmá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ầnmềm) sao cho nó có khả năng thông minh như loà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ớithà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 tinhGeneBlue) có thể thắng được vua cờ thế giới; chúng ta đã làm được các phầnmềm có thể chứng minh được các bài toá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 conngườ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 conngườ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ị

Trang 12

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áchhà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ácchuyên gia dự đoán rủi ro sức khỏe, phát hiện bệnh sớm hơn và cung cấp nhiềudị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ácmá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ộtthuật toán có thể lấy một hình ảnh đầu vào thô và sau đó nhận ra những gì trênhì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 talà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 Nguyên 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

Trang 13

2.2.3 Các thuật toá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 toá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ínhiệ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 )

Trang 14

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 toà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ạ vuông 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

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ởimặ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

Trang 15

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:

oPrewitt mask được định nghĩa như sau:

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

Trang 16

- 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ọcnhư ở kernel trước, Kernel kích thước 2 x 2 thường khó để cài đặt bởi tính toá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

Trang 17

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 toá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 toán học Thường MATLAB được dùng cho:

 Toán và điện toán

 Phát triển thuật toán

 Dựng mô hình, giả lập, tạo nguyên 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 toá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 hayFortran

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ệ chuyên 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 soát, mạng thần kinh, logic mờ, phép biến đổi wavelet, mô phỏng…

Trang 18

2.2.4 Công dụng của nhận dạng hình ảnh:

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ànhsản xuất kiểm soát hoàn toàn các hoạt động khác nhau trong các hệ thống

Hình 3 Sản xuất oto

trên đường và thực hiện các hành động cần thiết Robot mini có thể giúp cácngà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ơikhá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ảnphẩm bị thất lạc hoặc đánh cắp

Hình 4 Hệ thống an toàn trên xe oto

Trang 19

Chương 3 Triển khai xây dựng

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

Trang 20

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ả:

Trang 21

Hình 8 Giao diện chương trình xử lý ảnh

4.2.5 Mã nguồn đầy đủ:

Trang 25

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 hoá 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.

Ngày đăng: 20/04/2021, 22:20

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w