You are on page 1of 80

Đồ Án Tốt Nghiệp Trang i

LỜI CẢM ƠN
Nhóm thực hiện đề tài xin gửi lời cảm ơn chân thành đến thầy Nguyễn Văn
Phúc đã tận tình hướng dẫn giúp đỡ trong quá trình thực hiện đồ án.
Nhóm thực hiện đề tài cũng xin bày tỏ lòng biết ơn đến các thầy cô trường
Đại học Sư phạm kỹ thuật TPHCM đã tận tình giảng dạy trong thời gian qua để
giúp sinh viên có được những kiến thức để hoàn thành đồ án.
Cuối cùng nhóm thực hiện đề tài xin chân thành cảm ơn sự đóng góp ý kiến
của các bạn sinh viên.

Sinh viên thực hiện
Nguyễn Hữu Trung
Nguyễn Huy Minh

Đồ Án Tốt Nghiệp Trang ii


MỤC LỤC

LỜI CẢM ƠN...........................................................................................................................i
MỤC LỤC .............................................................................................................................. ii
LIỆT KÊ HÌNH ....................................................................................................................... v
LIỆT KÊ BẢNG.................................................................................................................. viii
LIỆT KÊ TỪ VIẾT TẮT ......................................................................................................ix
TÓM TẮT ............................................................................................................................. xii
ABSTRACT ........................................................................................................................ xiii
CHƯƠNG 1: GIỚI THIỆU .......................................................................................................1
1.1. Vai trò và ứng dụng của công nghệ hiện nay...............................................................1
1.2. Lý do chọn đề tài .............................................................................................................1
1.3. Mục tiêu đề tài .................................................................................................................2
1.4. Giới hạn đề tài ..................................................................................................................2
1.5.Bố cục của đồ án ...............................................................................................................2
CHƯƠNG 2:CƠ SỞ LÝ THUYẾT .........................................................................................3
2.1. Giới thiệu về hệ thống xử lí ảnh ....................................................................................3
2.1.1. Phần thu nhận ảnh (Image Acquisition) ................................................................4
2.1.2.Tiền xử lý (Image Processing) .................................................................................4
2.1.3. Phân đoạn (Segmentation) hay phân vùng ảnh.....................................................4
2.1.4.Biểu diễn ảnh (Image Representation) ....................................................................4
2.1.5. Nhận dạng và nội suy ảnh (Image Recognition and Interpretation) ..................5
2.1.6. Cơ sở tri thức (Knowledge Base) ...........................................................................5
2.2. Những vấn đề cơ bản trong hệ thống xử lí ảnh............................................................5
2.2.1. Điểm ảnh (Picture Element) ....................................................................................5
2.2.2. Độ phân giải của ảnh................................................................................................6
2.2.3. Mức xám của ảnh .....................................................................................................6
2.2.4. Khử nhiễu ..................................................................................................................6
2.2.5. Chỉnh mức xám.........................................................................................................7
2.2.6. Nhận dạng ảnh ..........................................................................................................7
2.3. Các hình thái của ảnh ......................................................................................................8
Đồ Án Tốt Nghiệp Trang iii


2.3.1. Chuyển ảnh màu thành ảnh xám.............................................................................8
2.3.2. Lược đồ xám của ảnh (Histogram).........................................................................9
2.3.3. Không gian màu..................................................................................................... 10
2.4. Tổng quan về hệ thống nhúng..................................................................................... 14
2.4.1. Lịch sử phát triển của hệ thống nhúng................................................................ 14
2.4.2. Khái niệm hệ thống nhúng ................................................................................... 15
2.4.3. Đặc trưng của hệ thống nhúng ............................................................................. 16
2.4.4. Hệ điều hành thời gian thực (RTOS) và kernel thời gian thực ....................... 18
2.4.5. Chương trình, tác vụ và luồng ............................................................................. 19
2.4.6. Kiến trúc hệ thống thời gian thực ........................................................................ 20
2.4.7. Các thành phần của hệ điều hành Embedded Linux ......................................... 21
2.4.8. Các bước xây dựng một hệ thống Embedded Linux......................................... 25
2.5. Giới thiệu về KIT Mini2440 ....................................................................................... 27
CHƯƠNG 3: KỸ THUẬT PHÂN TÁCH MÀU DA ......................................................... 36
3.1 Kỹ thuật phân tách vùng màu da ................................................................................. 36
3.2 Thuật toán phân tách vùng màu da.............................................................................. 37
3.3. Kĩ thuật phân tách vùng màu da PEER ET AL, 2003 ............................................. 39
3.4. Kĩ thuật phân tách vùng màu da TAREK M.MAHMOUD, 2008 ......................... 39
CHƯƠNG 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440 ........... 41
4.1. Cài đặt trình biên dịch chéo AMR-LINUX-GCC trên Host ................................... 41
4.2. Cài đặt thư viện Tslib trên Host.................................................................................. 42
4.3. Cài đặt thư viện QtEveryWhere trên Host ............................................................... 45
4.4. Cài đặt thư viện OpenCV cho Host............................................................................ 49
4.5. Cài đặt hệ điều hành Linux cho Target ...................................................................... 52
4.6. Cấu hình TouchScreen cho Target ............................................................................. 52
4.7. Cài đặt thư viện OpenCV cho Target......................................................................... 54
CHƯƠNG 5: KẾT QUẢ THỰC HIỆN ................................................................................ 56
5.1. Kết quả thực hiện phần mềm Matlab ......................................................................... 56
5.1.1. Lưu đồ giải thuật trên Matlab .............................................................................. 56
5.1.2. Giới thiệu chương trình mô phỏng Matlab......................................................... 57
5.2 Kết quả thực hiện phần cứng........................................................................................ 62
5.2.1. Lưu đồ giải thuật trên Qt ...................................................................................... 62
Đồ Án Tốt Nghiệp Trang iv


5.2.2. Cài đặt được hệ điều hành lên kit mini2440 ...................................................... 63
5.2.3. Xây dựng được hệ thống nhận dạng màu da dựa trên hệ thống nhúng trên kit
mini2440 ..................................................................................................................... 64
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................................... 66
6.1. Kết quả đạt được........................................................................................................... 66
6.2. Hạn chế của đề tài......................................................................................................... 66
6.3. Hướng phát triển đề tài ................................................................................................ 66
Tài liệu tham khảo ............................................................................................................... 67
Đồ Án Tốt Nghiệp Trang v


LIỆT KÊ HÌNH
Hình 2.1: Các bước cơ bản trong xử lý ảnh ............................................................................3
Hình 2.2 Ảnh RGB .....................................................................................................................8
Hình 2.3: Lược đồ histogram ....................................................................................................9
Hình 2.4: Các màu cơ sở......................................................................................................... 10
Hình 2.5: Không gian màu RGB ........................................................................................... 11
Hình 2.6: Không gian màu YCrCb........................................................................................ 12
Hình 2.7: Không gian màu HSV............................................................................................ 13
Hình 2.8: Tổng quan hệ thống nhúng ................................................................................... 16
Hình 2.9: Hệ thống thời gian thực ......................................................................................... 19
Hình 2.10: Tác vụ và luồng .................................................................................................... 19
Hình 2.11 : Kiến trúc điều khiển theo vòng l ặp Polling ..................................................... 20
Hình 2.12: Kiến trúc điều khiển theo mô hình sắp xếp mức độ ưu tiên ........................... 21
Hình 2.13: Kiến trúc hệ điều hành Linux ............................................................................. 22
Hình 2.14 : Cấu trúc kit phát triển nhúng mini2440 ........................................................... 28
Hình 2.15 : Bộ nhớ ngoài ....................................................................................................... 30
Hình 2.16 : Bộ nhớ Flash........................................................................................................ 31
Hình 2.17 : Khối nguồn .......................................................................................................... 31
Hình 2.18 : Khối Reset............................................................................................................ 32
Hình 2.19 : Khối Nút nhấn ..................................................................................................... 32
Hình 2.20 : Khối Analog ........................................................................................................ 33
Hình 2.21 : Khối Speaker ....................................................................................................... 33
Hình 2.22 : Khối Serial Port................................................................................................... 33
Hình 2.23 : Khối USB............................................................................................................. 34
Hình 2.24 : Khối LCD ............................................................................................................ 34
Hình 2.25 : Khối EEPROM.................................................................................................... 34
Hình 2.26 : Khối Network Interface...................................................................................... 35
Hình 3.1 : Mật độ các màu da người trên thế giới............................................................... 37
Hình 3.2: Mô hình màu da trong không gian YCrCb ......................................................... 38
Hình 3.3: Phân tách màu da từ 1 ảnh màu............................................................................ 39
Hình 4.1: Nội dung file bashrc............................................................................................... 41
Hình 4.2: Arm-linux-gcc được cài đặt thành công .............................................................. 41
Đồ Án Tốt Nghiệp Trang vi


Hình 4.3: Cài đặt tiện ích autoconf........................................................................................ 42
Hình 4.4: Cài đặt tiện ích libtool ........................................................................................... 42
Hình 4.5: Tải gói cài đặt Tslib ............................................................................................... 42
Hình 4.6: Quá trình chuẩn bị file cần thiết để cài đặt ......................................................... 43
Hình 4.7: Quá trình kiểm tra các điều kiện của hệ thống cần cho việc cài đặt ................ 43
Hình 4.8: Biên dịch thư viện Tslib ........................................................................................ 44
Hình 4.9: Cài đặt thư viện Tslib ............................................................................................ 44
Hình 4.10 : Quá trình cài đặt thư viện Tslib thành công .................................................... 45
Hình 4.11: Nội dung file g++.conf ........................................................................................ 46
Hình 4.12: Nội dung file qmake.conf ................................................................................... 46
Hình 4.13: Quá trình kiểm tra các điều kiện của hệ thống cần cho việc cài đặt.............. 48
Hình 4.14: Quá trình cài đặt QtEveryWhere thành công ................................................... 48
Hình 4.15: Quá trình cài đặt các gói thư viện cần thiết ...................................................... 49
Hình 4.16: Kiểm tra sự hoạt động các định dạng ảnh cho Host ........................................ 49
Hình 4.17: Quá trình cài đặt OpenCV thành công .............................................................. 50
Hình 4.18: Nội dung file opencv.conf ................................................................................. 50
Hình 4.19: Nội dung file bash.bashrc .................................................................................. 51
Hình 4.20: Kết quả test hoạt động của thư viện OpenCV trên Host ................................. 51
Hình 4.21: Quá trình cài đặt hệ điều hành Target ............................................................... 52
Hình 4.22: Quá trình truyền tải file từ Host xuống Target ................................................. 52
Hình 4.23 : Đăng nhập vào Target thông qua giao thức FTP ............................................ 53
Hình 4.24 : Các thư mục bên trong Board mini2440 .......................................................... 53
Hình 4.25: Nội dung file profile ............................................................................................ 54
Hình 4.26: Kiểm tra sự hoạt động các định dạng ảnh cho Target ..................................... 55
Hình 4.27: Download thư viện OpenCV xuống Target ...................................................... 55
Hình 5.1: Lưu đồ giải thuật trên Matlab ............................................................................... 56
Hình 5.2: Giao diện giới thiệu ............................................................................................... 57
Hình 5.3: Giao diện chính ...................................................................................................... 58
Hình 5.4: Giao diện chọn ảnh ................................................................................................ 59
Hình 5.5: Kết quả sau khi nhận dạng ảnh tĩnh ..................................................................... 60
Hình 5.6: Kết quả sau khi nhận dạng bằng camera ............................................................. 61
Hình 5.7: Lưu đồ giải thuật trên Qt ....................................................................................... 62
Đồ Án Tốt Nghiệp Trang vii


Hình 5.8: Các thư mục hệ thống sau khi đã cài đặt xuống kit ........................................... 63
Hình 5.9: Giao diện phần cứng .............................................................................................. 64
Hình 5.10: Kết quả thực hiện ................................................................................................. 65


Đồ Án Tốt Nghiệp Trang viii


LIỆT KÊ BẢNG

Bảng 2.1 : Cấu hình kỹ thuật kit mini2440 .......................................................................... 29
Bảng 2.2 : Các cổng kết nối điều khiển Leds....................................................................... 32



Đồ Án Tốt Nghiệp Trang ix


LIỆT KÊ TỪ VIẾT TẮT
A

ARM Acorn RISC Machine Cấu trúc vi xử lý 32 bit kiểu RISC
AIN0 ADC Input Ngõ vào bộ chuyển đổi số tương tự
B

BIOS Basic Input/Output System Hệ thống xuất nhập cơ bản
C

CMOS Complementary Metal- Công nghệ chế tạo vi mạch tích hợp
Oxide-Semiconductor
CCIR Consultative committee Hội đồng tư vấn quốc tế về vô
international radio tuyến điện
E

EEPROM Electrically Erasable Bộ nhớ không mất dữ liệu khi
Programmable mất điện
Read-Only Memory
G

GPIO General Purpose Input/Output Ngõ vào/ra trong hệ thống nhúng

H

Đồ Án Tốt Nghiệp Trang x


HDD Hard Disk Drive Ổ cứng máy tính
I

I/O Input/Output Ngõ vào/ra trong hệ thống
L

LCD Liquid Crystal Display Màn hình tinh thể lỏng
LAN Local Area Network Mạng máy tính cục bộ
O

OS Operating System Hệ điều hành
P

PLC Programmable Logic Thiết bị điều khiển lập trình được
Controller
PC Personal Computer Máy tính cá nhân
R

RTOS Real-time operating system Hệ điều hành thời gian thực
RS232 Recommended Standard 232 Chuẩn truyền thông nối tiếp
RAM Random Access Memory Bộ nhớ truy xuất ngẫu nhiên
S

SoC System On Chip Hệ thống được tích hợp trên một vi
mạch
Đồ Án Tốt Nghiệp Trang xi


SDRAM Synchronous Dynamic RAM đồng bộ
Random Access Memory
U

USB Universal Serial Bus Một chuẩn kết nối tuần tự đa dụng
UART Universal Asynchronous Truyền thông nối tiếp bất đồng bộ
Receiver/Transmitte

Đồ Án Tốt Nghiệp Trang xii


TÓM TẮT
Nhận dạng ảnh là một đề tài được nhiều người nghiên cứu. Các nghiên cứu
đi từ bài toán đơn giản, từ việc nhận dạng màu da người trong ảnh đen trắng cho
đến mở rộng cho ảnh màu. Đến nay các bài toán xác định màu da nhằm tách màu da
ra khỏi ảnh nền, đã mở rộng với nhiều nghiên cứu như nhận dạng khuôn mặt, theo
dõi mặt người hay nhận dạng cảm xúc mặt người, nhận dạng bàn tay…
Có rất nhiều hệ màu được sử dụng trong việc nhận dạng ảnh như hệ màu
RGB, HSV, YCrCb, YES,… Nhưng nhóm thực hiện đề tài quyết định sử dụng hệ
màu YCrCb với những ưu điểm dùng cho việc xử lý video số và thuật toán phân
tách màu da trong hệ màu YCrCb để điều khiển thiết bị bằng cử động đóng mở bàn
tay. Việc thực hiện nhận dạng sẽ được mô phỏng trên Matlab và dùng chương trình
Qt trên hệ điều hành Linux để viết chương trình thực thi cho kit mini2440.



Đồ Án Tốt Nghiệp Trang xiii


ABSTRACT
Image processing projects are being researched. The researches come from a
simple mathematics in order to detect human skin from the black-white (binary)
images to the colorful (red-green-blue) images. Now, the skin detection's
mathematics expand to the many researches as face recognition, human's emotional
recognition, hand detection and etc.
There are so many color standards as RGB, HSV, YCrCb, YES etc.
However, group decided to use YCrCb standard because of the fortes in digital
video processing and skin detection in YCrCb. The implementation is going to be
simulated by Matlab and executed into kit mini2440 by Qt which is based on
Ubuntu/Linux operation system.
Đồ Án Tốt Nghiệp Trang 1

Chương 1: GIỚI THIỆU
CHƯƠNG 1: GIỚI THIỆU
1.1. Vai trò và ứng dụng của công nghệ hiện nay

Với những tiến bộ vượt bậc của khoa học kỹ thuật, bộ môn khoa học xử lý
ảnh đã và đang thu được những thành tựu lớn lao và chứng tỏ vài trò không thể
thiếu với những ứng dụng sâu rộng trong khoa học kỹ thuật cũng như đời sống xã
hội. Một bộ phận của khoa học xử lý ảnh là lĩnh vực thị giác máy tính hiện đang
thu hút rất nhiều sự quan tâm của các nhà nghiên cứu xử lý ảnh với mục tiêu xây
dựng nên một thế giới trong đó hệ thống thị giác kỳ diệu của con người có thể được
mô phỏng bởi các hệ thống máy tính, đem lại khả năng cảm nhận bằng thị giác cho
các hệ thống về môi trường xung quanh. Mơ ước về một hệ thống máy tính có thể
hoà nhập vào thế giới con người với đầy đủ các giác quan trong đó thị giác đóng
vai trò quan trọng đang dần dần được hiện thực hoá với những đóng góp nghiên
cứu của các nhà khoa học trên phạm vi toàn thế giới.
Đồng thời việc phát triển của các thiết bị phần cứng cả về phương diện thu
nhận, hiển thị, tốc độ xử lý đã mở ra nhiều hướng mới cho công nghệ xử lý ảnh. Nó
có thể giải quyết các bài toán như giám sát tự động phục vụ trong cơ quan, ngân
hàng, kho bạc, ... hoặc trong việc giám sát giao thông tự động, phục vụ tại bãi đỗ xe,
trạm thu phí tự động hoặc việc phát hiện và nhận dạng mặt người phục vụ trong
công tác quân sự, an ninh…
Phát hiện vùng màu da là một công cụ rất hữu ích trong việc nhận dạng ảnh.
Nó cho phép nhiều khu vực của một ảnh được loại bỏ một cách nhanh chóng và
hiệu quả, mà không lãng phí thời gian để làm tương quan tốn kém hoặc các hình
thức tính toán phân tích đắt tiền khác.
1.2. Lý do chọn đề tài
Trong vài năm gần đây, cùng với sự phát triển về khoa học và công nghệ,
tương tác người máy đã trở thành một lĩnh vực nổi bật nhằm cung cấp cho con
người khả năng phục vụ của máy móc. Điều này bắt nguồn từ khả năng máy móc
có thể tương tác được với con người. Máy móc cần các khả năng để trao đổi thông
tin với con người và nhận dạng màu da là một trong những khả năng đó. Xuất phát
Đồ Án Tốt Nghiệp Trang 2

Chương 1: GIỚI THIỆU
từ những ý tưởng trên nên người thực hiện đã chọn đề tài :“ ĐIỀU KHIỀN
THIẾT BỊ BẰNG CỬ ĐỘNG CỦA BÀN TAY DÙNG KIT MINI 2440 .”
1.3. Mục tiêu đề tài
Nhóm thực hiện nghiên cứu với mục tiêu sau:
- Tìm hiểu tổng quát về lý thuyết xử lý ảnh.
- Mô phỏng trên Matlab
- Tìm hiểu kit mini2440.
- Cài đặt hệ thống nhúng trên kit phát triển nhúng mini2440.
- Rèn luyện kỹ năng nghiên cứu, tìm hiểu tài liệu.
- Xây dựng được hệ thống điều khiển thiết bị dựa trên hệ thống nhúng trên kit 2440.
1.4. Giới hạn đề tài
- Khoảng cách đặt camera và ảnh cần thu nằm trong khoảng 0.4m.
- Thực hiện nhận dạng tay đóng mở bằng phương pháp tính phần trăm của pixel
màu da trên tổng pixel của ảnh.
- Ảnh đưa vào phải là bàn tay và chỉ nhận dạng được hai trạng thái đóng mở của
bàn tay.
1.5.Bố cục của đồ án
Chương 1: Giới thiệu.
Chương 2: Cơ sở lý thuyết.
Chương 3: Kỹ thuật phân tích màu da.
Chương 4: Biên dịch ứng dụng trên board nhúng mini2440.
Chương 5: Kết quả thực hiện.
Chương 6: Kết luận và hướng phát triển.
Tài liệu tham khảo.
Đồ Án Tốt Nghiệp Trang 3

Chương 2: CƠ SỞ LÝ THUYẾT
CHƯƠNG 2:CƠ SỞ LÝ THUYẾT

2.1. Giới thiệu về hệ thống xử lí ảnh
Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ. Nó là một ngành
khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó
rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính
chuyên dụng riêng cho nó.
Xét các bước cần thiết trong xử lý ảnh. Đầu tiên, ảnh tự nhiên từ thế giới ngoài
được thu nhận qua các thiết bị thu (như Camera, máy chụp ảnh). Trước đây, ảnh thu
qua Camera là các ảnh tương tự (loại Camera ống kiểu CCIR). Gần đây, với sự phát
triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ Camera, sau đó nó được
chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo. (Máy ảnh số hiện
nay là một thí dụ gần gũi). Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh; có thể
quét từ ảnh chụp bằng máy quét ảnh. Hình vẽ dưới đây mô tả các bước cơ bản trong
xử lý ảnh.








Hình 2.1: Các bước cơ bản trong xử lý ảnh
Sơ đồ này bao gồm các thành phần sau:


Phân đoạn
ảnh

Biểu diễn
và mô tả

Nhận dạng và
nội suy

Thu nhận
ảnh
Tiền xử lý
ảnh

Cơ sở trí thức
Đồ Án Tốt Nghiệp Trang 4

Chương 2: CƠ SỞ LÝ THUYẾT
2.1.1. Phần thu nhận ảnh
Ảnh có thể nhận qua camera màu hoặc đen trắng. Thường ảnh nhận qua
camera là ảnh tương tự (loại camera ống chuẩn CCIR với tần số 1/25, mỗi ảnh 25
dòng), cũng có loại camera đã số hoá (như loại CCD – Change Coupled Device) là
loại photodiot tạo cường độ sáng tại mỗi điểm ảnh.
Camera thường dùng là loại quét dòng ; ảnh tạo ra có dạng hai chiều. Chất
lượng một ảnh thu nhận được phụ thuộc vào thiết bị thu, vào môi trường (ánh sáng,
phong cảnh).
2.1.2.Ti ền xử lý
Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiền
xử lý để nâng cao chất lượng. Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng
độ tương phản để làm ảnh rõ hơn, nét hơn.
2.1.3. Phân đoạn hay phân vùng ảnh
Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu
diễn phân tích, nhận dạng ảnh. Ví dụ: để nhận dạng chữ (hoặc mã vạch) trên phong
bì thư cho mục đích phân loại bưu phẩm, cần chia các câu, chữ về địa chỉ hoặc tên
người thành các từ, các chữ, các số (hoặc các vạch) riêng biệt để nhận dạng. Đây là
phần phức tạp khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính
xác của ảnh. Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này.
2.1.4.Bi ểu diễn ảnh
Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn)
cộng với mã liên kết với các vùng lận cận. Việc biến đổi các số liệu này thành dạng
thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính. Việc chọn các tính chất để
thể hiện ảnh gọi là trích chọn đặc trưng (Feature Selection) gắn với việc tách các
đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt
lớp đối tượng này với đối tượng khác trong phạm vi ảnh nhận được. Ví dụ: trong
nhận dạng ký tự trên phong bì thư, chúng ta miêu tả các đặc trưng của từng ký tự
giúp phân biệt ký tự này với ký tự khác.
Đồ Án Tốt Nghiệp Trang 5

Chương 2: CƠ SỞ LÝ THUYẾT
2.1.5. Nhận dạng và nội suy ảnh
Nhận dạng ảnh là quá trình xác định ảnh. Quá trình này thường thu được bằng
cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước. Nội suy là phán đoán
theo ý nghĩa trên cơ sở nhận dạng. Ví dụ: một loạt chữ số và nét gạch ngang trên
phong bì thư có thể được nội suy thành mã điện thoại. Có nhiều cách phân loai ảnh
khác nhau về ảnh. Theo lý thuyết về nhận dạng, các mô hình toán học về ảnh được
phân theo hai loại nhận dạng ảnh cơ bản:
- Nhận dạng theo tham số.
- Nhận dạng theo cấu trúc.
Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trong
khoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử),
nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt
người…
2.1.6. Cơ sở tri thức
Ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối, dung lượng
điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu. Trong nhiều khâu xử lý
và phân tích ảnh ngoài việc đơn giản hóa các phương pháp toán học đảm bảo tiện
lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh theo
cách của con người. Trong các bước xử lý đó, nhiều khâu hiện nay đã xử lý theo các
phương pháp trí tuệ con người. Vì vậy, ở đây các cơ sở tri thức được phát huy.
2.2. Những vấn đề cơ bản trong hệ thống xử lí ảnh
2.2.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 (số), ả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 (mức xám). 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 (PEL: Picture Element) 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).
Đồ Án Tốt Nghiệp Trang 6

Chương 2: CƠ SỞ LÝ THUYẾT
Định nghĩa:
Điểm ảnh (Pixel) 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.2. Độ phân giải của ảnh
Độ phân giải (Resolution) 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
(320*200). Rõ ràng, cùng màn hình CGA 12” ta nhận thấy mịn hơn màn hình 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.2.3. Mức xám của ảnh
- Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá trị số tại
điểm đó.
- Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 (Mức 256 là
mức phổ dụng. Lý do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn
mức xám: Mức xám dùng 1 byte biểu diễn: 2^8=256 mức, tức là từ 0 đến
255).
2.2.4. Khử nhiễu
Có 2 loại nhiễu cơ bản trong quá trình thu nhận ảnh :
- Nhiều hệ thống: là nhiễu có quy luật có thể khử bằng các phép biến đổi
- Nhiễu ngẫu nhiên: vết bẩn không rõ nguyên nhân → khắc phục bằng các phép
lọc.
Đồ Án Tốt Nghiệp Trang 7

Chương 2: CƠ SỞ LÝ THUYẾT
2.2.5. Chỉnh mức xám
Nhằm khắc phục tính không đồng đều của hệ thống gây ra. Thông thường
có 2 hướng tiếp cận:
- Giảm số mức xám: Thực hiện bằng cách nhóm các mức xám gần nhau thành
một bó. Trường hợp chỉ có 2 mức xám thì chính là chuyển về ảnh đen
trắng. Ứng dụng: In ảnh màu ra máy in đen trắng.
- Tăng số mức xám: Thực hiện nội suy ra các mức xám trung gian bằng kỹ
thuật nội suy. Kỹ thuật này nhằm tăng cường độ mịn cho ảnh.
2.2.6. Nhận dạng ảnh
Nhận dạng tự động (automatic recognition), mô tả đối tượng, phân loại và
phân nhóm các mẫu là những vấn đề quan trọng trong thị giác máy, được ứng dụng
trong nhiều ngành khoa học khác nhau. Mẫu ở đây có thể là ảnh của vân tay, ảnh
của một vật nào đó được chọn, một chữ viết khuôn mặt người ….
Hệ thống nhận dạng tự động bao gồm ba khâu tương ứng với ba giai đoạn
chủ yếu sau đây:
1. Thu nhận dữ liệu và tiền xử lý.
2. Biểu diễn dữ liệu.
3. Nhận dạng, ra quyết định.
Bốn cách tiếp cận khác nhau trong lý thuyết nhận dạng là:
1. Đối sánh mẫu dựa trên các đặc trưng được trích chọn.
2. Phân loại thống kê.
3. Đối sánh cấu trúc.
4. Phân loại dựa trên mạng nơ-ron nhân tạo.
Trong các ứng dụng rõ ràng là không thể chỉ dùng có một cách tiếp cận đơn
lẻ để phân loại “tối ưu” do vậy cần sử dụng cùng một lúc nhiều phương pháp và
cách tiếp cận khác nhau. Do vậy, các phương thức phân loại tổ hợp hay được sử
dụng khi nhận dạng và nay đã có những kết quả có triển vọng dựa trên thiết kế các
hệ thống lai (hybrid system) bao gồm nhiều mô hình kết hợp.
Đồ Án Tốt Nghiệp Trang 8

Chương 2: CƠ SỞ LÝ THUYẾT
Việc giải quyết bài toán nhận dạng trong những ứng dụng mới, nảy sinh
trong cuộc sống không chỉ tạo ra những thách thức về thuật giải, mà còn đặt ra
những yêu cầu về tốc độ tính toán. Đặc điểm chung của tất cả những ứng dụng đó là
những đặc điểm đặc trưng cần thiết thường là nhiều, không thể do chuyên gia đề
xuất, mà phải được trích chọn dựa trên các thủ tục phân tích dữ liệu.
2.3. Các hình thái của ảnh
2.3.1. Chuyển ảnh màu thành ảnh xám
Đơn vị tế bào của ảnh số là pixel. Tùy theo mỗi định dạng là ảnh màu hay
ảnh xám mà từng pixel có thông số khác nhau. Đối với ảnh màu từng pixel sẽ
mang thông tin của 3 màu cơ bản tạo ra bản màu khả biến là đỏ (R), xanh lá (G) và
xanh biển (B) [Thomas 1892]. Trong mỗi pixel của ảnh màu, 3 màu cơ bản R, G và
B được bố trí sát nhau và có cường độ sáng khác nhau. Thông thường, mỗi màu cơ
bản được biểu diễn bằng 8 bit tương ứng 256 mức độ màu khác nhau.
Như vậy mỗi pixel chúng ta có 2
8*3
=2
24
màu (khoảng 16,78 triệu màu). Đối
với ảnh xám, thông thường mỗi pixel mang thông tin của 256 mức xám (tương ứng
với 8 bit) như vậy ảnh xám hoàn toàn có thể tái hiện đầy đủ cấu trúc của một ảnh
màu tương ứng thông qua 8 mặt phẳng bit theo tọa độ xám.

Hình 2.2 Ảnh RGB
Trong hầu hết quá trình xử lý ảnh, chúng ta chủ yếu chỉ quan tâm đến cấu
trúc ảnh và bỏ qua sự ảnh hưởng của yếu tố màu sắc. Do đó bước chuyển từ ảnh
Đồ Án Tốt Nghiệp Trang 9

Chương 2: CƠ SỞ LÝ THUYẾT
màu thành ảnh xám là 1 công đoạn phổ biến trong các quá trình xử lí ảnh vì nó làm
tăng tốc độ xử lí giảm mức độ phức tạp của các thuật toán trên ảnh.
2.3.2. Lược đồ xám của ảnh (Histogram)
Một phương pháp thường dùng trong xử lí ảnh số là xem xét cường độ sáng
của ảnh f(x,y) như là biến ngẫu nhiên có hàm phân bố xác suất là p
k
(f). Hàm phân
bố xác suất của ảnh mang thông tin toàn cục về nội dung chứa trong ảnh. Tuy nhiên
hàm phân bố xác suất tổng quát thường không đáp ứng được do đó thường dùng
hàm phân bố xác suất thực nghiệm xác định từ ảnh để thay thế gọi là hàm
histogram. Histogram của ảnh số với mức xám có tầm trong khoảng [0, L-1] là
hàm:

(

)

(2.1)
Với

là mức xám thứ k

là số pixel trong ảnh có mức xám thứ k
tổng số pixel trong ảnh
: 0,1,2,…., L-1
Lược đồ xám bao gồm trục hoành biểu diễn mức xám và trục tung biểu diễn
số lượng điểm sáng tương ứng. Đối với ảnh xám thông thường, giá trị của trục
hoành nằm trong khoảng từ 0 - 255.

Hình 2.3: Lược đồ histogram

Đồ Án Tốt Nghiệp Trang 10

Chương 2: CƠ SỞ LÝ THUYẾT
2.3.3. Không gian màu
Như ta đã biết thì khi cho ánh sáng trắng đi qua lăng kính ta sẽ thu được một
dãy phổ màu bao gồm 6 màu rộng: tím , lam , lục , vàng , cam , đỏ. Nếu nhìn kỹ thì
sẽ không có ranh giới rõ ràng giữa các màu mà màu này sẽ từ từ chuyển sang màu
kia.Mắt chúng ta nhìn thấy được là do ánh sáng phản xạ từ vật thể.
Tất cả các màu được tạo ra từ 3 màu cơ bản (màu sơ cấp) là: đỏ (R),lam (B)
và lục (G).Các màu cơ bản trộn lại với nhau theo một tỉ lệ nhất định để tạo ra các
màu thứ cấp.


Hình 2.4: Các màu cơ sở
Vd : đỏ + lục = vàng
Lục +lam = xanh
Trộn ba màu sơ cấp hoặc trộn một màu thứ cấp với màu sơ cấp ngược với nó
sẽ tạo ra được ánh sáng trắng
Các màu gốc có liên quan đến các khái niệm sinh học hơn là vật lý, nó dựa
trên cơ sở phản ứng sinh lý học của mắt người đối với ánh sáng. Mắt người có
các tế bào cảm quang có hình nón nên còn được gọi là tế bào hình nón, các tế bào
này thông thường có phản ứng cực đại với ánh sáng vàng - xanh lá cây (tế bào hình
nón L), xanh lá cây (tế bào hình nón M) và xanh lam (tế bào hình nón S) tương ứng
với các bước sóng khoảng 564 nm, 534 nm và 420 nm. Ví dụ, màu vàng thấy được
Đồ Án Tốt Nghiệp Trang 11

Chương 2: CƠ SỞ LÝ THUYẾT
khi các tế bào cảm nhận màu xanh ánh vàng được kích thích nhiều hơn một chút so
với tế bào cảm nhận màu xanh lá cây và màu đỏ cảm nhận được khi các tế bào cảm
nhận màu vàng - xanh ụcá cây được kích thích nhiều hơn so với tế bào cảm nhận
màu xanh lá cây.
Các đặc trưng dùng để phân biệt một màu với màu khác là: độ sáng
(brightness) , sắc màu (hue) và độ bảo hòa màu (Saturation)
Màu sắc có liên quan đến bước sóng ánh sáng .Thông thường, sắc màu chính
là tên của màu. Ví dụ: đỏ, cam, lục…
Độ sáng thể hiện về cường độ ánh sáng :mô tả nó sáng hay tối như thế nào
Độ bảo hòa màu : thể hiện độ thuần khiết của màu. Khi độ bão hòa cao, màu sẽ sạch
và rực rỡ.
2.3.3.1. Không gian màu RGB

Hình 2.5: Không gian màu RGB

Không gian màu RGB chia các màu ra các thành phần màu chính là R (Red-
đỏ), G (Green-xanh lá), B (Blue-xanh dương). Các màu R, G, B được gọi là các
màu chính hay màu cơ bản vì ánh sáng của ba màu này có thể phối hợp ở những
cường độ khác nhau để tạo ra các màu khác. Mô hình RGB được thể hiện bởi một
hình lập phương. Trong một ảnh 24 bit với 8 bit cho mỗi màu chính thì màu đỏ sẽ
có giá trị (255,0,0), màu xanh dương (0,0,255), màu xanh lá (0,255,0). Mô hình này
được thiết kế cho phần lớn hệ thống đồ họa, tuy nhiên nó chưa phải là lý tưởng cho
Đồ Án Tốt Nghiệp Trang 12

Chương 2: CƠ SỞ LÝ THUYẾT
các ứng dụng về phát hiện và nhận dạng vật thể. Các thành phần màu đỏ, xanh
dương, xanh lá có sự liên kết chặt chẽ sẽ gây khó khăn trong việc thực hiện một số
thuật toán xử lý ảnh.
2.3.2.3. Không gian màu YCrCb

YCrCb được định nghĩa nhằm phục vụ các mục đích xử lý video số. Nó có
quan hệ với một số không gian màu như YIQ, YUV. Trong khi YCrCb là hệ thống
màu số thì các không gian YIQ và YUV là hệ thống tương tự phục vụ cho các
chuẩn PAL và NTSC. Các không gian màu này sẽ chia RGB ra các thành phần chói,
và thành phần màu nhằm sử dụng cho các ứng dụng nén ảnh. Do đó chúng thường
được sử dụng trong các hệ thống truyền hình.

Hình 2.6: Không gian màu YCrCb
YCrCb

là không gian màu được sử dụng nhiều trong vấn đề nén ảnh màu sắc
được biểu diễn bởi luma (đó là giá trị độ sáng tính từ không gian RGB). Gồm ba
thành phần, một thành phần là tổng các trọng số từ RGB, hai thành phần màu Red
và Blue trong không gian màu RGB. Công thức để chuyển đổi như sau:
Y = 0.299R +0.587G + 0.114B
{


(2.2)
Đồ Án Tốt Nghiệp Trang 13

Chương 2: CƠ SỞ LÝ THUYẾT
(
(
(
¸
(

¸

(
(
(
¸
(
÷ ÷
÷

¸

÷ +
(
(
(
¸
(

¸

=
(
(
(
¸
(

¸

B
G
R
Cb
Cr
Y
2072 . 18
9337 . 111
9660 . 24
7509 . 93
1592 . 74
5530 . 128
81 . 95 . 111
7745 . 37
4810 . 65
128
128
16
(2.3)


2.3.3.3. Không gian màu HSV
Không gian HSV bao gồm ba thành phần Hue (sắc màu), Saturation (bảo hòa
màu) và Value (độ sáng, một số trường hợp có thể gọi là Brightness).
Sắc màu (Hue) thể hiện sự đáp ứng về màu sắc xung quanh thang đo sắc
màu. Các sắc màu trên thang đo sẽ chạy từ Đỏ-Vàng-Xanh lá-Xanh lam- Xanh
Dương- Tím-Đỏ.
Bão hòa màu để chỉ cường độ sáng của màu. Một màu có độ bão hòa lớn
nhất có thể xem như một màu tinh khiết và “sâu”, cũng như khi chúng ta giảm độ
bão hòa, những màu sắc sẽ bị xóa dần cho đến khi đạt giá trị không nó sẽ trở thành
màu trắng.
Theo lý thuyết một không gian HSV có hình dáng như một hình nón. Nếu
quan sát ở mặt phẳng các đường tròn bao quanh hình nón, các giá trị về màu sắc
(Hue) sẽ được thể hiện bởi góc của mỗi màu so với trục hình nón, (trục hình nón sẽ
được gán với màu đỏ). Độ bão hòa màu được thể hiện như là khoảng cách từ tâm
các đường tròn. Độ bão hòa lớn nhất nằm ở biên của hình nón. Độ sáng được mô tả
bởi vị trí theo chiều dọc hình nón. Ở vị trí đỉnh của hình nón, sẽ không có bất kì độ
sáng nào. Và ở đáy của nón, độ sáng sẽ lớn nhất.

Hình 2.7: Không gian màu HSV

Đồ Án Tốt Nghiệp Trang 14

Chương 2: CƠ SỞ LÝ THUYẾT
2.4. Tổng quan về hệ thống nhúng
2.4.1. Lịch sử phát triển của hệ thống nhúng
Hệ thống nhúng đầu tiên là Apollo Guidance Computer (máy tính dẫn đường
Apollo) được phát triển bởi Charles Stark Draper tại phòng thí nghiệm của trường
đại học MIT. Hệ thống nhúng được sản xuất hàng loạt, đầu tiên là máy hướng dẫn
cho tên lửa quân sự vào năm 1961 có tên gọi là Autonetics D-17, được xây dựng từ
những bóng bán dẫn và một đĩa cứng để duy trì bộ nhớ. Khi Minuteman II được đưa
vào sản xuất năm 1996, D-17 đã được thay thế với một máy tính mới sử dụng mạch
tích hợp. Tính năng thiết kế chủ yếu của máy tính Minuteman là nó đưa ra thuật
toán có thể lập trình lại. Để làm cho tên lửa chính xác hơn, và máy tính có thể kiểm
tra tên lửa, giảm trọng lượng của cáp điện và đầu nối điện. Từ những ứng dụng đầu
tiên vào những năm 1960, các hệ thống nhúng đã giảm giá và phát triển mạnh mẽ
về khả năng xử lý. Bộ vi xử lý đầu tiên hướng đến người tiêu dùng là Intel 4004,
được phát minh phục vụ máy tính điện tử và những hệ thống nhỏ khác. Tuy nhiên
nó vẫn cần các chip nhớ ngoài và những hỗ trợ khác. Vào những năm cuối 1970,
những bộ xử lý 8 bit đã được sản xuất, nhưng nhìn chung chúng vẫn cần đến những
chip nhớ bên ngoài.Vào giữa thập niên 80, kỹ thuật mạch tích hợp đã đạt trình độ
cao dẫn đến nhiều thành phần có thể đưa vào một vi xử lý. Các bộ vi xử lý được gọi
là các vi điều khiển và được chấp nhận rộng rãi. Với giá cả thấp, các vi điều khiển
đã trở nên rất hấp dẫn để xây dựng các hệ thống chuyên dụng. Đã có một sự bùng
nổ về số lượng các hệ thống nhúng trong tất cả các lĩnh vực thị trường và số các nhà
đầu tư sản xuất theo hướng này. Ví dụ, rất nhiều vi xử lý đặc biệt xuất hiện với
nhiều giao diện lập trình hơn là kiểu song song truyền thống để kết nối các vi xử lý.
Vào cuối những năm 80, các hệ thống nhúng đã trở nên phổ biến trong hầu hết các
thiết bị điện tử và khuynh hướng này vẫn còn tiếp tục cho đến nay. Hiện nay có khá
nhiều kiến trúc vi xử lý khác nhau sử dụng để xây dựng hệ thống nhúng như: ARM,
MIPS, PowerPC, PIC, 8051, Atmel AVR, Renesas H8, SH, V850, FR-V, M32R,
Z80, Z8, …
Ngày nay, một hệ thống nhúng có các ứng dụng rất rộng rãi trong cuộc sống
hàng ngày và có thể tìm gặp ở bất kì các thiết bị điện tử nào. Ví dụ trong các thiết bị
điện tử dân dụng (máy giặt, tủ lạnh, TV . . .), các thiết bị điện tử “thông minh” (điện
Đồ Án Tốt Nghiệp Trang 15

Chương 2: CƠ SỞ LÝ THUYẾT
thoại di động), thiết bị truyền thông, thiết bị y tế, xe hơi, thậm chí cả trong một máy
tính cá nhân (card mở rộng).
Hệ thống nhúng rất đa dạng, phong phú về chủng loại, đó có thể là những thiết
bị cầm tay nhỏ gọn như đồng hồ kĩ thuật số, máy chơi nhạc MP3, hay những sản
phẩm lớn như đèn giao thông, các bộ kiểm soát trong nhà máy hay hệ thống kiểm
soát các máy năng lượng hạt nhân, …Xét về độ phức tạp, hệ thống nhúng có thể rất
đơn giản với một vi điều khiển hoặc rất phức tạp với nhiều thành phần, các thiết bị
ngoại vi và mạng lưới được nằm gọn trong một lớp vỏ máy lớn. Các ví dụ về hệ
thống nhúng :
- Điện thoại tế bào.
- Các máy trả lời tự động.
- Hệ chuyển mạch.
- Hệ thống dẫn đường trong không lưu.
- Các thiết bị y tế.
- Máy móc công nghiệp sử dụng các bộ điều khiển logic có thể lập trình được
(PLC) để điều khiển và giám sát các hoạt động của dây chuyền hệ thống.
- Các thiết bị gia dụng như : máy giặt, lò vi sóng, các sản phẩm tự động hóa,
các hệ thống an toàn và bảo mật.
- Các thiết bị mạng : router, firewall, …
2.4.2. Khái ni ệm hệ thống nhúng
Trong những năm gần đây, sự phân chia khái niệm một hệ thống thế nào là
nhúng và thế nào là không nhúng ngày càng mờ nhạt, không rõ ràng. Lý do rất đơn
giàn, vì hầu hết các hệ thống ngày nay đều là hệ thống nhúng. Hệ thống nhúng đã
có một số lượng rất lớn các ứng dụng từ nhỏ đến lớn, từ trong dân dụng đến trong
công nghiệp, từ điều khiển đơn giản đến xử lý phức tạp.
Một hệ thống nhúng có thể định nghĩa như sau : hệ thống nhúng là một hệ
thống chuyên dụng cho một mục đích xác định, bao gồm nhiều thành phần (bộ nhớ,
I/O, module chức năng . . .) xung quanh một vi xử lý cùng với một hệ điều hành
Đồ Án Tốt Nghiệp Trang 16

Chương 2: CƠ SỞ LÝ THUYẾT
nhỏ, gọn, nhanh nhằm mục đích điều khiển vi xử lý, tất cả nằm trên một con chip
(SoC) hay một board mạch.

Hình 2.8: Tổng quan hệ thống nhúng

2.4.3. Đặc trưng của hệ thống nhúng
Sự khác biệt giữa một hệ thống nhúng và hệ thống máy tính PC: một hệ thống
nhúng chính là một hệ thống chuyên dụng với một chức năng cụ thể, trong khi đó
hệ thống máy tính PC là một hệ thống đa dụng với chức năng của nó tại một thời
điểm do phần mềm quyết định.Trong một hệ thống nhúng có thể có nhiều chương
trình phần mềm chạy cùng lúc với nhau dưới một hệ điều hành nào đó. Bởi vì một
hệ thống nhúng còn có thể là một phần nhỏ của một hệ thống lớn hơn, nên nó có thể
nằm trên một board mạch với một vi xử lý riêng cùng với phần mềm được lưu trữ
trong ROM. Vì là một hệ thống chuyên dụng, nên hầu hết các hệ thống nhúng phải
đáp ứng sự thay đổi ở các tín hiệu ngõ vào (input) trong thời gian ngắn nhất có thể,
tức là phải đảm bảo tốc độ hoạt động của nó. Vì vậy, các hệ thống nhúng đều có tốc
độ hoạt động rất cao là được xếp vào loại thời gian thực (real time). Với các ứng
dụng đơn giản, nó chỉ cần một chương trình nhỏ (mà không cần hệ điều hành) để
điều khiển hệ thống, tuy nhiên, một hệ điều hành cài đặt trên hệ thống nhúng để
chạy các chương trình ứng dụng sẽ giúp cho hệ thống trở nên cực kỳ linh hoạt.
Tính quyết định : Đặc trưng này có nghĩa là tất cả các trạng thái bên trong của
hệ thống, các giá trị ngõ vào liên quan đến ngõ ra đều có thể tính toán trước được
(về mặt nguyên tắc).
Một đặc tính khác cũng khá quan trọng và mang nét riêng của hệ thống nhúng
đó chính là thời gian thực. Một hệ thống nhúng phải có khả năng thực hiện chức
Đồ Án Tốt Nghiệp Trang 17

Chương 2: CƠ SỞ LÝ THUYẾT
năng của mình trong một khoảng thời gian hữu hạn, ít nhất và có thể biết trước. Có
2 loại thời gian thực : thời gian thực cứng và thời gian thực mềm. Đối với hệ thống
thời gian thực cứng, tất cả các chức năng của nó phải được thực thi chính xác trong
một khoảng thời gian xác định, nếu không cả hệ thống sẽ bị lỗi nghiêm trọng. Ví dụ
: hệ thống điều khiển không lưu, hệ thống dẫn đường tên lửa, thiết bị y tế . . . Đối
với hệ thống thời gian thực mềm, các chức năng phải được thực hiện trong một
khoảng thời gian xác định nhỏ nhất nhưng không bắt buộc.
Một hệ thống nhúng bao giờ cũng được “bao bọc” bởi một hệ thống phần
cứng mà nó điều khiển. Chính vì vậy, đối với người sử dụng cuối, họ không nhận ra
sự hiện diện của hệ thống nhúng trong một thiết bị phần cứng. Do đó, đây cũng là
sự khác biệt giữa một hệ thống nhúng và một máy tính cá nhân. Một hệ thống
nhúng cũng có khả năng tương tác với thế giới bên ngoài, tuy nhiên giao diện người
sử dụng của nó lại thường khá đơn giản.
Lĩnh vực hệ thống nhúng đòi hỏi sự kết hợp của nhiều ngành lại với nhau như:
kỹ thuật phần mềm, hệ điều hành, thiết kế phần cứng (thiết kế chip) . . . Vì vậy, một
kỹ sư thiết kế hệ thống nhúng phải có khả năng hiểu được nhiều lĩnh vực khác nhau,
từ thiết kế phần cứng, xuống layout ra chip, đến lập trình phần mềm, cài đặt hệ điều
hành . . .
Việc xây dựng phần mềm trên hệ thống nhúng gặp phải những khó khăn về
công cụ lập trình và debug. Phần mềm được viết cho các hệ thống nhúng được gọi
là firmware và được lưu trữ trong các vi xử lý bộ nhớ chỉ đọc (read-only memory)
hoặc bộ nhớ flash chứ không phải là trong một ổ đĩa. Phần mềm thường chạy với số
tài nguyên phần cứng hạn chế: không có bàn phím, màn hình hoặc có nhưng với
kích thước nhỏ, bộ nhớ hạn chế.
Các hệ thống nhúng có thể không có giao diện (đối với những hệ thống đơn
nhiệm) hoặc có đầy đủ giao diện giao tiếp với người dùng tương tự như các hệ điều
hành trong các thiết bị để bàn. Các hệ thống đơn giản sử dụng nút bấm, đèn LED và
hiển thị chữ cỡ nhỏ hoặc chỉ hiển thị số. Trong một hệ thống phức tạp hơn, một màn
hình đồ họa, cảm ứng hoặc có các nút bấm ở lề màn hình cho phép thực hiện các
thao tác phức tạp. Các hệ thống nhúng thường có một màn hình với một nút bấm
dạng cần điểu khiển (joystick button). Sự phát triển mạnh mẽ của mạng toàn cầu đã
mang đến cho những nhà thiết kế hệ nhúng một lựa chọn mới là sử dụng một giao
Đồ Án Tốt Nghiệp Trang 18

Chương 2: CƠ SỞ LÝ THUYẾT
diện web thông qua kết nối mạng. Điều này có thể giúp tránh được chi phí cho
những màn hình phức tạp nhưng đồng thời vẫn cung cấp khả năng hiển thị và nhập
liệu phức tạp khi cần đến, thông qua một máy tính khác. Điều này là hết sức hữu
dụng đối với các thiết bị điều khiển từ xa, hoặc các thiết bị cài đặt vĩnh viễn từ khi
xuất xưởng.
Các hệ thống nhúng thường nằm trong các cỗ máy được kỳ vọng là sẽ chạy
hàng năm trời liên tục mà không bị lỗi hoặc có thể tự động khôi phục hệ thống khi
gặp lỗi. Vì thế, các phần mềm hệ thống nhúng cần phải được kiểm thử một cách cẩn
thận hơn là phần mềm cho máy tính cá nhân. Ngoài ra, các thiết bị rời không đáng
tin cậy như ổ đĩa, công tắc hoặc nút bấm thường bị hạn chế sử dụng. Việc khôi phục
hệ thống khi gặp lỗi có thể được thực hiện bằng cách sử dụng các kỹ thuật như
watchdog timer, nếu phần mềm không đều đặn nhận được các tín hiệu watchdog
định kì thì hệ thống sẽ tự khởi động lại. Trường hợp hệ thống không thể ngừng để
sửa chữa một cách an toàn. Ví dụ, ở các hệ thống không gian, hệ thống dây cáp
dưới đáy biển, các đèn hiệu dẫn đường, … Giải pháp đưa ra là chuyển sang sử dụng
các hệ thống con dự trữ hoặc các phần mềm cung cấp một phần chức năng. Đối với
hệ thống phải được chạy liên tục vì tính an toàn. Ví dụ, các thiết bị dẫn đường máy
bay, thiết bị kiểm soát độ an toàn trong các nhà máy hóa chất… thì cần phải chuẩn
bị sẵn sàng hệ thống khác tương tự để thay thế ngay khi cần thiết.
2.4.4. Hệ điều hành thời gian thực (RTOS) và kernel thời gian thực
Một số các ứng dụng nhúng có thể thực hiện hiệu quả mà chỉ cần một chương
trình đơn giản chạy độc lập điều khiển cả hệ thống. Tuy nhiên, đối với đa số các
ứng dụng mang tính thương mại, một hệ nhúng cần phải có hệ điều hành thời gian
thực hoặc kernel thời gian thực. Một kernel thời gian thực thường nhỏ hơn rất nhiều
so với một RTOS hoàn chỉnh. Trong lý thuyết về hệ điều hành, kernel chính là một
phần của hệ điều hành, nó sẽ được nạp lên bộ nhớ đầu tiên và vẫn tồn tại trong lúc
chương trình hoạt động. Một kernel thời gian thực sẽ cung cấp hầu hết các dịch vụ
cần thiết cho các ứng dụng nhúng. Do đó chỉ là một phần của hệ điều hành và được
nạp thẳng lên bộ nhớ, nên một kernel thời gian thực thường có kích thước rất nhỏ,
rất phù hợp cho các bộ nhớ có dung lượng thấp trong các hệ thống nhúng.
Đồ Án Tốt Nghiệp Trang 19

Chương 2: CƠ SỞ LÝ THUYẾT

Hình 2.9: Hệ thống thời gian thực
2.4.5. Chương trình, tác vụ và luồng
Một chương trình trên một hệ thống nhúng chính là một phần mềm có khả
năng thực thi độc lập và có vùng nhớ riêng của mình. Nó bao gồm môi trường thực
thi một chức năng cụ thể và khả năng tương tác với hệ điều hành. Một chương trình
có thể được bắt đầu chạy một cách độc lập hoặc có thể từ các chương trình khác.
Một hệ điều hành có khả năng thực thi nhiều chương trình cùng một lúc song song
nhau. Tuy nhiên, khi một chương trình có khả năng tự chia ra một vài phần có khả
năng thực thi song song nhau, mỗi phần đó được gọi là một luồng. Một luồng chính
là một phần trong chương trình và phụ thuộc về mặt chức năng so với các luồng
khác nhưng lại có khả năng hoạt động độc lập nhau. Các luồng sẽ chia sẻ chung một
bộ nhớ trong một chương trình. Khái niệm về tác vụ và luồng có thể thay thế cho
nhau.


Hình 2.10: Tác vụ và luồng

Đồ Án Tốt Nghiệp Trang 20

Chương 2: CƠ SỞ LÝ THUYẾT
2.4.6. Kiến trúc hệ thống thời gian thực
- Polling :
+ Trong kiến trúc điều khiển vòng lặp với polling, kernel sẽ thực thi một vòng
lặp vô hạn, vòng lặp này sẽ chọn ra luồng trong một mẫu được định trước. Nếu một
luồng cần dịch vụ, nó sẽ được xử lý. Có một vài biến thể của phương pháp này, tuy
nhiên vẫn phải đảm bảo mỗi luồng đều có khả năng truy cập đến vi xử lý.

Hình 2.11 : Ki ến trúc đi ều khiển theo vòng l ặp Polling
+ Mất rất nhiều thời gian, khi mà một luồng cần truy cập đến vi xử lý sẽ phải
chờ đến lượt của mình, và một chương trình có quá nhiều luồng sẽ bị chậm đi
rất nhiều.
+ Phương pháp này không có sự phân biệt giữa các luồng, luồng nào quan
trọng và luồng nào ít quan trọng, từ đó xác định mức độ ưu tiên giữa các luồng.
- Mô hình sắp xếp mức độ ưu tiên :
Trong mô hình này, mỗi luồng sẽ đi kèm với mức độ ưu tiên của nó, lúc này vi
xử lý sẽ thiết lập đường truy cập tới luồng nào có mức độ ưu tiên cao nhất khi nó
đòi hỏi được phục vụ. Cũng có một vài biến thể của phương pháp này, tuy nhiên
vẫn phải đảm bảo các luồng có mức độ ưu tiên thấp nhất vẫn phải có thể truy cập
tới vi xử lý một vài lần.
Đồ Án Tốt Nghiệp Trang 21

Chương 2: CƠ SỞ LÝ THUYẾT


Hình 2.12: Kiến trúc đi ều khiển theo mô hình sắp xếp mức độ ưu tiên
2.4.7. Các thành phần của hệ điều hành Embedded Linux
2.4.7.1 Các thuật ngữ thường dùng trong hệ thống nhúng
- Host : Hướng đến máy trạm phát triển hệ thống có thể là một máy bàn hay
server chạy hệ điều hành Linux.
- Target : Là một kiến trúc hệ thống nhúng .
- NOR FLASH : Giống như BIOS của PC.
- NAND FLASH : Giống như là HDD của PC.
- Cross-Development : Quá trình xây dựng, phát triển và biên dịch ứng dụng
được thực hiện trên Host nhưng lại được chạy trên hệ thống Target.
- Toolchain : Là một tập công cụ được dùng để xây dựng các ứng dụng hoặc tạo
image(Image: một dạng file được dùng trong hệ thống Embedded Linux. Ví dụ:
yaffs.img là root filesystem dạng yaffs hoặc uImage là kernel file.) cho một thiết bị
nhúng. Các toolchain còn cho phép biên dịch (compile) trên một kiến trúc cho một
kiến trúc khác (như là biên dịch một image của ARM trên một máy tính cá nhân xài
hệ điều hành Linux, điều này được gọi là cross-development và các compiler được
gọi là ( Cross-compiler).

Đồ Án Tốt Nghiệp Trang 22

Chương 2: CƠ SỞ LÝ THUYẾT
2.4.7.2 BootLoader
Trong một hệ thống nhúng, không tồn tại firmware giống như CMOS của
PC. Vì vậy để khởi động một hệ thống nhúng, chúng ta phải xây dựng bootloader.
Bootloader là một phần rất quan trọng trong hệ thống nhúng.
- Chức năng của bootloader như sau:
+ Sao chép kernel từ flash memory đến RAM và thực thi kernel.
+ Khởi tạo phần cứng.
+ Bootloader cũng bao gồm chức năng ghi dữ liệu đến flash memory (tải kernel
hoặc RAM disk image xuống flash memory bằng cổng giao tiếp tuần tự hoặc các
thiết bị nối mạng).
+ Cung cấp giao tiếp để gửi lệnh đến hoặc nhận về các trạng thái của bo mạch
cần chạy.
2.4.7.3 Kernel
Kernel là thành phần chính của hệ điều hành Embedded Linux, quản lý các
tác vụ(task management), quản lý bộ nhớ (memory management), quản lý
nhập/xuất (I/O management), quản lý timer (timer management), giao tiếp với các
API (application programming interface), . . .

Hình 2.13: Ki ến trúc hệ điều hành Linux

Đồ Án Tốt Nghiệp Trang 23

Chương 2: CƠ SỞ LÝ THUYẾT
- Trong hệ thống Embedded Linux, việc cấu hình kernel được thực hiện bằng
cách dùng lệnh “make menuconfig”. Sau đó lựa chọn các module cần thiết cho
kernel bởi hệ thống danh sách (menu). Sau khi đã cấu hình kernel, thực hiện việc
xây dựng (build) kernel bằng lệnh “make zImage” (đối với ARM9) hoặc “make
uImage” (đối với MPC860). Tập tin cuối cùng nhận được sẽ là zImage hoặc
uImage. File này sẽ được tải xuống flash memory.
2.4.7.4 Root Filesystem
- Embedded Linux cung cấp nhiều loại filesystem hơn bất kỳ hệ điều hành nào.
Filesystem được tách riêng thành 3 lớp cơ bản, bao gồm :
+ Filesystem được được đặt trên thiết bị nối trực tiếp đến phần cứng của hệ
thống nhúng (ví dụ : đĩa cứng, thẻ nhớ, …).
+ Hệ thống tập tin mạng (network file system) dùng nghi thức chuẩn là NFS.
+ Filesystem đặc biệt nằm trong bộ nhớ được biết đến như là vùng nhớ khởi
động (initial RAM disk).
- Root filesystem phải chứa mọi thứ cần thiết để hỗ trợ Embedded Linux. Cấu
trúc thư mục của root filesystem như sau :
+ Etc : Thư mục này chứa các file cấu hình toàn cục của hệ thống. Có thể có
nhiều thư mục con của thư mục này nhưng nhìn chung chúng chứa các file script
để khởi động hay phục vụ cho mục đích cấu hình chương trình trước khi khởi động.
+ Sbin : Thư mục này chứa các file hay chương trình thực thi của hệ thống
thường chỉ cho phép sử dụng bởi người quản trị.
+ Bin : Thư mục này gồm chủ yếu các chương trình, phần lớn trong số chúng
cần cho hệ thống trong thời gian khởi động (hoặc trong chế độ một người dùng khi
bảo trì hệ thống).
+ Lib : Thư mục này chứa các file thư viện .so hoặc .a. Các thư viện C và các
thư viện liên kết động cần cho chương trình khi chạy và cần cho toàn hệ thống .
Thư mục này tương tự thư mục System32 của Windows.
+ Mnt : Thư mục này chứa các thư mục kết gán tạm thời đến các ổ đĩa hay
thiết bị khác.
Đồ Án Tốt Nghiệp Trang 24

Chương 2: CƠ SỞ LÝ THUYẾT
+ Usr : Thư mục này chứa rất nhiều thư mục con như /usr/bin hay /usr/sbin.
Một trong những thư mục quan trọng trong /usr là /usr/local. Bên trong thư mục
local này có các thư mục con tương tự ngoài thư mục gốc như sbin, lib, bin…Nếu
nâng cấp hệ thống thì các chương trình cài đặt trong /usr/local vẫn giữ nguyên và
không sợ bị mất mát. Thư mục này tương tự như Program File trên Windows.
+ Dev : Thư mục này chứa các file thiết bị. Trong Linux các thiết bị phần
cứng được xem như làm một file.
+ Lost_found : Thư mục này được đặt tên hơi lạ nhưng đúng nghĩa của nó.
Khi hệ thống khởi động hoặc khi chạy chương trình fsck, nếu tìm thấy một chuỗi
dữ liệu nào đó bị thất lạc trên đĩa cứng không liên quan đến các tập tin, linux sẽ gộp
chúng lại và đặt trong thư mục này để nếu cần người dùng có thể đọc và giữ lại dữ
liệu đã mất.
+ Tmp : Đây là thư mục tạm dùng để chứa các file tạm mà chương trình sử
dụng chỉ trong quá trình chạy. Các file trong thư mục này sẽ được hệ thống dọn dẹp
nếu không còn dùng đến nữa.
- Có nhiều dạng initial RAM disk (initrd) : Cramfs (Compressed ROM file
system), Cramfs được thiết kế nhỏ gọn, dung lượng không vượt quá 256MB. JFFS
(Journalling Flash File System), … Quá trình xây dựng một RAM disk image ngay
từ đầu tương đối phức tạp. Do vậy người ta thường dùng các thư viện có sẵn (được
cho dưới dạng tập tin nén, như initrd.gz). Sau đó giải nén, chép thêm các phần mềm
điều khiển thiết bị (device driver) và ứng dụng vào, thêm hoặc sửa đổi một số tập
tin, thư mục cần thiết sao cho phù hợp với đặc thù ứng dụng của mình. Cuối cùng,
dùng các công cụ để nén và chuyển tập tin nén thành dạng image để tải xuống flash
memory.
2.4.7.5 Device driver
Device driver là phần mềm giao tiếp giữa phần cứng và kernel của Embedded
Linux. Linux device driver có thể được tích hợp vào trong kernel theo 2 phương
pháp : biên dịch trực tiếp vào kernel hoặc biên dịch thành một định dạng đối tượng
(object format có tập tin là device_driver.o) để kernel có thể tải lên khi có nhu cầu
(sử dụng lệnh install module “insmod device_driver.o”). Để biên dịch các tập tin
Đồ Án Tốt Nghiệp Trang 25

Chương 2: CƠ SỞ LÝ THUYẾT
của device driver cần phải xây dựng một Makefile. Kết quả thu được sẽ là tập tin có
phần mở rộng *.o.
2.4.7.6 Ứng dụng (application)
Aplication là các ứng dụng chuyên biệt của người sử dụng, với mục đích điều
khiển hệ thống tùy theo mục đích sử dụng. Dùng Makefile để biên dịch ứng dụng.
Kết quả thu được là một file có thể chạy được (tương tự *.exe trên hệ điều hành
DOS).
2.4.7.7 Chế độ Stand-alone
Thông thường hệ thống Embedded Linux phải có khả năng chạy độc lập. Thay
vì dùng mount root filesystem từ một remote server (NFS filesystem), có thể dùng
một Ram disk image. Ramdisk image chứa trong flash memory và được tải lên
RAM khi hệ thống khởi động. Đồng thời để chạy các ứng dụng một cách tự động, ta
phải sửa đổi nội dung tập tin /etc/init.d/rcS để hệ điều hành có thể tải các device
driver lên và chạy các ứng dụng.
2.4.8. Các bước xây dựng một hệ thống Embedded Linux
2.4.8.1 Thiết kế phần cứng
Lựa chọn kiến trúc CPU : Có rất nhiều kiến trúc CPU được support bởi
Linux OS ví dụ như : ALPHA, ARM, SH, MIP, POWER PC... Tuy nhiên phổ biến
nhất vẫn là kiến trúc ARM.
Lựa chọn CPU vendor : Sau khi lựa chọn cấu trúc CPU, ta sẽ lựa chọn sản
phẩm CPU từ các nhà sản xuất chíp. Hiện nay trên thế giới có nhiều hãng khác
nhau, bao gồm : TI, SAMSUNG, Marvell, Freescale, NXP, ATMEL... ta nên khởi
đầu với sản phẩm của hãng nào có cộng đồng phát triển mã nguồn mở mạnh, có khả
năng cấp tài liệu miễn phí (bao gồm cho cá nhân thay vì chỉ dành riêng cho công ty,
doanh nghiệp). Việc lựa chọn này có ảnh hưởng đến khả năng thành công của dự
án.
CPU được support bởi hệ điều hành nào : Sau khi lựa chọn CPU vendor, ta
sẽ có được danh sách CPU trong 1 dòng sản phẩm. Điều đầu tiên ta cần xác định rõ
CPU này được hỗ trợ bởi hệ điều hành nào, và có phù hợp với hệ điều hành mà
Đồ Án Tốt Nghiệp Trang 26

Chương 2: CƠ SỞ LÝ THUYẾT
chúng ta cần phát triển hay không. Ví dụ cho hệ điều hành Linux : CPU cần có
MMU (Memory Management Unit) và hỗ trợ bus bộ nhớ ngoài. Ngoài ra chúng ta
cần xem xét đến tốc độ CPU, các ngoại vi cần phải có trong hệ thống... Và cuối
cùng là giá thành của CPU như thế nào, có sẵn trên thị trường hay không.
- Tìm hiểu đặc tả, cơ chế boot của CPU :
+ Cấu hình chân của CPU (package type) : Năng lực sản xuất PCB trong nước
là có hạn, vì thế việc lựa chọn cấu hình chân CPU sẽ trở nên khó khăn và eo hẹp
hơn.
+ Cơ chế boot của CPU : Cơ chế boot của CPU là phần cực kỳ quan trọng mà ta
cần phải xem xét đến. Thông thường thì các đặt tả từ nhà sản xuất đề cập đến vấn đề
này. Khi có đầy đủ thông tin về cơ chế này, người thiết kế phần cứng sẽ có quyết
định lựa chọn linh kiện nào phù hợp cho từng kiểu boot. Ví dụ : NAND Flash, NOR
FLash, SPI Dataflash, I2C EEPROM, MMC. . .
Xây dựng sơ đồ nguyên lý cho hệ thống : Để có được schematic hoàn chỉnh
cho hệ thống, ta cần tập hợp thông tin từ các CPU vendor càng nhiều càng tốt, bao
gồm các tài liệu về schematic check list, CPU user manual, design application note.
Thiết kế PCB : Khi layout cần chú ý đến các đường bus giao tiếp bộ nhớ
ngoài, các tụ trở mạch lọc cho PLL, các tụ lọc nguồn cho CPU.
2.4.8.2 Thiết kế phần mềm
Cài đặt boot loader : Thông thường các hãng sản xuất chíp cung cấp cho
chúng ta mã nguồn, công cụ để xây dựng boot loader. Đa số các CPU được sản xuất
với ROM on chip và được cài sẵn chương trình boot. Tuy nhiên, thông thường
những chương trình này ko đủ khả năng boot được Linux OS, cần phải kết hợp
chương trình này với các thiết bị lưu trữ để thực hiện những chương trình boot có
tính năng mạnh hơn.
Cài đặt Linux OS (porting) : Thành phần nòng cốt của Linux OS là kernel,
về bản chất nó chỉ là các mã lệnh chương trình thực thi trên CPU. Tuy nhiên, kernel
giữ vai trò quản lý các tiến trình hoạt động trong hệ thống. Kernel Linux được xây
dựng bởi code C và một số ASM cho từng loại kiến trúc CPU cụ thể. Source code
của kernel được quản lý bởi tổ chức phát triển mã nguồn mở Linux. Tuy nhiên, khi
ta xây dựng phần cứng mới thì không hẳn có thể chạy được Linux OS, bởi vì cần
Đồ Án Tốt Nghiệp Trang 27

Chương 2: CƠ SỞ LÝ THUYẾT
phải đảm bảo mối tương quan giữa phần cứng và Kernel. Thông thường các CPU
vendor xây dựng phần cứng chuẩn được gọi là evaluation kit. Họ sẽ chỉnh sửa
source kernel (startup code, driver...) để board có thể vận hành được Linux OS.
Thao tác này theo thuật ngữ người ta gọi là porting. Kết quả của việc porti ng tạo ra
các bản vá (patch).
Phát triển driver : Source kernel Linux bao gồm tập hợp các driver đã viết
sẵn và được chuẩn hóa thành tài liệu. Tuy nhiên, ta có thể tự viết driver cho riêng
mình để phù hợp với nhu cầu của dự án. Linux kernel hỗ trợ cho việc phát triển
driver theo 2 dạng : built-in hoặc là module.
Xây dựng root file system (rootfs) : Khung sườn của hệ điều hành Linux là
rootfs. Đây là tập hợp những chương trình ứng dụng, các tiện ích của hệ điều hành.
Ta có thể xây dựng rootfs từ nhiều nguồn khác nhau : OpenEmbedded (Angstrom),
LTIB, Buildroot, Debian...
Phát triển phần mềm ứng dụng : Linux OS cung cấp tập hợp thư viện rất
phong phú cho nhiều lĩnh vực khác nhau : mạng, đồ họa, image processing, telecom
. . . Người phát triển phần mềm sẽ dùng những thư viện này và viết chương trình
theo mong muốn.
2.5. Giới thiệu về KIT Mini2440
2.5.1 Sơ lược
Kit Mini2440 có kích thước 100mm vuông dựa trên nền tảng ARM9, sử dụng
họ vi xử lý s3c2440, kit được ứng dụng cho việc phát triển hệ thống nhúng, điều
khiển các thiết bị công nghiệp, phát triển trên thiết bị PDA và định vị GPS. Các hệ
thống system on chip được sử dụng nhiều trong các thiết bị cầm tay như
smartphone và PDA. Kit Mini2440 có kích thước 3.9 x 3.9 inches (100 x 100mm).
Mạch được thiết kế 4 lớp, được thiết kế đảm bảo các yêu cầu toàn vẹn tín hiệu đối
với mạch tần số cao. Chip Samsung s3c2440 có lõi là cấu trúc ARM920T với tốc độ
400MHz (tần số thường dùng) và 533MHz (tần số đỉnh). Thành phần của kit
Mini2440 gồm có các I/O port, Erthenet, USB host và slave, ba cổng nối tiếp, có thể
chọn thêm module Wifi, camera CMOS và camera USB.
Đồ Án Tốt Nghiệp Trang 28

Chương 2: CƠ SỞ LÝ THUYẾT

Hình 2.14 : Cấu trúc kit phát tri ển nhúng mini2440
2.5.2 Vi xử lý họ ARM9
Trong thời kỳ đầu của điện toán, con người đã sử dụng các linh kiện điện tử
bằng silicon để tạo ra vi xử lý để xử lý và thực hiện lệnh. Theo thời gian, khi nhu
cầu về số lượng các lệnh ngày càng tăng thì càng nhiều yêu cầu lệnh được thêm
vào. Đặc biệt, với những lệnh phức tạp thì việc thêm chúng vào các linh kiện điện
tử silicon trở thành một công việc vô cùng khó khăn. Chính vì thế, những nhà thiết
kế vi xử lý giải quyết bằng cách dùng microcode ( kỹ thuật để phát triển tập lệnh
trong bộ xử lý ), mà minh chứng cụ thể chính là vi xử lý theo kiểu CISC ( Complex
Instruction Set Computer ). Vi xử lý CISC có tầng cơ bản nhất ( còn được xem là
phần nhân, phần cốt lõi ) dựa trên vi xử lý RISC ( Reduced Instruction Set
Computer ) có tốc độ xử lý nhanh. Tầng cao nhất trong CISC là bộ thông dịch đảm
nhận nhiệm vụ rã các lệnh phức tạp của CISC thành các lệnh RISC đơn giản hơn để
xử lý. ARM được xem là bộ vi xử lý RISC có hiệu quả cao, chi phí thấp và ti ết
kiệm năng lượng. Ban đầu, nó được thiết kế cho máy tính để bàn Archimedes
nhưng vì trong bản thiết kế có nhiều điểm làm cho ARM không phù hợp với máy
Đồ Án Tốt Nghiệp Trang 29

Chương 2: CƠ SỞ LÝ THUYẾT
tính để bàn và có nhiều điểm làm cho ARM phù hợp với thiết bị nhúng, nên ARM
ngẫu nhiên trở thành sự lựa chọn cho các ứng dụng nhúng.
Hiện nay, trên thị trường có rất nhiều sản phẩm nhúng sử dụng vi xử lý
ARM. Điện thoại di động là một trong những sản phẩm tiêu biểu đã sử dụng hệ
thống vi xử lý ARM của hãng thiết kế bộ xử lý cho điện thoại di động Arm (Mỹ).
Theo dòng vi xử lý Arm7 đang thống lĩnh thị trường trên các loại điện thoại chỉ hỗ
trợ hội thoại. Điện thoại sử dụng mẫu vi xử lý Arm9 thì chiếm số đông trong thị
trường sản phẩm tầm trung (các loại điện thoại có thêm chức năng chuyên biệt), còn
mẫu vi xử lý Arm11 thì được ứng dụng cho hầu hết điện thoại thông minh cao cấp.
2.5.3 Cấu hình kỹ thuật
Bảng 2.1 : Cấu hình kỹ thuật kit mini2440

Đồ Án Tốt Nghiệp Trang 30

Chương 2: CƠ SỞ LÝ THUYẾT
- Các cổng giao tiếp
+ SDRAM : Mini2440 sử dụng 2 bộ nhớ ngoài 32MB tổng cộng là 64 MB
SDRAM chip (model : HY57V561620FTP), nối tiếp với nhau sẽ tạo thành data bus
32 bit tăng cao tốc độ truy cập, địa chỉ bắt đầu là 0x30000000.

Hình 2.15 : Bộ nhớ ngoài
+ Flash : Mini2440 có 2 bộ nhớ Flash : NOR Flash (SST39VF1601, 2 Mbytes)
và NAND Flash (K9F1208, 64 Mbytes), lựa chọn Boot Flash thông qua swich S2.
NAND Flash không sử dụng address line, dành riêng để kết nối giao diện điều
khiển với CPU, sử dụng 8 bit data bus. Hầu hết các USB và SDcard được sử dụng
khi NAND Flash được bật. NOR Flash sử dụng A1-A22 chân địa chỉ và 16 chân dữ
liệu. Trên thực tế sơ đồ nguyên lý chỉ sử dụng có 20 chân địa chỉ, A21 và A22 có
kết nối nhưng không sử dụng.

Đồ Án Tốt Nghiệp Trang 31

Chương 2: CƠ SỞ LÝ THUYẾT

Hình 2.16 : Bộ nhớ Flash
Nguồn hỗ trợ : Mini 2440 sử dụng nguồn 5V, tuy nhiên do các đặc tính khác mà
cần sử dụng thêm các mức : 3.3V, 1.8V, and 1.25V được tạo ra trực tiếp từ
nguồn cấp 5V ở trên. Các nguồn được cấp thông qua switch S1 cấp cho toàn
mạch, tuy nhiên cần chú ý là KIT không phải là một thiết bị di động nên đây
không phải là cách quản lý nguồn tốt nhất .


Hình 2.17 : Khối nguồn





Đồ Án Tốt Nghiệp Trang 32

Chương 2: CƠ SỞ LÝ THUYẾT

- Mạch khởi động lại hệ thống (System Reset)

Hình 2.18 : Khối Reset
- LEDs
Bảng 2.2 : Các cổng kết nối điều khiển Leds

- Nút nhấn
Có 6 nút bấm được đưa vào trên KIT, nối trực tiếp với các chân ngắt của Chip
và là chân hoạt động tích cực mức thấp. Các chân có thể sử dụng tùy mục đích khác
nhau của người sử dụng, các button này được nối với CON12.


Hình 2.19 : Khối Nút nhấn

Đồ Án Tốt Nghiệp Trang 33

Chương 2: CƠ SỞ LÝ THUYẾT
- A/D input test
Có tổng cộng 4 kênh A/D được nối với CON4 GPIO. Để thuận lợi cho quá
trình test AIN0 được kết nối với một biến trở R0 để thực nghiệm quá trình test.

Hình 2.20 : Khối Analog
- Speaker
Mini2440 có một chân ra Analog nối với loa ngoài theo sơ đồ như sau, tín
hiệu ra có thể sử dụng cho các loa thông thường.

Hình 2.21 : Khối Speaker
- Serial Port
Có tổng cộng 3 cổng Serial trên board UART0,1,2. Trong hầu hết các ứng
dụng, chỉ sử dụng đến 3 chức năng đơn giản như truyền và nhận dữ liệu, sẽ tương
ứng với CON1,2,3 trên board. Để cho thuận tiện thì cổng COM0 được để trực tiếp
dưới dạng RS232 converter.

Hình 2.22 : Khối Serial Port

Đồ Án Tốt Nghiệp Trang 34

Chương 2: CƠ SỞ LÝ THUYẾT
- Nối tiếp USB
Có hai giao diện USB, một USB host tương tự như PC, có thể cắm USB camera,
USB keyboad, USB mouse,…còn lại l USB slave dùng để download đến board.

Hình 2.23 : Khối USB
- LCD interface
Giao diện LCB của board là loại 41-pin 0.5 mm pitch block. Dữ liệu ra là khối
dữ liệu RGB 8:8:8, có thể hỗ trợ tối đa 16 triệu màu. Các chân 37,38,39,40 là các
chân dành cho cảm ứng (touch screen).

Hình 2.24 : Khối LCD
- EEPROM
Board có thể kết nối tín hiệu I2C, thông qua chipAT24C08

Hình 2.25 : Khối EEPROM
- Network Interface
Đồ Án Tốt Nghiệp Trang 35

Chương 2: CƠ SỞ LÝ THUYẾT
Board sử dụng chip mạng DM900, có thể cắm trực tiếp board vào mạng
LAN thông thường khi OS đã có driver cho DM900.

Hình 2.26 : Khối Network Interface
Ngoài ra còn có Audio Interface, JTAG Interface, GPIO, CMOS Camera
Interface là các ứng dụng mở rộng thêm tùy theo mục đích của người sử dụng
đã được tích hợp sắn trên Board.
Đồ Án Tốt Nghiệp Trang 36

Chương 3: KỸ THUẬT PHÂN TÁCH MÀU DA
CHƯƠNG 3: KỸ THUẬT PHÂN TÁCH MÀU DA
3.1 Kỹ thuật phân tách vùng màu da
Màu da người đã được sử dụng và được chứng minh là một đặc trưng có hiệu
quả trong rất nhiều ứng dụng như xác định khuôn mặt, chiết tách bàn tay …Mặc dù
những người khác nhau thì có màu da khác nhau, nhưng rất nhiều nghiên cứu gần
đây đã chỉ ra rằng sự khác nhau này phần lớn là do sự khác nhau về cường độ ánh
sáng giữa chúng hơn là sự khác nhau về thành phần màu.
Đối với các phương pháp dựa trên màu da để phân lớp các điểm ảnh theo
tiêu chí có màu da hay không màu da. Vấn đề đầu tiên là phải biểu diễn ảnh trong
không gian màu thích hợp. Đó là các không gian cho phép tách biệt 2 thành phần:
thành phần độ chói, cường độ sáng và thành phần màu. Không gian màu thông
thường RGB không thích hợp vì nó trộn lẫn 2 thành phần trên. Các không gian thích
hợp thường được sử dụng là HSV, TSL, YUV-YCrCb, YES,….
Nhóm thực hiện sử dụng không gian YCrCb vì có nhiều ưu điểm và đơn giản
hơn cả. Không gian này được chuyển đổi từ không gian RGB theo quan hệ sau:
Y = 0.299R +0.587G + 0.114B
{


(3.1)
Trong không gian YCrCb, vùng phân bố cả màu da trên mặt phẳng CrCb
tương đối trung lập và nhỏ. Ý tưởng của phương pháp là xây dựng tập luật để phân
lớp một cách trực tiếp các điểm ảnh có màu da bằng cách xem xét sự phân bố của
chúng trên mặt phẳng CrCb mà ở đó khu vực màu da được giới nội bởi các đường
tuyến tính. C.Garcia và G. Tziritas sử dụng luật sau đây để tìm các điểm ảnh số có
màu da:

{

(

)

(

)

(3.2)

Đồ Án Tốt Nghiệp Trang 37

Chương 3: KỸ THUẬT PHÂN TÁCH MÀU DA
{

(

)

(

)

(

)

(

)

(

)


Cr ≤ -

; Cr ≤ - 1.34( Cb -

) (3.3)
Các phương pháp theo hướng tiếp cận trực tiếp như trên tương đối hấp dẫn
do tính đơn giản, tuy nhiên kết quả đạt được chưa thật cao do gặp khó khăn trong
việc xây dựng các luật mô tả thật đầy đủ và chính xác.
3.2 Thuật toán phân tách vùng màu da

Hình 3.1 : Mật độ các màu da người trên thế giới
Trên cơ sở nghiên cứu các phương pháp trên người thực hiện đề xuất ở cải
tiến mới là xây dựng mô hình phân bố màu da có tham số. Một tập hợp các mẫu
màu da được lấy ra từ các ảnh màu nhằm xác định phân bố màu da trong không
gian màu YCrCb. Các mẫu này được trích ra từ nhiều người khác nhau từ nhiều
chủng tộc Á, Âu, Phi,… được giả định là có thể mô hình hóa bởi phân bố Gaussian.
Các mẫu màu da được lọc thông tháp để làm giảm hiệu ứng nhiễu. Từ tập hợp các
mẫu màu da đầu vào, các tham số của mô hình được xây dựng trên cơ sở tính các
tham số thống kê sau:

(3.4)

∑ (

) (

)

(3.5)
Trong đó:

là các vector mẫu màu da trích chọn
Đồ Án Tốt Nghiệp Trang 38

Chương 3: KỸ THUẬT PHÂN TÁCH MÀU DA
n là tổng số các mẫu màu da.

là vector trung bình của phân bố.

là ma trận hiệp phương sai của phân bố


a)Phân bố màu da của nhiều người khác nhau b)Mô hình hóa phân bố bởi phân bố
Gaussian
Hình 3.2: Mô hình màu da trong không gian YCrCb
Từ đó để xác định một điểm ảnh có thuộc lớp màu da hay không, các nhà
nghiên cứu tính toán hàm mật độ xác xuất của điểm ảnh đó trong phân bố Gaussian
.
P(c | màu da) =

(

)

∑ (

)

(3.6)
Để phân biệt điểm ảnh nào thuộc vùng ảnh màu da, các nhà nghiên cứu sử
dụng luật phân lớp theo khoảng cách Mahalanobis từ c tới



(

)
(

)


(

)

(3.7)
Kết quả quá trình phân lớp phân hoạch tập các điểm ảnh thành 2 lớp: lớp
điểm ảnh màu da và lớp không màu da. Kết quả này được biểu diễn dưới dạng nhị
phân.


Đồ Án Tốt Nghiệp Trang 39

Chương 3: KỸ THUẬT PHÂN TÁCH MÀU DA

Hình 3.3: Phân tách màu da từ 1 ảnh màu
3.3. Kĩ thuật phân tách vùng màu da PEER et al , 2003
Một phương pháp để xây dựng một phân loại da là để xác định một cách rõ
ràng (thông qua 1 số quy tắc ) ranh giới ở một số vùng màu da. (R, G, B) được phân
loại như da nếu:
{

{

}

{

}

(3.8)
Sự đơn giản của phương pháp này đã thu hút nhiều các nhà nghiên cứu
[Ahlberg 1999], [Fleck et al, 1996], [Jordao et al. 1999]. Lợi thế rõ ràng của phương
pháp này là sự đơn giản các quy tắc phát hiện da dẫn đến xây dựng phân loại rất
nhanh chóng. Vì vậy khó khăn chính của phương pháp này nếu muốn có được hệ số
nhận dạng cao đó là phải tìm ra được một không gian màu thích hợp cũng như các
quy tắc tốt nhất để nhận biết màu da trong không gian màu (R, G, B).
3.4. Kĩ thuật phân tách vùng màu da TAREK M.MAHMOUD, 2008
Đối với các phương pháp dựa trên màu da để phân lớp các điểm ảnh theo
tiêu chí có màu da hay không màu da. Vấn đề đầu tiên là phải biểu diễn ảnh trong
không gian màu thích hợp. Đó là các không gian cho phép tách biệt 2 thành phần:
thành phần độ chói, cường độ sáng và thành phần màu. Không gian màu thông
thường RGB không thích hợp vì nó trộn lẫn 2 thành phần trên. Các không gian thích
hợp thường được sử dụng là HSV, TSL, YUV-YCrCb, YES,….
Đồ Án Tốt Nghiệp Trang 40

Chương 3: KỸ THUẬT PHÂN TÁCH MÀU DA
Người thực hiện sử dụng không gian YCrCb vì có nhiều ưu điểm và đơn
giản hơn cả. Không gian này được chuyển đổi từ không gian RGB theo quan hệ sau:
Y = 0.299R +0.587G + 0.114B (3.9)
{



Các thành phần Y có 220 cấp độ khác nhau [16 – 235], trong khi các thành
phần Cr, Cb có 225 cấp độ khác nhau, [16 – 240].
[

] [

] [



] [

] (3.10)
Giá trị R, G, B được thu nhỏ [0 1]. Ngược lại với RGB, không gian màu
YCrCb là độc lập, kết quả là một hiệu suất tốt hơn.
{



khi Y,Cr,Cb = [0-255] (3.11)
Cụm da tương ứng được người thực hiện đưa ra đã đã phát triển một thuật
toán khai thác các đặc tính không gian của màu da người. Một bản đồ có nguồn gốc
màu da và được sử dụng trên các thành phần sắc độ của hình ảnh đầu vào để phát
hiện các điểm ảnh có vẻ như màu da. Thuật toán sau đó sử dụng một tập hợp các
quá trình qui chuẩn để củng cố những khu vực – điểm ảnh màu da có nhiều khả
năng thuộc về các vùng trên tay. Làm việc trong không gian YCrCb, người thực
hiện đã phát hiện ra rằng phạm vi của đại diện hầu hết các Cb và Cr cho màu da
tham chiếu là:
{


(3.12)

Đồ Án Tốt Nghiệp Trang 41

Chương 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440
CHƯƠNG 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440
4.1. Cài đặt trình biên dịch chéo AMR-LINUX-GCC trên Host
- Download arm-linux-gcc-4.4.3.tgz . Giải nén được thư mục opt.
- Mở màn hình terminal, đăng nhập với tài khoản root. Truy xuất theo đường
dẫn root@ubuntu:~/Downloads/opt/FriendlyARM/toolschain/4.4.3/bin# gõ lệnh
: Gedit ~/.bashrc

Hình 4.1: Nội dung file bashrc
- Kết quả như hình dưới tức là quá trình cài đặt trình biên dịch chéo arm-linux-
gcc trên Host đã thành công.

Hình 4.2: Arm-linux-gcc được cài đặt thành công

Đồ Án Tốt Nghiệp Trang 42

Chương 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440
4.2. Cài đặt thư vi ện Tslib trên Host
- Cài đặt thư viện Tslib để sử dụng cảm ứng trên Board nhúng mini2440.
- Cài đặt các gói thư viện kèm theo :
+ sudo apt-get install autoconf
+ sudo apt-get install libssl -dev zlib1g-dev


Hình 4.3: Cài đặt tiện ích autoconf
+ sudo apt-get install libtool


Hình 4.4: Cài đặt tiện ích libtool
- Tải gói cài đặt Tslib : git clone http://github.com/kergoth/tslib.git

Hình 4.5: Tải gói cài đặt Tslib

Đồ Án Tốt Nghiệp Trang 43

Chương 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440
+ Gõ lệnh : ./autogen.sh

Hình 4.6: Quá trình chuẩn bị file cần thiết để cài đặt
+ Gõ lệnh : ./configure --host=arm-angstrom-linux-gnueabi--
prefix=/usr/local/tslib --enable-static --enable-shared

Hình 4.7: Quá trình ki ểm tra các đi ều kiện của hệ thống cần cho việc cài đặt

Đồ Án Tốt Nghiệp Trang 44

Chương 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440
+ Gõ lệnh : make

Hình 4.8: Biên dịch thư vi ện Tslib
+ Gõ lệnh : make install

Hình 4.9: Cài đặt thư vi ện Tslib

+ Kết quả khi biên dịch thành công :
Đồ Án Tốt Nghiệp Trang 45

Chương 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440

Hình 4.10 : Quá trình cài đặt thư vi ện Tslib thành công
4.3. Cài đặt thư vi ện QtEveryWhere trên Host
- Giải nén gói cài đặt qt-everywhere : tar -xvzf qt-everywhere-opensource-src-
4.6.3.tar.gz.
- Gõ lệnh : cd qt-everywhere-opensource-src-4.6.2
- Gõ lệnh : gedit mkspecs/common/g++.conf
+ Thay đổi dòng sau : QMAKE_CFLAGS_RELEASE += -O2
 QMAKE_CFLAGS_RELEASE += -O0
Đồ Án Tốt Nghiệp Trang 46

Chương 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440

Hình 4.11: Nội dung file g++.conf
- Gõ lệnh : gedit mkspecs/qws/linux-arm-g++/qmake.conf

Hình 4.12: Nội dung file qmake.conf

Đồ Án Tốt Nghiệp Trang 47

Chương 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440
- Sửa toàn bộ nội dung của file thành như sau :
#
# qmake configuration for building with arm-linux-g++
#
include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)
# modifications to g++.conf
QMAKE_CC =
/root/Downloads/opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-
gnueabi-gcc
QMAKE_CXX=
/root/Downloads/opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-
gnueabi-g++
QMAKE_LINK=/root/Downloads/opt/FriendlyARM/toolschain/4.4.3/bin/
arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB
=/root/Downloads/opt/FriendlyARM/toolschain/4.4.3/ arm-none-linux-gnueabi-
g++
# modifications to qmake.conf
QMAKE_AR =
/root/Downloads/opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-
gnueabi-ar cqs
QMAKE_OBJCOPY=/root/Downloads/opt/FriendlyARM/toolschain/4.4.
3/bin/arm-none-linux-gnueabi-objcopy
QMAKE_STRIP=/root/Downloads/opt/FriendlyARM/toolschain/4.4.3//bi
n/arm-none-linux-gnueabi-strip
QMAKE_INCDIR += /usr/local/tslib/include
QMAKE_LIBDIR += /usr/local/tslib/lib
load(qt_config)
Đồ Án Tốt Nghiệp Trang 48

Chương 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440
- Di chuyển theo đường dẫn sau root@ubuntu:~/Downloads/qt-everywhere-
opensource-src-4.6.3# gõ lệnh :
./configure -embedded arm -xplatform qws/linux-arm-g++ -prefix /usr/local/Qt -
qt-mouse-tslib -little-endian -no-webkit -no-qt3support -no-cups -no-largefile -
optimized-qmake -no-openssl -nomake tools

Hình 4.13: Quá trình ki ểm tra các đi ều kiện của hệ thống cần cho vi ệc cài đặt
- Gõ lệnh : make
- Gõ lệnh : make install

Hình 4.14: Quá trình cài đặt QtEveryWhere thành công

Đồ Án Tốt Nghiệp Trang 49

Chương 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440
4.4. Cài đặt thư vi ện OpenCV cho Host
- Giải nén gói cài đặt thư viện OpenCV dùng lệnh : tar -xvf OpenCV-
2.1.0.tar.bz2
- Cài đặt các gói thư viện cần thiết : sudo apt-get install build-essential
libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev cmake
libswscale-dev libjasper-dev

Hình 4.15: Quá trình cài đặt các gói thư vi ện cần thiết
- Gõ lệnh : Cmake .

Hình 4.16: Kiểm tra sự hoạt động các định dạng ảnh cho Host
- Kết quả như trên cho biết là thư viện OpenCV đã được config để đọc được
video,ảnh tĩnh.
- Gõ lệnh : make
- Gõ lệnh : make install
Đồ Án Tốt Nghiệp Trang 50

Chương 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440

Hình 4.17: Quá trình cài đặt OpenCV thành công
- Gõ lệnh : sudo gedit /etc/ld.so.conf.d/opencv.conf

Hình 4.18: Nội dung file opencv.conf
- Gõ lệnh : sudo ldconfig

Đồ Án Tốt Nghiệp Trang 51

Chương 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440
- Gõ lệnh : sudo gedit /etc/bash.bashrc

Hình 4.19: Nội dung file bash.bashrc
- Kiểm tra hoạt động của OpenCV trên Host :
+ Tạo thư mục mới theo đường dẫn sau : root@ubuntu:~/Downloads# mkdir
test_opencv_ubuntu
+ Copy các chương trình mẫu trong Opencv đễn thư mục mới tạo : Cp
/root/Downloads/OpenCV-2.1.0/samples/c/*root/Downloads/
test_opencv_ubuntu
+ Thực thi các ứng dụng phát hiện mặt ngươi trong OpenCV :
- chmod +x build_all.sh
- ./build_all.sh
+ Chạy thử ứng dụng : ./facedetect--
cascade="/usr/local/share/opencv/haarcascades/haarcascade_frontalface_alt.x
ml" --scale=1.5 lena.jpg

Hình 4.20: Kết quả test hoạt động của thư viện OpenCV trên Host

Đồ Án Tốt Nghiệp Trang 52

Chương 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440
4.5. Cài đặt hệ điều hành Linux cho Target

Hình 4.21: Quá trình cài đặt hệ điều hành Target
- Bước 1 : Nhấn [x] Format Nand Flash
- Bước 2 : Nhấn [v] Download Vivi
- Bước 3 : Nhấn [k] Download linux kernel
- Bước 4 : Nhấn [y] Download root_yaffs image

Hình 4.22: Quá trình truyền tải file từ Host xuống Target

4.6. Cấu hình TouchScreen cho Target
- Đăng nhập tài khoản root bằng giao diện :
Đồ Án Tốt Nghiệp Trang 53

Chương 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440


Hình 4.23 : Đăng nhập vào Target thông qua giao thức FTP
- Các thư mục bên trong Board mini2440 :

Hình 4.24 : Các thư mục bên trong Board mini2440

Đồ Án Tốt Nghiệp Trang 54

Chương 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440
- Chỉnh sửa nội dung file profile thành như sau :

Hình 4.25: Nội dung file profile
4.7. Cài đặt thư vi ện OpenCV cho Target
- Mở màn hình Terminal, gõ lệnh :
./configure --host=arm-linux --without-gkt --without-gthread --
without-ffmpeg --without-python -- disable-shared --
refix=/opt/opencv.arm



Đồ Án Tốt Nghiệp Trang 55

Chương 4: BIÊN DỊCH ỨNG DỤNG TRÊN BOARD NHÚNG MINI2440
Hình 4.26: Kiểm tra sự hoạt động các định dạng ảnh cho Target

- Download các thư viện OpenCV vưa biên dịch được xuống Board
nhúng mini2440 :

Hình 4.27: Download thư vi ện OpenCV xuống Target
Copy file libgomp.so.1 và libgomp.so.1.0.0 từ trong bộ cài arm-linux-gcc
(Thư mục /root/Downloads/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-
gnueabi/sys-root/lib) xuống thư mục /usr/lib tren KIT.

Đồ Án Tốt Nghiệp Trang 56

Chương 5: KẾT QUẢ THỰC HIỆN
CHƯƠNG 5: KẾT QUẢ THỰC HIỆN
5.1. Kết quả thực hiện phần mềm Matlab
5.1.1 Lưu đồ giải thuật trên Matlab

Hình 5.1: Lưu đồ giải thuật trên Matlab




Đồ Án Tốt Nghiệp Trang 57

Chương 5: KẾT QUẢ THỰC HIỆN
5.1.2. Giới thiệu chương trình
Chạy chương trình, sẽ xuất hiện hộp thư thoại như hình:

Hình 5.2: Giao diện giới thiệu
Ấn Thoát sẽ thoát khỏi chương trình
Ấn Tiếp Theo sẽ xuất hiện giao diện mô phỏng







Đồ Án Tốt Nghiệp Trang 58

Chương 5: KẾT QUẢ THỰC HIỆN

Hình 5.3: Giao di ện chính
÷ Đây chính là giao diện chính của chương trình gồm ba khung hiển thị hình ảnh
và các nút nhấn.
÷ Có 2 cách nhận dạng: nhận dạng ảnh tĩnh và camera, bằng cách check nút
ảnh tĩnh / camera.
÷ Nếu nhận dạng ảnh tĩnh thì phải chọn ảnh cần nhận dạng
Hộp thoại mở file xuất hiện, chọn file ảnh bạn muốn nhận dạng.
Đồ Án Tốt Nghiệp Trang 59

Chương 5: KẾT QUẢ THỰC HIỆN

Hình 5.4: Giao diện chọn ảnh
+ Sau đó nhấn nút Nhận dạng để bắt đầu chương trình nhận dạng bàn tay


Đồ Án Tốt Nghiệp Trang 60

Chương 5: KẾT QUẢ THỰC HIỆN

Hình 5.5: Kết quả sau khi nhận dạng ảnh tĩnh

÷ Nếu nhận dạng bằng Camera thì chọn chế độ camera để bắt đầu
Đồ Án Tốt Nghiệp Trang 61

Chương 5: KẾT QUẢ THỰC HIỆN

Hình 5.6: Kết quả sau khi nhận dạng bằng camera






Đồ Án Tốt Nghiệp Trang 62

Chương 5: KẾT QUẢ THỰC HIỆN
5.2 Kết quả thực hiện phần cứng
5.2.1. Lưu đồ giải thuật trên Qt

Hình 5.7: Lưu đồ giải thuật trên Qt

Đồ Án Tốt Nghiệp Trang 63

Chương 5: KẾT QUẢ THỰC HIỆN
5.2.2. Cài đặt được hệ điều hành lên kit mini2440

Hình 5.8: Các thư mục hệ thống sau khi đã cài đặt xuống kit
Sau khi đã cài đặt hệ điều hành xuống kit, trong thư mục của ô nhớ hệ thống
sẽ phân vùng giống như một hệ điều hành ubuntu bình thường.
Đồ Án Tốt Nghiệp Trang 64

Chương 5: KẾT QUẢ THỰC HIỆN
5.2.3. Xây dựng được hệ thống nhận dạng bàn tay đóng mở điều khiển
thiết bi dựa trên hệ thống nhúng trên kit mini2440

Hình 5.9: Giao diện phần cứng
Giao diện phần cứng gồm có 3 nút nhấn và 1 nút check Detecting
Nút nhấn gồm :
-START CAM: Khởi động camera
-SAVE_LOAD: Lưu hình ảnh từ camera và hiển thị ra kết quả
-LOAD SCR: Lấy hình ảnh từ hình đã lưu, sau đó xử lý

Đồ Án Tốt Nghiệp Trang 65

Chương 5: KẾT QUẢ THỰC HIỆN
Dấu Detecting có chức năng nhận dạng thời gian thực cùng với camera.
Màn hình bên trái sẽ hiển thị ảnh từ camera hoặc ảnh gốc sau khi ấn nút
LOAD, màn hình bên phải sẽ là ảnh sau khi xử lý.

Hình 5.10: Kết quả thực hiện
Kết quả thực hiện của hình trên dựa vào số điểm ảnh màu da trên tổng số
điểm ảnh có trong hình.
Và ngưỡng này được quy định khoảng hơn 15% là nhận dạng tay mở, còn từ
15-10% sẽ nhận dạng là tay đóng. Nhỏ hơn 10% hệ thống sẽ yêu cầu đưa bàn tay
vào.
Các giá trị ngưỡng được thực hiện sao cho phù hợp với tập mẫu và môi
trường thực hiện.
{



Đồ Án Tốt Nghiệp Trang 66

Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
6.1. Kết quả đạt được
- Đã tìm hiểu về lý thuyết xử lí ảnh, kit mini2440, hệ thống nhúng.
- Làm quen với môi trường lập trình trên hệ điều hành Ubuntu/Linux
- Mô phỏng được việc phát hiện cử động đóng mở bàn tay trên matlab
- Nhúng hệ điều hành lên kit
- Xây dựng được hệ thống phát hiện cử động của bàn tay, kết hợp với điều
khiển thiết bị trên kit.
6.2. Hạn chế của đề tài
- Hệ thống chỉ có khả năng phân biệt tay đóng mở không phát hiện được cử
chỉ của ngón tay.
- Hệ màu khi lựa chọn còn chưa được tối ưu, vẫn có khả năng bị nhiễu khi
gặp vật có cùng màu hoặc không thể phân biệt được màu da khi thiếu ánh sáng….
- Các giá trị ngưỡng trên được thực hiện trên kết quả thực nghiệm.
- Tốc độ xử lí của kit mini2440 còn chậm.
- Thuật toán còn đơn giản.
6.3. Hướng phát tri ển đề tài
- Hệ thống phát hiện màu da này cho phép kit có khả năng nhận biết màu da
thông qua camera. Từ đó kết hợp với cử chỉ bàn tay để điều khiển thiết bị (bao
gồm di chuyển tay qua lại, lên xuống….) được ứng dụng rất nhiều trong các smart
phone ngày nay.
- Kết hợp mạng nơ ron để nhận dạng.
- Nâng cấp phần cứng cải tiến tốc độ xử lí, tính toán của phần mềm.
Đồ Án Tốt Nghiệp Trang 67

TÀI LIỆU THAM KHẢO

Tài liệu tham khảo
[1]. PGS.TS Nguyễn Quang Hoan, Xử Lý Ảnh, Học viện công nghệ bưu chính
viễn thông, 2006.
[2] Phí Tùng Lâm – Nguyễn Trung Dũng, Ứng dụng tạo tiếng nói tiếng việt từ
văn bản trên kit Mini2440,đồ án tốt nghiệp đại học bách khoa Hà Nội.
[3] Cao Thanh Hải – Đỗ Trung Nguyên, Triển khai giải thuật PCA trên kit
mini2440 ứng dụng trong các hệ thống bảo mật, đồ án tốt nghiệp đại học sư phạm
kĩ thuật TPHCM, 2012.
[4]. Tarek M. Mahmoud, A New Fast Skin Color Detection Technique, 2008.
[5].V.Vezhenevets, V.Sazzonov, A.Andreeva, A Survey on Pixel – Based Skin
Color Detection Techniques, Proc, Graphicon -2003.
[6] Rafael Gonzalez, Richard E.Woods, Digital Image Processing Second Edition,
Rafael C. Gonazlez, University of Tennessee, Richard E. Woods, MedData
Interactive.