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


如今在学习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