top of page

工作詳述

​1061716 葉佳銘

基於後方視野之車輛死角偵測暨車道變換警示系統

(一) 目標摘要

     由於近年來道路事故傷亡人次屢高不下,為了降低交通事故的發生可能,本計畫提出一個基於後方視野之車輛死角偵測暨車道變換警示系統,用於即時偵測道路狀況並提出警示之系統,將影像連續輸入至系統內分析,系統採用了深度學習中的卷積式神經網路架構,讓系統能準確且快速的對每一幀的影像畫面進行偵測及判斷。因為是需要即時的判斷,需要較高的效率,故而此系統使用判別物件的YOLOv3架構先行偵測出交通工具及分辨其種類,之後再使用PINet分割偵測出車道線,再以DeepSORT建立追蹤器,將每一偵測出的交通工具進行編號及追蹤,而後透過數幀影像中之交通工具的相對位置變化即可計算出該交通工具之運動矢量,再進而透過預先已設定好的危險區域、高速駕駛、蛇行的判定條件及有大車接近等,就可以運用系統判斷是否有交通工具即將進入至危險區內或有危險駕駛的行為。在駕駛人駕駛於道路上和變換車道前,若偵測到有行人或車輛且經以上所述判別後為有危險性存在,則對駕駛人做出警告,使駕駛人能加以注意,達到降低車禍率之成效。

(二) 準備期(9月-12月)

  其實在最一開始,對於要選擇實習或是專題著實猶豫了很久,因為各自有各自的好處及壞處,但是經過了審慎考量自身時間及一切的條件後,毅然決然地選擇了做專題的這一條路。  

  當下定了決心,就馬上開始搜尋系上教授的相關專長,經過一番搜尋與詢問後,發現郭教授的專長是圖像辨識,而這與我的興趣相契合,也因為在平常有修過不少教授的課,因此就打定主意,請教授作為我的專題導師。

  在剛開始的時候,雖然對於要做什麼樣的題目還是一片茫然,但是我知道不論是要做什麼,在最基本的觀念技術上皆是相同的,因此就決定開始邊研讀論文邊尋找自己的目標。不得不說當看到全英文的論文時,雖然早就已經有心理準備了,但還是不免被深深的震懾住,尤其是因為本身英文底子就不好,就更又多了一層恐懼。想當然的,一開始一定是什麼都不懂,不管是專業的或是非專業的單字都是,因此我一邊透過查詢翻譯學習新的單字,也一邊透過查詢深入其單字的意義。後來越看越多就越看越熟,漸漸地已經不用用到太多的翻譯功能,甚至就連專業名詞也漸漸懂得越來越多,不得不說,這讓我之後對於完成我的工作,有著非常大的幫助,因為現在許多相關的網站皆是以英文來做為呈現的。畢竟網路上的內容有真有假,有些在現在也已經過時了,自己的英文也不甚好,因此在有了基本的觀念想法之後,再向教授請教討論詳細的內容,讓自己能夠理解的更為深入且正確。經過長時間且大量的閱讀後,對於影像辨識這方面有著更明確的理解,自然也就漸漸的對於自己要做什麼樣的目標、能做什麼樣的目標有著更清晰的方向。  

  根據內政部警政署提供之近年車禍事件統計資料(圖一),發現近年來交通事件頻仍,而細觀其中原委後,即知道係因當駕駛車輛時,駕駛人大部分之注意力皆聚焦於前方,而忽略了其他方的各種突發事件。臺灣地峽而人稠,道路較為狹小,各交通工具行駛於道路之上並無明顯分際,且容易為了爭分奪秒進行高速或危險駕駛,並又因為機車數量龐大,更使得道路上充滿了更多變數。特別是近年來個人機車外送行業興起,機車可能造成之危險,就應該更備受重視。

擷取.PNG

圖一、道路交通事故統計傷亡次數

  綜合以上所述,也在經過了與教授通盤的商量討論之後,選擇了做道路及車輛方面的影像辨識,計畫做出一個基於後方視野之車輛死角偵測暨車道變換警示系統,並期能完成下述之結果:

  1.  當有後方車輛接近危險區(死角)時,給予駕駛人警告。使駕駛人能夠在無法看到車輛的情況下,更為小心謹慎,避免車禍憾事發生。

  2.  做變換車道前提醒及警告。如欲變換之車道後方有車輛於近處或仍高速行駛,駕駛人突然變換車道,勢必容易造成事故發生。

  3.  高速或危險駕駛(蛇行)接近車輛,給予警告。當後方有較危險因子,可先做出規避或減速,   以避免發生意外。

(三) 前期(12月-3月)

     經過了學校相關處室及教授的轉發,知道每年都固定會有由國家科技部所舉辦的「大專生專題研究計畫」,在經過與教授討論過後,知道教授是鼓勵如果能參與就盡量參與,就算沒有申請成功也沒有關係,因為這都是一次很寶貴的經驗。

        而既然決定了要申請這一個國家科技部的計畫,那就表示著需要繳交一份十頁左右的計畫書,而自己在當時完全是沒有撰寫計畫書的經驗,因此在剛剛起步的時候是非常的舉步維艱。所幸經過了教授的悉心指導及遍覽前人所撰寫的計畫書範例後,就可以慢慢穩步的開始進行撰寫。

        計畫書的最開始就是摘要,而摘要其實就是把通篇的內容濃縮成為一個段落,但是在當時計畫書一片空白,何來的通篇內容呢?所以其實摘要雖然放在最開始,但是其實是要在通篇寫完後,在最後才能寫出適當的摘要。

        而後就是研究動機與研究問題,在這部分要能夠說明為什麼要研究這個?要研究什麼樣的問題?要怎麼樣研究?我在計畫書中,提到了近年來車禍事件頻仍,但是因為擔心空口無憑,因此到了內政部警政署去搜尋資料,而為了使資料能夠視覺化,也特別撰寫了小程式,將資料以圖表的方式呈現出來,而後再提出要達到的預期結果及為了達成而所需要使用的方法。

        接著是文獻回顧與探討,在這部分需要闡述自己所學、所用是從哪篇論文來,並且再進而往上追述,尋找其相關發展的脈絡。在這裡其實也是耗費了許多時間,因為不只必須得要閱讀用到的論文,也要閱讀其引用的論文,一步一步找到是從何處發展而來,又是去了哪些糟粕而取了哪些精華。而因為有著前期的論文閱讀經驗,因此在這邊也算是縮短了不少耗時。

        研究方法及步驟大概是佔據計畫書最大篇幅的部分了,一開始得要先簡述主要的流程及每一個流程的方法,而後再一一的詳細敘述其中的技術、方法。但是每一個技術方法中都有著許多難處,特別是數學及邏輯觀念部分,有非常多目前知識力所未逮的地方,因此寫的十分吃力,幾乎可以算只是把英文直接翻譯成中文後寫上。不過我也將其當作一次次的論文閱讀練習,讓自己更多了豐富的經驗與知識。

        之後的預期結果,其實內容與研究問題的最末段差相彷彿,只是更為強調凸顯出所要設計出的目標及預期的結果,並對更久遠的未來提出期許。

參考文獻則是按照計畫書中出現他人論文之部分處依其順序排列好,並也在計畫書中出現的每一個地方依排列好的順序做註記,之後再於此段列出其順序、作者、論文名稱、出版處、日期、引用的頁數。

        在最後則是需要指導教授指導的內容,而因為在此之前我幾乎是完全沒有任何相關的知識及概念,甚至就連基礎的物理、數學皆不甚熟,所以有許多的地方都需要被指導。

而當初步大致撰寫完成後,還要應要求重新編排文件格式、修改用字用詞及許多瑣碎的事情,從最簡陋的第一版本到完善的第五版本歷經多時,請教授撥冗反覆勘驗後,才終於能順利在收稿日期截止前完成。

(四) 中期(3月-6月)

        當把計畫書完成後,緊接著就是要將程式運行環境架設好,而因為這次的目標需要使用到深度學習及影像方面的技術,因此選擇了時下較方便易用的Python作為主要的執行程式,並且使用Anaconda管理Python的軟體包,而因為以往學習Python的編譯環境是Jupyter,所以這次也是重新建立了Jupyter的環境。

        最一開始因為還不熟稔tensorflow,因此就只是照著安裝執行而已,但是一等到需要建立模型、訓練模型的時候,才發現速度好像十分的緩慢,後來經過了教授的指點才知道預設的只是在CPU為底的環境,而深度學習因為運算量更加的龐大,故而通常需要更快的運算速度,因此也必須將原本以CPU為底的環境轉變而成為以GPU為底的環境,而要能夠做到這個轉變就不僅僅只是調整參數、幾行程式就能做到。首先需要到Nvidia下載對應到自己電腦GPU版本的GPU驅動程式,而當下載完也安裝完成後,就需要下載安裝CUDA Toolkit及CUDNN,而這裡我是裝了第二次反覆調整後才得以成功建立,因為CUDA Toolkit及cuDNN和tensorflow必須版本彼此相互的對應到才能正確的安裝執行。

        而因為已經較長時間沒有使用Python,也因為之前學Python學習的較為不連貫,因此決定重新好好的熟悉、學習Python基本語法。剛開始還是很不習慣格式屢屢犯錯,常常就寫成了C系列的語言格式,直到多次練習後,才能正確的寫好。

因為是影像辨識,所以在我熟悉了基本的Python後,我開始上網找與影像有相關的函數庫,如:Pillow、OpenCV,並且將其都運行過一次,看看各是什麼效果。並也因為是要用到深度學習,所以不只嘗試了keras的MNIST資料集做架構、訓練模型以數字辨識,也嘗試了keras的Cifar-10資料集做架構、訓練模型以類別辨識。

        當一切基礎準備就緒,接下來要做的則是依照著計畫書的內容慢慢實踐。首先是以ImageAI搭配YOLOv3進行道路上的車輛偵測,但是起初的偵測效果並不好,因此打算自己建立資料集,用與YOLOv3相同的darknet-53網路訓練模型,不過事不如人願,自己建立出來的效果更為差勁,於是上網查詢後,使用了YOLOv3本身的預訓練模型,修改了一些參數,才終於使得偵測效果良好。

原本計畫中是使用ENet配合SAD做車道線偵測,但是苦於網路上的資訊較少,實際效果也並不甚好,後來使用的是OpenCV的kenny邊緣偵測搭配hough變換檢測車道線,但是效果也不佳,而後又改使用深度學習的不知名方法,雖然效果較前兩項好了不少,但是在如陰影處或車道線不整處仍差強人意,直到最後使用了PINet才算是圓滿達成預期的車道線檢測目標。

        接著再從影像中結合車道線定義出危險區域,當判斷出若有車輛行經危險區域或附近有像是卡車、公車等大型車輛,即標註其為危險。也在自己車輛變換車道前,對預變換之車道進行判斷,若有車輛於預變換之車道上之危險區域內,對其標註為危險。

但是當將YOLOv3與PINet合併時,卻發生了GPU記憶體不夠的問題,遂而再度上網搜尋解決辦法,而後插入限制GPU記憶體使用量的程式,方能將其合併執行。至此,雖然因為限縮了記憶體的使用而導致速度較為緩慢,但是已經算是完成了雛形,可以解決預期結果一及預期結果二了,待之後使用實驗室之電腦則可解除限縮。

        最後則是要做車輛追蹤,將每一台出現的車輛進行獨立的編號,並且計算車輛每一幀的位置、方向、速度的變化量,進而計算出矢量並透過演算法計算判斷出是否有蛇行或超速…等的危險行為,而在這裡使用的是DeepSORT來追蹤。

(五) 近期(6月-9月)

        為了確認在各種情況之下,所有的有危險判定都判定的正確,因此開始大量的嘗試在不同路段、不同時間的行車紀錄影片,也為此先暫時在程式碼中設定一次可執行多部 影片的程式,並且將偵測出有危險的部分輸出為文字檔,以利執行完程式後可以更為順利方便的人工檢定。

        在此期間也發現到了,有些閾值的參數可能適用於某些路段、某些時候,但又有一些較為的不那麼適用,因此在經過了大量的實驗,甚至是將超速的條件分為本身自己是否為靜止狀態之後,才訂定了適用於絕大多數情形的閾值,讓超速、蛇行…等的行為,並以物件編號及危險作為區段的區分,當一連通過數次的閾值測試,才判定為有危險的可能,這將可以使判定的更為精確,降低誤判發生的可能性。

        在約於九月底的時候,還有一個由經濟部科技局所舉辦的「大專校院資訊應用服務創新競賽」,而雖然取向相較於國家科技部的「大專生專題研究計畫」略有一些不同的地方,但是因為有了先前撰寫的經驗,所以與第一次比較起來是熟練了不少,很快地就能夠知道重點應該要放在何處、要如何規劃架構、內容該寫些什麼,因此才得以花費比較少的時間迅速地完成計畫文件。

(六) 使用到之技術

 1. 物件偵測方法:YOLOv3[1]

  1.1 BoundingBoxPrediction:

  使用 dimension clusters 作為 anchor boxes 預測邊界框[2],網路替每一個邊界框預測四個座標𝑡𝑥, 𝑡𝑦,𝑡𝑤,𝑡ℎ。如果單元格從圖的左上方偏移(𝑐𝑥 , 𝑐𝑦 )且先前有寬 和高𝑝𝑤, 𝑝ℎ,則預測相對應方程式為:

方程式1.JPG

  在訓練期間,使用均方誤差和。如果對於一些座標預測為𝑡̂ ∗,梯度是 ground truth value(透過 ground box 計算後得出)減掉預測: 𝑡̂ ∗ − 𝑡∗。而透過反推上面的方程式可計算出 ground truth value。 使用邏輯回歸法預測每個邊界框的目標分數。如果先前的邊界框較更之前其他的重疊邊界框 ground truth 物件多,則其值應為 1。若先前的邊界框並非最好 但重疊邊界框 ground truth 物件大於閾值 0.5 則忽略預測,而這個做法是向 RCNN[3]借鑒的。但與 RCNN 不同,只對每個ground truth 物件分配單一邊界框。 如果先前的邊界框未分配給 ground truth 物件,不會有座標或類別預測的損失。

  1.2 ClassPrediction:

  每個框皆使用多標籤分類框預測邊界框的分類,且使用的是獨立的 logisitc 做二分類。訓練時使用二元交叉熵損失函式進行類別預測。

  1.3 PredictionsAcrossScales:

  預測三種不同尺度的框。使用類似的概念來提取尺度的特徵並形成金字塔網 路[4]。從基本的特徵提取器中新增數個卷積層,最後一層預測了 3-d 張量編碼邊界框、物件及類別預測。根據在 COCO[5]的經驗,在每個尺度中,皆預測了 3 個框,故對於 4 個邊界框偏移量、1 個物件預測與 80 個類別預測,其張量為 N × N × [3 ∗ (4 + 1 + 80)]。 從先前的兩層中取得特徵圖並向上採樣兩倍。也從比較早版本的網路中得到 特徵圖,使用 concatenation 與向上採樣特徵進行合併。這方法使得能夠從較早期特徵圖中的上採樣特徵和更細粒度中獲得更多有意義的語意訊息。再添加更多一些卷積層來處理組合的特徵圖,雖然現在是兩倍大小,但最後預測出一個相似的張量。

  再度執行一次相同的設計以預設最終尺度的框。因此對第三種尺度的預測將獲益於所有先前的計算,且從早期網路中得到細粒度的特徵。使用 k-means 聚類來確定先前的邊界框。選擇了 9 個聚類與 3 個尺度,然後將這些聚類在尺度間均分。9 個聚類是: (10 ×13), (16 × 30), (33 × 23), (30 × 61), (62 × 45), (59 × 119), (116 × 90), (156 × 198), (373 × 326)。

  1.4 FeatureExtractor:   

  使用新的網路(圖二)來獲取特徵。此新網路是 YOLOv2、Darknet-19 中的網路與新的殘差網路的混合方法。使用了連續的3x3和1x1卷積層,但現在也有一些 shotcut 連接,並且網路明顯更大。共有 53 個卷積層,稱為 Darknet-53。此一新 網路較 Darknet-19 功能有力,且比ResNet-101 或 ResNet-152 有效率。

二.png

圖二、Darknet-53 架構圖 [1]

2. 車道線偵測方法:PINet[6]

  2.1 Lane Instance Point Network:

  PINet 包括三個主要部分。輸入的大小調整為512x256的,由大小調整層 (resizing    layer)壓縮,並將壓縮的輸入傳遞到特徵提取層。在每個沙漏 (hourglass)塊 的末尾有三個輸出分支,分別預測每個網格的置信度、偏移 量和實例特徵。

  2.2 Resizing layer:      

    512x256→64x32或者32x16(圖三)。

三.png

圖三、Resize layer[6]

  2.3 Feature extraction layer:

    特徵提取層由兩個沙漏塊組成,沙漏塊的詳細架構如下(圖四、五)。

四.png
五.png

圖四、五 沙漏塊細節[6]

2.4 Output Branches:

  輸出分支的濾波器數量由輸出值確定。即置信度分支(Confidence branch)為 1、偏移分支  (Offset branch)為 2、特徵分支(Feature branch)為 4。三個分支的損 失函數分別為:

  Confidence branch loss:

方程式2.JPG

其中𝑁𝑒、𝑁𝑛分別表示網格中存在和不存在點的總數,G 表示一系列的 grids,𝑔𝑐表示輸出   gird 的置信度,𝑔𝑐 ∗表示 ground truth,γ表示係數。

  Offset branch loss:

方程式3.JPG

  Feature branch loss:

方程式4.JPG

  其中𝐶𝑖𝑗表示點 i 和 j 是否屬於同一實體,若屬於同一實體,則𝐶𝑖𝑗 = 1,𝐹𝑖 表示通過網路預測的點 i 的特徵,K 是大於 0 的常數。

   總損失為三者之和:

方程式5.JPG

  2.5 Post Processing:

    步驟一:找到六個起點,起點定義為最低的三個點和最左或最右的三個點。

    步驟二:在高於每個起點的點中,選擇距起點最近的三個點。

    步驟三:考慮一條直線連接步驟一和步驟二的兩個點。

    步驟四:計算直線與其他點之間的距離。

    步驟五:計算邊界內點的數量。

    步驟六:選擇大於閾值中最大的點作為新起點,並把其與起點視為同一類。

    步驟七:重複步驟二到步驟六,直到步驟二找不到點為止。

    步驟八:將所有起點重複步驟一到七,並將最大長度群集視為結果車道。

    步驟九:對所有預測點重複步驟一到步驟八。

 3. 物件追蹤方法:DeepSORT[7] 

  3.1 Track Handling and State Estimation:

  使用一個八維空間(𝑢, 𝑣, γ, ℎ, 𝑥̇,𝑦̇, 𝛾̇, ℎ̇)去定義追蹤的場景,其中包含邊界框 中心位置(𝑢, 𝑣)、寬高比γ、高度ℎ以及各自在圖像座標中對應的速度訊息。然後使用一個 Kalman 濾波器預測更新的軌跡,而該 Kalman 濾波器是採用等速運動 模型和線性觀測模型,其觀察變量為(𝑢, 𝑣, γ, ℎ)。 每個軌跡𝐾內部紀錄從上次成功到測量𝑎𝑘以來的幀數,該計數器在 Kalman 濾波器預測期間遞增,並且在軌跡相關聯時重置為 0。將超過預先定義的最大時間𝐴𝑚𝑎𝑥的軌跡視為已經離開該場景並從軌跡集中刪除。由無法與現有軌跡相關聯的檢測創建新的軌跡假設,而這些新軌跡在前三幀中被列為暫定軌跡,若在此期間每次檢測後不能關聯到則刪除該軌跡。

  3.2 Assignment Problem:

  關聯預測 Kalman 狀態與新到達測量值的常規方法是將其看作為分配問題,可以利用Hungarian 演算法求解。通過結合目標框 Mahalanobis distance 和 特徵餘弦距離兩個度量來整合運動和外觀訊息,一方面 Mahalanobis distance 基 於運動提供了有關物體可能位置的訊息,這對短期預測特別有用,而另一方面,餘弦距離考慮外觀訊息,這對於在長期遮擋後找回身份特別有用。 

預測 Kalman 狀態和新到測量值之間的 (平方) Mahalanobis distance:

方程式6.JPG

  其中(𝑦𝑖 , 𝑆𝑖)表示第𝑖個軌跡分布到測量空間的投影,𝑑𝑗表示第𝑗個預測邊界框。Mahalanobis distance 通過計算預測與平均軌跡位置的距離超過多少標準差來考慮狀態估計的不確定性。此外可以通過從逆χ 2分布計算95%信賴區間的閾 值,排除可能性小的關聯。四維測量空間對應的 Mahalanobis 閾值為 𝑡 (1) = 9.4877,如果第𝑖條軌跡和第𝑗個預測之間的關聯是可以被採納的,則:

方程式7.JPG

,當運動不確性較低時,Mahalanobis distance 是一個合適的關聯度量。但在跟蹤

的圖像空間問題公式中,Kalman 濾波器框架僅提供目標位置的粗略估計,尤其是未考慮攝影機運動會再圖像平面中造成快速位移,使得在遮擋情況下跟蹤時 Mahalanobis distance 不精確。因此,對於每一個預測邊界框 𝑑𝑗計算一個外觀描述符號𝑟𝑗滿足||𝑟𝑗 || = 1,每個軌跡保留最後𝐿𝑘 = 100個

關聯外觀描述的庫(Gallery)

方程式8.JPG
方程式9.JPG
方程式10.JPG

,外觀空間中第𝑖個軌跡和第𝑗個預測之間的最小餘弦距離為

,引進一個二進制變量來指示根據此度量標準是否允許關聯

。演算法在一個獨立訓練數據集上找到該指標的合適閾值。在實踐中應用一個預

練的 CNN 來計算邊界框外觀描述符號,關聯問題的成本函數為兩指數的加權和:

方程式11.JPG

,其中λ控制每個度量對組合關聯成本的影響。在實驗中,發現當有

大量的攝影機運動時,設置λ = 0是一個合理的選擇,而此時關聯成本中僅使用外觀訊息,但是關聯結果仍受到兩方面的約束,僅當關聯在兩個度量的 Gating region 內,稱其為可接受的關聯:

方程式12.JPG

  3.3 Matching Cascade:

  當目標被遮擋住一段較長時間後,隨後的 Kalman 濾波預測會增加與目標 位置相關的不確定性,因此機率在狀態空間中發散。直觀的說,關聯度量應該 通過增加測量追蹤距離來解釋機率的這種發散。與直覺相反,當兩條軌跡競爭同一預測時,Mahalanobis distance 傾向於更大的不確定性,因為它有效減少了 預測的標準偏差到投影軌跡平均值的距離,所以引進了 Matching Cascade(圖六)。

六.png

圖六、Matching Cascade[6]

  3.4 Deep Appearance Descriptor:

  使用了寬殘差網路(WRNS)[8],其中有兩個卷積層、六個殘差塊,維度 128 的特徵映射在  「Dense 10」層中運算,最後 Batch 和ℓ2標準化投影特徵到單位超球面上從而與餘弦外觀度量  間容(圖七)。

七.png

圖七、網路架構[6]

 4. 可能的危險判斷:

  道路上有成千上萬種不同的可能危險發生,而在這裡歸納出以下幾種較為常 見的危險以作為判斷的依據。

  4.1 有車輛靠近正後方:

  首先先定義出接近的 y 軸距離閾值,而後將透過 PINet 取到的車道線擷取出左右車道線各自最前方及最後方的點座標,使用最小平方法各自計算出較為接近的斜率,而當一有車輛出現,就以方程式計算出是否界於車道的範圍內,若是,則再判斷是否位於先前定義的閾值內。當上述的條件皆達到,即可判斷為有車輛靠近自身正後方。

  4.2 切換車道前有車輛於欲切換車道上:

  在得知要切換的方向後,大部分的步驟與 4.1 的方法相似,只需要將取出雙邊車道線修改為只需要取出欲切換方向側的車道線,而後面步驟只需要將方程式修改為大小相反即可。

  

  4.3 有大型車輛(公車、卡車)靠近:

  使用先前定義出的 y 軸距離閾值並再定義出 x 軸距離閾值,而後再以先前使用到 YOLOv3取出偵測物件結果為大車的座標,最後透過該座標與自身的距離即可判斷出是否位於警戒的範圍內。

  4.4 有車輛為高速行駛:

  要判斷出是否為高速移動就勢必得要先判斷出現在自身是靜止或行駛狀態, 因為隨著自身的速度變化,會影響到其他車的對應速度變化。因此首先以均方誤差進行前後畫面的比對,若是計算後結果小於閾值,則為停止狀態,此時調高高速判斷閾值讓其他車不因相對高速而誤判,反之均方誤差結果大於閾值亦然。而高速判斷為前後兩幀車輛座標點的相互比較,一般等速行駛的狀態下,座標點是不會有太大變動的,因此有太大的變動超過閾值時,即為高速行駛。

  4.5 有車輛為蛇行移動:

  蛇行移動為從左到右到左或是從右到左到右,因此總共需要取出四個畫面以用來相互比對。首先進行第一個畫面與第二個畫面、第二個畫面與第三個畫面、第三個畫面與第四個畫面車輛座標點的變化計算,以前後座標點的 x 及 y 計算出 tan 值,再以 tan 值取出 arctan 並除以π後乘上180°即可得到角度,而後再將為負的角度加上180°得到必為正的角度以方便後續閾值的設定。當三個角度數值皆超過所設定的閾值,即可判定車輛為蛇行移動當中。

 5. 後續處理:

  為避免誤判事件的發生,將先前已經編號完畢的物件及不同的危險進行明確的分段處理,若是在區段內發生的頻率未達閾值,則可將其視為物判,若是已達閾值即可知道該區段皆是某編號發生的某事件。有了上述的資訊後,即可在確定的情況下,向使用者發出最精確的警報。

 6. 流程圖 

Untitled Diagram3.png

參考文獻

  [1] J. Redmonand and A. Farhadi, “YOLOv3: An Incremental Improvement”, “arXiv preprint     arXiv:1804.02767”, 2018, pp. 1-4.

  [2] J.Redmonand and A. Farhadi, “Yolo9000: Better,faster,stronger”, “Computer Vision and    Pattern Recognition (CVPR)”, 2017 IEEE Conference on, pages 6517–6525. IEEE, 2017,     pp. 1-3.

  [3] S. Ren, K. He, R. Girshick, and J. Sun, “Faster r-cnn: Towards real-time object detection    with region proposal networks”, “arXiv preprint arXiv:1506.01497”, 2015, p. 2.

  [4] T.-Y. Lin, P. Dollar, R. Girshick, K. He, B. Hariharan, and S. Belongie, “Feature pyramid     networks for object detection”, “arXiv:1612.03144”, 2017. pp. 2, 3.

  [5] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Doll´ar, and C. L. Zitnick,    “Microsoft coco: Common objects in context”, “European conference on computer        vision”, pages 740–755. Springer, 2014, p. 2.

  [6] Y. Ko, Y. Lee, S. Azam, F. Munir, M. Jeon,and W. Pedrycz, “Key Points Estimation and Point    Instance Segmentation Approach for Lane Detection”, “arXiv preprint arXiv:2002.06604”,    2020, pp. 3-6.

  [7] N. Wojke, A. Bewley, D. Paulus, “Simple Online and Realtime Tracking with a Deep                Association Metric”, “arXiv preprint arXiv:1703.07402”, 2017, pp. 2-4.

  [8] A. Bewley, G. Zongyuan, F. Ramos, and B. Upcroft, “Simple online and realtime tracking,”    inICIP, 2016, pp. 3464–3468.

bottom of page