Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.51 MB, 29 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
<b>Đề tài:</b>
<i>Nhóm sinh viên thực hiện:</i>
Lê Quang Huy – 20172605Vũ Văn Hùng – 20172591Nguyễn Tiến Duy – 20172513Nguyễn Mạnh Dũng - 20182443
<i>Giảng viên hướng dẫn:</i>
Hà Nội, 2022
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2"><b>CHƯƠNG 1. TỔNG QUAN ĐỀ TÀI...2</b>
1.1 Giới thiệu chung...2
1.2 Tổng quan về nội dung bài tập lớn...2
<b>CHƯƠNG 2. CÁC MƠ HÌNH MACHINE LEARNING...4</b>
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>bản đồ đặc trưng </b> hoặc <b>bản đồ kíchhoạt . Như thể hiện trong hình sau, phép tốn tích chập 3d phức tạp hơn q trình tích</b>chập 2d. u cầu thêm khơng gian và thời gian chạy....4
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><b>1.1 Giới thiệu chung</b>
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. Ngồ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 tố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ínhtố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.
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5"><b>1.2 Tổng quan về nội dung bài tập lớn</b>
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ó.
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6"><b>2.1 Mơ hình 3D CNN</b>
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ú.
<b>Hình 2.1: Mơ hình 3D CNN</b>
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 tốn tích chập 3D phứctạp hơn q trình tích chập 2D. u cầu thêm khơng gian và thời gian chạy.
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8"><b>Hình 2.4: Tính tích chập 2D</b>
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.
<b>Hình 2.5 Tính tích chập 3D</b>
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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ị).
<b>Hình 2.6: Hoạt động gộp 2D</b>
<b>Hình 2.7: Hoạt động gộp 3D</b>
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.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"><b>Hình 2.8: Fully connected layer2.2 Mơ hình LSTM</b>
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ựđốn cho hiện tại.
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="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.
<b>nơ-Hình 2.10: Chuỗi các modun lặp lại của một neural</b>
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.
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12"><b>Hình 2.11: Kiến trúc modun của LSTM</b>
<b>Hình 2.12: Trạng thái tế bào</b>
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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.
<b>Hình 2.13: Cổng sàng lọc thông tin</b>
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à <i>htxt rồi đưa ra kết quả là một số trong khoảng [0, 1] cho</i>
mỗi số trong trạng thái tế bào −1. Đẩu ra là 1 thể hiện rằng nó giữ tồn bộ thơng tin lại,<i>Ct</i>
cịn 0 chỉ rằng taonf bộ thơng tin sẽ bị bỏ đi.
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14"><b>Hình 2.14: Tầng cổng quên</b>
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ẽ<i>Ct</i>
kết hợp 2 giá trị đó lại để tạo ra một cập nhập cho trạng thái.
<b>Hình 2.15: Tầng cổng vào</b>
<i>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 đó đã</i>
quyết định những việc cần làm, nên giờ ta chỉ cần thực hiện là xong.
<i>Ta sẽ nhân trạng thái cũ với ft để bỏ đi những thơng tin ta quyết định qn lúctrước. Sau đó cộng thêm it Ct</i>∗ ~. 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.
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15"><b>Hình 2.16: Cập nhật giá trị trạng thái</b>
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ế
<i>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</i>
sigmoid để được giá trị đầu ra ta mong muốn.
<b>Hình 2.17: Đầu ra của tế bào</b>
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">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.
<b>3.1 Accuacy</b>
Cách đơn giản và hay được sử dụng nhất là <i>accuracy</i> (độ chính xác). Cách đánh giánày đơn giản tính tỉ lệ giữa số điểm được dự đố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%).
<b>Hình 3.1: Ví dụ tính accuracy3.2 Precision và Recall</b>
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à <i>positive</i>,lớp còn lại là <i>negative</i>.
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17"><b>Hình 3.2: Precison và Recall</b>
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18"><b>Hình 4.3: HockeyFights dataset</b>
Những file có dạng fi1_xvid.avi sẽ có những cảnh bạo lực:
<b>Hình 4.4: Video file dạng fi_xvid.avi</b>
Những file có dạng no1_xvid.avi sẽ có những cảnh khơng bạo lực :
<b>Hình 4.5: Video file dạng no_xvid.avi4.3 Trainning</b>
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.
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20"><b>Hình 4.6: Kích thước của mỗi frame khi đi qua từng layer</b>
<b>Hình 4.7: Các layer của VGG16</b>
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21"><b>Hình 4.8: VGG16 trong Keras</b>
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
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22"><b>Hình 4.8: get_transfer_values function</b>
Generator that process one video through VGG16 each function call
<b>Hình 4.9: process_transfer function</b>
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">Functions to save transfer values from VGG16 to later use
<b>Hình 4.10: make_file function</b>
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="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).
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">In ra kết quả accuaracy vs loss:
<b>4.4 Violent Detection</b>
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">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 tố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.
</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">[1] keras-ap-dung-phan-loai-cho-meo/