TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM NHẬT LINH
NGHIÊN CỨU PHƯƠNG PHÁP PHÁT HIỆN HÀNH VI BẤT THƯỜNG TRONG ĐÁM ĐÔNG
SỬ DỤNG BẢN ĐỒ MẬT ĐỘ NHIỆT
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
HÀ NỘI - 2021
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM NHẬT LINH
NGHIÊN CỨU PHƯƠNG PHÁP PHÁT HIỆN HÀNH VI BẤT THƯỜNG TRONG ĐÁM ĐÔNG
SỬ DỤNG BẢN ĐỒ MẬT ĐỘ NHIỆT
Ngành: Công nghệ thông tin Chuyên ngành: Khoa học máy tính
Mã số: 8480101.01
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. Tạ Việt Cường
NGƯỜI ĐỒNG HƯỚNG DẪN KHOA HỌC: PGS.TS Lê Thanh Hà
HÀ NỘI - 2021
LỜI CAM ĐOAN
Tôi xin cam đoan các kết quả trong luận văn này là do tôi thực hiện dưới sự hướng dẫn của TS Tạ Việt Cường và PGS TS Lê Thanh Hà.
Tất cả các kiến thức liên quan được sử dụng trong luận văn đều được trích dẫn nguồn gốc một cách rõ ràng tại danh mục tài liệu tham khảo trong luận văn.
Luận văn không sao chép tài liệu, công trình nghiên cứu của người khác mà không chỉ rõ về mặt tài liệu tham khảo. Các kết quả thực nghiệm trong luận văn đều thực sự được tiến hành thực tế.
Nếu có bất kỳ sự gian lận nào, tôi xin hoàn toàn chịu trách nhiệm trước hội đồng, cũng như kết quả luận văn tốt nghiệp của mình.
Hà Nội, ngày tháng năm 2021 Học viên
LỜI CẢM ƠN
Đầu tiên, tôi muốn gửi lời cảm ơn chân thành nhất tới TS. Tạ Việt Cường và PGS. TS. Lê Thanh Hà, là những người đã luôn tận tình hướng dẫn tôi nghiên cứu đề tài này. Nếu không có sự định hướng, những lời dạy bảo của các thầy thì luận văn này của tôi rất khó có thể hoàn thiện được.
Tôi xin cảm ơn Khoa công nghệ thông tin, Trường Đại học Công nghệ đã tạo điều kiện, môi trường thuận lợi cho học viên trong quá trình học tập, nghiên cứu và hoàn thiện luận văn thạc sĩ.
Tôi xin bày tỏ lòng kính trọng và biết ơn sâu sắc tới các thầy, cô, bạn bè trong khoa Công nghệ thông tin, ngành Khoa học máy tính, đã luôn nhiệt tình giúp đỡ tôi trong suốt quá trình học tập và nghiên cứu.
Cuối cùng, tôi muốn gửi lời cảm ơn tới gia đình, người thân, những người luôn quan tâm, động viên để giúp tôi có động lực học tập, nghiên cứu và hoàn thiện đề tài nghiên cứu này.
Bước đầu đi vào nghiên cứu, tìm hiểu các vấn đề cho việc “Phân tích hành vi bất thường của đám đông sử dụng bản đồ mật độ nhiệt” với kiến thức còn hạn chế, do vậy tôi không tránh khỏi những thiếu sót trong luận văn này. Tôi rất mong nhận được những ý kiến đóng góp của các thầy cô và bạn bè để hoàn thiện luận văn hơn nữa.
Tôi xin chân thành cảm ơn!
TÓM TẮT
Trong lĩnh vực camera giảm sát, việc theo dõi và phân tích hành vi đám đông là một nhiệm vụ không hề dễ dàng. Do vấp phải các khó khăn khi giải quyết vấn đề về sự thay đổi quy mô, ánh sáng và mật độ đám đông nên các nghiên cứu về phân tích hành vi đám đông còn ít, các nghiên cứu phần nhiều đang dừng lại ở việc phát hiện có bất thường trong đám đông hay không như trong các nghiên cứu [15], [16], hoặc đếm số người hay theo dõi đối tượng trong đám đông [11]. Các nghiên cứu về hành vi đều tập trung vào hành vi của con người, kết quả này rất khó áp dụng để phân tích hành vi của cả đám đông. Do vậy, chúng tôi thực hiện nghiên cứu nhằm phát triển một phương pháp mới có thể phát hiện, phân loại chính xác hành vi bất thường trong đám đông dày đặc, đáp ứng nhanh với bài toán thực tế. Kết quả phân tích hành vi đám đông có thể ứng dụng trong một loạt các lĩnh vực mới, chẳng hạn như đảm bảo an toàn trong các sự kiện quy mô lớn, các địa điểm đông người như sân bay, nhà ga, bến xe…, lập kế hoạch khắc phục thảm họa và an toàn giao thông, giám sát đám đông cho các ứng dụng về an toàn và giám sát, tự động phát hiện các sự cố hoặc hành động bất thường trong đám đông.
Việc phân tích hành vi đám đông phải đối mặt với nhiều khó khăn hơn là phân tích hành vi của đối tượng riêng lẻ. Dữ liệu về đám đông là ít và thiếu hụt các ví dụ thực tế về những chủ đề cần được phát hiện trong khi dữ liệu có sẵn thường có chất lượng thấp do nhiều yếu tố ảnh hưởng như: nhiễu, góc quay camera, che khuất…
Trong nghiên cứu của mình, chúng tôi sẽ đánh giá phương pháp phát hiện hành vi bất thường trong đám đông với điều kiện ít dữ liệu và thích nghi tốt với thực tế, sử dụng bản đồ mật độ nhiệt và dòng chuyển động quang học. Để giải quyết vấn đề ít dữ liệu, chúng tôi kết hợp giữa bộ dữ liệu tổng hợp và bộ dữ liệu thực tế và dựa trên cơ sở đó để thử nghiệm và đánh giá các mô hình.
Từ khóa: hành vi đám đông, đám đông bất thường , bản đồ nhiệt, dòng chuyển động quang học, học sâu
MỤC LỤC LỜI CAM ĐOAN
LỜI CẢM ƠN TÓM TẮT
DANH MỤC THUẬT NGỮ
Chương 1: GIỚI THIỆU ... 1
1.1. Tổng quan bài toán ...1
1.2. Các vấn đề cần giải quyết ...3
1.3. Bố cục luận văn ...4
Chương 2: CÁC NGHIÊN CỨU LIÊN QUAN ... 6
2.1. Tổng quan về học sâu ...6
2.2. Mạng nơ-ron tích chập ...9
2.3. Mạng nơ-ron hồi quy ... 11
2.4. Mạng CSRNet ... 13
2.5. Mạng FlowNet ... 16
2.6. Kỹ thuật tăng cường dữ liệu ... 21
2.7. Các nghiên cứu liên quan ... 24
Chương 3: PHƯƠNG PHÁP ĐỀ XUẤT ... 26
3.1. Tổng quan ... 26
3.2. Phương pháp đề xuất ... 26
3.3. Mô hình mạng đề xuất ... 29
3.4. Áp dụng kỹ thuật tăng cường dữ liệu ... 31
Chương 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ ... 33
4.1. Tập dữ liệu sử dụng ... 33
4.2. Thông số mạng huấn luyện ... 36
4.3. Kết quả thực nghiệm ... 37
Chương 5: KẾT LUẬN ... 43
5.1. Các vấn đề đã giải quyết trong luận văn ... 43
5.2. Hướng nghiên cứu trong tương lai ... 43
TÀI LIỆU THAM KHẢO ... 44
DANH MỤC THUẬT NGỮ
Thuật ngữ Diễn giải
RGB Ảnh màu
CNN Mạng nơ-ron tích chập
RNN Mạng nơ-ron hồi quy
LSTM Mạng ghi nhớ phụ thuộc dài ngắn
MAE Mean absolute error/Sai số tuyệt đối trung bình
CSRNet Congested Scene Recognition Network
VGG-16 Mạng VGG 16 lớp
ResNet-18 Mạng ResNet 18 lớp.
GD Gradient Descent
SGD Stochastic Gradient Descent
MLP Multi Layer Perceptron/Mạng xếp chồng Perceptron
DANH MỤC BẢNG
Bảng 4.1: Thống kê dữ liệu tập pretrain ... 33
Bảng 4.2: Thống kê số lượng mẫu theo nhãn của tập pretrain ... 33
Bảng 4.3: Thống kê số lượng mẫu theo nhãn của tập thực tế ... 34
Bảng 4.4: Thống kê các bối cảnh trong tập dữ liệu thực tế ... 35
Bảng 4.4: PA1 chỉ sử dụng ảnh màu ... 39
Bảng 4.5: PA2 ảnh màu và bản đồ nhiệt ... 39
Bảng 4.6: PA3 sử dụng RGB và dòng quang ... 39
Bảng 4.7: PA4 ảnh màu, dòng quang học và bản đồ nhiệt ... 39
Bảng 4.8: Kết quả thực nghiệm phương án đề xuất ... 39
Bảng 4.9: Ma trận sai số cho trường hợp chỉ sử dụng kết quả huấn luyện trước, không đào tạo thêm trên tập thực tế ... 40
Bảng 4.10: Không sử dụng kết quả huấn luyện trước và đào tạo 10% tập thực tế. ... 41
Bảng 4.11: Có sử dụng kết quả huấn luyện trước và đào tạo 10% tập thực tế. ... 41
DANH MỤC HÌNH
Hình 1.1: Các hành vi bất thường trong đám đông ...2
Hình 1.2: Ví dụ về sự độ nhiễu cao của tập dữ liệu. ...4
Hình 2.1: Lịch sử phát triển của học máy (nguồn wikipedia) ...6
Hình 2.2: Cấu trúc mạng MLP ...7
Hình 2.3: Hoạt động của thuật toán Gradient Descent (nguồn wikipedia) ...8
Hình 2.4: Mảng ma trận RGB 6x6x3 (nguồn wikipedia) ...9
Hình 2.5: luồng CNN để xử lý hình ảnh đầu vào và phân loại các đối tượng9 Hình 2.6: Biểu đồ miêu tả về hiện tượng mất mát đạo hàm . ... 10
Hình 2.7: Residual block . ... 11
Hình 2.8: Kiến trúc chi tiết mạng nơ ron ResNet ... 11
Hình 2.9: Vòng lặp trong mạng RNN chuẩn (nguồn [23]) ... 13
Hình 2.10: Vòng lặp trong mạng LSTM (nguồn [23]) ... 13
Hình 2.11: Tích chập 3x3 với các hệ số giãn nở 1, 2, 3. ... 15
Hình 2.12: So sánh giữa tích chập giãn nở và max pooling, tích chập và upsampling. Bộ lọc Sobel 3x3 được sử dụng ở cả 2 trường hợp và hệ số giãn nở r=2. ... 16
Hình 2.13: Ví dụ về 2 loại dòng quang. ... 18
Hình 2.14: Luồng quang dày đặc của hoạt động đi bộ. ... 18
Hình 2.15: Tổng quan mô hình FlowNet (nguồn[4]). ... 19
Hình 2.16: Cấu trúc mạng mã hóa của FlowNetS và FlowNetCorr (nguồn[4]).. ... 20
Hình 2.17: Cấu trúc mạng giải mã của FlowNet (nguồn[4]). ... 21
Hình 2.18: Mối quan hệ giữa dữ liệu và hiệu quả mô hình trong học sâu (nguồn: [21]). ... 22
Hình 2.19: So sánh các phương pháp cải thiện dữ liệu. ... 23
Hình 2.20: Phân biệt các phương pháp tăng cường dữ liệu. ... 24
Hình 3.1: Chuyển động của đám đông ... 26
Hình 3.2: Luồng chuyển động của đám đông ... 27
Hình 3.3: Cảnh đám đông hoảng loạn và bản đồ nhiệt tương ứng ... 28
Hình 3.4: Cảnh đám đông xung đột và bản đồ nhiệt tương ứng ... 28
Hình 3.5: Phương pháp huấn luyện đề xuất ... 29
Hình 3.6: Mô hình mạng đề xuất. ... 30
Hình 3.7: Dữ liệu đầu vào của mạng huấn luyện. ... 30
Hình 3.8: Dữ liệu thay đổi qua các phép tăng cường dữ liệu ... 32
Hình 4.1: Hình ảnh trong tập MED ... 34
Hình 4.2: Một số hình ảnh trong tập dữ liệu thực tế ... 35
Hình 4.3: Tổ chức dữ liệu đào tạo . ... 35
Bảng 4.5: Thống kê các bối cảnh trong tập dữ liệu thực tế ... 37
Hình 4.4: Biểu đồ độ chính xác qua mỗi epoch. ... 40
Hình 4.5: Biểu đồ giá trị mất mát qua mỗi epoch. ... 40
Hình 4.6: Một số mẫu “Bình thường” đoán nhận thành “Hoảng loạn”. .... 41
Hình 4.7: Một số mẫu “Xung đột” đoán nhận thành “Hoảng loạn”. ... 42
Hình 4.8: Biểu đồ độ chính xác theo epoch với các kỹ thuật tăng cường dữ liệu ... 42
Chương 1: GIỚI THIỆU
1.1. Tổng quan bài toán
Phân tích hành vi là một trong những nhiệm vụ thách thức nhất trong lĩnh vực Thị giác máy tính (Computer Vision). Trong mảng phân tích hoạt động của con người, phân tích hành vi cá nhânnhận được nhiều sự chú ý hơn. Mặt khác, các phân tích dựa trên các cảnh đông người ít hơn đáng kể. Phân tích hành vi đám đông có thể có tác động lớn đến một loạt của các miền ứng dụng mới, chẳng hạn như trong an toàn công cộng nói chung, các sự kiện quy mô lớn, lập kế hoạch ứng phó với thiên tai và hoạt động giao thông vận tải. Giám sát một đám đông cho các ứng dụng giám sát và an toàn là thiết yếu trong các lĩnh vực đó. Tự động phát hiện các sự cố hoặc các hành vi hỗn loạn trong đám đông. Cụ thể hóa các khu vực bất thường là rất có giá trị đối với các cơ quan hữu quan.
Hành vi bình thường đề cập đến hành vi mong đợi/dự kiến ở cá nhân. Cách một người tương tác với những người khác, các hành vi của họ thường phù hợp với mong đợi của xã hội. Khi những kỳ vọng này và hành vi cá nhân là đồng bộ, hành vi được coi là bình thường. Trong mọi xã hội, có những kỳ vọng xã hội, chuẩn mực, giá trị, hơn thế nữa, v.v. quy định quy tắc ứng xử của mỗi cá nhân. Miễn là mọi người tuân thủ những điều này, hành vi của họ được coi là bình thường. Nếu một mẫu của hành vi đi ngược lại những gì được xã hội coi là bình thường, đây có thể được định nghĩa là hành vi bất thường [22]. Tương tự như vậy, chúng ta có thể định nghĩa những hành vi bất thường trong đám đông theo những hoàn cảnh cụ thể. Ví dụ ở nơi công cộng như đường phố, nhà ga, các hành vi được coi là bất thường là đánh nhau, đuổi nhau, chạy trốn…, trên khán đài của sân vận động, các cổ động viên không theo dõi cổ vũ các vận động viên mà xô xát với nhau hoặc với lực lượng chức năng. Đó là các ví dụ về hành vi bất thường trong đám đông.
Bình thường Đám đông xung đột Đám đông hoảng loạn Hình 1.1: Các hành vi bất thường trong đám đông
Phân tích cảnh đám đông phải đối mặt với nhiều thách thức hơn so với hoạt động cá nhân của con người do nhiều nguyên nhân. Với mật độ của những người được tìm thấy trong những cảnh như vậy thường gây khó khăn cho các thuật toán để xác định chính xác các thực thể riêng lẻ. Việc xác định các bộ phận cơ thể và chúng còn khó hơn các mô hình chuyển động tương ứng để phân loại hoạt động cá nhân của mỗi người tham gia. Hành vi của đám đông thường thể hiện các hành vi nổi cộm và các hoạt động tự tổ chức, đặc biệt là trong các sự kiện bất thường. Hơn nữa, những nội dung mà chúng ta tiếp cận được thường có chất lượng thấp và thiếu hụt các sự kiện bất thường tiêu biểu trong đám đông, vì chúng chỉ được cung cấp cho các cơ quan chức năng vì lý do pháp lý và quyền riêng tư cá nhân.
Trong khuôn khổ nghiên cứu này, chúng tôi sẽ nghiên cứu và cố gắng phân loại 3 loại hành vi trong đám đông, đó là: đám đông bình thường, đám đông xung đột, đám đông hoảng loạn. Đám đông xung đột là có xung đột giữa 2 hoặc nhiều người trong cảnh đông đúc. Đám đông hoảng loạn là hiện tượng đám đông sợ hãi, chạy trốn khỏi sự đe dọa của một sự kiện nào khác như thiên tai, hỏa hoạn, khủng bố…
Nghiên cứu này trình bày một phương pháp luận mới để phát hiện sự kiện bất thường trong cảnh đông đúc và đáp ứng nhanh hơn khi áp dụng với dữ liệu thực tế với điều kiện ít dữ liệu. Để đạt được mục đích này, một kiến trúc mạng nơ-ron mới được phát triển, kết hợp giữa ảnh, bản đồ mật độ đám đông và thông tin luồng quang học để xác định các sự kiện bất thường trong đám đông. Để huấn
luyện mạng, một tập dữ liệu tổng hợp chứa các cảnh có hành vi bất thường được sử dụng. Để đánh giá và kiểm tra phương pháp, chúng tôi đã xây dựng một tập dữ liệu thực tế, bằng cách thu thập từ các nguồn trên Internet.
1.2. Các vấn đề cần giải quyết
Vấn đề 1: Sự thiếu hụt của dữ liệu thực tế: Dữ liệu về hành vi bất thường trong đám đông trên các nguồn công khai phần lớn được đưa lên bởi các cá nhân, thu lại được bằng thiết bị cá nhân. Nguồn dữ liệu này thường ít và rất khó bóc tách, thu thập. Dữ liệu từ các camera giám sát đặt tại các địa điểm công cộng như quảng trường, sân bay, bến tàu… thường được bảo mật và sử dụng nội bộ. Chỉ có các bộ phận có thẩm quyền hoặc các cơ quan chức năng mới có quyền truy cập, do đó để tiếp cận được các dữ liệu từ nguồn này là rất khó khăn và gần như không thể. Do đó việc tập hợp dữ liệu để sử dụng trong luận văn gặp rất nhiều khó khăn.
Vấn đề 2: Chất lượng của dữ liệu: Các video tập hợp được có sự đa dạng về thông số như góc quay, độ zoom, độ phân giải, bitrate, hệ màu... Các video tập hợp được là đến từ nhiều nguồn, ghi lại bởi nhiều thiết bị như camera giám sát, điện thoại thông minh, máy quay cá nhân, các bản tin trên truyền hình…, nên các góc quay không đồng nhất. Góc quay ở camera giám sát thì cố định, còn ở thiết bị cá nhân thường ở góc nhìn thứ nhất, bị thay đổi liên tục theo người quay. Việc tải video lên mạng cũng đã làm chất lượng của các video này bị giảm đi đáng kể, độ phân giải của các video không quá cao, thậm chí rất thấp. Ngoài ra, sự kiện bất thường có thể xảy ra ở mọi lúc, mọi nơi, mọi hoàn cảnh nên các yếu tố như thời tiết, ánh sáng là rất đa dạng, có thể xuất hiện cả những đối tượng không liên quan trong khung hình mà khi thực hiện phân tích phải loại bỏ để thu được kết quả tốt nhất.
Số lượng điểm ảnh không đồng đều
Góc quay không đồng nhất
Sai khác về ánh sáng
Hình 1.2: Ví dụ về sự độ nhiễu cao của tập dữ liệu.
Vấn đề 3: Yêu cầu dữ liệu lớn: Cách giải quyết bài toán của luận án dựa trên các mô hình học sâu, tích chập nên cần rất nhiều dữ liệu để huấn luyện, cộng thêm việc khan hiếm về dữ liệu như đã đề cập ở vấn đề 1. Để xử lý vấn đề này, luận án sử dụng các kiến thức về thích ứng miền (domain adaptation) để giảm thiểu dữ liệu cần thu thập. Ngoài ra, nghiên cứu cũng như sử dụng các phương pháp tăng cường dữ liệu để làm đa dạng dữ liệu huấn luyện.
Vấn đề 4: Đáp ứng nhanh với dữ liệu thực tế: Cảnh đám đông trên thực tế rất phong phú. Chuyển động của đám đông thay đổi nhanh và không thể đoán trước được. Các hành vi bất thường trong đó cũng rất đa dạng ở cách thể hiện, do đó cần một phương pháp để có thể áp dụng với bối cảnh mới mà không yêu cầu quá nhiều dữ liệu.
1.3. Bố cục luận văn
Luận văn chia thành 5 phần cụ thể như sau:
Chương 1: Giới thiệu. Chương này trình bày về bài toán nghiên cứu phương pháp phát hiện hành vi bất thường trong đám đông sử dụng bản đồ mật độ nhiệt, những khó khăn trong quá trình thực hiện bài toán.
Chương 2: Các nghiên cứu, kiến thức liên quan đến luận văn. Chương này bàn luận đến những lý thuyết, các nghiên cứu hay các hệ thống được dùng trong luận văn hoặc có liên quan tương tự được tham khảo.
Chương 3: Phương pháp đề xuất. Chương này trình bày hướng tiếp cận bài toán, cách huấn luyện đề xuất và mô hình mạng đề xuất.
Chương 4: Thực nghiệm và đánh giá. Chương này bàn luận đến quá trình cài đặt cũng như các kết quả thực nghiệm và đánh giá mô hình.
Chương 5: Kết luận. Chương này đề cập đến các vấn đề đã giải quyết và hướng nghiên cứu trong tương lai.
Chương 2: CÁC NGHIÊN CỨU LIÊN QUAN
2.1. Tổng quan về học sâu
Trí tuệ nhân tạo là một ngành thuộc lĩnh vực khoa học máy tính. Là tri thức do con người lập trình tạo nên với mục đích giúp máy tính có thể tự động thực hiện các hành vi thông minh như con người, ví dụ như xe điện tự hành của Tesla, hệ thống tự động nhận diện khuôn mặt của Facebook, trợ lý ảo của Google, Microsoft, hệ thống gợi ý mua hàng....Học Máy là một lĩnh vực nằm trong Trí tuệ nhân tạo, nó có khả năng tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải được lập trình cụ thể. Khi mà khả năng tính toán của các máy tính được cải thiện rất nhiều về hiệu suất và lượng dữ liệu khổng lồ được thu thập, Học Máy đã tiến thêm một bước dài và một lĩnh vực mới được ra đời gọi là Học Sâu. Học Sâu đã giúp máy tính thực thi những việc tưởng chừng như không thể vào 10 năm trước: phân loại số đối tượng khác nhau rất lớn trong các bức ảnh, tự tạo chú thích cho ảnh, bắt chước giọng nói và chữ viết tay của con người, giao tiếp với con người, chơi cờ, chơi các trò chơi điện tử....
Hình 2.1: Lịch sử phát triển của học máy (nguồn wikipedia) 2.1.1. Perceptron và mạng MLP
Một trong những nền móng đầu tiên của mạng nơ-ron và học sâu là thuật toán perceptron learning algorithm (hoặc gọn là perceptron). Perceptron là một thuật toán giúp giải quyết bài toán phân lớp nhị phân, được đưa ra bởi Frank Rosenblatt năm 1957. Thuật toán perceptron hội tụ nếu hai lớp dữ liệu là phân tách được một cách tuyến tính. Mô hình mạng nơ-ron được sử dụng nhiều nhất là
mô hình mạng nhiều tầng ẩn, truyền thẳng. Tổng quát, một mạng MLP có nhiều hơn 2 tầng, trừ tầng đầu vào, trong đó gồm một tầng đầu ra và các tầng ẩn.
Hình 2.2: Cấu trúc mạng MLP Thuật toán lan truyền ngược
Giải thuật Lan truyền ngược là giải thuật quan trọng trong mô hình Học Sâu, nó giúp cho các mô hình học sâu có thể dễ dàng thực thi tính toán được.
Với các mạng nơ-ron hiện đại, nhờ giải thuật này mà thuật toán tối ưu đạo hàm nhanh hơn gấp hàng triệu lần so với cách thực hiện truyền thống. Mạng lan truyền ngược là công cụ tính toán mạnh mẽ cho nhiều lĩnh vực khác nữa như dự báo thời tiết, phân tích dòng nước, các bài toán vi phân.... Về cơ bản, đây là một kĩ thuật để tính được đạo hàm một cách nhanh chóng. Việc tính được đạo hàm của hàm số phức tạp mô tả quan hệ giữa đầu vào và đầu ra của một mạng nơ-ron là rất quan trọng, việc này giúp các mạng nơ-ron thoát được những hạn chế của perceptron về việc chỉ biểu diễn được các quan hệ tuyến tính. Để mô tả các quan hệ phi tuyến tính, sau mỗi lớp mạng sẽ là một hàm kích hoạt phi tuyến tính, ví dụ hàm sigmoid hoặc tanh. Với các lớp ẩn, mạng MLP được chứng minh rằng có khả năng xấp xỉ hầu hết bất kỳ hàm số nào qua định lý gần đúng phổ quát [21].
2.1.2. Thuật toán tối ưu
Trong học máy nói riêng và phương pháp tối ưu nói chung, chúng ta luôn phải tìm giá trị cực đại hoặc cực tiểu của một hàm số nào đó. Nhìn chung, việc tìm cực tiểu toàn cục của các hàm mất mát trong học máy là rất phức tạp, thậm chí có trường hợp là không thể. Để giải quyết vấn đề này, chúng ta sẽ cố gắng tìm các điểm cực tiểu địa phương, và ở một mức độ nào đó, được coi đó là
nghiệm cần tìm của bài toán.
Các điểm cực tiểu địa phương là nghiệm của phương trình đạo hàm bằng 0.
Nếu tìm được toàn bộ các điểm cực tiểu, ta chỉ cần tìm điểm cực tiểu địa phương nào làm cho hàm số có giá trị nhỏ nhất. Tuy nhiên, trong phần lớn các trường hợp, việc giải phương trình đạo hàm bằng 0 là không thể. Nguyên nhân từ việc các điểm dữ liệu có số chiều lớn, hoặc từ việc có quá nhiều điểm dữ liệu, hoặc hàm số không liên tục tại điểm cần tính đạo hàm.
Hình 2.3: Hoạt động của thuật toán Gradient Descent (nguồn wikipedia) Thuật toán Gradient Descent (GD) hoạt động như sau: xuất phát từ một điểm mà chúng ta coi là gần với nghiệm của bài toán, sau đó dùng một phép lặp để tiến dần đến điểm cần tìm, tức đến khi đạo hàm gần với 0. Stochastic Gradient Descent (SGD) là một biến thể của GD, GD và SGD là những phương pháp được dùng nhiều nhất. Ngoài ra, còn có các thuật toán tối tư khác như Momentum, Adagrad, RMSprop và đặc biệt là Adam. Do thuật toán Adam hoạt động khá tốt, tiến nhanh tới mức tối thiểu hơn các phương pháp khác nên được chọn để sử dụng trong khuôn khổ nghiên cứu.
2.2. Mạng nơ-ron tích chập 2.2.1. Mạng CNN
Trong mạng nơ-ron, mô hình mạng nơ-ron tích chập (CNN) là 1 trong những mô hình để nhận dạng và phân loại hình ảnh. Trong đó, xác định đối tượng và nhận dạng khuôn mặt là 1 trong số những lĩnh vực mà CNN được sử dụng rộng rãi.
CNN phân loại hình ảnh bằng cách lấy 1 hình ảnh đầu vào, xử lý và phân loại nó theo các hạng mục nhất định (Ví dụ: Người, cây, động vật, ...). Máy tính coi hình ảnh đầu vào là 1 mảng pixel và nó phụ thuộc vào độ phân giải của hình ảnh. Dựa trên độ phân giải hình ảnh, máy tính sẽ thấy H x W x D (H: Chiều cao, W: Chiều rộng, D: Độ dày).
Hình 2.4: Mảng ma trận RGB 6x6x3 (nguồn wikipedia)
Hình dưới đây là toàn bộ luồng CNN để xử lý hình ảnh đầu vào và phân loại các đối tượng dựa trên giá trị.
Hình 2.5: luồng CNN để xử lý hình ảnh đầu vào và phân loại các đối tượng 2.2.2. Mạng ResNet
ResNet (Residual Network) được giới thiệu rộng rãi vào năm 2015 và cho đến hiện tại thì có rất nhiều phiên bản ResNet với số lớp khác nhau như ResNet- 18, ResNet-34, ResNet-50, ResNet-101, ResNet-152,...được hiểu là kiến trúc ResNet và theo sau là số lớp nhất định.
Mạng ResNet (R) là một mạng CNN được thiết kế để làm việc với hàng trăm hoặc hàng nghìn lớp chập. Một vấn đề xảy ra khi xây dựng mạng CNN với nhiều lớp chập sẽ xảy ra hiện tượng mất mát đạo hàm dẫn tới quá trình học tập không tốt.
Hiện tượng mất mát đạo hàm (Vanishing Gradient)
Trước hết thì lan truyền ngược là kỹ thuật thường được sử dụng trong quá trình đào tạo. Về tổng quan, ý tưởng của thuật toán lá sẽ đi từ lớp đầu ra ngược đến lớp đầu vào và tính toán đạo hàm của hàm mất mát tương ứng với từng tham số của mạng. Thuật toán Gradient Descent sau đó được sử dụng để cập nhật lại các giá trị cho các tham số đó.
Hình 2.6: Biểu đồ miêu tả về hiện tượng mất mát đạo hàm .
Toàn bộ quá trình trên sẽ được lặp đi lặp lại cho tới khi mà các tham số của mạng đào tạo được hội tụ. Chúng ta sẽ định nghĩ trước số lượng vòng lặp để thực hiện quá trình này. Nếu số lượng vòng lặp quá nhỏ thì ta gặp phải trường hợp mạng có thể sẽ không cho ra kết quả tốt và ngược lại thời gian đào tạo sẽ lâu nếu số lượng vòng lặp quá lớn.
Tuy nhiên, trong thực tế giá trị đạo hàm thường sẽ có giá trị nhỏ dần khi đi xuống các lớp thấp hơn. Dẫn đến kết quả là các cập nhật thực hiện bởi Gradients Descent không làm thay đổi nhiều tham số của các lớp đó và làm chúng không thể hội tụ và mạng sẽ không thu được kết quả tốt. Hiện tượng như vậy gọi là mất mát đạo hàm, và mạng ResNet được phát minh để giải quyết vấn đề này.
Kiến trúc mạng ResNet
Giải pháp mà ResNet đưa ra là sử dụng kết nối "tắt" qua một hay nhiều lớp.
Một khối có kết nối như vậy được gọi là một “Residual Block” hay khối dư, như trong hình 2.11 :
Hình 2.7: Residual block .
Nhìn chung, về cơ bản ResNet cũng giống với các mạng học sâu, nghĩa là gồm có các lớp tích chập, lớp gộp, hàm kích hoạt và lớp kết nối đầy đủ. Hình 2.7 hiển thị khối có kết nối tắt được sử dụng trong mạng, xuất phát từ đầu và kết thúc tại cuối khối dư. Nghĩa là sẽ bổ sung X vào đầu ra của lớp, hay chính là phép cộng mà ta thấy trong hình 2.7, việc này sẽ cải thiện việc đạo hàm bằng 0, do vẫn còn cộng thêm X. Mạng ResNet giúp chúng ta có thể tăng số lượng các lớp trong mạng mà vẫn có thể hoạt động tốt.
Hình 2.8: Kiến trúc chi tiết mạng nơ ron ResNet
Thực tế, ResNet không phải là kiến trúc đầu tiên sử dụng các kết nối tắt, tuy nhiên giải pháp ResNet đưa ra đơn giản hơn và tập trung vào cải thiện thông tin thông qua độ dốc của mạng. Trong khuân khổ nghiên cứu này, mạng ResNet18 được sử dụng để trích xuất các đặc trưng theo không gian.
2.3. Mạng nơ-ron hồi quy 2.3.1. Mạng nơ-ron hồi quy RNN
Trong các mạng nơ-ron trước đó, các đầu vào và cả đầu ra là độc lập với nhau. Tức là chúng không liên kết thành chuỗi với nhau. Mô hình này không đáp ứng hết các bài toán trong thực tế. Ví dụ, nếu muốn dự đoán từ tiếp theo
trong câu thì ta cũng cần biết các từ trước đó xuất hiện lần lượt thế nào. Mạng nơ-ron hồi quy RNN dựa trên ý tưởng là sử dụng các thông tin dạng chuỗi. RNN có khả năng ghi nhớ thông tin, nghĩa là các tính toán trước đó vẫn có ảnh hưởng đến hiện tại. Trên lý thuyết là vậy tuy nhiên trên thực tế, thì nó chỉ có thể nhớ được một vài bước tính toán gần trước đó mà thôi.
Vấn đề phụ thuộc xa
RNN có thể xử lý thông tin dạng chuỗi liên tiếp theo thời gian. Như ở bài dự đoán hành động trong video, RNN có thể mang thông tin của khung hình từ trạng thái trước tới các trạng thái sau, rồi ở trạng thái cuối là sự kết hợp của tất cả các ảnh để dự đoán hành động trong video. Tuy nhiên, ở các state càng xa thì càng bị mất mát đạo hàm và các hệ số không được cập nhật với các khung hình ở xa, hay nói cách khác là RNN không học được từ các thông tin trước đó xa do bị mất mát đạo hàm. Như vậy theo lý thuyết là RNN có thể mang thông tin từ các lớp trước đến các lớp sau, nhưng thực tế là thông tin chỉ mang được qua một số lượng trạng thái nhất định, sau đó thì sẽ xảy ra hiện tượng mất mát đạo hàm, hay nói cách khác là mô hình chỉ học được từ các trạng thái gần nó.
2.3.2. Mạng LSTM
Mạng bộ nhớ dài-ngắn (Long Short Term Memory networks), gọi tắt là LSTM - là một biến thể của mạng RNN, nó có khả năng học được các phụ thuộc xa. Mạng LSTM và các biến thể của nó hoạt động cực kì hiệu quả trên nhiều bài toán khác nhau nên đã được sử dụng phổ biến như hiện nay.
Như đã nêu, mạng LSTM được thiết kế để tránh được vấn đề phụ thuộc xa.
Với thiết kế nội tại của mạng, việc nhớ thông tin trong suốt thời gian dài là khả năng của chúng mà chúng ta không cần phải huấn luyện nó để có thể nhớ được.
Tức là cấu trúc của nó đã giúp nó có thể ghi nhớ được mà không cần bất kì can thiệp nào trong quá trình đào tạo.
Các mạng RNN đều có dạng là một chuỗi các nút mạng nơ-ron được lặp đi lặp lại. Với mạng RNN ban đầu, các nút mạng này có cấu trúc rất đơn giản, thường là một tầng tanh.
Hình 2.9: Vòng lặp trong mạng RNN chuẩn (nguồn [23])
LSTM cũng có kiến trúc dạng lặp như vậy, nhưng các nút mạng của nó được cải tiến so với mạng RNN chuẩn: thay vì chỉ có một tầng mạng nơ-ron, LSTM có tới 4 tầng tương tác với nhau theo một cách riêng.
Hình 2.10: Vòng lặp trong mạng LSTM (nguồn [23])
Theo hình 2.10, mỗi nút có một véc-tơ từ đầu vào của nó đến đầu ra và trở thành đầu vào của nút tiếp theo. Sự khác biệt lớn nhất của LSTM là trạng thái tế bào - chính đường chạy thông ngang phía trên của hình 2.10. Trạng thái tế bào là một dạng giống như băng truyền. Nó chạy xuyên suốt tất cả các thành tố (các nút mạng) và chỉ tương tác tuyến tính rất ít. Vì vậy mà các thông tin được dễ dàng truyền đi mà không bị thay đổi.
Trên đây là mô tả nguyên lý cơ bản của mạng LSTM chuẩn. Mạng LSTM sẽ được sử dụng trong nghiên cứu để trích xuất các đặc trưng theo thời gian.
2.4. Mạng CSRNet
2.4.1. Định nghĩa bản đồ mật độ nhiệt
Bản đồ nhiệt (hoặc bản đồ mật độ nhiệt) là một kỹ thuật trực quan hóa dữ liệu, cho thấy cường độ của một hiện tượng dưới dạng màu sắc trong hai chiều.
Sự thay đổi về màu sắc có thể theo màu sắc hoặc cường độ đưa ra các tín hiệu thị giác rõ ràng cho người đọc về cách mà hiện tượng được phân cụm hoặc thay đổi theo không gian. Trong nghiên cứu này, tín hiệu chúng ta muốn miêu tả là mật độ của đám đông, cường độ được miêu tả trong bản đồ nhiệt là mức độ đông đúc của các vùng trên ảnh.
Mạng CSRNet cung cấp một phương pháp học sâu và hướng dữ liệu có thể hiểu các cảnh đông đúc với mật độ cao, ngoài việc thực hiện ước tính số đếm
chính xác về người trong đám đông thì nó cũng cho ra được bản đồ mật độ với chất lượng cao. CSRNet được đề xuất bao gồm gồm hai thành phần chính: phần đầu là mạng nơ-ron tích chập để trích xuất đặc trưng 2 chiều (2D) và mạng tích chập giãn nở cho phần sau, sử dụng các nhân giãn nở để cung cấp kết quả đầu ra lớn hơn, thay thế cho các phép toán pooling. CSRNet là một mô hình dễ đào tạo vì cấu trúc tích chập thuần túy của nó. CSRNet được chứng minh trên bốn tập dữ liệu (tập dữ liệu ShanghaiTech, tập dữ liệu UCF CC 50, tập dữ liệu WorldEXPO’10 và tập dữ liệu UCSD). Trong bộ dữ liệu ShanghaiTech Part B, CSRNet đạt được sai số trung bình tuyệt đối thấp hơn 47,3% so với các phương pháp trước đó [12]. CSRNet được mở rộng ứng dụng của mình nhắm mục tiêu đếm các đối tượng khác, chẳng hạn như đếm xe trong tập dữ liệu TRANCOS.
Kết quả cho thấy CSRNet cải thiện đáng kể chất lượng đầu ra với chỉ số MAE thấp hơn 15,4% so với cách tiếp cận trước đây.
2.4.2. Mạng CSRNet
Mạng CSRNet được xây dựng dựa trên mạng VGG-16 vì nó có khả năng chuyển giao học tập mạnh mẽ và kiến trúc linh hoạt, dễ dạng kết nối với phần sau của CSRNet để tạo ra bản đồ mật độ nhiệt. Trước tiên, chúng ta loại bỏ phần phân lớp của VGG-16 (các lớp kết nối đầy đủ) và xây dựng mạng CSRNet dựa trên các lớp tích chập của VGG-16. Kích thước đẩu ra của phần này bằng 1/8 kích thước đầu vào ban đầu. Nếu chúng ta tiếp tục xếp chồng nhiều lớp tích chập và lớp pooling nhiều hơn nữa thì kích thước đầu ra sẽ bị thu hẹp hơn nữa và khó có thể tạo ra bản đồ mật độ có chất lượng tốt. Thay vào đó, các lớp tích chập giãn nở được triển khai ở phần thứ 2 để trích xuất thông tin sâu hơn cũng như duy trì độ phân giải của đầu ra. Một tích chập giãn nở 2-D có thể được được định nghĩa như sau:
𝑦(𝑚, 𝑛) là đầu ra của tích chập giãn nở từ đầu vào 𝑥(𝑚, 𝑛) và một bộ lọc 𝜔(𝑖, 𝑗) với chiều dài và chiều rộng tương ứng là M và N. Tham số r là tốc độ giãn nở.
Nếu r = 1, tích chập giãn nở là một tích chập bình thường. Tích chập giãn nở đã được chứng minh trong các nghiên cứu khác nhau với sự cải thiện đáng kể về độ chính xác và nó là một giải pháp thay thế tốt cho lớp pooling. Mặc dù các lớp pooling (ví dụ: max và average pooling) được sử dụng rộng rãi để duy trì sự bất biến và kiểm soát việc quá khớp, chúng cũng làm giảm đáng kể độ phân giải không gian, nghĩa là thông tin không gian của bản đồ đặc trưng bị mất. Các lớp giải chập có thể giảm bớt việc mất thông tin, nhưng độ phức tạp và tốc độ thực thi chậm có thể không phù hợp với tất cả trường hợp. Tích chập giãn nở là một lựa chọn tốt hơn, sử dụng các bộ lọc thưa để xen kẽ giữa lớp pooling và lớp tích chập. Nó phóng to giá trị tiếp nhận mà không làm tăng số lượng tham số hoặc số lượng tính toán (ví dụ: việc thêm nhiều lớp tích chập hơn có thể tạo ra giá trị tiếp nhận lớn hơn nhưng sẽ phát sinh nhiều thao tác hơn). Trong tích chập giãn nở, một hạt nhân kích thước nhỏ với bộ lọc k × k được phóng to thành k + (k - 1) (r - 1) với tỉ lệ giãn nở r. Do đó, nó cho phép tổng hợp linh hoạt thông tin ngữ cảnh ở nhiều quy mô trong khi vẫn giữ nguyên độ phân giải.
Hình 2.11: Tích chập 3x3 với các hệ số giãn nở 1, 2, 3.
Để duy trì độ phân giải của bản đồ đối tượng, tích chập giãn nở cho thấy những lợi thế khác biệt so với cấu trúc sử dụng tích chập + pooling + giải chập. Một ví dụ để minh họa trong Hình 2.12, đầu vào là hình ảnh của đám đông và nó được xử lý bằng hai cách tiếp cận riêng biệt để tạo ra đầu ra có cùng kích thước.
Trong cách tiếp cận đầu tiên, đầu vào được lấy mẫu xuống bởi một lớp max pooling với hệ số 2, và sau đó nó được chuyển đến một lớp tích chập với bộ lọc Sobel 3 × 3. Vì đặc trưng được tạo ra chỉ bằng 1/2 so với đầu vào ban đầu, nên
nó cần tăng kích thước bởi lớp giải chập (nội suy song tuyến - bilinear interpolation). Trong cách tiếp cận thứ 2, cấu trúc sử dụng tích chập giãn nở và được chuyển đến cùng một bộ lọc Sobel 3 × 3 thành một nhân giãn nở có hệ số
= 2 bước. Đầu ra được chia sẻ cùng số chiều với đầu vào (có nghĩa là không yêu cầu các lớp pooling và lớp giải chập). Điều quan trọng ở đây là đầu ra từ tích chập giãn nở chứa nhiều thông tin chi tiết hơn.
Hình 2.12: So sánh giữa tích chập giãn nở và max pooling, tích chập và upsampling. Bộ lọc Sobel 3x3 được sử dụng ở cả 2 trường hợp và hệ số giãn nở
r=2.
Cuối cùng, bản đồ mật độ nhiệt tạo ra bởi CSRNet có kích thước bằng 1/8 so với kích thước ảnh đầu vào nên cần sử dụng phép nội suy song tuyến để đạt được đầu ra có cùng kích thước đầu vào.
Bản đồ mật độ nhiệt là một đặc trưng của đám đông và sự thay đổi cường độ của bản đồ nhiệt theo thời gian có thể giúp chúng ta dự đoán về tính chất của đám đông đó, do vậy, bản đồ mật độ nhiệt sẽ được sử dụng trong nghiên cứu là một đầu vào dữ liệu, và mạng CSRNet sẽ giúp chúng ta xây dựng bản đồ nhiệt.
2.5. Mạng FlowNet
2.5.1. Định nghĩa dòng quang học
Dòng quang học là chuyển động của các vật thể giữa các khung hình liên tiếp của chuỗi, gây ra bởi chuyển động tương đối giữa đối tượng và máy ảnh.
Vấn đề dòng chuyển động quang học có thể được thể hiện như sau:
Trong đó, giữa các khung hình liên tiếp, chúng ta có thể thể hiện cường độ hình ảnh I như một đặc trưng của không gian (x, y) và thời gian t. Nói cách khác, nếu chúng tao chụp hình ảnh đầu tiên I(x, y, t) và di chuyển một khoảng cách bằng (dx, dy) pixel trong một khoảng thời gian t, chúng ta có được hình ảnh mới I(x+dx, y+dy, t+dt).
Đầu tiên, chúng ta giả sử rằng cường độ pixel của một đối tượng là không đổi giữa các khung hình liên tiếp:
𝐼(𝑥, 𝑦, 𝑡) = 𝐼(𝑥 + 𝑑𝑥, 𝑦 + 𝑑𝑦, 𝑡 + 𝑑𝑡) Sau đó, lấy xấp xỉ Taylor của về phải ta được:
𝐼(𝑥 + 𝑑𝑥, 𝑦 + 𝑑𝑦, 𝑡 + 𝑑𝑡) = 𝐼(𝑥, 𝑦, 𝑡) + 𝜕𝐼
𝜕𝑥𝑑𝑥 + 𝜕𝐼
𝜕𝑦𝑑𝑦 +𝜕𝐼
𝜕𝑡𝑑𝑡 + . ..
⇒ 𝜕𝐼
𝜕𝑥𝑑𝑥 + 𝜕𝐼
𝜕𝑦𝑑𝑦 +𝜕𝐼
𝜕𝑡𝑑𝑡 = 0
Cuối cùng, chia cả 2 vế cho 𝑑𝑡 ta được phương trình dòng quang học như sau:
𝜕𝐼
𝜕𝑥𝑢 + 𝜕𝐼
𝜕𝑦𝑣 +𝜕𝐼
𝜕𝑡 = 0, 𝑣ớ𝑖 𝑢 = 𝑑𝑥/𝑑𝑡 𝑣à 𝑣 = 𝑑𝑦/𝑑𝑡.
Ở đây, 𝜕𝐼/𝜕𝑦, 𝜕𝐼/𝜕𝑥, 𝜕𝐼/𝜕𝑡 là các đạo hàm của ảnh theo trục tung, trục hoành và thời gian. Do đó, bài toán về tìm dòng quang học là tìm 𝑢(𝑥/
𝑑𝑡) 𝑣à 𝑣(𝑑𝑦/𝑑𝑡) để xác định chuyển động theo thời gian. Ta thấy rằng, không thể giải trực tiếp phương trình dòng quang theo 2 biến u và v vì chỉ có 1 phương trình cho 2 biến số. Trong phần tiếp theo, luận văn sẽ trình bày một vài phương pháp để giải quyết bài toán này.
Có 2 loại luồng quang học, đó là luồng quang thưa (sparse optical flow) và luồng quang dày đặc (dense optical flow). Luồng quang thưa thể hiện các véc tơ chuyển động của một số đặc trưng trong khung hình như các cạnh hoặc góc (chỉ một vài pixel mô tả) của đối tượng, trong khi luồng quang dày đặc cung cấp các véc tơ chuyển động của toàn bộ khung hình (toàn bộ các pixel). Do vậy, luồng quang dày đặc có độ chính xác cao hơn khi mô tả chuyển động trong khung hình và được sử dụng trong phạm vi nghiên cứu.
Dòng quang thưa Dòng quang dày đặc
Hình 2.13: Ví dụ về 2 loại dòng quang.
Trích xuất luồng quang dày đặc
Luồng quang dày đặc tính toán véc tơ luồng quang cho mỗi pixel của mỗi khung hình. Mặc dù tính toán như vậy có thể chậm hơn, nhưng nó cho kết quả chính xác hơn và kết quả “dày đặc” hơn phù hợp cho các ứng dụng như học cấu trúc từ chuyển động và phân đoạn video. Có nhiều cách triển khai khác nhau của luồng quang học dày đặc. Ở chương này, luận văn sẽ giới thiệu 2 phương pháp chính đó là phương pháp Farneback - một trong những cách triển khai phổ biến nhất và phương pháp ước tính luồng quang sử dụng học sâu với mạng FlowNet.
Hình 2.14: Luồng quang dày đặc của hoạt động đi bộ.
Phương Pháp Farneback:
Gunnar Farneback đã đề xuất một kỹ thuật hiệu quả để ước tính chuyển động của các đối tượng bằng cách so sánh hai khung hình liên tiếp dựa trên sự mở rộng đa thức [5].
Đầu tiên, phương pháp xấp xỉ các cửa sổ của các khung ảnh bằng đa thức bậc hai thông qua phép biến đổi mở rộng đa thức. Thứ hai, bằng cách quan sát cách biến đổi đa thức theo phép tịnh tiến (chuyển động), một phương pháp để ước tính các trường chuyển vị từ các hệ số khai triển đa thức được xác định. Sau một loạt các cải tiến, lưu lượng quang học dày đặc được tính toán. Phương pháp đề xuất của Farneback khá ngắn gọn và dễ hiểu, tham khảo thêm [5] để tìm hiểu chi tiết.
2.5.2. Mạng FlowNet:
Mạng FlowNet được giới thiệu vào năm 2015 như là cách tiếp cận đầu tiên của CNN để dự đoán Dòng quang học. Các tác giả được truyền cảm hứng từ kết quả thành công của kiến trúc CNN trong phân loại, ước tính chiều sâu trong các nhiệm vụ phân đoạn ngữ nghĩa. Khi Deep Learning tiếp cận và CNN đã trở thành một phương pháp hiệu quả để giải quyết nhiều bài toán trong lĩnh vực Thị giác máy tính, các tác giả đã giới thiệu hai mạng nơ-ron để ước tính dòng quang học.
Hình 2.15: Tổng quan mô hình FlowNet (nguồn[4]).
Về kiến trúc, FlowNet chứa các mạng mã hóa (encoder) và giải mã (decoder) tương tự như kiến trúc mạng U-Net. Bộ mã hóa trích xuất các đặc
trưng từ hai khung hình liên tiếp, trong khi bộ giải mã phóng đại các bản đồ đặc trưng được mã hóa và dự đoán dòng quang. FlowNet có 2 kiến trúc khác nhau là FlowNetS và FlowNetCorr. Tại mạng mã hóa, FlowNetS chỉ cần xếp chồng hai khung hình liên tiếp lại với nhau và đưa chúng qua mạng. Hai khung hình được đưa vào một mảng gồm 6 kênh, 3 kênh đầu tiên là của khung hình trước, 3 kênh cuối là của khung hình sau. Chúng được đưa qua vài lớp tích chập và các hàm kích hoạt. Kiến trúc này cho phép mạng tự xác định cách xử lý 2 khung hình được chồng lên nhau đóvà đưa ra bản đồ đặc trưng. Ngược lại, FlowNetCorr trước tiên trích xuất các đặc trưng của hai khung hình một cách riêng biệt. Tác giả sử dụng một số lớp đầu tiên của mạng CNN với các tham số giống nhau để trích xuất các đặc trưng từ 2 khung hình một cách riêng biệt. Bước tiếp theo, kết hợp các đặc trưng trích xuất được từ hai khung hình, để làm điều đó, các tác giả giới thiệu một kỹ thuật mới gọi là lớp tương quan (Correlation layer), đây chính là điểm khác biệt giữa FlowNetS và FlowNetCorr. Trong lớp tương quan này vẫn sử dụng tích chập nhưng với các bộ lọc không được đào tạo.
Hình 2.16: Cấu trúc mạng mã hóa của FlowNetS và FlowNetCorr (nguồn[4])..
Các bản đồ đặc trưng đầu ra từ bộ mã hóa nhỏ hơn 64 lần so với độ phân giải hình ảnh đầu vào, vì vậy chúng ta cần nâng cấp các kết quả (upsampling).
Cách thức thực hiện ở giai đoạn này được sử dụng chung cho cả hai kiến trúc.
Các lớp giải chập (upconvolution) được sử dụng trong giai đoạn giải mã này để nâng cấp kết quả đầu ra của giai đoạn mã hóa. Mỗi giai đoạn giải mã kết hợp các kết quả từ giai đoạn trước đã được nâng cấp và bản đồ đặc trưng từ lớp tương quan của bộ mã hóa. Sử dụng dữ liệu từ bộ mã hóa giúp dự đoán các chi tiết tốt như đã được chứng minh trong mạng U-Net. Ở đây, dữ liệu chỉ được nâng cấp 4 lần vì sử dụng nhiều nữa cũng không thu được kết quả tốt hơn về chất lượng.
Cuối cùng, để nâng cấp độ phân giải của đầu bằng với độ phân giải hình ảnh ban đầu, bilinear upsampling được sử dụng.
Kết quả đầu ra của mạng là mảng dữ liệu gồm 2 kênh. Kênh thứ nhất bao gồm chuyển động dịch chuyển của các pixel theo trục x, còn kênh thứ 2 là theo trục y. Theo đó, đầu ra của mạng mô tả véc-tơ chuyển động tại mọi điểm ảnh trong khung hình.
Hình 2.17: Cấu trúc mạng giải mã của FlowNet (nguồn[4]).
Luồng chuyển động quang học theo thời gian là một đặc trưng quan trọng của đám đông. Dựa vào hướng và tốc độ di chuyển của các đối tượng trong đám đông, chúng ta có thể dự đoán về hành vi của đám đông đó, do vậy, luồng chuyển động quang học được sử dụng trong nghiên cứu như một đầu vào dữ liệu, và mạng FlowNet sẽ giúp chúng ta trích xuất luồng quang của chuyển động gốc.
2.6. Kỹ thuật tăng cường dữ liệu
Dữ liệu là phần rất quan trọng trong các hệ thống và ứng dụng trí tuệ nhân tạo ngày nay. Trong lĩnh vực học máy nói chung hay cụ thể là học sâu hiện nay phải cần tới rất rất nhiều dữ liệu. Đơn cử như các tập dữ liệu phổ biến thường
dùng cho học sâu như FaceNet, ImageNet cũng có tới hàng triệu hay thậm chí hàng trăm triệu dữ liệu được dán nhãn. Và bởi vì học sâu là thuật toán dựa trên dữ liệu do vậy căng có nhiều dữ liệu thì chất lượng các mô hình học sâu càng được cải thiện.
Hình 2.18: Mối quan hệ giữa dữ liệu và hiệu quả mô hình trong học sâu (nguồn:
[21]).
Vấn đề đặt ra là với bài toán có dữ liệu giới hạn thì phải làm sao? Không đủ dữ liệu sẽ dẫn tới vấn đề như:
1. Thiếu tính tổng quát: mạng dễ bị quá khớp, qua tốt trên tập đào tạo còn cho kết quả tệ trên tập kiểm thử.
2. Khó huấn luyện: mạng học sâu khó hội tụ.
3. Chất lượng dự đoán sẽ không ổn định: một số trường hợp ngoại lệ kết quả sai khác rất nhiều, nhiễu với đầu vào ảnh hưởng lớn tới chất lượng dự đoán.
Để giải quyết vấn đền này, có các hướng tiếp cận chính như sau: Thay đổi kiến trúc mạng: dùng các mô hình đơn giản, tránh hiện tượng quá khớp, áp dụng học chuyển đổi: Lấy kiến thức từ các ứng dụng có nhiều dữ liệu đã được đào tạo trước, tập hợp thêm dữ liệu.
Riêng về phương án tập hợp thêm dữ liệu, có thể kể đến những phương pháp sau:
Thu thập thêm dữ liệu: tìm dữ liệu từ các nguồn như mua dữ liệu trả tiền, lấy dữ liệu trên mạng... Tốn thời gian, công sức và chi phí.
Tạo dữ liệu giả: đối với một số bài toán dữ liệu có thể được mô phỏng qua đồ họa máy tính như các ảnh hành vi của người, ảnh ở chiều góc nhìn khác nhau, được tạo bởi các mạng GAN, .v.v.
Dữ liệu tăng cường: là kỹ thuật đơn giản nhất bằng việc xử lý đơn giản dữ liệu sẵn có bằng các phép xử lý ảnh tuyến tính hay phi tuyến.
1. Thu thập thêm 2. Tạo dữ liệu giả 3. Tăng cường dữ liệu
- Chi phí cao
- Cần nhiều nhân công để gán nhãn
- Thực hiện phức tạp - Có thể không phản ánh đúng dữ liệu thật
- Thực hiện đơn giản.
- Cần thử nghiệm nhiều để tìm được phương pháp tăng cường phù hợp với dữ liệu.
Hình 2.19: So sánh các phương pháp cải thiện dữ liệu.
Vì tăng cường dữ liệu là cách tiếp cận “dễ” và “rẻ” nhất. Hầu hết các ứng dụng học sâu, các chủ đề từ tín hiệu 1D, 2D, 3D tới ứng dụng bên thị giác máy, giọng nói, ngôn ngữ tự nhiên .v.v. đều sử dụng kỹ thuật tăng cường dữ liệu trong quá trình huấn luyện. Tùy thuộc vào dữ liệu (số lượng mẫu, tính cân bằng của mẫu, dữ liệu kiểu thử, v.v. và ứng dụng tương ứng chúng ta sẽ sử dụng các kỹ thuật tăng cường dữ liệu khác nhau, nghĩa là mỗi bộ dữ liệu sẽ có cách thức riêng để tăng cường dữ liệu sao cho ra kết quả tốt nhất. Điển hình là dữ liệu MNIST được cho là tốt với phương pháp biến dạng co dãn, thay đổi tỉ lệ, dịch chuyển, và xoay. Trong khi dữ liệu ảnh tự nhiên như CIFAR10 và ImageNet thì lại tốt với thuật toán cắt ngẫu nhiên, chuyển đổi qua gương, thay đổi màu, độ sáng. Không chỉ có vậy mà một số phương pháp tăng cường dữ liệu không tốt cho một số tập dữ liệu. Đơn cử là lật theo chiều dọc tốt cho tập CIFAR10 nhưng không tốt cho tập MNIST ( bởi vì ký tự khi lật theo chiều dọc có thể sẽ thành ký tự khác).
Hình 2.20: Phân biệt các phương pháp tăng cường dữ liệu.
Việc phụ thuộc vào dữ liệu và ứng dụng, kiến trúc mạng kể trên đồng nghĩa với việc không có cách thức tổng quát cho tất cả các tập dữ liệu và bài toán. Cần phải thử nghiệm rất nhiều, và chắc chắn sẽ tốn rất nhiều thời gian để có thể tìm ra cách tăng cường dữ liệu tốt nhất cho bài toán và tập dữ liệu cụ thể.
2.7. Các nghiên cứu liên quan
Trên thế giới, cũng có các nghiên cứu của các nhóm tác giả về chủ đề phân tích hành vi bất thường trong đám đông. Sau đây, chúng ta sẽ xem xét một số nghiên cứu như vậy.
Nghiên cứu [3] đi theo một cách tiếp cận phổ biến cho phát hiện sự kiện bất thường. Do thiếu dữ liệu về hành vi bất thường, trước tiên các tác giả đã tìm hiểu các mô hình bình thường, và sau đó phát hiện sự bất thường khi các sự kiện đi chệch hướng từ các mẫu bình thường đã được phân tích. Cách tiếp cận này cũng rất tự nhiên và hợp lý, tuy nhiên, các hành vi bình thường phụ thuộc vào hoàn cảnh cụ thể, văn hóa cũng như nhận thức tại từng khu vực, do vậy, khi chuyển đổi khu vực áp dụng, có thể không dùng lại được các kết quả đã đào tạo trước đây. Thêm nữa, các hành vi được coi là bình thường cũng có những thể hiện đột xuất, ví dụ: một nhóm người đi ngược chiều hoặc cắt qua dòng người đang đi, khi đó kết quả dự đoán sẽ bị sai lệch. Sự kiện bình thường được theo dõi trong một thời gian dài, do vậy mô hình sẽ không sử dụng được trong các sự kiện ngắn hạn như lễ hội hoặc các sự kiện theo chủ đề.
Nghiên cứu [14] phát hiện hành vi bất thường dựa vào việc phân tích quỹ đạo chuyển động của từng đối tượng, phát hiện sự sai khác so với lớp bình
thường để xác định sự bất thường. Tuy nhiên, theo dõi từng đối tượng trong đám đông để trích xuất ra được quỹ đạo chuyển động của họ là không thực tế trong một cảnh đông đúc, do vậy cách tiếp cận này không có ý nghĩa thực tiễn khi phân tích hành vi bất thường trong đám đông.
Cũng có các nghiên cứu khác sử dụng học sâu để phân loại hành vi bất thường trong đám đông. Trong nghiên cứu [13], các tác giả lại sử dụng một kỹ thuật gọi là “end-to-end convolutional autoencoder” để phát hiện các hành vi bất thường trong video giảm sát với kết quả khá tốt, còn trong nghiên cứu [15], các tác giả sử dụng mạng tích chập 3D để phân loại các điểm bất thường. Tuy nhiên, cả 2 nghiên cứu [13] và [15], các kỹ thuật mới chỉ thực hiện trên các đặc trưng về không gian mà bỏ qua các đặc trưng về thời gian, do đó sẽ chỉ mang tính thời điểm.
Trong khuôn khổ luận văn này, chúng tôi sẽ đề xuất một phương pháp mới, sử dụng cả đặc trưng không gian và đặc trưng thời gian để đưa ra được kết quả khả quan, có khả năng đáp ứng nhanh với sự thay đổi của dữ liệu thực tế.
Chương 3: PHƯƠNG PHÁP ĐỀ XUẤT
3.1. Tổng quan
Phân tích cảnh đám đông phải đối mặt với nhiều thách thức hơn so với hoạt động cá nhân của con người do nhiều nguyên nhân. Với mật độ của những người được tìm thấy trong những cảnh như vậy thường gây khó khăn cho các thuật toán để xác định chính xác các thực thể riêng lẻ. Việc xác định các bộ phận cơ thể và chúng còn khó hơn các mô hình chuyển động tương ứng để phân loại hoạt động cá nhân của mỗi người tham gia. Hành vi của đám đông thường thể hiện các hành vi nổi cộm và các hoạt động tự tổ chức, đặc biệt là trong các sự kiện bất thường. Hơn nữa, nội dung có sẵn mà chúng ta có thể tiếp cận được thường có chất lượng thấp và thiếu các ví dụ thực tế về các sự kiện được phát hiện vì chúng chỉ có sẵn cho chính quyền vì lý do pháp lý và quyền riêng tư. Tại chương này, chúng tôi đề xuất một phương pháp luận mới để phát hiện sự kiện bất thường trong cảnh đông đúc và có khả năng đáp ứng nhanh hơn khi áp dụng với dữ liệu thực tế mà không yêu cầu nhiều dữ liệu đào tạo.
3.2. Phương pháp đề xuất
Phát hiện sự kiện bất thường trong cảnh đông đúc dựa trên sự phân tích các hành vi, hoạt động được kết hợp từ những người hiện diện trong đám đông đó.
Có rất nhiều các phương pháp phát hiện và theo dõi hành vi của cá nhân, nhưng trong bối cảnh đông đúc thì sự theo dõi và phân tích hành vi của từng cá thể trong đó là không khả thi.
Hình 3.1: Chuyển động của đám đông
Do không thể áp dụng các phương pháp phát hiện và theo dõi cổ điển trong các cảnh đông đúc này nên cần phải có một cách tiếp cận tổng thể hơn. Chúng ta thấy rõ ràng ở đây, nội dung chuyển động đóng vai trò quan trọng, cung cấp thông tin chính cả ở cấp độ điểm ảnh hoặc cấp độ đặc trưng. Thêm vào đó, nội dung chuyển động này phải được phân tích trong bối cảnh không gian và thời gian rộng hơn để tổng quát được bối cảnh của đám đông.
Luồng quang học cung cấp độ lớn và hướng của chuyển động giữa các khung hình. Ví dụ quan sát sơ bộ bối cảnh có hành vi đám đông xung đột, chúng ta thấy sẽ có sự đan xen giữa các chuyển động ngược hướng và phạm vi chuyển động là nhỏ trong khoảng thời gian nhất định, còn bối cảnh đám đông hoảng loạn thì dòng chuyển động sẽ tỏa ra tứ phía hoặc cùng 1 phía và độ lớn chuyển động lớn. Trên cơ sở đó, việc chọn luồng quang học của bối cảnh như vậy là phù hợp để phân tích. Tuy nhiên, phân tích như vậy có thể dễ bị sai sót do nội dung chuyển động là tương tự từ các phần của cảnh không có người, hoặc bị nhầm lẫn khi dòng người di chuyển theo nhiều hướng khác nhau trong cùng 1 không gian…
Hình 3.2: Luồng chuyển động của đám đông
Trong các nghiên cứu trước đây, người ta sử dụng bản đồ mật độ nhiệt để đếm số người trong đám đông. Tuy nhiên, theo phân tích thấy rằng bản đồ mật độ nhiệt của đám đông có thể sử dụng như một tính năng định hướng để đảm bảo rằng chỉ các vùng có liên quan mới được đưa vào phân tích chuyển động, tránh sự gặp phải sự giống nhau của luồng chuyển động ở những cảnh không có người. Hơn nữa, trong một khoảng thời gian, những thay đổi về mật độ đám đông, chẳng hạn như sự di tản đột ngột của đám đông tại một địa điểm cũng có thể là kết quả của 1 đám đông hoảng loạn hay sự đông lên bất thường cũng là
bằng chứng cho thấy có giao tranh của đám đông. Những chỉ thị như vậy là bằng chứng rõ ràng cho sự tồn tại của một sự kiện bất thường. Do đó, hoàn toàn hợp lý khi đưa bản đồ mật độ nhiệt vào làm 1 tiêu chí phân tích để phát hiện hành vi bất thường của đám đông.
Hình 3.3: Cảnh đám đông hoảng loạn và bản đồ nhiệt tương ứng
Hình 3.4: Cảnh đám đông xung đột và bản đồ nhiệt tương ứng
Việc thiếu dữ liệu để đào tạo mạng cũng là một vấn đề lớn mà trong quá trình nghiên cứu đã gặp phải. Các nội dung trên internet có thể tìm thấy được
thường không sát với bàn toán đặt ra, hoặc nếu có thì chất lượng rất thấp do quay bằng các thiết bị cá nhân và ở khoảng cách quá xa. Các chủ đề bất thường được đề cập trong nghiên cứu là đám đông xung đột, hoảng loạn thường chỉ có thể tìm thấy ở các kho lưu trữ của chính quyền, qua các camera giám sát hoạt động tại những nơi công cộng, mà nguồn này thì chúng ta không được phép tiếp cận. Vì vậy, bài toán đặt ra là làm sao có thể phát hiện hành vi bất thường trong đám đông mà chỉ sử dụng rất ít dữ liệu đào tạo. Ở đây, chúng tôi sử dụng tập dữ liệu ảo, được tổng hợp theo các hành vi đám đông cụ thể để đào tạo. Sau đó áp dụng kỹ thuật thích ứng miền (domain adaptation) (domain adaptation), cụ thể hơn, sử dụng phương pháp tinh chỉnh mô hình (fine-tunning). Mục đích để khi áp dụng cho dữ liệu thực tế, có thể không cần đào tạo lại hoặc chỉ cần rất ít dữ liệu để đào tạo lại là mô hình có thể cho ra kết quả tốt.
Hình 3.5: Phương pháp huấn luyện đề xuất 3.3. Mô hình mạng đề xuất
Để thực hiện phương pháp đề xuất, chúng ta thiết kế 1 mạng học sâu như sau:
Sau khi trích xuất được dòng quang và bản đồ mật độ nhiệt của tập dữ liệu đưa vào, ta đào tạo qua mạng với cấu trúc sau đây:
Hình 3.6: Mô hình mạng đề xuất.
Hình 3.7: Dữ liệu đầu vào của mạng huấn luyện.
Mô tả:
- Đầu vào của mạng: là các dữ liệu ảnh màu RGB, dòng chuyển động quang học, bản đồ mật độ nhiệt, được trích xuất và biểu diễn dưới dạng các tensor với các chiều dữ liệu tương ứng (hình 3.7).
- Bước 1: Spatial Encode - có nhiệm vụ trích xuất và học các đặc trưng theo không gian của dữ liệu đầu vào. Đó là hướng chuyển động, chiều chuyển động, mật độ đám đông, bối cảnh….Tại thành phần này, luận văn sử dụng mạng Resnet18 đã được tiền huấn luyện trên tập dữ liệu ImageNet.
- Bước 2: Temporal Encode - có nhiệm vụ trích xuất và học các thay đổi theo thời gian của các đặc trưng đã trích xuất được từ Bước 1. Để thực hiện công việc này, luận văn sử dụng mạng LSTM với 2 lớp ẩn.
- Bước 3: Kết nối đầy đủ: làm phẳng dữ liệu đầu ra của mạng và kết nối chúng thành mảng 1 chiều.
- Bước 4: Phân lớp: tính toán xác xuất phân lớp đầu ra, sử dụng hàm Softmax.
- Đầu ra: mảng 3 phần tử, mỗi phần tử là xác xuất phân lớp của dữ liệu đầu vào với lớp tương ứng.
Dữ liệu đầu vào được tạo thành từ việc xếp các đặc trưng đã trích xuất trước lại với nhau, đưa qua phần đầu của mạng để trích xuất đặc trưng theo không gian. Tiếp đó, dữ liệu thu được đưa qua phần thứ 2 để trích xuất đặc trưng theo thời gian. Kết quả cuối cùng được đưa qua mạng kết nối đầy đủ sau đó tính toán kết quả phân lớp. Trong quá trình huấn luyện, để tăng độ chính xác, giảm thiểu tình trạng quá khớp (overfitting), nghiên cứu có sử dụng thêm các kỹ thuật tăng cường dữ liệu. Các phương pháp được sử dụng bao gồm xoay, thêm nhiễu, lật ảnh, điều chỉnh độ sáng, cắt ngẫu nhiên… khi sử dụng các phương pháp này, phải đảm bảo các khung hình thuộc cùng 1 mẫu huấn luyện phải được áp dụng các thay đổi như nhau để không làm sai lệch dòng chuyển động.
3.4. Áp dụng kỹ thuật tăng cường dữ liệu
Sau đây, chúng tôi sẽ trình bày các kỹ thuật tăng cường dữ liệu được sử dụng trong nghiên cứu để làm phong phú thêm lượng dữ liệu, giảm hiện tượng quá khớp.
Ảnh gốc Phép xoay Phép lật dọc Thay đổi tương
phản
Thêm nhiễu Cắt và làm đầy Màu ngẫu nhiên Cắt ngẫu nhiên Hình 3.8: Dữ liệu thay đổi qua các phép tăng cường dữ liệu
Ảnh gốc: ảnh chưa qua chỉnh sửa.
Phép Lật: lật theo chiều dọc, ngang miễn sao ý nghĩa của ảnh, nhãn của ảnh được giữ nguyên hoặc suy ra được. Ví dụ nhận dạng quả bóng tròn, phép lật vẫn giữ nguyên quả bóng tròn, còn với nhận dạng chữ viết tay, lật số 8 vẫn là 8, nhưng 6 sẽ thành 9 (theo chiều ngang) và không ra số gì theo chiều dọc. Còn nhận dạng ảnh y tế thì việc bị lật trên xuống dưới là không bao giờ sảy ra ở ảnh thực tế.
Phép Xoay: Xoay ảnh theo trục dọc hoặc trục ngang.
Cắt ngẫu nhiên: cắt ngẫu nhiên một phần của bức ảnh. Lưu ý là khi cắt phải giữ thành phần chính của bức ảnh mà ta quan tâm. Như ở nhận diện vật thể, nếu ảnh được cắt không có vật thể, vậy giá trị nhãn là không chính xác.
Chuyển đổi màu: Chuyển đổi màu của bức ảnh bằng cách thêm giá trị vào 3 kênh màu RGB. Việc này liên quan tới ảnh chụp đôi khi bị nhiễu => màu bị ảnh hưởng.
Thêm nhiễu: Thêm nhiễu vào bức ảnh. Nhiễu thì có nhiều loại như nhiễu ngẫu nhiên, nhiễu có mẫu, nhiễu cộng, nhiễu nhân, nhiễu do nén ảnh, nhiễu mờ do chụp không lấy nét, nhiễu mờ do chuyển động...
Màu ngẫu nhiên: Thay đổi màu trong bức ảnh.
Thay đổi độ tương phản: thay độ tương phản của bức hình, độ bão hòa.
Ngoài ra, còn có rất nhiều phép tăng cường dữ liệu khác, tuy nhiên, chúng tôi chỉ chọn các cách trên vì phù hợp với bài toán đang nghiên cứu.