本發(fā)明涉及用戶駕駛行為的判斷方法,特別涉及使用手機自動判斷駕駛行為的方法。
背景技術:
已有的記錄駕駛者駕駛行為的方法是使用OBD(On-Board Diagnostic)盒子,即車載診斷系統(tǒng);這種技術需要駕駛者額外的硬件投入,且收集到的駕駛行為數據僅能與車輛掛鉤,無法與駕駛者關聯。
技術實現要素:
本發(fā)明要解決的技術問題是提供一種用戶不需要額外的硬件投入,僅使用智能手機就能完成全部判斷過程的使用手機自動判斷駕駛行為的方法。
為達到上述目的,本發(fā)明的技術方案如下:
使用手機自動判斷駕駛行為的方法,所述方法包括如下步驟:
(1)打開手機端APP應用軟件;點擊開始按鍵進入使用模式;此后無論用戶是否打開App還是將App退出至后臺運行都會自動判斷用戶的駕駛行為;手機利用內置的GPS定位模塊和傳感器模塊實時采集用戶駕駛速度數據;
(2)APP應用軟件會以當前位置為中心設置地理圍欄;
(3)APP應用應用軟件進入休眠模式,停止定位;
(4)當用戶出圍欄時對駕駛速度是否超過預先設定的閾值進行判斷;如果駕駛速度超過預先設定的閾值,則進入下個程序;如果駕駛速度沒有超過預先設定的閾值,則APP應用軟件重復步驟(2)直至駕駛速度超過預先設定的閾值為止;
(5)對手機狀態(tài)是否滿足行程開始條件進行判斷;如果滿足,則進入下個程序,如果不滿足,則APP應用軟件返回步驟(2)重新判斷直至手機狀態(tài)滿足行程開始條件;
(6)對運動狀態(tài)是否滿足行程開始條件進行判斷;如果滿足,則進入下個程序,如果不滿足,則APP應用軟件返回步驟(2)重新判斷直至運動狀態(tài)滿足形成開始條件;
(7)記錄GPS定位模塊采集的數據以及傳感器模塊采集的數據,并將采集到的數據傳遞給APP應用軟件駕駛行為分析庫函數中進行計算;
(8)對速度是否低于預先設定的閾值進行判斷;如果速度低于預先設定的閾值,則進入下個程序;如果不低于預先設定的閾值,則APP應用軟件返回步驟(7)直至速度低于預先設定的閾值為止;
(9)對手機狀態(tài)是否滿足行程結束條件進行判斷;如果滿足,則用戶駕駛行程結束;如果不滿足,則進入下個程序;
(10)對運動狀態(tài)是否滿足行程結束條件進行判斷;如果滿足,則用戶駕駛行程結束;如果不滿足,則APP應用軟件返回步驟(7)直至運動狀態(tài)滿足行程結束條件;
(11)APP應用軟件在行程結束后進行數據清洗,然后在使用傳感器數據二次過濾行程過濾掉乘車者行程數據而僅留下駕駛者行程數據;
(12)對非駕車狀態(tài)點的比例是否超過閾值進行判斷,如果超出閾值,則結束;如果未超出閾值,則將數據進行壓縮、分片、上傳至APP應用軟件服務端,并最終在APP應用軟件上顯示出來。
在本發(fā)明的一個實施例中,當用戶出圍欄時對駕駛速度是否超過預先設定閾值的判斷方法為:使用手機GPS定位模塊返回的數據,其中包含有瞬時的原始速度,單位是米/秒,閾值是2.235m/s,等于8km/h,閾值是根據200個實驗樣本,5分鐘的非駕駛行程數據,取上95分位數,取整后作為觸發(fā)閾值的。
在本發(fā)明的一個實施例中,對手機狀態(tài)是否滿足行程開始條件的判斷方法為:在本步驟中存在最長不超過一分鐘緩沖時長,本階段開始時,每秒從GPS定位模塊取一次速度,若任一次定位速度大于2.235m/s,則進入下個程序;若在一分鐘內所返回的速度均不超過2.235m/s,則App應用軟件返回步驟(2)。
在本發(fā)明的一個實施例中,對運動狀態(tài)是否滿足形成開始條件的判斷方法為:在本步驟中存在最長不超過一分鐘緩沖時長,本階段開始時,使用手機GPS定位模塊來獲取手機用戶的瞬時速度數值,每秒一次,共計60組,使用傳感器九軸數據得到用戶姿態(tài)判斷數據,每秒五次,共計300組;具體的做法是,使用重力傳感器和磁力傳感器回傳的六軸數據,合成旋轉矩陣R,使用R左乘加速度三軸向量數據,得到校正到車輛坐標系后的三軸加速度向量(x,y,z);若z軸大小不在0.9-1.1個重力加速度內,且x與y的平方和大于1m/s2,則記錄該組數據判斷值為1;當300組數中有100組以上為1時,返回步驟(2),重新判斷直至運動狀態(tài)滿足行程開始條件;當300組數中沒有30組判斷值為1時,則進入下個程序;當300組數中有30-100個判斷值為1時,計算60s內的平均速度,若平均速度大于3m/s則進入下個程序,否則App應用軟件返回步驟(2)。
在本發(fā)明的一個實施例中,對速度是否低于預先設定閾值的判斷方法為:使用手機GPS定位模塊返回的數據,其中包含有瞬時的原始速度,單位是米/秒,閾值是2.235m/s,等于8km/h,閾值是根據200個實驗樣本,5分鐘的非駕駛行程數據,取上95分位數,取整后作為觸發(fā)閾值的。
在本發(fā)明的一個實施例中,對手機狀態(tài)是否滿足行程結束條件的判斷方法為:本階段仍存在最多不超過一分鐘的緩沖期,當連續(xù)六十秒速度都低于2.235m/s時,行程結束,當任意一次定位獲得的速度大于2.235m/s時,進入下個程序。
在本發(fā)明的一個實施例中,運動狀態(tài)是否滿足行程結束條件的判斷方法為:在本步驟中存在一分鐘的緩沖時長,使用手機GPS定位模塊手機用戶的瞬時速度數值,每秒一次,共計60組,使用傳感器九軸數據得到用戶姿態(tài)判斷數據,每秒五次,共計300組;具體的做法是,使用重力傳感器和磁力傳感器回傳的六軸數據,合成旋轉矩陣R,使用R左乘加速度三軸向量數據,得到校正到車輛坐標系后的三軸加速度向量(x,y,z);若z軸大小不在0.9-1.1個重力加速度內,且x與y的平方和大于1m/s2,則記錄該組數據判斷值為1;當300組判斷值中1的個數少于30個時,返回步驟(7),否則進入下個程序。
在本發(fā)明的一個實施例中,數據清洗分為五步:
第一步,檢查每個字段是否存在不合理的錯誤數值,longitude應在0-360之間,latitude應在-90-90之間,timestamp應大于1356969600000,course應在0-360之間,speed應在0-56之間,以上區(qū)間均包含端點,對每行數據,僅當所有字段均在范圍內時保留;
第二步,用慣性導航的原理,線性差值補全GPS點的數據,使得相鄰的兩條數據間的間隔在800-1200毫秒之間;
第三步,若speed字段出現最多不超過連續(xù)3個缺失的,將speed缺失的幾行用前后非缺失行線性差值補全;
第四步,若course字段出現最多不超過連續(xù)3個缺失的,將course缺失的幾行用前后非缺失行線性差值補全;
第五步,計算速度的前10秒移動平均速度。
在本發(fā)明的一個實施例中,使用傳感器數據二次過濾行程過濾掉乘車者行程數據而僅留下駕駛者行程數據的方法為:將九軸傳感器的數據按每分鐘歸集,每分鐘為300組數據,每組數據計算出一個判斷值,0或者1;具體的做法是,使用重力傳感器和磁力傳感器回傳的六軸數據,合成旋轉矩陣R,使用R左乘加速度三軸向量數據,得到校正到車輛坐標系后的三軸加速度向量(x,y,z);若z軸大小不在0.9-1.1個重力加速度內,且x與y的平方和大于1m/s2,則記錄該組數據判斷值為1,否則則為0;當300組判斷值中1的個數少于30個時,該分鐘被用戶姿態(tài)被記為駕駛;當300組判斷值中1的個數在30-100之間時,若該分鐘的平均速度小于3m/s,則標記為非駕駛,若大于等于3m/s,則標記為駕駛;當300組判斷值中1的個數大于100個時,該分鐘被用戶姿態(tài)被記為非駕駛。
在本發(fā)明的一個實施例中,非駕車狀態(tài)點的比例是否超過閾值的判斷方法為:對于總行程時間而言,若前一步驟中標記的非駕駛狀態(tài)大于65%,則該段行程數據被過濾掉,直接丟棄;否則將數據壓縮、分片、上傳至服務器,進行事件提取并對行程打分后,在App應用軟件上顯示出來。
通過上述技術方案,本發(fā)明的有益效果是:
一、用戶不需要額外的硬件投入,僅使用智能手機就能完成全部的判斷過程。
二、在駕駛行為判斷中完全不需要駕駛者的人工干預,僅需要對手機APP授予GPS定位權限即可。
三、判斷與反饋是即時的,在行程結束后駕駛者即可看到該段行程的詳情,算法已自訓練好,對新用戶無需額外的訓練樣本。
附圖說明
為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發(fā)明工作流程圖;
具體實施方式
為了使本發(fā)明實現的技術手段、創(chuàng)作特征、達成目的與功效易于明白了解,下面結合具體圖示,進一步闡述本發(fā)明。
參見圖1所示,本發(fā)明公開了使用手機自動判斷駕駛行為的方法,方法包括如下步驟:
(1)打開手機端APP應用軟件;點擊開始按鍵進入使用模式;此后無論用戶是否打開App還是將App退出至后臺運行都會自動判斷用戶的駕駛行為;手機利用內置的GPS定位模塊和傳感器模塊實時采集用戶駕駛速度數據。
(2)手機端APP應用軟件會以當前位置為圓心,設置半徑120m的地理圍欄。
(3)APP應用應用軟件進入休眠模式,停止定位。
(4)當用戶出圍欄時對駕駛速度是否超過預先設定的閾值進行判斷;如果駕駛速度超過預先設定的閾值,則進入下個程序;如果駕駛速度沒有超過預先設定的閾值,則APP應用軟件重復步驟(2)直至駕駛速度超過預先設定的閾值為止;當用戶出圍欄時對駕駛速度是否超過預先設定閾值的判斷方法為:使用手機GPS定位模塊返回的數據,其中包含有瞬時的原始速度,單位是米/秒,閾值是2.235m/s,等于8km/h,閾值是根據200個實驗樣本,5分鐘的非駕駛行程數據,取上95分位數,取整后作為觸發(fā)閾值的,如果駕駛速度超過2.235m/s,則進入下個程序;如果駕駛速度沒有超過2.235m/s,則APP應用軟件重復步驟(2)直至駕駛速度超過2.235m/s為止。
(5)對手機狀態(tài)是否滿足行程開始條件進行判斷;如果滿足,則進入下個程序,如果不滿足,則APP應用軟件返回步驟(2)重新判斷直至手機狀態(tài)滿足行程開始條件;對手機狀態(tài)是否滿足行程開始條件的判斷方法為:在本步驟中存在最長不超過一分鐘緩沖時長,本階段開始時,每秒從GPS定位模塊取一次速度,若任一次定位速度大于2.235m/s,則進入下個程序;若在一分鐘內所返回的速度均不超過2.235m/s,則App應用軟件返回步驟(2)。
(6)對運動狀態(tài)是否滿足行程開始條件進行判斷;如果滿足,則進入下個程序,如果不滿足,則APP應用軟件返回步驟(2)重新判斷直至運動狀態(tài)滿足形成開始條件;對運動狀態(tài)是否滿足形成開始條件的判斷方法為:在本步驟中存在最長不超過一分鐘緩沖時長,本階段開始時,使用手機GPS定位模塊來獲取手機用戶的瞬時速度數值,每秒一次,共計60組,使用傳感器九軸數據得到用戶姿態(tài)判斷數據,每秒五次,共計300組;具體的做法是,使用重力傳感器和磁力傳感器回傳的六軸數據,合成旋轉矩陣R,使用R左乘加速度三軸向量數據,得到校正到車輛坐標系后的三軸加速度向量(x,y,z);若z軸大小不在0.9-1.1個重力加速度內,且x與y的平方和大于1m/s2,則記錄該組數據判斷值為1;當300組數中有100組以上為1時,返回步驟(2),重新判斷直至運動狀態(tài)滿足行程開始條件;當300組數中沒有30組判斷值為1時,則進入下個程序;當300組數中有30-100個判斷值為1時,計算60s內的平均速度,若平均速度大于3m/s則進入下個程序,否則App應用軟件返回步驟(2)。
(7)記錄GPS定位模塊采集的數據以及傳感器模塊采集的數據,并將采集到的數據傳遞給APP應用軟件駕駛行為分析庫函數中進行計算;本發(fā)明是用手機自動判斷用戶駕駛行為并收集用戶駕駛行為數據的部分,不涉及到后期對收集到的駕駛行為進行分析處理的部分;主要收集GPS模塊數據,每秒一次,三個傳感器的九軸數據,每秒五次,以及對點亮和熄滅屏幕的事件監(jiān)聽,并將數據寫到sqlite數據庫中;后期服務器端的算法會通過這些數據判斷用戶是否存在不文明的駕駛行為:如急加速、急剎車、急左轉、急右轉、變道、使用手機等。
(8)對速度是否低于預先設定的閾值進行判斷;如果速度低于預先設定的閾值,則進入下個程序;如果不低于預先設定的閾值,則APP應用軟件返回步驟(7)直至速度低于預先設定的閾值為止;對速度是否低于預先設定閾值的判斷方法為:使用手機GPS定位模塊返回的數據,其中包含有瞬時的原始速度,單位是米/秒,閾值是2.235m/s,等于8km/h,閾值是根據200個實驗樣本,5分鐘的非駕駛行程數據,取上95分位數,取整后作為觸發(fā)閾值的;如果速度低于預先設定的2.235m/s,則進入下個程序;如果不低于預先設定的2.235m/s,則APP應用軟件返回步驟(7)直至速度低于預先設定的2.235m/s為止。
(9)對手機狀態(tài)是否滿足行程結束條件進行判斷;如果滿足,則用戶駕駛行程結束;如果不滿足,則進入下個程序;對手機狀態(tài)是否滿足行程結束條件的判斷方法為:本階段仍存在最多不超過一分鐘的緩沖期,當連續(xù)六十秒速度都低于2.235m/s時,行程結束,當任意一次定位獲得的速度大于2.235m/s時,進入下個程序。
(10)對運動狀態(tài)是否滿足行程結束條件進行判斷;如果滿足,則用戶駕駛行程結束;如果不滿足,則APP應用軟件返回步驟(7)直至運動狀態(tài)滿足行程結束條件;運動狀態(tài)是否滿足行程結束條件的判斷方法為:在本步驟中存在一分鐘的緩沖時長,使用手機GPS定位模塊手機用戶的瞬時速度數值,每秒一次,共計60組,使用傳感器九軸數據得到用戶姿態(tài)判斷數據,每秒五次,共計300組;具體的做法是,使用重力傳感器和磁力傳感器回傳的六軸數據,合成旋轉矩陣R,使用R左乘加速度三軸向量數據,得到校正到車輛坐標系后的三軸加速度向量(x,y,z);若z軸大小不在0.9-1.1個重力加速度內,且x與y的平方和大于1m/s2,則記錄該組數據判斷值為1;當300組判斷值中1的個數少于30個時,返回步驟(7),否則進入下個程序。
(11)APP應用軟件在行程結束后進行數據清洗,然后在使用傳感器數據二次過濾行程過濾掉乘車者行程數據而僅留下駕駛者行程數據;
數據清洗分為五步:
第一步,檢查每個字段是否存在不合理的錯誤數值,longitude應在0-360之間,latitude應在-90-90之間,timestamp應大于1356969600000,course應在0-360之間,speed應在0-56之間,以上區(qū)間均包含端點,對每行數據,僅當所有字段均在范圍內時保留;
第二步,用慣性導航的原理,線性差值補全GPS點的數據,使得相鄰的兩條數據間的間隔在800-1200毫秒之間;
第三步,若speed字段出現最多不超過連續(xù)3個缺失的,將speed缺失的幾行用前后非缺失行線性差值補全;
第四步,若course字段出現最多不超過連續(xù)3個缺失的,將course缺失的幾行用前后非缺失行線性差值補全;
第五步,計算速度的前10秒移動平均速度。
使用傳感器數據二次過濾行程過濾掉乘車者行程數據而僅留下駕駛者行程數據的方法為:將九軸傳感器的數據按每分鐘歸集,每分鐘為300組數據,每組數據計算出一個判斷值,0或者1;具體的做法是,使用重力傳感器和磁力傳感器回傳的六軸數據,合成旋轉矩陣R,使用R左乘加速度三軸向量數據,得到校正到車輛坐標系后的三軸加速度向量(x,y,z);若z軸大小不在0.9-1.1個重力加速度內,且x與y的平方和大于1m/s2,則記錄該組數據判斷值為1,否則則為0;當300組判斷值中1的個數少于30個時,該分鐘被用戶姿態(tài)被記為駕駛;當300組判斷值中1的個數在30-100之間時,若該分鐘的平均速度小于3m/s,則標記為非駕駛,若大于等于3m/s,則標記為駕駛;當300組判斷值中1的個數大于100個時,該分鐘被用戶姿態(tài)被記為非駕駛。
(12)對非駕車狀態(tài)點的比例是否超過閾值進行判斷,如果超出閾值,則結束;如果未超出閾值,則將數據進行壓縮、分片、上傳至APP應用軟件服務端,并最終在APP應用軟件上顯示出來。
非駕車狀態(tài)點的比例是否超過閾值的判斷方法為:對于總行程時間而言,若前一步驟中標記的非駕駛狀態(tài)大于65%,則該段行程數據被過濾掉,直接丟棄;否則將數據壓縮、分片、上傳至服務器,進行事件提取并對行程打分后,在App應用軟件上顯示出來,該閾值是根據坐車與乘客行為樣本,使用SVM支持向量機算法學習得出的,此處不加贅述。
上述傳感器模塊還可以為重力感應器和/或距離感應器,其根據需要判斷的用戶駕駛行為而定,具體判斷方法和本發(fā)明基本相同,此處不加贅述。
以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術人員應該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進,這些變化和改進都落入要求保護的本發(fā)明范圍內。本發(fā)明要求保護范圍由所附的權利要求書及其等效物界定。