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

Thông tin cơ bản

Tiêu đề Xây dựng hệ thống nhận diện bạo lực
Tác giả Lê Quang Huy, Vũ Văn Hùng, Nguyễn Tiến Duy, Nguyễn Mạnh Dũng
Người hướng dẫn Giảng viên hướng dẫn
Trường học Trường Đại học Bách Khoa Hà Nội, Viện Điện tử - Viễn thông
Chuyên ngành Trí tuệ nhân tạo và ứng dụng
Thể loại bài tập lớn
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 29
Dung lượng 5,3 MB

Nội dung

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ỆN

BẠO LỰC

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

Lê Quang Huy – 20172605

Trang 2

công công việc

hình

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ủ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 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ệ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 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 7

Hì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 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ọc

ba 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 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 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à 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 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ú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 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à:

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

TỪ KHÓA LIÊN QUAN

w