PHẦN MỞ ĐẦU 1. LÝ DO CHỌN ĐỀ ĐỀ TÀI Hiện nay, với sự phát triển của khoa học kỹ thuật, con người có thể giao tiếp với nhau nhiều hơn và xa hơn. Trong các loại hình giao tiếp, cử chỉ là một hình thức giao tiếp phi ngôn ngữ mà không sử dụng âm thanh, bằng cách truyền đi những hành động nhìn thấy được của cơ thể chuyển đổi thành các thông điệp nhất định. Những hành động đó là thay thế cho ngôn ngữ nói hoặc kết hợp với nhau.
Cử chỉ bao gồm chuyển động của bàn tay, khuôn mặt hoặc các bộ phận khác của cơ thể. Nhờ sự phát triển không ngừng của công nghệ trí tuệ nhân tạo (Artificial Intelligence), việc nhận dạng cử chỉ ngày càng có sự tiến bộ vượt bậc. Hiện nay, chúng ta có thể dễ dàng nhìn thấy nhiều chức năng được ứng dụng ở các thiết bị thông minh dựa vào sự phát triển ấy. Ví dụ: Hệ thống Điều khiển bằng cử chỉ của BMW (BMW Gesture Control) trên chiếc xe, giúp người lái tùy chỉnh bảng điều khiển trung tâm chỉ bằng 5 động tác tay đơn giản.
Hình 1: Hệ thống BMW Gesture Control (Nguồn: https://www.net/products-bmw-gesture-control-retrofit) 5 Và nếu bao quanh chúng ta là những thiết bị thông minh với việc vận hành máy móc chỉ qua những cử chỉ đơn giản ấy thì cuộc sống sẽ trở nên dễ dàng đến nhường nào. Đó là lí do mà chúng em chọn đề tài này để thực hiện 2. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN 2. Ý nghĩa khoa học Trong lĩnh vực nghiên cứu AI (Artificial Intelligence) và Machine Learning đã đạt được thành công đáng kể trong những năm gần đây.
Điều này cho phép máy tính vượt qua hoặc tiến gần đến việc kết hợp hiệu suất của con người trong các lĩnh vực từ nhận dạng khuôn mặt, nhận dạng giọng nói, hơn thế nữa là ngôn ngữ và cử chỉ. [1] Đề tài thành công sẽ góp phần nâng cao khả năng tương tác giữa máy móc và con người. Đây cũng là một cách để máy tính bắt đầu hiểu ngôn ngữ cơ thể con người, và từ đó xây dựng một cầu nối phong phú hơn giữa máy móc và con người. Ý nghĩa thực tiễn Kết quả nghiên cứu của đề tài là cơ sở để máy tính được học và hiểu về ngôn ngữ cơ thể của con người bằng việc vận dụng các thuật toán nhận diện.
Từ đó có thể phát triển nhiều tính năng khác để phục vụ cho nhu cầu của mỗi người chúng ta trong cuộc sống. Lấy ví dụ như khi chúng ta cần tìm kiếm một thứ gì đó chợt hiện ra trong đầu và không thể nhớ hay biết nó là gì, thì ta chỉ cần vẽ hình ảnh của thứ đó ra và máy tính sẽ xử lý và giải quyết cho chúng ta. Xa hơn nữa là có thể điều khiển mày móc xung quanh vận hành với những cử chỉ đơn giản. MỤC TIÊU VÀ NHIỆM VỤ CỦA NGHIÊN CỨU 3.
Mục tiêu Từ thực trạng trên đòi hỏi mục tiêu đặt ra: - Tìm hiểu nghiên cứu về thị giác máy tính, về các phương pháp học sâu. - Giao tiếp với máy tính thông qua các phương thức thủ ngữ (cử chỉ). - Huấn luyện mô hình nhận diện hình vẽ cho máy tính. 6 - Cài đặt ứng dụng nhận diện thủ ngữ để máy tính nhận diện cử chỉ.
- Từ ứng dụng nhận diện phát triển thành ứng dụng vẽ hình ảnh bằng cử chỉ kết hợp nhận diện hình ảnh bằng cử chỉ. Nhiệm vụ Nhiệm vụ đặt ra khi nghiên cứu về đề tài là: - Tìm hiểu về Deep Learning. - Tìm hiểu về Thị giác máy tính. - Tìm hiểu các thuật toán tối ưu.
- Tìm hiểu về bài toán nhận dạng nét vẽ bằng cử chỉ. MÔ TẢ BÀI TOÁN Bài toán cần giải quyết là hiện thực hóa mô hình nhận diện hình ảnh được vẽ bằng thủ ngữ. Thủ ngữ được sử dụng ở đây là cử chỉ của bàn tay con người. Có 2 loại thủ ngử được sử dụng là: Open (mở bàn tay), Close (đóng bàn tay).
Bàn tay sẽ đại diện cho đầu bút. Khi bàn tay đóng (Close) đại diện cho hành động vẽ, máy tính sẽ dò theo hướng di chuyển của bàn tay để tạo ra hình vẽ. Khi bàn tay mở (Open) đại diện cho hành động ngưng vẽ, máy tính sẽ dừng bắt chuyển động. Từ hình vẽ được vẽ bằng thủ ngữ, máy tính sẽ nhận diện và đưa ra dự đoán về hình ảnh được vẽ.
Nguồn dữ liệu dùng để huấn luyện mô hình được sưu tầm trên internet, với hơn 50 triệu bản vẽ đã được đánh nhãn, máy tính sẽ được học bằng mô hình tối ưu nhất, để từ đó đưa ra dự đoán chính xác nhất. KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC Xây dựng một ứng dụng với khả năng đọc và nhận diện hình ảnh được vẽ bằng cử chỉ. Hình vẽ sẽ được thực hiện bằng tay. Máy tính sẽ nhận diện bàn tay và theo dấu đường đi của bàn tay để tạo thành một hình vẽ cụ thể.
Từ hình vẽ đó máy tính sẽ thực hiện nhận diện theo bộ dữ liệu đã được học từ các thuật toán nhận diện. Từ đó đưa ra dự đoán gần như chính xác về hình ảnh đã được vẽ. 7 PHẦN NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. Giới thiệu sơ lược về Neural Network Neuron là đơn vị cơ bản cấu taọ nên hệ thống thần kinh con người và là thành phần quan trọng nhất của não.
Chúng có cấu tạo độc nhất và có hình dạng không giống với bất kỳ tế bào nào khác. Cấu tạo của mỗi neuron bao gồm: phần nhân (soma) chứa nhân tế bào, các tín hiệu đầu vào qua sợi nhánh (dendrites) và các tín hiệu đầu ra qua sợi trục (axon) kết nối với các neuron khác. [2] Hình 2: Hình ảnh cấu trúc của Neuron thần kinh (Nguồn: https://efacd.com/49) Lấy cảm hứng từ hoạt động của neuron thần kinh các nhà khoa học đã xây dựng ra mô hình mạng neuron nhân tạo (Neural Network) có chức năng mô phỏng lại hệ thần kinh con người giúp cho máy tính có khả năng học hỏi như con người. Tín hiệu được neuron tiếp nhận qua sợi nhánh và truyền đến các neuron khác bằng sợi trục (axon), đến sợi nhánh (dendrites) của các neuron khác.
Tuy nhiên việc neuron nhận nhiều tín hiệu từ nhiều sợi nhánh (dendrites) nhưng truyền qua duy nhất một sợi trục (axon) khiến nó phải quyết định tín hiệu nào quan trọng để đến các neuron khác 8 (điều này giải thích cho khả năng tập trung cao độ của não bộ con người dù môi trường xung quanh có những tác động nhất định) [2]. Cấu trúc neuron nhân tạo: Hình 3: Cấu trúc neuron nhân tạo (Nguồn: codetudau.com) Hình 4: các thành phần của neuron nhân tạo (Nguồn: https://tiendv.com/2016/11/19/neural-networks/) Các thành phần cơ bản của một neuron nhân tạo bao gồm: - Tập các đầu vào: Là các tín hiệu vào (input signals) của neuron, các tín hiệu này thường được đưa vào dưới dạng một vector N chiều. - w: trọng số (weight) dựa vào trọng số để phân loại mức độ hữu ích của thông tin đầu vào. Thông tin càng quan trọng thì w càng lớn.
Tương tự như việc neuron thần kinh sẽ quyết định thông tin nào quan trọng nhất để truyền đi tiếp. 9 - Bộ tổng (Summing function): Thường dùng để tính tổng của các tích các đầu vào với trọng số liên kết của nó. - Threshold (θ) (còn gọi là một độ lệch - bias): Điều kiện để chọn các tín hiệu trước khi truyền sáng neuron khác. - Hàm truyền (Transfer function/Activation function): Hàm này được dùng để giới hạn phạm vi đầu ra của mỗi neuron.
Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng và chuẩn hóa output của neuron tránh cho output y là một giá trị không giới hạn. - Đầu ra: Là tín hiệu đầu ra của một neuron, với mỗi neuron sẽ có tối đa là một đầu ra. - Như vậy neuron nhân tạo nhận các tín hiệu đầu vào, xử lý (nhận các tín hiệu với các trọng số liên kết, tính tổng các tích thu được rồi gửi kết quả qua hàm truyền), và cho một tín hiệu đầu ra. o Một số hàm truyền thông dụng: Bảng 1: Hàm truyền àm Đồ thị Định nghĩa A = hardlims(N) Symmetrical Hard Hàm hardlims buộc một neuron Limit (hardlims) xuất ra 1 nếu đầu vào đạt đến giới hạn.
Nếu không, xuất ra -1. A = purelin(N) Hàm purelin nhận N và các Linear (purelin) tham số chức năng và trả về N. A = logsig(N) Hàm logsig tạo ra kết quả đầu Log-Sigmoid ra từ 0 đến 1 khi đầu vào của (logsig) neuron đi từ âm đến dương vô cùng. Mô hình tổng quát Neural Network chính là mô hình toán học tập hợp từ nhiều đơn vị, tín hiệu được xử lý theo từng tầng.
Theo như hình dưới có ba tầng là: tầng đầu vào (input layer), tầng ẩn (hidden layer) và tầng đầu ra (output layer). các hình tròn là các neuron nhân tạo (node). Hình 5: Cấu trúc đơn giản Neuron Network (Nguồn: Dark side of neural networks explained (aimultiple.com)) 11 Mạng neural nhân tạo gồm có một nhóm các neural nhân tạo (node) kết nối với nhau. Xử lý thông tin bằng cách truyền dữ liệu theo các kết nối và tính giá trị mới tại các node.
Trong nhiều trường hợp, mạng neural nhân tạo tự thay đổi cấu trúc của mình dựa trên các thông tin bên ngoài hay bên trong chảy qua mạng trong quá trình học, lúc này nó sẽ trở thành một hệ thống thích ứng (adaptive system). [3] Mỗi node trong hidden layer và output layer đều liên kết với các node ở layer trước đó với các trọng số w riêng, đều có một hệ số bias b riêng. Chúng cũng thực hiện hai bước: tính tổng linear và sử dụng hàm activation để chuẩn hóa. DEEP LEARNING Deep Learning là một mạng neural nhân tạo lớn với nhiều hidden layer.
Mỗi hidden layer có một nhiệm vụ khác nhau, output của layer này sẽ là input của layer sau. Hình 6: Cấu trúc Deep Learning (Nguồn: neuralnetworksanddeeplearning.com) Điểm mạnh của của công nghệ này là quy mô càng lớn hiệu quả càng cao. Khi ta xây dựng neural network càng lớn, dữ liệu càng nhiều thì hê thống vận hành càng nhanh. 12 Điều này giúp trở nên nổi bật hơn so với các công nghệ machine learning khác khi chúng chỉ chạy ổn định.
Hình 7: So sánh hiệu suất của deep learning với các thuật toán học máy khác (Nguồn: https://www.net/figure/Performance-Comparison-of-Deep-learning-based-algorithms- Vs-Traditional-Algorithms_fig1_338027948) 1. Mạng Neural tích chập (CNN) 1. Mạng neural tích chập là gì? Mạng neural tích chập là một tập hợp các lớp tích chập chồng lên nhau và sử dụng các hàm kích hoạt phi tuyến tính như ReLU và tanh để kích hoạt các trọng số trong các node. Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo.
[4] Hình 8: Mô hình mạng neural tích chập (Nguồn ảnh: https://stanford.