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

(Đồ án hcmute) ứng dụng kit raspberry pi vào 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.61 MB, 79 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA ĐIỆN - ĐIỆN TỬ

ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN - ĐIỆN TỬ

ỨNG DỤNG KIT RASPBERRY PI VÀO XỬ LÝ ẢNH

GVHD: ThS. NGUYỄN DUY THẢ O
SVTH: LÊ ĐỨC THUẬN
MSSV: 10101134
SVTH: VÕ VĂN HOÀNG
MSSV: 10101045

SKL 0 0 4 2 8 5

Tp. Hồ Chí Minh, tháng 2/2016

do an


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬTTP. HỒ CHÍ MINH
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP

ĐỒ ÁN TỐT NGHIỆP

HCMUTE
Đề tài:ỨNG DỤNG KIT RASPBERRY PI


VÀO XỬ LÝ ẢNH
NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN - ĐIỆN TỬ

SVTH: LÊ ĐỨC THUẬN
MSSV: 10101134
SVTH: VÕ VĂN HOÀNG
MSSV: 10101045
GVHD: ThS. NGUYỄN DUY THẢO

Tp. Hồ Chí Minh, 2/2016

do an


TRƯỜNG ĐH. SƯ PHẠM KỸ THUẬT

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
ĐỘC LẬP - TỰ DO - HẠNH PHÚC

TP. HỒ CHÍ MINH
KHOA ĐIỆN-ĐIỆN TỬ

Tp. HCM, ngày 15 tháng 1 năm 2016

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Võ Văn Hoàng

MSSV: 10101045

Lê Đức Thuận


MSSV: 10101134

Chuyên ngành:

Kỹ thuật Điện - Điện tử

Mã ngành:

01

Hệ đào tạo:

Đại học chính quy

Mã hệ:

1

Khóa:

2010

Lớp:

101011

Họ tên sinh viên:

1. Thông tin đề tài


Tên của đề tài: ỨNG DỤNG KIT RASPBERRY PI VÀO XỬ LÝ ẢNH
Mục đích của đề tài:
Đồ án tốt nghiệp được thực hiện tại: Bộ môn Điện Tử Công Nghiệp, Khoa Điện - Điện
Tử, Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh.
Thời gian thực hiện: Từ ngày 10/10/2015 đến 15/01 /2016
2. Các nhiệm vụ cụ thể của đề tài
- Tìm hiểu tổng quan về kit raspberry pi.
- Tìm hiểu tổng quan về xử lý ảnh.
- Xử lý ảnh trên kit Raspberry Pi.
- Kết quả thực hiện.
3. Lời cam đoan của sinh viên
Chúng tơi – Lê Đức Thuận và Võ Văn Hồng cam đoan ĐATN là cơng trình nghiên
cứu của bản thân chúng tôi dưới sự hướng dẫn của thạc sỹ Nguyễn Duy Thảo.
Các kết quả công bố trong ĐATN là trung thực và khơng sao chép từ bất kỳ cơng trình
nào khác.
Tp.HCM, ngày 15 tháng 01 năm 2016
SV thực hiện đồ án
Lê Đức Thuận Võ Văn Hoàng
Tp.HCM, ngày 15 tháng 01 năm 2016
Giáo viên hướng dẫn

Xác nhận của Bộ Môn

(Ký ghi rõ họ tên và học hàm học vị)

xi

do an



TRƯỜNG ĐẠI HỌC SPKT TPHCM

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Khoa Điện - Điện Tử

Độc lập - Tự do - Hạnh phúc

Bộ Mơn Điện Tử Cơng Nghiệp
Tp. Hồ Chí Minh, ngày 15 tháng 01 năm 2016

LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên 1: Lê Đức Thuận ...........................................................................................
Lớp: 101011A................................................................... MSSV: 10101134 ........................
Họ tên sinh viên 2: Võ Văn Hoàng ..........................................................................................
Lớp: 101011A................................................................... MSSV: 10101045 ........................
Tên đề tài: ỨNG DỤNG KIT RASPBERRY PI VÀO XỬ LÝ ẢNH

Tuần/ngày

Xác nhận
GVHD

Nội dung
Chuẩn bị kit Raspberry.

10/10-30/10
Tìm hiểu về kit Raspbery Pi.
30/10 – 10/11


Tìm hiểu về ngôn ngữ lập trình Python.

10/11 – 5/12

Tìm hiểu về lý thuyết xử lý ảnh.

5/12 – 25/12

Xử lý ảnh trên kit Raspberry Pi.

25/12 – 15/01

Hoàn Thiện Đồ Án

GV HƯỚNG DẪN
(Ký và ghi rõ họ và tên)

xii

do an


LỜI CẢM ƠN
Trong thời gian làm đồ án tốt nghiệp, chúng tơi đã 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ơ, gia đình và bạn bè. Chúng tơi xin
gửi lời cảm ơn chân thành đến Thạc sỹ Nguyễn Duy Thảo, giảng viên Bộ môn Điện
Tử Công Nghiệp trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh người đã
tận tình hướng dẫn, chỉ bảo chúng tơi trong suốt q trình làm khố luận.
Chúng tơi cũng xin chân thành cảm ơn các thầy cô giáo trong trường Đại học Sư

phạm Kỹ thuật Thành phố Hồ Chí Minh nói chung, các thầy cơ trong Bộ mơn Điện Tử
Cơng Nghiệp nói riêng đã dạy dỗ cho chúng tôi kiến thức về các môn đại cương cũng
như các môn chuyên ngành, giúp chúng tơi có được cơ sở lý thuyết vững vàng và tạo
điều kiện cho chúng tơi trong q trình học tập.
Cuối cùng, chúng tơi xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều
kiện, quan tâm, giúp đỡ, động viên chúng tơi trong suốt q trình học tập và hồn
thành khố luận tốt nghiệp.

Tp.HCM, ngày 15 tháng 01 năm 2016
Sinh Viên Thực Hiện
Lê Đức Thuận

Võ Văn Hoàng

i

do an


MỤC LỤC
PHẦN A: GIỚI THIỆU.............................................................................
Danh mục hình .................................................................................................................... vi
Các từ viết tắt ......................................................................................................................ix

PHẦN B: NỘI DUNG ................................................................................
CHƯƠNG 1:GIỚI THIỆU YÊU CẦU – GIỚI HẠN CỦA ĐỀ TÀI ................. 1
1.1 Giới thiệu ...................................................................................................................1
1.2 Mục tiêu .....................................................................................................................1

CHƯƠNG 2. KIT RASPBERRY PI ......................................................... 2

2.1 Kit Raspberry Pi .......................................................................................................2
2.1.1 Giới thiệu tổng quan ........................................................................................2
2.1.2 Các phiên bản hiện tại của kit Raspberry Pi .................................................3
2.1.3 Các kết nối với Raspberry Pi 2.......................................................................4
2.1.4 Hệ điều hành – phần mềm. .............................................................................5
2.1.5 Cài đặt phần mềm cho kit Raspberry Pi........................................................5
2.2 Ngơn ngữ lập trình Python ......................................................................................7
2.2.1 Giới thiệu Python .............................................................................................7
2.2.2 Đặc điểm của ngôn ngữ Python .....................................................................7

CHƯƠNG 3. TỔNG QUAN VỀ XỬ LÝ ẢNH.......................................... 9
3.1 Giới thiệu ...................................................................................................................9
3.1.1 Hệ thống xử lý ảnh...........................................................................................9
3.1.2 Các thành phần trong một hệ thống xử lý ảnh .......................................... 10
3.2 Các khái niệm cơ bản. ........................................................................................... 10
3.2.1 Ảnh và điểm ảnh ........................................................................................... 10
3.2.2 Phân loại ảnh ................................................................................................. 11
3.2.3 Độ phân giải................................................................................................... 11
3.2.4 Điểm ảnh lân cận .......................................................................................... 11
3.3 Không gian màu..................................................................................................... 12
3.3.1 Không gian màu RGB .................................................................................. 12
3.3.2 Không gian màu CMYK .............................................................................. 13
ii

do an


3.3.3 Khơng gian màu HSV .................................................................................. 13
3.4 Phóng to, thu nhỏ và xoay ảnh ............................................................................. 14
3.4.1 Biến đổi Affine .............................................................................................. 14

3.5 Xử lý hình thái học trên ảnh ............................................................................ 15
3.5.1 Phần tử cấu trúc ............................................................................................. 15
3.5.2 Phép toán co (Erosion) .................................................................................. 17
3.5.3 Phép toán giãn nở (Dialtion) ........................................................................ 18
3.5.4 Phép tốn mở (opening) và đóng (closing) ................................................ 18
3.6 Tách biên ảnh ......................................................................................................... 19
3.6.1 Tách biên theo đạo hàm bậc 1...................................................................... 21
3.6.2 Phát hiện biên theo đạo hàm bậc 2 .............................................................. 21
3.6.3 Bộ tách biên Canny ....................................................................................... 23
3.7 Chuyển đổi Hough cho đường thẳng, đường tròn ............................................. 23
3.7.1 Chuyển đồi Hough cho đường thẳng .......................................................... 23
3.7.2 Chuyển đồi hough cho đường tròn .............................................................. 24
3.8 Xử lý điểm .............................................................................................................. 24
3.8.1 Xử lý lược đồ (Histogram) ........................................................................... 25
3.8.2 Cân bằng Histogram...................................................................................... 25

CHƯƠNG 4. ỨNG DỤNG KIT RASPBERRY PI VÀO XỬ LÝ ẢNH.... 29
4.1 Chuyển đổi giữa các không gian màu ................................................................. 29
4.1.1 Chuyển đổi RGB sang CMYK và ngược lại .............................................. 29
4.1.2 Chuyển đổi RGB sang HSV và ngược lại .................................................. 29
4.1.3 Lưu đồ giải thuật............................................................................................ 30
4.1.4 Code lập trình trên kit Raspberry Pi ............................................................ 32
4.1.5 Kết quả ........................................................................................................... 33
4.2 Phóng to, thu nhỏ và xoay ảnh ............................................................................. 34
4.2.1 Lưu đồ giải thuật............................................................................................ 34
4.2.2 Code lập trình trên kit Raspberry Pi ............................................................ 35
4.2.3 Kết quả ........................................................................................................... 35
4.3 Pha trộn hình ảnh.................................................................................................... 35
4.3.1 Lưu đồ giải thuật ........................................................................................... 36
4.3.2 Code lập trình trên kit Raspberry Pi ............................................................ 37

iii

do an


4.3.3 Kết quả ........................................................................................................... 37
4.4 Xử lý hình thái học trên ảnh ............................................................................... 38
4.4.1 Các bước thực hiện phép co ảnh trên ảnh nhị phân ................................. 38
4.4.2 Các bước thực hiện phép giãn nở ảnh trên ảnh nhị phân ........................ 38
4.4.3 Các bước thực hiện phép mở ảnh và đóng ảnh .......................................... 38
4.4.4 Lưu đồ giải thuật............................................................................................ 39
4.4.5 Code lập trình trên kit Raspberry Pi ............................................................ 41
4.4.6 Kết quả thực hiện trên ảnh nhị phân ........................................................... 42
4.5 Bộ tách biên Canny ............................................................................................... 43
4.5.1 Các bước tìm biên dùng phương pháp Canny............................................ 43
4.5.2 Lưu đồ giải thuật............................................................................................ 46
4.5.3 Code lập trình trên kit Raspberry Pi ............................................................ 47
4.5.4 Kết quả ........................................................................................................... 47
4.6 Chuyển đồi Hough, phát hiện đường thẳng, đường tròn trong ảnh................. 48
4.6.1 Chuyển đổi Hough cho đường thẳng ......................................................... 48
4.6.2 Chuyển đổi Hough cho đường tròn ............................................................ 48
4.6.3 Lưu đồ giải thuật............................................................................................ 49
4.6.4 Code lập trình trên kit Raspberry Pi ............................................................ 50
4.6.5 Kết quả ........................................................................................................... 52
4.7 So khớp mẫu........................................................................................................... 53
4.7.1 Lưu đồ giải thuật............................................................................................ 55
4.7.2 Code lập trình trên kit Raspberry Pi ............................................................ 56
4.7.3 Kết quả ........................................................................................................... 57
4.8 Xử lý lược đồ ......................................................................................................... 58
4.8.1 Vẽ Histogram của một ảnh ........................................................................... 58

4.8.2 Cân bằng histogram....................................................................................... 58
4.8.3 Lưu đồ giải thuật............................................................................................ 59
4.8.4 Code lập trình trên kit Raspberry Pi ............................................................ 61
4.8.5 Kết quả ........................................................................................................... 62

CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.......................... 63
5.1 Kết luận .................................................................................................................. 63
5.2 Hướng phát triển .................................................................................................... 63
iv

do an


TÀI LIỆU THAM KHẢO ......................................................................................... 64
PHỤ LỤC

............................................................................................ x

v

do an


DANH MỤC HÌNH
Hình 2.1 Kit Raspberry Pi ......................................................................................................... 2
Hình 2.2 Sơ đồ GPIO ................................................................................................................. 4
Hình 2.3 Các cổng giao tiếp ngoại vi ....................................................................................... 4
Hình 2.4 Ghi phần mềm vào thẻ nhớ........................................................................................ 6
Hình 3.1 Các lĩnh vực nghiên cứu chính trong xử lý ảnh số ................................................ 9
Hình 3.2 Các thành phần cơ bản trong hệ thống xử lý ảnh đa dụng..................................... 10

Hình 3.3 Ảnh với các độ phân giải khác nhau......................................................................... 11
Hình 3.4 Các dạng lân cận cơ bản............................................................................................. 12
Hình 3.5 Mơ hình hệ màu RGB ................................................................................................ 12
Hình 3.6 Mơ hình hệ màu CMYK ............................................................................................ 13
Hình 3.7 Khơng gian màu HSV ................................................................................................ 14
Hình 3.8 Hình trịn biểu diễn màu sắc (Hue) .......................................................................... 14
Hình 3.9 Mơ tả phép biến đổi phóng to ảnh 2 lần .................................................................. 15
Hình 3.10 Mơ tả phép quay ảnh với góc 𝜃 .............................................................................. 15
Hình 3.11 Một số hình dáng của phần tử cấu trúc phẳng....................................................... 16
Hình 3.12 Một mặt nạ xác định hàng xóm của phần tử cấu trúc khơng phẳng ................... 16
Hình 3.13 Ma trận giá trị thực tương ứng với hàng xóm trong phần tử cấu trúc khơng
phẳng ............................................................................................................................................. 16
Hình 3.14 Một số cấu trúc phần tử ảnh .................................................................................... 17
Hình 3.15 Ví dụ về phép co ảnh................................................................................................ 17
Hình 3.16 Ví dụ về phép giãn ảnh ............................................................................................ 18
Hình 3.17 Các mơ hình biên...................................................................................................... 19
Hình 3.18 Biên được xét theo hai chiều................................................................................... 20
Hình 3.19 Mơ hình biên bước và biên dốc .............................................................................. 20
Hình 3.20 Thực hiện chuyển vị phẳng với cửa sổ trung bình 2x2 ....................................... 20
Hình 3.21 Gradient theo hàng và cột của ảnh ......................................................................... 21
Hình 3.22 biểu diễn đường thẳng trong tọa độ cực ................................................................ 24
Hình 3.23 Histogram của một ảnh được cho là thiếu sáng .................................................... 25
Hình 3.24 Hàm biến đổi tăng đơn điệu với hiện tượng nhiều giá trị mức xám .................. 26
Hình 3.25 Hàm PDF và kết quả khi chuyển đổi trong biểu thức (3.22).............................. 27
vi

do an


Hình 4.1 Lưu đồ chuyển đổi RGB sang CMYK .................................................................... 30

Hình 4.2 Lưu đồ chuyển đổi RGB sang HSV ......................................................................... 31
Hình 4.3 Lưu đồ chuyển đổi HSV sang RGB ......................................................................... 32
Hình 4.4 Ảnh RGB ..................................................................................................................... 33
Hình 4.5 Ảnh CMYK.................................................................................................................. 33
Hình 4.6 Ảnh HSV...................................................................................................................... 33
Hình 4.7 Lưu đồ phóng to, thu nhỏ và xoay ảnh..................................................................... 34
Hình 4.8 Ảnh gốc ...................................................................................................................... 35
Hình 4.9 Ảnh sau khi xoay 45 o và thu nhỏ 20% ..................................................................... 35
Hình 4.10 Lưu đồ hịa trộn hình ảnh......................................................................................... 36
Hình 4.11 Ảnh thứ nhất .............................................................................................................. 37
Hình 4.12 Ảnh thứ hai ................................................................................................................ 37
Hình 4.13 Kết quả ....................................................................................................................... 37
Hình 4.14 lưu đồ giải thuật phép co ảnh .................................................................................. 39
Hình 4.15 lưu đồ giải thuật phép giãn ảnh ............................................................................... 40
Hình 4.16 lưu đồ giải thuật phép mở ảnh................................................................................. 41
Hình 4.17 lưu đồ giải thuật phép đóng ảnh.............................................................................. 41
Hình 4.18 Ảnh trước khi co ...................................................................................................... 42
Hình 4.19 Ảnh sau khi co .......................................................................................................... 42
Hình 4.20 Ảnh trước khi giãn nở .............................................................................................. 42
Hình 4.21 Ảnh sau khi giãn nở ................................................................................................. 42
Hình 4.22 Ảnh trước khi mở ..................................................................................................... 43
Hình 4.23 Ảnh sau khi mở......................................................................................................... 43
Hình 4.24 Ảnh trước khi đóng .................................................................................................. 43
Hình 4.25 Ảnh sau khi đóng...................................................................................................... 43
Hình 4.26 Lưu đồ giải thuật phương pháp tách biên Canny .................................................. 46
Hình 4.27 Kết quả tách biên Canny .......................................................................................... 47
Hình 4.28 giao điểm của các đường cong khác nhau thuộc về một đường thẳng .............. 48
Hình 4.29 Lưu đồ giải thuật chuyển đổi Hough tìm đường thẳng trong ảnh ...................... 49
Hình 4.30 Lưu đồ giải thuật chuyển đổi Hough tìm đường trịn trong ảnh......................... 50
Hình 4.31 Ảnh ban đầu .............................................................................................................. 52

Hình 4.32 Kết quả sau khi tìm đường thẳng ............................................................................ 52

vii

do an


Hình 4.33 Ảnh ban đầu ............................................................................................................. 52
Hình 4.34 Ảnh sau khi tìm đường trịn .................................................................................... 52
Hình 4.35 Sử dụng mẫu để nhận dạng các đối tượng............................................................. 53
Hình 4.36 So sánh hình với mẫu ............................................................................................... 53
Hình 4.37 Lưu đồ giải thuật so khớp mẫu ............................................................................... 55
Hình 4.38 Hình ảnh ban đầu ...................................................................................................... 57
Hình 4.39 Ảnh mẫu..................................................................................................................... 57
Hình 4.40 Kết quả sau khi tìm kiếm......................................................................................... 57
Hình 4.41 lưu đồ giải thuật vẽ histogram ................................................................................ 59
Hình 4.42 Lưu đồ giải thuật cân bằng histogram.................................................................... 60
Hình 4.43 Ảnh ban đầu .............................................................................................................. 62
Hình 4.45 Ảnh sau khi cân bằng histogram............................................................................. 62
Hình 4.46 Biểu đồ histogram của ảnh xám.............................................................................. 62
Hình 4.47 Biểu đồ histogram sau khi cân bằng....................................................................... 62

viii

do an


CÁC TỪ VIẾT TẮT
GPIO: là viết tắt của General Purpose Input Output. GPIO chính là cửa ngõ để giao
tiếp giữa kit raspberry pi với các thiết bị ngoại vi.

SoC: là viết tắt của từ Socket. Nhân xử lý của kit raspberry pi.
CPU: là viết tắt của chữ Central Processing Unit. Là bộ xử lí trung tâm của kit.
GPU: là viết tắt của Graphics Processing Unit là một bộ vi xử lý chuyên dụng nhận
nhiệm vụ tăng tốc, xử lý đồ họa cho bộ vi xử lý trung tâm CPU.
HĐH : Hệ điều hành.
OEM: viết tắt của Original Equipment Manufacturer. Nhà sản xuất phụ tùng gốc.
Rpi: Raspberry pi

ix

do an


TÓM TẮT
Cùng với sự phát triển ngày càng mạnh mẽ của khoa học kĩ thuật trong một vài
thập kỷ gần đây, xử lý ảnh tuy là một ngành khoa học còn tương đối mới mẻ so với
nhiều ngành khoa học khác nhưng hiện nay nó đang là một trong những lĩnh vực phát
triển rất nhanh và thu hút sự quan tâm đặc biệt từ các nhà khoa học, thúc đẩy các trung
tâm nghiên cứu, ứng dụng về lĩnh vực hấp dẫn này. Xử lý ảnh đóng vai trị quan trọng
trong nhiều ứng dụng thực tế về khoa học kĩ thuật cũng như trong cuộc sống thường
ngày như: sản xuất và kiểm tra chất lượng, sự di chuyển của Robot, các phương tiện đi
lại tự trị, công cụ hướng dẫn cho người mù, an ninh và giám sát, nhận dạng đối tượng,
nhận dạng mặt, các ứng dụng trong y học, sản xuất, hiệu chỉnh video,…
Kit raspberry pi hiện đang là loại Kit có độ ứng dụng cao trong khoa học kỹ thuật
vì sự nhỏ gọn và mạnh mẽ của nó.
Nhận thấy điều này, nhóm chúng em quyết định chọn đề tài “Ứng Dụng Kit
Raspberry Pi Vào Xử Lý Ảnh ” nhằm đưa ra một số giải pháp xử lý ảnh để áp dụng
vào đời sống.
Đề tài bao gồm những phần như sau :
Chương 1: Dẫn nhập vào đề tài, đặt vấn đề, lý do tới đối tượng nghiên cứu.

Chương 2: Giới thiệu tổng quan về kit raspberry pi, c ấu hình cơ bản của kit
Raspberry Pi và môi trường làm việc trên Python.
Chương 3: Giới thiệu về xử lý ảnh, những kiến thức về ảnh và những toán tử liên
quan cho xử lý ảnh được trình bày trong phần này.
Chương 4: Cuối cùng chúng ta sẽ giải một số bài toán xử lý ảnh trên kit
Raspberry Pi từ xây dựng lưu đồ giải thuật đến lập trình trên Kit.

x

do an


ĐỒ ÁN TỐT NGHIỆP

CHƯƠNG 1:
GIỚI THIỆU YÊU CẦU – GIỚI HẠN CỦA ĐỀ TÀI
1.1 GIỚI THIỆU
Cùng với sự phát triển ngày càng mạnh mẽ của khoa học kĩ thuật trong một vài
thập kỷ gần đây, xử lý ảnh tuy là một ngành khoa học còn tương đối mới mẻ so với
nhiều ngành khoa học khác nhưng hiện nay nó đang là một trong những lĩnh vực phát
triển rất nhanh và thu hút sự quan tâm đặc biệt từ các nhà khoa học, thúc đẩy các trung
tâm nghiên cứu, ứng dụng về lĩnh vực hấp dẫn này. Xử lý ảnh đóng vai trò quan trọng
trong nhiều ứng dụng thực tế về khoa học kĩ thuật cũng như trong cuộc sống thường
ngày như: sản xuất và kiểm tra chất lượng, sự di chuyển của Robot, các phương tiện đi
lại tự trị, công cụ hướng dẫn cho người mù, an ninh và giám sát, nhận dạng đối tượng,
nhận dạng mặt, các ứng dụng trong y học, sản xuất, hiệu chỉnh video,…
Hiện nay môn Xử Lý Ảnh đang được giảng dạy trong rất nhiều trường đại học,
tuy nhiên mức độ thực hành trên một Board mạch nào đó vẫn cịn rất hạn chế. Nhận
thấy điều này nhóm chúng tơi quyết định thực hiện đề tài “ Ứng dụng kit Raspberry Pi
vào xử lý ảnh ” nhằm làm phong phú hơn cho môn Xử Lý Ảnh cũng như làm tài liệu

tham khảo cho các bạn sinh viên khóa sau và các bạn đam mê mơn Xử Lý Ảnh có thể
tham khảo.
1.2 MỤC TIÊU
Do hạn chế về thời gian do đó chúng tơi chỉ tập trung xử lý các bài toán xử lý
ảnh đơn giản và phố biến trên kit Raspberry Pi.
Kết quả của đề tài chỉ giới hạn trong phạm vi là tài liệu hướng dẫn thực hành trên
kit raspberry pi chứ chưa áp dụng thực tiễn vào đời sống.

CHƯƠNG 1: GIỚI THIỆU YÊU CẦU – GIỚI HẠN CỦA ĐỀ TÀI

do an

1


ĐỒ ÁN TỐT NGHIỆP

CHƯƠNG 2: KIT RASPBERRY PI
2.1 Kit Raspberry Pi [6]
2.1.1 Giới thiệu tổng quan
Raspberry Pi là cái máy tính giá 35USD kích cỡ như thẻ ATM và chạy
HĐH Linux. Với mục tiêu chính của chương trình là giảng dạy máy tính cho trẻ em.
Được phát triển bởi Raspberry Pi Foundation – là tổ chức phi lợi nhuận với tiêu chí
xây dựng hệ thống mà nhiều người có thể sử dụng được trong những công việc tùy
biến khác nhau.
Raspberry Pi sản xuất bởi 3 OEM: Sony, Qsida, Egoman. Và được phân phối
chính bởi Element14, RS Components và Egoman.
Raspberry Pi ban đầu là một thẻ card được cắm trên bo mạch máy tính được phát
triển bởi các nhà phát triển ở Anh. Sau đó Raspberry Pi đã được phát triển thành một
bo mạch đơn có chức năng như một máy tính mini dùng để giảng dạy trong mơn khoa

học máy tính ở các trường trung học.
Raspberry Pi được phát triển đầu tiên vào năm 2012 .

Hình 2.1 Kit Raspberry Pi

CHƯƠNG 2: KIT RASPBERRY PI

do an

2


ĐỒ ÁN TỐT NGHIỆP
2.1.2 Các phiên bản hiện tại của kit raspberry pi

Version

Model
A

Loại thẻ
nhớ

SD-Card

GPIO

ARM1176JZF-S

700 Mhz


256MB

Camera/ display socket
1 jack audio, 1 jack video

Micro

A+

SD-Card

B

RAM

26 chân ,1 USB, 1 HDMI

Model

Model

Tốc độ

CPU

ARM1176JZF-S
SoC: Bộ xử lý

40 chân,1 USB,1 HDMI

700 MHz

256MB

BCM28365

1 jack audio/ video

26 chân,2 USB,1 HDMI

ARM1176JZF-S
SD-Card

SoC: Bộ xử lý

700 MHz

512MB

BCM28365

Model

Micro

B+

SD-Card

700 MHz


512MB

A7(32 bit)

Pi 2

SD-Card

SoC: Bộ xử lý

Micro

900 Mhz

1GB

Pi Zero

SD-Card

1 LAN,1 micro USB
Camera/display socket
1 jack audio/ video

Nhân ARM11
SoC:Broadcom

Camera/ display socket


40 chân,4 USB,1 HDMI

BCM2836

Model

1 LAN,1 micro USB

1 jack audio/video

ARM Cortex
Micro

Camera/ display socket

40 chân, 4 USB,1 HDMI

BCM28365

Model

1 LAN

1 jack audio,1 jack video

ARM1176JZF-S
SoC: Bộ xử lý

Camera/ display socket


1GHz

BCM2835

CHƯƠNG 2: KIT RASPBERRY PI

do an

512MB

40 chân,1 HDMI
2 microUSB

3


ĐỒ ÁN TỐT NGHIỆP
2.1.3 Các kết nối với Raspberry Pi 2

Hình 2.2 Sơ đồ GPIO

Hình 2.3 Các cổng giao tiếp ngoại vi

CHƯƠNG 2: KIT RASPBERRY PI

do an

4



ĐỒ ÁN TỐT NGHIỆP
2.1.4 Hệ điều hành – phần mềm [5]
Có 5 phiên bản hệ điều hành được cung cấp chính thức cho Raspberry Pi:
Raspian "wheezy" (khuyên dùng) : Đây là distro dựa trên Debian wheezy, sử
dụng hard-float ABI (tính toán dấu chấm động bằng phần cứng) cho thời gian chạy các
ứng dụng nhanh hơn. Có sẵn giao diện đồ họa. Phù hợp với người mới bắt đầu tiếp cận
Linux vì tính dễ sử dụng và trực quan.
Soft-float "w heezy": Vẫn được xây dựng dựa trên Debian wheezy nhưng việc
xử lý dấu chấm động được thực hiện bằng phần mềm. Việc này giúp bạn có thể sử
dụng máy ảo Java (Oracle JVM) trên Raspberry.
Arch Linux: Phiên bản giành cho ARM. Đảm bảo thời gian khởi động trong
vòng 10 giây. Chỉ khởi động và load các gói cần thiết. Để sử dụng được Arch Linux
bạn cần có kiến thức cơ bản về Linux.
Pidora: Là phiên bản của Fedora được tối ưu cho RPi, có sẵn giao diện đồ họa.
Giành cho những ai đã quen xài Fedora.
RISC OS: Là hệ điều hành do nhóm phát triển ARM thiết kế riêng. Đây khơng
phải là một phiên bản Linux, do vậy bạn cần làm quen với cấu trúc và câu lệnh đặc
trưng cho hệ điều hành này.
Ngồi ra cịn nhiều hệ điều hành khác bạn có thể cài đặt: Raspbmc, Android...
2.1.5 Cài đặt phần mềm cho kit Raspberry Pi [5]
Chuẩn bị:


Board mạch Raspberry Pi với bộ nguồn khoảng 700mA trở lên.



Hệ điều hành: Bạn có thể download bất kỳ hệ điều hành nào từ trang chủ
Raspberry Pi. Ở đây tôi sẽ sử dụng Raspbian Weezy.




Thẻ nhớ: Theo khuyến cáo là 4GB.



Màn hình hỗ trợ HDMI hoặc RCA.



Bàn phím USB.



Phần mềm Win32DiskImager (chạy trên windows).

CHƯƠNG 2: KIT RASPBERRY PI

do an

5


ĐỒ ÁN TỐT NGHIỆP

Tiến hành:
Đầu tiên bạn nối thẻ nhớ với máy tính sau đó dùng phần mềm Win32DiskImager
để ghi ảnh hệ điều hành xuống.

Hình 2.4 Ghi phần mềm vào thẻ nhớ

Chỉ cần chọn file ảnh hệ điều hành (giải nén từ file nén download ở trên.), chú ý
chọn đúng ổ USB, nhấn Write và chờ đợi.
Sau khi ảnh hệ điều hành đã được ghi xuống thẻ nhớ, bạn cắm thẻ nhớ vào
Raspberry Pi, kết nối bàn phím, màn hình và nối nguồn. Như vậy là ta đã hoàn thành
cài hệ điều hành cho Pi.
Sau khi đã kết nối màn hình và bàn phím, cấp nguồn và hệ thống sẽ tự động boot,
để đăng nhập, bạn dùng username và password mặc định là: pi/raspberry. Hệ thống
đã được cài sẵn giao diện XDE, bạn có thể bật giao diện này bằng lệnh startx.

CHƯƠNG 2: KIT RASPBERRY PI

do an

6


ĐỒ ÁN TỐT NGHIỆP
2.2 Ngơn ngữ lập trình Python
2.2.1 Giới thiệu Python
Python là một ngơn ngữ lập trình thơng dịch do Guido van Rossum tạo ra năm
1990. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động, do vậy
nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl. Python được phát triển trong
một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý.
Theo đánh giá của Eric S. Raymond, 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, như nhận định của
chính Guido van Rossum trong một bài phỏng vấn ông.
Ban đầu, Python được phát triển để chạy trên nền Unix. Nhưng rồi theo thời gian,
nó đã “bành trướng” sang mọi hệ điều hành từ MS-DOS đến Mac


OS, OS/2,

Windows, Linux và các hệ điều hành khác thuộc họ Unix. Mặc dù sự phát triển của
Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van Rossum hiện nay vẫn
là tác giả chủ yếu của Python. Ông giữ vai trò chủ chốt trong việc quyết định hướng
phát triển của Python.
2.2.2 Đặc điểm của ngôn ngữ Python
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ữ thường.
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.Trái lại Python 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 cha
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 (built-in) 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

CHƯƠNG 2: KIT RASPBERRY PI

do an

7


ĐỒ ÁN TỐT NGHIỆP

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ác cấu trúc điều
khiển chúng bao gồm: if,esif,else,while,for…
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à latent typing (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,float,list,str,dict,set…
Module: Python cho phép chia chương trình thành các module để có thể sử
dụng lại trong các chương trình khác. Nó cũng cung cấp sẵn một tập hợp các modules
chuẩn mà lập trình viên có thể sử dụng lại trong chương trình của họ. Các
module này cung cấp nhiều chức năng hữu ích, như các hàm truy xuất tập tin, các lời
gọi hệ thống, trợ giúp lập trình mạng (socket),...

Đa năng: Python là một ngơn ngữ lập trình đơn giản nhưng rất hiệu quả. Python
là một ngơn ngữ lập trình cấp cao có thể đáp ứng phần lớn yêu cầu của lập trình viên.

CHƯƠNG 2: KIT RASPBERRY PI

do an

8


ĐỒ ÁN TỐT NGHIỆP

CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH
3.1 Giới thiệu
3.1.1 Hệ thống xử lý ảnh [1]
Trong những năm gần đây, mặc dù còn rất mới mẻ trong lĩnh vực khoa học và
công nghệ nhưng xử lý ảnh đang được nghiên cứu và phát triển với tốc độ nhanh
chóng bởi các trung tâm nghiên c ứu, trường đại học… với rất nhiều ứng dụng trên các
lĩnh vực khác nhau.
Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng nhằm nâng cao chất lượng
bằng các phương pháp phân tích được nghiên cứu trong giai đoạn thiết bị phần cứng
bị hạn chế, chẳng hạn như nâng cao độ sáng hay độ phân giải của hình ảnh…Về sau,
nhờ sự xuất hiện và phát triển mạnh của máy tính đã tạo điều kiện hơn nữa cho quá
trình thực hiện các thuật toán xử lý ảnh. Ứng dụng của xử lý ảnh ngày càng được mở
rộng sang các lĩnh vực khác, chẳng hạn như viễn thông, điều khiển tự động, giao
thông thông minh, kỹ thuật y sinh…Đặc biệt, trong các thiết bị kỹ thuật số có màn
hình hiển thị ln ưu tiên một phần tài nguyên dành cho việc xử lý hình ảnh: máy tính
xách tay, camera kỹ thuật số, điện thoại thơng minh, tivi thơng minh…

Hình 3.1 Các lĩnh vực nghiên cứu chính trong xử lý ảnh số


CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH

do an

9


ĐỒ ÁN TỐT NGHIỆP
Thông thường, xử lý ảnh số bao gồm nhiều vấn đề khác nhau, tuy nhiên, có thể
chia thành 4 lĩnh vực chính như hình 3.1: tạo lập ảnh, biểu diễn, phân tích và quản lý.
Bên cạnh đó, các thuật tốn tăng cường ảnh có thể được xem xét như là một bước tiền
hay hậu xử lý trong tất cả các lĩnh vực trên.
3.1.2 Các thành phần trong một hệ thống xử lý ảnh [1]
Thông thường, một hệ thống xử lý ảnh có thể được xem như một hệ thống đa
năng gồm các thành phần cơ bản như: cảm biến hình ảnh, phần cứng xử lý ảnh
chuyên dụng, máy tính, phần mềm xử lý, bộ nhớ, màn hình hiển thị, in ấn và mạng
như hình 3.2.

Hình 3.2 Các thành phần cơ bản trong hệ thống xử lý ảnh đa dụng
3.2 Các khái niệm cơ bản
3.2.1 Ảnh và điểm ảnh [1]
Ảnh số là một tập hợp của nhiều điểm ảnh, hay còn gọi là pixel. Mỗi điểm ảnh biểu
diễn một màu sắc nhất định (hay độ sáng với ảnh đen trắng) tại một điểm duy nhất, có
thể xem một điểm ảnh giống như một chấm nhỏ trong một tấm ảnh màu. Bằng phương
pháp đo lường và thống kê một lượng lớn các điểm ảnh, chúng ta hồn tồn có thể tái cấu
trúc các điểm ảnh này thành một ảnh mới gần giống với ảnh gốc. Có thể nói pixel gần
giống như các phần tử có cấu trúc hạt trên một ảnh thông thường nhưng được sắp xếp
CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH


do an

10


ĐỒ ÁN TỐT NGHIỆP
theo từng hàng và cột và chứa các thơng tin khác nhau.
3.2.2 Phân loại ảnh [1]
Có 2 dạng quan trọng trong ảnh số được dùng với nhiều mục đích khác nhau là
ảnh màu và ảnh đen trắng (hay cịn gọi là ảnh xám). Trong đó, ảnh màu được cấu trúc
từ các pixel màu trong khi ảnh đen trắng được xây dựng từ các pixel có giá trị mức
xám khác nhau.
Ảnh xám: với một ảnh đen trắng được xây dựng từ nhiều pixel mà tại đó biểu
diễn một giá trị nhất định tương ứng với một mức xám. Những mức xám này trải dài
trong một khoảng từ đen sang trắng với bước nhảy rất mịn, thông thường là 256 mức
xám khác nhau theo tiêu chuẩn.
Ảnh màu: một ảnh màu thường được tạo thành từ nhiều pixel mà trong đó mỗi
pixel được biểu diễn bởi ba giá trị tương ứng với các mức trong các kênh màu đỏ
(Red), xanh lá (Green) và xanh dương (Blue) tại một vị trí cụ thể.
3.2.3 Độ phân giải
Với cùng một ảnh, càng nhiều điểm được lấy mẫu thì ảnh chụp càng chi tiết. Mật
độ điểm ảnh trong một ảnh được xem như độ phân giải của chính nó. Ảnh có độ phân
giải càng cao thì ảnh càng chứa nhiều thơng tin. Nói một cách chính xác, khi giữ ảnh
tại cùng một kích thước vật lý thì ảnh trở nên sắc nét hơn và chi tiết hơn nếu độ phân
giải cao hơn như hình 3.3.

Hình 3.3 Ảnh với các độ phân giải khác nhau:(a) 256x256;
(b) 128x128;(c) 64x64; (d) 32x32

3.2.4 Điểm ảnh lân cận [1]


Với một điểm ảnh p ln có 4 điểm ảnh xung quanh theo phương ngang và dọc
(hình 3.4(a)), tập các điểm ảnh này được gọi là lân cận 4 của p. Ngồi ra, có một
dạng lân cận nữa là theo đường chéo (hình 3.4(b)). Kết hợp hai dạng lân cận này thì

CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH

do an

11


×