• broken image

    人工智慧自動駕駛應用

    指導老師:羅主斌
    組長:涂佑佳
    組員:陳俞靜、李怡蓁、林沁瑀、郭律彤、康珮璟、 李方伶

     

  • 背景介紹

    JetBot是基於NVIDIA Jetson Nano的一款開源機器人,JetBot使NVIDIA Jetson Nano做為運算核心。使用無線搖桿控制器或網頁控制JetBot小車,透過攝影機拍照收集資料,在Jetson Nano裡面訓練、實現避免碰撞、物件跟隨、道路跟隨等效果。

    我們看到了有一則台灣車輛中心的訊息,從這訊息可以知道我們做的三大主題(避障、行人偵測追蹤、姿勢辨識 )都是與自動駕駛功能密切相連。在自動駕駛領域中,行人是智慧感測系統與道路環境的主要參與者,亦是交通事故中的主要受害者之一。而車輛中心 (ARTC)已透過行人姿態辨識技術,克服不同用路人的外貌特徵及不同場景的複雜影像,在用路人與車用攝影機之間的動態變化下達到即時且穩定的辨識能力,亦為自駕車與用路人之間,連結為可互動之功能,因此引發我們的動機想去達成。

    broken image
    為了達到即時與穩健性的行人姿態的辨識推論, ARTC建立深度學習模型應用的高度整合系統,在高效的影像數據流處理進行下,達到用路人身分辨識以及其姿態動作推論。整體系統演算法設計流程如圖所示,行人類別偵測模組以一階段物件偵測技術為基礎進行客製化影像數據學習。針對行人類別影像進行遷移學習模式的行人特徵擷取,以及人體姿態估計技術之骨架關節點評估,進行多重影像數據強化與融合。針對時序性之動作預測將以注意力機制與循環神經網絡為基礎,進行連續融合影像數據流之學習模式,有效提升行人連續姿態預測能力。
    broken image
    具體功能實現如圖 所示,首先由影像感測器偵測道路資訊,透過行人辨識功能計算其類別與位置,並整合深度學習模型的功能性分析,如行人類別判定, RGB影像的特徵強化與骨架姿態的連動估計,以深度學習模型進行特徵融合達到連續行人動作推論,在容許的反應時間與有效的偵測範圍下,為自動駕駛帶來預防性的行人姿態辨識資訊,亦建置用路人姿態推論之事件任務,包含乘客招車、追車辨識與交通警察指揮手勢判斷,其準確率可達92%以上。
  • Tensor RT(實時加速)

    broken image

    我們的訓練框架是用Pytorch

    在 NVIDIA Jetson Nano 要進行推論時先把已經訓練好的模型轉成 TensorRT 的格式,這是設計來補充訓練架構在 inference上的不足,特別專注在如何讓已經訓練好的模型更快且有效率的在一個GPU上產出結果。

    broken image

    利用TensorRT做了左方幾件事, 來提升模型的運行速度
     

  • 器材與方法

    在本專題中我們使用Nvidia公司的智慧小車JetBot進行AI自動駕駛的相關研究。

    我們所進行的主題有:避障、行人偵測追蹤、姿勢辨識,這些都與行人與車輛的互動有關。

    broken image

    避障

    物件偵測 + TensorRT + 避障演算法
    1. 先把已訓練好的模型轉換成TensorRT的格式
    2. 啟動智慧小車
    3. 利用照相機拍攝的影像觀察是否為障礙物
    4. 如偵測到障礙物時,就會自動避開
    broken image

    行人偵測追蹤

    Tensor RT+物件偵測模型+追蹤演算法+避障模型
    1. 利用深度學習物件偵測演算法偵測行人
    2. 並利用TensorRT進行加速以達實時偵測的目標
    3. 同時具備避障功能
    4. 偵測時,行人標示為綠框,其餘物件標示為藍框
    5. 透過行人在畫面中位置,改變車輪速度進行轉向
    broken image

    姿勢辨識

    Human Pose Estimation + SVM
    1. 先收集各種手勢的照片(五種姿勢各兩百張)
    2. 將這些圖片帶入Human pose estimation模型中
    3. 得到骨骼及身體的關鍵點
    4. 計算他們的相對位置及距離
    5. 將這些特徵代入到支持向量機SVM分類模型中訓練/預測
    6. 藉著分類的結果來控制小車的運作
  • 討論

    1. 我們探討自動駕駛所使用的感測器只有照相機,只有平面的訊息,沒有深度的訊息,因此得到的結果有局限性,但是自動駕駛龍頭特斯拉以及傳統汽車龍頭豐田都以純照相的資料來開發自動駕駛技術,因為他們有龐大的資料可以訓練出以相片的二維資料來得到第三維的深度訊息。
    2. 本專題使用的姿勢辨識演算法只適用於靜態的動作,未來將藉由深度學習時間序列相關模型對此進行探討,開發出能偵測連續動作的模型。

    3. 本專題所使用的行人​​偵測追蹤演算法可以偵測多位行人但只能追蹤中央的那位行人,並且無法識別身份,所以目前也無法計數追蹤 (tracking),目前正改進中。

  • 文獻出處

    台灣車輛中心:

    https://www.artc.org.tw/chinese/03_service/03_02detail.aspx?pid=13561

    TensorRT:

    https://d246810g2000.medium.com/nvidia-jetson-nano-for-jetpack-4-4-04-使用-tensorrt-將模型最佳化-98ca17749930
    避障:
    https://d246810g2000.medium.com/nvidia-jetson-nano-for-jetpack-4-4-04-使用-tensorrt-將模型最佳化-98ca17749930
    https://d246810g2000.medium.com/nvidia-jetson-nano-for-jetpack-4-4-03-轉換各種模型框架到-onnx-模型-17adcece9c34
    人體姿態估計(Human Pose Estimation)、姿勢辨識:
    https://is.gd/yAYSxI & https://is.gd/F59G8y
    https://drive.google.com/drive/folders/1tz55oYtGta9ANlhtVmUANLE0XsHxbaW?usp=sharing
    https://www.itread01.com/content/1549049591.html
    https://github.com/NVIDIA-AI-IOT/trt_pose_hand)

    http://3smarket-info.blogspot.com/2019/08/ai_28.html

    http://zhuanlan.zhihu.com/p/90835266

    https://zhuanlan.zhihu.com/p/395588459

    行人偵測追蹤:

    https://www.artc.org.tw/upfiles/ADUpload/knowledge/tw_knowledge_556487716.pdf

    https://zhuanlan.zhihu.com/p/90835266
    https://github.com/theAIGuysCode/yolov3_deepsort