Các thông tin hình ảnh này cần được tổng hợp, phân tích và xử lý để ứng dụng trong các lĩnh vực khác nhau của đời sống, kinh tế, xãhội.. Một trong những ứng dụng quan trọng của chúnghiện
Trang 1MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
TRÍCH YẾU LUẬN VĂN CAO HỌC iii
MỤC LỤC iv
DANH MỤC HÌNH VẼ vi
DANH MỤC CÁC CHỮ VIẾT TẮT viii
MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN VỀ ỨNG DỤNG XỬ LÝ ẢNH TRONG GIAO THÔNG THÔNG MINH 4
1.1 Xu hướng công nghệ trên thế giới 4
1.1.1 Một số thuật ngữ phổ biến 4
1.1.2 Mô hình SegNet [20] 5
1.1.3 Hệ thống xe tự lái của Google [21] 6
1.1.4 Hệ thống xe tự lái của Nvidia 7
1.2 Một số hệ thống thu thập dữ liệu giao thông bằng XLA được phát triển trong nước 10
1.2.1 Hệ thống thu thập dữ liệu giao thông trên đường cao tốc 10
1.2.2 Hệ thống thu thập dữ liệu giao thông trong vùng đô thị 15
CHƯƠNG 2 CÁC KỸ THUẬT XỬ LÝ ẢNH TRONG GIÁM SÁT GIAO THÔNG 17
2.1 Tổng quan 17
2.2 Mẫu nhị phân cục bộ (LBP - Local Binary Pattern) 18
2.3 Đặc trưng HoG (Histogram Of Oriented Gradient) 21
2.4 Đặc trưng Haar-like 25
Trang 22.5 Mạng nơ-ron tích chập (Convolutional Neural Network) 32
2.6 Region-based Convolutional Network (R-CNN) 36
2.7 Mạng CNN-YOLO (You Only Look Once) 37
CHƯƠNG 3 ỨNG DỤNG CNN PHÂN LOẠI PHƯƠNG TIỆN GIAO THÔNG 41
3.1 Phát hiện xe bằng đặc trưng Haar 41
3.1.1 Xây dựng bộ phân lớp 41
3.1.2 Phát hiện xe 45
3.2 Phát hiện xe trong ảnh sử dụng mô hình Faster R-CNN 46
3.2.1 Cấu trúc mô hình 46
3.2.2 Cài đặt mạng nhân chập 47
3.2.3 Cài đặt mạng Region Proposal 49
3.2.4 Cài đặt các tầng phân lớp 50
3.3 Phát hiện và phân lớp phương tiện giao thông ứng dụng YOLOv3 53
3.4 Kết luận 55
TÀI LIỆU THAM KHẢO 57
PHỤ LỤC 59
Trang 3DANH MỤC HÌNH VẼ
Hình 1.1: Xử lý ảnh và các lĩnh vực khoa học liên quan 4
Hình 1.2: Khác nhau giữa học máy truyền thống và Deep learning trong phân lớp đối tượng 5
Hình 1.3: Mô hình SegNet (nguồn [1]) 6
Hình 1.4: Các cảm biến trên xe tự lái của Google 7
Hình 1.5: Không gian quanh xe được tái tạo từ số liệu lấy từ GIS, các cảm biến GPS, siêu âm, RADAR, LIDAR 7
Hình 1.6: Phần cứng hệ thống xe tự lái của Nvidia 8
Hình 1.7: Nguyên lý huấn luyện hệ thống xe tự lái của Nvidia 8
Hình 1.8: Kiến trúc CNNT trong hệ thống xe tự lái của Nvidia 9
Hình 1.9: Cấu trúc vật lý của hệ thống thu thập dữ liệu giao thông trên đường cao tốc 11
Hình 1.10: Các chức năng chính của hệ thống 13
Hình 1.11: Cấu trúc hệ thống theo mô hình xử lý tại chỗ 15
Hình 2.1: Độ phức tạp của bài toán phân lớp đối tượng truyền thống 17
Hình 2.2: Tính giá trị LBP 18
Hình 2.3: Các trường hợp điển hình trong kết quả của LBP 19
Hình 2.4: Tính đặc trưng LBP của ảnh 20
Hình 2.5: Tập hợp các điểm lân cận 20
Hình 2.6: Các dạng HOG 22
Hình 2.7: Các bước tính toán HOG 24
Hình 2.8: Đặc trưng Haar-like cơ bản 25
Hình 2.9: Các đặc trưng mở rộng của các đặc trưng Haar-like cơ sở 26
Hình 2.10: Cách tính Integral Image của ảnh 26
Hình 2.11: Ví dụ cách tính nhanh các giá trị mức xám của vùng D trên ảnh 27
Hình 2.12: Phát hiện mặt người bằng đặc trưng Haar-like 27
Hình 2.13: Mô hình phân tần kết hợp các bộ phân loại yếu để phát hiện khuôn mặt 31
Trang 4Hình 2.14: Phép tích chập trên ma trận điểm ảnh 32
Hình 2.15: Làm mờ ảnh bằng tích chập 33
Hình 2.16: Phát hiện đường biên giữa các vùng trên ảnh bằng tích chập 33
Hình 2.17: Kiến trúc mạng CNN do Krizhevsky và các cộng sự đề xuất [20] 35
Hình 2.18: Các bước thực hiện của phương pháp R-CNN 37
Hình 2.19 Cấu trúc mạng R-CNN cho nhận dạng chữ viết tay 37
Hình 2.20: Kiến trúc mạng YOLO [12] 38
Hình 2.21: Đầu ra mạng YOLO 7×7×30 40
Hình 3.1: Ví dụ ảnh dương được đưa vào huấn luyện 41
Hình 3.2: Ví dụ ảnh âm được đưa vào huấn luyện 42
Hình 3.3: Phát hiện xe trong ảnh theo mô hình phân tầng 45
Hình 3.4: Phát hiện, phân loại xe sử dụng đặc trưng Haar 46
Hình 3.5: Mô hình Faster R-CNN dùng phát hiện và phân loại xe trong ảnh 47
Hình 3.6: 3 Tầng nhân chập đầu trong nhánh mạng có 1 kênh màu và một filter 48
Hình 3.7: Kiến trúc mạng ImageNet Classification 49
Hình 3.8: Quá trình phát hiện và phân loại đối tượng sau mạng nhân chập 50
Hình 3.9: Mạng Faster RCNN hoàn chỉnh 52
Hình 3.10: Kết quả phát hiện và phân loại xe sử dụng mô hình mô hình Faster R-CNN 53
Hình 3.11: Kết quả phát hiện và phân loại đối tượng bằng YOLOv3 54
Trang 5DANH MỤC CÁC CHỮ VIẾT TẮT
đánh dấu mở rộng)
Trang 6MỞ ĐẦU
1 Tính cấp thiết của đề tài
Ngày nay, với sự phổ biến của các thiết bị số như camera, máy ảnh vàđiện thoại thông minh thì lượng thông tin mà con người thu được dưới dạnghình ảnh là rất lớn Các thông tin hình ảnh này cần được tổng hợp, phân tích
và xử lý để ứng dụng trong các lĩnh vực khác nhau của đời sống, kinh tế, xãhội Thực tế từ đầu những năm 2000, công nghệ xử lý ảnh đã được nghiêncứu và có những bước phát triển rực rỡ, tạo điều kiện để ứng dụng các môhình học máy, học sâu trong lĩnh vực computer vision Các ứng dụng côngnghệ xử lý ảnh hiện đang rất phổ biến như nhận dạng vân tay, nhận dạngkhuôn mặt, phát hiện đối tượng chuyển động Bên cạnh đó, các hệ thốngcamera giám sát ngày càng được ứng dụng rộng rãi trong đời sống xã hội vớinhiều mục đích khác nhau Một trong những ứng dụng quan trọng của chúnghiện nay là các hệ thống camera giao thông đang góp phần giải bài toán bứcthiết trong quản lý và điều hành giao thông tại Việt Nam, nâng cao năng lựcvận tải của hệ thống giao thông, giảm ùn tắc và tai nạn giao thông, từng bướcxây dựng hệ thống giao thông thông minh và đưa hệ thống giao thông ViệtNam tiến lên hiện đại, tiệm cận với các nước phát triển trên thế giới
Trang bị các hệ thống camera độ phân giải cao mới chỉ là điều kiện cần,trang bị phần vỏ Việc nghiên cứu và ứng dụng các mô hình xử lý ảnh tiêntiến để phát triển các phần mềm thu thập, xử lý dữ liệu hình ảnh từ camera đểđưa ra các thông tin hữu ích trong quản lý và điều hành giao thông mới làđiều quan trọng nhất Convolutional Neural Network (CNNs – Mạng nơ-rontích chập) là một trong những mô hình Deep Learning tiên tiến giúp chúng
ta xây dựng được những hệ thống thông minh với độ chính xác cao hiện nay,như hệ thống xử lý ảnh lớn mà Facebook, Google hay Amazon đã đưa vàosản phẩm của mình những chức năng thông minh như nhận diện khuôn mặtngười dùng, phát triển xe hơi tự lái hay drone giao hàng tự động
Xuất phát từ thực tiễn đó, luận văn “Nghiên cứu ứng dụng mạng nơ ron tích chập phát hiện và phân loại phương tiện giao thông” thực sự mang
Trang 7tính cấp thiết, có ý nghĩa khoa học và ứng dụng trong thực tiễn.
2 Đối tượng và phạm vi nghiên cứu
- Một số giải pháp ứng dụng machine learning, computer vision trongphát hiện đối tượng trên ảnh
- Mạng nơ ron tích chập (Convolution neural network - CNN)
- Các mô hình mạng nơ ron tích chập cải tiến: RCNN, Fast CNN, Yolo
- Bài toán phát hiện và phân loại đối tượng theo thời gian thực
- Ứng dụng mạng nơ ron tích chập theo vùng RCNN và các mô hìnhcải tiến để phát hiện và phân loại phương tiện giao thông theo thời gian thực
- Dữ liệu hình ảnh từ camera giám sát giao thông được đưa vào môhình để thử nghiệm mô hình
3 Hướng nghiên cứu của đề tài
Nghiên cứu mô hình sử dụng mạng nơ ron phát hiện đối tượng trên ảnh,
áp dụng cho bài toán phát hiện và phân loại phương tiện giao thông Nghiên cứu
mô hình sử dụng mạng nơ ron tích chập cải tiến tốc độ và độ chính xác của các
mô hình truyền thống khác Nghiên cứu xây dựng được mô hình thử nghiệm vớiđầu vào là dữ liệu ảnh thu thập từ camera giám sát giao thông
4 Những nội dung nghiên cứu chính
Chương 1: Tổng quan về ứng dụng xử lý ảnh trong quản lý và điềuhành giao thông thông minh
Chương 2: Mạng nơ ron tích chập và ứng dụng trong phát hiện và phânloại đối tượng
Chương 3: Ứng dụng CNN phân loại phương tiện giao thông
Kết luận và hướng phát triển
Tài liệu tham khảo
Phụ lục (Các chương trình ứng dụng)
5 Phương pháp nghiên cứu
- Tổng hợp các nghiên cứu thuộc phạm vi của đề tài ở trong và ngoàinước
Trang 8- Kế thừa và phát triển các nghiên cứu về mạng nơ ron tích chập vàcác mô hình cải tiến để phát hiện và phân loại đối tượng.
- Viết chương trình thử nghiệm mô hình mạng nơ ron tích chập trongphát hiện và phân loại phương tiện giao thông
6 Ý nghĩa khoa học của đề tài
Nghiên cứu vấn đề ứng dụng mạng nơ ron tích chập phát hiện và phânloại phương tiện giao thông có ý nghĩa và vai trò to lớn trong việc giúp tăngcường an toàn giao thông đường bộ Luận văn đã sử dụng một số giải phápứng dụng machine learning và mạng nơ ron tích chập (Convolution neuralnetwork - CNN) để phát hiện và phân loại phương tiện giao thông theo thờigian thực Do vậy, luận văn có tính khoa học và ứng dụng thực tiễn
Trang 9CHƯƠNG 1 TỔNG QUAN VỀ ỨNG DỤNG XỬ LÝ ẢNH TRONG GIAO THÔNG THÔNG MINH 1.1 Xu hướng công nghệ trên thế giới
Ứng dụng xử lý ảnh cùng các môn khoa học liên quan khác như thịgiác máy tính và thị giác máy… (Hình 1) là lĩnh vực đang được nhiều tổ chứckhoa học - công nghệ lớn trên thế giới đầu tư nghiên cứu, phát triển Xử lýảnh và rộng hơn là thị giác máy được đánh giá là một trong những công nghệ
có tiềm năng ứng dụng cao trong các lĩnh vực của xã hội hiện đại Trong phầnnày, đề tài chỉ giới thiệu một số ứng dụng tiêu biểu có liên quan của XLAtrong lĩnh vực giao thông vận tải
Hình 1.1: Xử lý ảnh và các lĩnh vực khoa học liên quan
1.1.1 Một số thuật ngữ phổ biến
Deep learning:
Deep learning là một kĩ thuật học máy (Machine Learning) tiên tiến, nócho phép học trực tiếp các đặc trưng từ tập mẫu (hình ảnh, âm thanh, văn
Trang 10bản…) thay vì phải thực hiện trích rút đặc trưng như trong các phương pháphọc máy truyền thống
Hình 1.2: Khác nhau giữa học máy truyền thống và Deep learning trong
phân lớp đối tượng
Deep learning trở nên phổ biến trong thập kỉ gần đây vì nhu cầu xử lý
tự động lượng lớn dữ liệu số mà loài người tạo ra Sự phát triển nhanh củaDeep learning một phần còn nhờ vào sức mạnh xử lý của máy tính ngày càngcao Hiện tại, Deep learning đang được ứng dụng để giải quyết rất hiệu quảcác bài toán xử lý ảnh số và video, xử lý tiếng nói và ngôn ngữ tự nhiên, nhậndạng chữ viết
Mạng nơ–ron tích chập (Convolutional Neural Networks - CNN):
CNN là một trong những mô hình Deep Learning phù hợp với các ứngdụng xử lý ảnh yêu cầu độ chính xác cao Cấu trúc CNN bao gồm nhiều tầng,các tầng được liên kết với nhau thông qua cơ chế tích chập: tầng sau bằngtầng trước nhân với một ma trận filter Giá trị của ma trận filter được xác địnhthông qua quá trình huấn luyện Hiện tại CNN là công cụ mạnh để giải quyếtbài toán phân lớp và nhận dạng đối tượng trong ảnh
1.1.2 Mô hình SegNet [20]
SegNet là mô hình phân vùng ảnh sử dụng mạng nơ-ron tích chập đượcnhóm Computer Vision and Robotics Group của đại học University ofCambridge phát triển Một trong những ứng dụng của nó là phân tích trạng
Trang 11thái giao thông theo thời gian thực Trong ứng dụng này, một camera đượcgắn trên xe để thu nhận hình ảnh phía trước xe, kết quả xử lý ảnh sẽ cho biếtmật độ giao thông trên đoạn đường phía trước thông qua các số liệu như: Diệntích đường trống, diện tích đường bị chiếm dụng, số lượng và loại đối tượngphía trước (các loại xe, người đi bộ, vật cản…)
Hình 1.3: Mô hình SegNet (nguồn [20])
1.1.3 Hệ thống xe tự lái của Google [21]
Dự án phát triển xe tự lái của Google bắt đầu thực hiện từ năm 2009
Hệ thống xe tự lái của Google có khả năng xác định được được vị trí hiện tạicủa xe, nhận diện các đối tượng xung quanh xe, dự đoán các tình huống cóthể xảy ra để quyết định thực hiện các thao tác điều khiển phù hợp Nhiều loạicông nghệ cảm biến khác nhau đã được sử dụng để thu thập thông tin về trạngthái quanh xe (Hình 1.4): GPS và hệ thống GIS được dùng để định vị xe đang
ở tuyến phố nào trong thành phố, các cảm biến radar, lidar và siêu âm dùng đểthu thập thông tin về các đối tượng quanh xe trong phạm vi bán kính hàngtrăm mét (Hình 5) Camera và phần mềm xử lý ảnh đóng vai trò quan trọngtrong hệ thống điều khiển, nó giúp xe đi đúng làn đường, tuân thủ tín hiệuđiều khiển giao thông (đèn tín hiệu, biển báo, vạch kẻ đường), phân tích, nhậndiện quang cảnh phía trước xe để đưa ra các quyết định điều khiển theo cáctình huống thực tế
+
Trang 12Hình 1.4: Các cảm biến trên xe tự lái của Google
Hình 1.5: Không gian quanh xe được tái tạo từ số liệu lấy từ GIS,
các cảm biến GPS, siêu âm, RADAR, LIDAR
1.1.4 Hệ thống xe tự lái của Nvidia
Nvidia cũng đang phát triển hệ thống xe tự lái tương tự Google Đểkhắc phục hạn chế xuất phát từ việc không có được cơ sở dữ liệu GIS phongphú như Google, Nvidia tập trung vào việc tăng cường huấn luyện hệ thốngtheo thời gian thực để thu được lượng thông tin nhiều nhất về trạng thái phíatrước xe thông qua xử lý ảnh Cấu trúc phần cứng hệ thống tự lái của Nvidiaminh họa trong Hình 6
Trang 13Hình 1.6: Phần cứng hệ thống xe tự lái của Nvidia
Hình 1.7: Nguyên lý huấn luyện hệ thống xe tự lái của Nvidia
Trang 14Hình 1.8: Kiến trúc CNNT trong hệ thống xe tự lái của Nvidia
Hạt nhân hệ thống xe tự lái của Nidivia là mạng nơ-ron nhân chập(CNN), quá trình huấn luyện mạng CNN được minh họa trong Hình 1.7 Theo
đó khung cảnh phía trước xe được ghi lại bằng 3 camera (trái, phải, giữa),mạng CNN sẽ xử lý ảnh thu được để đưa ra các quyết định quay trái/phải,tăng/giảm tốc độ Quyết định của CNN sẽ được so sánh với quyết định tươngứng của người lái, sai khác sẽ được sử dụng để hiệu chỉnh lại mạng CNTTnhằm tăng mức độ linh hoạt của hệ thống điều khiển
Kiến trúc CNN trong hệ thống xe tự lái của Nvidia được minh họatrong Hình 1.8, trong đó bao gồm 27 triệu kết nối và 250 nghìn tham số
Trang 151.2 Một số hệ thống thu thập dữ liệu giao thông bằng XLA được phát triển trong nước
1.2.1 Hệ thống thu thập dữ liệu giao thông trên đường cao tốc
Sử dụng công nghệ xử lý ảnh để thu thập dữ liệu dòng giao thông làgiải pháp được nghiên cứu khá sớm ở Việt Nam Năm 2003, Trường Đại họcGiao thông Vận tải đã bắt đầu nghiên cứu xây dựng hệ thống thu thập dữ liệugiao thông ứng dụng công nghệ xử lý ảnh [3] Đến năm 2007 hệ thống này đãđược triển khai thử nghiệm để thu thập dữ liệu giao thông tại Km 192+422trên đường cao tốc Pháp Vân [4], hệ thống có cấu trúc như được minh họatrong Hình 1.9 Trong quá trình thử nghiệm, hệ thống đã thực hiện tốt cácchức năng: Đếm và phân loại xe; đo tốc độ của xe Phát hiện các tình huống
vi phạm luật giao thông như chạy quá tốc độ, chuyển làn trái phép, đi khôngđúng phần đường quy định Tình huống giao thông được hệ thống ghi lại ởnhiều góc độ (toàn cảnh và cận cảnh biển số xe vi phạm) để phục vụ xử lý xe
vi phạm
Các camera quan sát: có nhiệm vụ ghi lại hình ảnh quá trình giao thôngtrên đoạn đường cần thu thập dữ liệu, hình ảnh sau đó được truyền theo thờigian thực về trung tâm giám sát - điều hành giao thông Camera giám sát cầnlắp đặt ở độ cao khoảng từ 7m trở lên, ống kính hướng xuống dưới ngược vớihướng chuyển động của xe, vùng quan sát tối thiểu khoảng 30m Các thông sốlắp đặt trên nhằm đảm bảo trong điều kiện giao thông bình thường (không tắcđường) hình ảnh các xe không bị chồng lấp lên nhau Với khoảng cách 30mđường, dùng camera có tốc độ ghi 24hình/s, đảm bảo cho ta có thể ghi đượctối thiểu 48 khung hình của xe chạy tốc độ 50km/h (27m/s)
Mạng cáp quang: để truyền tín hiệu video chất lượng cao cần mạngtruyền thông có băng thông lớn, ngoài ra khoảng cách từ vị trí đặt camera vềtrung tâm thường rất xa nên cáp quang là phương tiện truyền dẫn phù hợpnhất để kết nối các camera và các hệ thống tại trung tâm
Trang 16Hệ thống lưu trữ, chuyển mạch và hiển thị tín hiệu video tại trung tâm:
Số lượng camera được kết nối với trung tâm thường rất nhiều nên cần một hệthống lưu trữ có dung lượng ổ đĩa cứng lớn, ngoài ra còn cần đến các thiết bịlưu trữ dự phòng ra băng từ, đĩa quang Hệ thống chuyển mạch hoạt động ởtốc độ cao, thuận tiện cho người sử dụng Các màn hình lớn có thể đồng thờihiển thị hình ảnh từ nhiều camera
Hình 1.9: Cấu trúc vật lý của hệ thống thu thập dữ liệu giao thông trên
T r u n g t â m đ i ề u h à n h g i a o t h ô n g
Camera Quan sát (Thu thập dữ liệu GT
và phát hiện vi phạm)
Camera Chụp hình
xe vi phạm
Trang 17Phần mềm xử lý ảnh: Xử lý tín hiệu video để thu thập thông tin về dòngphương tiện giao thông.Về mặt lý thuyết, hệ thống xử lý ảnh có thể cung cấpcác thông tin như số lượng, chủng loại xe, lưu lượng, mật độ và tốc độ củadòng xe Ta có thể mô tả hoạt động của hệ thống một cách đơn giản như sau:Camera được dùng để ghi hình dòng giao thông trên đoạn đường cần giámsát Hình ảnh được truyền về máy tính qua mạng truyền thông dưới dạng mộtchuỗi liên tiếp các khung hình Tại máy tính diễn ra quá trình xử lý từngkhung hình, đối với mỗi khung hình, quá trình xử lý bắt đầu từ việc phát hiệncác xe đi vào vùng quan sát, khi phát hiện có xe mới chương trình kích hoạtchức năng đếm và nhận dạng để phân loại xe, kết quả thực hiện chức năngnày cho ta số lượng và chủng loại các xe Sau đó chương trình sẽ thực hiệnchức năng bám đối tượng để xác định quỹ đạo chuyển động của xe trong vùngquan sát, từ đó xác định được quãng đường và tốc độ chuyển động của xe.Ngoài ra bằng các phép toán thống kê ta có thể xác định được các thông tinkhác như mật độ trung bình, tốc độ trung bình của dòng xe và lưu lượng xetrong vùng quan sát Các chức năng chính của phần mềm XLA được minhhọa trong Hình 1.10.
Trang 18Hình 1.10: Các chức năng chính của hệ thống
Cơ sở dữ liệu: Lưu các số liệu về hệ thống giao thông trong đó có kếtquả của phần mềm xử lý ảnh Các số liệu này sẽ được sử dụng cho các chứcnăng điều khiển, điều hành và giám sát giao thông
Các chức năng chính của phần mềm XLA bao gồm:
- Thu nhận và tiền xử lý ảnh: Thu nhận hình ảnh từ camera quan sát,chuyển đổi ảnh sang định dạng bitmap RGB, thay đổi kích thước ảnh theo yêucầu của các thuật toán xử lý Thực hiện các phép lọc nhằm loại bỏ nhiễu, tăngcường chất lượng ảnh
làn trái phép
Phát hiện xe vi phạm luật giao thông
Phần mềm xử lý ảnh
Camera quan
sát
Hệ thống truyền
Trang 19- Phát hiện xe: Sử dụng các thuật toán phát hiện chuyển động để pháthiện xe trong ảnh Đi kèm chức năng phát hiện xe là các chức năng cập nhậtảnh nền, xác định ngưỡng cường độ sáng của các điểm ảnh Nội dung nàyđược trình bày chi tiết trong chương 3, 4, 5 báo cáo phân tích thiết kế hệthống tự động thu thập thông tin giao thông bằng camera
- Nhận dạng xe: Phân loại xe thành 3 nhóm: xe máy, ôtô con và ôtô to.Nội dung chi tiết trình bày trong chương 6 báo cáo phân tích thiết kế hệ thống
tự động thu thập thông tin giao thông bằng camera
- Bám xe: Xác định quỹ đạo chuyển động của xe trong vùng quan sát.Nội dung chi tiết trình bày trong chương 6 báo cáo phân tích thiết kế hệ thống
tự động thu thập thông tin giao thông bằng camera
- Phát hiện xe chuyển làn trái phép: Trên cơ sở theo dõi được quỹ đạochuyển động của xe, phần mềm sẽ xác định được xe có chuyển làn trái phéphay không
- Phát hiện xe chạy quá tốc độ: Thông tin về quỹ đạo chuyển động cho
ta biết độ dài quãng đường xe đi được trong khoảng thời gian bị theo dõi, từ
đó tính được tốc độ di chuyển của xe để xác định xe có chạy quá tốc độ haykhông
- Phát hiện xe vi phạm luật giao thông: Tổng hợp các thông tin về tìnhtrạng vi phạm luật giao thông theo thời gian thực Cung cấp thông tin về vị trí
xe vi phạm luật cho chức năng điều khiển camera ghi hình xe vi phạm
- Điều khiển camera ghi hình xe vi phạm: Điều khiển camera quay,quét, zoom ghi hình đúng vị trí, thời điểm đảm bảo chụp được biển số xe viphạm
- Cảnh báo có xe vi phạm luật giao thông: Phát tín hiệu thông báo chongười điều hành khi có tình huống xe vi phạm luật giao thông
- Lưu trữ, xử lý thông tin về tình huống vi phạm: Lưu trữ hình ảnh xephạm luật, hình thức, thời gian vi phạm, đồng thời xác định các hình thức vàmức xử phạt
Trang 20- Thống kê số liệu: Module thống kê số liệu có chức năng tính toán các
số liệu thống kê bao gồm: Số lượng xe, thành phần, mật độ, lưu lượng, tốc độ
dòng xe
1.2.2 Hệ thống thu thập dữ liệu giao thông trong vùng đô thị
Khác với dòng giao thông trên đường cao tốc, giao thông trong khu đôthị có một số đặc điểm chính như: thành phần dòng xe đa dạng, mật độ xecao, xe máy chiếm tỷ lệ lớn, tốc độ xe không đồng đều, tại các nút giao thông
có nhiều luồng chuyển động, vùng quan sát của camera bị hạn chế và chịunhiều ảnh hưởng bất lợi từ cây xanh và các công trình xây dựng trên đường.Các đặc điểm nêu trên làm cho việc ứng dụng xử lý ảnh để giám sát giaothông trong khu đô thị khó khăn hơn trên đường cao tốc
Trong khuôn khổ đề tài theo Nghị định thư với Nhật Bản do Viện Ứngdụng Công nghệ chủ trì năm 2014, bài toán thu thập dữ liệu giao thông bằngXLA trong vùng đô thị đã được giải quyết theo hướng không đếm số lượng xe
và đo tốc độ của từng xe, thay vào đó hệ thống chỉ tính các tham số thống kêcủa dòng xe như diện tích đường bị xe chiếm dụng và tốc độ trung bình củadòng xe Hệ thống này được xây dựng theo cấu trúc phân tán như được minhhọa trong Hình 1.11
Hình 1.11: Cấu trúc hệ thống theo mô hình xử lý tại chỗ
Trung tâm điều hành giao thông
Camera
Máy tính nhúng Chạy Linux OS Cài phần mềm xử lý anh
Trang 22CHƯƠNG 2 CÁC KỸ THUẬT XỬ LÝ ẢNH TRONG GIÁM SÁT GIAO THÔNG 2.1 Tổng quan
Để phát hiện và phân loại các phương tiện giao thông qua camera giámsát, trước hết ta cần thực hiện quá trình phân tích hình ảnh nhận được từcamera để phát hiện và phân loại phương tiện Thông thường quá trình nàybao gồm hai giai đoạn chính: (1) trích rút đặc trưng từ ảnh và (2) phát hiện vàphân lớp đối tượng trên cơ sở các đặc trưng thu được từ ảnh Quá trình nàyđược minh họa trong hình dưới theo các cấp độ phức tạp khác nhau, trong tất
cả các cấp độ, bước cuối cùng là khâu phát hiện và phân lớp đối tượng(classifier)
Hình 2.1: Độ phức tạp của bài toán phân lớp đối tượng truyền thống Trích rút đặc trưng từ ảnh
Đặc trưng trên ảnh có thể đơn giản là tập hợp các điểm ảnh đặc biệt (cómàu, cường độ sáng khác biệt so với các điểm lân cận, điểm này thường làgóc hoặc cạnh của một đối tượng trên ảnh) Đặc trưng cần tìm cũng có thể làcác cấu trúc phức tạp hơn như: một vùng ảnh trong đó các điểm ảnh liên kếtvới nhau theo một nguyên tắc nào đó (phân bố vị trí theo nguyên tắc nhất địnhhoặc có cùng quy luật thay đổi cường độ sáng theo một hướng nhất định…)
Trang 23Phát hiện và phân lớp đối tượng
Bước tiếp theo, các đặc trưng tìm thấy trên ảnh sẽ được so sánh với một
bộ đặc trưng mẫu để phát hiện và phân loại các đối tượng Bộ đặc trưng mẫunày được xây dựng thông qua các kỹ thuật máy học trên các tập dữ liệu mẫucho trước Trong các phần tiếp theo của chương này, đề tài sẽ trình bày chitiết về một số kỹ thuật trích rút đặc trưng và phân lớp đối tượng phù hợp vớibài toán thu thập dữ liệu giao thông
2.2 Mẫu nhị phân cục bộ (LBP - Local Binary Pattern)
Mẫu nhị phân cục bộ (LBP - Local Binary Pattern) là một phương phápgắn nhãn cho các điểm ảnh (pixel), được Timo Ojala giới thiệu vào năm 1996
để giải quyết bài toán phân lớp kết cấu (texture classification [1]) Trongphiên bản đầu tiên, giá trị LBP của một điểm ảnh được tính trên cơ sở thamchiếu đến 8 điểm lân cận Cụ thể là:
Giá trị của pixel trung tâm sẽ được so với với 8 điểm ảnh xung quanh
nó, nếu giá trị tại điểm lân cận nào lớn hơn giá trị tại tâm thì gán nhãn 1 chođiểm đó, ngược lại gán nhãn 0 (Hình 2.2)
- P là số điểm lân cận của pixel (xc,yc)
- s là hàm dấu được xác định như sau:
Trang 24s(x )={1 if x ≥ 0
0 else
Hình 2.3 minh họa các kết quả điển hình khi thực hiện toán tử LBP
Hình 2.3: Các trường hợp điển hình trong kết quả của LBP
Chuỗi nhị phân tạo ra từ các nhãn, lấy theo chiều kim đồng hồ nhưminh họa trong Hình 2.2 được gọi là pattern, như vậy với 8 điểm lân cận, mộtđiểm ảnh sẽ có 28 = 256 pattern
Tiếp theo ta cần xây dựng vector histogram của các pattern cho ảnh đầuvào Số chiều của vector histogram của một pattern là 256, có thể giảm sốchiều cho vector này bằng cách sau:
Chia các pattern thành hai loại uniform và non-uniform:
Một pattern được gọi là uniform nếu nó chứa nhiều nhất 2 lần đảo bit(transitions) từ 0 sang 1 hoặc từ 1 sang 0 (với thứ tự các bit trong patternduyệt theo vòng tròn)
non-256 pattern, trong đó có 58 uniform, khi đó số chiều của LBP feature là 59
Việc tính các đặc trưng LBP của ảnh được minh họa trong Hình 2.4.Gồm các bước sau:
Trang 25Hình 2.4: Tính đặc trưng LBP của ảnh
- Ảnh ban đầu được chia thành các vùng (a),
- Mỗi vùng lại được tách thành các ảnh đơn sắc (b gồm các thành phầnmàu X, Y, T),
- Tính vector histogram cho pattern của từng vùng ảnh đơn sắc (c),
- Cuối cùng tổng hợp các vector histogram ta được bộ mô tả(description) của đối tượng
Mở rộng của phương pháp LBP
Trong kết quả nghiên cứu công bố năm 2002 của Ojala, vùng lân cận
có thể được mở rộng lớn hơn 8 điểm và được ký hiệu (P, R) Trong đó: P làđiểm cách đều nhau nằm trên đường tròn bán kính R (Hình 2.5)
Hình 2.5: Tập hợp các điểm lân cận.
Trang 26Khi đó, với pixel cho trước (xc, yc), các điểm lân cận (xp, yp) được xácđịnh như sau:
LBP được sử dụng để giải quyết một số bài toán sau [3]:
- Phân lớp kết cấu (Texture classification)
- Phân tích chuyển động (Motion Analysis)/Bám đối tượng (Tracking)/tách ảnh nền (Background subtraction)
- Phát hiện và nhận dạng đối tượng (Human detection/recognition,Object detection/recognition)
- Sinh trắc học (Biometrics: eye localization, iris recognition, fingerrecognition, palmprint recognition, gait recognition and facial ageclassification)
2.3 Đặc trưng HoG (Histogram Of Oriented Gradient)
HoG được Navneet Dalal và Bill Triggs (INRIA-France) giới thiệu năm
2005 để giải quyết bài toán phát hiện người (human detection) HoG dựa trên kếthợp và khắc phục điểm yếu của Shape Context và SIFT để tạo ra tập hợp các đặctrưng mô tả cạnh (edge descriptor) HoG được thực hiện bằng cách chia ảnhthành các vùng nhỏ (dense grid) sau đó tính histogram gradient của từng vùng.HOG có hai loại: static HOG (cho ảnh tĩnh) và motion HOG (cho video)
Static HOG
Gồm 4 biến thể (Hình 2.6): R - HOG (rectangular HOG), C - HOG(circular HOG), center - surround HOG, R2 - HOG Các phiên bản static
Trang 27HOG khác nhau ở cách lấy cell trong một block mô tả hai kiểu lấy HOG: HOG (a) và C-HOG (có 2 kiểu cho C-HOG là chia thành những cell nhỏ đốivới cell trung tâm (b) và không chia (c))
- Center-Surround HOG: cách này không đánh trọng số Gaussian nêncác cell chỉ được chuẩn hóa một lần, vì vậy đây là phiên bản tính toán nhanhcủa HOG
- R2-HOG: bên cạnh gradient, tính toán thêm đạo hàm bậc hai (secondorder derivative), hai kết quả (histogram) này sẽ được nối lại với nhau
Motion HOG:
Tương tự như static HOG, tuy nhiên motion HOG thay giai đoạn tínhtoán gradient bằng hai bước tính toán optical flow cho hai frame liên tiếp rồitính toán differential flow của hai ảnh flow đó
Các bước thực hiện của phương pháp HoG như sau:
- Chuẩn hóa (normalization) gamma/color: ảnh đầu vào được chuẩnhóa bằng phương pháp Square Root Gamma Correction cho cả 3 kênh màu
- Tính vector gradient của các điểm ảnh:
Trang 28Gradient tại điểm (x, y) là vector chỉ hướng cường độ sáng tăng dần,vector này được xác định như sau:
a) Tính toán block descriptor
a.1 Ảnh đầu vào được phân chia thành các block, các block tiếp tục
được chia nhỏ thành các cell
a.2 Gradient của mỗi pixel thuộc cùng một cell sẽ được nhóm lại theo
góc pha
a.3 Gradient của mỗi pixel trong mỗi cell sẽ được tổng hợp vào
histogram của cell đó (sử dụng phương pháp nội suy tuyến tính 3 chiều linear interpolation)
(tri-a.4 Các histogram hướng của các cell trong block sẽ được ghép lại với
nhau
b) Chuẩn hóa histogram của block
b.1 Dùng chuẩn hóa L2-Hys hoặc L1-sqrt cho mỗi block
b.2 Tổng hợp tất cả các histogram đã chuẩn hóa của các block lại với
nhau tạo thành descriptor vector
Trang 29Hình 2.7: Các bước tính toán HOG Các tính chất của HOG
Phân biệt HoG với SIFT
- Giống nhau:
R-HOG vs SIFT giống nhau ở các bước thực hiện: chia ảnh thành cácblock và cell, tính histogram cho mỗi cell sau đó chuẩn hóa Do cách sử
Trang 30dụng histogram nên cả 2 sẽ có khả năng chịu được sự sai lệch nhỏ về vị trívùng mô tả.
- Khác nhau:
HOG và SIFT phục vụ cho hai bài toán khác nhau: HOG dùng để mô tảmột đối tượng trong ảnh phục vụ giải quyết bài toán phát hiện đối tượng.Trong khi đó, SIFT dùng để mô tả một điểm đặc trưng trong bài toánmatching (so sánh khớp các điểm trên hai ảnh khác nhau được tạo ra từ cácphép biến đổi transition, rotation, scale) nên có thể thấy những điểm khácbiệt cơ bản giữa HOG và SIFT như sau:
+ SIFT có chuẩn hóa hướng chính nên bất biến đối với phép biến đổirotation, trong khi đó HOG không có các tính chất này
+ SIFT bất biến đối với các phép biến đổi transition, scale bằng khảnăng phát hiện điểm đặc trưng (interest point detector) trong khi HOG bấtbiến đối với transition, scale nh ờ cơ chế sub-window
2.4 Đặc trưng Haar-like
Phương pháp phát hiện đối tượng dựa trên đặc trưng Haar-like đượcViola và Jones công bố năm 2001 [17] Mỗi đặc trưng Haar–like là sự kết hợpcủa hai hay ba hình chữ nhật "trắng" và "đen" như trong hình sau:
Hình 2.8: Đặc trưng Haar-like cơ bản
Để sử dụng các đặc trưng này vào việc xác định khuôn mặt, 4 đặc trưngHaar-like cơ bản được mở rộng ra, và được chia làm 3 tập đặc trưng như sau:
1 Đặc trưng cạnh (edge features):
2 Đặc trưng đường (line features):
Trang 313 Đặc trưng xung quanh tâm (center-surround features):
Hình 2.9: Các đặc trưng mở rộng của các đặc trưng Haar-like cơ sở
Giá trị của đặc trưng Haar-like là sự chênh lệch giữa tổng mức xám củacác pixel thuộc các vùng đen và tổng mức xám của các pixel thuộc vùng trắngnhư trong công thức sau:
Integral Image tại vị trí (x, y) có giá trị bằng tổng các giá trị pixel nằmtrong hình chữ nhật được định bởi góc trái trên là (0, 0) và góc phải dưới là(x, y):
Hình 2.10: Cách tính Integral Image của ảnh
Việc tính tổng các giá trị mức xám của một vùng bất kỳ bằng phươngpháp Integral Image được minh họa qua ví dụ sau:
Yêu cầu: tính tổng giá trị mức xám của vùng D trong Hình 2.11
Ta có thể tính như sau: D = A + B + C + D – (A+B) – (A+C) + A
Trang 32Với A + B + C + D chính là giá trị tại điểm P4 trên Integral Image,tương tự như vậy A+B là giá trị tại điểm P2, A+C là giá trị tại điểm P3, và A
là giá trị tại điểm P1 Vậy ta có thể viết lại biểu thức tính D ở trên như sau:
P1+ P4–P2–P3 = A + (A + B + C + D) – (A + B) – (A + C) = D
Vậy ta có: D = P1 + P4 – P2 – P3
Hình 2.11: Ví dụ cách tính nhanh các giá trị mức xám của
vùng D trên ảnh Đặc trưng Haar-like được sử dụng như thế nào?
Trong trường hợp đơn giản nhất, có thể coi việc phát hiện khuôn mặtthực chất là quét ảnh đầu vào bằng một cửa sổ con x chứa các đặc trưng Haar-like như Hình 2.12
Hình 2.12: Phát hiện mặt người bằng đặc trưng Haar-like
Ứng với một đặc trưng Haar-like hi(x), một bộ phân lớp yếu (weakclassifier) fi(x) được định nghĩa như sau:
Trang 33p là hệ số với ý nghĩa là hàm dấu.
Ta hiểu công thức này đơn giản như sau:
- Nếu giá trị của đặc trưng Haar-like thứ i tại cửa sổ con x lớn hơn mộtngưỡng nào đó thì trong đó có thể chứa ảnh khuôn mặt
- Nếu tất cả các bộ phân lớp fi(x) đều cho kết quả bằng một trên cửa sổcon x thì kết luận đó là ảnh khuôn mặt
Việc kết hợp các bộ phân lớp yếu để tạo nên một bộ phân lớp mạnhtheo nguyên tắc trên được gọi là Boosting
Thuật toán Adaboost (Adaptive boost)
Adaboost là một thuật toán sử dụng kỹ thuật Boosting được đưa ra bởi
Freund và Schapire vào 1996 Điểm cải tiến của Adaboost là ta sẽ gán cho mỗi mẫu một trọng số Ý nghĩa của việc gán trọng số như sau:
Ở mỗi vòng lặp của quá trình huấn luyện, khi một bộ phân lớp yếu fi đãđược xây dựng, ta sẽ tiến hành cập nhật trọng số cho các mẫu Việc cập nhậtnày được thực hiện theo nguyên tắc: tăng trọng số của các mẫu bị phân lớp saibởi bộ phân lớp yếu fi và giảm trọng số của các mẫu được phân lớp đúng bởifi
Bằng cách này, ở vòng lặp kế tiếp, ta sẽ xây dựng bộ phân lớp yếu fi+1theo hướng:
Tập trung vào các mẫu bị phân lớp sai bởi bộ phân lớp yếu trước
đó Như vậy, các bộ phân lớp yếu tạo thành một chuỗi, trong đó bộ phân lớp
yếu sau sẽ tập trung giải quyết các mẫu bị phân lớp sai bởi các bộ phân lớpyếu trước đó Cuối cùng, để có được bộ phân lớp mạnh, ta sẽ kết hợp tuyếntính các bộ phân lớp yếu đã tìm được lại với nhau theo công thức sau:
Trang 34Giả thiết, với mẫu xi tại bước thứ t ta tạo được bộ phân lớp ký hiệu h(xi)
và trọng số của bộ phân lớp này là αt Khi đó sai số tại trạng thái t được xácđịnh như sau:
- ft(x) = αth(x): là một bộ phân lớp yếu cần tìm tại lần lặp thứ t
ft(x) tìm được phải làm cho Et đạt giá trị cực tiểu, khi đó ft(x)sẽ được tổng hợp vào bộ phân lớp F
Quá trình huấn luyện:
Ta có các tập đầu vào sau: {(x1, y1),…, (xN,yN)} trong đó mỗi cửa sổ con xi tương ứng với một giá trị yi{-1, 1}, với ý nghĩa như sau:
y i={1 nếu x i làảnh đối tượng cần tìm(khuôn mặt)
−1 nếu xi không phải ảnh đốitượng cần tìm
Ta cần tìm một tập các bộ phân lớp yếu {k1, …, kL}, mỗi bộ này là một ánh xạ từ tập đầu vào {x1, …, xN} đến tập ra {-1, 1} theo công thức sau:
k j(x i)={1 → x i làảnh đối tượngcần tìm(khuôn mặt )
−1 → xi không phảiảnh đối tượng cầntìm
Giả sử sau m-1 bướ ặp ta tổng hợp được bộ phân lớp Cc l p ta t ng h p đổng hợp được bộ phân lớp C ợ ược b phân l p Cộ phân lớp C ớ m-1(xi) theo
bi u th c sau:ể ức sau:
C(m−1)(x i)=α1k1(x i)+⋯+α m−1 k m−1(x i)
Tương t , đ n bự ế ướ ặp ta tổng hợp được bộ phân lớp Cc l p m ta ta c n tính b phân l p Cần tính bộ phân lớp C ộ phân lớp C ớ m(xi) theo
bi u th c sau:ể ức sau:
Trang 35Ta phân chia t ng trên thành hai ph n, ph n th nh t tổng hợp được bộ phân lớp C ần tính bộ phân lớp C ần tính bộ phân lớp C ức sau: ấ ương ngức sau:
v i t p d li u m u đớ ập dữ liệu mẫu được bộ phân lớp k ữ ệ ẫu được bộ phân lớp k ược b phân l p kộ phân lớp C ớ m cho k t qu phân l p đúngế ả ớ(t c là ức sau: y i k m(x i)=1), ph n th 2 tần tính bộ phân lớp C ức sau: ương ng v i t p d li u m u đức sau: ớ ập dữ liệu mẫu được bộ phân lớp k ữ ệ ẫu được bộ phân lớp k ược bộ phân lớp Cphân l p kớ m cho k t qu phân l p sai t c là ế ả ớ ức sau: (y¿¿i k m(x i)=−1) ¿
α m c n tìm là nghi m c a ần tính bộ phân lớp C ệ ủa bộ phâm lớp C phương trình sau:
w i(m)