1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phát hiện lỗi cắm linh kiện trên mạch điện tử sử dụng kit raspberry pi 3

73 524 7

Đ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 73
Dung lượng 3,86 MB

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

Nội dung

Đề tài này giúp ta có cái nhìn tổng quan về xử lý ảnh, cách phát hiện lỗi cắm linh kiện trên mạch điện tử thông qua thuật toán template matching. Mô tả chi tiết các phương pháp trong kỹ thuật template matching. Phát hiện chính xác các lỗi thiếu linh kiện và nghi ngờ lỗi linh kiện khác màu, ngược hướng.

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH

KHOA ĐIỆN ĐIỆN TỬ

BỘ MÔN KỸ THUẬT MÁY TÍNH - VIỄN THÔNG

ĐỒ ÁN TỐT NGHIỆP

PHÁT HIỆN LỖI CẮM LINH KIỆN TRÊN MẠCH ĐIỆN TỬ SỬ DỤNG KIT RASPBERRY PI 3

NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG

Sinh viên: NGUYỄN PHƯỚC DUY

MSSV: 14141040

NGUYỄN QUỐC HUY

MSSV: 14141132

TP HỒ CHÍ MINH – 12/2018

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH

KHOA ĐIỆN ĐIỆN TỬ

BỘ MÔN KỸ THUẬT MÁY TÍNH - VIỄN THÔNG

ĐỒ ÁN TỐT NGHIỆP

PHÁT HIỆN LỖI CẮM LINH KIỆN TRÊN MẠCH ĐIỆN TỬ SỬ DỤNG KIT RASPBERRY PI 3

NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG

Sinh viên: NGUYỄN PHƯỚC DUY

Trang 4

LỜI CẢM ƠN

Qua 4 năm học tập tại trường ĐH Sư phạm Kỹ Thuật TPHCM, nhóm thực hiện luôn được quý thầy cô truyền đạt những kiến thức quý báu không chỉ về lĩnh vực chuyên ngành mà còn là những kiến thức về cuộc sống, về kinh nghiệm học tập, nghiên cứu, được rèn luyện kỹ năng, phong cách làm việc Qua đó nhóm thực hiện tự tin hơn, bản lĩnh hơn để vững bước trên con đường sự nghiệp tương lai

Đồ án tốt nghiệp là cơ hội để nhóm thực hiện tổng hợp, vận dụng những kiến thức, kỹ năng để nghiên cứu và trình bày một vấn đề khoa học Để hoàn thành đồ án này, nhóm thực hiện được nhận được sự giúp đỡ tận tình từ quý thầy cô, sự động viên ủng hộ của gia đình và bạn bè

Nhóm thực hiện xin gửi lời cảm ơn chân thành đến quý thầy cô đã hết mình trong việc truyền đạt kiến thức để nhóm thực hiện có thể tự tin thực hiện đồ án tốt nghiệp này Đặc biệt hơn nhóm thực hiện xin gửi lời tri ân sâu sắc đến Ths Nguyễn Văn Phúc, thầy đã định hướng, giúp đỡ tận tình, giải đáp những vướng mắc trong quá trình thực hiện đồ án, giúp nhóm thực hiện có hướng đi đúng và hoàn thành đồ án này

Cuối cùng xin gửi lời cảm ơn gia đình, các bạn sinh viên trong lớp, các anh chị khóa trước lời cảm ơn sâu sắc vì những đóng góp quý báu và sự động viên, giúp đỡ nhiệt tình trong suốt thời gian học tập, cũng như quá trình nghiên cứu, hoàn thành đồ

án này

Mặc dù đã cố gắng để thực hiện đề tài một cách hoàn chỉnh nhất nhưng không thể tránh khỏi những thiếu sót nhất định mà bản thân nhóm thực hiện chưa nhìn nhận được Nhóm thực hiện rất mong nhận được sự góp ý của quý Thầy, Cô giáo và các bạn

để đồ án được hoàn thiện hơn

Nhóm thực hiện

Nguyễn Phước Duy Nguyễn Quốc Huy

Trang 5

TÓM TẮT

Ngày nay ngành công nghiệp thiết kế và sản xuất mạch điện tử đã và đang phát triển rất mạnh mẽ, trong quá trình sản xuất dù công nghệ ngày nay rất hiện đại và gần như 80% công đoạn đều được máy móc thực hiện, tuy nhiên trên thực tế vẫn có những linh kiện có thiết kế đặc biệt, hoặc kích thước lớn cần phải nhờ thao tác của con người

để cắm lên PCB, do vậy xác suất lỗi vẫn có thể xảy ra Điển hình những lỗi như bị thiếu linh kiện, cắm linh kiện bị ngược hoặc bị lệch hướng, cắm sai linh kiện Do vậy sau công đoạn cắm liên kiện cần có hệ thống kiểm tra để đảm bảo không có sai sót xảy

ra Một trong những phương pháp hiệu quả cho việc phát hiện lỗi này là ứng dụng xử

lý ảnh so sánh đối chiếu giữa ảnh thực tế chụp được với ảnh mẫu đã được kiểm tra tiêu chuẩn trước đó

Nhóm thực hiện đã sử dụng được kit Raspberry Pi 3 có gắn camera C270kết hợp với thư viện OpenCv cũng như một số thư viện liên quan để thực hiện việc thu nhận hình ảnh, phát hiện được linh kiện bị thiếu hoặc sai khác so với mạch điện tử chuẩn Giao diện được thiết kế thân thiện với người dùng cho phép thao tác ở hai chế độ:

- Chế độ 1: So sánh, phát hiện lỗi cắm linh kiện ở những vị trí được định vị trước đối với các mạch điện tử đã có sẵn mẫu

- Chế độ 2: Cho phép so sánh, phát hiện lỗi cắm linh kiện ở những vị trí do người dùng tự thiết lập trên các mạch điện tử mới

Quản lý dữ liệu bằng cách kết hợp thư viện xlwt và ứng dụng Libreoffice, tạo cơ

dữ liệu lưu trữ lại các thông tin về thứ tự mạch, thời gian mạch được chụp, vị trí sai khác của mạch (nếu có) và thư mục chứa hình ảnh mạch phát hiện lỗi Thông tin được lưu trữ tự động theo thời gian bắt đầu khởi chạy ứng dụng, phục vụ cho việc tra soát lịch sử và kiểm soát mạch Những ảnh phát hiện lỗi đã sẽ được lưu trong một thư mục riêng với tên của ảnh chính là thời gian thực mà ảnh được chụp

NHÓM THỰC HIỆN

Trang 6

MỤC LỤC

DANHMỤCHÌNH IX

DANHMỤCBẢNG XI

CÁCTỪVIẾTTẮT XII

CHƯƠNG 1 TỔNG QUAN 1

1.1 GIỚI THIỆU ĐỀ TÀI 1

1.2 MỤC TIÊU ĐỀ TÀI 2

1.3 NHIỆM VỤ ĐỀ TÀI 3

1.4 GIỚI HẠN ĐỀ TÀI 3

1.5 BỐ CỤC ĐỀ TÀI 4

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 5

2.1 TỔNG QUAN VỀ ẢNH VÀ XỬ LÝ ẢNH 5

2.1.1 Lý thuyết về ảnh 5

2.1.2 Lý thuyết về xử lý ảnh 10

2.1.3 Quá trình cơ bản của xử lý ảnh 11

2.2 MỘT SỐ PHƯƠNG PHÁP SO SÁNH, SO KHỚP MẪU, NHẬN DẠNG VÀ TRÍCH CHỌN ĐẶC TRƯNG ẢNH 14

2.2.1 Phương pháp so sánh ảnh nhị phân 14

2.2.2 Thuật toán so khớp mẫu template matching 15

2.2.3 Phương pháp trích chọn đặc trưng cục bộ bất biến SIFT 18

2.2.4 Thuật toán so sánh cấu trúc tương tự 22

2.3 GIỚITHIỆUVỀNGÔNNGỮLẬPTRÌNHPYTHON 23

2.4 THƯVIỆNOPENCV 26

2.4.1 Giới thiệu về bộ thư viện OpenCV 26

2.4.2 Cấu trúc cơ bản của OpenCV 27

2.4.3 Các câu lệnh cơ bản trong OpenCV 28

2.4.4 Các hàm xử lý ảnh 29

2.5 THƯ VIỆN TKINTER 30

Trang 7

CHƯƠNG 3 THIẾT KẾ HỆ THỐNG 35

3.1 YÊU CẦU HỆ THỐNG 35

3.2 SƠ ĐỒ KHỐI HỆ THỐNG 35

3.3 THIẾT KẾ PHẦN CỨNG: 36

3.3.1 Giới thiệu về máy tính nhúng Raspberry Pi 3 37

3.3.2 Thông số kỹ thuật Raspberry Pi 3 Model B 38

3.3.3 USB camera logitech C270 (Webcam) 39

3.3.4 Nguyên lý hoạt động của hệ thống 40

3.4 THIẾT KẾ PHẦN MỀM 41

3.4.1 Cài đặt hệ điều hành Raspbian 41

3.4.2 Thiết lập hệ điều hành raspbian 42

3.4.3 Chương trình điều khiển 43

CHƯƠNG 4 KẾT QUẢ THỰC NGHIỆM 46

4.1 KẾT QUẢ KẾT NỐI PHẦN CỨNG 46

4.2 KẾT QUẢ CHƯƠNG TRÌNH 48

4.3 ĐÁNH GIÁ KẾT QUẢ THỰC NGHIỆM 57

4.3.1 Thời gian thực hiện 57

CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 59

5.1 KẾT LUẬN 59

5.1.1 Kết quả đạt được 59

5.1.2 Những hạn chế 59

5.2 HƯỚNG PHÁT TRIỂN 60

TÀI LIỆU THAM KHẢO 61

4.3 2 Khả năng phát hiện lỗi 58

Trang 8

DANH MỤC HÌNH

Hình 1 1 Máy AOI 2

Hình 2 1 Biểu diễn mức xám của ảnh số… ……… …6

Hình 2 2 Không gian màu RBG 8

Hình 2 3 Không gian màu HSV 10

Hình 2 4 Không gian màu HSL 10

Hình 2 5 Các bước cơ bản trong một quá trình xử lý nhận dạng ảnh 11

Hình 2 6 Quá trình so sánh ảnh 14

Hình 2 7 Kết quả sau khi thực hiện XOR 2 bức ảnh 15

Hình 2 8 Mô phỏng hoạt động của template matching 16

Hình 2 9 Ảnh nguồn và ảnh mẫu template matching 18

Hình 2 10 Kết quả sau khi áp dụng template matching với 6 phương pháp khác nhau 18

Hình 2 11 Biểu đồ mô phỏng việc tính toán các DoG ảnh từ các ảnh kề mờ 20

Hình 2 12 Mỗi điểm ảnh được so sánh với 26 lân cận của nó 20

Hình 2 13 Quá trình lựa chọn các điểm hấp dẫn 21

Hình 2 14 Biểu diễn các vector đặc trưng 22

Hình 2 15 Cấu trúc cơ bản của OpenCV 27

Hình 2 16 Giao diện khi dung Tkinter hiển thị ảnh 31

Hình 2 17 Một số giao diện cơ bản được lập trình từ Tkinter 32

Hình 2 18 Giao diện trang tính LibreOffice 33

Hình 3 1 Sơ đồ khối hệ thống ………35

Hình 3 2 Kit Raspberry Pi3 38

Hình 3 3 Camera C270 40

Hình 3 4 Chạy phần mềm win32diskimage 41

Hình 3 5 Giao diện hệ điều hành Raspbian 42

Hình 3 6 Thiết lập hệ điều hành 42

Trang 9

Hình 3 9 Lưu đồ giải thuật 44

Hình 4 1 Kết quả kết nối phần cứng ……….46

Hình 4 2 Hệ thống đèn LED chiếu sáng và vị trí camera 46

Hình 4 3 Hộp chứa mạch điện cần kiểm tra 47

Hình 4 4 Giao diện đề tài 48

Hình 4 5 Giao diện hướng dẫn của chương trình 48

Hình 4 6 Hiển thị hình ảnh thực tế camera ghi được 49

Hình 4 7 Kết quả không phát hiện lỗi chế độ so sánh với mẫu có sẵn 50

Hình 4 8 Kết quả màn hình khi phát hiện lỗi thiếu linh kiện 51

Hình 4 9 Ảnh lưu lại khi phát hiện thiếu một linh kiện 51

Hình 4 10 Ảnh lưu lại Phát hiện lỗi thiếu 2 linh kiện 52

Hình 4 11 Ảnh lưu lại khi phát hiện lỗi thiếu 3 linh kiện 52

Hình 4 12 Màn hình phát hiện và ảnh lưu lại khi linh kiện khác màu 53

Hình 4 13 Màn hình phát hiện và ảnh lưu lại khi linh kiện bị lệch 54

Hình 4 14 Khoanh chọn 2 vùng mẫu mới 55

Hình 4 15 Ảnh chuẩn sau khi được chọn vùng 55

Hình 4 16 Lỗi phát hiện thiếu linh kiện ở vùng mới 56

Hình 4 17 Thư mục chứa ảnh lỗi được lưu lại 56

Hình 4 18 Giao diện trang tính lưu trữ dữ liệu chương trình 57

Trang 10

DANH MỤC BẢNG

Bảng 2 1 Bảng giá trị khi thực hiện toán tử XOR trên hai pixel 15Bảng 3 1 Thông số kỹ thuật Raspberry Pi 3 Model B 38 Bảng 4 1 Kết quả thực nghiệm thời gian xử lý chương trình 57

Trang 11

CÁC TỪ VIẾT TẮT

Chữ viết tắt Chữ tường minh

AOI Article Optic Inspection

BSD Berkeley Software Distribution

CPU Central Processing Unit

GPIO General-Purpose Input/Output

GUI Graphical User Interface

HDMI High-Definition Multimedia Interface

HSL Hue Saturation Lightness

MLL Machine Learning Library

NTSC National Television System Committee

PSNR Peak Signal-to-Noise Ratio

SIFT Scale-Invariant Feature Transform SSIM Structural Similarity

Trang 12

CHƯƠNG 1 TỔNG QUAN

1.1 GIỚI THIỆU ĐỀ TÀI

Xử lý ảnh là một phân ngành trong xử lý số tín hiệu với tín hiệu xử lý là ảnh Đây là một phân ngành khoa học mới rất phát triển trong những năm gần đây Xử lý ảnh gồm 4 lĩnh vực chính: xử lý nâng cao chất lượng ảnh, nhận dạng ảnh, nén ảnh và truy vấn ảnh Sự phát triển của xử lý ảnh đem lại rất nhiều lợi ích cho cuộc sống của con người

Ngày nay với sự phát triển của khoa học công nghệ, xử lý ảnh đã được ứng dụng rộng rãi và phổ biến trong rất nhiều lĩnh vực trong đó không thể không kể đến những ứng dụng như sử dụng xử lý ảnh để phân tích, chuẩn đoán y sinh trong y tế Trong công nghiệp đóng gói, người ta sử dụng hệ thống xử lý ảnh để kiểm tra sản phẩm đã được dán nhãn chưa, kiểm tra nhãn hiệu bao bì có đúng với thành phần được đóng gói Trong công nghiệp sản xuất dược phẩm, áp dụng hệ thống xử lý ảnh để kiểm tra số lượng viên thuốc có trong vỉ, phân loại nông sản

hư hỏng, có màu khác biệt so với sản phẩm chuẩn Ứng dụng xử lý ảnh để nhận diện khuôn mặt, nhận diện vân tay đang được phổ biến rộng rãi trong các dụng đời sống hiện đại như điểm danh cũng như bảo mật thông tin

Và đặc biệt trong ngành công nghiệp sản xuất mạch điện tử hệ thống xử lý ảnh cũng được ứng dụng trong việc chụp ảnh thực tế và so sánh với ảnh mẫu để phát hiện lỗi với độ chính xác, tốc độ cao Điển hình cho hệ thống này là máy AOI được lắp đặt ở công đoạn SMT Tuy nhiên máy AOI cần có sự can thiệp của máy tính với cấu hình và tốc độ lớn cũng như camera với độ phân giải và giá thành cao Máy cũng có thiết kế lớn chỉ phù hợp với môi trường xưởng sản xuất công nghiệp

Trang 13

Hình 1 1 Máy AOI Sau khi những linh kiện dán được gắn và kiểm tra sẽ đến công đoạn gắn những linh kiện hàn tay, vì những linh kiện này có kích thước lớn và cấu tạo đặc biệt Sau khi cắm những linh kiện cắm tay cũng cần có hệ thống để so sánh, phát hiện ra những lỗi cắm sai, thiếu linh kiện

Từ những vấn đề trên, với mục đích sinh viên nghiên cứu và thực thi mô hình phát hiện lỗi cắm linh kiện trên mạch điện tử sử dụng kit vi xử lý gần gũi với sinh viên không cần sử dụng máy tính với cấu hình mạnh cũng như camera giá thành cao, thiết kế mô hình nhỏ gọn, thiết lập giao diện thân thiện với người dùng mà vẫn đáp ứng được yêu cầu phát hiện lỗi cắm linh kiện, nhóm thực hiện lựa chọn đề tài: “Phát hiện lỗi cắm linh kiện trên mạch điện tử dùng kit Raspberry Pi 3”

1.2 MỤC TIÊU ĐỀ TÀI

Đề tài “Phát hiện lỗi cắm linh kiện trên mạch điện tử sử dụng Kit Raspberry

Pi 3” với mục tiêu thiết kế thực thi mô hình chụp và phát hiện lỗi cắm thiếu, sai linh kiện sử dụng kit vi xử lý, không có sự can thiệp của máy tính cấu hình cao Thiết kế giao diện thân thiện với người dùng, cung cấp thông tin cho phép người

Trang 14

dùng tự thực hiện các thao tác trên giao diện Tạo lập cơ sở dữ liệu để lưu trữ thông tin của hệ thống, phục vụ cho vấn đề truy xuất lịch sử và quản lý dữ liệu

- Tìm hiểu cấu tạo phần cứng, nguyên lý hoạt động, thông số, tính năng của kit Raspberry Pi 3, thông số kỹ thuật camera C270

- Tìm hiểu và nghiên cứu về hệ điều hành raspbian, ngôn ngữ lập trình python, thư viện xử lý ảnh OpenCv, thư viện lập trình giao diện trên

python Tkinter

- Tạo lập cơ sở dữ liệu trên môi trường raspberry bằng ngôn ngữ python và

thư viện xlwt kết hợp với ứng dụng Libreoffice

- Thiết kế thi công mô hình thực hiện nhiệm vụ phát hiện lỗi cắm linh kiện trên mạch điện tử đảm bảo độ sáng và khoảng cách cố định của camera

- Thiết kế giao diện gần gũi với người dùng, hiển thị đầy đủ thông tin hướng dẫn cho người dùng dễ dàng sử dụng

1.4 GIỚI HẠN ĐỀ TÀI

Đề tài “Phát hiện lỗi cắm linh kiện trên mạch điện tử sử dụng Kit Raspberry

Pi 3” sử dụng Kit Raspberry Pi 3, kết hợp với camera C270 thực hiện thu nhận hình ảnh và phát hiện lỗi trên mạch điện tử Chương trình được viết trên ngôn ngữ python và ứng dụng thư viện xử lý ảnh OpenCv

Hệ thống thực hiện thu nhận và xử lý tốt nhất trên ảnh tĩnh, mạch điện tử cố định, không di chuyển Phát hiện lỗi tốt nhất ở lỗi thiếu linh kiện mà chủ yếu là linh kiện cắm tay Không phát hiện được lỗi thiếu chì hoặc phát hiện chưa chính

Trang 15

Hệ thống làm việc trong môi trường đầy đủ ánh sáng, các yếu tố về độ sáng cũng như khoảng cách từ camera đến mạch điện tử phải là cố định để cho kết quả chính xác nhất

Quản lý cơ sở dữ liệu cá nhân không đồng bộ lên internet

1.5 BỐ CỤC ĐỀ TÀI

Chương 1: Tổng quan Trong chương này, đồ án được trình bày tổng quan

về xử lý ảnh, ứng dụng của xử lý ảnh trong việc phát hiện lỗi sai trên mạch điện

tử từ đó đi đến làm rõ mục tiêu, giới hạn nhiệm vụ và bố cục đề tài

Chương 2: Cơ sở lý thuyết Trong chương này đề cập đến lý thuyết về ảnh,

xử lý ảnh, bên cạnh đó còn giới thiệu về một số môi trường màu, tổng quan về xử

lý ảnh dựa trên thư viện OpenCV và ngôn ngữ Python, một số phương pháp, thuật toán so sánh, so khớp và tìm đặc trưng của ảnh

Chương 3: Thiết kế hệ thống Trong chương này trình bày về yêu cầu thiết

kế của hệ thống từ đó lựa chọn kit vi xử lý cũng như các module liên quan Nêu tổng quan về cấu tạo, thiết kế, thông số kỹ thuật của bộvvi xử lý, các module được sử dụng trong mô hình hệ thống Từ đó sơ đồ khối hóa, lựa chọn giải thuật

xử lý phù hợp và vẽ lưu đồ hoạt động của chương trình

Chương 4: Kết quả thực nghiệm Chương này trình bày về kết quả hệ thống

về phần cứng, phần mềm, kết quả của việc phát hiện lỗi cắm linh kiện trên mạch điện tử Đánh giá hoạt động của hệ thống

Chương 5: Kết luận và hướng phát triển.Chương này đưa ra những kết luận

về quá trình nghiên cứu, tổng hợp những kiến thức đạt được và những mặt hạn chế của đề tài Trình bày về khả năng và hướng phát triển của đề tài

Trang 16

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

2.1 TỔNG QUAN VỀ ẢNH VÀ XỬ LÝ ẢNH

2.1.1 Lý thuyết về ảnh

2.1.1.1 Điểm ảnh

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, ảnh cần phải được số hoá Số hoá ảnh là sự biến đổi gần đúng một ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí (không gian)

và độ sáng Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt người không phân biệt được ranh giới giữa chúng Mỗi một điểm như vậy gọi là điểm ảnh hay gọi tắt là Pixel Trong khuôn khổ ảnh hai chiều, mỗi pixel ứng với cặp tọa độ (x, y)

Điểm ảnh là một phần tử của ảnh số tại toạ độ (x, y) với độ xám hoặc màu nhất định Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của ảnh số gần như ảnh thật Mỗi phần tử trong ma trận được gọi là một phần tử ảnh.[2]

2.1.1.2 Độ phân giải của ảnh

Độ phân giải của ảnh là mật độ điểm ảnh được ấn định trên một ảnh số được hiển thị Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bố theo trục x và y trong không gian hai chiều

Ví dụ: Độ phân giải của ảnh trên màn hình CGA (Color Graphic Adaptor) là một lưới điểm theo chiều ngang màn hình: 320 điểm chiều dọc * 200 điểm ảnh

Trang 17

CGA 17” độ phân giải 320*200 Lý do: cùng một mật độ (độ phân giải) nhưng diện tích màn hình rộng hơn thì độ mịn (liên tục của các điểm) kém hơn.[2]

Hình 2 1 Biểu diễn mức xám của ảnh số Trong hình 2.1 một lưới chia ô vuông tưởng tượng được đặt lên ảnh Độ lớn mỗi ô vuông của lưới xác định kích thước của một điểm ảnh Mức xám của một điểm được tính bằng cường độ sáng trung bình tại mỗi ô vuông này Mắt lưới càng nhỏ thì chất lượng ảnh càng cao

Trong kỹ thuật truyền hình tiên tiến, hình ảnh cần chất lượng cao với độ phân giải gấp hai lần so với các chuẩn hiện nay Trong kỹ thuật tương tự, một bức ảnh thường được biểu diễn dưới dạng các dòng nằm ngang kế tiếp nhau Mỗi dòng là một tín hiệu tương tự mang theo các thông tin về cường độ sáng dọc theo một

Trang 18

đường nằm ngang trong ảnh gốc Ảnh trên một chiếc TV được hiện lên qua các dòng quét này Mặc dù thuật ngữ "tương tự" được dùng để mô tả cho các ảnh quét liên tiếp nhưng thực tế ảnh chỉ tương tự dọc theo hướng nằm ngang Nó là rời rạc khi xét theo hướng dọc và chính vì vậy mà tín hiệu ảnh là tín hiệu lai nửa tương tự, nửa số

Một máy truyền hình được thiết kế để thu tín hiệu truyền hình mã hoá theo tiêu chuẩn NTSC của Mỹ có khả năng hiển thị xấp xỉ 525 dòng Công nghệ truyền hình tiến bộ nỗ lực để cung cấp cho chúng ta số lượng các dòng gấp hai lần, cho độ phân giải tốt hơn là TV màn ảnh rộng Một TV có màn ảnh lớn hơn

28 inch được coi là một TV có màn ảnh rộng Một điều cần chú ý là TV có khả năng hiện một số dòng như nhau cho dù nó là 5 inch hay là 50 inch Màn ảnh lớn nhất của loại TV dòng quét xen kẽ mà mắt người có khả năng phân biệt được từ khoảng cách thông thường vào khoảng 3 mét

Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác) với mức xám ở các điểm ảnh có thể khác nhau Phân mức đen trắng đó thành L mức, nếu

sử dụng số B bit để mã hóa mức đen trắng (hay mức xám) thì L được xác định:

là một số nguyên nằm trong khoảng từ 0 đến 255, với mức 0 biểu diễn cho mức cường độ đen nhất và 255 biểu diễn cho mức cường độ sáng nhất

Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt tức dùng 1 bit mô tả 21

mức khác nhau Nói cách khác: mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0 hoặc 1

Trang 19

Ảnh màu: theo lý thuyết của Thomas là ảnh tổ hợp từ 3 màu cơ bản gồm đỏ (R), lục (G), lam (B) và thường thu nhận trên các dải băng tần khác nhau Với ảnh màu, cách biểu diễn cũng tương tự như với ảnh đen trắng, chỉ khác là các số tại mỗi phần tử của ma trận biểu diễn cho ba màu riêng lẻ gồm: đỏ, lục và lam

Để biểu diễn cho một điểm ảnh màu cần 24 bit 24 bit này được chia thành

ba khoảng 8 bit Mỗi màu cũng phân thành L cấp màu khác nhau (thường L=256) Mỗi khoảng này biểu diễn cho cường độ sáng của một trong các màu chính Trong khuôn khổ lý thuyết ba màu (Red, Blue, Green) để tạo nên không gian màu, người ta thường dùng 3 byte để mô tả mức màu.[2]

2.1.1.4 Không gian màu

- Không gian màu RBG

Hình 2 2 Không gian màu RBG RBG là không gian màu rất phổ biến được dùng trong đồ họa máy tính và trong các kỹ thuật xử lý ảnh trên máy tính nhúng Ý tưởng chính của không gian màu này là sự kết hợp của 3 màu sắc cơ bản: màu đỏ (R, Red), xanh lục (G, Green) và xanh lơ (B, Blue) để mô tả tất cả các màu sắc khác

Nếu như một ảnh số được mã hóa bằng 24bit, nghĩa là 8bit cho kênh R, 8bit cho kênh G, 8bit cho kênh B, thì mỗi kênh màu này sẽ nhận giá trị từ 0-255 Với

Trang 20

mỗi giá trị khác nhau của các kênh màu kết hợp với nhau ta sẽ được một màu khác nhau, như vậy ta sẽ có tổng cộng 255x255x255 = 1.66 triệu màu sắc

- Không gian màu HSV và HSL

HSL và HSV là hai hình dạng phổ biến nhất của các điểm trong một mô hình màu RGB Được phát triển vào những năm 1930 cho các ứng dụng truyền hình màu, không gian màu HSL cho phép thêm thông tin màu vào các tín hiệu đen trắng hiện tại, có nghĩa là không giống như các hệ thống màu trước đó, máy thu đơn sắc có thể nhận tín hiệu màu phát bằng HSL

HSL viết tắt của màu sắc, độ bão hòa, và độ sáng và cũng thường được gọi là HLS HSV viết tắt của màu sắc, độ bão hòa, và giá trị Trong mỗi xi lanh, góc quanh trục trung tâm tương ứng với “hue”, khoảng cách từ trục tương ứng với

“độ bão hòa”, và khoảng cách dọc theo trục tương ứng với “lightness”, “value” hoặc “brightness”

Bởi vì HSL và HSV là sự biến đổi đơn giản của các mô hình RGB phụ thuộc vào thiết bị, nên các màu cơ bản mà chúng xác định phụ thuộc vào màu sắc của các khe cắm màu đỏ, xanh lục và xanh dương của thiết bị hoặc của không gian RGB cụ thể

Nguyên tắc cơ bản

HSL và HSV đều là hình trụ, với màu sắc, kích thước góc của chúng, bắt đầu

từ màu đỏ ở 0°, đi qua màu xanh lá cây ở 120° và màu xanh chính ở 240°, và sau

đó gói lại đỏ ở 360° Trong mỗi hình học, trục thẳng đứng trung tâm bao gồm các màu trung lập, màu sắc hoặc màu xám, từ màu đen ở giá trị 0, trắng ở giá trị 1.Trong cả hai hình học, các màu phụ, phụ lục, màu đỏ, vàng, xanh lá cây, xian, xanh dương, magenta và tuyến tính giữa các cặp liền kề nhau, đôi khi được gọi là màu thuần khiết, được sắp xếp xung quanh cạnh ngoài của xi lanh với độ bão hòa 1 Những màu bão hòa này có độ sáng nhẹ 1/2 trong HSL, trong khi ở HSV chúng có giá trị 1 Trộn các màu thuần khiết này với màu đen tạo ra cái gọi

là bóng mát-lá bão hòa không thay đổi Trong HSL, độ bão hòa cũng không thay đổi bằng cách nhuộm màu bằng các hỗn hợp màu trắng và chỉ với cả tông màu

Trang 21

đen và trắng có độ bão hòa dưới 1 Trong HSV, nhuộm màu đơn giản làm giảm

độ bão hòa [16]

Hình 2 3 Không gian màu HSV

Hình 2 4 Không gian màu HSL

2.1.2 Lý thuyết về xử lý ảnh

Con người thu nhận thông tin qua các giác quan trong đó thị giác đóng vai trò quan trọng nhất Cùng với sự phát triển nhanh của phần cứng máy tính, xử lý ảnh và đồ hoạ đã phát triển mạnh mẽ và ngày càng có nhiều ứng dụng trong

Trang 22

cuộc sống Nhờ thế mà xử lý ảnh từng bước đóng một vai trò quan trọng trong tương tác người và máy Quá trình xử lý nhận dạng ảnh là một quá trình thao tác nhằm biến đổi một ảnh đầu vào để cho ra một kết quả mong muốn Xử lý ảnh thông thường gồm 3 bước:

Bước 1: Nhập một hình ảnh với một máy quét quang học hoặc trực tiếp

thông qua nghệ thuật chụp ảnh số

Bước 2: Thao tác hoặc phân tích các hình ảnh bằng một cách nào đó Giai

đoạn này có thể bao gồm kỹ thuật nâng cao chất lượng hình ảnh và nén dữ liệu, hoặc hình ảnh có thể được phân tích để tìm ra các hình dáng mà mắt người không thể thấy được

Bước 3: Kết quả đầu ra, hình ảnh có thể bị thay đổi bằng cách này hay cách

khác, nó có thể là một ảnh tốt hơn hoặc một kết luận.[2]

2.1.3 Quá trình cơ bản của xử lý ảnh

Một ảnh đầu vào cần thông qua rất nhiều bước khác nhau để có được một ảnh đầu ra mong muốn Các quá trình cơ bản của một hệ thống xử lý ảnh được thể hiện thông qua sơ đồ dưới đây:

Hình 2 5 Các bước cơ bản trong một quá trình xử lý nhận dạng ảnh

Thu nhận ảnh: Để thực hiện được quá trình đầu tiên trong hệ thống xử lý

ảnh, ta cần sử dụng các thiết bị thu nhận ảnh để chuyển các thông tin dưới dạng hình ảnh thành các cấu trúc lưu trữ được trong máy tính và được hiển thị ra màn hình, máy in Ảnh có thể thu nhận từ vệ tinh qua các bộ cảm ứng, qua camera, máy chụp ảnh đơn sắc (màu), hay các tranh, ảnh được quét trên máy quét ảnh Nếu ảnh thu nhận được chưa phải là dạng số hóa ta phải chuyển đổi hay số hóa ảnh trước khi chuyển sang giai đoạn tiếp theo

Tiền xử lý: Sau khi được thu nhận bởi các thiết bị thu nhận ảnh, ảnh sẽ được

Trang 23

hơn theo mục đích sử dụng nhằm phục vụ cho quá trình xử lý tiếp theo Một số tiến trình trong quá trình tiền xử lý là:

Điều chỉnh độ chiếu sáng: Khắc phục hậu quả của sự chiếu sáng không đồng

đều

Khử nhiễu: Nhiễu được chia làm 2 loại cơ bản là nhiễu hệ thống và nhiễu

ngẫu nhiên Trong đó, nhiễu hệ thống là nhiễu có quy luật có thể khử bằng các phép biến đổi Fourier và loại bỏ các đỉnh điểm Đối với nhiễu ngẫu nhiên thì được khắc phục bằng các phép lọc (lọc trung bình, lọc trung vị…)

Hiệu chỉnh mức xám: Có thể tăng hay giảm số mức xám nhằm khắc phục tính

không đồng bộ gây nên từ hiệu ứng của thiết bị thu nhận hình ảnh hoặc độ tương phản giữa các vùng ảnh

Chuẩn hóa độ lớn, hình dạng và màu sắc

Nắn chỉnh hình học: Ảnh thu nhận thường bị biến dạng do các thiết bị quang

học và điện từ, để khắc phục điều này người ta sử dụng các phép chiếu được xây dựng trên tập các điểm điều khiển

Phân đoạn ảnh: Là một quá trình thao tác ở mức thấp trong toàn bộ hệ thống

xử lý ảnh Quá trình này thực hiện việc phân vùng ảnh thành các vùng rời rạc và đồng nhất với nhau hay nói cách khác là xác định các biên của các vùng ảnh đó Phân đoạn ảnh là chia ảnh thành các vùng không trùng lắp, mỗi vùng gồm một nhóm pixel liên thông và đồng nhất theo một tiêu chí nào đó Sau khi phân đoạn mỗi pixel chỉ thuộc về một vùng duy nhất Để đánh giá chất lượng của quá trình phân đoạn là rất khó, vì vậy cần phải xác định rõ mục tiêu của quá trình phân đoạn là gì?

Biểu diễn dạng biên cho một vùng phù hợp với những ứng dụng chỉ quan tâm

đến các đặc trưng hình dạng bên ngoài của đối tượng, ví dụ như các góc cạnh và điểm uốn trên biên

Biểu diễn dạng vùng lại thích hợp cho những ứng dụng khai thác các tính chất

bên trong của đối tượng

Trích chọn đặc điểm: Dựa trên các thông tin thu nhận được qua quá trình

phân đoạn, kết hợp với các kỹ thuật xử lý, thủ tục phân tích dữ liệu để đưa ra các

Trang 24

đặc điểm đặc trưng, đối tượng ảnh cũng như các thông tin cần thiết trong quá trình xử lý Nhờ đó việc nhận dạng các đối tượng ảnh chính xác hơn, tốc độ tính toán cao và dung lượng nhớ lưu trữ giảm xuống Các đặc điểm của đối tượng được trích chọn tùy theo mục đích nhận dạng trong hệ thống xử lý ảnh Sau đây

là một vài đặc điểm của ảnh:

Đặc điểm không gian: Phân bố mức xám, phân bố xác suất, biên độ, điểm

uốn…

Đặc điểm biến đổi: Các đặc điểm loại này được trích chọn bằng việc thực

hiện lọc vùng Các bộ vùng được gọi là “mặt nạ đặc điểm” thường là các khe hẹp với hình dạng khác nhau như chữ nhật, tam giác, cung tròn…

Đặc điểm biên và đường biên: Đặc trưng cho đường biên của đối tượng và do

vậy rất hữu ích trong việc trích trọn các thuộc tính bất biến được dùng khi nhận dạng đối tượng

Nhận dạng: Là quá trình cuối cùng của hệ thống xử lý ảnh-quá trình liên

quan đến các mô tả đối tượng mà người ta muốn đặc tả nó Quá trình này thường

đi sau quá trình trích chọn đặc điểm trong hệ thống xử lý ảnh Có 2 kiểu nhận dạng ảnh cơ bản:

Nhận dạng theo tham số (mô tả tham số)

Nhận dạng theo cấu trúc (mô tả theo cấu trúc)

Hiện nay, người ta đã áp dụng kỹ thuật nhận dạng khá thành công với nhiều đối tượng khác nhau như: nhận dạng ảnh vân tay, khuôn mặt, nhận dạng chữ (chữ cái, chữ số, chữ có dấu), nhận dạng chữ in phục vụ cho việc tự động hóa quá trình đọc tài liệu, tăng tốc độ và chất lượng nhận thông tin từ máy tính Ngoài ra kỹ thuật nhận dạng dựa vào kỹ thuật mạng nơ-ron đang được áp dụng

và cho kết quả khả quan [2]

Trang 25

2.2 MỘT SỐ PHƯƠNG PHÁP SO SÁNH, SO KHỚP MẪU, NHẬN DẠNG VÀ TRÍCH CHỌN ĐẶC TRƯNG ẢNH

2.2.1 Phương pháp so sánh ảnh nhị phân

Có nhiều thuật toán so sánh ảnh để tìm ra được điểm khác nhau giữa hai bức ảnh, ở đây sẽ giới thiệu về phương pháp trừ nhị phân 2 ảnh Đây là thuật toán đơn giản nhất mà chúng ta có thể tìm thấy để phát hiện sự khác biệt giữa hai hình ảnh Nói cách khác, phép trừ hình ảnh được thực hiện để có được sự khác biệt giữa hai hình ảnh Trong thuật toán này, chúng ta cần sử dụng hai hình ảnh - hình ảnh tham chiếu và hình ảnh được kiểm tra.[10]

Sơ đồ thực hiện của phương pháp:

Hình 2 6 Quá trình so sánh ảnh

Trong phương pháp này, chúng tôi so sánh cả hình ảnh pixel-by-pixel bằng toán tử logic XOR Sau khi thực hiện thao tác, chúng ta sẽ nhận được hình ảnh

Trang 26

kết quả bao gồm các điểm khác nhau Hoạt động trừ sẽ tạo ra giá trị pixel âm hoặc dương.[5,10]

Bảng 2 1 Bảng giá trị khi thực hiện toán tử XOR trên hai pixel

pixel ảnh 1 pixel ảnh 2 pixel ngõ ra

Hình 2 7 Kết quả sau khi thực hiện XOR 2 bức ảnh

2.2.2 Thuật toán so khớp mẫu template matching

So khớp mẫu là một kỹ thuật trong xử lý hình ảnh kỹ thuật số để tìm ra phần nhỏ của hình ảnh khớp với hình ảnh mẫu Nó có thể được sử dụng trong sản xuất như là một phần của kiểm soát chất lượng, một cách để điều hướng một robot di động hoặc như một cách để phát hiện các cạnh trong hình ảnh

Template matching chỉ đơn giản là trượt các hình ảnh mẫu trên hình ảnh đầu vào (như trong 2D convolution) và so sánh các mẫu và bản vá của hình ảnh đầu

Trang 27

vào dưới hình ảnh mẫu Nó trả về một hình ảnh thang độ xám, trong đó mỗi pixel biểu thị vùng lân cận của pixel đó khớp với mẫu bao nhiêu

Nếu hình ảnh đầu vào có kích thước (WxH) và hình ảnh mẫu có kích thước (wxh), hình ảnh đầu ra sẽ có kích thước (W-w + 1, H-h + 1)

Dưới đây là một số phương pháp so khớp mẫu có sẵn trong đó I là hình ảnh đầu vào, T biểu thị cho mẫu và R là kết quả

Để thực hiện so khớp mẫu cần 2 cấp độ ảnh:

- Ảnh nguồn(I): là ảnh đầu vào cần kiểm tra

- Ảnh mẫu (T) : là phần ảnh mẫu mà cần được tìm kiếm trên ảnh nguồn

Để xác định khu vực ảnh mẫu có nằm trong ảnh ban đầu hay không, template matching phải so sánh hình ảnh mẫu với hình ảnh nguồn bằng cách trượt ảnh mẫu trên ảnh nguồn đầu vào Bằng cách trượt, nghĩa là di chuyển ảnh mẫu một pixel mỗi lần (trái sang phải, lên xuống) Tại mỗi vị trí, một số liệu được tính toán để nó thể hiện mức độ "tốt" hoặc "xấu" của việc so khớp mẫu tại vị trí đó (hoặc mức độ tương tự của ảnh mẫu với khu vực cụ thể của hình ảnh nguồn)

Hình 2 8 Mô phỏng hoạt động của template matching

Trang 28

Đối với mỗi vị trí của T trên I, bạn lưu trữ số liệu trong ma trận kết quả R Mỗi vị trí (x, y) trong R chứa số liệu phù hợp [9,11]

Hiện tại OpenCv có 6 phương pháp template matching như dưới đây:

Trang 29

Hình 2 9 Ảnh nguồn và ảnh mẫu template matching

Hình 2 10 Kết quả sau khi áp dụng template matching với 6 phương pháp khác

nhau

2.2.3 Phương pháp trích chọn đặc trưng cục bộ bất biến SIFT

Người ta thường chia đặc trưng cục bộ thành 2 loại là những điểm trích xuất được từ điểm "nhô ra" (salient points) của ảnh và đặc trưng SIFT được trích chọn

từ các điểm hấp dẫn Haris (interest points)

Trang 30

Phần này trình bày phương pháp trích rút các đặc trưng cục bộ bất biến SIFT của ảnh Các đặc trưng này bất biến với việc thay đổi tỉ lệ ảnh, quay ảnh, đôi khi

là thay đổi điểm nhìn và thêm nhiễu ảnh hay thay đổi cường độ chiếu sáng của ảnh Phương pháp được lựa chọn có tên là Scale-Invariant Feature Transform (SIFT) và đặc trưng trích rút đựợc gọi là đặc trưng SIFT Các đặc trưng SIFT này được trích rút ra từ các điểm hấp dẫn cục bộ

Điểm hấp dẫn: Là vị trí điểm ảnh "hấp dẫn" trên ảnh "Hấp dẫn" ở đây có nghĩa là điểm đó có thể có các đặc trưng bất biến với việc quay ảnh, co giãn ảnh hay thay đổi cường độ chiếu sáng của ảnh Phương pháp trích rút các đặc trưng bất biến SIFT được tiếp cận theo phương pháp thác lọc, theo đó phương pháp được thực hiện lần lượt theo các bước sau:

- Phát hiện các điểm cực trị Scale-Space: Bước đầu tiên này tiến hành

tìm kiếm các điểm hấp dẫn trên tất cả các tỉ lệ và vị trí của ảnh Nó sử dụng hàm different-of-Gaussian để xác định tất cả các điểm hấp dẫn tiềm năng mà bất biến với quy mô và hướng của ảnh

Các điểm hấp dẫn với đặc trưng SIFT tương thích với các cực trị địa phương của bộ lọc (DoG) ở các tỉ lệ khác nhau Định nghĩa không gian tỉ lệ của một hình ảnh là hàm L(x,y,k )  được mô tả như sau:

L(x, y, ) = G(x, y, k ) ∗ I(x, y) (2.8) Với G(x, y, k) : Biến tỉ lệ Gaussian

I (x,y) : Ảnh đầu vào

mờ

Trang 31

Hình 2 11 Biểu đồ mô phỏng việc tính toán các DoG ảnh từ các ảnh kề mờ Các ảnh cuộn được nhóm thành các octave (mỗi octave tương ứng với giá trị gấp đôi của  ) Giá trị của k được chọn sao cho số lượng ảnh mờ cho 16 mỗi octave là cố định Điều này đảm bảo cho số lượng các ảnh DoG cho mỗi octave không thay đổi Các điểm hấp dẫn được xác định là các cực đại hoặc cực tiểu của các ảnh DoG qua các tỉ lệ Mỗi điểm ảnh trong DoG được so sánh với 8 điểm ảnh lân cận của nó ở cùng tỉ lệ đó và 9 lân cận kề ở các tỉ lệ ngay trước và sau nó Nếu điểm ảnh đó đạt giá trị cực tiểu hoặc cực đại thì sẽ được chọn làm các điểm hấp dẫn ứng viên

Hình 2 12 Mỗi điểm ảnh được so sánh với 26 lân cận của nó

Trang 32

- Định vị các điểm hấp dẫn: Một hàm kiểm tra sẽ được đưa ra để quyết

định xem các điểm hấp dẫn tiềm năng có được lựa chọn hay không? Mỗi điểm hấp dẫn ứng viên sau khi được chọn sẽ được đánh giá xem có được giữ lại hay không:

+ Loại bỏ các điểm hấp dẫn có độ tương phản thấp

+ Một số điểm hấp dẫn dọc theo các cạnh không giữ được tính ổn định khi ảnh bị nhiễu cũng bị loại bỏ Các điểm hấp dẫn còn lại sẽ được xác định hướng

Hình 2 13 Quá trình lựa chọn các điểm hấp dẫn (a) Ảnh gốc, (b) Các điểm hấp dẫn được phát hiện (c) Ảnh sau khi loại bỏ các điểm hấp dẫn có độ tương phản thấp (d) Ảnh sau loại bỏ các điểm hấp dẫn dọc

theo cạnh

- Xác định hướng cho các điểm hấp dẫn : Xác định hướng cho các điểm

hấp dẫn được chọn

Trang 33

Để xác định hướng cho các điểm hấp dẫn, người ta tính toán biểu đồ hướng Gradient trong vùng lân cận của điểm hấp dẫn Độ lớn và hướng của các điểm hấp dẫn được xác định theo công thức

𝑚(𝑥, 𝑦) = √(𝐿(𝑥 + 1, 𝑦) − 𝐿(𝑥 − 1, 𝑦))2+ (𝐿(𝑥, 𝑦 + 1) − 𝐿(𝑥, 𝑦 − 1))2 (2.12)

 (x, y) = 𝑡𝑎𝑛−1(𝐿(𝑥,𝑦+1)−𝐿(𝑥,𝑦−1)

𝐿(𝑥+1,𝑦)−𝐿(𝑥−1,𝑦)) (2.13)

- Mô tả các điểm hấp dẫn: Các điểm hấp dẫn sau khi được xác định

hướng sẽ được mô tả dưới dạng các vector đặc trưng nhiều chiều

Điểm hấp dẫn sau khi được xác định hướng sẽ được biểu diễn dưới dạng các vector 4x4x8=128 chiều [3,8]

Hình 2 14 Biểu diễn các vector đặc trưng

2.2.4 Thuật toán so sánh cấu trúc tương tự

Chỉ số tương tự cấu trúc (SSIM) là một phương pháp để đo lường sự tương đồng giữa hai hình ảnh Chỉ số SSIM là một số liệu tham khảo đầy đủ; nói cách khác, việc đo lường chất lượng hình ảnh dựa trên hình ảnh không bị nén hoặc biến dạng ban đầu làm tham chiếu SSIM được thiết kế để cải thiện các phương pháp truyền thống như tỷ lệ nhiễu tín hiệu cực đại (PSNR) và lỗi bình phương trung bình (MSE), đã được chứng minh là không phù hợp với nhận thức của mắt người Sự khác biệt đối với các kỹ thuật khác được đề cập trước đây như MSE hoặc PSNR là các phương pháp này ước tính các lỗi nhận biết.[6]

Đối với thông tin cấu trúc thì các pixel có sự phụ thuộc lẫn nhau mạnh mẽ đặc biệt là khi chúng ở gần nhau về mặt không gian Những phụ thuộc này mang

Trang 34

thông tin quan trọng về cấu trúc của các đối tượng trong cảnh thị giác Số liệu SSIM được tính toán trên các cửa sổ khác nhau của hình ảnh Số đo giữa hai cửa

sổ và kích thước phổ biến N × N là:

𝑆𝑆𝑀𝐼(𝑥, 𝑦) = (2𝛾𝑥𝛾𝑦+𝐶1)(2𝜎𝑥𝑦+𝐶2)

(𝜇𝑥2+𝜇𝑦2+𝐶1)(𝜎𝑥2+𝜎𝑦2+𝐶2) (2.14)

2.3 GIỚI THIỆU VỀ NGÔN NGỮ LẬP TRÌNH PYTHON

Python là một ngôn ngữ lập trình thông dịch, hướng đối tượng và là một ngôn ngữ bậc cao Python hỗ trợ các module và gói thư viện, khuyến khích chương trình module hóa và tái sử dụng mã Trình thông dịch Python và thư viện chuẩn mở rộng có sẵn dưới dạng mã nguồn hoặc dạng nhị phân cho tất cả các nền tảng chính và có thể được phân phối tự do Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu

Python có nhiều đặc điểm: Ngữ pháp đơn giản, dễ đọc Vừa hướng thủ tục, vừa hướng đối tượng, hỗ trợ module và hỗ trợ gói Kiểu dữ liệu động ở mức cao

Có các bộ thư viện chuẩn và các module ngoài, đáp ứng tất cả các nhu cầu lập trình Có khả năng tương tác với các module khác viết trên C/C++

Python là ngôn ngữ có khả năng chạy trên nhiều nền tảng Python có cho mọi hệ điều hành: Windows, Linux/Unix, OS/2, Mac, Amiga, và những hệ điều hành khác Thậm chí có cả những phiên bản chạy trên NET, máy ảo Java, và điện thoại di động (Nokia Series 60) Với cùng một mã nguồn sẽ chạy giống nhau trên mọi nền tảng Python được thiết kế để trở thành một ngôn ngữ dễ học,

mã nguồn dễ đọc, bố cục trực quan, dễ hiểu, thể hiện qua các điểm sau:

Từ khóa: Python tăng cường sử dụng từ khóa tiếng anh, hạn chế các kí hiệu

và cấu trúc cú pháp so với các ngôn ngữ khác Python là một ngôn ngữ phân biệt

kiểu chữ hoa, chữ thường Như C/C++, các từ khóa của Python đều ở dạng chữ

Trang 35

Khối lệnh: Trong các ngôn ngữ khác, khối lệnh thường được đánh dấu

bằng cặp kí hiệu hoặc từ khóa Ví dụ, trong C/C++, cặp ngoặc nhọn {} được dùng để bao bọc một khối lệnh Python, trái lại, có một cách rất đặc biệt để tạo khối lệnh, đó là thụt các câu lệnh trong khối vào sâu hơn (về bên phải) so với các câu lệnh của khối lệnh chứa nó Ta có thể sử dụng dấu tab hoặc khoảng trống để thụt các câu lệnh vào

Khả năng mở rộng: Python có thể được mở rộng, nếu ta biết sử dụng C ta

có thể dễ dàng viết và tích hợp vào Python nhiều hàm tùy theo nhu cầu Các hàm này sẽ trở thành hàm xây dựng sẵn của Python Ta cũng có thể mở rộng chức năng của trình thông dịch, hoặc liên kết các chương trình Python với các thư viện chỉ ở dạng nhị phân (như các thư viện đồ họa do nhà sản xuất thiết bị cung cấp) Hơn thế nữa, ta cũng có thể liên kết trình thông dịch của Python với các ứng dụng viết từ C và sử dụng nó như là một mở rộng hoặc một ngôn ngữ dòng lệnh phụ trợ cho ứng dụng đó

Trình thông dịch: Python là một ngôn ngữ lập trình dạng thông dịch, do đó

có ưu điểm tiết kiệm thời gian phát triển ứng dụng vì không cần phải thực hiện biên dịch và liên kết Trình thông dịch có thể được sử dụng để chạy file script, hoặc cũng có thể được sử dụng theo cách tương tác Ở chế độ tương tác, trình thông dịch Python tương tự shell của các hệ điều hành họ Unix, tại đó, ta

có thể nhập vào từng biểu thức rồi gõ Enter, và kết quả thực thi sẽ được hiển thị ngay lập tức

Lệnh và cấu trúc điều khiển: Mỗi câu lệnh trong Python nằm trên một dòng

mã nguồn Ta không cần phải kết thúc câu lệnh bằng bất kì kí tự gì Cũng như

các ngôn ngữ khác, Python cũng có các cấu trúc điều khiển Chúng bao gồm:

Cấu trúc rẽ nhánh: cấu trúc if (có thể sử dụng thêm elif hoặc else), dùng để

thực thi có điều kiện một khối mã cụ thể

Cấu trúc lặp bao gồm: Lệnh while chạy một khối mã cụ thể cho đến khi

điều kiện lặp có giá trị false Vòng lặp for: lặp qua từng phần tử của một dãy,

Trang 36

mỗi phần tử sẽ được đưa vào biến cục bộ để sử dụng với khối mã trong vòng lặp

Lớp, đối tượng: Python cũng có từ khóa class dùng để khai báo lớp (sử

dụng trong lập trình hướng đối tượng) và lệnh def dùng để định nghĩa hàm

Hệ thống kiểu dữ liệu: Python sử dụng hệ thống kiểu duck typing, còn gọi

là tự động xác định kiểu Có nghĩa là, Python không kiểm tra các ràng buộc về kiểu dữ liệu tại thời điểm dịch, mà là tại thời điểm thực thi Khi thực thi, nếu một thao tác trên một đối tượng bị thất bại, thì có nghĩa là đối tượng đó không sử dụng một kiểu thích hợp Python cũng là một ngôn ngữ định kiểu mạnh Nó cấm mọi thao tác không hợp lệ, ví dụ cộng một con số vào chuỗi kí tự

Sử dụng Python, ta không cần phải khai báo biến Biến được xem là đã khai báo nếu nó được gán một giá trị lần đầu tiên Căn cứ vào mỗi lần gán, Python sẽ tự động xác định kiểu dữ liệu của biến Python có một số kiểu dữ liệu thông dụng sau:

Int, long: số nguyên

Float: số thực

Complex: số phức

List: dãy trong đó các phần tử của nó có thể được thay đổi Kiểu dãy khác

với kiểu mảng thường gặp trong các ngôn ngữ lập trình ở chỗ các phần tử của dãy không nhất thiết có kiểu giống nhau

Tuple: dãy trong đó các phần tử của nó không thể thay đổi

Str: chuỗi kí tự Từng kí tự trong chuỗi không thể thay đổi Chuỗi kí tự

được đặt trong dấu nháy đơn, hoặc nháy kép

Set: một tập không xếp theo thứ tự, ở đó, mỗi phần tử chỉ xuất hiện một

lần

Ngoài ra, Python còn có nhiều kiểu dữ liệu khác

Module: Python cho phép chia chương trình thành các module để có thể sử

Ngày đăng: 13/01/2019, 10:10

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Trần Thu Hà, Trương Thị Bích Ngà, Nguyễn Thị Lưỡng, Bùi Thị Tuyết Đan, Phù Thị Ngọc Hiếu, Dương Thị Cẩm Tú, Giáo trình Điện tử cơ bản.Trường Đại học Sư phạm Kỹ thuật TP HCM: NXB Đại học Quốc gia TP.HCM, 2012 Sách, tạp chí
Tiêu đề: Giáo trình Điện tử cơ bản
Tác giả: Trần Thu Hà, Trương Thị Bích Ngà, Nguyễn Thị Lưỡng, Bùi Thị Tuyết Đan, Phù Thị Ngọc Hiếu, Dương Thị Cẩm Tú
Nhà XB: Trường Đại học Sư phạm Kỹ thuật TP HCM
Năm: 2012
[2] Nguyễn Quang Hoan, Xử Lý Ảnh, NXB Học Viện Công Nghệ Bưu Chính Viễn Thông, Hà Nội, 2006 Sách, tạp chí
Tiêu đề: Xử Lý Ảnh
Tác giả: Nguyễn Quang Hoan
Nhà XB: NXB Học Viện Công Nghệ Bưu Chính Viễn Thông
Năm: 2006
[4] Nguyễn Đình Phú, Giáo trình thực tập Vi xử lý, Trường Đại học Sư phạm Kỹ thuật TP.HCM, 2014 Sách, tạp chí
Tiêu đề: Giáo trình thực tập Vi xử lý
Tác giả: Nguyễn Đình Phú
Nhà XB: Trường Đại học Sư phạm Kỹ thuật TP.HCM
Năm: 2014
[5] Nguyễn Đình Phú, Nguyễn Trường Duy, Giáo trình Kỹ Thuật Số. Trường Đại học Sư phạm Kỹ thuật TP HCM: Nhà xuất bản ĐH Quốc Gia Thành phố Hồ Chí Minh, 2013 Sách, tạp chí
Tiêu đề: Giáo trình Kỹ Thuật Số
Tác giả: Nguyễn Đình Phú, Nguyễn Trường Duy
Nhà XB: Nhà xuất bản ĐH Quốc Gia Thành phố Hồ Chí Minh
Năm: 2013
[6] Đỗ Thị Phương (2017). Nghiên cứu và đánh giá các phương pháp nội suy ảnh viễn thám cho bài toán phân loại lớp phủ đô thị tại Việt Nam. Luận Văn Thạc Sĩ, Trường Đại Học Công Nghệ.* Tài liệu tiếng Anh Sách, tạp chí
Tiêu đề: Nghiên cứu và đánh giá các phương pháp nội suy ảnh viễn thám cho bài toán phân loại lớp phủ đô thị tại Việt Nam
Tác giả: Đỗ Thị Phương
Nhà XB: Trường Đại Học Công Nghệ
Năm: 2017
[7] Gady Adam, Introduction to programming with OpenCv. Department of Computer Science Illinois Institute of Technology, Mỹ, 2006 Sách, tạp chí
Tiêu đề: Introduction to programming with OpenCv
Tác giả: Gady Adam
Nhà XB: Department of Computer Science Illinois Institute of Technology
Năm: 2006
[8] Kamarul Hawari Ghazali, Feature Extraction technique using SIFT keypoints descriptors. The International Conference on Electrical and Engineering and Informatics Institut technology Bandung, Indonesia, June 17-19, 2007 Sách, tạp chí
Tiêu đề: Feature Extraction technique using SIFT keypoints descriptors
Tác giả: Kamarul Hawari Ghazali
Nhà XB: The International Conference on Electrical and Engineering and Informatics
Năm: 2007
[9] Roberto Brunelli, Template Matching Techniques in Computer Vision: Theory and Practice. Italia, Wiley Publishing, 2009 Sách, tạp chí
Tiêu đề: Template Matching Techniques in Computer Vision: Theory and Practice
Tác giả: Roberto Brunelli
Nhà XB: Wiley Publishing
Năm: 2009

TỪ KHÓA LIÊN QUAN

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

w