Giá trị Kiểu dữ liệu Đơn vị
Timestamp long milliseconds
Values[0] : X float m/s2
Values[1] : Y float m/s2
Values[2] : Z float m/s2
Cảm biến từ trƣờng kế
Cảm biến từ trường là một la bàn điện tử 3 trục, cĩ thể dùng để xác định phương hướng. Cảm biến từ trường đo cường độ và hướng của từ trường tại vị trí của thiết bị.
Bảng 3.2: Các thơng số từ trƣờng kế
Giá trị Kiểu dữ liệu Đơn vị
Timestamp long Milliseconds
Values[0] : X float µT(micro Tesla)
Values[1] : Y float µT(micro Tesla)
Values[2] : Z float µT(micro Tesla)
Cảm biến trọng lực
Cảm biến trọng lực cĩ nguồn gốc từ cảm biến gia tốc kế 3 trục, đo các thành phần vectơ của trọng lực khi điện thoại đang đứng yên hoặc di chuyển chậm. Cảm biến trọng lực được sử dụng phổ biến trong điều khiển trị chơi bằng cách sử dụng chuyển động nghiêng. Cảm biến trọng lực gồm 3 thành phần X,Y,Z như hình dưới.
Bảng 3.3: Các thơng số gia tốc trọng lực
Giá trị Kiểu dữ liệu Khoảng giá trị Đơn vị
Timestamp long milliseconds
Values[0] : X float Min.value= -19.6
Max.value = 19.6 m/s 2
Values[1] : Y float Min. value = -19.6
Max. value = 19.6 m/s 2
Values[2] : Z float Min. value = -19.6
Max. value = 19.6 m/s 2
Hình 3.4: Cảm biến trọng lực
Lấy dữ liệu cảm biến trong hệ điều hành Android
- Để lấy dữ liệu các cảm biến trong hệ điều hành Android, ta phải khai báo một biến thuộc kiểu SensorManager với các phương thức truy nhập trực tiếp các cảm biến trên hệ điều hành.
- Đăng ký lấy dữ liệu từ các cảm biến trên hệ điều hành android: private SensorManager mSenManager;
… mSenManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); mSenManager.registerListener(this, mSenManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_FASTEST); mSenManager.registerListener(this, mSenManager.getDefaultSensor(Sensor.TYPE_GRAVITY), SensorManager.SENSOR_DELAY_FASTEST); mSenManager.registerListener(this, mSenManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD), SensorManager.SENSOR_DELAY_FASTEST);
- Lệnh hủy bỏ đăng ký lấy dữ liệu cảm biến: mSenManager.unregisterListener(this);
3.3 Lọc nhiễuNhiễu dữ liệu thơ Nhiễu dữ liệu thơ
Hình 3.6: Dữ liệu gia tốc đã qua lọc nhiễu(trên) và chưa qua lọc nhiễu(dưới)
Nhiễu này phát sinh khi trạng thái của thiết bị thay đổi trong quá trình thu dữ liệu, ta cần sử dụng bộ lọc thơng thấpđể loại bỏ những giá trị đột biến và làm mịn dữ liệu thu được.
Finalfloat ALPHA = 0.1f;
output[i] = output[i-1] + ALPHA * (input[i] - output[i-1]);
Nhiễu do tác dụng của lực quán tính
Lực quán tính sinh ra trong quá trình thực hiện hành động, người sử dụng thiết bị chuyển hướng hoặc dừng lại đột ngột… làm thiết bị cĩ xu hướng chuyển động ngược lại với chiều của gia tốc. Các nghiên cứu trước cũng chưa cĩ được phương pháp lọc bỏ hiệu quả nên trong nghiên cứu này cố gắng lấy mẫu trong các trường hợp hạn chế tối đa ảnh hưởng của gia tốc quán tính(khi cầm trên tay thì tay ta hấp thụ lực quán tính).
Nhiễu do chất lƣợng cảm biến
Tùy từng thiết bị khác nhau mà chất lượng cảm biến khác nhau, các cảm biến chất lượng cao thì độ chính xác đo đạc cao hơn và ngược lại. Hình 3.8 mơ tả giá trị gia tốc thu được trên ba trục x, y, z của hai thiết bị Android khác nhau được lấy mẫu với cùng trạng thái, cùng vị trí, cùng thời điểm. Giá trị gia tốc trên hai trục x và y là như nhau, tuy nhiên gia tốc trên trục z là khác nhau. Sự khác biệt này là đặc trưng với từng cảm biến và trong đo đạc chúng cĩ sự chênh lệch tương đối tuyến tính với nhau. Do vậy, nhiễu do chất lượng cảm biến cĩ thể chấp nhận được trong quá trình lấy mẫu trên nhiều thiết bị khác nhau.
3.4 Chuyển hệ trục tọa độ trong khơng gian
Phần này sẽ trình bày quá trình tiền xử lý dữ liệu. Dữ liệu được ghi lại bởi thiết bị Android cĩ tích hợp cảm biến gia tốc kế, từ trường kế và cảm biến trọng lực. Các tín hiệu mẫu được lấy ở chế độ nhanh nhất theo từng thiết bị Android, tần số lấy mẫu là 50Hz.
Hình 3.8: Hệ trục tọa độ điện thoại và Hệ trục tọa độ Trái Đất
Trên điện thoại cĩ một hệ tọa trục tọa độ XYZ, nếu để điện thoại nằm ngang trên bàn phẳng và hướng mặt lên bầu trời thì trục X hướng sang phải, trục Y hướng lên trên và trục Z hướng thẳng lên bầu trời. Trên Trái Đất cũng cĩ một hệ trục tọa độ X’Y’Z’ với trục X hướng sang phía Đơng, trục Y hướng theo phía Bắc và trục Z hướng thẳng lên bầu trời.
Nhiều nghiên cứu trước đĩ, thiết bị được sử dụng để thu dữ liệu được gắn cố định ơ tơ để giảm nhiễu và tăng độ chính xác phát hiện hành vi. Tuy nhiên trong trường hợp khơng cố định điện thoại, ví dụ khi điện thoại bị xoay, lật thì các trục điện thoại bị thay đổi nên giá trị gia tốc kế thay đổi dẫn đến tính tốn các thơng số đặc trưng cho bài tốn phát hiện hành vi sai và khơng phát hiện đúng hành vi được.
Hình 3.10: Sự khác nhau giữa đổi trục và khơng đổi trục
Ba trục XYZ của thiết bị luơn gắn cố định trên thiết bị (Hình 3.10), khi thay đổi trạng thái của thiết bị trong khơng gian thì giá trị gia tốc thu được trên 3 trục này khơng đồng nhất với nhau vì chúng khơng cùng một hệ quy chiếu. Do vậy ta phải quy đổi chúng về cùng một hệ tọa độ duy nhất là hệ trục tọa độ Trái Đất.
Hình 3.10 b khi xoay thiết bị một gĩc beta=-90 độ thì trục y thành trục z và trục z thành trục –y, cịn như hình 3.10 c khi xoay thiết bị một gĩc gamma=90 độ thì trục x thành trục z, trục z thành trục –x.
Cĩ rất nhiều trạng thái xoay điện thoại trong khơng gian dẫn đến các trục của điện thoại cũng bị thay đổi làm cho giá trị gia tốc kế thu được với 3 trục điện thoại khơng cịn chính xác, trong khi đĩ hệ trục của Trái Đất luơn luơn cố đinh nên ta cĩ thể xử lý trường hợp này bằng cách đổi dữ liệu gia tốc kế từ hệ trục tọa độ điện thoại XYZ về hệ trục tọa độ Trái Đất cố định .
(x, y, z) là giá trị gia tốc 3 trục theo hệ tọa độ điện thoại và (x’, y’, z’) là giá trị gia tốc 3 trục theo hệ tọa độ Trái Đất thì ta cĩ liên hệ sau:
𝑥′ 𝑦′ 𝑧′ = R 𝑥𝑦 𝑧 (3.3)
với R là ma trận chuyển hệ tọa độ.
Hình 3.11 Chuyển từ trục điện thoại về trục Trái Đất
Tính ma trận chuyển R:
Trên hệ tọa độ Trái Đất(hình 3.13) ta cĩ +) Trục x chỉ về hướng Đơng
+) Trục y chỉ về hướng Bắc
+) Trục z hướng thẳng lên bầu trời
- A đại diện cho vectơ trọng lực, trùng với z. A={Ax, Ay, Az}
y M z x M E M A M M M H M Hình 3.1 Hệ tọa độ khơng gian
- E đại diện cho vectơ từ trường, thì E thuộc mặt phẳng (y, z). E = {Ex, Ey, Ez}
- H=AxE vuơng gĩc với cả A và E trùng với trục y hệ trục Trái Đất H = {Hx, Hy, Hz}
- Trực chuẩn hĩa A và H ta được : A = ( 𝑨𝑥 𝑨𝑥2+𝑨𝑦2+𝑨𝑧2 , 𝑨𝑦 𝑨𝑥2+𝑨𝑦2+𝑨𝑧2 , 𝑨𝑧 𝑨𝑥2+𝑨𝑦2+𝑨𝑧2 ) H = ( 𝑯𝑥 𝑯𝑥2+𝑯𝑦2+𝑯𝑧2 , 𝑯𝑦 𝑯𝑥2+𝑯𝑦2+𝑯𝑧2 , 𝑯𝑧 𝑯𝑥2+𝑯𝑦2+𝑯𝑧2 ) - M=AxH, thì M trùng với trục y - H = {Hx, Hy, Hz}
- Ta cĩ M, A, H đơi một trực giao, độ dài bằng 1 và ma trận R chuyển một vectơ gia tốc từ hệ trục tọa độ điện thoại sang hệ trục tọa độ Trái Đất là:
𝑹 𝟎 = 𝑯𝒙 𝑹[𝟏] = 𝑯𝒚 𝑹 𝟐 = 𝑯𝒛
𝑹[𝟑] = 𝑴𝒙 𝑹[𝟒] = 𝑴𝒚 𝑹 𝟓 = 𝑴𝒛
𝑹 𝟔 = 𝑨𝒙 𝑹 𝟕 = 𝑨𝒙 𝑹 𝟖 = 𝑨𝒙
(3.4)
Tuy nhiên trọng hệ điều hành Android hỗ trợ hàm tính trực tiếp ma trận R[9] trên
SensorManager.getRotationMatrix(R, I, grav, mag).
Với I(3x3) là ma trận đơn vi, chuyển vectơ từ trường kế về cùng hệ trục tọa độ với vec tơ trọng lực(hệ trục tọa độ Trái Đất)
[0 0 g] = R * gravity (g = độ lớn của trọng lực)
[0 m 0] = I * R * geomagnetic (m = độ lớn của từ trường).
- Khi đĩ ma trận chuyển R’ vectơ gia tốc từ Trái Đất về điện thoại sẽ là nghịch đảo của ma trận R, ta gọi hàm invertM của thư viện openGL để tính R’
- android.opengl.Matrix.invertM(R’, 0, R, 0)
- Nhân ma trận R’ với vectơ gia tốc kế theo 3 trục điện thoại ta sẽ thu được giá trị gia tốc kế theo 3 trục của Trái Đất.
android.opengl.Matrix.multiplyMV(acc_Earth_coordinates, 0, R’, 0, acc, 0);
Hành vi tham gia giao thơng được ghi nhận trong thời gian tương đối dài (khoảng 5 phút) với tỷ lệ lấy mẫu 50Hz. Bên cạnh đĩ một mẫu trên một khoảng thời gian cụ thể khơng cung cấp đủ thơng tin để mơ tả hành vi. Vì vậy hành vi cần được phát hiện trong khung thời gian nhất định (Window size). Vậy “Làm thế nào để chúng
ta so sánh hai khung thời gian nhất định?”. Gần như khơng thể cĩ được các tín hiệu giống hệt nhau ngay cả khi nĩ được tạo ra từ cùng một đối tượng và thực hiện cùng một hành vi. Đĩ chính là động lực cho việc áp dụng phương pháp trích chọn đặc trưng cho mỗi khung thời gian: Lọc thơng tin liên quan và cĩ được các biện pháp định lượng cho phép so sánh các tín hiệu.
3.5 Trích chọn đặc trƣng 3.5.1 Độ nghiêng bất biến 3.5.1 Độ nghiêng bất biến
Kế thừa cách tính độ nghiêng bất biến đã được tính tốn và đề xuất của tác giả Han [9]. Tại thời điểm t cho phép các vector đại diện cho giá trị gia tốc là:
a0
(t) = [a0x(t), a0y(t), a0z(t)]’ (3.5) Tính tốn vector trung bình a 0(t) trên N mẫu,
b
(t) = 1
N N a (t) 0
t=1 (3.6)
Độ nghiêng vector gia tốc bù là:
a1
(t) =
cosθ2 −sinθ1sinθ2 −cosθ1sinθ2
0 cosθ1 −sinθ1
sin θ2 sinθ1cosθ2 cosθ1cosθ2
x a 0(t) (3.7)
Trong đĩ θ1 và θ2 được tính bằng phương trình sau : θ1= arctan(by
bz) (3.8) θ2= arctan( bx
bysin θ1+bzcos θ1) (3.9) Từ đĩ chúng ta tính được độ nghiêng bù và lực hấp dẫn gia tốc rơi tự do tức thời,
a2
(t) = [a 1x(t), a 1y(t), (a 1z(t) - 1
N Nt=1a (t) 1z )]’ (3.10)
Để loại bỏ ảnh hưởng của phương hướng gia tốc, tác giả Han[9] đã coi các thành phần x và y như một phần của số phức. Ơng cho rằng dùng độ lớn của gia tốc ngang là đủ. Từ đĩ trích chọn ra các đặc trưng:
Gia tốc theo chiều dọc :
av(t) = a2z(t) (3.11) Gia tốc theo chiều ngang :
ah(t) = a2x(t) 2 + a2y(t) 2 (3.12)
3.5.2 Năng lƣợng gia tốc
Chúng ta đang nghiên cứu các hành vi tham giao thơng, các hành vi này mang tính đặc trưng cá nhân tương đối rõ rệt. Do đĩ dựa vào các nghiên cứu trước đây đo lượng hoạt động thể chất ta sẽ áp dụng cho việc đo năng lượng của các hành vi giao thơng. Tích phân theo thời gian của các giá trị tuyệt đối của giá trị gia tốc sẽ đánh giá hoạt động thể chất [10]. Cùng một phương pháp đã được sử dụng trong [10] với tên “năng lượng gia tốc”. Với các hoạt động như nhảy thì hầu hết năng lượng sẽ được tính theo chiều dọc cịn với hầu hết các hoạt động khác năng lượng sẽ được tính theo chiều ngang. Vì vậy các đặc trưng được trích chọn theo chiều dọc và chiều ngang một cách riêng biệt. Với kích thước khung thời gian là T,
Ev = t=to +T av dt
t=to (3.13)
Và Eh = t=tot=to +T ah dt (3.14)
Do năng lượng gia tốc phụ thuộc vào các yếu tố sinh trắc như trọng lượng cơ thể nên đối với hầu hết các hoạt động nĩ sẽ thay đổi từ người này sang người khác.
3.5.3 Độ đo đi động, độ đo phức hợp
Hjorth khẳng định sự cần thiết của phương pháp định lượng về dấu vết điện não do hệ thống vật lý tạo ra các tín hiệu khơng tuân theo quy luật tuần hồn sử dụng để phân tích miền tần số. Các đặc trưng “độ đo di động Hjorth” và “độ đo phức hợp Hjorth” được sử dụng trong [12] để chuẩn đốn bệnh động kinh.
Độ đo di động Hjorth(Mobility) đại diện cho tần số trung bình, là căn bậc hai của tỉ số giữa phương sai của đạo hàm bậc nhất của tín hiệu và phương sai tín hiệu đĩ.
var (t) var(y(t)) dy y dt Mobility (3.15)
Độ đo phức hợp Hjorth(Comlexity) đại diện cho sự thay đổi trong tần số, là tỷ lệ giữa độ đo di động Hjorth của các đạo hàm bậc nhất của tín hiệu và độ đo di động Hjorth của tín hiệu đĩ.
dy Mobility y t dt Comlexity Mobility y t (3.16)
Cả hai cĩ thể được tính tốn trong thời gian tuyến tính. Chúng cung cấp cho ta một số thơng tin miền tần số mà khơng phải tính tốn phức tạp.
Nếu a là tín hiệu thì ta cĩ: TP= ∑ ai / N (3.17) M2 = ∑ di / N , di = ai - ai-1 (3.18) M4 = ∑( di - di-1)2 / N (3.19) Độ đo di động = M2 TP (3.20) Độ đo phức hợp = M4.TP M2.M2 (3.21)
Sau quá trình trên ta trích chọn ra 6 đặc trưng như sau:
Năng lượng gia tốc ngang(hE)
Năng lượng gia tốc dọc (vE)
Độ đo di động ngang (hM)
Độ đo di động dọc (vM)
Độ đo phức hợp ngang (hC)
Độ đo phức hợp dọc (vC)
Các đặc trưng trên sẽ được sử dụng làm dữ liệu cho quá trình huấn luyện mơ hình và cũng là dữ liệu đầu vào của quá trình phát hiện hành vi tham gia giao thơng theo thời gian thực.
CHƢƠNG 4 - THỰC NGHIỆM VÀ ĐÁNH GIÁ
Chương này sẽ trình bày quá trình thực nghiệm sử dụng một số mơ hình học máy mơ phỏng thực hiện phát hiện hành vi tham gia giao thơng theo thời gian thực trên thiết bị Android dựa trên bộ dữ liệu huấn luyện thu được. Hình 4.1 mơ tả lại luồng thực hiện quá trình thực nghiệm của nghiên cứu
Hình 4.1: Quá trình thực nghiệm phát hiện hành vi tham gia giao thơng
Quá trình thực nghiệm được thực hiện trên thiết bị di động sử dụng hệ điều hành Android 4.3 chạy trên thiết bị SamSung Galaxy S3. Vì lý do thời gian ngắn và qui mơ của nghiên cứu nên quá trình làm thực nghiệm được thực hiện trên một người. Kết quả trong nghiên cứu mang tính độc lập, khách quan vì thế cũng cĩ thể áp đánh giá độ chính xác phần nào của đề tài. Thực nghiệm bao gồm 2 phần : Huấn luyện mơ hình và thực nghiệm phát hiện hành vi trên theo thời gian thực trên thiết bị.
Xử lý dữ liệu Thu dữ liệu 3 trục gia tốc kế Đổi trục, bộ lọc thơng thấp Phân khung thời gian 1 giây Trích chọn 6 đặc trưng Dữ liệu 3 trục XYZ thơ
Đã lọc nhiễu Bộ đệm khung thời gian 1 giây Bộ phân lớp Tăng tơc Giảm tốc Di chuyển Dừng Mơ hình học máy
4.1 Thu thập dữ liệu huấn luyện mơ hình
Dữ liệu được ghi lại bởi thiết bị Android cĩ tích hợp cảm biến gia tốc, cảm biến từ trường kế, cảm biến trọng lực. Tần số lẫy mẫu được lấy mặc định theo tần số lấy mẫu nhanh nhất của thiết bị Android.
Thành phần gia tốc kế bao gồm thời gian ghi dữ liệu và giá trị gia tốc kế theo 3 trục. Dữ liệu từ trường kế và trọng lực bao gồm dữ liệu theo 3 trục.
Trong nghiên cứu này sẽ thực hiện phân tích hành vi tham gia giao thơng của người đi xe máy. Quá trình thu thập dữ liệu được thực hiện như sau: người thu thập đi xe máy, thiết bị được cầm trên tay để điều khiển quá trình thu thập. Khoảng thời gian lấy mẫu của các hành vi cĩ thể dài hay ngắn tùy thuộc vào hành vi. Ví dụ: hành vi Dừng và Di chuyển cĩ thể thu mẫu trong một khoảng thời gian dài, hành vi Tăng tốc và Giảm tốc phải thu mẫu trong khoảng thời gian ngắn khoảng 1s đến 2s.
Hình 4.2: Giao diện thu dữ liệu mẫu
Trên giao diện chương trình, người dùng chọn hành vi cần lấy mẫu và ấn nút “Start” để bắt đầu và chương trình sẽ thu dữ liệu. Với hành vi được thu nhiều lần thì
tên dữ liệu thu được cĩ kèm theo thứ tự lần ghi. Trong quá trình thu dữ liệu chương trình thu đồng thời dữ liệu của 3 cảm biến gia tốc kế, từ trường kế, cảm biến trọng lực, xử lý trực tiếp qua mỗi cặp dữ liệu 3 cảm biến này sẽ ra dữ liệu cảm biến gia tốc đã qua đổi trục và ghi liên tục vào file lấy mẫu được lưu ở bộ nhớ trong của điện thoại.
Trạng thái trong quá trình ghi dữ liệu là: cầm điện thoại cố định trên tay.