基于Ubuntu的Brainframe视觉AI分析平台搭建的详细步骤

news2024/11/15 13:33:06

目录

引言:

过程:

下载Brainframe安装包:

搭建Brainframe命令接口:

解决下载Docker速度慢的方法:

安装Docker :

Unable to find image 'hello-world:latest' locally 问题的解决:

Step1:进入到制定目录下

Step2:创建并编辑daemon.json文件

Step3:重载json文件

Step4:重新启动Docker:

问题解决:

再次进行Brainframe本体的安装:

两次ERROR报错未解决:

连接到Brainframe服务器:

开始Brainframe的安装:使用Brainframe读取下载的秘钥:

在Aotu官网注册账号拿到License File秘钥:

使用Brainframe读取下载的秘钥:

读取秘钥完成:

安装成功。

参考资料:


引言:

近期面试了一个做图像识别的人工智能公司,公司让熟悉旗下开发的Brainframe框架,经过一段时间的了解和学习,这个框架可以加载官网上各种各样的算法胶囊从而实现人脸识别,躯干识别以及车辆识别诸多识别功能。但这个框架要运行在Linux的Ubuntu发行版本上且安装过程稍微有一些繁琐,在这里写一下按照官方文档在Ubuntu下搭建Brainframe视觉分析框架的步骤,以便后期的回顾。

过程:

下载Brainframe安装包:

首先打开官方安装文档网址:

Downloads - BrainFrame Documentation

在官方文档中首先下载适用于Ubuntu 18.04版本的Brainframe官方安装包,如图:

在网页中找到上图,并点击红色箭头所指的Download,在等待下载的过程中,我们在这里点击Getting Started,进入到开始安装的导航,如图:

搭建Brainframe命令接口:

首先将 Brainframe-cli (命令接口)安装,按照说明在终端中输入以下命令,如图:

当安装完成之后,应该是可以使用brainframe命令的,我们现在输入命令:

brainframe --help

如图:

解决下载Docker速度慢的方法:

如图已经显示除了brainframe的一些命令,我们现在输入命令:

sudo brainframe install

好了,现在命令接口我们已经基本安装完毕,我们现在来安装brainframe本体,如图,但是我们发现brainframe的下载速度非常缓慢,官网上给出了解决办法,

同时,官网上给出了解决办法:

 点击这里的these instructions,这里给出了解决方式,如图:

安装Docker :

这里的操作其实本身是一种换源操作,这里其实我们注意到brainframe本身是依托于Docker镜像来工作的,这里的换源操作也是对根目录下etc下的Docker文件中的daemon.json文件做编辑,我们这时就要检查系统中是否已经安装的Docker,输入命令:

docker info

 

如图,我们的系统中并没有安装docker, 同时终端中提示我们执行sudo apt install docker.io命令,我们先不执行这一条命令,在浏览器中的地址栏输入这个网址,我们对docker进行手动形式的安装:

网址:Install Docker Engine on Ubuntu

点击网址进入之后,需要注意到这个词条:

这个词条的意思是,让我们在安装docker之前要通过下方所给出的命令对计算机进行移除旧版本docker的操作,旧版本的docker名字这里也给了出来,都有docker,docker.io,docker-engine,这里你注意到我用红色标注的docker.io就是上面我们输入docker info系统提示我们输入的命令。下面我们输入下方命令来对计算机系统中之前的旧版本docker进行移除操作:

sudo apt-get remove docker docker-engine docker.io containerd runc

如图,终端显示我们之前并没有安装docker-engine ,接下来我们开始docker的安装,如图:

输入命令:

sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

 

 

 

安装完成之后如图所示。

接下来我们开始添加docker官方的GPG秘钥,如图:

在终端中分别输入这两段命令和脚本语言,输入命令:

sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

如图所示;

然后我们再更新源,输入命令:

sudo apt-get update

更新源完成之后,我们再安装docker本体的最新版本,如图:

输入命令:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装完成之后我们通过docker是否能输出hello-world来判断docker是否已经安装成功,输入命令:

sudo docker run hello-world

如图,成功通过docker将helllo-world输出了出来,代表我们将docker安装成功。

Unable to find image 'hello-world:latest' locally 问题的解决:

但是这里出现了一个问题,如图:

问题描述为:Unable to find image 'hello-world:latest' locally

这个问题的可能原因是在中国大陆地区因为网络的问题无法拉取到docker的镜像,我们可以通过换源的方式尝试解决,方法步骤如下:

Step1:进入到制定目录下

进入到/etc/docker路径下,输入命令:

cd /etc/docker

Step2:创建并编辑daemon.json文件

然后,创建daemon.json文件并对其进行编辑,输入命令:

touch daemon.json

命令输入完成之后如图所示,终端提示我们权限不够:

所以我们命令前面加上sudo:

sudo touch daemon.json

然后通过vim对daemon.json文件进行编辑,我们更换国内的阿里云源,这里首先检查一下ubuntu中是否已经安装有Vim编辑器,输入命令:

vim --version

如图,我的ubuntu中已经安装过了Vim编辑器,如果你的ubuntu中没有安装vim,输入命令:

sudo apt-get install vim

安装完成之后按q退出,然后输入命令:

sudo vim daemon.json

将下面的内容粘贴到daemon.json中:

 { 
 "registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"] 
 }

然后保存退出。

Step3:重载json文件

对当前路径下的daemon文件进行重载,输入命令:

sudo systemctl daemon-reload

Step4:重新启动Docker:

然后我们再重新启动docker,输入命令:

sudo systemctl restart docker

检查一下docker的运行情况,输入命令:

sudo systemctl status docker

 

如上图红色箭头所指,docker已经在运行中,状态为active!

问题解决:

然后我们再重新通过docker对hello-world进行输出,输入命令:

sudo docker run hello-world

 

稍等片刻,这次成功地将hello-world输出了!

问题解决。

再次进行Brainframe本体的安装:

安装完docker之后且经过换源操作之后我们再对brainframe本体进行安装,输入命令:

sudo brainframe install

两次ERROR报错未解决:

如图,在安装的过程中出现了报错:

问题描述:

ERROR: launchpadlib 1.10.13 requires testresources, which is not installed.
ERROR: brainframe-cli 0.2.0 has requirement packaging<21.0,>=20.4, but you'll have packaging 23.0 which is incompatible.

这里我们先进行跳过,进行正常安装:

连接到Brainframe服务器:

这里的安装过程比较漫长,我们需要等较长的时间,完成之后如图所示 :

这时我们进行连接服务器的操作,输入命令:

sudo brainframe compose up -d

 

然后再输入命令查看实时日志:

sudo brainframe compose logs -f

如图:

如图,brainframe现在已经连接上了服务器。

开始Brainframe的安装:使用Brainframe读取下载的秘钥:

然后我们将开始时下载的brainframe压缩文件中的文件夹提取出来,并在终端中打开,如图:

然后在此路径下输入命令进行brainframe的安装:

bash install.sh

如图,系统提示我们输入下一个命令:

然后输入命令将brainframe启动:

bash brainframe_client.sh

 

如图,弹出了安装界面,点击接受,开始brainframe的安装:

安装成功,但是没有授权的秘钥,获取秘钥的方法也很简单,如图:

在Aotu官网注册账号拿到License File秘钥:

使用Brainframe读取下载的秘钥:

这里点击到Aotu website里面,店家Sign up注册一个新账号,然后在Account Page页面中选择License Key选项,网站会自动生成秘钥。然后我们再将秘钥下载下来即可。

如图,这是下载下来的秘钥:

使用Brainframe读取下载的秘钥:

然后我们在安装成功的页面中点击配置按钮,在弹出来的页面中点击授权配置,如图:

在弹出来的页面中直接将刚才下载好的License File文件拖动进这个页面:

Brainframe会自动加载秘钥,然后点击更新许可证,你会看到Brainframe是经过永久授权的。

 

读取秘钥完成:

好了,更新完许可证就可以进去Brainframe本体了。

安装成功。

如图,成功进入,至此Ubuntu下Brainframe视觉平台的搭建就已经完成了。

参考资料:

BrainFrame的安装过程,防踩坑https://www.likecs.com/show-98587.html#sc=546

Unable to find image ‘hello-world:latest‘ locally,跑不起来docker hello-world可以尝试_m0_47648607的博客-CSDN博客Unable to find image ‘hello-world:latest‘ locally跑不起来参考处理E212:无法打开并写入文件参考处理https://blog.csdn.net/m0_47648607/article/details/128723500?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-128723500-blog-121960772.pc_relevant_landingrelevant&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-128723500-blog-121960772.pc_relevant_landingrelevant&utm_relevant_index=1 [2021] 完美解决Unable to find image ‘hello-world:latest‘ locally 问题_Leopold_Fitz的博客-CSDN博客安装Docker出现的问题相信大家查询了很多的回答里面都是需要修改阿里镜像源,但是修改之后却无用。这是因为阿里那个源对于每个人来说都需要专属源。详细的内容可以参考菜鸟教程里的回答:菜鸟教程更换镜像源接下来就简单的完成这个这个更换源的操作(当时花了接近3小时,害):1.首先创建deamon.json文件用来保存源vim /etc/docker/daemon.json2.添加稳定而且不经常变动的镜像源,这里选择中科大的源 { "registry-mirrors": ["https://dockhttps://blog.csdn.net/qq_37374155/article/details/121960772

Get BrainFrame - BrainFrame Documentationhttps://dilililabs.com/docs/getting_started/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/382600.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3创建项目(四)axios封装及接口配置

项目结构: 目录 &#x1f349;&#x1f349;&#x1f349;index.ts &#x1f349;&#x1f349;&#x1f349; api.ts 看完需要预计花费10分钟。 请求拦截器与响应拦截器 阅读下面代码需先了解以下内容&#xff1a; 请求拦截器&#xff1a; 请求拦截器的作用是在请求发送前进…

Windows搭建机器学习环境

一、环境介绍Anaconda&#xff1a;Anaconda offers the easiest way to perform Python/R data science and machine learning on a single machine. Start working with thousands of open-source packages and libraries today.Anaconda包括Conda、Python以及一大堆安装好的工…

Qt信号与槽机制——新手友好

目录 一 为什么会有这个机制 二 信号与槽是什么 三 信号 四 槽 五 使用 1 最简单的 2 函数指针 3 用Lambda表达式实现 一 为什么会有这个机制 我们平时的一个网页&#xff0c;如果点击网页上不同的部分会有不同的相应动作。比如点击超链接就会实现网页的跳转&#xff0c…

Code Virtualizer 3.1.4 Crack

Code Virtualizer 是一个强大的 Windows 应用程序代码混淆系统&#xff0c;它可以帮助开发人员保护他们的敏感代码区域免受逆向工程的影响&#xff0c;基于代码虚拟化的非常强大的混淆代码。 Code Virtualizer 会将您的原始代码&#xff08;Intel x86/x64 指令&#xff09;转换…

剑指 Offer day3, day4

剑指 Offer day3, day4 字符串和数组的操作。 剑指 Offer 05. 替换空格 剑指 Offer 05. 替换空格 - 力扣&#xff08;Leetcode&#xff09; 方法二&#xff1a;原地修改 在 C 语言中&#xff0c; string 被设计成「可变」的类型&#xff08;参考资料&#xff09;&#xff…

python海龟绘图

一、基础 &#xff08;一&#xff09;介绍 海龟绘图&#xff08;Turtle Graphics&#xff09;&#xff1a;“小海龟”turtle是Python语言中一个很流行的绘制图像的函数库&#xff0c;想象一个小乌龟&#xff0c;在一个横轴为x、纵轴为y的坐标系原点&#xff0c;(0,0)位置开始…

Git分支的合并策略有哪些?Merge和Rebase有什么区别?关于Merge和Rebase的使用建议

Git分支的合并策略有哪些&#xff1f;Merge和Rebase有什么区别&#xff1f;关于Merge和Rebase的使用建议1. 关于Git的一些基本原理1.1 Git的工作流程原理2. Git的分支合并方式浅析2.1 分支是什么2.2 分支的合并策略2.2.1 Three-way-merge&#xff08;三向合并原理&#xff09;2…

前端已死?我看未必,但「低代码」已剑指前端程序员

本文笔者会从以下几个方面分享&#xff0c;希望能够帮助正在迷茫的前端小伙伴提供一点思路&#xff01; 逛技术博客 不局限框架 全栈工程师兴起 关注前沿 写技术文章 录制前端视频 总结 2023第一季度快过去了&#xff0c;没工作的找到工作了吗&#xff1f;有工作的加薪了…

Hbase的基本概念与架构

一、Hbase的概念 HBase是Hadoop的生态系统&#xff0c;是建立在Hadoop文件系统&#xff08;HDFS&#xff09;之上的分布式、面向列的数据库&#xff0c;通过利用Hadoop的文件系统提供容错能力。如果你需要进行实时读写或者随机访问大规模的数据集的时候&#xff0c;请考虑使用H…

Canal数据同步配置

文章目录Canal数据同步配置0.canal工作原理1.**检查binlog功能是否有开启**2.如果显示状态为OFF表示该功能未开启&#xff0c;开启binlog功能3.**在mysql里面添加以下的相关用户和权限**4.下载安装Canal服务5.修改配置文件6.进入bin目录下启动7.idea中配置Canal数据同步配置 c…

记录第一次接口上线过程

新入职一家公司后&#xff0c;前三天一直在学习公司内部各种制度文化以及考试。 一直到第三天组长突然叫我过去&#xff0c;给了一个需求的思维导图&#xff0c;按照这个需求写这样一个接口&#xff0c; 其实还不错&#xff0c;不用自己去分析需求&#xff0c;按照这上面直接开…

工业机器人有哪些类型?如何利用工业网关集中监测管理?

工业机器人在制造业中的应用与日俱增&#xff0c;使用工业机器人&#xff0c;不仅提高了设备和场地的利用率&#xff0c;还能保持稳定的产品水平。随着工业机器人的大规模部署&#xff0c;对于数量众多、类型各异、功能不一的机器人的监测、管理和维护&#xff0c;也成为企业面…

Java 异常

文章目录1. 异常概述2. JVM 的默认处理方案3. 异常处理之 try...catch4. Throwable 的成员方法5. 编译异常和运行异常的区别6. 异常处理之 throws7. 自定义异常8. throws 和 throw 的区别1. 异常概述 异常就是程序出现了不正常的情况。 ① Error&#xff1a;严重问题&#xff…

Nessus: 漏洞扫描器-网络取证工具

Nessue 要理解网络漏洞攻击&#xff0c;应该理解攻击者不是单独攻击&#xff0c;而是组合攻击。因此&#xff0c;本文介绍了关于Nessus历史的研究&#xff0c;它是什么以及它如何与插件一起工作。研究了Nessus的特点&#xff0c;使其成为网络取证中非常推荐的网络漏洞扫描工具…

maven高级知识。

目录 一、分模块开发 1、分模块开发设计 2、依赖管理 二、继承和聚合 1、聚合 2、继承 三、属性 1、基本介绍 2、版本管理 四、多环境配置与应用 1、多环境开发 2、跳过测试 五、私服 1、私服安装 2、私服仓库分类 一、分模块开发 1、分模块开发设计 ▶ 示意图 …

【测绘程序设计】——计算卫星位置

本文分享了根据广播星历计算卫星于瞬时地固系下位置的计算程序(C#版)(注:瞬时地球坐标系坐标经极移改正即可获得协议地球坐标系坐标),相关源代码(完整工程,直接运行;包含实验数据)及使用示例如下。 目录 Part.Ⅰ 使用示例Part.Ⅱ 代码分析Chap.Ⅰ 数据结构Chap.Ⅱ 计…

原生javascript手写一个丝滑的轮播图

通过本文&#xff0c;你将学到: htmlcssjs 没错&#xff0c;就是html&#xff0c;css,js,现在是框架盛行的时代&#xff0c;所以很少会有人在意原生三件套&#xff0c;通过本文实现一个丝滑的轮播图&#xff0c;带你重温html,css和js基础知识。 为什么选用轮播图做示例&…

网络运维和网络安全运维有什么区别?就业前景如何?

随着互联网的高速发展&#xff0c;运维安全已经成了大多数企业安全保障的基石。在如今的信息时代&#xff0c;无论是网络运维还是网络安全运维都成了不可缺少的一部分。因此导致很多人都容易把两者弄混淆。首先我们来了解一下网络运维和网络安全运维有什么区别呢&#xff1f;网…

Linux vi/vim教程

所有的 Unix Like 系统都会内建 vi 文本编辑器&#xff0c;其他的文本编辑器则不一定会存在。 但是目前我们使用比较多的是 vim 编辑器。 vim 具有程序编辑的能力&#xff0c;可以主动的以字体颜色辨别语法的正确性&#xff0c;方便程序设计。 ** 什么是 vim&#xff1f;** Vim…

将vue-devtools打包成edge插件

文章目录一、从github拉vue-devtools源码二、用npm安装yarn三、使用yarn安装并编译源码四、将vue-devtools打包成edge插件五、离线安装edge插件一、从github拉vue-devtools源码 目前最新的版本是v6.5.0&#xff0c;地址&#xff1a;https://github.com/vuejs/devtools 二、用n…