Tạo chữ ký điện tử với dáng đi của mọi người

May 09 2022
Một nỗ lực sáng tạo để cải thiện an ninh mạng với máy học
Vào đầu năm 2018, chúng tôi đã dự đoán được tính hữu ích của việc phát hiện mốc của các điểm khác nhau trong lòng bàn tay và ngón tay của con người và giải thích cách chúng ta có thể xây dựng dựa trên phát hiện mốc để hiểu các tín hiệu khác nhau thông qua bàn tay với máy học. Kể từ đó, chúng tôi đã chứng kiến ​​nhiều sản phẩm tận dụng ý tưởng hữu ích này để hiểu cử chỉ được thực hiện bằng tư thế tay chủ yếu thông qua ảnh chụp nhanh tĩnh.
Ảnh của Matt Quinn, Unsplash

Vào đầu năm 2018, chúng tôi đã dự đoán được tính hữu ích của việc phát hiện mốc của các điểm khác nhau trong lòng bàn tay và ngón tay của con người và giải thích cách chúng ta có thể xây dựng dựa trên phát hiện mốc để hiểu các tín hiệu khác nhau thông qua bàn tay với máy học. Kể từ đó, chúng tôi đã chứng kiến ​​nhiều sản phẩm tận dụng ý tưởng hữu ích này để hiểu cử chỉ được thực hiện bằng tư thế tay chủ yếu thông qua ảnh chụp nhanh tĩnh. Trong bài viết hôm nay, chúng tôi muốn đi trước một bước và tập trung vào một vấn đề lớn hơn là nhận biết mọi người thông qua phát hiện dáng đi bằng cách sử dụng nhiều điểm mốc hơn trên cơ thể người trong một video ngắn. Chúng tôi tin rằng những loại ứng dụng như vậy sẽ chiếm vị trí trung tâm với những tiến bộ liên tục trong phát hiện mốc của con người và xử lý nhanh hơn.

Tại sao việc phát hiện dáng đi lại quan trọng?

Khi đại dịch Covid-19 hoành hành trên thế giới, mọi người phải đeo khẩu trang che kín mặt. Đột nhiên, nhiều mô hình nhận dạng khuôn mặt phải đưa ra quyết định chỉ với một số điểm mốc giới hạn đến từ trán và mắt. Qua đêm, chữ ký điện tử được tạo ra thông qua nhận dạng khuôn mặt đã không thể thực hiện được. Chúng ta cũng đã thấy với sự ra đời của máy in 3D, bọn tội phạm đang tạo ra những khuôn mặt để đóng giả mục tiêu của chúng. Để làm cho vấn đề trở nên tồi tệ nhất, ngày nay, các mô hình Deepfake dễ dàng có sẵn đủ tốt để thuyết phục đối tượng về một số tuyên bố mà nạn nhân mục tiêu nói.

Tất cả những sơ hở và thiếu sót này trong công nghệ được tìm kiếm nhiều nhất hiện nay sẽ đòi hỏi sự khám phá các kỹ thuật mới hơn. Thế hệ chữ ký điện tử thông qua cách thức đi bộ của một người có thể là một khởi đầu đầy hứa hẹn.

Mô hình phát hiện mốc của con người

Mặc dù việc phát triển một mô hình phát hiện dáng đi từ đầu có thể là một bài tập rất thú vị và vui nhộn, nhưng nó sẽ đòi hỏi một lượng dữ liệu khổng lồ, nhiều khả năng tính toán và thời gian mà nhiều người trong chúng ta sẽ không có quyền truy cập. Do đó, chúng tôi sẽ cố gắng xây dựng dựa trên một số công việc tốt đã được thực hiện. Là một nhà phát triển ứng dụng học máy, điều rất quan trọng là phải nhận thức được tất cả những phát triển đang diễn ra trong lĩnh vực nghiên cứu. Công việc được thực hiện trong việc nhận ra các điểm mốc khác nhau trong cơ thể con người thông qua các mô hình học sâu sẽ tạo thành một thành phần cơ bản trong kiến ​​trúc của chúng ta.

TensorFlow Hub cung cấp cho chúng ta nhiều mô hình học đượcđiều đó sẽ giúp chúng tôi phát hiện các điểm mốc của cơ thể con người. Vì chúng tôi sẽ không điều chỉnh các mô hình này và thay vào đó, chúng tôi quan tâm nhiều hơn đến việc chỉ thực hiện các suy luận thông qua các mô hình này, chúng tôi thậm chí có thể chọn cải thiện độ trễ của mình bằng cách chuyển sang phiên bản TensorFlow Lite bằng cách đánh giá một chút về độ chính xác của các mô hình. Trong thử nghiệm của mình, chúng tôi sẽ chọn phiên bản TensorFlow Lite của biến thể Thunder của mô hình MoveNet có trong TensorFlow Hub. Mô hình MoveNet sẽ cho chúng ta tọa độ 17 XY cùng với điểm tin cậy tại mỗi điểm chính.

Các điểm chính của mốc (Nguồn ảnh: TensorFlow)

Loại dữ liệu

Hiện tại, mô hình phát hiện mốc của con người của chúng tôi đã được hoàn thiện, bước tiếp theo là tập trung vào dữ liệu. Vì chúng tôi đang nhắm mục tiêu xây dựng một ứng dụng mà chúng tôi sẽ tạo ra một loại chữ ký điện tử của một cá nhân đang đi bộ, chúng tôi không có khả năng có nhiều dữ liệu của từng người. Trong các tình huống thực tế, chúng tôi có thể có nhiều nhất 6–10 giây quay video mà chúng tôi sẽ phải thực hiện. Mục tiêu của chúng tôi rất giống với việc nói rằng các tổ chức tài chính có thể thu thập nhiều nhất 1 hoặc 2 chữ ký mẫu của khách hàng trong khi họ mở tài khoản mới với họ.

Đi sâu hơn vào cài đặt vấn đề của chúng tôi, chúng tôi sẽ chạy mô hình ước tính tư thế của mình trên mỗi khung hình của video để tạo dữ liệu chuỗi thời gian về các vị trí mốc trong hình ảnh như minh họa bên dưới.

Trái: Video đầu vào, Giữa: Phát hiện, Phải: Các điểm chính (GIF của Tác giả)

Bây giờ, một câu hỏi tự nhiên được đặt ra là làm thế nào chúng ta lập hồ sơ về kiểu đi bộ của một cá nhân chỉ trong 10 giây ghi lại. Đây là nơi quan trọng mà chúng ta phải lấp đầy khoảng trống vì dữ liệu vượt trội hơn nhiều so với các mô hình học máy hoặc học sâu. Chúng tôi sẽ cố gắng bắt chước nhiều mẫu nhất có thể mà chúng tôi có thể nghĩ ra.

Tăng dữ liệu

Tăng dữ liệu là một kỹ thuật tạo ra một tập dữ liệu nhân tạo để bổ sung cho sự khan hiếm của dữ liệu đã có sẵn. Dữ liệu mới được tạo mô phỏng các phần còn thiếu của các mẫu trong dữ liệu hiện có, do đó giúp giảm bớt quy trình học tập các mô hình ML trong quá trình đào tạo. Chúng tôi đã đề cập sâu về chủ đề này trong một bài viết trước đó nhắm mục tiêu cụ thể đến việc tăng dữ liệu của hình ảnh.

Trong vấn đề mà chúng tôi đang cố gắng giải quyết, bên cạnh lượng dữ liệu ít hơn, chúng tôi thậm chí còn phải lưu ý đến thực tế rằng cá nhân đó có thể đang đi khác với video tham chiếu của chúng tôi và thật phi logic khi mong đợi rằng cá nhân đó sẽ luôn duy trì một phong cách tương tự . Mặc dù có những thay đổi trong phong cách đi bộ, nói chung, tính năng động tổng thể trong chuyển động và phối hợp các bộ phận cơ thể của anh ấy / cô ấy vẫn khá giống nhau trong một thời gian (ví dụ như vài năm qua). Tuy nhiên, phần còn thiếu của bước đi khác nhau do các tình huống khác nhau, do đó tạo ra một phong cách khác nhau, chúng tôi sẽ bổ sung nó thông qua việc tăng cường dữ liệu.

a) Đi bộ nhanh:
Mặc dù cá nhân trong quá trình quay video tham chiếu có thể không bận tâm về bất cứ điều gì khác, nhưng chắc chắn trong cuộc sống thực, họ có thể đang vội vàng. Khi người đó đang đi nhanh, quá trình chuyển điểm giữa các khung hình sẽ không mượt mà và liên tục. Để mô phỏng tình huống như vậy trong video, chúng ta có thể bỏ qua ngẫu nhiên một vài khung hình trong khoảng thời gian đều đặn.

Đi bộ nhanh (GIF của Tác giả)

b) Đi bộ chậm:
Tương tự như đi bộ nhanh, một người có thể bị thương hoặc có thể mất thời gian và do đó có thể đi bộ chậm. Để mô phỏng điều kiện đi bộ chậm, bạn cần chèn các khung vào giữa các khung hiện có. Các điểm mốc trong video chậm này nên được nội suy từ các khung hình gần nó để chuyển động của một người có vẻ liên tục và số lượng khung hình trong video tăng lên với tốc độ khung hình / giây không đổi sẽ làm cho người đó đi chậm lại.

Đi bộ chậm (GIF của Tác giả)

c) Tay chòng chành:
Nhiều khi đang đi bộ, người ta có thể cầm túi ở một hoặc cả hai tay. Trong những trường hợp như vậy, (các) tay cầm (các) túi sẽ không cử động nhiều và sẽ rung trong một phạm vi nhỏ. Chúng tôi mô phỏng các điều kiện như vậy bằng cách giữ cho các điểm mốc tương ứng với cổ tay, khuỷu tay và vai của bàn tay đã chọn di chuyển trong một phạm vi nhỏ.

Trái: Tay trái bị trì trệ, Giữa: Tay phải bị trì trệ, Bên phải: Cả hai tay bị trì trệ (GIF của Tác giả)

d) Chỉ tư thế trên cùng:
Đôi khi, các camera ghi lại chuyển động của mục tiêu có thể đã được lắp đặt ở độ cao lớn hơn hoặc đặt nghiêng ở một vị trí lạ để chỉ có thể chụp được tư thế trên cùng của đối tượng. Chúng ta cần mô phỏng các điều kiện như vậy bằng cách dịch chuyển các điểm mốc của người đó xuống sao cho tự nhiên mà chỉ có tư thế trên cùng mới có thể nhìn thấy được.

Tư thế hàng đầu có thể nhìn thấy (GIF của Tác giả)

e) Nhiễu ngẫu nhiên:
Một vấn đề khác với máy ảnh ghi lại chuyển động của mục tiêu có thể là nó đã trở nên cũ và các khung hình bị trục trặc trong đó. Nó cũng có thể xảy ra rằng điều kiện ánh sáng trên đối tượng không phù hợp. Trong những trường hợp như vậy, một số điểm mốc có thể ngẫu nhiên biến mất và / hoặc mô hình ước lượng tư thế đưa ra dự đoán có độ tin cậy rất thấp. Loại tăng cường này cũng thêm một chút hiệu ứng điều chỉnh hơn so với các loại tăng cường khác để ngăn mô hình của chúng tôi bị trang bị quá mức.

Các điểm chính bị trục trặc (GIF của Tác giả)

f) Đang đi bộ tạm dừng:
Một người có thể phải dừng lại giữa chừng để xem điện thoại di động của mình hoặc thực hiện một số hoạt động khác. Trong những trường hợp như vậy, chân sẽ vẫn trì trệ nhưng các bộ phận khác của cơ thể như tay và đầu có thể cử động một chút.

Đi bộ có điểm dừng giữa (GIF của Tác giả)

g) Đi bộ sang trái và phải:
Cho đến nay, trong tất cả các video, chúng tôi đều giả định rằng đối tượng sẽ đi ngay trước máy ảnh theo đường thẳng. Nhưng đối tượng có thể di chuyển ngẫu nhiên sang trái hoặc phải.

Trái: Di ​​chuyển sang phải, Phải: Di ​​chuyển sang trái (GIF của Tác giả)

h) Kết hợp hỗn hợp:
Đối tượng không cần phải thay đổi phong cách thông thường của mình theo một cách tuy nhiên bản ghi có thể ngắn. Do đó, chúng ta phải kết hợp hai hoặc nhiều điều kiện ở trên để mô phỏng kiểu hỗn hợp nối tiếp hoặc thậm chí song song.

i) Suy nghĩ thêm về các lựa chọn thay thế:
Mô hình của chúng tôi sẽ chỉ tốt khi có lượng dữ liệu đa dạng mà nó có thể nhìn thấy trong quá trình đào tạo. Mặc dù tập hợp các kiểu đi bộ thay thế ở trên sẽ bổ sung sự đa dạng tốt cho tập dữ liệu của chúng tôi, nhưng không bao giờ có giới hạn cứng đối với các loại tình huống mà chúng tôi có thể nghĩ ra để cung cấp thêm dữ liệu.

Xây dựng mô hình

Xây dựng một mô hình phân loại nghe có vẻ thú vị khi phân loại trực tiếp đối tượng và tạo mỗi đối tượng thành một lớp. Nhưng có một sự thất bại lớn trong cách tiếp cận này. Chúng tôi đang nghĩ đến việc mở rộng giải pháp này lên vài nghìn và phương pháp phân loại sẽ dẫn đến một ma trận dày đặc lớn (lớp cuối cùng). Quan trọng hơn, mặc dù đã thực hiện tất cả việc tăng cường dữ liệu, chúng tôi vẫn thực sự không có dữ liệu có thể tạo ra các ranh giới tốt thông qua việc học đại diện cho mỗi lớp.

Để giải quyết các vấn đề trên, chúng tôi sẽ sử dụng phương pháp học một lần. Với phương pháp học một lần, chúng tôi sẽ có thể đánh giá nhanh các video của người mới mà không cần đưa chúng vào như một phần của khóa đào tạo. Học một lần sử dụng chức năng tương tự để so sánh hai thực thể giống nhau như thế nào.

Kiến trúc của chúng tôi sẽ bao gồm mạng lưới Xiêm . Vì dữ liệu của chúng tôi dựa trên chuỗi thời gian, chúng tôi sẽ sử dụng mạng nơ-ron lặp lại (GRU hoặc LSTM) bên trong mạng Siamese. Chúng tôi sẽ chuyển dữ liệu chuỗi thời gian của các vị trí mốc của một video tham chiếu và dữ liệu chuỗi thời gian của các vị trí mốc của video thử nghiệm vào mạng Siamese. Sau đó, các đại diện tiềm ẩn riêng lẻ sẽ được chuyển qua các lớp dày đặc để tối đa hóa hoặc giảm thiểu điểm số dựa trên video thuộc về cùng một người hoặc không tương ứng.

Kiến trúc cấp cao (Hình ảnh của Tác giả)

Kết quả

Trong thử nghiệm của mình, chúng tôi thu thập dữ liệu bằng cách quay video những người đang đi bộ. Chúng tôi thậm chí đã cắt bỏ các video có sẵn miễn phí về những người đang đi bộ có trong bộ dữ liệu nguồn mở và chúng tôi cũng thu thập một số video mà chủ sở hữu của các video cho phép chúng tôi sử dụng tài nguyên của họ để nghiên cứu.

Đây là kết quả suy luận trên một trong các video thử nghiệm được cung cấp cho mô hình được đào tạo của chúng tôi. Điểm tương đồng với video tham chiếu của đối tượng được hiển thị bên trong dấu ngoặc. Mô hình cho điểm tương tự nhỏ hơn 0,5 với tất cả các video tham chiếu không chính xác

Trái: Video đầu vào kiểm tra, Giữa: Phát hiện, Phải: Kết quả có điểm tương tự (GIF của Tác giả)

Cách tiếp cận này có phải là tốt nhất không?

Không hoàn toàn không. Toàn bộ mục đích của chúng tôi trong thử nghiệm này là tạo ra một loại chữ ký điện tử mới. Với mọi tiến bộ trong các kỹ thuật đổi mới nhằm mục đích tăng cường bảo mật, những kẻ làm giả sẽ luôn tìm ra cách để vượt qua nó. Hiện tại, với sự trợ giúp của vid2vid , một video giả có thể được tạo ra sao chép dáng đi của nạn nhân. Tuy nhiên, phân tích dáng đi kết hợp với nhận dạng khuôn mặt sẽ là một cơ chế tốt để tạo ra chữ ký điện tử của một người. Tuy nhiên, chúng tôi tin rằng phương pháp đơn giản được giới thiệu trong thử nghiệm này có thể tạo thành một mô hình cơ sở tốt để đưa mọi thứ về phía trước.

Sự kết luận

Trong bài viết này, chúng tôi đã học cách xây dựng dựa trên các giải pháp hiện có. Chúng tôi đã tận dụng các giải pháp ước tính tư thế hàng đầu để điều chỉnh khả năng phát hiện dáng đi của mình bằng cách sử dụng mạng Siam và tăng cường dữ liệu để mô phỏng nhiều tình huống đi bộ có thể xảy ra. Trong bài viết này, chúng tôi đã trình bày cách các giải pháp Học máy có thể được thiết kế lại để giải quyết các trường hợp sử dụng khác.

Mã số

Nếu bạn muốn xem mã được sử dụng trong thử nghiệm này, bạn có thể kiểm tra mã đó trong kho lưu trữ GitHub này.

Bạn cũng có thể xem bài viết giải thích về Mô hình hỗn hợp Gaussian và thuật toán Kỳ vọng-Tối đa hóa trước đây của chúng tôi.

© Copyright 2021 - 2022 | vngogo.com | All Rights Reserved