PHẦN MỞ ĐẦUTrong những năm gần đây, cùng với sự phát triển của đất nước, kinh tế phát triển mạnh mẽ, các thành phố ngày càng đông đúc, tuy nhiên, hệ thống giám sát trong hệ thống giao th
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
Họ và tên tác giả luận văn
THÂN VĂN TRƯỜNG
TÊN ĐỀ TÀI LUẬN VĂN
TỰ ĐỘNG GIÁM SÁT PHƯƠNG TIỆN TRONG HỆ THỐNG GIAO THÔNG
Trang 2MỤC LỤC
MỤC LỤC 2
LỜI CAM ĐOAN 4
PHẦN MỞ ĐẦU 5
DANH SÁCH CÁC THUẬT NGỮ VIẾT TẮT 7
Danh mục bảng biểu 9
Danh mục hình vẽ 9
Chương 1 : Giới thiệu chung 11
1.1 Giới thiệu về giao thông tại Việt Nam 11
1.2 Ứng dụng công nghệ thông tin trong giao thông trên thế giới và Việt Nam 12
1.3 Mục tiêu của luận văn 16
Chương 2 : Tổng quan về xử lý ảnh và thư viện mã nguồn mở Open CV 17
2.1 Giới thiệu một số ứng dụng của xử lý ảnh 17
2.1.1 Trong quân sự: 17
2.1.2 Trong an ninh, phòng chống tội phạm, bảo vệ pháp luật: 17
2.1.3 Trong lĩnh vực hàng không vũ trụ: 17
2.1.4 Trong công nghiệp, giao thông, xây dựng : 18
2.1.5 Trong nghiên cứu y sinh dược học: 18
2.1.6 Trong công nghiệp giải trí truyền hình: 18
2.2 Một số giải pháp phần cứng phục vụ xử lý ảnh 19
2.2.1 Máy tính PC, laptop 20
2.2.2 Main công nghiệp, máy tính nhúng PC 104 20
2.2.3 Single Board Computer(SBC) sử dụng Single on Chip (SoC) 21
2.2.4 DSP (Digital signal processing) 22
2.3 Giới thiệu về thư viện mã nguồn mở Open CV 23
2.4 NET Framework và cách sử dụng OpenCV trong NET Framework 26
2.4.1 Những điểm đặc trưng của NET Framework 26
2.4.2 Kiến trúc NET Framework 27
Chương 3: Thuật toán cho hệ thống giám sát phương tiện giao thông 31
Trang 33.1 Giới thiệu 31
3.2 Các phương pháp tracking objects 31
3.3 Kiến trúc của hệ thống giám sát 35
3.4 Background estimation và subtraction 36
3.5 High-level tracking 36
3.6 Giám sát dựa trên mô hình xuất hiện 38
3.7 Phân tách đa đối tượng 41
3.8 Phân loại đối tượng 41
Chương 4: Xây dựng chương trình tự động giám sát phương tiện trong hệ thống giao thông thông minh 42
4.1 Tổng quan về hệ thống 42
4.2 Xây dựng chương trình 42
4.3 Giao diện của chương trình 46
4.4 Đánh giá hệ thống tự động giám sát phương tiện trong hệ thống giao thông thông minh 47
4.4.1 Đánh giá chức năng phát hiện và giám sát phương tiện 47
4.4.2 Đánh giá thuật toán đếm phương tiện tham gia giao thông 49
Chương 5: Kết luận và hướng phát triển 51
Tài liệu tham khảo 53
Trang 4LỜI CAM ĐOAN
Tôi là Thân Văn Trường - tác giả của luận văn “Tự động giám sát phương tiện trong hệ thống giao thông thông minh” Tôi xin cam đoan mình đã thực hiện hiện luận văn một các nghiêm túc, toàn bộ nội dung luận văn cũng như kết quả nghiên cứu là do tôi thực hiện Đồng thời, việc tham khảo các tài liệu trong quá trình thực hiện luận văn tuân thủ theo đúng yêu cầu và không sao chép của bất kỳ một luận văn nào trước đó
Trang 5PHẦN MỞ ĐẦU
Trong những năm gần đây, cùng với sự phát triển của đất nước, kinh tế phát triển mạnh
mẽ, các thành phố ngày càng đông đúc, tuy nhiên, hệ thống giám sát trong hệ thống giao thông chưa đủ thông minh để đáp ứng sự thay đổi của lưu lượng người tham gia giao thông từng ngày Số người tham gia giao thông thường đông vào lúc đầu giờ đi làm và giờ tan tầm, và thường thưa vào thời gian còn lại
Mục đích nghiên cứu của luận văn là đưa ra được một phương pháp áp dụng vào hệ thống giao thông hiện tại để nhận dạng các phương tiện đang tham gia giao thông, đồng thời đếm số lượng các phương tiện đó
Đối tượng nghiên cứu của luận văn bao gồm ngôn ngữ lập trình C++, các hình ảnh từ video từ các camera giám sát giao thông, các phương tiện tham giao thông như người đi đường, xe cộ
Để thực hiện được mục đích nghiên cứu nêu trên, phương pháp nghiên cứu sử dụng trong luận văn là lập kế hoạch nghiên cứu chi tiết, rõ ràng trước khi bắt tay vào thực hiện nghiên cứu Bên cạnh đó là thu thập tài liệu từ nhiều nguồn thông tin bao gồm Internet, các bài báo quốc tế, proceedings, và những người có kinh nghiệm Đồng thời thực hiện nghiên cứu gán liền với thực nghiện trên các công cụ thiết kế để quan sát được kết quả
mô phỏng với mô hình đang nghiên cứu
Toàn bộ nội dung của luận văn được trình bày trong 5 chương với nội dung tóm tắt như sau:
Chương 1 - Giới thiệu chung: Trong chương này giới thiệu về hệ thống giao thông thông minh trên thế giới, sau đó đưa ra các tiêu chí để xây dựng một hệ thống giám sát giao thông
Chương 2 – Tổng quan về xử lý ảnh và thư viện mã nguồn mở Open CV : Trong chương này đưa ra các cơ sở lý thuyết về xử lý ảnh và các ngôn ngữ lập trình, lý thuyết chung cần phải tìm hiểu để có thể xây dựng các ứng dụng cho hệ thống sẽ triển khai
Chương 3 – Thuật toán cho hệ thống giám sát phương tiện giao thông : Trong chương này sẽ trình bày về các thuật toán được sử dụng để nhận diện, phân tách và giám
Trang 6sát người, phương tiện và các đối tượng khác Sau đó mô hình xuất hiện là mô hình phù hợp và hiệu quả nhất cũng được trình bày bởi nó giải quyết được các vấn đề khó khăn mà các thuật toán trước gặp phải
Chương 4 – Xây dựng chương trình tự động giám sát phương tiện trong hệ thống giao thông thông minh: Trong chương này đưa ra mô hình tổng quan của chương trình, sau đó các lớp được xây dựng để triển khai thuật toán, và đưa ra đánh giá về hệ thống
Chương 5 – Kết luận và hướng phát triển : Trong chương này sẽ trình bày về ưu điểm và nhược điểm của thuật toán và sau đó sẽ đưa ra hướng phát triển tiếp theo, kèm theo là phương hướng giải quyết
Trang 7DANH SÁCH CÁC THUẬT NGỮ VIẾT TẮT
3G Third-generation technology Công nghệ truyền thông thế hệ thứ 3AHS Automated highway system Hệ thống hỗ trợ lái xe tự động trên
đường cao tốcASV Armored Security Vehicle Phương tiện giao thông an toàn caoBCL Base Class Libraries Các thư viện lớp cơ sở
CPU Central Processing Unit Đơn vị xử lý trung tâm
CLR Common Language Runtime Bộ thực hiện ngôn ngữ chung
DLL Dynamic Link Library Thư viện liên kết động
DSP Digital signal processing Bộ xử lý tín hiệu số
DCT Discrete cosine transform Phép biến đổi cosin rời rạc
ETS Edmonton Transit System Hệ thống thu thuế đường điện tử để
chống ùn tắc giao thông
GPS Global Positioning System Hệ thống định vị toàn cầu
HTML HyperText Markup Language Ngôn ngư đánh dấu siêu văn bản
IIS Internet Information Services Dịch vụ thông tin Internet
ITS Intelligent Transportation
System
Hệ thống giao thông thông minh
PLC Programable Logic Controller Bộ điều khiển logic lập trình được
xanh lục UCL Unified Class Libraries Các thư viện lớp hợp nhất
Trang 8VICS Vehicle Information and
Trang 9Danh mục bảng biểu
Bảng 1.1 Số lượng phương tiện cơ giới đường bộ 11
Bảng 2.1 Các thuật toán tracking objects 32
Bảng 3.1 Bảng tỉ lệ nhận dạng phương tiện giao thông 41
Danh mục hình vẽ Hình 2.1 Một số hệ thống tích hợp quang hồng ngoại, và ảnh nhiệt trên các phương tiện di động 19
Hình 2.2 Một số hệ thống camera robot tự hành, trong hàng không vũ trụ 19
Hình 2.3 Main công nghiệp PC 104 20
Hình 2.4 SBC sử dụng SoC 21
Hình 2.5 Một board xử lý ảnh sử dụng DSP 23
Hình 2.6 Tổ chức thư viện OpenCV 24
Hình 2.7 Cách thêm thư mục Include vào project 28
Hình 2.8 Cách thêm thư viện OpenCV vào project 29
Hình 2.9 Cách thêm các kết nối vào project 30
Hình 3.1 Kiến trúc hệ thống giám sát……… 35
Hình 3.2 Cách tính khoảng cách cho ma trận khoảng cách ……… ………….37
Hình 3.3 Giải pháp cho việc chồng lấn giữa các đối tượng ……… ………… 40
Hình 3.4 Phân loại đối tượng ……… ……… … 40
Hình 4.1 Tổng quan hệ thống giám sát phương tiện trong hệ thống giao thông thông minh ……… 42
Hình 4.2 Thuật toán cho chương trình tự động giám sát phương tiện trong hệ thống giao thông thông minh……… 43
Hình 4.3 Thuật toán đếm phương tiện tham gia giao thông thông minh … …… 46
Hình 4.4 Giao diện của chương trình……… 47
Trang 10Hình 4.5 Đánh giá kết quả giám sát cho trường hợp 1 …… ……….48
Hình 4.6 Đánh giá kết quả giám sát cho trường hợp 2 ……… 48
Hình 4.7 Đánh giá thuật toán đếm phương tiện cho trường hợp 1 ……… 49
Hình 4.8 Đánh giá thuật toán đếm phương tiện cho trường hợp 2 ……… 50
Hình 5.1 Hệ thống đề xuất……… 51
Trang 11Chương 1 : Giới thiệu chung
1.1 Giới thiệu về giao thông tại Việt Nam
Thực trạng Văn hoá giao thông ở Việt Nam hiện nay rất đáng báo động và đang là vấn
đề nổi cộm, nan giải, thậm chí có người đã phải dùng tín hiệu S.O.S để nói về vấn đề này
Do sự phát triển nhanh và mạnh mẽ của nền kinh tế dẫn đến sự bùng nổ các phương tiện giao thông, nhất là xe máy và xe ôtô Trong khi đó cơ sở hạ tầng giao thông không đáp ứng được nhu cầu tăng quá nhanh của phương tiện giao thông Vì vậy tình trạng ùn tắc và tai nạn giao thông ở nước ta đã lên đến mức báo động và gây ra hậu quả nặng nề về mặt kinh tế xã hội
Theo thống kê của bộ giao thông vận tải : tốc độ tăng trưởng các loại xe đạt 12% trong giai đoạn 2009-2011 trong đó xe con có tốc độ tăng cao nhất là 17%/năm, xe tải khoảng 13%, xe khách tăng không đáng kể; xe máy tăng khoảng 15%, số lượng xe máy năm
Và việc các phương tiện giao thông tập trung ở các thành phố lớn làm cho vấn đề tắc nghẽn giao thông tại các thành phố lớn càng trở nên nghiêm trọng Thành phố Hồ Chí Minh và Hà Nội là tiêu điểm của sự ùn tắc giao thông Theo thống kê năm 2011, tại thành phố Hồ Chí Minh hiện đang có 5.2 triệu xe (470.000 xe ôtô và hơn 4.5 triệu xe máy) hoạt động trên địa bàn thành phố, tại thành phố Hà Nội hiện đang có 3.6 triệu xe (450.000 xe ôtô và hơn 3 triệu xe máy) Sự phát triển của cơ sở hạ tầng không thể theo kịp tốc độ tăng
Trang 12trưởng quá nhanh của số lượng phương tiện đòi hỏi phải có biện pháp giao thông thật hợp
lý để giảm thiểu tình trạng ùn tắc và mất an toàn giao thông hiện nay Do đó sự phát triển công nghệ thông tin trong giao thông là một yêu cầu cấp thiết đối với giao thông tại Việt Nam
1.2 Ứng dụng công nghệ thông tin trong giao thông trên thế giới và Việt Nam Trong những năm gần đây, thế giới nói nhiều đến sự cần thiết phải có một Hệ thống giao thông thông minh (lntelligent Transport System - ITS) Về thực chất, ITS là ứng dụng công nghệ cao điện tử, tin học và viễn thông để điều hành và quản lý hệ thống giao thông vận tải Tại một số nước phát triển, tự động hoá truyền tin trong giao thông vận tải
đã được triển khai hàng chục năm nay.[1]
Mục tiêu của ITS là gì? ITS được coi là một hệ thống lớn, trong đó con người, phương tiện giao thông, mạng lưới đường giao thông là các thành phần của hệ thống, liên kết chặt chẽ với nhau nhằm bảo đảm cho hệ thống giao thông vận tải đạt các mục tiêu: giảm tai nạn giao thông, giảm ùn tắc giao thông, giảm ô nhiễm môi trường, hạ giá thành vận chuyển; tăng hiệu quả vận chuyển, tạo điều kiện thuận lợi tối đa cho việc đi lại… Nhật Bản là một điển hình thực hiện ITS
Bước khởi đầu để triển khai ITS tại Nhật Bản, các thông tin về giao thông được cung cấp qua Hệ thống thông tin liên lạc 1 phương tiện giao thông (VICS) Đây là một 1 hệ thống dữ liệu số nhằm cung cấp cho các lái xe thông tin cập nhật về giao thông đường bộ
Sử dụng hệ thống này, thông tin chi tiết về đường bộ cần thiết cho lái xe được truyền đi
từ cột tín hiệu đặt trên đường tới hệ thống thiết bị định vị đặt trên xe Thông tin truyền diện rộng được thông qua đài phát sóng FM Từ 1996-1998, số lượng hệ thống VICS bán
ra đã đến 600.000 chiếc Nơi được trang bị đầu tiên là các đường phố của thủ đô Tôkyô
Hệ thống hỗ trợ lái xe tự động trên đường cao tốc (AHS) để được nghiên cứu và phát triển từ năm 1991 Mục tiêu nghiên cứu là cảnh báo những nguy hiểm phía trước trên đường, xác định vị trí của các phương tiện giao thông khác, ngăn ngừa va đập đằng sau AHS được nghiên cứu trên 3 lĩnh vực chủ yếu: Thông tin: nghiên cứu việc cung cấp thông tin cho lái xe; Điều khiển: nghiên cứu hỗ trợ điều khiển xe; Dẫn đường tự động: nghiên cứu hỗ trợ lái xe hoàn toàn tự động Sự an toàn của lái xe là trách nhiệm của hệ
Trang 13thống này Dự án Phương tiện giao thông an toàn cao (ASV) cũng đã bắt đầu được nghiên cứu từ 1991 bao gồm 6 lĩnh vực và 32 hệ thống Nhiều kết quả đã đạt được trong phát triển công nghệ tự động Một số nhà sản xuất ô tô đã bán ra các hệ thống điều khiển dẫn đường thích ứng Hệ thống thu thuế đường điện tử để chống ùn tắc giao thông (ETS) đã được nghiên cứu từ 1990 và triển khai từ tháng 3-1997 Hệ thống này của Nhật Bản phù hợp với tất cả các kiểu thu thuế đường trong khi sử dụng cùng một thiết bị trên xe Giai đoạn từ 2000 đến nay thực sự là một cuộc cách mạng trong hệ thống giao thông với các dịch vụ của ITS cho người sử dụng ở Nhật Từ năm 2005-2010, theo chương trình đã xây dựng, ITS sẽ kết hợp công nghệ mới với nâng cấp cơ sở hạ tầng, hoàn thiện pháp chế và thể chế xã hội, lái xe tự động sẽ trở thành hiện thực, hạn chế tối đa ùn tắc giao thông Nhật Bản đất hẹp người đông nhưng rất tự hào vì đã áp dụng công nghệ phát triển các dữ liệu điều khiển bằng máy tính cho hàng triệu ô tô, tạo nên một phương tiện đi lại thông minh nhất thế giới.[2]
Hệ thống điều hướng ô tô ở Nhật Bản có thể nhanh chóng báo cho người lái xe đường nào đang bị tắc Sử dụng một hệ thống phát thanh radio FM điều khiển bằng máy tính để thu thập và gửi thông tin từ hơn 18.000 đèn hiệu tia hồng ngoại và sóng radio cài đặt dọc theo đường phố, các hệ thống nói trên có thể tính toán được thời gian để vượt qua các vụ tắc nghẽn giao thông ở các thành phố rồi tìm ra đường đi nhanh nhất Tuy nhiên chỉ có khoảng một triệu xe trong số 70 triệu ô tô trên đường phố Nhật hiện nay có khả năng này Nguyên nhân là do đa số các hệ thống điều hướng được bán ở Nhật chỉ mang lại cho người điều khiển xe một phần thông tin về tình hình giao thông hiện tại Hơn nữa, thiết bị
do người buôn bán cung cấp có chất lượng thấp và các hệ thống điều hướng cao cấp chưa được quảng cáo nhiêu ở Nhật Các sản phẩm chất lượng khá lại quá đắt Giá mỗi hệ thống
từ 950 đến 1.900 USD cộng với 240 USD cho khả năng thu thập thông tin kịp thời và các khoản khác
Thế hệ kế tiếp của hệ thống định vị từ xa có thể kết nối ô tô với các phương tiện giao thông khác Trong các cuộc thử nghiệm của Viện công nghệ thông tin và truyền thông quốc gia Nhật, các ô tô kết nối không dây với nhau để lấy thông tin về các vụ tai nạn giao thông hoặc vị trí của xe cứu thương Hình ảnh một xe cứu thương hoặc một chiếc ô tô bị
Trang 14đâm sẽ hiển thị trên màn hình khi các tín hiệu được nhận từ các phương tiện giao thông khác và thông tin sẽ được truyền từ ô tô này đến ô tô kia
Tại Nhật, thậm chí người đi bộ cũng dùng máy định vị từ xa Trong các dự án nghiên cứu gần đây, công nghệ giọng nói kết hợp mắt kính và tai nghe cho người mù để thu nhận các tín hiệu tia hồng ngoại Khi nhận được các tín hiệu giao thông, hệ thống sẽ phát ra âm thanh "đỏ, đỏ, đỏ" hoặc "xanh, xanh, xanh" để cảnh báo người sử dụng khi qua đường Nhật Bản không phải là quốc gia duy nhất áp dụng hệ thống vận tải thông minh trên đường phố Tại Mỹ, cơ quan nghiên cứu ITS đã được thành lập từ năm 1990 với tên gọi
"Hiệp hội phương tiện giao thông thông minh đường bộ Mỹ" Người lái xe Mỹ sẽ được giảm một số lệ phí nếu thanh toán bằng điện từ Từ năm 1992, Liên minh châu Âu (EU)
đã có nhiêu chương trình, dự án nghiên cứu, ứng dụng công nghệ thông tin trong giao thông vận tải Năm 1998, Hàn Quốc là nước chủ nhà tổ chức Hội nghị quốc tế về ITS và công bố chương trình tổng thể quốc gia về ITS do – Bộ Giao thông vận tải và Xây dựng chủ trì Năm 1996, Bộ Giao thông vận tải Trung Quốc đã thành lập Trung tâm nghiên cứu
về ITS và hệ thống quản lý giao thông tự động đã được triển khai ở Bắc Kinh Malaixia đang đẩy mạnh phát triển ITS và đã có dự án tổng thể về ITS Hệ thống ITS đã được lắp đặt ở một số tuyến đường thu thuế Năm 1996, các cơ quan của Chính phủ Nhật Bản đã phối hợp soạn thảo"Chương trình tổng thể về ITS của Nhật Bản" Tại Singapore, Chính phủ buộc người lái xe phải sử dụng máy thanh toán lệ phí cầu đường số[3] Tại Việt Nam, việc nghiên cứu và ứng dụng ITS là cần thiết, và phải làm từng bước cho phù hợp với điều kiện Việt Nam, để đến năm 2020 có cơ sở hạ tầng cho ITS như một số nước trong khu vực hiện nay
Theo báo cáo của Vụ KHCN thì lộ trình ứng dụng công nghệ ITS ở Việt Nam chia làm
3 giai đoạn:
- Giai đoạn 1 từ nay đến 2015 mục tiêu gồm các ứng dụng sau:
+ Thống nhất tiêu chuẩn hoá hệ thống ITS toàn quốc
+ Qui hoạch và xây dựng các trung tâm điều hành và kiểm soát GT tại 3 khu vực Bắc, Trung, Nam
+ Kiểm soát thông tin trên đường tập trung vào các điểm xung yếu
Trang 15+ Thông tin tắc nghẽn giao thông do sự cố
+ Hỗ trợ và điều hành giao thông trong trường hợp có sự cố
+ Trao đổi dữ liệu giữa các Trung tâm điều hành để thực hiện việc thông tin, kiểm soát giao thông
+ Thu phí không dừng và một dừng tại đảo thu phí
+ Xây dựng hệ thống cân động lực để kiểm soát xe quá tải
+Trao đổi dữ liệu về các cân động để điều chỉnh tình trạng xe chở quá tải
- Giai đoạn từ 2015 đến 2020 mục tiêu hoàn thiện và bổ sung thêm các ứng dụng sau: + Thông tin tắc nghẽn giao thông (do và không do sự cố )
+ Thông tin về thời gian đi lại
+ Thông tin về thời tiết và tình trạng mặt đường
+ Hỗ trợ kiểm soát và điều hành giao thông
+ Giám sát xe nặng, xe vận chuyển hàng nguy hiểm
+ Trao đổi dữ liệu giám sát xe tải giữa các trung tâm
+ Cung cấp các thông tin về xe Bus
+ Trao đổi thông tin về xe Bus từ trung tâm đến trung tâm
- Giai đoạn từ 2020 đến 2030 mục tiêu hoàn thiện các dịch vụ trước và bổ sung thêm các ứng dụng sau:
+ Thông tin về sự cố và tắc nghẽn thông qua giám sát liên tục trên toàn tuyến
+ Thu phí không dừng và cho phép xe chạy suốt (Free Flow)
+ Thu phí đỗ xe và đỗ xe để đi xe Bus
+ Trao đổi thông tin về thu phí đỗ xe và đi xe Bus giữa các trung tâm điều hành đường
bộ
+ Phối hợp xác định tình trạng đường tại các khu đô thị lớn
Như vậy với việc ứng dụng công nghệ giao thông thông minh không những hỗ trợ tốt công việc vận hành, quản lý, khai thác hệ thống đường cao tốc mà còn hỗ trợ giải quyết đồng bộ các vấn đề tồn tại bức thiết hiện nay của mạng lưới giao thông đường bộ như tình trạng xe quá tải, tình trạng tắc nghẽn giao thông
Trang 161.3 Mục tiêu của luận văn
Từ cơ sở lý thuyết và thực trạng hiện nay của giao thông Việt nam, mục tiêu của luận văn muốn tìm ra một giải pháp tối ưu để có thể áp dụng vào hệ thống giao thông thông minh Xử lý ảnh là một phần không thể thiếu trong ITS, nhưng tuy nhiên đã có rất nhiều những nghiên cứu trên thế giới đã đạt được thành công phần nào trong việc nhận dạng, giám sát các phương tiện Thêm vào đó, các phương pháp này vẫn cần phải có những cải tiến để đạt hiệu quả cao hơn Luận văn sẽ đưa ra những cơ sở lý thuyết để áp dụng vào xử
lý ảnh như OpenCV, sau đó sẽ nói về môi trường phù hợp để phát triển dự án Trước khi nói đến thuật toán để xử lý việc nhận dạng và đếm phương tiện giao thông, luận văn sẽ nghiên cứu các phương án trước đây mà các nhà nghiên cứu đã phát triển thành công và kèm theo là những vấn đề còn tồn tại mà vẫn chưa giải quyết được triệt để Cuối cùng là kết luận và hướng phát triển trong tương lai
Trang 17Chương 2 : Tổng quan về xử lý ảnh và thư viện mã nguồn mở
Open CV
2.1 Giới thiệu một số ứng dụng của xử lý ảnh
Trong những năm gần đây, trên thế giới nghiên cứu ứng dụng xử lý và nhận dạng ảnh (Machine Vision) đang là hướng nghiên cứu tập trung của rất nhiều nhà khoa học trong
đa số các lĩnh vực Xử lý ảnh số đã được phát triển và trở thành một lĩnh vực khoa học
Xử lý ảnh số không chỉ nâng cao chất lượng của ảnh mà còn phân tích và lý giải nó phục
vụ các mục đích riêng biệt Các thiết bị ngày nay được ứng dụng công nghệ xử lý và điều khiển theo hình ảnh ngày càng nhiều và cho thấy rõ sự ưu việt của nó, trong đó có rất nhiều ứng dụng mang tính cách mạng như:
2.1.1 Trong quân sự:
Các hệ thống tích hợp quang hồng ngoại có khả năng tự động điều khiển dàn hỏa lực (pháo, tên lửa) được lắp đặt cho các trận địa cao xạ, trên xe tăng, tàu chiến, máy bay, tên lửa hoặc vệ tinh (Hình 2.1) Chúng được thay thế và hỗ trợ các dàn rada dễ bị nhiễu trong việc tự động phát hiện, cảnh giới, bám bắt mục tiêu Đặc biệt có những loại lắp trên máy bay có khả năng điều khiển hỏa lực đánh phá hàng chục mục tiêu một lúc Ngoài ra còn phải kể đến các đầu tự dẫn tên lửa và đạn thông minh
2.1.2 Trong an ninh, phòng chống tội phạm, bảo vệ pháp luật:
Các hệ thống camera nhận dạng khuôn mặt vân tay tự động cũng như phát hiện, theo dõi, cảnh báo các âm mưu và hoạt động khủng bố Các xe robốt tự hành có gắn các camera cũng được ứng dụng trong các môi trường độc hại, dò phá bom mìn (Hình 2.1) 2.1.3 Trong lĩnh vực hàng không vũ trụ:
Các hệ thống ống kính chụp ảnh viễn thám (remote sensing) lắp trên các vệ tinh bay quanh trái đất có thể chụp và quan sát được các vật kích cỡ 0,5 m từ độ cao 750 km trong mọi điều kiện thời tiết (Hình 2.1) Việc nối ghép các ống kính này với hệ thống GPS sẽ cho phép xây dựng các bản đồ số có những lĩnh vực ứng dụng cực kỳ quan trọng trong quốc phòng an ninh, phát triển kinh tế, xã hội
Trang 182.1.4 Trong công nghiệp, giao thông, xây dựng :
Hệ thống quang điện tử đóng vai trò của các thị giác máy (machine vision) có khả năng tự động đo đạc kiểm tra chất lượng sản phẩm trong các dây truyền sản xuất: phân loại hạt ngũ cốc, cà phê; tìm lỗi lắp ráp linh kiện các bản vi mạch và khuyết tật các mối hàn và động cơ Các hệ thống quang điện tử cũng được ứng dụng ngày càng nhiều trong giao thông như đo tốc độ, tự động kiểm soát điều khiển và phân luồng giao thông (Hình 2.2)
2.1.5 Trong nghiên cứu y sinh dược học:
Các kính hiển vi có khả năng tự động nhận dạng và đo đếm các tế bào với độ chính xác cao Các kính hiển vi có hệ thống dẫn đường laser cho phép thực hiện những phẫu thuật rất phức tạp như mổ u não, nơi mà một sự không chính xác cỡ µm cũng gây tổn hại đến các dây thần kinh chằng chịt xung quanh
2.1.6 Trong công nghiệp giải trí truyền hình:
Các hệ thống tích hợp có thể điều khiển các camera kích thước và khối lượng lớn dễ dàng tự động bám theo các đối tượng chuyển động nhanh như bóng đang bay, đua xe Một số hình ảnh hệ thống sử dụng công nghệ xử lý ảnh:
Trang 19Hình 2.1 Một số hệ thống tích hợp quang hồng ngoại, và ảnh nhiệt trên các phương
Trang 202.2.1 Máy tính PC, laptop
Đây là một trong những phương pháp đơn giản nhất Có thể tận Dụng các mainboard máy tính hay thậm chí các máy tính xách tay với chức năng là một đơn vị xử lý ảnh, và đưa ra quyết định Với việc kết nối một camera hay webcam ta hoàn toàn chủ động trong quá trình nhận/xử lý ảnh Các giao tiếp ngoại vi phổ biến như UART, Parallel, USB hay KeyboarD Việc sử dụng PC, laptop sẽ có những ưu/ nhược điểm sau:
* Ưu điểm:
- Rất dễ dàng phát triển các ứng dụng dựa trên các phần mềm lập trình như C, VisualC, VisualBasic…, rất phù hợp cho những người mới bắt đầu nghiên cứu về lĩnh vực xử lý ảnh đặc biệt là hiện nay có rất nhiều thư viện mở phục vụ cho xử lý ảnh, do đó rất thuận tiện cho người mới bắt đầu tìm hiểu về xử lý ảnh
- Có tốc độ xử lý không cao
- Dễ Dàng lập trình, kiểm lỗi
- Hệ điều hành quen thuộc (winDows/linux)
- Các công cụ lập trình/biên Dịch phổ biến (C, C++, VisualC, VisualBasic )
* Nhược điểm
- Kích thước, khối lượng lớn
- Dễ hư hỏng do va đập hay các tác nhân khác
- Có quá nhiều thành phần không sử Dụng đến
- Chỉ có thể giao tiếp với ngoại vi thông qua các chuẩn phổ biến như UART, USB2.2.2 Main công nghiệp, máy tính nhúng PC 104
Hình 2.3 Main công nghiệp PC 104
Trang 21Ta có thể sử dụng mainboad PC104 với các chức năng như một máy tính thông
thường Việc sử dụng PC104 sẽ có những ưu/ nhược điểm sau:
Ưu điểm:
- Có tốc độ xử lý cao
- Dễ Dàng lập trình, kiểm lỗi
- Hệ điều hành quen thuộc (windows/linux)
- Các công cụ lập trình/biên dịch phổ biến (MSVC, C++ )
Trang 22thể Hiện nay đã có nhiều SoC có khả năng tích hợp các DSP Processor vào trong nhân nhằm tăng khả năng xử lý (sign processing)
- Được sự hỗ trợ rất lớn của cộng đồng mã nguồn mở Từ HĐH, kernel hay rất nhiều
- Các công cụ biên dịch phổ biến gcc
- Các công cụ hỗ trợ lập trình rất nhiều Eclipse, Vim, Emacs v v
Nhược điểm:
- Việc chạy/kiểm thử phải thực hiện giả lập trên máy tính trước khi đưa vào mạch
- Am hiểu kiến thức về các giao tiếp ngoại vi, kiến trúc về SBC
2.2.4 DSP (Digital signal processing)
Bộ xử lý tín hiệu số DSP được giới thiệu đầu tiên vào những năm 1978, 1979 bởi Intel, Bell
Các bộ xử lý DSP có những đặc tính nổi bật như sau:
- Thích hợp cho các quá trình cần xử lý theo thời gian thực
- Hiệu năng được tối ưu với dữ liệu dạng luồng
- Chương trình và dữ liệu được bố chí riêng biệt (kiến trúc Harvard)
- Tích hợp các chỉ thị lệnh đặc biệt SIMD (Single Instruction, Multiple Data)
- Không hỗ trợ đa nhiệm
- Tương tác trực tiếp với bộ nhớ của thiết bị
- Tích hợp sẵn ADC và DAC
Trang 23Hình 2.5 Một board xử lý ảnh sử dụng DSP DSP ngày nay đã được tích hợp nhiều thành phần khác nhau, làm tăng khả năng xử lý linh hoạt và tốc độ xử lý Đặc biệt các DSP rất thích hợp cho những nhu cầu cần tính toán nhanh, xử lý số thực Đặc biệt một số còn có sẵn những chỉ thị lệnh giúp cho việc tính toán ma trận, tích chập hay thậm chí các phép biến đổi DCT trong quá trình nén ảnh Với những ưu điểm đó DSP được dùng trong nhiều thiết bị xử lý ảnh chuyên nghiệp.
2.3 Giới thiệu về thư viện mã nguồn mở Open CV
OpenCV (Open Computer Vision library) do Intel phát triển, được giới thiệu năm 1999
và hoàn thiện thành phiên bản 1.0 năm 2006 Thư viện OpenCV - gồm khoảng 500 hàm – được viết bằng ngôn ngữ lập trình C và tương thích với các hệ điều hành Windows, Linux, Mac OS đóng vai trò xác lập chuẩn giao tiếp, dữ liệu, thuật toán cho lĩnh vực
CV và tạo điều kiện cho mọi người tham gia nghiên cứu và phát triển ứng dụng.[4]
Trang 24Hình 2.6 Tổ chức thư viện OpenCV Trước OpenCV không có một công cụ chuẩn nào cho lĩnh vực xử lý ảnh Các đoạn code đơn lẻ do các nhà nghiên cứu tự viết thường không thống nhất và không ổn định Các bộ công cụ thương mại như Matlab, Simulink, Halcon, v.v lại có giá cao chỉ thích hợp cho các công ty phát triển các ứng dụng lớn Ngoài ra còn có các giải pháp kèm theo thiết bị phần cứng mà phần lớn là mã đóng và được thiết kế riêng cho từng thiết bị, rất khó khăn cho việc mở rộng ứng dụng
OpenCV là công cụ hữu ích cho những người bước đầu làm quen với xử lý ảnh số vì các ưu điểm sau:
- OpenCV là công cụ chuyên dụng: Được Intel phát triển theo hướng tối ưu hóa cho các ứng dụng xử lí và phân tích ảnh, với cấu trúc dữ liệu hợp lý, thư viện tạo giao diện, truy xuất thiết bị phần cứng được tích hợp sẵn OpenCV thích hợp để phát triển nhanh ứng dụng
- OpenCV là công cụ mã nguồn mở: Không chỉ là công cụ miễn phí (với BSD license), việc được xây dựng trên mã nguồn mở giúp OpenCV trở thành công cụ thích hợp cho nghiên cứu và phát triển, với khả năng thay đổi và mở rộng các mô hình, thuật toán
- OpenCV đã được sử dụng rộng rãi: Từ năm 1999 đến nay, OpenCV đã thu hút được một lượng lớn người dùng, trong đó có các công ty lớn như Microsoft, IBM, Sony,
Trang 25Siemens, Google và các nhóm nghiên cứu ở Standford, MIT, CMU, Cambridge Nhiều forum hỗ trợ và cộng đồng người dùng đã được thành lập, tạo nên kênh thông tin rộng lớn hữu ích cho việc tham khảo tra cứu.[4]
Tổ chức thư viện OpenCV khá đơn giản (xem Hình 2.6), bao gồm 4 module chính và 2
module mở rộng:
- CXCORE chứa các định nghĩa kiểu dữ liệu cơ sở Ví dụ, các cấu trúc dữ liệu cho
ảnh, điểm và hình chữ nhật được định nghĩa trong cxtypes.h CXCORE cũng chứa đại số
tuyến tính và phương pháp thống kê, chức năng duy trì và điều khiển chuỗi Một số ít, các chức năng đồ họa để vẽ trên ảnh cũng được đặt ở đây
- CV chứa các thuật toán về xử lý ảnh và định kích cỡ camera Các chức năng hình họa máy tính cũng được đặt ở đây
- CVAUX được mô tả trong tài liệu của OpenCV như chứa các mã cũ và thứ nghiệm Tuy nhiên, các giao diện đơn cho sự nhận diện ảnh ở trong module này Code sau này chúng được chuyên dụng cho nhận diện mặt và chúng được ứng dụng rộng rãi cho mục đích đó
- HIGHGUI và CVCAM được đặt trong cùng thư mục là “otherlibs”
HIGHGUI chứa các giao diện vào ra cơ bản, nó cũng chứa các khả năng cửa sổ mở rộng và vào ra video
CVCAM chứa các giao diện cho video truy cập qua DirectX trên nền Windows 32 bits
Kèm theo thư viện là tài liệu hướng dẫn và các ví dụ mẫu thể hiện một phần các chức năng của công cụ OpenCV
Các chức năng của openCV tập trung vào thu thập ảnh, xử lí ảnh và các thuật toán phân tích dữ liệu ảnh, bao gồm:
- Truy xuất ảnh và phim: đọc ảnh số từ camera, từ file, ghi ảnh và phim
- Cấu trúc dữ liệu ảnh số và các dữ liệu hỗ trợ cần thiết: ma trận, vector, chuỗi, xâu và
cây
- Xử lí ảnh căn bản: các bộ lọc có sẵn, tìm chi tiết cạnh, góc, chỉnh đổi màu, phóng to
thu nhỏ, và hiệu chỉnh histograms
Trang 26- Xử lí cấu trúc: tìm viền, nhận chuyển động, thay đổi trong không gian 3D, đối chiếu bản mẫu, xấp xỉ các đơn vị hình học cơ sở - mặt phẳng, đa giác, ellipse, đường thẳng
- Phân tích dữ liệu ảnh: nhận dạng thực thể, theo dõi các chi tiết và phân tích chuyển động
- Tạo giao diện đơn giản: hiển thị ảnh, thao tác bàn phím, chuột, thanh trượt để chỉnh
thông số (nếu cần thiết các bạn có thể tự tạo thêm các phím điều khiển thông qua thao tác
chuột, hoặc tích hợp thêm các thư viện về giao diện như wxWidgets)
- Chức năng vẽ, chú thích lên ảnh.
2.4 NET Framework và cách sử dụng OpenCV trong NET Framework
.NET Framework của Microsoft là một thành phần có thể được cài thêm hoặc đã có sẵn trong các hệ điều hành Windows Nó cung cấp những giải pháp đã được lập trình sẵn cho những yêu cầu thông thường của chương trình, quản lý việc thực thi các chương trình viết trên framework, người dùng cuối cần phải cài framework để có thể chạy các chương trình NET .NET Framework do Microsoft đưa ra và được sử dụng trong hầu hết các ứng dụng viết trên nền Windows Những giải pháp được lập trình sẵn hình thành nên một thư viện lớp của framework, được sử dụng trong nhiều lĩnh vực của lập trình như : giao diện người dùng , truy cập dữ liệu , kết nối cơ sở dữ liệu, mã hoá, phát triển những ứng dụng web , các giải thuật số học và giao tiếp mạng Thư viện lớp của framework được lập trình viên sử dụng , kết hợp với code của chính mình để tạo nên các ứng dụng
2.4.1 Những điểm đặc trưng của NET Framework
.NET Framework là cơ sở hạ tầng cho việc xây dựng, triển khai và chạy các ứng dụng
và dịch vụ Web Nó cung cấp một môi trường đa ngôn ngữ, dựa trên nền các chuẩn với hiệu nǎng cao, cho phép tích hợp những đầu tư ban đầu với các ứng dụng và dịch vụ thế
hệ kế tiếp và giải quyết những thách thức của việc triển khai và vận hành các ứng dụng trên quy mô Internet Cơ sở hạ tầng NET Framework bao gồm ba phần chính là Bộ thực hiện ngôn ngữ chung (Common Language Runtime - CLR), một tập phân cấp các thư viện lớp hợp nhất (Unified Class Libraries - UCL) và ASP.NET
Trang 272.4.2 Kiến trúc NET Framework
Như chúng ta đã biết NET Framework bao gồm ba phần là bộ thực thi ngôn ngữ chung (Common Language Runtime), các lớp lập trình hợp nhất hay còn gọi là các thư viện lớp cơ sở (Base Class Libraries - BCL) và một phiên bản cấu thành của Microsoft Active Server Pages gọi là Microsoftđ ASP.NET Trên thực tế, ASP.NET và Windows Forms là hai thành phần nằm trong Base Class Libraries, nên trong một số tài liệu NET Framework được giới thiệu bao gồm 2 phần chính là Common Language Runtime và Base Class Libraries Một trong các thành phần này đều có vai trò cực kỳ quan trọng trong việc phát triển các dịch vụ và các ứng dụng NET
Sau đây là hai đoạn mã ví dụ có sử dụng Namespace trong C#