iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 27
1

在接近鐵人幫的尾聲,我希望除了帶大家了解Azure的各項服務之外,也能了解的如何應用在我們的工作環境,或是改善現有的生活上。

這幾天剛好在逛微軟的實例應用影片,我覺得有個應用非常有趣。今天將帶大家一起了解這個應用,也帶大家一起簡單的實作。

職場安全的即時監控Solution:透過監視器、 影像識別、Bot Service,針對可能造成職場安全威脅的細節進行監控(例如危險化學液體流出、危險機具的授權使用、及違反職安的危險動作)

Scenario:工廠員工在操作機具的時候,不慎撞倒裝有危險化學物質的桶子,造成有害液體外流

監視器拍攝到這個情形,透過影像識別即時分析,發現這個危險狀況

將資訊推送給主管,告知這個訊息

主管立刻指派鄰近員工前往處理(只要設置區域範圍),它就會自動指派鄰近的員工前往處理

系統偵測到這位員工離該區域最近

發送即時訊息指派及引導該員工前往清理(立刻向右轉前往處理即時狀況,避免緊急危害)

系統會主動向主管回報哪位員工被指派,並在清理完畢時可進行回報危機解除

除了這個案例外,微軟的影片還有介紹其他類似的應用,可以到這裡的影片查看詳細喔!
詳細影片:https://www.youtube.com/watch?v=pL-c00M2CnI

實作:即時影片分析 + Cognitive Service

介紹完上述的案例,我們可以模仿來做個相似的基本實作囉!這邊我們會搭配官方影格分析Sample進行實作。
我們會從WebCam監控取得影格,將這些影格畫面提交給API,並回傳API呼叫所傳回的分析結果。

在這個實作坊我們要偵測距離該區域最近的員工

1. 申請Vision API及Face API (網址:申請連結)

2. 下載範例程式碼:Github連結

3. 專案主要程式碼結構

╔════

╠══BasicConsoleSample(運行Console專案)
║ ║
║ ╚══Program.cs

╠══LiveCameraSample(Webcam串接的專案)
║ ║
║ ╚══MainWindow.xaml.cs

╠══VideoFrameAnalyzer(針對影格做處理的Library)

╚════

VideoFrameAnalyzer

// Create Face API Client. 
FaceServiceClient faceClient = new FaceServiceClient("<subscription key>","<api root>");

// Create grabber, with analysis type Face[]. 
FrameGrabber<Face[]> grabber = new FrameGrabber<Face[]>();

// Set up Face API call, which returns a Face[]. Simply encodes image and submits to Face API. 
grabber.AnalysisFunction = async frame => return await faceClient.DetectAsync(frame.Image.ToMemoryStream(".jpg"));

// Tell grabber to call the Face API every 3 seconds. 
grabber.TriggerAnalysisOnInterval(TimeSpan.FromMilliseconds(3000));

// Start running. 
await grabber.StartProcessingCameraAsync();

4. 執行LiveCameraSample專案進行測試

在UI上輸入我們申請好的Face API Key以及Vision API Key,可以依照您的需求調整API Call Interval(因為越密集的call,就會影響收費金額)

5. 點選Start Camera,會啟動影像識別功能,並針對我們拍攝到的物品進行Tag

6. 因為我沒辦法拿一個真實的危險物品來測試(為了作者還能安然完賽XD),我們用線上的服務進行測試

Azure Computer Vision Test

假設我們把危險液體的偵測關鍵字設成:blue water fill 或是 spill等等,若掃描到相似關鍵字即自動發送告警,就可以達到我們這個實作的目的囉!(監視器拍攝到這個情形,透過影像識別即時分析,發現這個危險狀況)

這是一個簡單的案例,大家可以使用VideoFrameAnalyzer(針對影格做處理的Library),針對自己現有的服務進行整合,串上Face及Vision API就能做出很多有趣的應用囉!

參考


上一篇
[DAY26] 使用Azure Machine Learning Studio做自然語言情感分析(3):機器學習模型(Logistic迴歸)、 模型評價及佈署
下一篇
[DAY28] 用Azure DevOps Boards管理專案進度:Agile團隊的好工具
系列文
30天手把手帶你趣學Azure☁️-初學者也能動手實作🙌🏻30

尚未有邦友留言

立即登入留言