Những thay đổi cơ bảnđáng kể của nhóm được tóm tắt như sau:Đề xuất mô hình CNN 3D end-to-end, không có sử dụng các tính năng thủ cônghoặc kiến trúc RNN dành riêng cho việc mã hóa thông t
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
Báo cáo bài tập lớn
TRÍ TUỆ NHÂN TẠO VÀ ỨNG DỤNG
Đề tài:
XÂY DỰNG HỆ THỐNG NHẬN DIỆN
BẠO LỰC
Nhóm sinh viên thực hiện:
Lê Quang Huy – 20172605
Trang 2công công việc
hình
Trang 3MỤC LỤ
CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 2
1.1 Giới thiệu chung 2
1.2 Tổng quan về nội dung bài tập lớn 2
CHƯƠNG 2 CÁC MÔ HÌNH MACHINE LEARNING 4
2.1 Mô hình 3D CNN 4
2.1.1 Khái niệm về mô hình CNN 4
2.1.2 Mô hình 3D CNN và những điều cần lưu ý 4
Lớp tích chập sử dụng tích chập để truy xuất các đặc điểm có trong các tín hiệu của hình ảnh Đầu ra của lớp chập được gọi là bản đồ đặc trưng hoặc bản đồ kích hoạt Như thể hiện trong hình sau, phép toán tích chập 3d phức tạp hơn quá trình tích chập 2d Yêu cầu thêm không gian và thời gian chạy 4
2.2 Mô hình LSTM 9
2.2.1 Mạng hồi quy RNN (Recurrent Neural Network) 9
2.2.2 Vấn đề phụ thuộc xa 10
2.2.3 LSTM (Long Short Term Memory networks) 10
2.2.4 Ý tưởng LSTM 11
Trang 4CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI
1.1 Giới thiệu chung
Ngày nay, các vụ bạo lực và khủng bố đã trở thành các mối đe dọa chínhđối với an ninh và ổn định thế giới Nhờ sự phát triển của công nghệ truyềnthông kỹ thuật số, cảnh bạo lực có thể được ghi lại bằng camera giám sát Tuynhiên, với một số lượng lớn video được tạo ra mỗi giây, việc bảo vệ nhữngvideo này theo cách thủ công và ghi lại mọi cảnh bạo lực trong thời gian thực làkhông thực tế Do đó, việc phát triển một cách tiếp cận hiệu quả có ý nghĩa sâusắc có thể tự động theo dõi và phát hiện bạo lực trong các video giám sát Bạolực được coi là những hành vi hung hăng của con người Các nhà nghiên cứu đãnghiên cứu các mô hình trực quan của chuyển động bạo lực và thiết kế nhiều bộ
mô tả khác nhau để đại diện cho những đặc điểm này Ngoài ra, có ba bộ dữliệu điểm chuẩn tiêu chuẩn được xây dựng để đánh giá hiệu suất Trong nhữngnăm gần đây, thị giác máy tính đã tiếp tục phát triển với việc cải thiện sức mạnhtính toán và sự sẵn có của các bộ dữ liệu quy mô lớn Học sâu, một công nghệquan trọng trong thị giác máy tính, đã đạt được những cột mốc quan trọng trongnhiều lĩnh vực, chẳng hạn như phân loại hình ảnh và phát hiện đối tượng Nócũng đã được giới thiệu để giải quyết vấn đề phát hiện bạo lực So với cácphương pháp tiếp cận dựa trên các tính năng được làm thủ công, các phươngpháp học sâu mang lại những cải tiến to lớn về độ mạnh mẽ và độ chính xác.Tuy nhiên, có thể phải đánh đổi và khó lựa chọn khi xem xét cả hiệu quả tínhtoán và độ chính xác nhận dạng Do đó, trong các ứng dụng thực tế, điều rấtquan trọng là phát triển một mô hình học sâu
Trang 51.2 Tổng quan về nội dung bài tập lớn
Với những thực tế ở trên, nhóm tận dụng nghiên cứu mới nhất phát hiện
và phát triển một mô hình học sâu trong công việc này Những thay đổi cơ bảnđáng kể của nhóm được tóm tắt như sau:
Đề xuất mô hình CNN 3D end-to-end, không có sử dụng các tính năng thủ cônghoặc kiến trúc RNN dành riêng cho việc mã hóa thông tin tạm thời
Chứng minh rằng các đơn vị nút cổ chai và Desnenetkiến trúc được thông quatrong mô hình đề xuất đóng góp cải thiện khả năng trình bày tóm tắtcác tínhnăng không gian và tương đối đòi hỏi ít hơn số lượng các tham số
Thực nghiệm xác nhận mô hình của mình trên ba bộ dữ liệu điểm chuẩn và tiếnhành các thử nghiệm bổ sung để đánh giá hiệu lực và hiệu quả của nó
Trang 6CHƯƠNG 2 CÁC MÔ HÌNH MACHINE LEARNING
2.1 Mô hình 3D CNN
2.1.1 Khái niệm về mô hình CNN
The convolution neural network (CNN) là một kiến trúc học sâu chiết xuấtthông tin ngữ nghĩa từ dữ liệu đầu vào và nó thể hiện một bước nhảy vọt đáng kể trongtầm nhìn máy tính Máy hiện có thể thực hiện phân tích hình ảnh giống như con ngườinhờ kiến trúc này Giờ đây, hệ thống có thể nhận dạng mọi thứ trong ảnh hoặcvideo Tất cả đều có thể thực hiện được việc phát hiện đối tượng, nhận dạng khuônmặt, phân đoạn và phân loại nhờ sự kết hợp giữa thị giác máy tính và học sâu.2.1.2 Mô hình 3D CNN và những điều cần lưu ý
3D CNN là mạng nơ-ron tích chập có thể xử lý dữ liệu đầu vào 3D Cấu trúccủa nó giống với 2D CNN, nhưng tốn nhiều không gian bộ nhớ và thời gian chạy hơnCNN 2D do sự phức tạp của 3D Mặt khác, nó có thể cho kết quả chính xác như CNN2D nhờ vào dữ liệu đầu vào phong phú
Hình 2.1: Mô hình 3D CNN
3D Convolution Layer: Lớp tích chập sử dụng tích chập để truy xuất các đặcđiểm có trong các tín hiệu của hình ảnh Đầu ra của lớp chập được gọi là bản đồ đặctrưng hoặc bản đồ kích hoạt Như thể hiện trong hình sau, phép toán tích chập 3D phứctạp hơn quá trình tích chập 2D Yêu cầu thêm không gian và thời gian chạy
Trang 7Hình 2.2: Tích chập 2D
Hình 2.3: Tích chập 2D
Kết quả tích chập được tính theo Filter (f), Padding (p), and Stride (s)
The filter là bộ lọc dùng để phân tích vùng ảnh theo khu vực
The padding đại diện cho các pixel (có giá trị bằng không) để thêm xung quanhhình ảnh để tránh mất thông tin
The stride cho biếts số lượng pixel cần nhảy trong mỗi bước để tiếp tục trongquá trình tích chập
Trang 8Hình 2.4: Tính tích chập 2D
Kết quả tích chập được tính theo cách tương tự như CNN 2D Sử dụng bộ lọc
ba chiều
Hình 2.5 Tính tích chập 3D
Trang 93D Pooling Layer: Lớp gộp có nhiệm vụ giảm kích thước không gian của hìnhảnh trong khi chỉ giữ lại các pixel mô tả nhất Có 3 phương pháp phổ biến để sử dụng:Max-pooling (chọn giá trị cao nhất), Min-pooling (chọn giá trị thấp nhất), Average-pooling (trung bình của các giá trị).
Hình 2.6: Hoạt động gộp 2D
Hình 2.7: Hoạt động gộp 3D
3D Fully Connected Layer: Lớp được kết nối đầy đủ áp dụng cho đầu vào đãđược làm phẳng trước đó Nó kết nối mỗi nơ-ron trong một lớp với tất cả các nơ-ron ởlớp khác, nó hoạt động giống như mạng nơ-ron đa thụ thể Trong trường hợp phânloại, kết quả của lớp này là một vectơ chứa các giá trị xác suất của phân loại
Trang 10Hình 2.8: Fully connected layer 2.2 Mô hình LSTM
2.2.1 Mạng hồi quy RNN (Recurrent Neural Network)
Mạng này chứa các vòng lặp bên trong cho phép thông tin có thể lưu lại được Một điểm nổi bật của RNN chính là ý tưởng kết nối các thông tin phía trước để dựđoán cho hiện tại
Hình 2.9: Mạng RNN
Một mạng nơ-ron hồi quy có thể được coi là nhiều bản sao chép của cùng mộtmạng, trong đó mỗi đầu ra của mạng này là đầu vào của một mạng sao chép khác.Ứng dụng RNN đã đưa ra được nhiều kết quả không thể tin nổi trong nhiều lĩnhvực: nhận dạng giọng nói, mô hình hóa ngôn ngữ, dịch máy, mô tả ảnh,… Danh sách vẫncòn đang được mở rộng tiếp
Trang 112.2.3 LSTM (Long Short Term Memory networks)
LSTM được thiết kế để tránh được vấn đề phụ thuộc xa (long-term dependency).Việc nhớ thông tin trong suốt thời gian dài là đặc tính mặc định của chúng, chứ ta khôngcần phải huấn luyện nó để có thể nhớ được
Mọi mạng hồi quy đều có dạng là một chuỗi các mô-đun lặp đi lặp lại của mạng ron Với mạng RNN chuẩn, các mô-dun này có cấu trúc rất đơn giản, thường là mộttầng tanh
nơ-Hình 2.10: Chuỗi các modun lặp lại của một neural
LSTM cũng có kiến trúc dạng chuỗi như vậy, nhưng các mô-đun trong nó có cấutrúc khác với mạng RNN chuẩn Thay vì chỉ có một tầng mạng nơ-ron, chúng có tới 4 tầngtương tác với nhau một cách rất đặc biệt
Trang 12Hình 2.11: Kiến trúc modun của LSTM
Hình 2.12: Trạng thái tế bào
Trang 13LSTM có khả năng bỏ đi hoặc thêm vào các thông tin cần thiết cho trạng thái tếbáo, chúng được điều chỉnh cẩn thận bởi các nhóm được gọi là cổng (gate).
Các cổng là nơi sàng lọc thông tin đi qua nó, chúng được kết hợp bởi một tầngmạng sigmoid và một phép nhân
Hình 2.13: Cổng sàng lọc thông tin
Tầng sigmoid sẽ cho đầu ra là một số trong khoản [0,1], mô tả có bao nhiêu thôngtin có thể được thông qua Khi đầu ra là 0 thì có nghĩa là không cho thông tin nào qua cả,còn khi là 1 thì có nghĩa là cho tất cả các thông tin đi qua nó
Một LSTM gồm có 3 cổng như vậy để duy trì và điều hành trạng thái của tế bàoBước đầu tiên của LSTM là quyết định xem thông tin nào cần bỏ đi từ trạng thái tếbào Quyết định này được đưa ra bởi tầng sigmoid - gọi là “tầng cổng quên” (forget gatelayer) Nó sẽ lấy đầu vào là −1 và ht xt rồi đưa ra kết quả là một số trong khoảng [0, 1] cho
mỗi số trong trạng thái tế bào −1 Đẩu ra là 1 thể hiện rằng nó giữ toàn bộ thông tin lại,Ct
còn 0 chỉ rằng taonf bộ thông tin sẽ bị bỏ đi
Trang 14Hình 2.14: Tầng cổng quên
Bước tiếp theo là quyết định xem thông tin mới nào ta sẽ lưu vào trạng thái tế bào.Việc này gồm 2 phần Đầu tiên là sử dụng một tầng sigmoid được gọi là “tầng cổng vào”(input gate layer) để quyết định giá trị nào ta sẽ cập nhập Tiếp theo là một tầng tanh tạo ramột véc-tơ cho giá trị mới ~ nhằm thêm vào cho trạng thái Trong bước tiếp theo, ta sẽCt
kết hợp 2 giá trị đó lại để tạo ra một cập nhập cho trạng thái
Hình 2.15: Tầng cổng vào
Cập nhập trạng thái tế bào cũ Ct−1 thành trạng thái mới Ct Ở các bước trước đó đã
quyết định những việc cần làm, nên giờ ta chỉ cần thực hiện là xong
Ta sẽ nhân trạng thái cũ với ft để bỏ đi những thông tin ta quyết định quên lúc trước Sau đó cộng thêm it Ct∗ ~ Trạng thái mơi thu được này phụ thuộc vào việc ta quyếtđịnh cập nhập mỗi giá trị trạng thái ra sao
Trang 15Hình 2.16: Cập nhật giá trị trạng thái
Cuối cùng, ta cần quyết định xem ta muốn đầu ra là gì Giá trị đầu ra sẽ dựa vàotrạng thái tế bào, nhưng sẽ được tiếp tục sàng lọc Đầu tiên, ta chạy một tầng sigmoid đểquyết định phần nào của trạng thái tế bào ta muốn xuất ra Sau đó, ta đưa nó trạng thái tế
bảo qua một hàm tanh để co giá trị nó về khoảng [−1,1], và nhân nó với đầu ra của cổng
sigmoid để được giá trị đầu ra ta mong muốn
Hình 2.17: Đầu ra của tế bào
Trang 16CHƯƠNG 3 PHƯƠNG PHÁP ĐÁNH GIÁ HỆ THỐNG
Khi xây dựng một mô hình Machine Learning, chúng ta cần một phép đánh giá đểxem mô hình sử dụng có hiệu quả không và để so sánh khả năng của các mô hình.Hiệu năng của một mô hình thường được đánh giá dựa trên tập dữ liệu kiểm thử(test data)
Các phương pháp thường được sử dụng là:
Ví dụ, ta có thể đếm được có 6 điểm dữ liệu được dự đoán đúng trên tổng số 10điểm Vậy ta kết luận độ chính xác của mô hình là 0.6 (hay 60%)
Hình 3.1: Ví dụ tính accuracy 3.2 Precision và Recall
Với bài toán phân loại mà tập dữ liệu của các lớp là chênh lệch nhau rất nhiều, cómột phép đó hiệu quả thường được sử dụng là Precision-Recall
Trước hết xét bài toán phân loại nhị phân Ta cũng coi một trong hai lớp là positive,lớp còn lại là negative
Trang 17Hình 3.2: Precison và Recall
Trang 18CHƯƠNG 4 TRIỂN KHAI
Trang 19Hình 4.3: HockeyFights dataset
Những file có dạng fi1_xvid.avi sẽ có những cảnh bạo lực:
Hình 4.4: Video file dạng fi_xvid.avi
Những file có dạng no1_xvid.avi sẽ có những cảnh không bạo lực :
Hình 4.5: Video file dạng no_xvid.avi 4.3 Trainning
Biểu đồ sau đây cho thấy cách dữ liệu lưu chuyển khi sử dụng mô hình VGG16cho Học chuyển giao Đầu tiên, chúng tôi nhập và xử lý hàng loạt 20 khung hình videovới mô hình VGG16 Ngay trước lớp phân loại cuối cùng của mô hình VGG16, chúngtôi lưu cái gọi là Tranfers Values vào tệp bộ đệm
Kiến trúc của VGG16 bao gồm 16 layer :13 layer Conv đều có kernel 3×3, saumỗi layer conv là maxpooling downsize xuống 0.5, và 3 layer fully connection
Trang 20Hình 4.6: Kích thước của mỗi frame khi đi qua từng layer
Hình 4.7: Các layer của VGG16
Trang 22Hình 4.8: get_transfer_values function
Generator that process one video through VGG16 each function call
Hình 4.9: process_transfer function
Trang 23Functions to save transfer values from VGG16 to later use
Hình 4.10: make_file function
Trang 24Khi xác định kiến trúc LSTM, chúng ta phải tính đến kích thước của các giá trịtruyền Từ mỗi khung, mạng VGG16 thu được dưới dạng đầu ra một vectơ gồm 4096giá trị truyền Từ mỗi video, chúng tôi đang xử lý 20 khung hình, vì vậy chúng tôi sẽ
có 20 x 4096 giá trị cho mỗi video Việc phân loại phải được thực hiện có tính đến 20khung hình của video Nếu bất kỳ người nào trong số họ phát hiện thấy cảnh bạo lực,video đó sẽ được phân loại là bạo lực
Kích thước đầu vào đầu tiên của tế bào thần kinh LSTM là kích thước thời gian,trong trường hợp của chúng tôi là 20 Thứ hai là kích thước của vector đặc trưng (giátrị truyền)
Trang 26In ra kết quả accuaracy vs loss:
4.4 Violent Detection
Trang 29TÀI LIỆU THAM KHẢO
[1] keras-ap-dung-phan-loai-cho-meo/
https://aicurious.io/posts/2019-10-03-xay-dung-bo-phan-loai-vgg-16-voi-[2] https://machinelearningcoban.com/2017/08/31/evaluation/
[3] https://dominhhai.github.io/vi/2017/10/what-is-lstm/