7. Kết cấu của đề tài
3.2.4. Xây dựng module đọc file âm thanh cho Robot NAO
Để thực hiện chức năng này, tác giả sử dụng ALProxy để kết nối với Robot NAO và dùng module ALAudioPlayer để kết nối tới Robot NAO và cho Robot phát âm thanh mà Robot đã nhận được từ server.
import qi
import argparse
import sys
import time
#Xây dựng hàm thực hiện chức năng đọc file âm thanh từ một đường dẫn tên Robot NAO
defmain(session):
# Sử dụng dịch vụ ALAudioPlayer.
audio_player_service = session.service("ALAudioPlayer")
audio_player_service.playFile("đường dẫn tới file âm thanh trên Robot
NAO")
if __name__ =="__main__":
parser = argparse.ArgumentParser()
#Khai báo tham số đầu vào là IP và Port của Robot NAO trên command line
# Lúc chạy nếu có tham số thì chương trình sẽ nhận tham số đó, còn không sẽ nhận giá trị mặc định
parser.add_argument("--ip", type=str, default="192.168.1.11",
help="Địa chỉ IP của Robot NAO. Nếu chạy trên Robot thì
IP là '127.0.0.1'.")
parser.add_argument("--port", type=int, default=9559,
help="Port của Robot NAO")
args = parser.parse_args()
session = qi.Session()#Khởi tạo một session try:
session.connect("tcp://"+ args.ip +":"+ str(args.port))
except RuntimeError:
print("Không thể kết nối tới Naoqi với ip \""+ args.ip + "\" và port
"+ str(args.port)+".\n Vui long kiểm tra lại các tham số. Nhấn –h để được trợ
giúp.")
sys.exit(1)
main(session) #Chạy hàm đọc âm thanh
Hình 3-10: Code thực hiện chức năng phát một file âm thanh trên Robot NAO
Sau khi xây dựng xong các module trên, tác giả tiến hành ghép các module đó lại với nhau và tiến hành chạy chương trình. Khi chạy chương trình, hình ảnh trên camera được gửi trực tiếp về server. Khi chương trình phát hiện có một khuôn mặt nào đó trước camera thì hệ thống sẽ xác định xem kết quả của khuôn mặt đó và Robot NAO tiến hành chào như chương trình đã xây dựng.
3.3. Tiểu kết
Qua chương này, tác giả đã trình bày về một phương pháp ứng dụng chương trình nhận diện khuôn mặt kết hợp với các thư viện: SCP, Paramiko, Google Text
To Speech cùng với Naoqi trên Robot NAO để xây dựng được một ứng dụng thực
tế giúp Robot NAO thông minh hơn. Robot NAO có thê nhận diện được những người máy đã học được và sẽ chào những người đó. Đồng thời trong quá trình nhận diện Robot NAO cũng sẽ lưu lại những hình ảnh lúc nó nhận diện được để có thể cập nhật dữ liệu khuôn mặt.
KẾT LUẬN Kết quả đạt được:
Qua quá trình nghiên cứu đề tài “Ứng dụng Tensorflow xây dựng hệ thống nhận diện khuôn mặt và phát hiện đối tượng trên Robot NAO”, tác giả đã đạt được một số kết quả sau:
Nắm được cấu tạo cơ bản của Robot NAO, lập trình được một số chức năng cơ bản: lập trình để lấy hình ảnh từ camera Robot NAO về server, điều khiển Robot nói, gửi và nhận file trên Robot NAO và server.
Thực hiện được một số phương pháp thu thập dữ liệu khuôn mặt: Qua camera, qua video.
Ứng dụng được kết quả của một số bài báo về nhận diện khuôn mặt vào đề tài. Cho học máy và nhận diện được khuôn mặt ứng dụng thư viện học máy
Tensorflow.
Sau quá trình tìm hiểu thư viện học máy Tensorflow, tác giả còn biết được cách sử dụng học hệ thống học máy với Tensorflow vào việc nhận diện các đối tượng như: các loài động vật, các vật dụng thông dụng. Nếu những vật thể đó chưa cho kết quả chính xác thì tác giả có thể cho máy học kỹ hơn về đối tượng đó để cho kết quả tốt hơn.
Cuối cùng, tác giả đã ứng dụng những gì đã nghiên cứu lại và tạo ra một sản phẩm ứng dụng thư viện học máy Tensorflow và Robot NAO. Đó chính là sản phẩm Robot NAO nhận diện khuôn mặt và chào những người đã biết. Ngoài ra, trên sản phẩm này tác giả đã tìm ra được giải pháp tạm thời để Robot NAO có thể nói được tiếng Việt đó chính là ứng dụng thư viện Google Text To Speech.
Định hướng phát triển trong tương lai:
Sẽ tìm giải pháp để có thể thu thập được nhiều hình ảnh khuôn mặt của nhiều người theo nhiều thời gian và không gian khác nhau để có thể tạo ra một bộ dữ liệu khuôn mặt đủ lớn, đồng thời nghiên cứu sâu hơn về thuật toán trong Tensorflow để cải thiện độ chính xác trong việc nhận diện khuôn mặt.
Cải thiện sản phẩm để có thể nhận diện được nhiều người trong một lúc.
Sẽ kết quả của nghiên cứu vào việc tạo ta sản phẩm ứng dụng vào thực tế: Robot lễ tân, hệ thống điểm danh, chấm công qua khuôn mặt, ...
TÀI LIỆU THAM KHẢO Tài liệu tiếng Anh
[1] Florian Schroff, Dmitry Kalenichenko, James Philbin (2015), FaceNet: A Unified Embedding for Face Recognition and Clustering, In Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition 2015
[2] Kaipeng Zhang Zhanpeng Zhang Zhifeng Li Yu Qiao (2016), Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks,
IEEE Signal Processing Letters (SPL), số 10, tr. 1499-1503.
[3] Nick McClure (2017), TensorFlow Machine Learning Cookbook, Packt Publishing - ebooks Account.
[4] Giancarlo Zaccone (2016), Getting Started with TensorFlow, Packt Publishing; 1 edition.
[5] Yaniv Taigman, Ming Yang, Marc’Aurelio Ranzato, Lior Wolf (2014), DeepFace: Closing the Gap to Human-Level Performance in Face Verification.
Tài liệu internet
[6] Robot đang dần thay thế con người trong cuộc sống thường ngày, truy cập ngày 16/8/2017, https://www.baomoi.com/Robot-dang-dan-thay-the-con-nguoi- trong-cuoc-song-thuong-ngay/c/20701425.epi
[7] David Sandberg (Face Recognition using Tensorflow), ngày truy cập 10/08/2017, https://github.com/davidsandberg/facenet
[8] Tiệp Vũ, Machine Learning cơ bản, ngày truy cập 10/07/2017, https://machinelearningcoban.com
[9] Lisa Tagliaferri, How To Install the Anaconda Python Distribution on Ubuntu
16.04, ngày truy cập 10/10/2017,
https://www.digitalocean.com/community/tutorials/how-to-install-the- anaconda-python-distribution-on-ubuntu-16-04