1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

29 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

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 1

TRƯỜ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ỆNBẠO LỰC

Nhóm sinh viên thực hiện:

Lê Quang Huy – 20172605Vũ Văn Hùng – 20172591Nguyễn Tiến Duy – 20172513Nguyễn Mạnh Dũng - 20182443

Giảng viên hướng dẫn:

Hà Nội, 2022

Trang 2

công công việc

Trang 3

MỤ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ủahình ảnh Đầu ra của lớp chập được gọi là bản đồ đặc trưng hoặc bản đồ kíchhoạ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íchchập 2d Yêu cầu thêm không gian và thời gian chạy 4

Trang 4

CHƯƠ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 5

1.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ệnvà 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 6

CHƯƠ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 8

Hì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ọcba chiều.

Hình 2.5 Tính tích chập 3D

Trang 9

3D 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 10

Hình 2.8: Fully connected layer2.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.

Trang 11

2.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 12

Hình 2.11: Kiến trúc modun của LSTM

Hình 2.12: Trạng thái tế bào

Trang 13

LSTM 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à htxt 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 14

Hì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úctrướ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 15

Hì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 16

CHƯƠ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à: Accuracy.

Precision and Recall.

3.1 Accuacy

Cách đơn giản và hay được sử dụng nhất là accuracy (độ chính xác) Cách đánh giánày đơn giản tính tỉ lệ giữa số điểm được dự đoán đúng và tổng số điểm trong tập dữliệu kiểm thử.

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 accuracy3.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 17

Hình 3.2: Precison và Recall

Trang 18

CHƯƠNG 4 TRIỂN KHAI

Trang 19

Hì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.avi4.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 20

Hì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 21

Hình 4.8: VGG16 trong Keras

Khi tất cả các video đã được xử lý thông qua mô hình VGG16 và các giá trịtruyền kết quả được lưu vào tệp bộ đệm, thì chúng ta có thể sử dụng các giá trị truyềnđó làm đầu vào cho mạng nơ-ron LSTM Sau đó, chúng tôi sẽ đào tạo mạng nơ-ronthứ hai bằng cách sử dụng các lớp từ tập dữ liệu bạo lực (Bạo lực, Không bạo lực), vìvậy mạng học cách phân loại hình ảnh dựa trên giá trị truyền từ mô hình VGG16.

Function to process 20 video frames through VGG16 and get transfer values

Trang 22

Hì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 23

Functions to save transfer values from VGG16 to later use

Hình 4.10: make_file function

Trang 24

Khi 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 26

In ra kết quả accuaracy vs loss:

4.4 Violent Detection

Trang 28

KẾT LUẬN

Kết luận chung

Khi ta train với dữ liệu đầu vào càng lớn thì tỷ lệ chính xác của việc nhận diệncàng giảm, nếu train với dữ liệu lớn thì thuật toán sẽ có độ sai số cao Điều này cólà do chúng em đã viết ít CNN quá, nếu thêm nhiều mạng CNN hơn thì độ chínhxác khi nhận diện với dữ liệu cao hơn

Hướng phát triển

Đề tài của chúng em thực hiện có hướng phát triển vô cùng lớn, nó có thể ứngdụng mạnh mẽ trong đời sống và con người Nó có thể phát triển để nhúng vàotrong các camera để thực hiện theo dõi và thu thập thông tin

Trang 29

TÀ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/

Ngày đăng: 25/05/2024, 22:06

Xem thêm:

TỪ KHÓA LIÊN QUAN

w