Bên cạnh đó lựa chọn hình ảnh để làm hình chuẩn cho quá trình nhận dạng đường đi là một lựa chọn có sự tính toán và cân nhắc cao vì sự thay đổi rất lớn trong hệ thống đường bộ, với các y
Trang 1TP Hồ Chí Minh, tháng 7/2014
Trang 2TÊN ĐỀ TÀI:
XỬ LÝ HÌNH ẢNH VÀ ĐIỀU KHIỂN XE CHẠY TỰ ĐỘNG
GIÁO VIÊN HƯỚNG DẪN: TS LÊ THANH PHÚC
SINH VIÊN THỰC HIỆN: 1 TÔ THÀNH TÍN MSSV: 10105139
2 TRƯƠNG MINH HIỂU MSSV: 10105035
1 Thyết minh đề tài: 1 cuốn thuyết minh
2 1 đĩa CD ghi nội dung của đề tài “Xử lý ảnh và điều khiển xe chạy tự động ”
III Thời gian thực hiện :
Trang 3
Tp Hồ Chí Minh, ngày……, tháng……, năm 2014
GIÁO VIÊN HƯỚNG DẪN
Trang 4
Tp Hồ Chí Minh, ngày……, tháng……, năm 2014
GIÁO VIÊN PHẢN BIỆN
Trang 5Để hoàn thành đồ án tốt nghiệp này, nhóm chúng tôi xin gửi lời cảm ơn sâu sắc
đến tất cả quý thầy cô khoa Cơ Khí Động Lực trường Đại học Sư phạm Kỹ thuật
Tp Hồ Chí Minh đã tận tình giảng dạy và truyền đạt nhữngkiến thức, kinh nghiệm quý
báu trong hơn bốn năm học vừa qua
Nhóm xin chân thành cảm ơn đến các thầy trong xưởng điện và xưởng động cơ
đã giúp đỡ trong quá trình thực hiện đồ án
Đặc biệt xin chân thành cảm ơn giáo viên hướng dẫn - TS Lê Thanh Phúc đã
tận tình giúp đỡ nhóm trong suốt quá trình thực hiện đồ án
Cuối cùng là lời cảm ơn sâu sắc đến gia đình, người thân và bạn bè đã động
viên nhóm hoàn thành nhiệm vụ đồ án được giao
Nhóm thực hiện
Trang 6NHẬN XÉT CỦA G IÁO VIÊN HƯỚNG DẪN
NHẬN XÉT CỦA G IÁO VIÊN PHẢN BIỆN
LỜI CẢM ƠN
MỤC LỤC
DANH SÁCH CÁC HÌNH
LỜI NÓI ĐẦU
PHẦN A MỞ ĐẦU 1
DẪN NHẬP 2
1 Đặt vấn đề 2
2 Mục tiêu và nhiệm vụ 2
3 Tầm quan trọng của đề tài 2
4 Đối tượng và phạm vi nghiên cứu 2
4.1 Hình ảnh 2
4.2 Labview 3
5 Phương pháp nghiên cứu 3
PHẦN B NỘI DUNG 4
CHƯƠNG 1: NHẬN DẠNG ĐƯỜNG ĐI VÀ HƯỚNG XỬ LÝ 5
I Nhận dạng theo vệt sơn đường 5
II Hướng xử lý khi nhận dạng đường đi 6
CHƯƠNG 2: XỬ LÝ ẢNH TRÊN LABVIEW 7
I Xử lý ảnh và cá vấn đề cơ bản trong xử lý ảnh 7
1.1 Xử lý ảnh và quá trình phát triển 7
1.2 Những vấn đề cơ bản trong hệ thống xử lý ảnh 10
II Labview và xử lý ảnh dùng Labview 11
2.1 Giới thiệu Labview 11
2.2 Ngôn ngữ lập trình Labview 13
2.2.1 Môi trường Labview 13
2.2.2 Xử lý ảnh trên Labview 18
2.2.3 Cấu trúc lập trình xử lý và xuất giá trị trong Labview 29
Trang 7III.2 Báo hiện đèn LED và switches DIP 51
III.3 Báo hiệu đèn LED 51
III.4 Switches DIP 52
III.5 Các cổng kết nối của hệ thống 52
III.6 Ứng dụng hệ thống NI EVS-1464RT 57
PHẦN C KẾT LUẬN 58
KẾT LUẬN 59
TÀI LIỆU THAM KHẢO 60
Trang 8Hình 1.1: Đường với vạch sơn đứt trắng đen rất phổ biến và có nhiều ưu điểm vượt
trội so với các loại hình ảnh khác 6
Hình 2.1: Cấu trúc xử lý ảnh 7
Hình 2.2: Tiến trình xử lý ảnh 8
Hình 2.3 : Thiết lập chương trình mới .13
Hình 2.4: Tìm các ví dụ 14
Hình 2.5 : Cách thiết lập thứ nhất cho vòng lặp While .15
Hình 2.6: Cách thiết lập thứ hai cho vòng lặp While .15
Hình 2.5: Vòng lặp For 16
Hình 2.6 : Cấu trúc Case 16
Hình 2.7 : Hai cách thể hiện của cấu trúc chuỗi 17
Hinh 2.8 : Đoạn chương trình y=x2+x+1 viết theo hai cách 17
Hình 2.9: Địa chỉ truy cập các hàm Vision 19
Hình 2.10 : Thư viện thiết bị camera NI-IMAQdx 20
Hình 2.11 : Thư viện tiện ích 21
Hình 2.12 : Thư viện quản lý ảnh 21
Hình 2.13: Sơ đồ chân hàm IMAQ Create 22
Hình 2.14 : Sơ đồ chân hàm IMAQ Dispose 22
Hình 2.15 : Sơ đồ chân hàm IMAQ GetImageInfo 23
Hình 2.16 : Sơ đồ chân hàm IMAQ GetImageSize .23
Hình 2.17:Sơ đồ chân hàm IMAQ Copy 23
Hình 2.18: Thư viện quản lý tập tin 23
Hình 2.19: Sơ đồ chân hàm IMAQ ReadFile 24
Hình 2.20: Sơ đồ chân hàm IMAQ WriteFile 24
Hình 2.21: Sơ đồ chân hàm IMAQ GetFileInfo 24
Hình 2.22: Thư viện tiện ích màu 25
Hình 2.23: Sơ đồ chân hàm IMAQ ExtractColorPlanes 25
Hình 2.24: Sơ đồ chân hàm IMAQ GetColorPixel 26
Hình 2.25: Thư viện xử lý ảnh 26
Trang 9Hình 2.28 : IMAQ Absolute Difference 27
Hình 2.29 : Thư viện thị giác máy 27
Hình 2.30: IMAQ Find Patterm 3 28
Hình 2.31: Cấu trúc xử lý ảnh theo phương pháp học mẫu .29
Hình 2.32: khai báo các hàm 30
Hình 2.33: Lựa chọn chất lượng theo yêu c ầu của đề tài và đ ặt tên cho khai báo .30
Hình 2.34: Kết nối trực tiêp dựa vào Add Sequence Local .31
Hình 2.35: Sử dụng Local Variable 31
Hình 2.36: Khai báo chế độ màu Green 32
Hình 2.37: Khai báo cho sự kết hợp hai chế độ màu 32
Hình 2.38: Khai báo cho chế độ màu Blue 32
Hình 2.39: Khai báo cho chế độ xác nhập màu Green 32
Hình 2.40: Khai báo cho chế độ xác nhập màu Blue 32
Hình 2.41: Khai báo cho chế độ cắt ảnh 33
Hình 2.42: Khai báo cho chế độ mở camera 33
Hình 2.43: Khai báo thiết lập cổng camera 33
Hình 2.44: Kết quả xử lý ảnh 34
Hình 2.45: Quá trình tiền xử lý ảnh 34
Hình 2.46: Tiền xử lý tín hiệu .35
Hình 2.47: Các màu và giá trị trong hàm IMAQ ExtractSingleColorPlane .35
Hình 2.48: Labview nhận tín hiệu liên tục từ camera 36
Hình 2.49: Hình ảnh sau khi được qua xử lý màu Green và hệ số nhân tương ứng .36
Hình 2.50: Camera được xử lý với hệ số nhân màu Green 37
Hình 2.51: Màu ảnh qua hệ thống tiền xử lý .38
Hình 2.52: Chọn thư viện tìm kiếm 38
Hình 2.53: Thiết lập ROI 39
Hình 2.54: Thiết lập khung ROI 40
Hình 2.55: Giá trị “True” được thiết lập cho vòng lập 40
Hình 2.56: Bước xác định giá trị “False” cho vòng lập 41
Trang 10Hình 2.59: Mức độ chính xác và số ảnh tìm kiếm 42
Hình 2.60: Khi yêu c ầu số ảnh tìm là 2 .43
Hình 2.61: Khi yêu c ầu số ảnh tìm kiếm là 1 .43
Hình 2.62: Hệ thống xử lý hình sau khi tìm kiếm 44
Hình 2.63: Xác định tạo độ tìm kiếm .45
Hình 2.64: Đổi phầm trăm chiều dài 45
Hinh 2.65: Lưu đồ xử lý số liệu tìm kiếm .46
Hình 2.66: Truyền UART 47
Hình 3.1: Hệ thống nhúng NI EVS-1464RT và camera 48
Hình 3.2: Mô hình kết nối NI EVS-1464RT với máy tính, camera và màn hình hiển thị .49
Hình 3.3: Giao diện giao tiếp NI EVS-1464RT 49
Hình 3.4 : Giao diện NI VIsion Builder .51
Hình 3.5: Các cổng kết nối trên hệ thống 52
Hình 3.6: Giao diện cổng kết nối chuẩn IEEE 1394b 53
Hình 3.7: Chức năng chân của cổng Ethernet 54
Hình 3.8: Giao diện cổng USB trong module 54
Hình 3.9: Chức năng chân của cổng USB 54
Hình 3.10: Giao diện cổng xuất dữ liệu hình ảnh 55
Hình 3.11: Chức năng chân c ủa cổng DVI-I .56
Hình 3.12: Giao diện cổng cấp nguồn điện 56
Hình 3.13 : Chức năng chân của cổng cấp nguồn .56
Hình 3.14 :Ứng dụng của hệ thố ng NI EVS-1464RT 57
Trang 11Ngày nay, nền kinh tế của nước ta đang trên đà phát triển mạnh mẽ, đời sống của người dân ngày càng nâng cao Nhu cầu sử dụng ô tô trong đời sống sinh hoạt cũng như trong các nghành công nghiệp, nông nghiệp và dịch vụ là tăng không ngừng Đây là cơ hội nhưng cũng là thách thức cho ngành ô tô, với việc phát triển ô tô phục
vụ nhu c ầu của xã hội Một yêu cầu thiết yếu đặt ra đó chính là việc cung cấp những chiếc ô tô phuc vụ những nhiệm vụ đặc biệt Để thực hiện được việc này, yêu cầu đặt
ra là phải có những nghiên cứu mới Ô tô đã ra đời từ rất lâu và nó ngày càng khẳng định được vai trò cũng như tầm quan trọng trong việc phát triển xã hội, nâng cao đời sống nhân dân… Vì vậy đòi hỏi yêu cầu đào tạo kỹ sư ô tô phải nắm vững kiến thức
cơ bản của ô tô Sau thời gian học tập tại trường, được sự chỉ bảo hướng dẫn nhiệt tình của thầy cô giáo trong trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh, chúng tôi đã kết thúc khoá học và đã tích luỹ được vốn kiến thức nhất định Được sự đồng ý của nhà trường và thầy cô giáo trong khoa, chúng tôi được giao đồ án tốt nghiệp “XỬ LÝ HÌNH ẢNH VÀ ĐIỀU KHIỂN XE CHẠY TỰ ĐỘNG”: Bằng sự cố gắng nỗ lực của bản thân và đặc biệt là sự giúp đỡ tận tình, chu đáo của TS Lê Thanh Phúc, chúng tôi đã hoàn thành đồ án đúng thời hạn Do hạn chế về thời gian và kiến thức còn nhiều hạn chế nên không thể tránh khỏi những thiếu sót Chúng tôi rất mong nhận được sự đóng góp ý kiến của các thầy cô cũng như là của các bạn sinh viên để bài đồ án này hoàn thiện hơn
Trang 12PHẦN A
MỞ ĐẦU
Trang 13DẪN NHẬP
1 Đặt vấn đề
Trong quá trình phát triển của khoa học công nghệ nói chung và công nghệ trên
xe hơi hiện nay đòi hỏi quá trình phát triển hệ thống Giáo dục đạo tạo kỹ thuật với chất lượng đang là tiêu chí đánh giá hàng đầu hiện nay Đi đôi với vấn đề trên là quá trình tự nghiên cứu và phát triển các công nghệ hiện có Để làm được điều này, ngoài lực lượng cán bộ giảng dạy chuyên môn cao, các thiệt bị hiện đại, mô hình dạy học hiệu quả thì chúng ta còn cần phải có chững cách tiếp cận nội dung mới phù hợp với từng đối tượng đào tạo và quá trình tự nghiên cứu trao dồi kiến thức chuyên môn Với các vấn đề trên nhóm chúng tôi xin thực hiện đề tài: “Xử lý hình ảnh và điều khiển xe chạy tự động”
2 Mục tiêu và nhiệm vụ
Mục đích c ủa đề tài là dựa vào phần mềm Labview xây dựng một hệ thống xử
lý ảnh thu thập từ camera, xây dựng thư viện và đi theo đó là quá trình tính toán để giao tiếp với người dùng nhằm giúp xe có thể tự vận hành
3 Tầm quan trọng của đề tài
Vẫn chưa có mặt trên thị trường nhưng xe tự hành luôn là chủ đề nóng hổi của giới sản xuất xe hơi trong vài năm trở lại đây Mục tiêu hướng tới là giảm tai nạn, hạn chế ùn tắc do sơ suất của con người Vì thế xây dựng một hệ thống xử lý ảnh giúp xe
tự vận hành là bước đi đầu tiên nhầm giúp ngành công nghệ ô tô của Việt Nam tiến bước với công nghệ hiện đ ại trên ô tô
4 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu là hình ảnh ở các chế độ, phần nềm Labview Qua đó nghiên cứu cấu trúc trong Labview nhằm xây dựng một chương trình hoàn chỉnh, đầy
đủ và khả thi tiếp theo đó là quá trình giao tiếp thông qua AVR thực hiện các lệnh cài đặt theo từng hạn mục đã định
4.1 Hình ảnh
Từ hình ảnh thu thập tính toán và xử lý thành ảnh 8-bit
Thiết lập cách hình ảnh qua xử lý tạo thư viện
Tìm kiếm hình trong quá trình xử lý
Trang 144.2 Labview
Thu thập ảnh từ camera
Xây dựng chương trình
Xuất tín hiệu qua cổng giao tiếp
5 Phương pháp nghiên cứu
Đề tài được hoàn thành đã dựa vào nhiều phương pháp nghiên cứu song song trong đó phương pháp kham khảo tài liệu Ý kiến của các thầy từ đó tìm ra hướng đi
và hướng giải quyết vấn đề Trong quá trình thực hiện nhóm cũng thực hiện nhiều phương pháp thực nghiệm, quan sát rút ra kết luận để hoàn thành tốt đề tài
Trang 15PHẦN B NỘI DUNG
Trang 16CHƯƠNG 1: NHẬN DẠNG ĐƯỜNG ĐI VÀ HƯỚNG XỬ LÝ
I Nhận dạng theo vệt sơn đường
Có rất nhiều lựa chọn nhận dạng đường đi đã được nghiên cứu và đưa và khai thác như: Nhận dạng đường theo GPS, ra-da laser, âm thanh phản hồi và hình ảnh… mỗi hướng đi đều có ưu và nhược điểm khác nhau Và đồng thời sẽ ảnh hưởng đến kết quả sau này, khả năng thực thi và cả triển vọng ứng dụng thực tế trong tương lai Lựa chọn một phương án nhận dạng đường là bước đầu tiên cần phải xác định rỏ ràng trước khi bước tiếp quá trình xử lý sau này Với quy mô và khả năng kiến thức của mình nhóm đã đi theo hướng xử lý hình ảnh qua camera
Hện nay hệ thống giao thông phát triển vược bật ở nước ta, thì kèm theo đó là
sự phát triển hệ thống đường nhựa trãi dài từ Nam đến Bắc là một lợi thế để ngành công nghiệp xe tự hành sử dụng xử lý ảnh có cơ hội phát triển
Để áp dụng được một mô hình đơn giản có thể thực thi được những lệnh căn bản nhất thì c ần có những yêu cầu cơ bản như: sự sai khác giữa màu sơn tương đối lớn, mức độ đồng đều và chính xác về các kích thước màu, mặt đường tương đối tốt Bên cạnh đó lựa chọn hình ảnh để làm hình chuẩn cho quá trình nhận dạng đường đi là một lựa chọn có sự tính toán và cân nhắc cao vì sự thay đổi rất lớn trong hệ thống đường bộ, với các yêu cầu thách trức trên thì đường nét đứt là đường để thử nghiệm trong đồ án là lựa chọn có tính khả thi cao phù hợp với yêu cầu và khả năng thực hiện
Sử dụng thuật toán để nhận dạng sơn đường là sử dụng sự tương phản khác nhau giữa màu sơn và màu nhựa đường nhằm tăng tính chính xác
Trang 17Hình 1.1: Đường với vạch sơn đứt trắng đen rất phổ biến và có nhiều ưu điểm
vượt trội so với các loại hình ảnh khác
II Hướng xử lý khi nhận dạng đường đi
Ảnh thu thập từ camera sẽ được hiệu chỉnh cho để lấy được những điểm nhấn mạnh tính đối lập giữa vệt sơn và màu nhựa đường đồng thời loại đi các hình ảnh nhiễu, thừa Bước tiếp theo là xác định hình ảnh làm trọng tâm tìm kiếm, từ đó có thể học và tìm trên camera thực và trục tiếp để xuất ra tín hiệu vị trí tương đối của xe so với làng đường đang thực thi
Khi đã có được vị trí tương đối của xe, hệ thống điều khiển sẽ bẻ góc lái thích hợp để xe chạy trên vị trí mong muốn
Trang 18CHƯƠNG 2: XỬ LÝ ẢNH TRÊN LABVIEW
I Xử lý ảnh và cá vấn đề cơ bản trong xử lý ảnh
1.1 Xử lý ảnh và quá trình phát tri ển
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ó ngày càng đa dạng và mở rộng
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à đồ họa 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à đồ họa đóng vai trò quan trọng trong tương lai ngành ô tô
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” hay một kết luận
Hình 2.1: Cấu trúc xử lý ảnh
Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính như nâng cao chất lượng ảnh và phân tích ảnh Ứng dụng đầu tiên được biết đến là nâng cao chất lượng ảnh báo được truyền qua cáp từ Luân đôn đến New York từ những năm 1920 Vấn đề nâng cao chất lượng ảnh có liên quan tới phân bố mức sáng và độ phân giải của ảnh Việc nâng cao chất lượng ảnh được phát triển vào kho ảng những năm 1955 Điều này
có thể giải thích được vì sau thế chiến thứ hai, máy tính phát triển nhanh tạo điều kiện cho quá trình xử lý ảnh sô thuận lợi Năm 1964, máy tính đã có khả năng xử lý và nâng cao chất lượng ảnh từ mặt trăng và vệ tinh Ranger 7 của Mỹ bao gồm: làm nổi đường biên, lưu ảnh Từ năm 1964 đến nay, các phương tiện xử lý, nâng cao chất lượng, nhận dạng ảnh phát triển không ngừng Các phương pháp tri thức nhân tạo như mạng nơ ron nhân tạo, các thuật toán xử lý hiện đại và cải tiến, các công cụ nén ảnh ngày càng được áp dụng rộng rãi và thu nhiều kết quả khả quan
Ảnh thu nhận Quá trình xử lý Các giá trị mong muốn
Trang 19Để dễ tưởng tượng, 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
Có thể xem một ví dụ minh họa cho quá trình trên
Hình 2.2: Tiến trình xử lý ảnh
Có thể hiểu tiến trình xử lý trên như sau
a) Phần thu nhận ảnh (Image Acquisition)
Ả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)
b) Tiền xử lý (Image Processing)
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
Trang 20c) Phân đoạn (Segmentation) 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
d) Biểu diễn ảnh (Image Representation)
Đầ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
e) Nhận dạng và nội suy ảnh (Image Recognition and Interpretation)
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…
f) Cơ sở tri thức (Knowledge Base)
Như đã nói ở trên, ả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
Trang 21nhiề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 Trong tài liệu, chương 6 về nhận dạng ảnh có nêu một vài ví dụ về cách sử dụng các cơ sở tri thức đó
1.2 Những vấn đề cơ bản trong hệ thống xử lý ảnh
a) Điểm ảnh (Picture Element)
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)
Đị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
b) Độ phân giải của ảnh
Định nghĩa: Độ 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
Trang 2217” độ 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
c) Mức xám của ảnh
Một điểm ảnh (pixel) có hai đặc trưng cơ bản là vị trí (x, y) của điểm ảnh và độ xám của nó Dưới đây chúng ta xem xét một số khái niệm và thuật ngữ thường dùng trong xử lý ảnh
- Định nghĩa: 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: =256 mức, tức là từ 0 đến 255)
- Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác) với
mức xám ở các điểm ảnh có thể khác nhau
- Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt tức dùng 1bit mô tả 21mức khác nhau Nói cách khác: mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0 hoặc 1
- Ảnh màu: trong khuôn khổ lý thuyết ba màu (Red, Blue, Green) để tạo nên
thế giới màu, người ta thường dùng 3 byte để mô tả mức màu, khi đó các giá trị màu:
= ≈ 16,7 triệu
II Labview và xử lý ảnh dùng Labview
2.1 Giới thiệu Labview
LabVIEW là một ngôn ngữ lập trình hình ảnh do công ty National Instrument (NI) phát triển Nó sử dụng các biểu tượng thay cho các dòng lệnh để tạo ra một đoạn chương trình Trái ngược với các chương trình viết bằng các lệnh chữ, LabVIEW sử dụng kiểu lập trình theo luồ ng dữ liệu (dataflow programming), nơi mà các luồng của
dữ liệu quyết định việc thực thi
Trong LabVIEW, người xây dựng chương trình sử dụng sẽ xây dựng giao diện người dùng bởi việc kéo các công cụ hay thực thể Giao diện người dùng được hiểu là phần khung mà người sử dụng sẽ thao tác Sau đó người lập trình sẽ thêm các mã chương trình bằng cách sử dụng các hàm được viết dưới dạng hình ảnh Và các thành phần này sẽ được viết trên một giao diện gọi là sơ đồ khối (block diagram)
Trang 23LabVIEW là một công cụ mạnh mẽ, tích hợp đầy đủ các hàm phục vụ chuẩn giao tiếp với các hệ thống thông dụng như: VXI, RS-232, USB, GPIB… LabVIEW cũng được xây dựng để kết nối với các ứng dụng với các chuẩn của Web hay các nền tảng ActiveX c ủa Windows
Sử dụng LabVIEW, người lập trình có thể xây dựng, kiểm tra, đo lường, trao đổi dữ liệu, điều khiển… Từ việc mô phỏng trên máy tính cá nhân, người lập trình có thể kiểm tra chất lượng, tốc độ sản phẩm Sau đó, LabVIEW cho phép người sử dụng nhúng các chương trình mang tính mô phỏng này lên hệ thống thực tế và thực thi trên một hệ thống nhúng độc lập
Các chương trình LabVIEW được gọi là các thiết bị ảo (Virtual VIs) Các thiết bị ảo bao gồ m bốn phần chính: sơ đồ khối, khung trước, biểu tượng, và các ô kết nối
Instruments-Người lập trình xây dựng khung trước bằng các khối điều khiển và hiển thị Các khối điều khiển có thể là các nút nhấn, thanh trượt, núm xoay… Các hiển thị có thể là các biểu đồ, dòng text, LEDs, đồng hồ, nhiệt kế Các khối điều khiển của LabVIEW được xây dựng với các điều khiển gần giống với thực tế nhất có thể, chúng có nhiệm
vụ cung cấp dữ liệu cho việc xử lý, hỗ trợ người dùng dễ dàng thay đổi dữ liệu Các hiển thị có nhiệm vụ hiển thị dữ liệu sau khi xử lý tùy theo mục đích của người dùng
Sau khi xây dựng khung trước, người lập trình cần xây dựng các thuật toán, thao tác xử lý trên các sơ đồ khối Sơ đồ khối của một chương trình bao gồm các biểu tượng của các đoạn mã, các đầu cuối điều khiển, đầu cuối hiển thị, các cấu trúc điều khiển, vòng lặp, hằng số, và các dây nối Dây nối là thành phần quan trọng trong sơ đồ khối để nối các thành phần lại với nhau Các thành phần này phải có cùng kiểu dữ liệu ra-vào
Các kết nối các thiết bị ảo hỗ trợ việc xây dựng các hàm con (SubVIs) Chúng
có thể được gọi ở các chương trình lớn hơn Nhưng để sử dụng được các khối này, người sử dụng cần xây dựng thêm các ô kết nối để định nghĩa kiểu dữ liệu vào ra cho một hàm con đã xây dựng
Trang 24Hộp thoại sẽ cho người lập trình lựa chọn các tùy chọn chính sau
- Create Project : tạo một dự án mới
- Open Existing: mở các tệp hiện tại
Có hai lựa chọn cần quan tâm và thiết yếu trong khi bắt đầu làm việc với Labview
- File New VI : thiết lập chương trình mới
Hình 2.3 : Thiết lập chương trình mới
- Help Find Example : tìm các ví dụ
Trang 25Hình 2.4: Tìm các ví dụ
Được xây dựng một cách đầy đủ và hệ thống các ví dụ Find Example sẽ giúp người lập trình tìm được các code có sẵn hướng dẫn một cách nhanh chóng góp phần cho người mới tiếp cận và xây dựng thuật toán một cách hiệu quả mang tính thực thi cao
Để tìm được các ví dụ này cần phải tìm kiếm đúng các từ khóa ứng với yêu cầu của chương trình Các ví dụ chỉ được tìm thấy khi các Kit đã được cài đặt và khả dụng trong chương trình
b) Các vòng lặp, điều kiện trong LabVIEW
Vòng lặp, cấu trúc điều kiện là một thành phần không thể thiếu trong vấn đề lập trình Trong LabVIEW các vòng l ặp, điều kiện được tái hiện dưới dạng hình ảnh cấu trúc Sử dụng các c ấu trúc trong sơ đồ khối giúp lặp lại các tiến trình, điều khiển dựa vào điều kiện và cho các mục đích đặc biệt khác LabVIEW có 5 vòng lặp, cấu trúc cơ bản: vòng lặp While (While Loop), vòng l ặp For (For Loop), c ấu trúc Case (Case Structure), cấu trúc chuỗi (Sequence Structure), nút cách thức (Formula Node)
Trang 26- Vòng lặp While có ký hiệu trong bảng hàm Tùy vào cách thức thiết lập
mà vòng lặp điều kiện sẽ có hai cách chạy như sau:
Hình 2.5 : Cách thiết lập thứ nhất cho vòng l ặp While
- Số lần lặp của vòng lặp để thực hiện chương trình con Trong một số ví
dụ có thể sử dụng số lần lặp này để thực hiện các thao tác liên quan đến xử lý con số tăng giảm theo từng yêu cầu bài toán
- Chương trình chỉ dừng khi nút stop được nhấn
- Cách thiết lập thứ 2
Hình 2.6: Cách thiết lập thứ hai cho vòng lặp While
Trang 27- Số lần lặp của vòng lập để thực hiện chương trình con
- Vòng lặp chỉ thực hiện khi điều kiện đúng
- Cấu trúc chuỗi
Cấu trúc chuỗi trong LabVIEW dùng để tạo ra các đoạn chương trình con trong các đoạn chương trình chính, mục đích của việc dùng cấu trúc này để gói gọn chương trình và dễ dàng điều khiển việc sử dụng các biến, các ô nhớ LabVIEW cung cấp hai dạng chuỗi có cùng chức năng đó là: Chuỗi phẳng (Flat Sequence) và chuỗi ngăn xếp (Stacked Sequence)
Trang 28Hình 2.7 : Hai cách thể hiện của cấu trúc chuỗi
Các cấu trúc chuỗi đều thực thi các đoạn chương trình con bên trong nó Các chương trình con sẽ thực thi từ trái sang phải đối với chuỗi phẳng và thực thi từ ngăn xếp thứ 0 đối với chuỗi ngăn xếp
Hinh 2.8 : Đoạn chương trình y=x 2 +x+1 viết theo hai cách
Ngoài các cấu trúc đã nêu ở trên bên trong thư viện lập trình của LabVIEW còn
có các cấu trúc khác hỗ trợ lập trình dễ dàng hơn trong LabVIEW như: c ấu trúc vô hiệu hóa khối (Diagram Disable Structure), cấu trúc vô hiệu hóa điều kiện
(Conditional Disable Structure), c ấu trúc thời gian (Timed Structure)…
Trang 292.2.2 Xử lý ảnh trên Labview
Để hỗ trợ người dùng trong các lĩnh vực nhất định, National Instrument cung cấp các gói phần mềm tương ứng nhằm hỗ trợ các hàm thông dụng, cũng như là các kết nối vào ra tương ứng trên các KIT Trong phần này người thực hiện đề tài sẽ giới thiệu cơ bản nhất các hàm, các điều khiển và các hiển thị sử dụng trong phạm vi đề tài
- Thư viện VIsion trong bảng điều khiển
Như phần trên có đề cập, bảng điều khiển là nơi để xây dựng các khối hiển thị hay điều khiển Thư viện VIsion trong bảng điều khiển bao gồm:
- IMAQ Image.ctl dùng định nghĩa các mô tả về kiểu dữ liệu của hình ảnh
- Hai khối Image Display Control và Image Display Control (Classic) dùng để hiển thị các hình ảnh thu được Sử dụng hay khối này, người lập trình có thể theo dõi chi tiết từng điểm ảnh cũng như thực hiện một số quát trình xử lý cơ bản dùng cho mục đích sửa lỗi chương trình
Ngoài ra trong thư viện VIsion còn có các thư viện con như IMAQ VIsion Controls hay Machine VIsion Controls dùng để tạo các điều khiển thao tác trực tiếp trên VIs
- Thư viện “VIsion and Motion” trong bảng hàm
Về tổng quát thư viện VIsion trong bảng hàm có thư viện ứng với từng mục đích cụ thể của xử lý ảnh như là: các thư viện giao tiếp thiết bị (NI-IMAQ, NI-IMAQdx, NI-IMAQ I/O), thư viện tiện ích (VIsion Utilities), thư viện xử lý ảnh (Image Processing), thư viện thị giác máy (Machine VIsion), thư viện xử lý nhanh (VIsion Express)
Trang 30Hình 2.9: Địa chỉ truy cập các hàm Vision
a Thư viện thiết bị
Đây là thư viện mà người lập trình dùng để lấy thông tin từ Camera, cũng như
là lấy ảnh hay Video từ Camera Thư viện này gồm các thư viện con là NI-IMAQ và NI-IMAQdx Tuy nhiên, hai thư viện NI-IMAQ và NI-IMAQdx tương tự nhau về chức năng, tuy nhiên, khối NI-IMAQ chỉ điều khiển được các Camera từ các bo PCI của National Instrument Để sử dụng được các Camera hay Webcam từ máy tính hay các Module khác cần chú ý thiết lập thông số với thư viện NI-IMAQdx
Trang 31Hình 2.10 : Thư viện thiết bị camera NI-IMAQdx
Về thu thập hình ảnh có các hàm đáng quan tâm sau
- Hàm Enumerate Cameras cho phép người dùng LabVIEW thống kê tất
cả các Camera đang được kết nối với máy tính hay Module sử dụng LabVIEW Hàm này cũng cung cấp tất cả các thông tin cơ bản về Camera như tên, loại, số series, cổng
mà camera đang kết nối…
- Hàm Open dùng để mở Camera với cổng kết nối được lựa chọn từ hàm Enumerate Cameras
- Hàm Configure Grab sẽ tạo các thiết lập ban đầu cho việc thu nhận ảnh một cách liên tục (Grab)
- Hàm Snap thực hiện việc chụp ảnh
- Hàm Grab thực hiện việc lấy ảnh liên tục Tuy nhiên để lấy ảnh liên tục cần có vòng lặp vô hạn để hàm có thể lập lại
- Hàm Close sẽ đóng các giao điện kết nối mà người sử dụng muốn, giúp
giải phóng tài nguyên cho việc điều khiển, trao đổi dữ liệu với Camera
Trang 32b Thư viện tiện ích (VIsion Utilities)
Hình 2.11 : Thư viện tiện ích
Thư viện tiện ích (VIsion Utilities) cho phép người lập trình thực hiện các thao tác cơ bản về biển đổi ảnh, mở ảnh, lưu ảnh, tìm kiếm ảnh… Nó bao gồm các thư viện con: Thư viện quản lý ảnh (Image Management), thư viện tập tin (Files), thư viện hiển thị ảnh (External Display), thư viện về vùng quan tâm (Region of Interest), thư viện phục vụ thao tác người sử dụng (Image Manipulation và Pixel Manipulation), thư viện phủ (Overlay), thư viện thước đo (Calibration), thư viện tiện ích màu (Color Utilities)
và thư viện cho các thiết bị thời gian thực (VIsion RT)
c Thư viện quản lý ảnh
Hình 2.12 : Thư viện quản lý ảnh
Trang 33Thư viện quản lý ảnh hỗ trợ lập trình về các xử lý biến đổi cơ bản của một ảnh, tạo vùng nhớ tạm thời cho một ảnh… Thư viện này có một số hàm quan trọng mà hầu hết các chương trình xử lý ảnh sử dụng LabVIEW đều phải sử dụng như:
- IMAQ Create: tạo vùng nhớ tạm thời cho một ảnh Đây là hàm mà tất
cả mọi chương trình xử lý ảnh với LabVIEW đều dùng Nó cho phép phân ho ạch một vùng nhất định trên bô nhớ để thực hiện xử lý
Hình 2.13: Sơ đồ chân hàm IMAQ Create
Hàm này yêu cầu người sử dụng phải đặt tên cho ảnh cần tạo tại đầu vào Image Name Tên này không phải là tên hiển thị của ảnh mà chỉ là tên để phân biệt vùng nhớ tạm thời của các ảnh khác nhau Ngoài ra, bằng việc thay đổi loại ảnh (Image Type) mà người lập trình hoàn toàn có được một số ảnh chuẩn của LabVIEW như ảnh xám, ảnh màu RGB hay ảnh màu HSI…
- Trái ngược với IMAQ Create, IMAQ Dispose sẽ hủy vùng nhớ tạm thời
đã cấp cho ảnh (Image) tương ứng hoặc người lập trình có thể chọn hủy tất cả các ảnh bằng cách đặt chế độ đúng (Yes) cho chân “All Image?” Hàm này cần thiết khi người lập trình thao tác với nhiều ảnh mà tài nguyên bộ nhớ máy thấp
Hình 2.14 : Sơ đồ chân hàm IMAQ Dispose
- IMAQ GetImageInfo trả về tất cả thông tin c ủa ảnh như độ phân giải ngang (X Resolution), độ phân giải dọc (Y Resolution), loại ảnh (Image Type), đơn vị
đo lường ảnh (Unit)…
Trang 34Hình 2.15 : Sơ đồ chân hàm IMAQ GetImageInfo
- IMAQ GetImageSize trả về độ phân giải lớn nhất của ảnh về chiều ngang (X Resolution) và chiều dọc (Y Resolution)
Hình 2.16 : Sơ đồ chân hàm IMAQ GetImageSi ze
- IMAQ Copy sẽ hỗ trợ người sử dụng khi muốn xử lý trên ảnh gốc, và sau khi xử lý cần đem so sánh với ảnh lúc ban đầu Khối IMAQ Copy sẽ tạo một ảnh nhân bản, việc xử lý sẽ không ảnh hưởng đến ảnh gốc lúc đầu
Hình 2.17:Sơ đồ chân hàm IMAQ Copy
Khi sử dụng khối IMAQ Copy, ảnh nguồn (Image Scr) là ảnh cần sao chép, ảnh đích (Image Dst) là vùng nhớ tạm thời cung cấp cho ảnh đích Ảnh đích ngõ ra (Image Dst Out) là ảnh đã sao chép Ảnh nguồ n và ảnh đích ngõ ra giống nhau nhưng không
có liên kết với nhau
d Thư viện quản lý tập tin
Hình 2.18: Thư viện quản lý tập tin
Trang 35Thư viện quản lý tập tin hỗ trợ người sử dụng thao tác với các tập tin hình ảnh được lưu trên ổ đĩa cứng như: lưu ảnh, mở ảnh, mở hộp thoại lưu ảnh, lấy thông tin ảnh…
- IMAQ ReadFile cho phép đọc hầu hết các định dạng ảnh được lưu trên
ổ đĩa cứng như (BMP, TIFF, JPEG, JPEG2000, PNG và AIPD) Khi sử dụng IMAQ ReadFile cần đưa vào bộ nhớ đệm được tạo sẵn từ khối IMAQ Create và đưa vào chân
hình ảnh (Image), đường dẫn (File Path) là các ký t ự chỉ vị trí ảnh được lưu
Hình 2.19: Sơ đồ chân hàm IMAQ ReadFile
- IMAQ WriteFile sẽ ghi ảnh từ bộ nhớ đệm xuố ng một đường dẫn có sẵn Ảnh từ bộ nhớ đệm sẽ được đưa vào ngõ ảnh (Image) Ngõ ảnh và đường dẫn (File Path) là hai giá trị bắt buộc phải đưa vào
Hình 2.20: Sơ đồ chân hàm IMAQ WriteFile
- IMAQ GetFileInfo sẽ cho các thông tin về ảnh như độ phân giải (X Resolution và Y Resolution), loại tập tin (File Type), loại ảnh (Image Type) cũng như
là loại dữ liệu của ảnh (File Data Type)
Hình 2.21: Sơ đồ chân hàm IMAQ GetFileInfo