Chương 1: Trình bảy tổng quan về đề tài của luận văn, phát biểu bài toán, động lực, các thách thức và đóng góp của luận văn. - Chương 2: Trình bày chi tiết về bài toán, cơ sở lý thuyết quan trọng và một số nghiên cứu liên quan đến dề tài của luận văn. - Chương 3: Mô tả chi tiết về hệ thống và các cải tiến so với các cách tiếp cận trước đó. - Chương 4: Cài đặt hệ thống, thử nghiệm và đánh giá trên các bộ dữ liệu chuẩn.
- Chương 5: Kết luận và hướng phát triển. Cơ Sở Lý Thuyết Và Các Công Trình Nghiên Cứu Liên Quan Một số cơ sở lý thuyết 2. Phân phối chuẩn Dữ liệu có thể được phân phối theo nhiều cách như trải về bên phải, trải về bên trái phải hoặc không đồng đều. Nhưng trong đa số trường hợp, dữ liệu có xu hướng tập trung quanh một giá trị trung tâm (0).
Phân phối này được gọi là phân phối chuẩn. Phân phối chuẩn hay còn được gọi là phân phối Gauss là một trong những phân phối quan trọng nhất và được ứng dụng rất rộng rãi trong thực tế. Giống như các phân phối khác, phân phối chuẩn được định nghĩa dựa vào hàm mật độ xác suất: 1 − − f x √2 với là giá trị trung bình, là độ lệch chuẩn, là phương sai. Một số dạng phân phối dữ liệu.com/data/standard-normal-distribution.
Mạng Nơ-ron tích chập (Convolutional Neural Network – CNN) Mạng Nơ-ron tích chập rất giống với mạng Nơ-ron thông thường, chúng được tạo thành từ các nơ-ron có trọng số, bias và hàm mất mát (ví dụ: SVM, Softmax…) trên tầng kết nối đầy đủ (fully connected) cuối cùng. Kiến trúc CNN được tạo thành từ các tầng cơ bản như sau: Hình 2. Kiến trúc CNN cơ bản.2 - Tầng Convolutional: Bao gồm các bộ lọc (filter) là một ma trận vuông có kích thước nhỏ cho trượt qua toàn bộ ma trận các pixel của ảnh đầu vào. Các bộ lọc này có các thông số như Depth (chiều sâu của bộ lọc), Stride (khoảng cách giữa mỗi lần trượt) và Padding (kích thước viền cho ảnh đầu vào).
Khi trượt, ta tính tích chập của ma trận này và ma trận các pixel của vùng ảnh đang xét tới (cách tính như hình 2. Sau khi tính trên toàn bộ ảnh ta sẽ được bản đồ đặc trưng (feature map). Ví dụ: 2 https://en.org/wiki/Convolutional_neural_network 17 Hình 2. Mô tả cách tính tích chập của các bộ lọc.3 - Kết quả đầu ra được tính bằng công thức:.
Với wi là trọng số của filter, là giá trị pixel của ảnh đầu vào, b là bias. Ở đây 3 ma trận vuông xếp theo cột thể hiện 3 kênh màu (Red, Green, Blue) của ảnh đầu vào. Viền gồm các giá trị 0 (zero padding) cũng được tạo để không làm giảm kích thước ảnh đầu vào. Ví dụ trên gồm 2 bộ lọc nên kết quả sẽ ra 2 feature map.
- Tầng ReLU: Là một dạng hàm kích hoạt (activation function). Sau mỗi tầng conv, chỉ có phép nhân và cộng được sử dụng, vì vậy hàm kích hoạt này để loại bỏ tính tuyến tính của mô hình. Có nhiều hàm kích hoạt được sử dụng như tanh, sigmoid 3 http://cs231n.io/convolutional-networks/ 18 nhưng người ta thường sử dụng ReLU do khả năng tính toán nhanh của nó. Hàm kích hoạt có dạng:.
Hình dạng hàm kích hoạt ReLU. - Tầng pooling: Thường dùng nhất là max pooling, tức là trong một cửa sổ thì sẽ lấy giá trị lớn nhất làm đại diện. Chức năng của tầng này là làm giảm kích thước ảnh, tránh overfitting vì các chi tiết nhỏ thường không quan trọng trong việc dự đoán. Ngoài max pooling còn có min pooling là lấy giá trị nhỏ nhất làm đại diện và average pooling là lấy giá trị trung bình làm đại diện.
Ví dụ về maxpooling với filter 2x2 và stride là 2.4 - Tầng kết nối đầy đủ (fully connected): Tương tự như mạng nơ -ron bình thường. Sau khi qua các tầng trên thì dữ liệu đã được rút trích thành những đặc trưng, nhờ đó ta có thể dùng tầng fully connected như một bộ phân lớp.org/wiki/Convolutional_neural_network 19 Để huấn luyện cho mạng, tức là cập nhật bộ trọng số của các bộ lọc cũng như của tầng FC, ta sử dụng thuật toán lan truyền ngược như gradient descent. Các phương pháp giải quyết hiện có Hiện nay có nhiều cách tiếp cận để giải quyết việc ước lượng và đếm số người trong đám đông. Có thể chia thành như sau: - Các phương pháp dựa trên phát hiện đối tượng (Detection-based) - Các phương pháp dựa trên hồi quy (Regression-based) - Các phương pháp dựa trên ước lượng mật độ (Density estimation-based) 2.
Các phương pháp dựa trên phát hiện đối tượng Hầu hết các phương pháp này tập trung vào việc phát hiện đối tượng bằng cách dùng cửa sổ trượt để phát hiện người trong ảnh hay video và dùng thông tin này để đếm số người. Nhược điểm của phương pháp này là khi mật độ người càng đông thì hiệu quả của nó càng thấp. Các phương pháp dựa trên hồi quy Các phương pháp này gồm 2 phần: rút trích các đặc trưng từ ảnh và xây dựng một mô hình hồi quy để ánh xạ các đặc trưng này với kết quả đếm được. Các phương pháp này tránh được việc giải quyết bài toán khó là việc phát hiện đối tượng.
Tuy nhiên lại bỏ qua thông tin về không gian trong ảnh như là vị trí người có trong ảnh. Các phương pháp dựa trên ước lượng mật độ Các phương pháp dựa trên hồi quy tuy tránh được các thách thức về che khuất tuy nhiên lại bỏ qua thông tin về không gian mà chỉ ước lượng ra số đếm. Vì vậy, việc đếm số người trong đám đông chuyển sang hướng mới là đếm số người dựa trên ước lượng mật độ. Bản chất của phương pháp này là hàm mật độ xác suất và số đếm được tính bằng cách lấy tích phân hàm mật độ này trên khoảng xác định.
Phương pháp này có ưu điểm tránh được bài toán khó là phát hiện và định vị đối tượng trong ảnh và chú yếu dựa vào 20 việc ước tính bản đồ mật độ (density map). Để hiểu đơn giản thì bản đồ mật độ là một mảng 2 chiều và tổng các giá trị trong mảng này chính là số đếm. Trong phạm vi luận văn này, học viên chỉ tập trung theo hướng sử dụng phương pháp dựa trên ước lượng mật độ. Các công trình nghiên cứu liên quan Bài toán đếm đối tượng ở đây là ước lượng số lượng đối tượng ở trong ảnh hay video.
Tác giả Lempitsky [9] đã đề xuất một phương pháp xây dựng một hàm mật độ F (density function) từ ảnh I. Thì số đối tượng có trong ảnh sẽ được ước lượng bằng cách lấy tích phân trên toàn bộ ảnh. Gần đây, do sự thành công của mạng Nơ-ron tích chập (CNN) trong nhiều ứng dụng của ngành Thị giác máy tính. Nhiều công trình dựa trên CNN cho bài toán đếm người trong đám đông được phát triển.
Tác giả Wang [25] là một trong những người đầu tiên áp dụng CNN vào bài toán ước lượng số người trong đám đông với nền tảng là phương pháp dựa trên hồi quy. Tác giả chọn mạng AlexNet [8] làm cơ sở để xây dựng mô hình mạng của mình, tầng kết nối đầy đủ cuối cùng của mạng AlexNet được thay thế bằng 1 nơ-ron để ước lượng số đếm. Họ cũng mở rộng thêm các mẫu âm bằng cách thêm vào những mẫu không có người và đặt số người cho mẫu này là 0. Mục đích của việc làm này là để giảm sự sai lệch khi gặp các đối tượng khác như nhà cửa, cây cối, mây… Tác giả Zhang [26] cho rằng cách xây dựng bản đồ mật độ của Lempitsky [9] chỉ phù hợp với các đối tượng tròn như tế bào hay vi khuẩn.
Cách làm này có thể không tối khi áp dụng cho đám đông do tầm nhìn của camera thường bị nghiêng. Để giải quyết vấn đề này, tác giả đề xuất áp dụng Gaussian kernel cho cả phần đầu và phần thân thể. Tác giả cũng chỉ ra rằng các cách tiếp cận trước hiệu năng sẽ giảm khi áp dụng cho các ảnh mới khác với tập dữ liệu huấn luyện. Để giái quyết vấn đề này, tác giả đào tạo mô hình mạng của họ bằng cách huấn luyện luân phiên 2 tác vụ: đếm và ước lượng mật độ.
Khi gặp các ảnh mới (không nằm trong tập huấn luyện và tập kiểm thử) thì sẽ tìm kiếm các 21 mẫu trong tập huấn luyện có phối cảnh (perspective) tương tự với ảnh này. Điều này làm cho mô hình mạng có thể thích nghi với các cảnh mới mà không cần thêm thông t in vị trí các đầu người có trong ảnh. Tuy nhiên, tác giả Boominathan [2] lại cho rằng việc làm này khá tốn thời gian so với hiệu quả mà nó mang lại. Tác giả Zhang [27] đã đề xuất một kiến trúc đa cột (multi-column) để xử lý các ảnh đầu vào.
Phương pháp được sử dụng tạo ra một mạng gồm 3 cột, mỗi cột sẽ các bộ lọc với kích thước khác nhau (lớn, vừa, nhỏ) (Hình 2. Tuy nhiên khác với cách tiếp cận trước là cố định giá trị trong nhân Gaussian (Gaussian kernel), tác giả chỉ ra mối liên quan giữa kích thước đầu người và khoảng cách với các đầu người bên cạnh. Tức là khoảng cách giữa các đầu người được đánh dấu càng gần thì có thể đầu người đó nhỏ. Vì thế, họ dùng 2 phương pháp để chọn tham số σ là kernel cố định (fixed kernel) và kernel thích ứng hình học (geometry-adapter kernel) để xây dựng bản đồ mật độ xác thực.
Dựa vào thực nghiệm, khi bộ dữ liệu ảnh có mật độ vừa thì tác giả dùng σ cố định còn khi bộ dữ liệu có mật độ đông thì dùng σ thích ứng. Tác giả cũng tạo ra một bộ dữ liệu mới gọi là ShanghaiTech gồm 1198 hình ảnh và 330000 đầu người đã được đánh dấu. Kiến trúc MCNN. 22 Do đây là một trong hai mô hình học viên lấy làm nền, vì thế học viên sẽ mô tả chi tiết về mô hình mạng.
MCNN bao gồm 3 cột CNN, kiến trúc mỗi cột được miêu tả ở hình 2. Cột CNN đầu tiên (conv-ReLU-pooling-conv-ReLU-pooling-conv-ReLU- conv-ReLU) bao gồm tầng conv (16 filter 9x9), tầng max pooling (2x2), tầng conv (32 filter 7x7), tầng max pooling (2x2), tầng conv (16 filter 7x7), tầng conv (8 filter 7x7) (Lưu ý, sau mỗi tầng fully connected đều có sử dụng hàm kích hoạt ReLu) Tương tự với các cột CNN thứ 2 và 3 nhưng chỉ thay đổi số lượng và kích thước bộ lọc. Mục đích là dùng bộ lọc kích thước lớn để rút đặc trưng từ những đầu người lớn và bộ lọc kích thước nhỏ để rút đặc trưng từ những đầu người nhỏ. Để đỡ phức tạp cho việc tính toán thì kích thước bộ lọc càng lớn thì số bộ lọc sẽ càng nhỏ.