基于MEC 开源平台的开放API实现人脸识别和位置显示
您在体验过程中有任何疑问,都可以在此留言反馈>>
</br>
(注册后搜索openmep频道)
1. 介绍
什么是MEC开源平台 ?
MEC开源平台是一套5G MEC边缘计算开源平台,这是电信行业首个开源MEP平台。它主要包括4个关键部件,其中第一部分是MEP平台,MEP平台可以给开发者提供5G独有的网络能力调用。第二部分是我们面向开发者提供的Portal和一系列编程支撑工具,我们提供各种能力的Plugin,可以帮助开发者生成MEP平台API调用样例代码,支持对应用开发者的应用进行打包测试和上传,应用开发者可以通过开发者Portal快速掌握如何基于开源MEP平台进行应用开发。第三部分是APP Store,开源APP Store跟开发者界面是打通的,应用开发者开发的APP应用可以上传到App Store,App Store 会提供一系列的测试工具和框架,通过App Store测试的应用未来可以直接集成到华为商用MEC平台上。最后还提供一个简化的MEC管理面,通过这个管理面可以对APP进行基本的生命周期管理,包括APP 的分发、激活、删除等操作,同时支持对边缘节点的监控和运维。
本次codelab用户将会体验到如何使用开源的边缘计算平台提供的开放API能力,实现人脸识别和位置显示。
您将建立什么?
在本次Codelab中,您将体验如何在MEC开源平台上调用位置服务和人脸识别API,并基于此API进行二次开发。用户最终可以在本地实现视频图像显示位置信息和人脸识别。
您将学会到什么?
-
<span id="_w7akf9d42zqu" class="anchor"></span>如何使用MEC开源平台。
-
如何通过MEC开源平台调用人脸识别和位置服务API。
-
如何通过Plugin插件进行人脸识别和位置服务的二次开发。
您需要什么?
开发环境及技能要求:
-
python开发环境Pycharm。
-
便携机一台。
-
网络摄像头或者便携机自带摄像头。
-
边缘云服务。
运行终端要求:
<span id="_4tcmcfgetbxm" class="anchor"></span>
<span id="_o40w312plm2e" class="anchor"><span id="_oca6enrjsqee" class="anchor"><span id="OLE_LINK8" class="anchor"><span id="OLE_LINK9" class="anchor"></span></span></span></span>
2. 创建工程项目
- <span id="_m5sscdhjc595" class="anchor"><span id="_17y63mruoq5q" class="anchor"><span id="OLE_LINK14" class="anchor"></span></span></span>登录MEC开发者平台,http://159.138.146.235:8002,注册用户并登录。
![]()
- 进入工作空间,点击添加新的项目,此次演示是基于次平台的位置服务和人脸识别进行二次开发,选择左边新建项目,根据指导,依次填入基本信息,能力选择face_recognition和location service。项目链接不用选,直接确认。
![]()
项目创建完成后我们可以在工作空间中查看到我们的项目。
3. 配置开发环境
- 样例代码下载
方法一:从HDC开发者平台上将样例代码下载到本地:点击开始体验->新建->仓库名->克隆下载
![]()
方法二:从wiki上开源项目Edgegallery上下载代码:
https://edgegallery.atlassian.net/wiki/spaces/EG/pages/10059787
下载完成后解压,用Pcharm打开样例代码。
- 下载并配置Plugin插件。
打开开发者平台,在开发工具里选择Pycharm插件进行下载。打开Pycharm、 Setting,点击Plugin,选择install Plugin from Disk,从本地导入刚才下载的压缩文件,导入之后重启Pycharm即可安装成功。
![]()
下载插件
![]()
安装插件
在Pycharm工程中,打开tool工具箱,找到MainMenu点击。选择APP的基础能力(选择GPU)后点击Search。选择face_Recognition和location_Service,填写App基本信息后点击OK。
![]()
![]()
- 在项目根目录中会生成appSample和codelab-demo2_app文件夹。
其中appSample就包含了Face_Recognize和Location_Service的所有api调用样例代码。通过修改host、图片路径等后运行该程序,可以返回api的调用结果。codelab-demo2_app为package文件,用于向appstore发布。如果对此包有了解,可以通过修改镜像信息并进行打包。不了解也不用担心,后续开发者平台会根据你的镜像信息,自动打包。
![]()
- 确保代码运行所需要的第三方库已安装完成。必选第三方库:python-opencv、Flask、requests。
4. 信息录入
信息录入需要用到的API接口:
- 通过笔记本自带摄像头进行图像录入。
打开face_recognition_demo样例代码中collection.py文件,修改红框内的信息。name为自己的名字,仅限字母,Host为上传图片的IP和端口(目前IP为159.138.5.41,端口为32115、32116可用)。
![]()
- 右键运行会弹出视频,正对摄像头点击q会保存图片并退出,人脸图片要求:正脸照片,脸部无遮挡,返回如下结果即上传成功。
![]()
5. 调用API进行二次开发
本步骤需要的人脸识别服务和位置服务API接口:
本体验相关的样例代码已经开发完成,本步骤只需要修改相关url的即可。
- 调用MEP的restful API服务,实现在人脸识别中实时显示位置信息。
打开postion.py文件,修改recognition_url和location_url,(recognition_url为上一步的IP和端口,location_url的端口为32110)。运行时调用本地摄像头,视频数据流url=0。
![]()
6. 运行应用,验证结果
右键运行该程序,运行成功后显示如下结果:
![]()
打开游览器输入:http://127.0.0.1:9997/v1/face-recognition/video?url=0 测试是否成功,url的值为摄像头地址,本地摄像头url=0,如果是外置网络摄像头,填写相应的摄像头地址即可。如果弹出摄像头能识别人脸,并显示用户的经纬度,说明restful API开发完成。
<span id="_v93gn9di0owm" class="anchor"><span id="OLE_LINK6" class="anchor"></span></span>
若本地没有摄像头,只可以体验简单的应用开发。输入http://127.0.0.1:9997 ,返回Hello MEC Developer,说明restful API开发完成。
7. 制作镜像
目前平台提供镜像的自动化构建,只需要编写Dockerfile文件,指定代码仓库、镜像名等参数即可。其中API接口为:
curl --request POST 'http://119.8.34.36:8080/job/python-mec-app-docker-image-build-update/buildWithParameters' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'GIT_URL=git@139.9.0.160:MEC-APP/codelab-dome.git ' \
--data-urlencode 'IMAGE_NAME=codelab_demo2
--data-urlencode 'IMAGE_TAG=test' \
--data-urlencode 'DOCKERFILE_DIR=location_service_demo/app
参数说明:
GIT_URL:Mandatory,代码仓库地址,代码仓库需要配置为无认证下载
GIT_BRANCH: Optional,代码仓库分支名,缺省值为‘master’
IMAGE_NAME:Mandatory,构建镜像名
IMAGE_TAG: Optional,镜像tag,缺省值为‘latest’
DOCKERFIKE_DIR: Optional, Dockerfile的存放目录路径,缺省值为代码仓库的根目录。
由于制作镜像过程时间比较长,并且云资源有限。此次体验已经提前写好Dockerfile,并已经制作好镜像,后续直接使用该镜像即可。镜像名以及版本以及端口号如下:
codelab_demo2:v1.0 9997
8. 与MEC开源平台集成、测试
- 打开开发者平台,在工作空间、我的项目中找到步骤1创建的项目,点击详情,构建&测试。
> ![]()
- 填写镜像信息并上传API文档。
镜像信息为codelab_demo2:v1.0 内部端口号为9997,外部端口号为30511(30511-30515)点击添加。API文档在样例代码中已经写好,文件名为codelab_demo2.yaml。确认上传即可。
![]()
- 配置依赖参数
填入应用的服务名,用于平台的注册发现,端口号与外部端口号一致,链接与服务名一致。
![]()
- 选择服务器进行部署测试
![]()
通过访问http://159.138.63.8:30511,返回Hello MEC Developer 说明部署成功。点击完成测试,上传至appstore即可发布自己的应用。
9. 恭喜你
祝贺您,您已经成功地完成了基于MEC开源平台开发API应用,并学到了:
10. 参与互动赢好礼
完成Codelab发布心得和截图,可赢取奖品。</br>
![闯关有礼]()
基于MEC 开源平台的开放API实现人脸识别和位置显示
您在体验过程中有任何疑问,都可以在此留言反馈>>
</br>
(注册后搜索openmep频道)
1. 介绍
什么是MEC开源平台 ?
MEC开源平台是一套5G MEC边缘计算开源平台,这是电信行业首个开源MEP平台。它主要包括4个关键部件,其中第一部分是MEP平台,MEP平台可以给开发者提供5G独有的网络能力调用。第二部分是我们面向开发者提供的Portal和一系列编程支撑工具,我们提供各种能力的Plugin,可以帮助开发者生成MEP平台API调用样例代码,支持对应用开发者的应用进行打包测试和上传,应用开发者可以通过开发者Portal快速掌握如何基于开源MEP平台进行应用开发。第三部分是APP Store,开源APP Store跟开发者界面是打通的,应用开发者开发的APP应用可以上传到App Store,App Store 会提供一系列的测试工具和框架,通过App Store测试的应用未来可以直接集成到华为商用MEC平台上。最后还提供一个简化的MEC管理面,通过这个管理面可以对APP进行基本的生命周期管理,包括APP 的分发、激活、删除等操作,同时支持对边缘节点的监控和运维。
本次codelab用户将会体验到如何使用开源的边缘计算平台提供的开放API能力,实现人脸识别和位置显示。
您将建立什么?
在本次Codelab中,您将体验如何在MEC开源平台上调用位置服务和人脸识别API,并基于此API进行二次开发。用户最终可以在本地实现视频图像显示位置信息和人脸识别。
您将学会到什么?
<span id="_w7akf9d42zqu" class="anchor"></span>如何使用MEC开源平台。
如何通过MEC开源平台调用人脸识别和位置服务API。
如何通过Plugin插件进行人脸识别和位置服务的二次开发。
您需要什么?
开发环境及技能要求:
python开发环境Pycharm。
便携机一台。
网络摄像头或者便携机自带摄像头。
边缘云服务。
运行终端要求:
Window X86,安装python3.6、Pycharm开发环境。
Chorme游览器。
<span id="_4tcmcfgetbxm" class="anchor"></span>
<span id="_o40w312plm2e" class="anchor"><span id="_oca6enrjsqee" class="anchor"><span id="OLE_LINK8" class="anchor"><span id="OLE_LINK9" class="anchor"></span></span></span></span>
2. 创建工程项目
项目创建完成后我们可以在工作空间中查看到我们的项目。
3. 配置开发环境
方法一:从HDC开发者平台上将样例代码下载到本地:点击开始体验->新建->仓库名->克隆下载
方法二:从wiki上开源项目Edgegallery上下载代码:
https://edgegallery.atlassian.net/wiki/spaces/EG/pages/10059787
下载完成后解压,用Pcharm打开样例代码。
打开开发者平台,在开发工具里选择Pycharm插件进行下载。打开Pycharm、 Setting,点击Plugin,选择install Plugin from Disk,从本地导入刚才下载的压缩文件,导入之后重启Pycharm即可安装成功。
下载插件
安装插件
在Pycharm工程中,打开tool工具箱,找到MainMenu点击。选择APP的基础能力(选择GPU)后点击Search。选择face_Recognition和location_Service,填写App基本信息后点击OK。
其中appSample就包含了Face_Recognize和Location_Service的所有api调用样例代码。通过修改host、图片路径等后运行该程序,可以返回api的调用结果。codelab-demo2_app为package文件,用于向appstore发布。如果对此包有了解,可以通过修改镜像信息并进行打包。不了解也不用担心,后续开发者平台会根据你的镜像信息,自动打包。
4. 信息录入
信息录入需要用到的API接口:
打开face_recognition_demo样例代码中collection.py文件,修改红框内的信息。name为自己的名字,仅限字母,Host为上传图片的IP和端口(目前IP为159.138.5.41,端口为32115、32116可用)。
5. 调用API进行二次开发
本步骤需要的人脸识别服务和位置服务API接口:
人脸识别:检测图像中的人脸并识别,返回校验结果,对比成功则返回人名。
位置服务:返回用户的位置信息和区域状态,目前位置信息没有对接基站,只提供位置信息的模拟数据。
本体验相关的样例代码已经开发完成,本步骤只需要修改相关url的即可。
打开postion.py文件,修改recognition_url和location_url,(recognition_url为上一步的IP和端口,location_url的端口为32110)。运行时调用本地摄像头,视频数据流url=0。
6. 运行应用,验证结果
右键运行该程序,运行成功后显示如下结果:
打开游览器输入:http://127.0.0.1:9997/v1/face-recognition/video?url=0 测试是否成功,url的值为摄像头地址,本地摄像头url=0,如果是外置网络摄像头,填写相应的摄像头地址即可。如果弹出摄像头能识别人脸,并显示用户的经纬度,说明restful API开发完成。
若本地没有摄像头,只可以体验简单的应用开发。输入http://127.0.0.1:9997 ,返回Hello MEC Developer,说明restful API开发完成。
7. 制作镜像
目前平台提供镜像的自动化构建,只需要编写Dockerfile文件,指定代码仓库、镜像名等参数即可。其中API接口为:
curl --request POST 'http://119.8.34.36:8080/job/python-mec-app-docker-image-build-update/buildWithParameters' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'GIT_URL=git@139.9.0.160:MEC-APP/codelab-dome.git ' \
--data-urlencode 'IMAGE_NAME=codelab_demo2
--data-urlencode 'IMAGE_TAG=test' \
--data-urlencode 'DOCKERFILE_DIR=location_service_demo/app
参数说明:
GIT_URL:Mandatory,代码仓库地址,代码仓库需要配置为无认证下载
GIT_BRANCH: Optional,代码仓库分支名,缺省值为‘master’
IMAGE_NAME:Mandatory,构建镜像名
IMAGE_TAG: Optional,镜像tag,缺省值为‘latest’
DOCKERFIKE_DIR: Optional, Dockerfile的存放目录路径,缺省值为代码仓库的根目录。
由于制作镜像过程时间比较长,并且云资源有限。此次体验已经提前写好Dockerfile,并已经制作好镜像,后续直接使用该镜像即可。镜像名以及版本以及端口号如下:
codelab_demo2:v1.0 9997
8. 与MEC开源平台集成、测试
>![]()
镜像信息为codelab_demo2:v1.0 内部端口号为9997,外部端口号为30511(30511-30515)点击添加。API文档在样例代码中已经写好,文件名为codelab_demo2.yaml。确认上传即可。
填入应用的服务名,用于平台的注册发现,端口号与外部端口号一致,链接与服务名一致。
通过访问http://159.138.63.8:30511,返回Hello MEC Developer 说明部署成功。点击完成测试,上传至appstore即可发布自己的应用。
9. 恭喜你
祝贺您,您已经成功地完成了基于MEC开源平台开发API应用,并学到了:
使用MEC开源平台进行位置服务和人脸识别API的调用。
通过Plugin插件进行APP的二次开发。
10. 参与互动赢好礼
完成Codelab发布心得和截图,可赢取奖品。</br>![闯关有礼]()