BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH
KHOÁ LUẬN TỐT NGHIỆP
THIẾT KẾ VÀ CHẾ TẠO MÔ HÌNH NHẬN DẠNG MÃ VẠCH
ỨNG DỤNG CÔNG NGHỆ XỬ LÝ ẢNH
Họ và tên sinh viên: Hà Tấn Đắc
Trần Thành Tuân
Ngành: CƠ ĐIỆN TỬ
Niên khoá: 2007 - 2011
Tháng 6 năm 2011
THIẾT KẾ VÀ CHẾ TẠO MÔ HÌNH NHẬN DẠNG MÃ VẠCH ỨNG
DỤNG CÔNG NGHỆ XỬ LÝ ẢNH
Tác giả
HÀ TẤN ĐẮC
TRẦN THÀNH TUÂN
Khóa luận được đệ trình để đáp ứng yêu cầu
cấp bằng Kỹ sư ngành
CƠ ĐIỆN TỬ
Giáo viên hướng dẫn:
ThS. Nguyễn Lê Tường
KS. Huỳnh Cao Vân
Tháng 6 năm 2011
i
LỜI CẢM ƠN
Sau gần 4 năm học tập và rèn luyện, những kiến thức mà Thầy/ Cô bộ môn Cơ
điện tử, khoa Cơ khí – Công nghệ, trường Đại học Nông Lâm TP.HCM truyền đạt đã
thực sự cung cấp những hành trang hữu ích và quý báu để giúp chúng em vững bước
và tự tin trên con đường sự nghiệp trước mắt.
Em xin chân thành cảm ơn sự tậm tâm, lòng nhiệt tình không ngại khó khăn vất
vả mà các Thầy cô đã dành cho sinh viên chúng em trong suốt quãng thời gian vừa
qua. Đặc biệt chúng em cũng hết sức biết ơn ThS. Nguyễn Lê Tường đã hỗ trợ và tận
tình giúp đỡ chúng em trong suốt quá trình chúng em thực hiện đề tài. Chúng em cũng
muốn gửi lời cảm ơn chân thành đến Quý Thầy/ Cô trong Hội đồng đã giành thời gian
quý báu của mình để nhận xét và đóng góp ý kiến để khóa luận của chúng em thêm
hoàn thiện.
Cuối cùng, chúng em muốn gửi lời chúc sức khỏe, hạnh phúc và thành công
đến các thầy cô.
TP. Hồ Chí Minh, ngày 30 tháng 05 năm 2011
Sinh viên thực hiện
Hà Tấn Đắc
Trần Thành Tuân
ii
TÓM TẮT
Đề tài nghiên cứu “Thiết kế và chế tạo mô hình nhận dạng mã vạch ứng
dụng công nghệ xử lý ảnh” được tiến hành tại ĐẠI HỌC NÔNG LÂM TP.HCM,
thời gian từ 08/03/2011 đến 30/05/2011.
Mục đích của đề tài này là tạo ra một công cụ viết bằng ngôn ngữ C# kết hợp với
bộ thư viện mã nguồn mở EmguCV để nhận dạng mã vạch và xuất cơ sở dữ liệu bằng
công nghệ xử lý ảnh. Các mã vạch được thiết kế sẵn và được dán lên thẻ. Webcam
được lắp trong hộp đen có chiếu sáng sẽ chụp hình mã vạch khi thẻ được đưa vào. Ảnh
chụp sẽ được lưu vào bộ nhớ RAM và chuyển thành ảnh xám. Ảnh nhị phân chuyển từ
ảnh xám sẽ được xử lý để tính diện tích từng vạch và hiển thị giá trị tương ứng của
mỗi vạch đó. Giá trị của mã vạch được so sánh với cơ sở dữ liệu có sẵn. Nếu giá trị
mã vạch trên thẻ và giá trị mã vạch trong cơ sở dữ liệu khớp nhau thì chương trình sẽ
hiển thị thông tin tương ứng với mã vạch đó.
iii
MỤC LỤC
Trang tựa........................................................................................................................... i
Lời cảm ơn .......................................................................................................................ii
Tóm tắt đề tài ................................................................................................................ iii
Mục lục .......................................................................................................................... iv
Danh sách chữ viết tắt ..................................................................................................vii
Danh mục hình vẽ ....................................................................................................... viii
CHƯƠNG 1: MỞ ĐẦU
1.1 Lý do chọn đề tài ...................................................................................................... 1
1.2 Nhiệm vụ đề tài ........................................................................................................ 1
1.3 Mục đích đề tài ......................................................................................................... 2
1.4 Phương pháp nghiên cứu .......................................................................................... 2
CHƯƠNG 2: TỔNG QUAN VÀ CÁC VẤN ĐỀ LIÊN QUAN
2.1 Xử lý ảnh và các vấn đề cơ bản trong xử lý ảnh ...................................................... 3
2.1.1 Xử lý ảnh là gì? ................................................................................................. 3
2.1.2 Các khái niệm cơ bản trong xử lý ảnh .............................................................. 4
2.1.3 Thu nhận ảnh ..................................................................................................... 8
2.1.4 Ứng dụng của xử lý ảnh ..................................................................................... 8
2.2 Tổng quan về mã vạch .............................................................................................. 9
2.2.1 Lịch sử ............................................................................................................... 9
2.2.2 Các dạng mã vạch ........................................................................................... 11
2.2.3 Các loại mã vạch thông dụng ........................................................................... 14
2.2.4 Ứng dụng của mã vạch .................................................................................... 16
2.3 Tổng quan về máy đọc mã vạch ............................................................................. 17
2.3.1 Barcode Scanner .............................................................................................. 17
2.3.2 Cấu tạo cơ bản của máy quét barcode quang học ........................................... 17
2.3.3 Nguyên lý hoạt động của máy quét barcode quang học ................................. 18
2.3.4 Phân loại máy quét barcode quang học ........................................................... 19
2.4 Tìm hiểu ngôn ngữ C# ............................................................................................ 25
2.5 EmguCV ................................................................................................................. 26
2.6 Các phương pháp chiếu sáng .................................................................................. 28
2.6.1 Chiếu sáng trực tiếp vào đối tượng ................................................................. 28
2.6.2 Chiếu sáng khuếch tán trước đối tượng .......................................................... 28
iv
2.6.3 Chiếu sáng phân cực ....................................................................................... 29
2.6.4 Chiếu sáng đồng trục ....................................................................................... 29
2.6.5 Chiếu sáng theo cấu trúc ................................................................................. 30
2.6.6 Chiếu sáng phía sau ......................................................................................... 30
2.7 Các phần mềm ứng dụng xử lý ảnh nhận dạng mã vạch ........................................ 31
2.7.1 Phần mềm trong nước ..................................................................................... 31
2.7.2 Phần mềm nước ngoài ...................................................................................... 32
CHƯƠNG 3: VẬT LIỆU VÀ PHƯƠNG PHÁP NGHIÊN CỨU
3.1 Vật liệu và phương tiện .......................................................................................... 35
3.2 Phương pháp ........................................................................................................... 35
3.2.1 Nghiên cứu lý thuyết ....................................................................................... 35
3.2.2 Phương pháp thực hiện ................................................................................... 36
CHƯƠNG 4: KẾT QUẢ VÀ THẢO LUẬN
4.1 Hộp lấy ảnh và thẻ .................................................................................................. 37
4.1.1 Hộp lấy ảnh ..................................................................................................... 37
4.1.2 Thẻ và mã vạch ............................................................................................... 40
4.2 Chương trình ........................................................................................................... 42
4.2.1 Giao diện của chương trình ............................................................................. 42
4.2.2 Cơ sở dữ liệu .................................................................................................... 42
4.2.3 Lưu đồ giải thuật của chương trình ................................................................. 43
4.3 Kết quả khảo nghiệm .............................................................................................. 47
CHƯƠNG 5: KẾT LUẬN VÀ ĐỀ NGHỊ
5.1 Kết quả đạt được...................................................................................................... 53
5.2 Hướng phát triển của đề tài ..................................................................................... 53
TÀI LIỆU THAM KHẢO.......................................................................................... 54
PHỤ LỤC ..................................................................................................................... 55
v
DANH SÁCH CHỮ VIẾT TẮT
ASCII – American Standard Code for Information Interchange
CCD – Charge Coupled Device
CMOS – Complementary Metal-Oxide-Semiconductor
EAN – European Article Numbering
GIS – Geographic Information System
IDE – Integrated Development Environment
Laser – Light Amplification by Stimulated Emission of Radiation
LED – Light Emitting Diode
RFID – Radio-frequency identification
UPC – Universal Product Code
USB – Universal Serial Bus
Webcam – Web Camera
XML – eXtensible Markup Language
ID – Identìfy
vi
DANH SÁCH CÁC HÌNH
Chương 2
Hình 2.1 – Quá trình xử lý ảnh ........................................................................................ 3
Hình 2.2 – Các bước cơ bản trong một hệ thống xử lý ảnh ............................................ 3
Hình 2.3 – Mã số EAN-13 ............................................................................................. 14
Hình 2.4 – Ví dụ về code 39 .......................................................................................... 15
Hình 2.5 – Cấu tạo code 128 ......................................................................................... 15
Hình 2.6 – Mã vạch theo code EAN-13 ........................................................................ 16
Hình 2.7 – Tròng CCD .................................................................................................. 17
Hình 2.8 – Máy đọc mã vạch dạng cầm tay .................................................................. 22
Hình 2.9 – Máy đọc mã vạch dạng để bàn .................................................................... 22
Hình 2.10 – Máy quét mã vạch dạng không dây .......................................................... 23
Hình 2.11 – Máy kéo thẻ barcode ................................................................................. 24
Hình 2.12 – Cấu trúc tổng quát của EmgCV ................................................................. 27
Hình 2.13 – Phương pháp chiếu sáng trực tiếp vào đối tượng ...................................... 28
Hình 2.14 – Phương pháp chiếu sáng khuếch tán trước đối tượng ............................... 28
Hình 2.15 – Phương pháp chiếu sáng đồng trục............................................................ 29
Hình 2.16 – Phương pháp chiếu sáng theo cấu trúc ...................................................... 30
Hình 2.17 – Phương pháp chiếu sáng phía sau.............................................................. 30
Hình 2.18 – Phần mềm nhận dạng mã vạch Barcode 12.0 của KlinkSoft .................... 31
Hình 2.19 – Giao diện phần mềm DTK Barcode Reader SDK ..................................... 32
Hình 2.20 – Giao diện phần mềm EvoBarcode ............................................................. 34
Chương 3
Hình 3.1 – Webcam Colorvis 1009 ............................................................................... 35
vii
Chương 4
Hình 4.1 – Hộp lấy ảnh thiết kế trên Pro/E ................................................................... 38
Hình 4.2 – Mô hình thực tế của hộp lấy ảnh ................................................................. 38
Hình 4.3 – Kết nối hộp lấy ảnh với máy tính ................................................................ 39
Hình 4.4 – Tạo font barcode với phần mềm High-Logic FontCreator 6.0.................... 40
Hình 4.5 – Tạo mã vạch với font barcode ..................................................................... 40
Hình 4.6 – Mã vạch ....................................................................................................... 41
Hình 4.7 – Thẻ có dán mã vạch ..................................................................................... 41
Hình 4.8 – Giao diện chương trình nhận dạng mã vạch ............................................... 42
Hình 4.9 – Cơ sở dữ liệu được tạo bằng Access ........................................................... 42
Hình 4.10 – Sơ đồ tổng quát của chương trình.............................................................. 43
Hình 4.11 – Giải thuật chuyển sang ảnh nhị phân ........................................................ 44
Hình 4.12 – Giải thuật tính diện tích một vạch ............................................................ 45
Hình 4.13 – Giải thuật nhận dạng vạch ........................................................................ 46
Hình 4.14 – Kết quả khảo nghiệm với mã vạch có diện tích lớn nhất ......................... 47
Hình 4.15 – Kết quả khảo nghiệm với mã vạch có diện tích nhỏ nhất ........................ 48
Hình 4.16 – Kết quả khảo nghiệm với mã vạch ngẫu nhiên (02007)............................ 49
Hình 4.17 – Kết quả khảo nghiệm với mã vạch ngẫu nhiên (92154)............................ 50
Hình 4.18 – Kết quả khảo nghiệm với mã không hợp lệ............................................... 51
Hình 4.19 – Kết quả khảo nghiệm với trường hợp không có thẻ .................................. 52
Hình 4.20 – Kết quả khảo nghiệm với trường hợp bị kẹt thẻ ........................................ 50
viii
Chương 1
MỞ ĐẦU
1.1 Lý do chọn đề tài
Như chúng ta đã biết, mã vạch là một trong các công nghệ nhận dạng và thu
thập dữ liệu tự động, có thể đưa vào áp dụng trong đa ngành công nghiệp. Trên thế
giới, mã vạch đã được đưa vào áp dụng đại trà từ hơn 30 năm nay trong các ngành
khác nhau như: bán lẻ, quốc phòng, y tế, giao thông vận tải, thể thao và truy tìm
nguồn gốc, … Để có thể ứng dụng những ưu việt của mã vạch vào trong thưc tế thì
một thiết bị đọc mã vach là máy đọc mã vạch đã ra đời và ngày càng trở nên rất phổ
biến, nhưng giá thành của những máy đọc này thường rất cao và chỉ sử dụng cho mục
đích duy nhất là đọc mã vạch. Trong điều kiện nền kinh tế đang phát triển ở Việt
Nam hiện nay, việc tạo ra các sản phẩm có giá thành rẻ hơn để có thể sử dụng trong
các lĩnh vực là một điều cần thiết.
Như ta cũng biết công nghệ xử lý ảnh đã rất phổ biến trong công nghiệp, được
ứng dụng vào trong thực tế sản xuất. Và với những camera thông dụng đủ tốt nhưng
không quá đắt tiền nếu chúng ta viết một chương trình nhận dạng bằng camera thì sẽ
tiết kiệm được giá thành hơn khi mua máy đọc mã vạch. Hơn nữa với camera thì
chúng ta còn có thể sử dụng trong các mục đích khác ngoài việc đọc mã vạch. Đó là
ưu điểm rất lớn của xử lý ảnh trong công nghiệp.
Vì vậy, chúng em muốn đi vào nghiên cứu và viết một chương trình nhận dạng
mã vạch ứng dụng công nghệ xử lý ảnh, và đã chọn đề tài: “Thiết kế và chế tạo mô
hình nhận dạng mã vạch ứng dụng công nghệ xử lý ảnh”.
1.2 Nhiệm vụ đề tài
Thiết kế mã vạch.
Viết chương trình nhận dạng mã vạch bằng ngôn ngữ C#.
Thiết kế và thi công mô hình nhận dạng mã vạch.
Tạo cơ sở dữ liệu.
1
1.3 Mục đích đề tài
Mục đích của đề tài nhằm xây dựng một chương trình dùng để đọc mã vạch từ
camera, từ đó có thể phát triển để ứng dụng vào các yêu cầu đọc mã vạch thực tế như
thư viện, nhà sách, siêu thị…
1.4 Phương pháp nghiên cứu
Dựa trên yêu cầu của đề tài chúng em đã thu thập tài liệu về mã vạch và cách
giải mã mã vạch, tìm hiểu về các máy đọc mã vạch thực tế để ứng dụng vào việc thiết
kế mô hình đọc mã vạch.
Sau khi nghiên cứu về mã vạch chúng em đi tìm hiểu về lý thuyết xừ lý ảnh,
chủ yếu đi về các thuật toán tăng cường chất lượng ảnh để camera nhận dạng tốt hơn.
Và cuối cùng là việc viết chương trình nhận dạng mã vạch từ các hình camera
thu về.
2
Chương 2
TỔNG QUAN VÀ CÁC VẤN ĐỀ LIÊN QUAN
2.1 Xử lý ảnh và các vấn đề cơ bản trong xử lý ảnh
2.1.1 Xử lý ảnh là gì?
Con người thu nhận thông tin qua các giác quan, trong đó thị giác đóng vai trò
quan trọng nhất. Những năm trở lại đây với sự phát triển của phần cứng máy tính, xử
lý ảnh và đồ hoạ đó phát triển một cách mạnh mẽ và có nhiều ứng dụng trong cuộc
sống. Xử lý ảnh và đồ hoạ đóng một vai trò quan trọng trong tương tác người máy.
Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho ra kết
quả mong muốn. Kết quả đầu ra của một quá trình xử lý ảnh có thể là một ảnh “tốt
hơn” hoặc một kết luận.
Ảnh
Ảnh
“Tốt
XỬ LÝ ẢNH
Kết luận
Hình 2.1 - Quá trình xử lý ảnh
Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh được xem như là đặc
trưng cường độ sáng hay một dấu hiệu nào đó tại một vị trí nào đó của đối tượng trong
không gian và nó có thể xem như một hàm n biến P(c1, c2,..., cn). Do đó, ảnh trong xử
lý ảnh có thể xem như ảnh n chiều.
Sơ đồ tổng quát của một hệ thống xử lý ảnh:
Hệ quyết định
Thu nhận ảnh
(Scanner,
Camera,Sensor)
Tiền xử lý
Trích chọn
đặc điểm
Đối sánh rút
ra kết luận
Hậu
xử lý
Lưu trữ
Hình 2.2 - Các bước cơ bản trong một hệ thống xử lý ảnh
3
2.1.2 Các khái niệm cơ bản trong xử lý ảnh
Ảnh và điểm ảnh
- Điểm ảnh: được xem như là dấu hiệu hay cường độ sáng tại một tọa độ trong
không gian của đối tượng.
- Ảnh: là một tập hợp hữu hạn các điểm ảnh kề nhau. Ảnh thường được biểu
diễn bằng một ma trận hai chiều, mỗi phần tử của ma trận tương ứng với một điểm
ảnh.
Phân loại ảnh
- Ảnh nhị phân (đen trắng): là ảnh có giá trị mức xám của các điểm ảnh được
biểu diễn bằng 1 bit (giá trị 0 hoặc 1). Ví dụ về biểu diễn ảnh nhị phân:
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
- Ảnh xám: giá trị mức xám của các điểm ảnh được biểu diễn bằng 8 bit (giá trị
từ 0 đến 255). Ví dụ về biểu diễn ảnh xám:
0
5
12
0
15
94
21
0
0
0
156 9
0
11
245 12
- Ảnh màu: thông thường, ảnh màu được tạo nên từ 3 ảnh xám đối với màu nền
đỏ (RED), xanh lá cây (GREEN), xanh lam (BLUE). Tất cả các màu trong tự nhiên
đều có thể được tổng hợp từ 3 thành phần màu trên theo các tỷ lệ khác nhau. Ví dụ về
biểu diễn ảnh màu:
Ma trận biểu diễn mức xám của thành phần RED:
0
7
11
0
115
94
20
0
0
0
15
16
0
11
225
12
4
Ma trận biểu diễn mức xám của thành phần GREEN:
0
1
121
0
14
9
210
0
0
0
115
16
0
11
22
2
Ma trận biểu diễn mức xám của thành phần BLUE:
0
17
21
0
135
93
50
0
0
0
15
67
0
11
25
19
Phần tử ảnh (pixel)
Ảnh trong tự nhiên là những tín hiệu liên tục về không gian và giá trị độ sáng.
Để có thể lưu trữ và biểu diễn ảnh bằng máy tính, con người phải tiến hành biến đổi
các tín hiệu liên tục đó thành một số hữu hạn các tín hiệu rời rạc thông quá quá trình
lượng tử hóa và lấy mẫu thành phần giá trị độ sáng.
Một phần tử ảnh (Picture Element) là một giá trị biểu diễn cho mức xám hay
cường độ ảnh tại một vị trí sau khi đã biến đổi ảnh thành một số hữu hạn các tín hiệu
rời rạc.
Mức xám
Là kết quả của sự biến đổi tương ứng giá trị độ sáng của một điểm ảnh với một
giá trị số nguyên dương. Tùy thuộc vào số giá trị biểu diễn mức xám mà mỗi điểm ảnh
sẽ được biểu diễn trên 1, 4, 8, 24 hay 32 bit. Số lượng bit biểu diễn mức xám càng lớn
thì chất lượng ảnh càng cao nhưng sẽ tốn dung lượng bộ nhớ nhiều hơn để lưu trữ và
cần một hệ thống mạnh hơn để xử lý.
5
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.
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.
Trích chọn đặc trưng
Các đặc điểm của đối tượng được trích chọn tuỳ theo mục đích nhận dạng trong
quá trình xử lý ảnh. Có thể nêu ra một số đặc điểm của ảnh sau đây:
- Đặc điểm không gian: Phân bố mức xám, phân bố xác suất, biên độ, điểm uốn
v.v..
- Đặc điểm biến đổi: Các đặc điểm loại này được trích chọn bằng việc thực hiện
lọc vùng (zonal filtering). Các bộ vùng được gọi là “mặt nạ đặc 10 điểm” (feature
mask) thường là các khe hẹp với hình dạng khác nhau (chữ nhật, tam giác, cung tròn
v.v..).
- Đặc điểm biên và đường biên: Đặc trưng cho đường biên của đối tượng và
do vậy rất hữu ích trong việc trích trọn các thuộc tính bất biến được dùng khi nhận
dạng đối tượng. Các đặc điểm này có thể được trích chọn nhờ toán tử gradient, toán tử
la bàn, toán tử Laplace, toán tử “chéo không” (zero crossing) v.v..
Việc trích chọn hiệu quả các đặc điểm giúp cho việc nhận dạng các đối tượng
ảnh chính xác, với tốc độ tính toán cao và dung lượng nhớ lưu trữ giảm xuống.
6
Nhận dạng:
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. Tuy nhiên, một câu hỏi đặt ra là: mẫu (pattern) là gì?
Watanabe, một trong những người đi đầu trong lĩnh vực này đã định nghĩa: “Ngược lại
với hỗn loạn (chaos), mẫu là một thực thể (entity), được xác định một cách ang áng
(vaguely defined) và có thể gán cho nó một tên gọi nào đó”. Ví dụ mẫu có thể là ảnh
của vân tay, ảnh của một vật nào đó được chụp, một chữ viết, khuôn mặt người hoặc
một ký đồ tín hiệu tiếng nói. Khi biết một mẫu nào đó, để nhận dạng hoặc phân loại
mẫu đó có thể:
- Hoặc phân loại có mẫu (supervised classification), chẳng hạn phân tích phân
biệt (discriminant analyis), trong đó mẫu đầu vào được định danh như một thành phần
của một lớp đã xác định.
- Hoặc phân loại không có mẫu (unsupervised classification hay clustering)
trong đó các mẫu được gán vào các lớp khác nhau dựa trên một tiêu chuẩn đồng dạng
nào đó. Các lớp này cho đến thời điểm phân loại vẫn chưa biết hay chưa được định
danh.
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:
- Thu nhận dữ liệu và tiền xử lý.
- Biểu diễn dữ liệu.
- 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à:
- Đối sánh mẫu dựa trên các đặc trưng được trích chọn.
- Phân loại thống kê.
- Đối sánh cấu trúc.
- 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ếpcậ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
7
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.
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.1.3 Thu nhận ảnh
Thiết bị thu nhận ảnh là camera, scanner, webcam,…. Các thiết bị thu nhận ảnh
này có thể cho ảnh trắng đen B/W (Black and White), ảnh xám hoặc ảnh màu. Với ảnh
B/W mức màu z là 0 hoặc 1. Với ảnh đa cấp xám, mức xám biến thiên từ 0 đến 255.
Ảnh màu, mỗi điểm ảnh lưu trữ trong 3 bytes và do đó ta có 2 8x3 = 2 24 màu (cỡ 16,
7 triệu màu).
Thiết bị ra ảnh có thể là máy in đen trắng, máy in màu hay máy vẽ (ploter).
Máy vẽ cũng có nhiều loại: loại dùng bút, loại phun mực.
Nhìn chung, các hệ thống thu nhận ảnh thực hiện 2 quá trình:
- Cảm biến: biến đổi năng lượng quang học (ánh sáng) thành năng lượng điện.
- Tổng hợp năng lượng điện thành ảnh.
2.1.4 Ứng dụng của xử lý ảnh
Nhận dạng và xử lý ảnh là một trong những lĩnh vực có nhiều ứng dụng trong
thực tiễn như: hệ thống tin địa lý (GIS), quân sự, y học… Nhìn chung, mục tiêu của xử
lý ảnh có thể chia làm 3 hướng như sau:
- Xử lý ảnh ban đầu để có được ảnh mới theo một yêu cầu xác định (ví dụ như
ảnh mờ cần xử lý để được ảnh rõ hơn).
- Phân tích ảnh để thu được các thông tin đặc trưng giúp cho việc phân loại,
nhận biết ảnh (ví dụ phân tích ảnh vân tay để trích chọn các đặc trưng vân tay)
- Hiểu ảnh đầu vào để có những mô tả về ảnh ở mức cao hơn, sâu hơn (ví dụ từ
ảnh một tai nạn giao thông phác họa hiện trường tai nạn).
8
2.2 Tổng quan về mã vạch
Mã vạch là sự thể hiện thông tin trong các dạng nhìn thấy trên các bề mặt mà
máy móc có thể đọc được. Nguyên thủy thì mã vạch lưu trữ dữ liệu theo bề rộng của
các vạch được in song song cũng như của khoảng trống giữa chúng, nhưng ngày nay
chúng còn được in theo các mẫu của các điểm, theo các vòng tròn đồng tâm hay chúng
ẩn trong các hình ảnh. Mã vạch có thể được đọc bởi các thiết bị quét quang học gọi là
máy đọc mã vạch hay được quét từ hình ảnh bằng các phần mềm chuyên biệt.
Nội dung của mã vạch là thông tin về sản phẩm như: nước sản xuất, tên doanh
nghiệp, lô, tiêu chuẩn chất lượng đăng ký, thông tin về kích thước sản phẩm, nơi kiểm
tra...
2.2.1 Lịch sử
Ý tưởng về mã vạch được phát triển bởi Norman Joseph Woodland và Bernard
Silver. Năm 1948 khi đang là sinh viên ở trường Đại học tổng hợp Drexel, họ đã phát
triển ý tưởng này sau khi được biết mong ước của một vị chủ tịch của một công ty
buôn bán đồ ăn là làm sao để có thể tự động kiểm tra toàn bộ quy trình. Một trong
những ý tưởng đầu tiên của họ là sử dụng mã Morse để in những vạch rộng hay hẹp
thẳng đứng. Sau đó, họ chuyển sang sử dụng dạng "điểm đen" của mã vạch với các
vòng tròn đồng tâm. Họ đã gửi đến cơ quan quản lý sáng chế Mỹ ngày 20 tháng 10
năm 1949 công trình Classifying Apparatus and Method (Thiết bị và phương pháp
phân loại) để lấy bằng sáng chế. Bằng sáng chế đã được phát hành ngày 7 tháng 10
năm 1952.
Thiết bị đọc mã vạch đầu tiên được thiết kế và xây dựng bởi Woodland (khi đó
đang làm việc cho IBM) và Silver năm 1952. Nó bao gồm một đèn dây tóc 500 W và
một ống chân không nhân quang tử được sản xuất bởi RCA cho các phim có âm thanh
(nó để in theo phương pháp quang học lên trên phim). Thiết bị này đã không được áp
dụng trong thực tế: để có dòng điện đo được bằng các nghiệm dao động (oscilloscope)
thì đèn công suất 500 W gần như đã làm cháy giấy có mẫu mã vạch đầu tiên của họ.
Nó đã không được sản xuất đại trà. Năm 1962 họ bán sáng chế này cho công ty
Philips, sau đó Philips lại bán nó cho RCA. Phát minh ra tia laser năm 1960 đã làm
cho các thiết bị đọc mã vạch trở nên rẻ tiền hơn, và sự phát triển của mạch bán dẫn
9
(IC) làm cho việc giải mã các tín hiệu thu được từ mã vạch có ý nghĩa thực tiễn. Đáng
tiếc là Silver đã chết năm 1963 ở 38 tuổi trước khi có bất kỳ những gì thực tiễn thu
được từ sáng chế này.
Năm 1972, cửa hàng Kroger ở Cincinnati thử nghiệm việc sử dụng đầu đọc mã
vạch điểm đen, với sự trợ giúp của RCA nhưng thử nghiệm đã không thu được thành
công nào đáng kể. Cùng thời gian đó, Woodland ở IBM đã phát triển mã vạch tuyến
tính được chấp nhận vào ngày 3 tháng 4 năm 1973 như là Mã sản phẩm chung (tiếng
Anh: Universal Product Code, hay UPC). Vào ngày 26 tháng 6 năm 1974, sản phẩm
bán lẻ đầu tiên (gói 10 thanh kẹo cao su Juicy Fruit của Wrigley) đã được bán bằng
cách sử dụng đầu đọc mã vạch tại siêu thị Marsh ở Troy, Ohio. (Gói kẹo cao su này
hiện nay nằm trong Viện bảo tàng quốc gia Hoa Kỳ ở Smithsonian.)
Năm 1992, Woodland đã được trao tặng giải thưởng Huy chương công nghệ
quốc gia bởi Tổng thống George H. W. Bush.
Năm 2004, Nanosys Inc. sản xuất mã vạch nano (nanobarcode) - sợi dây kích
thước nano (10-9 m) chứa các phần khác nhau của Si và GexSi1-x.
10
2.2.2 Các dạng mã vạch
Các mã vạch tuyến tính
Loại
Thuộc
Độ rộng
Sử dụng
2
Catalog, các giá hàng trong cửa
tính
Plessey
Liên tục
hàng, hàng tồn kho
UPC
Liên tục
Nhiều
Bán lẻ ở Mỹ
EAN‐UCC
Liên tục
Nhiều
Bán lẻ khắp thế giới
Codabar
Rời rạc
2
Thư viện, ngân hàng máu, vé
máy bay
Interleaved 2 of 5 Liên tục
2
Bán buôn, thư viện (ở Na Uy)
Code 39
Rời rạc
2
Đa dạng
Code 93
Liên tục
2
Đa dạng
Code 128
Liên tục
Nhiều
Đa dạng
Code 11
Rời rạc
2
Điện thoại
POSTNET
Liên tục
Cao/Thấp
Bưu điện
PostBar
Rời rạc
Nhiều
Bưu điện
CPC Binary
Rời rạc
2
Bưu điện
Telepen
Liên tục
2
Thư viện v.v (Vương quốc Anh)
11
Mã vạch cụm
Loại
Ghi chú
Codablock
Mã vạch cụm 1D.
Code 16K
Dựa trên Code 128 1D.
Code 49
Mã vạch cụm 1D từ Intermec Corp.
PDF417
Mã vạch 2D phổ biến nhất. Phạm vi công cộng.
Micro PDF417
Mã vạch 2D
12
Loại
Ghi chú
3‐DI
Phát triển bởi Lynn Ltd.
ArrayTag
Từ ArrayTech Systems.
Small Aztec Code
Điểm đen
Mã vạch này đã được thử nghiệm ở cửa hàng Kroger ở
Cincinnati. Nó sử dụng các vạch đồng tâm.
Code 1
Phạm vi công cộng.
CP Code
Từ CP Tron, Inc.
DataGlyphs
Từ Xerox PARC.
Datamatrix
Từ RVSI Acuity CiMatrix. Hiện nay thuộc phạm vi công
cộng.
Datastrip Code
Từ Datastrip, Inc.
Dot Code A
HueCode
Từ Robot Design Associates. Sử dụng thang màu xám hoặc
nhiều màu.
INTACTA.CODE
MaxiCode
Từ INTACTA Technologies, Inc.
Sử dụng bởi Dịch vụ chuyển phát hàng hóa Mỹ (United
Parcel Service).
MiniCode
Từ Omniplanar, Inc.
PDF417
Có nguồn gốc từ Symbol Technologies. Phạm vi công cộng.
QR Code
Từ Nippondenso ID Systems. Phạm vi công cộng.
SmartCode
Từ InfoImaging Technologies.
13
Snowflake Code
Từ Marconi Data Systems, Inc.
SpotCode
Mã vòng từ High Energy Magic Ltd.
SuperCode
Phạm vi công cộng.
UltraCode
Có các phiên bản đen trắng và màu. Phạm vi công cộng.
Aztec Code
Từ Welch Allyn (hiện nay là Handheld Products). Phạm vi
công cộng.
2.2.3 Các loại mã vạch thông dụng
Ean-13
Trong hệ thống mã số EAN cho sản phẩm bán lẻ có hai loại, một loại sử dụng
13 con số (EAN-13) và loại kia sử dụng 8 con số (EAN-8)
Hình 2.3 - Mã số EAN-13 gồm 13 con số có cấu tạo như sau: từ trái sang phải
- Mã quốc gia: hai hoặc ba con số đầu.
- Mã doanh nghiệp: có thể gồm từ bốn, năm hoặc sáu con số.
- Mã mặt hàng: có thể là năm, bốn hoặc ba con số tuỳ thuộc vào mã doanh
nghiệp.
- Số cuối cùng là số kiểm tra.
Để đảm bảo tính thống nhất và tính đơn nhất của mã số, mã quốc gia phải do tổ
chức mã số vật phẩm quốc tế (EAN International) cấp cho các quốc gia là thành viên
của tổ chức này. Mã số quốc gia của Việt nam là 893.
14
Code 39
UPC và EAN dù là 2 lọai mã vạch có tính chất chuyên nghiệp và quốc tế nhưng
khuyết điểm của nó là dung lượng có giới hạn và chỉ mã hóa được số, không mã hóa
được chữ.
Code 39 được phát triển sau UPC và EAN là ký hiệu chữ và số thông dụng
nhất. Nó không có chiều dài cố định như UPC và EAN do đó có thể lưu trữ nhiều
lượng thông tin hơn bên trong nó. Do tính linh họat như vậy, Code 39 được ưa chuộng
rộng rãi trong bán lẻ và sản xuất. Bộ ký tự này bao gồm tất cả các chữ hoa, các ký số
từ 0 đến 9 và 7 ký tự đặc biệt khác.
Hình 2.4 - Ví dụ về code 39
Nhiều tổ chức đã chọn một dạng thức Code 39 để làm chuẩn công nghiệp của
mình trong đó đáng chú ý là Bộ Quốc Phòng Mỹ đã lấy Code 39 làm bộ mã gọi là
LOGMARS.
Code 128
Code 128 là loại mã vạch tiết kiệm được không gian hơn so với code 39,do nó
có độ nén cao hơn,và nó được dùng trong công nghiệp vận tải và đóng gói. Code 128
có thể mã hóa ký tự và số và những ký tự đặc biệt.
Hình 2.5 - Cấu tạo code 128
Code 128 bao gồm ba loại:
- 128A - ký tự ASCII từ 00 đến 95(0 – 9,A-Z và mã điều khiển) và các ký tự
đặc biệt.
15
- 128B - ký tự ASCII từ 32 đến 127(0 – 9,A-Z,a –z) và các ký tự đặc biệt.
- 128C- các ký tự số từ 00 đến 99.
2.2.4 Ứng dụng của mã vạch
Mã vạch được sử dụng ở những nơi mà các đồ vật cần phải đánh số với các
thông tin liên quan để các máy tính có thể xử lý. Thay vì việc phải đánh một chuỗi dữ
liệu vào phần nhập liệu của máy tính thì người thao tác chỉ cần quét mã vạch cho thiết
bị đọc mã vạch. Chúng cũng làm việc tốt trong điều kiện tự động hóa hoàn toàn, chẳng
hạn như trong luân chuyển hành lý ở các sân bay.
Các dữ liệu chứa trong mã vạch thay đổi tùy theo ứng dụng. Trong trường hợp
đơn giản nhất là một chuỗi số định danh được sử dụng như là chỉ mục trong cơ sở dữ
liệu trong đó toàn bộ các thông tin khác được lưu trữ. Các mã EAN-13 và UPC tìm
thấy phổ biến trên hàng bán lẻ làm việc theo phương thức này.
Hình 2.6 - Mã vạch theo code EAN-13
Trong các trường hợp khác, mã vạch chứa toàn bộ thông tin về sản phẩm, mà
không cần cơ sở dữ liệu ngoài. Điều này dẫn tới việc phát triển mã vạch tượng trưng
mà có khả năng biểu diễn nhiều hơn là chỉ các số thập phân, có thể là bổ sung thêm
các ký tự hoa và thường của bảng chữ cái cho đến toàn bộ bảng mã ký tự ASCII và
nhiều hơn thế. Việc lưu trữ nhiều thông tin hơn đã dẫn đến việc phát triển của các ma
trận mã (một dạng của mã vạch 2D), trong đó không chứa các vạch mà là một lưới các
ô vuông. Các mã vạch cụm là trung gian giữa mã vạch 2D thực thụ và mã vạch tuyến
tính, và chúng được tạo ra bằng cách đặt các mã vạch tuyến tính truyền thống trên các
loại giấy hay các vật liệu có thể in ấn mà cho phép có nhiều hàng.
16