Thiết kế hệ thống điều khiển cửa tự động sử dụng công nghệ xử lý giọng nói và công nghệ xử lý ảnh

Ngày nay, khi đời sống kinh tế - xã hội phát triển, vấn đề

an ninh được quan tâm nhiều hơn. Ở nước ta, việc bảo vệ an

ninh đang dẫm chân tại chỗ ở việc người ta vẫn đang sử dụng

con người cho mục đích an ninh là chính như việc thuê các

bảo vệ viên, hay lắp đặt các hệ thống camera thông thường mà

một kẻ gian hiểu biết có thể qua mắt được.

Trên thế giới hiện đã có nhiều công trình nghiên cứu và

áp dụng hệ thống điều khiển cửa thông minh. Trước hết, có

thể kể đến hệ thống chuông cửa thông minh Chui [4] sử

dụng kỹ thuật nhận diện khuôn mặt, thẻ từ và mật khẩu để

nhận diện và quyết định mở khóa. Ngoài ra, hệ thống này

còn truyền hình ảnh qua mạng LAN để người dùng biết

được người đang đứng trước cửa là ai. Tuy nhiên, hệ thống

đó chưa lưu lại video để người dùng dễ dàng xem lại khi

cần. Một ứng dụng thương mại khác là hệ thống khóa

HF6618 sử dụng kỹ thuật nhận diện khuôn mặt, thẻ từ,

khóa cơ và mật khẩu hoặc kết hợp để mở khóa [8]. Nhược

điểm của hệ thống này là chưa truyền hình ảnh qua mạng

LAN cũng như lưu lại video để người sử dụng giám sát

ngôi nhà của họ. Bên cạnh đó, có thể kể đến hệ thống cửa

thông minh ở các sân bay Australia [2] đối chiếu khuôn mặt

trong hộ chiếu điện tử và khuôn mặt thu được từ camera để

mở cửa cho du khách nhập cảnh. Hệ thống này khá cồng

kềnh và cũng chưa có chức năng lưu video hay truyền qua

mạng LAN.

Thiết kế hệ thống điều khiển cửa tự động sử dụng công nghệ xử lý giọng nói và công nghệ xử lý ảnh trang 1

Trang 1

Thiết kế hệ thống điều khiển cửa tự động sử dụng công nghệ xử lý giọng nói và công nghệ xử lý ảnh trang 2

Trang 2

Thiết kế hệ thống điều khiển cửa tự động sử dụng công nghệ xử lý giọng nói và công nghệ xử lý ảnh trang 3

Trang 3

Thiết kế hệ thống điều khiển cửa tự động sử dụng công nghệ xử lý giọng nói và công nghệ xử lý ảnh trang 4

Trang 4

Thiết kế hệ thống điều khiển cửa tự động sử dụng công nghệ xử lý giọng nói và công nghệ xử lý ảnh trang 5

Trang 5

Thiết kế hệ thống điều khiển cửa tự động sử dụng công nghệ xử lý giọng nói và công nghệ xử lý ảnh trang 6

Trang 6

pdf 6 trang duykhanh 4600
Bạn đang xem tài liệu "Thiết kế hệ thống điều khiển cửa tự động sử dụng công nghệ xử lý giọng nói và công nghệ xử lý ảnh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Thiết kế hệ thống điều khiển cửa tự động sử dụng công nghệ xử lý giọng nói và công nghệ xử lý ảnh

Thiết kế hệ thống điều khiển cửa tự động sử dụng công nghệ xử lý giọng nói và công nghệ xử lý ảnh
  (1) 
  
ngoặc vuông phân cách các hàng với nhau. Việc đánh số các  1
phần tử trong hàng và cột được bắt đầu bằng số 0, ví dụ I [0, Để tìm được H, ta cần dựa vào một tính chất của phép 
0] trả về giá trị 1. Để lấy tất cả các phần tử ở một chiều nào biến đổi affine như sau: Với hai hình tam giác bất kỳ, ta luôn 
đó, ta dùng dấu “:” ở các chiều khác, ví dụ để lấy hàng đầu tìm được một phép biến đổi affine để biến đổi tam giác này 
tiên, ta dùng lệnh I [1,:] (lấy tất cả các cột ở hàng 1). thành tam giác kia [5]. Dựa vào tính chất này, ta sẽ chọn ra 
 Các bức ảnh được biểu diễn bằng mảng numpy array 3 ba điểm, tìm ma trận H sao cho với ma trận H, ba điểm 
chiều theo thứ tự là chiều dọc, chiều ngang và chiều sâu. landmarks được chọn trong bức ảnh gốc được biến đổi thành 
Sau đây, chi tiết về các bước xử lý ảnh và xác minh sẽ được ba điểm landmarks chuẩn tương ứng. Hình 4 bên dưới minh 
trình bày. họa 68 điểm landmarks chuẩn mà bài báo này sử dụng [1]. 
24 Lê Tiến Dũng, Trịnh Ngọc Văn, Nguyễn Văn Kiên, Nguyễn Đức Tường 
  
 Gọi A, B, C là ba điểm landmarks được chọn trong bức Trong đó  là bức ảnh của một người để đối chiếu;  
  
ảnh gốc và A’, B’, C’ là ba điểm tương ứng của landmarks là một bức ảnh khác của cùng một người với  và  là 
chuẩn, từ phương trình (1) ta có:  
 ảnh của một người khác với  và  . Từ bất đẳng thức (7) 
  ta thấy rằng khoảng cách của các embeddings hai khuôn 
    
  =  (2) mặt của hai người khác nhau luôn lớn hơn khoảng cách của 
    
 1 các embeddings của hai khuôn mặt cùng một người ít nhất 
 là  (với mạng neuron của OpenFace,  = 0.2) [1]. 
 2.5. Xác minh khuôn mặt 
 Sau khi biểu diễn khuôn mặt, việc xác minh là rất dễ 
 dàng. Từ công thức (7) ta rút ra: 
      
 ||  || ||  ||  8 
 Từ công thức (8) suy ra: 
   
 0||  ||  9 
 Như vậy, khoảng cách Euclide của hai khuôn mặt của 
 hai người khác nhau luôn lớn hơn , trong bài báo này là 
 0,2. Như vậy, khi lập trình, chỉ cần tính khoảng cách giữa 
 khuôn mặt đã được lưu trong máy tính với khuôn mặt thu 
 Hình 4. Các điểm landmarks chuẩn được sử dụng được từ camera, nếu khoảng cách này nhỏ hơn 0,2 thì kết 
  luận là hai khuôn mặt là của cùng một người. Ngược lại, 
     
  =     (3) nếu lớn hơn 0,2 thì kết luận là hai khuôn mặt khác nhau. 
     
     1 Tuy nhiên, để đảm bảo an toàn, ta chọn ngưỡng thấp hơn, 
  trong bài báo này chúng tôi chọn 0,18. 
     
  =     (4) 
      2.6. Đọc ảnh từ sever 
     1
 Giải hệ phương trình trên ta tìm ra H: Để đọc ảnh từ server trả về, trước hết, cần phải kết nối 
  với server. Server trong bài báo này trả về ảnh dạng JPEG; 
    10 00  đây là chuẩn nén ảnh phổ biến trên internet. Nếu server 
    000 1  
        chỉ trả về một bức ảnh thì ta chỉ cần giải mã chuỗi dữ liệu 
    10 00  
   =       (5) nhận được trong biến stream là đã được một bức ảnh. Tuy 
   000  1  nhiên, trong bài báo này, server liên tục trả ảnh về nên cần 
    10 00  phải có cách để đọc từng chuỗi mã hóa ảnh trong stream 
   000  1  ra. Để tìm được chuỗi mã hóa ảnh, ta cần tìm các chuỗi 
 Ma trận biến đổi cuối cùng là: ‘\xff\xd8’ và ‘xff\xd9’; đây là các chuỗi mở đầu và kết 
    thúc được quy ước trong định dạng ảnh JPEG. Sau khi 
 =    (6) 
    đọc được chuỗi mã hóa, ta sẽ xóa các giá trị từ ‘\xd9’ trở 
    về trước. Quá trình đọc ảnh tiếp tục được lặp lại để đọc 
 Trong bài báo này, các điểm landmarks số 39, 42 và 33 các ảnh tiếp theo. 
được sử dụng để biến đổi. 
 2.7. Lưu ảnh thành video 
2.4. Biểu diễn khuôn mặt 
 Để lưu ảnh thành video, ta dùng hàm cv2.imwrite() của 
 Để so sánh hai khuôn mặt, điều cần thiết là phải biểu 
 thư viện opencv. Ta có ba thông số cần phải khai báo. 
diễn bức ảnh thành các tính chất để làm giảm sự biến thiên 
 Thông số đầu tiên là tên của video (ví dụ ‘out.avi’), sau đó 
đối với các bức ảnh của cùng một người, trong khi đó phải 
 cần phải khai báo mã Fourcc và số khung hình trên một 
làm tăng sự biến thiên đối với các bức ảnh của hai người 
 giây (frames per second). Cuối cùng là cờ isColor; nếu cờ 
khác nhau. Đây là phần quan trọng nhất trong quá trình xác 
 này được set bằng True thì chương trình sẽ lưu thành video 
minh khuôn mặt vì quá trình xác minh hoàn toàn dựa vào 
 với các khung hình màu, nếu bằng False thì chương trình 
các tính chất này. 
 lưu lại thành video đen trắng. 
 Hệ thống của bài báo này sử dụng mạng neuron đã được 
 Fourcc là một đoạn mã dùng để nhận biết mã ảnh động 
luyện sẵn của thư viện mã nguồn mở OpenFace [1]. Mạng 
 (video codec), định dạng nén và định dạng pixel hoặc màu 
neuron có input là một bức ảnh màu RGB với kích thước 
 được sử dụng trong video. Mỗi mã Fourcc được ký hiệu 
96x96x3 và output là một vector chứa 128 số đo, được gọi 
 bằng bốn chữ cái trong bảng mã ASCII. Mã Fourcc phụ 
là embeddings. Khoảng cách Euclide giữa hai embeddings 
 thuộc vào hệ điều hành đang được sử dụng cũng như định 
của hai bức ảnh sẽ lớn nếu chúng thuộc về hai người khác 
 dạng video; nếu khai báo sai mã Fourcc thì việc lưu video 
nhau và sẽ nhỏ nếu chúng thuộc về hai người khác nhau. 
 sẽ thất bại. Mã Fourcc được sử dụng trong bài báo này là 
Gọi  là một bức ảnh đầu vào và  là vector chứa các 
 ‘MJPG’ với định dạng video là .avi. Nếu việc lưu video 
embeddings của  [7]. Mạng này được huấn luyện sao cho: 
 thất bại thì cần phải thử với các mã Fourcc khác trên trang 
      
 ||  || ||  || 7 web https://www.fourcc.org/codecs.php. 
ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 3(112).2017-Quyển 1 25 
3. Phương pháp xử lý giọng nói ‚ Tốc độ mẫu âm thanh: 8.000Hz (8Khz). 
3.1. Thư viện âm thanh MARF ‚ Độ phân giải mẫu: 16bit. 
 Trong phạm vi bài báo này, chúng tôi nhận thấy việc ‚ Kênh thu âm: 1 (mono). 
xác minh người nói (speaker identifier) có ý nghĩa quan Nếu tập âm thanh không đúng định dạng trên thì nó sẽ 
trọng hơn trong việc bảo mật của hệ thống thay vì nhận được chuyển về đúng định dạng và ghi đè lên tập tin gốc. 
diện giọng nói, vì thế chúng tôi quyết định chọn những Sau khi huấn luyện lần đầu tiên thì một mô-đun có đuôi mở 
phần mềm, thiết bị liên quan tới công việc này. rộng là “.gzbin” và một tập tin “speaker.txt “ được tạo ra 
 tại thư mục làm việc hiện tại. Tập tin “speaker.txt” chứa 
 thông tin tên người nói và số ID của người nói. Tập tin 
 “*.gzbin” chứa các đặc tính được phân tích ra từ tập âm 
 thanh huấn luyện. Mỗi lần huấn luyện, tập tin “*.gzbin” sẽ 
 được cập nhật lại. 
 Để sử dụng thư viện piwho trong chương trình python 
 chúng ta phải nhập thư viện: 
 from piwho import recognition 
 Hình 5. Giới thiệu về MARF 
 recog = recognition.SpeakerRecognizer() 
 Giải pháp phần mềm được đưa ra trong bài báo này là 
 Nếu tập âm thanh dùng để huấn luyện và nhận diện nằm 
thư viện MARF (Modular Audio Recognition Framework) 
 ở một thư mục khác thì chúng ta phải chỉ rõ ra địa chỉ của 
đã được chỉnh sửa lại để có thể sử dụng với ngôn ngữ lập 
 chúng. Ví dụ các tập tin nằm ở địa chỉ 
trình python và hoạt động được trên máy tính Raspberry Pi. 
 ‘/home/pi/recordings’: 
 MARF là một nền tảng nghiên cứu mã nguồn mở và là 
 recognition.SpeakerRecognizer(‘/home/pi/recordings/’) 
một tập hợp của các thuật toán về xử lý giọng nói/ âm 
thanh/ ngôn ngữ được viết trên nền tảng java, được sắp xếp Để huấn luyện một tập dữ liệu âm thanh mới sử dụng 
vào trong một mô-đun và một cái sườn có thể mở rộng câu lệnh: 
được bằng việc thêm vào các thuật toán mới. MARF có thể recog.train_new_data() 
chạy trên mạng (network) hoặc có thể hoạt động như một 3.4. Nhận diện người nói 
thư viện thêm vào các ứng dụng, hoặc có thể dùng như một 
 Sau khi thực hiện xong việc huấn luyện thì bước tiếp 
nguồn để nghiên cứu và phát triển. 
 theo là thử nghiệm bằng việc chạy trình nhận diện người 
3.2. Cài đặt thư viện nói. Để thực hiện được điều này có một số yêu cầu như sau: 
 Thư viện MARF được tùy biến thành thư viện piwho ‚ Phải đảm bảo tập tin “*.gzbin” và “speaker.txt” nằm 
sử dụng cho ngôn ngữ lập trình python. Về bản chất, thư trong cùng thư mục, nơi chứa đoạn code python 
viện MARF được viết trên nền tảng java, vì vậy để sử dụng được thực thi. 
được thư viện chúng ta cần nền java tối thiểu là phiên bản 
 ‚ Kiểm tra “speaker.txt” không phải là file trống. 
1.7. Đối với máy tính Raspberry pi cũng như nhiều dạng 
máy tính linux khác, trong nhân máy đã được cài sẵn java. Thực hiện việc nhận diện bằng hàm identify_speakers() 
Để kiểm tra phiên bản của nền tảng java, chúng ta sử dụng và kết quả trả về ‘name’ dưới đây là danh sách của hai 
câu lệnh: người nói có điểm số tốt nhất trong tập huấn luyện. Người 
 đầu tiên là người nói gần giống nhất, tức là có điểm số thấp 
 $ java –version 
 nhất: 
 Để ghi âm phục vụ cho nhận diện người nói, chúng ta 
 name = recog.identify_speaker() 
cần một thư viện âm thanh dành cho python là pyaudio: 
 $ pip install pyaudio 4. Giải pháp truyền thông 
 Cuối cùng là câu lệnh cài đặt thư viện: 4.1. Truyền hình ảnh qua mạng LAN 
 $ pip install piwho Mạng LAN (Local Area Network) là tên của một loại 
3.3. Huấn luyện máy nhận diện mạng cục bộ. Các thiết bị kết nối trong mạng này có thể 
 chia sẻ thông tin, dữ liệu với nhau mà không bị can thiệp, 
 Việc huấn luyện máy nhận diện không quá khó khăn, 
 tấn công từ các thiết bị ngoài mạng. Việc truyền hình ảnh 
người dùng chỉ việc lặp lại việc nói một câu nào đó nhiều 
 qua mạng LAN giúp các thiết bị trong mạng có thể xem 
lần với các âm điệu khác nhau, thường là từ năm đến mười 
 được hình ảnh từ camera ở cửa gửi về. Để truyền được hình 
lần. Sau khi các đoạn âm thanh được ghi âm xong, máy tính 
 ảnh qua mạng LAN trên máy tính Raspberry Pi (sử dụng 
sẽ bắt đầu huấn luyện trên cả thư mục chứa các đoạn âm 
 hệ điều hành Debian) chúng tôi sử dụng một dịch vụ 
thanh đã được ghi âm và lưu tập huấn luyện được vào một 
 (service) đi kèm, đó là motion. 
tệp tin. 
 Để cài đặt dịch vụ, chúng ta nhập vào terminal câu lệnh: 
 Yêu cầu của việc huấn luyện: 
 sudo apt-get install motion. 
 ‚ Số lượng huấn luyện: Tối thiểu hai người. 
 Để bắt đầu sử dụng dịch vụ chúng ta gõ vào terminal 
 ‚ Định dạng tệp âm thanh huấn luyện: PCM signed câu lệnh: sudo service motion start. Để dừng dịch vụ sử 
 (wav). dụng câu lệnh: sudo service motion stop. Nếu việc truyền 
26 Lê Tiến Dũng, Trịnh Ngọc Văn, Nguyễn Văn Kiên, Nguyễn Đức Tường 
hình ảnh không như ý muốn, chúng ta có thể thay đổi các 
thông số trong tập tin cấu hình của dịch vụ bằng câu lệnh: 
sudo nano/etc/motion/motion.conf, lúc đó tập cấu hình 
được mở ra và chúng ta chỉnh sửa lại dựa trên chú thích 
trước mỗi thông số, hoặc tìm hiểu để biết thêm cách chỉnh 
sửa các thông số cho phù hợp. 
4.2. Giao tiếp với thiết bị khác qua giao thức MQTT 
 MQTT là một giao thức truyền tin hiệu quả, đáng tin 
cậy dựa trên nền tảng giao thức TCP/IP được sử dụng phổ 
biến hiện nay. MQTT thích hợp với việc truyền tải những 
dữ liệu nhỏ, yêu cầu tốc độ nhanh và sự đồng bộ dựa trên 
phương pháp đăng ký/xuất bản (subscribe/publish) lên một 
kênh bất kỳ. 
 MQTT có hỗ trợ ngôn ngữ python. Để cài đặt gói giao 
thức MQTT cho python, sử dụng câu lệnh pip install paho-
mqtt. Để thêm thư viện MQTT vào chương trình python, 
sử dụng import paho.mqtt.client as mqtt. Để đăng nội dung 
lên một kênh (topic), sử dụngclient.publish(“topic”, data, 
qos=0, retain=False). Để đăng ký nội dung từ một kênh bất 
kỳ, sử dụng câu lệnh client.subscribe(“topic”, qos = 0). 
Chú ý, yêu cầu kênh đó phải tồn tại, có nghĩa là chúng ta Hình 7. Mặt trước mô hình thực nghiệm thực tế 
phải chỉ rõ địa chỉ máy chủ nơi mà kênh được thiết lập và 
tồn tại, sử dụng client.connect (địa chỉ máy chủ, cổng, thời 
gian giữ tin). Ví dụ: ”client.connect("iot.eclipse.org", 
1883, 60)”. 
5. Mô hình thực nghiệm 
 Để kiểm nghiệm những đề xuất, giải pháp của bài báo, 
chúng tôi đã xây dựng một mô hình thực tế và đã thử 
nghiệm các phương án nhiều lần. Chương trình xác minh 
khuôn mặt đã xác minh đúng 98,55% số lần thử. Với chế 
độ bảo mật bằng bàn phím, tỷ lệ thành công là 100%, chế 
độ bảo mật bằng giọng nói có xác suất thành công là 91%, 
và chế độ bảo mật bằng thẻ RFID đạt tỷ lệ thành công 
100%. Với các chế độ kết hợp, RFID kết hợp xác minh 
khuôn mặt đạt tỷ lệ thành công là 96%; RFID kết hợp giọng 
nói đạt 89%, xác minh khuôn mặt kết hợp xác minh giọng 
nói đạt 88%. Như vậy, các chương trình cho kết quả với độ 
chính xác cao, chế độ RFID kết hợp với xác minh khuôn 
mặt là chế độ tốt nhất và nên được sử dụng. 
 Hình 8. Mặt sau mô hình thực nghiệm thực tế 
 6. Kết luận 
 Bài báo đã trình bày phương án thiết kế hệ thống điều 
 khiển cửa tự động sử dụng công nghệ xử lý giọng nói và 
 công nghệ xử lý ảnh và các phương thức bảo mật kết hợp. 
 Các thuật toán xử lý hình ảnh, nhận dạng giọng nói đã được 
 trình bày chi tiết. Các thiết kế trình bày trong bài báo giúp 
 làm chủ công nghệ, đưa ra giải pháp để chế tạo hệ thống 
 điều khiển cửa thông minh có chất lượng tốt, nhiều ưu điểm 
 so với các hệ thống đã được ứng dụng trong thực tiễn. Đồng 
 thời, một mô hình thực tế đã được xây dựng để kiểm 
 nghiệm các đề xuất của bài báo. Qua quá trình thử nghiệm 
 thực tế, chúng tôi nhận thấy rằng mô hình hoạt động có 
 hiệu quả, đáp ứng được yêu cầu đặt ra và có thể áp dụng 
 Hình 6. Hình ảnh thiết kế mô hình và các thiết bị mặt trước được trong thực tiễn. 
ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 3(112).2017-Quyển 1 27 
 TÀI LIỆU THAM KHẢO [5] Gonzalez, R.C. & E., W.R., 2007, Digital Image Processcing. 3rd 
 ed. Pearson. 
[1] Amos, B., Ludwiczuk, B. & Satyanarayanan, M., 2016, OpenFace: [6] King, D.E., 2009, “Dlib-ml: A Machine Learning Toolkit”, Journal 
 A general-purpose face recognition library with mobile application, of Machine Learning Research, 10, page 1755-58. 
 CMU-CS-16-118, CMU School of Computer Science. 
 [7] Schroff, F., Kalenichenko, D. & Philbin, J., 2015, “FaceNet: A 
[2] Australian Border Force, n.d. The Department of Immigration and 
 Unified Embedding For Face Recognition And Clustering”, In IEEE 
 Border Protection, [Online] Available at: https://www.border.gov.au 
 Computer Society Conference on Computer Vision and Pattern 
 [Accessed 20 August 2016] 
 Recognition 2015., 2015. 
[3] Bradski, G., 2000, “The OpenCV Library”, Dr. Dobb's Journal of 
 Software Tools. [8] Xiamen Surmount Industry Co., Ltd., n.d, Xiamen Surmount 
 Industry Co., Ltd, [Online] Available at: 
[4] Chui, n.d. CHUI, [Online] Available at:  [Accessed 20 August 2016] 
 https://www.getchui.com/[Accessed 20 August 2016] 
 (BBT nhận bài: 17/12/2016, hoàn tất thủ tục phản biện: 03/02/2017) 

File đính kèm:

  • pdfthiet_ke_he_thong_dieu_khien_cua_tu_dong_su_dung_cong_nghe_x.pdf