前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >技术分享 | 基于Intel Analytics Zoo的人脸识别应用与实践(下)

技术分享 | 基于Intel Analytics Zoo的人脸识别应用与实践(下)

作者头像
灯塔大数据
发布2019-07-22 16:20:20
9010
发布2019-07-22 16:20:20
举报
文章被收录于专栏:灯塔大数据灯塔大数据

3基于Analytics Zoo的人脸识别Demo实践

本Demo示例中视频源使用的是一路本地视频文件,在实际中也可以对接多路视频服务器,基于Analytics Zoo集群并行处理。

系统要求

JDK8

Spark集群(使用2.2.0版本)

Kafka集群

Python环境

Docker环境

1.在容器中配置Producer项目

1. 创建Docker容器并进入

sudo docker run -itd --net=host--name=adiclient ubuntu:16.04 bash

sudo docker exec -it adiclient bash

2. 配置基本环境

apt-get update--fix-missing && \

apt-get install -y vim curl nano wget unzipmaven git bzip2 && \

apt-get install -y locales && locale-gen en_US.UTF-8 &&\

apt-get install -y build-essential &&\

apt-get install -y protobuf-compilerlibprotoc-dev && \

apt-get install -y libgtk2.0-dev

3. 安装java、cmake

可以通过下载java和cmake解压包进行配置。

4. 更新caffe和opencv的so文件

通过git下载caffe和opencv项目,cmake编译项目,更新容器环境下的对应so文件。

5. 下载Analytics Zoo及Producer相关代码

git clonehttps://github.com/intel-analytics/ad-insertion.git

6. 编译libmtcnn.so文件

cd ad-insertion/face-detection/

./build.sh

cp ./libmtcnn.so~/ad-insertion/ad-insertion-native/src/main/resources/

7. 从opencv和caffe的build/lib目录下导入对应的so包到~/ad-insertion/ad-insertion- native/src/main/resources/替换该目录下的so包

8. 编译native,并与producer项目打包生成jar包

#build native

cd ~/ad-insertion/ad-insertion-native/

./runMainTest.sh

#package producer

cd ~/ad-insertion/ad-insertion-producer/

mvn clean package

创建targetproducer目录做为videoFrameProducer的classpath将下列依赖jar包导入:

videoFramProducer 主要用于实现视频解码成帧并输入到kafka集群

2.配置Spark集群节点及Client Driver

  • 修改spark配置文件

配置spark的spark-env.sh、spark-defaults.conf与slaves文件。

Spark-env.sh

spark-defaults.conf

slaves

之后启动spark集群。

  • 配置Client Driver

将libmtcnn.so文件、ad-insertion-producer-0.1.0-SNAPSHOT-jar-with- dependencies.jar包与ad-insertion-producer项目中的resouces文件夹从容器中复制到节点 上。so文件放入每个集群节点的/usr/bin文件夹内,jar包与resouces文件夹放入集群master节点的spark文件目录下。

之后使用如下命令在每个worker节点上安装与容器相同的基本环境:

apt-getinstall -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler

apt-getinstall –y libboost-all-dev

apt-getinstall -y libatlas-base-dev

apt-getinstall -y python-dev pytest

apt-getinstall -y libgflags-dev libgoogle-glog-dev liblmdb-dev

apt-getinstall –y build-essential tcl tk gettext autoconf zlib1g-dev gcc

apt-getinstall –y python-dev python3-dev libcurl4-openssl-dev

安装完成后,可以开始运行项目。

3.运行人脸识别Demo

  • 在master节点提交任务到spark。

./bin/spark-submit -classcom.intel.analytics.zoo.adi.examples.SparkStreamingDriver\

--master spark://192.168.100.6:7077 \

--executor-memory 50G \

--driver-memory 30g\

--total-executor-cores 2 \

/home/ctbri/spark-2.2.0/ad-insertion-producer-0.1.0-SNAPSHOT-jar-with-dependencies.jar\

--zkQuorum "" \

--brokers "192.168.100.6:9092"\

--groupId "test-consumer-group" \

--topic "adi" --partition 2 \

--baseDir"/home/ctbri/spark-2.2.0/resources"

启动spark后,等到出现“no records received”时进行下一步。

  • 启动kafka集群,进入容器,在ad-insertion/ad-insertion-producer目录下运行:

export

LD_LIBRARY_PATH=~/ad-insertion/ad-insertion- native/src/main/resources:~/caffe/build/lib/:$LD_LIBRARY_PATH

export_JAVA_OPTIONS="-XX:MaxPermSize=5G –Xmx30G"

exportMAVEN_OPTS="-XX:ReservedCodeCacheSize=512m -XX:MaxPermSize=5G–Xmx30G"

java-cp"./targetproducer/*"com.intel.analytics.zoo.adi.examples.VideoFrameProduceApp

运行后会启动producer服务,将视频拆分为帧后通过kafka发送到spark集群。

  • 登陆masterip:4040来查看spark运行详情页面。

查看日志,可以看到收到的各个人脸识别结果,

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 融智未来 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档