Trong truyền thông video như hội nghị video, điện thoại video thì một vấn đề chính đó là cần có dải tần rộng mà việc mã hóa thẳng video chất lượng quảng bá cần đến 100 triệu bit/s điều n
Trang 1
MỤC LỤC
LÝ LỊCH KHOA HỌC ii
LỜI CAM ĐOAN iii
LỜI CẢM ƠN iv
TÓM TĂT v
ABSTRACT vi
DANH MỤC HÌNH ẢNH 4
PHẦN 1 TỔNG QUAN 8
1.1 LÝ DO CHỌN ĐỀ TÀI: 8
1.2 CÁC KẾT QUẢ NGHIÊN CỨU: 9
1.2.1 Trong nước 9
1.2.2 Thế giới 10
1.3 MỤC ĐÍCH ĐỀ TÀI 11
1.4 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 11
1.5 PHƯƠNG PHÁP NGHIÊN CỨU 11
1.6 Ý NGHĨA KHOA HỌC VÀ TÍNH THỰC TIỄN CỦA ĐỀ TÀI 12
1.7 GIỚI HẠN ĐỀ TÀI 12
1.8 KẾ HOẠCH THỰC HIỆN 12
PHẦN 2 CƠ SỞ LÝ THUYẾT 13
2.1 GIỚI THIỆU CHUNG VỀ XỬ LÝ ẢNH 13
2.2 CÁC BƯỚC TRONG XỬ LÝ ẢNH 14
2.2.1 Thu nhận ảnh 14
2.2.2 Tiền xử lý ảnh 14
2.2.3 Phân tích ảnh 14
2.2.4 Biểu diễn ảnh 14
2.2.5 Nhận dạng và nội suy 15
2.2.6 Cơ sở tri thức 15
2.2.7 Mô tả ảnh 16
2.3 NHỮNG VẤN ĐỀ CƠ BẢN TRONG XỬ LÝ ẢNH 17
Trang 2
2.3.1 Điểm ảnh 17
2.3.2 Độ phân giải ảnh 18
2.3.3 Mức xám của ảnh 18
2.3.4 Biến đổi ảnh và nén ảnh 19
2.3.5 Các đặc trưng mức thấp của ảnh 20
2.3.6 Nắn chỉnh ảnh 21
2.3.7 Trích chọn đặc điểm 21
2.4 CÁC MÔ HÌNH MÀU 21
2.5 BIẾN ĐỔI HOUGH (HOUGH TRANSFORM) 25
2.5.1 Biến đổi Hough cho đường thẳng 25
2.5.2 Biến đổi Hough cho đường thẳng trong tọa độ cực 26
2.6 CÔNG CỤ XỬ LÝ ẢNH LabVIEW 27
2.6.1 Lập trình với LabVIEW 29
2.6.2 Một số khối (hàm thức) thường sử dụng của LabVIEW 30
PHẦN 3: THIẾT KẾ, LẮP ĐẶT CAMERA VÀ THUẬT TOÁN NHẬN DẠNG 37 3.1 THIẾT KẾ LẮP ĐẶT 37
3.2 ĐO KHOẢNG CÁCH VẬT CẢN 41
3.3 NHẬN DẠNG VÀ XỬ LÝ VỚI LabVIEW 56
3.3.1 Tổng quan về hệ thống 56
3.3.2 Các thông số cơ bản của hệ thống 57
3.3.3 Ý tưởng thiết kế - điều khiển 58
3.3.4 Thuật toán xử lý ảnh và truyền nhận dữ liệu từ vi điều khiển 58
3.3.5 Kết quả thu thập hình ảnh 61
PHẦN 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ 62
4.1 THỰC NGHIỆM 62
4.2 ĐÁNH GIÁ 71
4.2.1 Tốc độ thu thập 71
4.2.2 Độ chính xác: 72
PHẦN 5: KẾT LUẬN VÀ ĐỀ NGHỊ 75
Trang 3
5.1 KẾT QUẢ ĐẠT ĐƯỢC 75
5.2 NHỮNG VẤN ĐỀ TỒN TẠI 75
5.3 HƯỚNG PHÁT TRIỂN 76
TÀI LIỆU THAM KHẢO 77
Trang 4
DANH MỤC HÌNH ẢNH
Hình 1 1: Giao diện chương trình và kết quả của việc giám sát giao thông 9
Hình 1 2: Vị trí khi đi đúng làn đường 10
Hình 2 1: Quy trình xử lý ảnh 13
Hình 2 2: Hệ thống xử lý ảnh 14
Hình 2 3: Sơ đồ phân tích và xử lý ảnh 17
Hình 2 4: Nắn chỉnh ảnh 21
Hình 2 5: Các mô hình màu 22
Hình 2 6: Hệ tọa độ màu RGB 23
Hình 2 7: Mô hình màu HSV 24
Hình 2 8: Bảng chỉ số giá trị 0 26
Hình 2 9: Đường thẳng Hough trong hệ tọa độ Đề-các 26
Hình 2 10: Giao diện chính của phần mềm LabVIEW phiên bản 2013 27
Hình 2 11: Một robot dưới nước dựa trên lập trình LabVIEW 28
Hình 2 12: Khả năng kết hợp các phần cứng của LabVIEW 28
Hình 2 13: Giao diện làm việc của phần mềm LabVIEW 29
Hình 2 14: Bảng điều khiển thiết lập các thông số 29
Hình 2 15: Bảng các hàm, công thức bên cửa sổ Block Diagram 30
Hình 2 16: Khối While Loop 30
Hình 2 17: Khối Case Structure 30
Hình 2 18: Khối Time Delay 31
Hình 2 19: Hàm While Until Next ms Multiple 31
Hình 2 20: Các hàm tính toán trong LabVIEW 31
Hình 2 21: Các hàm so sánh trong LabVIEW 31
Hình 2 22: Các hàm logic 32
Hình 2 23: Các hàm về xử lý ảnh 32
Hình 2 24: Các hàm thu thập ảnh 32
Hình 2 25: Các hàm xử lý ảnh 33
Hình 2 26: Các công cụ làm việc với ảnh 33
Trang 5
Hình 2 27: Hai hàm thường dùng trong xử lý ảnh với LabVIEW 33
Hình 2 28: Hàm Vision Acquisition 34
Hình 2 29: Chọn nguồn thu thập ảnh 34
Hình 2 30: Chọn kiểu ảnh thu được 35
Hình 2 31: Cài đặt định dạng cho ảnh thu được 35
Hình 2 32: Chọn điều khiển/Hiển thị 36
Hình 2 33: Cửa sổ làm việc với hàm NI Vision Assistant 36
Hình 3 1: Bản vẽ thiết kế trên solidwork 37
Hình 3 2: Mô phỏng 3D 37
Hình 3 3: Hình ảnh khi nhìn từ phía trên 38
Hình 3 4: Sơ đồ bô trí tổng quát 39
Hình 3 5: Lắp đặt camera và cảm biến siêu âm 40
Hình 3 6: Kết nối vi điều khiển với cổng giao tiếp UART 40
Hình 3 7: Sơ đồ chân của Atmega 16 41
Hình 3 8: Cảm biến siêu âm SRF-05 45
Hình 3 9: Phát và thu nhận sóng siêu âm 46
Hình 3 10: Nguyên lý cơ bản của phát và thu nhận sóng siêu âm 46
Hình 3 11: Sơ đồ nguyên lý mạch đo khoảng cách 47
Hình 3 12: Thiết kế mạch in 47
Hình 3 13: Mạch đo khoảng cách hiển thị LCD 48
Hình 3 14: Mô phỏng đo khoảng cách bằng protus 48
Hình 3 15: Khung truyền 49
Hình 3 16: Sơ dồ nguyên lý truyền tín hiệu từ vi điều khiển lên máy tính 49
Hình 3 17: RS232 49
Hình 3 18: Sự phân cấp VISA API 50
Hình 3 19: Cấu trúc Visa API 51
Hình 3 20: Thư viện các hàm VISA trong LabVIEW 52
Hình 3 21: Các hàm Serial 53
Hình 3 22: Cổng Serial 53
Trang 6
Hình 3 23: Cổng Port number 53
Hình 3 24: Serial port read 53
Hình 3 25: Sơ đồ thuật toán RS232 54
Hình 3 26: Thu thập và xử lý dữ liệu 55
Hình 3 27: Mô phỏng giao tiếp với máy tính 55
Hình 3 28: Nguyên lý của hệ thống nhận dạng, xử lý và điều khiển xe qua xử lý ảnh 56
Hình 3 29: Quy tắc hoạt động của hệ thống 56
Hình 3 30: Camera 58
Hình 3 31: Máy tính 58
Hình 3 32: Lưu đồ thuật toán xử lý ảnh và đo khoảng cách, điều khiển xe 59
Hình 3 33: Lưu đồ thuật toán LabVIEW xử lý ảnh và giao tiếp với vi điều khiển 60 Hình 3 34: Thu thập vật cản bên trái 61
Hình 3 35: Thu nhận vật cản ở giữa 61
Hình 3 36: Thu nhận vật cản bên phải 61
Hình 4 1: Thu nhận hình ảnh vật cản bên phải 62
Hình 4 2: Thu nhận hình ảnh vật cản bên trái 63
Hình 4 3: Thu nhận hình ảnh vật cản ở giữa 63
Hình 4 4: Thu nhận hình ảnh vật cản bên trái 64
Hình 4 5: Thu nhận hình ảnh vật cản bên phải 64
Hình 4 6: Thu nhận hình ảnh vật cản ở giữa 65
Hình 4 7: Thu nhận hình ảnh 2 vật cản 65
Hình 4 8: Thu nhận hình ảnh 2 vật cản 66
Hình 4 9: Thu nhận hình ảnh vật cản bên trái điều khiển xe chạy/dừng 66
Hình 4 10: Thu nhận hình ảnh vật cản bên trái điều khiển xe chạy/dừng 67
Hình 4 11: Thu nhận hình ảnh vật cản bên trái điều khiển xe chạy/dừng 67
Hình 4 12: Thu nhận hình ảnh vật cản ở giữa điều khiển xe chạy/dừng 68
Hình 4 13: Thu nhận hình ảnh vật cản bên phải điều khiển xe chạy/dừng 68
Hình 4 14: Thu nhận hình ảnh vật cản ở giữa điều khiển xe chạy/dừng 69
Trang 7
Hình 4 15: Thu nhận hình ảnh vật cản bên phải điều khiển xe chạy/dừng 69
Hình 4 16: Thu nhận hình ảnh 2 vật cản điều khiển xe chạy/dừng 70
Hình 4 17: Thu nhận hình ảnh 2 vật cản điều khiển xe chạy/dừng 70
Hình 4 18: Thu nhận hình ảnh 2 vật cản điều khiển xe chạy/dừng 71
Trang 8
PHẦN 1 TỔNG QUAN1.1 LÝ DO CHỌN ĐỀ TÀI:
Trong mấy thập kỷ gần đây, xử lý ảnh đã được nghiên cứu mạnh mẽ và được ứng dụng rất nhiều trong thực tế Như trong y học, xử lý ảnh dùng để phát hiện và nhận dạng khối u, cải thiện ảnh X-quang, nhận diện đường biên mạch máu
từ những ảnh chụp bằng tia X Trong cuộc sống gia đình xử lý ảnh số dùng để cải thiện ảnh tivi Trong truyền thông video như hội nghị video, điện thoại video thì một vấn đề chính đó là cần có dải tần rộng mà việc mã hóa thẳng video chất lượng quảng bá cần đến 100 triệu bit/s (điều này không thể đáp ứng được), nhưng bằng cách mã hóa số và khôi phục ảnh (vấn đề của xử lý ảnh) thì việc trên được giải quyết chỉ với băng tần 100 nghìn bit/s Trong lĩnh vục khoa học kỹ thuật thì xử lý ảnh đang có những đóng góp quan trọng, đặc biệt là trong lĩnh vực chế tạo Robot thông minh… Hiện nay yêu cầu của con người rất đa dạng, khắt khe đòi hỏi những người nghiên cứu trong lĩnh vực ô tô cần phải có những bước đi mạnh mẽ để đáp ứng nhu cầu ngày một lớn của con người Xử lý ảnh đang được nghiên cứu rộng rãi cùng với điều khiển tự động đang phát triển mạnh mẽ, nó sẽ là hướng đi trong tương lai của ngành ô tô Việc ứng dụng điều khiển tự động và xử lý ảnh giúp con người điều khiển ô tô an toàn hơn, khám phá những nơi con người không thể tiếp cận được, và nó cũng sẽ là ứng dụng được chú tâm tới trong lĩnh vực quân sự…
Ô tô sẽ được gắn camera để thu nhận hình ảnh các đối tượng bên ngoài: tín hiệu đèn giao thông, các vật cản, hay người đi đường… Những hình ảnh này sẽ được thu lại, phân tích và xử lý Sau đó hình ảnh sẽ được gởi về bộ điều khiển, lúc này bộ điều khiển sẽ điều khiển hoạt động của ô tô: báo rẽ, dừng lại, phát tín hiệu cảnh báo Ứng dụng này có thể giúp con người nghỉ ngơi khi mệt mỏi khi xe chạy trên đường vắng, khi gặp vật cản sẽ cảnh báo cho người tài xế giúp lái xe an toàn hơn khi hoặc đóng góp nhiều trong lĩnh vực quân sự…
Để giải quyết vấn đề trên, dưới sự hướng dẫn của Thầy TS Lê Thanh Phúc, học viên đã chọn đề tài: “ NGHIÊN CỨU VỀ THU THẬP VÀ XỬ LÝ ẢNH
ĐỂ HỖ TRỢ Ô TÔ CHẠY TỰ ĐỘNG”
Trang 9Hình 1 1: Giao diện chương trình và kết quả của việc giám sát giao thông
- Nghiên cứu kỹ thuật nhận dạng bàn tay người: để thuận lợi cho việc giao tiếp giữa con người và máy có rất nhiều phương pháp được ứng dụng vào lĩnh vực này Một trong số đó là nhận dạng cử chỉ bàn tay người Nó cho phép dễ dàng thao tác với máy mà không cần phải có thêm thiết bị ngoại vi: chuột, bàn phím [2]
- Hệ thống giám sát giao thông bằng xử lý ảnh: Hệ thống bao gồm: camera giám sát, camera chụp hình, mạng truyền thông, phần mềm xử lý ảnh và dữ liệu
để phát hiện lỗi vi phạm và xử lý kịp thời đảm bảo an toàn, nâng cao ý thức chấp hành luật giao thông Với hệ thống này thì video giao thông sẽ được camera giám sát gởi về server qua mạng cáp quang để lưu trữ và xử lý để phát hiện và tách các lỗi vi phạm giao thông [3]
- Ứng dụng xử lý ảnh nhận dạng đường đi cho ô tô chạy tự động: xác định các dấu phân cách đường, làn đường Tính toán khoảng cách dựa trên các dấu phân cách thu được để đưa ra tín hiệu về đường đi cho phần điều khiển xe tự động thông qua chuẩn giao tiếp RS232 [4]
Trang 10
Hình 1 2: Vị trí khi đi đúng làn đường
- Robot tự hành ứng dụng xử lý ảnh với LabVIEW: xác định vật cản nhờ camera và cảm biến khoảng cách, điều khiển xe tránh vật cản bằng cách điều khiển rẽ hoặc lùi xe [5]
1.2.2 Thế giới:
- Hệ thống đậu xe sử dụng xử lý ảnh [6]
Với nạn kẹt xe trong thành phố gia tăng và gia tăng sự thiếu hụt khoảng không gian đậu xe thì những chiếc xe cần một hệ thống cung cấp thông tin đậu xe và hướng dẫn đậu xe tự động Kết quả của bãi đậu xe này là đếm được số lượng xe, nhận dạng vị trí có thể đậu xe được Hệ thống mới này sẽ cung cấp thông tin và hướng dẫn đậu xe thông qua xử lý ảnh thay vì các cảm biến điện đặt trên sàn Các camera được đặt trước cổng bãi đậu xe để chụp lại các ảnh của xe, các ảnh này so sánh với các ảnh được cài đặt trước trong hệ thống
- Nghiên cứu đề tài: “Nghiên cứu kỹ thuật xử lý video để ứng dụng trong giao thông” của V Kastrinaki, M Zervakis*, K Kalaitzakis được chấp nhận công bố rộng rãi vào năm 2003 để kiểm tra tình trạng giao thông và tự động hướng dẫn xe tham gia giao thông [7]
Trang 11
- “Vehicular monitoring systems using image processing” của David S.Breed, Wilbur E.DuVall, Wendell C.Johnson Hệ thống giám sát hoạt động của xe sử dụng xử lý ảnh Hệ thống bao gồm ít nhất một camera hoạt động và
bộ xử lý ảnh Hệ thống xử lý xác định đặc điểm đặc trưng của đối tượng dựa vào những điểm ảnh được gởi về từ những camera đang hoạt động này [8]
- “Image processing system to control vehicle headlamps or other vehicle equipment” là hệ thống điều khiển đèn đầu hay là thiết bị khác qua xử lý ảnh, gồm cảm biến mảng nhiều hình ảnh để thu về số lượng lớn điểm ảnh Hệ thống còn có bộ chuyển đổi từ tín hiệu tương tự sang tín hiệu số để lượng tử hóa những tín hiệu từ điểm ảnh sang giá trị số Từ đây điều khiển các thiết bị trong
xe [9]
1.3 MỤC ĐÍCH ĐỀ TÀI
Mục đích của đề tài là sử dụng lý thuyết điều khiển ô tô tự động, xử
lý ảnh dùng LabVIEW… nghiên cứu thiết kế, lắp đặt camera, bộ thu thập tín hiệu nhận dạng các vật cản, đo khoảng cách để hỗ trợ ô tô chạy tự động
1.4 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
Đối tượng và khách thể nghiên cứu:
- Lý thuyết về điều khiển ô tô
- Nghiên cứu thuật toán xử lý ảnh và nhận dạng
1.5 PHƯƠNG PHÁP NGHIÊN CỨU
- Nghiên cứu đặc trưng thực tiễn khi tham gia giao thông
Trang 121.6 Ý NGHĨA KHOA HỌC VÀ TÍNH THỰC TIỄN CỦA ĐỀ TÀI
Đề tài “NGHIÊN CỨU VỀ THU THẬP VÀ XỬ LÝ ẢNH ĐỂ
HỖ TRỢ Ô TÔ CHẠY TỰ ĐỘNG” sẽ giúp cho người tài xế được thoải mái khi xe chạy ở đường xa lộ (ít người), nó phát hiện ra các vật cản có trên đường
để tự động điều khiển xe tránh các vật cản: lề đường, người tham gia giao thông…
Ngoài ra nghiên cứu của đề tài khi thành công sẽ giúp người tham gia giao thông được an toàn hơn khi có những cảnh báo nguy hiểm giúp người tài xế cảnh giác, giúp cho con người có thể khám phá những nơi không thể đi đến được (các hang, cống…), và sử dụng được trong lĩnh vực quân sự (xe không người lái)
1.7 GIỚI HẠN ĐỀ TÀI
Do đề tài tổng hợp từ nhiều môn khoa học khác nhau rất phức tạp nên đề tài chỉ dừng lại ở mức thiết kế bộ thu thập và nhận dạng xử lý ảnh dùng LabVIEW
1.8 KẾ HOẠCH THỰC HIỆN
- Nghiên cứu lý thuyết về xử lý ảnh
- Nghiên cứu các công cụ xử lý ảnh của LabVIEW
- Nghiên cứu lý thuyết về điều khiển ô tô, điều khiển tự động
- Lên ý tưởng lắp đặt camera, tiến hành lắp đặt camera
- Áp dụng thuật toán cho việc điều khiển ô tô chạy tự động
- Khảo sát, đánh giá và khắc phục lỗi
- Thử nghiệm
- Kết luận, đánh giá
Trang 13
PHẦN 2 CƠ SỞ LÝ THUYẾT2.1 GIỚI THIỆU CHUNG VỀ XỬ LÝ ẢNH
- Con người thu nhận thông tin qua các giác quan trong đó thị giác là quan trọng nhất Cùng với sự phát triển của máy tính, xử lý ảnh và đồ họa cũng phát triển với nhiều ứng dụng trong cuộc sống Xử lý ảnh là một lĩnh vực khá mới
mẻ nhưng nó đang có tốc độ phát triển rất nhanh bởi tính ứng dụng thực tế của
nó khá cao, các ứng dụng thông minh tự động với sự góp sức của xử lý ảnh mang tới rất nhiều sự tiện ích cho người sử dụng thay vì các loại cảm biến được
sử dụng trước đó hoặc thủ công Nó đang kích thích các trung tâm đầu tư nghiên cứu khả năng ứng dụng, thực tiễn Hiện nay có rất nhiều ngành áp dụng
xử lý ảnh như: công nghệ thông tin, ô tô, công nghệ tự động…
- Xử lý ảnh là lĩnh vực khó liên quan đến nhiều môn học, lĩnh vực khác và cần nhiều kiến thức cơ sở khác Đầu tiên phải kể đến xử lý tín hiệu số là một môn học hết sức cơ bản cho xử lý tín hiệu chung, các khái niệm về tích chập, các biến đổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn… Thứ hai, các công
cụ toán như đại số tuyến tính, xác suất, thống kê Một số kiến thức cần thiết như trí tuệ nhân tạo, mạng nơ-ron nhân tạo cũng được đề cập trong quá trình phân tích và nhận dạng ảnh
- Quá trình xử lý ảnh là quá trình thao tác với ảnh đầu vào nhằm đưa ra một kết quả Kết quả này là cho ra ảnh tốt hơn hoặc một kết luận
Kết luận để điều khiển cái gì đó
Trang 14- Ảnh thường được thu thập bởi các camera, scanner với độ phân giải, tốc
độ khác nhau Ảnh nhận được qua camera là ảnh dạng tương tự
- Nhìn chung hệ thống thu nhận ảnh thực hiện 1 quá trình:
Cảm biến: Biến đổi năng lượng quang học thành năng lượng điện
Tổng hợp năng lượng điện thành ảnh
2.2.2 Tiền xử lý ảnh:
- Ảnh thu thập qua camera do nhiều yếu tố khác nhau mà có thể bị nhiễu, mờ…nên cần đưa qua bộ tiền xử lý để giảm nhiễu, nâng cao độ tương phản ảnh
để làm cho ảnh rõ nét, chất lượng hơn Như vậy nhiệm vụ chính của tiền xử lý
là giảm nhiễu, nâng cao chất lượng của ảnh
2.2.3 Phân tích ảnh:
- Là phân ảnh thành các thành phần nhỏ để phân tích và nhận dạng ảnh Bước này là bước khó và có thể gây ra nhiều sai sót làm ảnh hưởng đến chất lượng, độ chính xác của ảnh sau này
2.2.4 Biểu diễn ảnh:
Trang 15
- Đầ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 [10]
- Ảnh trên máy tính là kết quả thu nhận theo các phương pháp số hóa được nhúng ở các thiết bị kỹ thuật khác nhau Quá trình lưu ảnh nhằm 2 mục đích:
2.2.6 Cơ sở tri thức: [10]
- 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 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
Trang 16
2.2.7 Mô tả ảnh: [10]
- Từ Hình 2.1, ảnh sau khi số hoá sẽ được lưu vào bộ nhớ, hoặc chuyển sang các khâu tiếp theo để phân tích Nếu lưu trữ ảnh trực tiếp từ các ảnh thô, đòi hỏi dung lượng bộ nhớ cực lớn và không hiệu quả theo quan điểm ứng dụng
và công nghệ Thông thường, các ảnh thô đó được đặc tả (biểu diễn) lại (hay đơn giản là mã hoá) theo các đặc điểm của ảnh được gọi là các đặc trưng ảnh (Image Features) như: biên ảnh (Boundary), vùng ảnh (Region) Một số phương pháp biểu diễn thường dùng:
Biểu diễn bằng mã chạy (Run-Length Code)
Biểu diễn bằng mã xích (Chaine -Code)
Biểu diễn bằng mã tứ phân (Quad-Tree Code)
- Biểu diễn bằng mã chạy
Phương pháp này thường biểu diễn cho vùng ảnh và áp dụng cho ảnh nhị phân Một vùng ảnh R có thể mã hoá đơn giản nhờ một ma trận nhị phân:
U(m, n) = 1 nếu (m, n) thuộc R U( m, n) = 0 nếu (m, n) không thuộc R Trong đó: U(m, n) là hàm mô tả mức xám ảnh tại tọa độ (m, n).Với cách biểu diễn trên, một vùng ảnh được mô tả bằng một tập các chuỗi số 0 hoặc
1 Giả sử chúng ta mô tả ảnh nhị phân của một vùng ảnh được thể hiện theo toạ
độ (x, y) theo các chiều và đặc tả chỉ đối với giá trị “1” khi đó dạng mô tảcó thể là: (x, y) r; trong đó (x, y) là toạ độ, r là số lượng các bit có giá trị“1” liên tục theo chiều ngang hoặc dọc
- Biểu diễn bằng mã xích
Phương pháp này thường dùng để biểu diễn đường biên ảnh Một đường bất kỳ được chia thành các đoạn nhỏ Nối các điểm chia, ta có các đoạn thẳng kế tiếp được gán hướng cho đoạn thẳng đó tạo thành một dây xích gồm các đoạn Các hướng có thể chọn 4, 8, 12, 24,… mỗi hướng được mã hoá theo
số thập phân hoặc số nhị phân thành mã của hướng
- Biểu diễn bằng mã tứ phân
Trang 17
Phương pháp mã tứ phân được dùng để mã hoá cho vùng ảnh Vùng ảnh đầu tiên được chia làm bốn phần thường là bằng nhau Nếu mỗi vùng đã đồng nhất (chứa toàn điểm đen (1) hay trắng (0)), thì gán cho vùng đó một mã
và không chia tiếp Các vùng không đồng nhất được chia tiếp làm bốn phần theo thủ tục trên cho đến khi tất cả các vùng đều đồng nhất Các mã phân chia thành các vùng con tạo thành một cây phân chia các vùng đồng nhất
Trên đây là các thành phần cơ bản trong các khâu xử lý ảnh Trong thực tế, các quá trình sử dụng ảnh số không nhất thiết phải qua hết các khâu đó tùy theo đặc điểm ứng dụng Hình 2.1 cho sơ đồ phân tích và xử lý ảnh và lưu
đồ thông tin giữa các khối một cách khá đầy đủ Ảnh sau khi được số hóa được nén, lưu lai để truyền cho các hệ thống khác sử dụng hoặc để xử lý tiếp theo Mặt khác, ảnh sau khi số hóa có thể bỏ qua công đoạn nâng cao chất lượng (khi ảnh đủ chất lượng theo một yêu cầu nào đó) để chuyển tới khâu phân đoạn hoặc
bỏ tiếp khâu phân đoạn chuyển trực tiếp tới khâu trích chọn đặc trưng Hình 2.2 cũng chia các nhánh song song như: nâng cao chất lượng ảnh có hai nhánh phân biệt: nâng cao chất lượng ảnh (tăng độ sáng, độ tương phản, lọc nhiễu) hoặc khôi phục ảnh (hồi phục lại ảnh thật khi ảnh nhận được bị méo) v.v…
Hình 2 3: Sơ đồ phân tích và xử lý ảnh 2.3 NHỮNG VẤN ĐỀ CƠ BẢN TRONG XỬ LÝ ẢNH:
2.3.1 Điểm ảnh: [10]
Trang 18
- 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)
- Đ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.3.2 Độ phân giải ả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.3.3 Mức xám của ảnh [10]
- 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 đó
Trang 19
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: 28=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 1 bit
mô tả 21 mức khác nhau Nói cách khác: mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0 hoặc 1
Ả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: 28*3= 224 ≈ 16,7 triệu màu
- Thông thường để khắc phục tính không đồng đều do hệ thống gây ra người ta có 2 cách chỉnh mức xám
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 1 bó Trường hợp chỉ có 2 mức xám chính là chuyển ảnh về đ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 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.3.4 Biến đổi ảnh và nén ảnh: [10]
- Biến đổi ảnh: Trong xử lý ảnh do số điểm ảnh lớn các tính toán nhiều (độ phức tạp tính toán cao) đòi hỏi dung lượng bộ nhớ lớn, thời gian tính toán lâu Các phương pháp khoa học kinh điển áp dụng cho xử lý ảnh hầu hết khó khả thi Người ta sử dụng các phép toán tương đương hoặc biến đổi sang miền
xử lý khác để dễ tính toán Sau khi xử lý dễ dàng hơn được thực hiện, dùng biến đổi ngược để đưa về miền xác định ban đầu, các biến đổi thường gặp trong xử
lý ảnh gồm:
Biến đổi Fourier, Cosin, Sin
Biến đổi (mô tả) ảnh bằng tích chập, tích Kronecker
Trang 20
Các biến đổi khác như KL (Karhumen Loeve), Hadamard
- Nén ảnh: Ảnh dù ở dạng nào vẫn chiếm không gian nhớ rất lớn Khi mô
tả ảnh người ta đã đưa kỹ thuật nén ảnh vào Nén ảnh thường theo 2 hướng: nén
có bảo toàn và nén không óc bảo toàn thông tin Nén không bảo toàn thì khả năng nén cao nhưng khả năng phục hồi kém Trên cơ sở đó người ta có 4 cách nén ảnh như sau:
Nén ảnh thống kê: Kỹ thuật nén này dựa vào việc thống kê tần xuất xuất hiện của các điểm ảnh, trên cơ sở đó có cách mã hóa thích hợp Ví dụ điển hình cho kỹ thuật mã hóa này là: *.TIF
Nén ảnh không gian: Kỹ thuật này dựa vào vị trí không gian của các điểm ảnh để tiến hành mã hóa Kỹ thuật này dựa vào sự giống nhau của các điểm ảnh trong các vùng lân cận Đặc trưng cho kỹ thuật này là: *.PCX
Nén ảnh sử dụng phép biến đổi: Đây là kỹ thuật tiếp cận theo hướng nén không bảo toàn Vì vậy kỹ thuật nén hiệu quả hơn, *.JPG là đặc trưng cho
kỹ thuật này
Nén ảnh Fractal: Sử dụng tính chất Fractal của đối tượng ảnh, thể hiện
sự lặp lại của các chi tiết Kỹ thuật nén sẽ tính toán để chỉ lưu lại phần gốc ảnh
và quy luật sinh ra ảnh theo nguyên lý Fractal
Hình dạng của đối tượng có thể thu được bởi đường viền bao xung quanh Có hai cách tiếp cận được sử dung để phân tích hình dạng, đó là dựa trên vùng hình dạng và biên
Trang 21 Đặc điểm biên và 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 chọn 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ờ vào toán tử gradient, toán tử la bàn, toán tử Laplace…
- Việc trích chọn đặc điểm hiệu quả giúp việc nhận dạng đối tượng chính xác hơn, tốc độ tính toán cao và giảm dung lượng lưu trữ
2.4 CÁC MÔ HÌNH MÀU
Màu của một đối tượng phụ thuộc vào:
Trang 22
- Bản thân đối tượng
- Ánh sáng chiếu của nguồn sáng
- Môi trường xung quanh
- Thị giác của con người
Mô hình màu được xác định trên một số màu sơ cấp Xét theo cấu tạo của mắt, các màu đều là liên kết của ba màu sơ cấp là: Đỏ (RED), Xanh lục (GREEN), Xanh lơ (BLUE) Các màu sơ cấp cộng với nhau cho màu thứ cấp, phương pháp pha trộn màu:
Hình 2 5: Các mô hình màu [12]
Ví dụ:
Magenta = red + blue
Yelow = red + green
Tổ chức quốc tế về chuẩn hóa màu CIE (The Commission International de I’Eclairage) đã xây dựng một chuẩn cho tất cả các màu, xác định thông qua ba thành phần cơ sở là RED, GREEN và BLUE
2.4.1 Mô hình màu RGB
- Hệ RGB gồm các màu cơ sở là RED, GREEN và BLUE
- Hệ màu RGB được sử dụng trong màn hình, trong đồ hoạ raster màu
- Mô tả hệ RGB theo hệ toạ độ Decarte:
Trang 23
Hình 2 6: Hệ tọa độ màu RGB [10]
- Hệ RGB là chuẩn công nghiệp cho các thao tác đồ hoạ Nếu thể hiện trên
hệ màu khác, cuối cùng vẫn phải chuyển về RGB
- Với các màn hình khác nhau, giá trị RGB có thể khác nhau
2.4.2 Mô hình màu CMY
- Hệ CMY dựa trên các màu sơ cấp CYAN, MAGENTA và YELLOW
- Các màu này là phần bù của RED, GREEN và BLUE
2.4.3 Mô hình màu HSV
- HSV (Hue – màu sắc, Saturation- sự bão hoà và Value – giá trị), hay còn gọi là HSB (Hue, Saturation, Brightness-cường độ sáng) Mô hình HSV suy diễn từ mô hình RGB: Quan sát hình hộp RGB trên Hình 2.14 theo đường chéo
từ White đến Black ta có lục giác màu HSV:
- Hue nhận giá trị trong khoảng [0o,360o]
- Saturation, Value nhận giá trị trong khoảng [0 1]
- Trong Matlab, chuyển đổi giữa hai hệ màu HSV và RGB, sử dụng hàm: hsv2rgb, rgb2hsv
2.4.4 Mô hình ánh sáng
- Ánh sáng nhìn thấy được là tổng hợp các thành phần đơn sắc
- Tỷ lệ trộn khác nhau dẫn đến các màu khác nhau Ví dụ về các màu đơn sắc như RED, GREEN, BLUE hoặc CYAN, MAGENTA, YELLOW
Trang 24
- Cường độ sáng phản xạ là giá trị đo được trên bề mặt của đối tượng tại điểm tới Cường độ sáng của tia phản xạ phụ thuộc vào góc tới và hệ số phản xạ của bề mặt
Hình 2 7: Mô hình màu HSV [13]
2.4.5 Mô hình màu YIQ
- Mô hình màu YIQ là mô hình màu được ứng dụng trong truyền hình màu băng tần rộng tại Mỹ, và do đó nó có mối quan hệ chặt chẽ với màn hình đồ hoạ màu raster
- YIQ là sự thay đổi của RGB cho khả năng truyền phát và tính tương thích
với ti vi đen trắng thế hệ trước Tín hiệu truyền sử dụng trong hệ thống NTSC (National Television System Committee)
- Sự biến đổi RGB thànhYIQ được xác định theo công thức sau:
= 0.2990.596 −0.274 −0.3220.587 0.1140.211 −0.523 0.3122.4.6 Mô hình màu YCbCr
- Mô hình màu YCbCr được sử dụng phổ biến trong các thiết bị phát hình
kỹ thuật số YCbCr được tạo bởi độ sáng (Y) và hai tín hiệu khác của thành
Trang 25
phần màu đó là Cb (sự khác biệt giữa thành phần màu xanh lam và một giá trị tham khảo) và Cr (sự khác biệt giữa các thành phần màu đỏ và một giá trị tham khảo)
- Chuyền đổi từ RGB sang YCbCr sử dụng công thức:
= −0.169 −0.3310.299 0.587 0.1140.5000.500 −0.419 −0.0812.5 BIẾN ĐỔI HOUGH (HOUGH TRANSFORM)
2.5.1 Biến đổi Hough cho đường thẳng
Bằng cách nào đó ta thu được một số điểm, vấn đề đặt ra là cần kiểm tra xe các điểm có là đường thẳng hay không
- Tìm phần tử mảng có giá trị lớn nhất nếu giá trị lớn nhất tìm được so với
số phân tử lớn hơn hoặc bằng ngưỡng θ cho trước thì ta có thể kết luận các điểm
Trang 26
nằm trên cùng 1 đường thẳng và đường thẳng có phương trình y = ax +b trong
đó a, b tương ứng là chỉ số của phần tử mảng có giá trị lớn nhất tìm được
Ví dụ: Cho 5 điểm (0, 1); (1, 3); ( 2, 5); (3, 5); (4 , 9) và θ = 80% Hãy kiểm tra xem 5 điểm đã cho có nằm trên cùng một đường thẳng hay không? Hãy cho biết phương trình đường thẳng nếu có
2.5.2 Biến đổi Hough cho đường thẳng trong tọa độ cực
Hình 2 9: Đường thẳng Hough trong hệ tọa độ Đề-các [11]
Trang 27Từ đó có mối liên hệ (x,y) và (r,) như sau: xcos+ ysin= r Xét n điểm thẳng hàng trong tọa độ Đề-các có phương trình xcos+ ysin= ro .Biến đổi Hough ánh xạ n điểm này thành n đường sin trong tọa đô cực mà các đường này đều
đi qua điểm (r,) Giao điểm (r,) của n đường sẽ xác định một đường thẳng trong
hệ tọa độ Đề-các Như vậy những đường thẳng đi qua điểm (x,y) sẽ cho duy nhất một cặp (r,) và có bao nhiêu đường đi qua (x,y) sẽ có bấy nhiêu cặp giá trị (r,) 2.6 CÔNG CỤ XỬ LÝ ẢNH LabVIEW
Hình 2 10: Giao diện chính của phần mềm LabVIEW phiên bản 2013
Trang 28
Hình 2 11: Một robot dưới nước dựa trên lập trình LabVIEW [14]
Mô phỏng và xử lí các tín hiệu thu nhận được để phục vụ các mục đích nghiên cứu hay mục đích của hệ thống mà người lập trình mong muốn
Xây dựng các giao diện người dùng một cách nhanh chóng và thẩm
mỹ hơn nhiều so với các ngôn ngữ lập trình khác như Visual Basic, Matlab,…
Cho phép thực hiện các thuật toán điều khiển như PID, Logic mờ (Fuzzy Logic), một cách nhanh chóng thông qua các chức năng tích hợp sẵn trong LabVIEW
Cho phép kết hợp với nhiều ngôn ngữ lập trình truyền thống như C, C++, Matlab …
Như trên hình ta thấy dùng Card LabVIEW ta có thể giao tiếp với: motor, webcam, các cảm biến… Chúng ta có thể kết nối các thiết bị này thông qua các card gắn với cổng USB, PCI Ta cũng có thể thực hiện giao tiếp nối tiếp các thiết bị này với máy tính thông qua chuẩn giao tiếp RS232, RS485… Như trên hình vẽ ta thấy một loạt các ứng dụng, một ví dụ là chúng ta có thể sử dụng card LabVIEW để giao tiếp với Webcam, từ đó có thể điều được các thiết bị từ xa (ô tô chẳng hạn)
Hình 2 12: Khả năng kết hợp các phần cứng của LabVIEW [14]
Trang 29
2.6.1 Lập trình với LabVIEW
- Để làm việc với phần
mềm LabVIEW ta thao tác trên
2 cửa sổ là Front Panel và Block
Diagram Hai cửa sổ này sẽ xuất
hiện sau khi ta khởi động phần
Hình 2 14: Bảng điều khiển thiết lập các thông số
- Cửa sổ Block Diagram là cửa sổ dùng để người lập trình khởi tạo, viết các thuật toán cho ứng dụng của mình Đó bao gồm các hàm toán học (cộng, trừ, nhân, chia, đạo hàm, tích phân, ma trận…), các hàm lặp (while loop), các hàm tạo trễ… Nghĩa là trên cửa sổ Block Diagram chứa những thuật toán giải quyết các bài toán ứng dụng mà người lập trình khởi tạo và có thể điều khiển và hiển thị kết quả trên cửa sổ Front Panel
Trang 30
- Các hàm tính toán có liên quan trong của sổ Block Diagram được nối với nhau bằng dây dẫn theo kiểu truyền tín hiệu Đây cũng là một lợi điểm của LabVIEW so với các phần mềm khác ở tính trực quan và dễ làm việc
Hình 2 15: Bảng các hàm, công thức bên cửa sổ Block Diagram
2.6.2 Một số khối (hàm thức) thường sử dụng của LabVIEW:
- Khối While loop: là khối dùng để lặp lại liên tục một chương trình chứa trong nó trong khoảng thời gian tùy ý
Hình 2 17: Khối Case Structure
Trang 31
- Hàm Time Delay: Hàm này cho phép cài đặt thời gian trễ sau mỗi vòng lặp While Loop, như trên hình thì mỗi vòng lặp While loop sẽ có thời gian trễ
là 1 giây
Hình 2 18: Khối Time Delay
- Hàm While Until Next ms Multiple: Hàm này cho phép cài đặt thời gian làm việc cho mỗi vòng lặp While Loop, như trên hình thì mỗi vòng lặp While loop sẽ diễn ra trong 50(ms)
Hình 2 19: Hàm While Until Next ms Multiple
- Các hàm tính toán:
Hình 2 20: Các hàm tính toán trong LabVIEW
- Các hàm so sánh:
Hình 2 21: Các hàm so sánh trong LabVIEW
Trang 32- NI-IMAQ: Hàm này thu thập các hình ảnh đầu vào từ thư viện ảnh có sẵn trong máy tính, video có sẵn trong bộ nhớ, hay từ camera
Hình 2 24: Các hàm thu thập ảnh
- Image Processing: ở hàm này thì nó sẽ xử lý màu của ảnh thu thập được, lọc ảnh, phân tích ảnh…
Trang 33Hình 2 27: Hai hàm thường dùng trong xử lý ảnh với LabVIEW
Vision Acquisition
Vision Assistant
Trang 37
PHẦN 3: THIẾT KẾ, LẮP ĐẶT CAMERA
VÀ THUẬT TOÁN NHẬN DẠNG 3.1 THIẾT KẾ LẮP ĐẶT
Bản vẽ mô phỏng vị trí các thiết bị:
Hình 3 1: Bản vẽ thiết kế trên solidwork
Hình 3 2: Mô phỏng 3D
Trang 38
Hình 3 3: Hình ảnh khi nhìn từ phía trên
Trang 39
Lắp đặt các thiết bị trên mô hình thực tế
Hình 3 4: Sơ đồ bô trí tổng quát
- Để có thể lấy được hình ảnh và tính toán khoảng cách chính xác, cũng như hiển thị lên LCD dễ quan sát thì ta chọn cách bố trí camera, cảm biến siêu
âm như hình bên
- Ngoài ra việc bố trí các thiết bị như vậy là để tiết kiệm được không gian trên xe, và công việc kiểm tra hư hỏng được thuận tiện
Trang 40
Hình 3 5: Lắp đặt camera và cảm biến siêu âm
Hình 3 6: Kết nối vi điều khiển với cổng giao tiếp UART