目录

  • 前言
  • 1,关于EdgeX的demo-app例子
  • 2,使用 :make install-edge-video-analytics 安装操作
  • 3,使用 make run-edge-video-analytics 启动镜像,开启端口 8080
  • 4,创建摄像头-应用,这个才是处理配置的界面,端口 59750
  • 5,使用总结

前言


相关EdgeX Foundry 全部分类:
https://blog.csdn.net/freewebsys/category_9437788.html

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/126230258

未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

1,关于EdgeX的demo-app例子


信息地址:
https://www.edgexfoundry.org/software/releases/

使用文档:
https://github.com/edgexfoundry/device-onvif-camera/blob/main/doc/using-demo-app.md

首先下载 edgex examples 项目

$ git clone https://github.com/edgexfoundry/edgex-examples.git
# 切换到 camera management 项目
$ cd edgex-examples/application-services/custom/camera-management/

2,使用 :make install-edge-video-analytics 安装操作


日志都保存,看看都下载了一些文件。
项目是:
https://github.com/intel/edge-video-analytics-microservice.git

$ make install-edge-video-analytics
# 保留了一些日志,不全。
make -C edge-video-analytics install
git clone --depth=1 --branch v0.7.0 https://github.com/intel/edge-video-analytics-microservice.git src_v0.7.0
正克隆到 'src_v0.7.0'...
ln -sf src_v0.7.0/pipelines pipelines
mkdir -p models
chmod +x src_v0.7.0/tools/model_downloader/model_downloader.sh src_v0.7.0/docker/run.sh
src_v0.7.0/tools/model_downloader/model_downloader.sh --model-list src_v0.7.0/models_list/models.list.yml
Found /dev/dri/render entry - enabling for GPU
Found /dev/bus/usb - enabling for Intel(R) NCS2
Running Video Analytics Serving Image: 'openvino/ubuntu20_data_dev:2021.4.2'
模型放到了:
/data/home/test/edgex/edgex-examples/application-services/custom/camera-management/edge-video-analytics/src_v0.7.0/models_list
...
Copied model_proc to: /output/models/object_detection/person_vehicle_bike/person-vehicle-bike-detection-crossroad-0078.json.
...
Copied model_proc to: /output/models/object_classification/vehicle_attributes/vehicle-attributes-recognition-barrier-0039.json
...
Conversion command: /usr/bin/python3 -- /opt/intel/openvino/deployment_tools/model_optimizer/mo.py --- Inference Engine found in:   /opt/intel/openvino_2021.4.752/python/python3.8/openvino
...

3,使用 make run-edge-video-analytics 启动镜像,开启端口 8080


要保障本地 8080 端口没有被占用,服务启动成功开启 8080 端口。
这个是图像处理服务,是 OpenVINO 的模型进行处理,识别的服务,必须开启应用才可以跑通。

$ make run-edge-video-analytics
# 保留了一些日志,不全。
make -C edge-video-analytics run
docker-compose -p edge-video-analytics up
# 加载模型
edge-video-analytics-edge_video_analytics_microservice-1  | {"levelname": "INFO", "asctime": "2022-10-19 06:46:34,872", "message": "Loading Model: object_detection version: person_vehicle_bike type: IntelDLDT from {'FP16': '/app/models/object_detection/person_vehicle_bike/FP16/person-vehicle-bike-detection-crossroad-0078.xml', 'FP32': '/app/models/object_detection/person_vehicle_bike/FP32/person-vehicle-bike-detection-crossroad-0078.xml', 'model-proc': '/app/models/object_detection/person_vehicle_bike/person-vehicle-bike-detection-crossroad-0078.json'}", "module": "model_manager"}
# 服务启动成功,端口 8080
edge-video-analytics-edge_video_analytics_microservice-1  | {"levelname": "INFO", "asctime": "2022-10-19 06:46:35,619", "message": "Completed Loading Pipelines", "module": "pipeline_manager"}
edge-video-analytics-edge_video_analytics_microservice-1  | {"levelname": "INFO", "asctime": "2022-10-19 06:46:35,619", "message": "===========================", "module": "pipeline_manager"}
edge-video-analytics-edge_video_analytics_microservice-1  | {"levelname": "INFO", "asctime": "2022-10-19 06:46:35,698", "message": "Starting Tornado Server on port: 8080", "module": "__main__"}                                                         1.1s

4,创建摄像头-应用,这个才是处理配置的界面,端口 59750


配置摄像头凭证文件。输入账号密码。

$ vi res/configuration.toml # 设置账号密码# TODO: Enter your camera's credentials here.# NOTE: currently this solution is limited to supporting only 1 username/password combination#       for ALL cameras. In the future when then device-onvif-camera service is able to provide#       us with pre-authenticated uris, this can be removed.[Writable.InsecureSecrets.CameraCredentials]path = "CameraCredentials"[Writable.InsecureSecrets.CameraCredentials.Secrets]username = "admin"password = "password"

需要golang 环境:
https://golang.google.cn/doc/install

首先删除之前的老版本的文件,然后在解压缩到/usr/local目录下面:需要root权限$ sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.19.2.linux-amd64.tar.gz$ vi $HOME/.bashrc
增加环境变量
# add golang
export PATH=$PATH:/data/local/go/bin
# 增加代理,下载提速
export GO111MODULE=on
export GOPROXY=https://goproxy.cn测试
$ go version
go version go1.19.2 linux/amd64

安装工具和依赖:

# 需要安装工具 pkg-config
$ sudo apt install pkg-config
# 安装 zeromq 依赖开发工具包:
$ sudo apt-get install libzmq3-dev

执行构建,没有任何问题代表构建成功!

$ make build-app
go mod tidy
CGO_ENABLED=1 go build -ldflags "-X github.com/edgexfoundry/app-functions-sdk-go/v2/internal.SDKVersion=v2.2.0 -X github.com/edgexfoundry/app-functions-sdk-go/v2/internal.ApplicationVersion=0.0.0" -o app-camera-management
$ make run-app
EDGEX_SECURITY_SECRET_STORE=false ./app-camera-management
.....
level=INFO ts=2022-10-19T08:31:46.13384954Z app=app-camera-management source=service.go:202 msg="StoreAndForward disabled. Not running retry loop."
level=INFO ts=2022-10-19T08:31:46.133856645Z app=app-camera-management source=service.go:205 msg="Camera Management Application Service has started"
level=INFO ts=2022-10-19T08:31:46.133863725Z app=app-camera-management source=server.go:162 msg="Starting HTTP Web Server on address 0.0.0.0:59750"

然后就可以看到界面了:可以看到各种服务都OK,同时要保证上面的 8080 服务也开着。
如果界面报错:说明上面的 run-edge-video-analytics 没有启动成功,端口不通。

"Failed to get pipelines: GET request to query all EVAM pipelines failed: failed to send a http request -> Get \"http://localhost:8080/pipelines\": dial tcp 127.0.0.1:8080: connect: connection refused"

偶尔会有 google 字体加载失败的情况,需要特殊解决下,找到个字体服务替换下,在 web-ui/dist/index.html 文件中。

https://fonts.gstatic.com/s/materialicons/v139/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2

可以上下左右的控制摄像头了,操作之后可以看到 API log 生效了

然后开始推理,【start pipeline】
就可以找到相关的人和车了。

使用
然后开启事件可以看到:


使用命令可以直接查看实时结果:需要安装 sudo apt install ffmpeg

ffplay -rtsp_transport tcp rtsp://localhost:8554/Camera001

在工位,没有车辆行人的视频,用截图代替了。

5,使用总结


EdgeX官方的摄像头demo-app,接入摄像头可以控制摄像头的上下左右方向,创建OpenVINO的目标检测跟踪服务,并成功接受到相关坐标数据。
这个官方例子还是非常的丰富的。稍作修改下就可以应用到项目当中了,已经把相关的目标检测模型都放到 OpenVINO 中,
封装成一个docker 服务器启动了。整个流程也通过配置下就可以了。
非常的方便、简单、高效的边缘演示服务!

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/126230258

博主地址是:https://blog.csdn.net/freewebsys

【EdgeX(13)】 :EdgeX官方的摄像头demo-app,接入摄像头可以控制摄像头的上下左右方向,创建OpenVINO的目标检测跟踪服务,并成功接受到相关坐标数据,可以直接做边缘计算了。相关推荐

  1. 与自己赛跑 迎5G而上 ,九州云做边缘计算实力玩家

    从年初在西班牙巴塞罗那召开的MWC2019,到刚刚在我国上海闭幕的MWC19,随着5G全球商用步伐的加快,边缘计算的概念持续升温.而在两次展会中,九州云都携边缘计算产品和方案参展,引起了观众浓厚兴趣. ...

  2. 【结构化思考】边缘计算架构 3D模型参考

    想想一辆自动驾驶汽车,它实际上是车轮上的数据中心. 彼得莱文 随着数据量的继续增加以及数据处理多样化的要求,基于云端的大数据处理面临诸多挑战. 以当下火热的自动驾驶汽车为例,从产品形态上看,自动驾驶汽 ...

  3. 云计算的可信新边界:边缘计算与协同未来

    微服务架构的设计思想是把每个核心的能力设计得更加内聚.更加独立.可以很小的依赖系统环境,可以分散在各个机器.部署到容器,可以灵活的编排和管理.技术的演进,系统架构的演变支撑了边缘计算技术的诞生.落地和 ...

  4. 详解边缘计算:为何而起、优势如何、哪些玩家以及正在爆发的场景

    写在前面:不久前 CBinsights 发布了一份边缘计算报告.我做了一些编译和整理,加入了一些行业新动态,同时也有一些我的思考. 边缘计算出现的背景 过去这么多年,科技行业里一直有个词很流行,这就是 ...

  5. 漫谈边缘计算(四):赢家是软还是硬

    在前面的几篇文章里,我表达了以下主要观点: 一.边缘计算是云计算由全集中模式向分布式演进的升级,并不是独立的颠覆性技术. 二.分布式的云计算更加符合产业发展趋势,成本更低,更易满足安全性要求. 三.边 ...

  6. 谷歌、亚马逊、阿里纷纷入局,边缘计算的潜力如何?

     关注ITValue,查看企业级市场最新鲜.最具价值的报道! ITValue注 不久前CBinsights 发布了一份边缘计算报告,作者做了一些编译和整理,加入了一些行业新动态,同时也有一些作者的思考 ...

  7. 农行:“边缘计算+”技术银行业应用及生态探索

    首发:中国农业银行研发中心委员会官方平台<我们的开心> (作者 李鹏斐 王祎霂) 数字经济成为构建新发展格局的关键支撑.党的十九届五中全会提出,要加快建设以国内大循环为主体.国内国际双循环 ...

  8. 专访施巍松:边缘计算早期提出者之一

    ![](https://img-blog.csdn.net/20180729210358293) 1995 年,施巍松从西安电子科技大学计算机系毕业,然后被保送到中科院计算所.2000 年,施巍松获得 ...

  9. 边缘计算Edage Computing

    1.边缘计算的定义 边缘计算是指在靠近物或数据源头的一侧,采用网络.计算.存储.应用核心能力为一体的开放平台,就近提供最近端服务. 其应用程序在边缘侧发起,产生更快的网络服务响应,满足行业在实时业务. ...

  10. 【边缘计算】对边缘计算的理解与思考

    来源:边缘计算社区 在2019年第三届边缘计算技术研讨会上华为高级产业发展经理.ECC需求与总体组副主席黄还青发表了<ECC及华为在边缘计算领域的思考与实践>主题演讲,本文为黄还青演讲中对 ...

最新文章

  1. 2021年人工神经网络第四次作业要求:第七题
  2. 通信工程专业的一些小知识点
  3. 使用CreateProcess和wcscat_s容易出错的地方
  4. android元素离边框间距,RecyclerView Item 的分割线 距边框距离问题总结
  5. 【转载】编程生涯 21 载,那些我踩过的坑
  6. qt 5.0中HeaderView的setResiziMode无法使用的问题
  7. 编译vuejs html,VueJs(2)---VueJs开发环境的搭建和讲解index.html如何被渲染
  8. python调试_Python 调试
  9. [剑指Offer]9.用两个栈实现队列
  10. linux 卸载、安装mysql
  11. 在项目中经历生死的系统,才会成熟
  12. html制作微博界面,微博发布的HTML界面
  13. 最新抖音视频无水印解析接口及原理
  14. java编写程序防止电脑屏幕休眠
  15. Python中循环题目二的练习(for、while、if)
  16. Aria2-突破百度网盘下载限速
  17. 国标SVAC对飙通行标准,优势何在?
  18. ie怎么修改html代码,如何修改IE默认网页源码查看器
  19. 四、Python数据挖掘(Pandas库)
  20. java实验报告6:异常处理程序设计

热门文章

  1. 十进制数转8421BCD码
  2. 全网最完整php禁用eval函数讲解
  3. 百度网盘linux版本怎么安装
  4. PHP微信公众号开发之:获得和缓存access_token,原理及代码
  5. dns劫持如何完美修复?dns被劫持如何解决如何完美修复
  6. Py之shap:shap.explainers.shap_values函数的简介、解读(shap_values[1]索引为1的原因)、使用方法之详细攻略
  7. CSAPP Lab2:Bomb Lab
  8. SEC主席Gary Gensler在被问及以太坊是否是证券时,选择了沉默
  9. 怎样写一篇critical review
  10. 【面试题】15.项目相关