在接近鐵人幫的尾聲,我希望除了帶大家了解Azure的各項服務之外,也能了解的如何應用在我們的工作環境,或是改善現有的生活上。
這幾天剛好在逛微軟的實例應用影片,我覺得有個應用非常有趣。今天將帶大家一起了解這個應用,也帶大家一起簡單的實作。
職場安全的即時監控Solution
:透過監視器、 影像識別、Bot Service,針對可能造成職場安全威脅的細節進行監控(例如危險化學液體流出、危險機具的授權使用、及違反職安的危險動作)除了這個案例外,微軟的影片還有介紹其他類似的應用,可以到這裡的影片查看詳細喔!
詳細影片:https://www.youtube.com/watch?v=pL-c00M2CnI
介紹完上述的案例,我們可以模仿來做個相似的基本實作囉!這邊我們會搭配官方影格分析Sample進行實作。
我們會從WebCam監控取得影格,將這些影格畫面提交給API,並回傳API呼叫所傳回的分析結果。
在這個實作坊我們要偵測距離該區域最近的員工
。
╔════
║
╠══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();
假設我們把危險液體的偵測關鍵字設成:blue water fill 或是 spill等等,若掃描到相似關鍵字即自動發送告警,就可以達到我們這個實作的目的囉!(監視器拍攝到這個情形,透過影像識別即時分析,發現這個危險狀況
)
這是一個簡單的案例,大家可以使用VideoFrameAnalyzer(針對影格做處理的Library),針對自己現有的服務進行整合,串上Face及Vision API就能做出很多有趣的應用囉!