账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
Intel OpenVINO 2023.0初体验如何快速在Google Colab运行人脸侦测
【vMaker Edge AI专栏#06】

【作者: Jack OmniXRI】2023年06月30日 星期五

浏览人次:【2268】

话说二十多年前第一次到教练场学开车,当时是手排车,常常因换档时离合器、排挡、油门控制不当就导致车子瞬间熄火,不然就是猛烈振动甚至暴冲,好在教练细心指导,才能让车子平顺前进。後来改开自排车後,突然觉得以前那些换挡技巧根本用不到,车子自己就会处理好这些换档工作,我们只要会转方向盘,会踩油门、刹车加上专心路况就能顺利把车开上路到达目的地。


如今在学习AI这台大车时也遇到类似问题,需要一个好的教练指导开发AI的每个步骤和细节,不然就得换一套方便的工具,让我们能专心在开发应用程式而不需要了解太多AI的数学和原理,而其中 Intel OpenVINO Toolkit(以下简称OpenVINO) [1] 就是一套不错的AI推论(Infernece)优化工具。


一般常见的AI应用有「电脑视觉」、「自然语言处理」、「资料分析」等,通常多半需要收集大量的资料,经过训练特定的模型(或机器学习算法、神经网路等)才能应付各式AI应用的需求。训练过程非常繁琐且须依靠极高算力才能完成模型巨量权重(叁数)的训练。不过好在当完成模型训练後,只需运行一次推论就能得到结果。


如果还觉得模型太大或推论速度不够快,此时可透过一些复杂程序来进行叁数量化(如FP32变成INT8)或模型优化(如减枝、压缩、蒸馏等),以达到又快又准的结果。而以上介绍的 OpenVINO 正是这样的工具,它已帮大家把常用AI应用的模型都预训练好了,如影像分类、物件侦测、人脸辨识、影像分割、姿态估测等,甚至现在流行的大型语言模型(LLM)及AI生成影像模型(AIGC),这样大家就可轻松上手AI应用。


以下就以最常见的 「人脸辨识」 (只作人脸位置侦测,不作身份辨识)作为起手式,使用网页版Python开发环境Google Colab(Jupyter Notebook环境)直接安装最新2023.0版的OpenVINO运行其Notebooks范例,来让大家快速体验一下AI应用带来的好处。


1.人脸辨识技术的演进

以电脑视觉进行「人脸辨识」已发展有数十年,如图1所示,从最早的统计式(特徵脸)再演进到模板式(VJ联级法)、特徵式(主动形状模型ASM)、外观式(主动外观模型AAM)。但这些方式通常只能辨识较正面且大小、位置差不多,光照均匀的人脸影像,若遇到各种拍摄角度、尺寸、光照、背景、表情、化妆、眼镜、囗罩等干扰因素时,辨识率就会急速下降,变得不够实用。更多人脸辨识相关介绍可叁考[2],这里就不多作说明。


近年来深度学习(神经网路)技术及电脑硬体算力突飞猛进,所以透过巨量的人脸资料集进行模型训练,就能得到较稳定实用的模型。不论是人脸侦测、身份辨识、表情、性别、年龄等都有单独对应或整合式的模型可供使用。所以在人脸辨识上,除了可设计专用模型外,亦可当成普通物件来进行侦测。



图1 : 人脸辨识技术发展图。[2]
图1 : 人脸辨识技术发展图。[2]

2.如何在Colab上安装OpenVINO

OpenVINO可支援多种作业系统(如Windows, Linux, macOS),多种安装模式(如执行档、APK、PyPl(pip install)、自行编译、Docker等),甚至有提供云端免安装的DevCloud版本。


在本文中,为了让大家能更轻松的试用,只要找一台能上网的电脑,开启文末提供的Colab范例(*.ipynb)点击连结就能马上安装OpenVINO并运行人脸辨识范例。


如范例中所示,安装OpenVINO非常简单,只要下列指令就完成。由於预设只会安装必要套件,所以只需40到60秒就能完成,不像以前透过APK方式安装需要4到5分钟。



#更新 pip


!python -m pip install -upgrade pip


# 开始安装 OpenVINO开发者版最新版本,本文发布时为2023.0版


!pip install openvino-dev



注:安装後会出部份红字错误讯息,如下所示


ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. google-colab 1.0.0 requires pandas~=1.5.3, but you have pandas 1.3.5 which is incompatible.


主要是因Colab要求的套件版本和OpenVINO安装的不同,本范例没有使用到这些模组,可暂时忽略这项错误,继续执行下面范例。


3.使用OpenVINO进行人脸辨识

在OpenVINO中已有许多预训练好的模型和范例程式,其中以Notebooks 最为方便,只要在电脑上安装好Python并架好一个虚拟环境,再下载 Notebooks安装Jupyter Lab就能玩到数十种范例,完整安装方式及范例内容可叁考[3]。


不过这些范例虽然也是*.ipynb但由於很多相对路径及设定不同,所以无法直接在Colab上运行。这里为了方便大家快速上手,不用在本机端安装就可测试,所以叁考了Notebooks中的Hello Object Detectio [4]进行修改,使其可在Colab上运行。


另外由於不同模型输出格式略有不同,而本范例仅适用输出格式为[image_id, label, conf, x_min, y_min, x_max, y_max],所以目前可支援模型名称如下所示。


刋 face-detection-0200


刋 face-detection-0202


刋 face-detection-adas-0001


刋 face-detection-retail-0004


刋 face-detection-retail-0005


刋 face-detection-retail-0044


接下来就开始说明完整执行步骤。首先要先下载及转换模型及测试用的图档。模型名称(-name)可替换成上述任一名称。测试用的图档来源及名称可自订,但记得後续推论时输入影像名称要记得更换。



!omz_downloader -name face-detection-adas-0001


!omz_converter -name face-detection-adas-0001


!wget -N https://raw.githubusercontent.com/OmniXRI/OpenVINO2022_on_Colab_Samples/main/data/face_ring.jpg



接下来准备好必要的函式库,载入及编译模型,载入原始图档并转成指定格式(尺寸、矩阵顺序、色彩格式),就能进行推论。完成後会得到物件框(即人脸)的外框资讯,包含人脸数量、影像编号、标签名称、置信度、物件框左上角座标[image_id, label, conf, x_min, y_min, x_max, y_max]。最後再把这些资讯画回影像上就完成。如下范例程式所示。


如果不想了解程式运作方式的朋友可直接跳过,直接享受找到人脸的结果就可以了。



图2 : 程式码4-1
图2 : 程式码4-1

图3 : 程式码4-2
图3 : 程式码4-2

图4 : 程式码4-3
图4 : 程式码4-3

图5 : 程式码4-4
图5 : 程式码4-4

人脸侦测结果如图 2所示,可看出即使是人脸旋转很大角度、有不同表情甚至戴墨镜也能顺利被检出,相较传统的 OpenCV Haar 联级法(Cascase)只能接受小幅度的旋转有很大改善。如果想了解OpenCV作法的朋友可以叁考[5]。


本文完整范例如下连结,直接点击就能启动。进入 Colab 後,点击选单<执行阶段>中的<全部执行>就能执行范例。


https://colab.research.google.com/github/OmniXRI/OpenVINO2022_on_Colab_Samples/blob/main/OpenVINO_Face_Detection_on_Colab_2.ipynb


注:如果执行完出现结果影像一直闪烁情况,将游标移至影像上点击一下即解决。另外如果想要备份这份范例,方便自己进行修改测试,要先登入自己的Google帐号,再点击选单<档案>中的<在云端硬碟中储存复本>,即完成备份。


小结

以上人脸辨识(物件侦测)只是AI应用的一个简单起手式,透过本文大家可了解到如何透过简单的Python程式加上OpenVINO的助力,就可轻松完成AI应用程式的开发。如果还想要测试更多的Colab + OpenVINO范例,可叁考延伸阅读[A]。相信有了这些基础,後续学习上会更加顺手。


(本文由VMAKER授权转载;连结原文网址


叁考文献

[1] Intel, “OpenVINO Document”


https://docs.openvino.ai/2023.0/home.html


[2] 许哲豪, “【课程简报】Edge AI社聚#1 身份辨识防疫技术交流 ━ Edge AI人脸辨识技术剖析 “


https://omnixri.blogspot.com/2021/02/edge-ai1-edge-ai.html


[3] Intel, “Learn OpenVINO - Interactive Tutorials (Python) - OpenVINO notebooks documentation”


https://docs.openvino.ai/2023.0/notebooks/notebooks.html


[4] Intel, “OpenVINO Notebooks - Hello Object Detection”


https://docs.openvino.ai/2022.3/notebooks/004-hello-detection-with-output.html


[5] 许哲豪, “OpenCV Haar 联级法(Cascase)人脸辨识Colab范例”


https://colab.research.google.com/github/OmniXRI/NTUST_EdgeAI_2022/blob/main/Ch7_Implementations/Ch7-3_Face_Recognition/Ch7-3-1_OpenCV_Face_Detection/OpenCV_Haar_Face_Dtection.ipynb


延伸阅读

[A]许哲豪, “Intel OpenVINO 2022.x运行於Google Colab之范例分享”


https://omnixri.blogspot.com/2023/05/intel-openvino-2022xgoogle-colab.html


相关文章
MCX A:通用MCU和FRDM开发平台
用ESP32实现可携式户外导航装置与室内空气监测仪
学童定位的平价机器人教材Arduino Alvik
【Maker玩AI】用Roboflow + Ultralytics HUB训练与管理 YOLO模型
Arduino推出支援Elastic的函式库
comments powered by Disqus
相关讨论
  相关新闻
» Seagate发布再生能源使用及实践永续循环成效
» 宜鼎独创MIPI over Type-C解决方案突破技术局限,改写嵌入式相机模组市场样貌
» 英特尔晶圆代工完成商用高数值孔径极紫外光微影设备组装
» 英业达以AI科技实践永续 携手台大保护云雾林生物多样性
» 震旦研发ESG绿色报表协助企业绿色减碳


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK84R85N900STACUKE
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw