# 2022 Intel DevCup競賽
## 題目說明
~~題目以**行車安全評分**為主~~
在本次競賽中,我們將從量化不同駕駛行車安全性的角度著手,透過提供駕駛當前周邊車輛駕駛安全性評分的方式,讓駕駛能夠注意且提早避開有異常行為的車輛,避免受到波及最終導致車禍。
### 背景
交通事故在台灣層出不窮,而當中很常被提起的成因便是我們的考取駕照流程過於制式化,並且我們國人在行車安全的意識上並不足夠,導致在無形中出現了許多危險駕駛行為。
這些所謂的「危險駕駛行為」,在過去中其實無法被及時取締,駕駛也很難及時辨認出來並且避開該車輛。造成如此情況的主要原因是因為許多危險駕駛行為並無法被很清楚的定義,因此並沒有很清楚的判斷標準。比起用「單一的標準」去衡量這輛車的駕駛行為,如車速或者變換車道的次數去判斷,我們更傾向應該以這輛車是否有「穩定的跟隨車潮而移動」及「是否有異常駕駛」的方式去衡量這台車的危險程度。
因此,我們認為我們可以利用當前AI技術當中的「異常偵測」技術去進行偵測,來判定具有「危險駕駛行為」的車輛,以作為駕駛可以參考的數據之一,讓駕駛自行選擇是否該和該車保持更大的距離,以減少車禍發生的機率。
~~目前已經有很多針對異常駕駛的AI判定,包含違規變換車道、違規闖紅燈、異常掉落物、蛇行駕駛等,這類型的**明顯**異常駕駛的辨識技術已經越來越成熟。~~
#### 小重點(亮點)
我們利用各種收集來的數據,讓我們不只用來偵測開車行為,而是更進一步理解開車者的「決策」。
透過我們的演算法所分析的這個開車者的決策「決策」,不只可以分析異常駕駛與危險駕駛,而可以分析出潛在的風險。
(量化危險的定義)
### 欲解決問題
在日常駕駛中,若有明顯的異常行為通常代表事故已經發生,有時傷害已經造成。我們希望透過資料分析與演算法找出**可能**發生事故的車輛,或是行為可能有風險的車輛,進而能夠遠離潛在風險。
### 方法概述
透過大量的資料與非監督式學習,找出離群資料,找出非常規的駕駛。
> 透過大量的日常行車環境資訊,定義其他車輛的行為"正常"與"不正常",進而找出行車途中四周潛在的風險

-

-

## 團隊與成員介紹

可以照這個格式打
| 姓名 | 團隊角色 | 單位 | 職稱 | 手機號碼 | Email |
| --- | ------- | --- |----- | ------ | ------ |
| 徐偉育 | 隊長 | 國立政治大學 |學生|0968700086|jason30319@gmail.com|
| 林翊丞 | 副隊長 | 國立台灣師範大學 |學生|0978540358|moumoux001@gmail.com|
| 黃品叡 | 隊員 | 國立台灣師範大學 |學生|0926715019|barry7577@gmail.com|
| 李品賢 | 隊員 | 國立臺灣師範大學| 學生 | 0973399373 | paddy41601@gmail.com |
| 羅文頡 | 隊員 | 國立臺灣大學| 學生 | 0978428236 | jack910817@gmail.com |
| 卓建緯 | 隊員 | 國立陽明交通大學 | 學生 | 0975398033 | h611122@nehs.hc.edu.tw |
## 欲解決問題與構想動機
**請提供欲解決問題與構想動機之說明。**
台灣地狹人稠,道路上的交通狀況層出不窮,在累積了一定駕駛經驗後,我們認為駕駛人必備的能力就是可以根據其他車輛的走向來預判車子未來可能的動向,去防範違規和危險用路人的行為對我們造成的影響,讓行車更加安全。即便如此,我們認為不論多麼資深的駕駛人仍是會有誤判或是沒注意到潛在危險的發生,因此我們想透過AI來協助駕駛更好的掌握路況,達成在事故發生前能夠優先提醒駕駛周遭各台車輛的風險大小來幫助駕駛提早作出相對應的反應避開風險。
## 市場價值
**評估市場大小 eg, TAM (Total addressable market,整體潛在市場) SAM(Service addressable market,服務可觸及市場) SOM (Serviceable Obtainable Market,可獲得服務市場) -產品/服務 如何觸及該市場 -請提供解決⽅案對使⽤者或從中受益的⼈的影響訴求,如⽣活、社會、 教育、 產業、環境等層⾯。**
客群:
新手駕駛 一般用路人 職業駕駛
價值:
1. 對於新手駕駛,在尚未累積駕駛經驗時,此軟體可以輔助他們更好的理解路況,當事故發生風險上升時,他們可以更早獲得資訊並做出相應判斷來避開危險。對於開車技術不好的駕駛,此軟體可以做為他們收集資訊的工具,不用同時擔心複雜的交通以及自己的駕駛技術,讓駕駛人可以更安心開車。
2. 對職業駕駛來說,此軟體除了可以幫助駕駛保護自身和乘客或是貨物的安全,若是駕駛在行車途中被多輛車記錄到給其他駕駛帶來相當程度的風險時,主管機關也能依此來找出危險的職業駕駛人,並對他們做出懲處。
3. 透過此軟體,有望大幅降低交通事故發生率,讓交通警察不需疲於奔命,用路人也可以有一個更安全穩定、更順暢的用路環境。
4. 透過駕駛的行為分析,就可以理解路口駕駛車流狀況,進而分析路口設計狀況,例如:改善車與車的交叉狀況...等
5. 自駕車...
## 解決⽅案設計構想
**請提供解決⽅案完整敘述,需包含如何使⽤OpenVINO™ Toolkit解決問題、解決⽅案架構圖等,但不限於上述。(註:若會使⽤DevCloud可加⼊構想說明中)**
#### 辨識項目(放入演算法的參數)
* 車輛與行人的距離
* 車輛自身的 x,v,a
* 車輛與車輛 的 x,v,a
* 車輛與車道線的左右偏移
* 環境的 紅綠燈、斑馬線
* 車輛的方向燈
* 車輛的煞車燈
#### 辨識模型
- 使用Model Zoo中,[車輛/行人辨識](https://docs.openvino.ai/latest/omz_models_model_person_vehicle_bike_detection_crossroad_yolov3_1020.html)與[多物件追蹤](https://docs.openvino.ai/latest/omz_demos_multi_camera_multi_target_tracking_demo_python.html),進行車道上車輛與行人的軌跡追蹤
- 利用yolo訓練簡易方向燈辨識
- 使用PerspectiveTransformation推估車輛之間的距離
- 讀取車道線,判斷車輛移動傾向
#### 車速
- 使用GPS取得自身速度
> 我們不是計畫用固定攝影機?
#### 分析模型
- 綜合收集各項數據後,使用Openvino Toolkit中[Anomaly Detection Library](https://github.com/openvinotoolkit/anomalib)
- 檢測四周車輛與行人的軌跡與行為是否異常,將事故發生前的異常找出來,避免事故的發生
#### 異常檢測模型概述
- 在一群東西中,找出和大家都不一樣的東西。如何定義"一樣"與"不一樣"
- 透過大量"正常"與少量"不正常",分析出主要正常的幾個群體,並且找出離群點
- 優點:
- 可以使用少量的標註資料與大量的未標注資料進行訓練。可以減少訓練成本
- 對於未訓練過的異常也能夠找出來。未學習過的危險行為也能夠找出
- 對於連續的資料,能夠在異常完全發生之前,提前察覺。能夠提前找出意外發生的跡象
```mermaid
graph TD;
A[/攝影機影像/] --> B[車道線辨識]
B --> C[/車輛偏移/]
A --> D[車輛辨識]
D --> C
D --> E[/車輛位置/]
D --> F[車燈辨識]
E --> G[/速度/加速度/]
F --> H[/方向燈<br>煞車燈/]
A --> I[環境辨識]
A --> J[行人辨識]
I --> K[/掉落物/]
I --> L[/紅綠燈/]
J --> M[/行人位置/]
C --> N[異常檢測模型];
style N fill:#f96;
H --> N
G --> N
K --> N
L --> N
M --> N
N --> O[環境危險因子<br>Ex: 行人闖入]
N --> P[四周危險車輛<br>Ex: 靠近紅燈未煞車]
```
## 實作可⾏性評估
**請提供若進入決選,所提解決⽅案的開發作法能在時程內完成的專案管理 可行性評估。**
- 現有模型(Model Zoo)
- [車輛/行人辨識](https://docs.openvino.ai/latest/omz_models_model_person_vehicle_bike_detection_crossroad_yolov3_1020.html)
- [多物件追蹤](https://docs.openvino.ai/latest/omz_demos_multi_camera_multi_target_tracking_demo_python.html)
- 需要訓練的模型
- 方向燈辨識,使用網路上的[Dataset](https://cerv.aut.ac.nz/vehicle-lights-dataset/)進行yolo訓練
- [異常檢測模型](https://github.com/openvinotoolkit/anomalib)
- 資料收集來源
- CCTV影像資料收集
- 行車紀錄器
- Demo效果預覽

### 實作影片
找到會去做危險行為的車輛,讓我們的系統在前幾秒能夠預測。
例如在違停前,就知道他有要違停。
```mermaid
gantt
title 時程規劃
dateFormat MM-DD
axisFormat %m-%d
section 競賽時長
創作階段 : crit, done, plan, 10-25, 12-11
section 模型訓練
方向燈辨識 : active, d1, 10-25, 10d
車道分析 : active, d2, 10-25, 5d
section 部屬與銜接
整合辨識與追蹤 : active, e1, 10-25, 8d
整合方向燈與車道 : active, e2, after d1, 8d
部屬模型 : active, e3, after e2, 5d
section 檢測模型
收集資料 : active, f1, 10-25, 23d
訓練模型 : active, f2, after f1, 5d
section demo製作
製作用戶介面 : active, g1, after f2, 7d
實際運行 : active, g2, after g1, 5d
PPT與成果展現: active, g3, after g2, 7d
```
## 參考資料
### [企劃書規範](https://docs.google.com/document/d/1gI7Nm0oiuAWGpPpf1gTNCYB8FCVztoqyeh0k3-mq42I/edit?usp=sharing)
### [0903會議記錄](https://bubble-kale-7db.notion.site/intel-contest-2409a2be44d9444dbc478ba1e26687eb)
## 實作方法
1. 收集固定攝影機資料/(問題:攝影機數據不好收集
2. 找出我們要的參數,包含路線、時速、環境狀況...等
3. 選)映射到一個平面
4. 將資料放入架構中,找出離群點。
5. 給予每台車一個安全評分。
## 考慮點
離群點,是否就是危險車輛。
## 下次討論(9/23)
文案初稿
實作技術內容
## 下次討論/完成(9/30)
團隊與成員介紹
投影片