Successfully reported this slideshow.
Your SlideShare is downloading. ×

AI鏡頭-人臉自動置中_Vision AI-Face Tracking and center aligning

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 22 Ad

AI鏡頭-人臉自動置中_Vision AI-Face Tracking and center aligning

由於Youtuber 、 TikTok 等直播平台使網紅這個產業竄起,因此為了滿足網紅的需要,使直播的攝影鏡頭可以自動追隨人物,並且永遠可以使人物置於鏡頭的中央。

設計一攝影裝置, 利用人工智慧自動取出畫面中人臉位置,並利用2顆伺服馬達驅動使鏡頭可以自動跟隨人臉移動。
專題成果展 http://bit.ly/37fgDiK
AIoT就業班 http://bit.ly/36eBRvM

由於Youtuber 、 TikTok 等直播平台使網紅這個產業竄起,因此為了滿足網紅的需要,使直播的攝影鏡頭可以自動追隨人物,並且永遠可以使人物置於鏡頭的中央。

設計一攝影裝置, 利用人工智慧自動取出畫面中人臉位置,並利用2顆伺服馬達驅動使鏡頭可以自動跟隨人臉移動。
專題成果展 http://bit.ly/37fgDiK
AIoT就業班 http://bit.ly/36eBRvM

Advertisement
Advertisement

More Related Content

More from IttrainingIttraining (20)

Advertisement

Recently uploaded (20)

AI鏡頭-人臉自動置中_Vision AI-Face Tracking and center aligning

  1. 1. AI鏡頭 - 人臉自動置中 李O旭 蘇O慶 林O偉
  2. 2. 摘要 • 由於Youtuber 、 TikTok 等直播平台使網紅這個產 業竄起,因此為了滿足網紅的需要,使直播的攝 影鏡頭可以自動追隨人物,並且永遠可以使人物 置於鏡頭的中央。 • 設計一攝影裝置, 利用人工智慧自動取出畫面中 人臉位置,並利用2顆伺服馬達驅動使鏡頭可以自 動跟隨人臉移動。
  3. 3. Tracking & center aligning webcam 移動置中 框出人臉 X,Y 軸修正角度 系統架構
  4. 4. 硬體架構 USB Webcam TCP socket PWM
  5. 5. To-Do List 1. 以Python Tkinter作為UI 展示專案成果 2. 利用face_recognition的 face_location取得人臉 bounding box, 計算bounding box在畫面中心的 座標 3. 利用AI影像識別出人臉身份並於畫面中標識出人 名 4. 轉動雲台的2顆伺服馬達,使bounding box移動 到畫面的中心位置
  6. 6. 軟體流程 TK inder TCP show_frame mp_embeddings TCP PWM Thread Multi-processThread Motor degree Image Face_location Face_encoding Motor degree 人臉偵測 馬達控制(pi) 主程式(PC Server) 主畫面網路傳輸 網路傳輸
  7. 7. 1. Python Tkinter
  8. 8. Python Tkinter 工作畫面 視訊輸出 工作畫面 物件中心點 控制相關資訊 手 動 控 制 辨識開關 鎖定單一人物 新增辨識人臉
  9. 9. Python Tkinter功能 畫面: 視訊畫面: 順暢視訊畫面 工作畫面: 顯示人臉辨識框與座標與起用模式 按鈕: 上下左右: 手動調整馬達移動 AUTO: 馬達手動/自動功能切換 Recognition: 人臉辨識功能切換 New: 新增/刪除辨識人臉 Focus: 特定人臉追蹤功能切換 下拉式選單: 選擇需鎖定之人像
  10. 10. 2.臉部偵測
  11. 11. • Module: face_recognition ➜ Python的開源人臉識別庫,號稱識別率高 達百分之99 !! • face_location ➜ 取出圖像中所有人臉的位置, 並以 [ top, right,bottom,left ] 形式呈現。 • 取得中心點 =( (right+ left)/2,(top, bottom)/2) face_location取得人臉並找出中心座標 top left right bottom 240,240 0,0
  12. 12. 多人時合併bounding box,並找出中心座標 • 合併: 取出全部人像 tenhsu =[top, right, bottom, left] Kate =[top, right, bottom, left] 最大邊框=[top, right, bottom, left] min max max min 0,0 640,480 取得合併框中心點 =( (right+ left)/2,(top, bottom)/2)
  13. 13. 3.人臉識別
  14. 14. • face_encodings ➜ 透過AI將人臉特徵轉化為128 個維度臉部編碼的 List 物 件。 • Face_distance = Euclidean distance 鎖定單一人物(人臉識別)
  15. 15. 4.鏡頭置中 ( PWM伺服馬達控制 )
  16. 16. PC ( X,Y 座標 馬達轉動角度) 樹莓派 Camera 伺服馬達 x2 USB TCP Socket 傳送馬達角度與速度: “30, 20 5” PWMx2 (格式”x_degree y_degree speed”) 架構 1.距離計算。 2.馬達角度與速 度判定。 3.指令傳送。 4.馬達位置更新。 1. 指令接收。 2.告知馬達位置。 3.角度與速度的轉換。 4.伺服馬達控制。
  17. 17. PC端 •執行步驟: Socket Server 端建立 人臉識別 數據處理: Pixel ➜ Degree 並判斷轉動速度 計算人臉中心點 與畫面中心點之 距離 (pixel) Camera開啟 框出人臉並取得中心點 ( 多張人臉則取平均 ) 傳送至樹莓派 等待樹莓派傳送 馬達位置並更新
  18. 18. Non moving region 不做動區 𝑛𝑜𝑛_𝑚𝑜𝑣𝑖𝑛𝑔_𝑟𝑒𝑔𝑖𝑜𝑛 < 𝑥 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 2 + 𝑦 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 2 𝑃𝐷𝑟𝑎𝑡𝑖𝑜 •功能: 抑制馬達抖動
  19. 19. Pixel ➜ Degree: 𝐷𝑒𝑔𝑟𝑒𝑒 𝑥 = 𝐹𝑎𝑐𝑒_𝑥_𝑙𝑜𝑐𝑎𝑡𝑖𝑜𝑛 − 𝐶𝑒𝑛𝑡𝑒𝑟_𝑥_𝑙𝑜𝑐𝑎𝑡𝑖𝑜𝑛 𝑃𝐷𝑟𝑎𝑡𝑖𝑜 𝐷𝑒𝑔𝑟𝑒𝑒 𝑦 = 𝐹𝑎𝑐𝑒_𝑦_𝑙𝑜𝑐𝑎𝑡𝑖𝑜𝑛 − 𝐶𝑒𝑛𝑡𝑒𝑟_𝑦_𝑙𝑜𝑐𝑎𝑡𝑖𝑜𝑛 𝑃𝐷𝑟𝑎𝑡𝑖𝑜 數據處理 𝑃𝐷𝑟𝑎𝑡𝑖𝑜: Pixel 與 Degree 之間的比值,研究後設定為20。以1m工 作距離,透過馬達轉動1度後,觀察pixel之變化而得。
  20. 20. •執行步驟: 樹莓派端 Socket Client 端連接 等待Server傳 送指令…. 建立子執行緒,並更 新judge值 馬達移至 初始位置 已傳送 數據處理 馬達做動 查看judge值 是否遭更動 是 否 結束該執行緒 主執行緒繼續監聽 子執行緒控制馬達轉動 數據處理: Degree ➜ duty_cycle speed ➜ 週期 judge值為程式內部判定值 傳送馬達現在位置 至Server端
  21. 21. Degree ➜ duty_cycle: 𝑑𝑢𝑡y_cycle = 610 × 𝑝𝑤𝑚_𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦 + 1710 × 𝑝𝑤𝑚_𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦 × 𝐷𝑒𝑔𝑟𝑒𝑒 180 Speed ➜ 週期(deg/s): 𝑇 = 1.28 2 𝑠𝑝𝑒𝑒𝑑 數據處理
  22. 22. THANKS FOR WATCHING 負責人員: • 李O旭 臉部偵測以及影像處理 • 蘇O慶 TK inder • 林O偉 raspberry /馬達/socket相關控制

×