后端 [DAY27] Azure实作坊:职场安全即时监控及简单实作(Cognitive Service & C#)

devops · August 12, 2021 · 23 hits

在接近铁人帮的尾声,我希望除了带大家了解 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 就能做出很多有趣的应用啰!

参考


No Reply at the moment.
You need to Sign in before reply, if you don't have an account, please Sign up first.