• 【GO-OpenCV】go-cv快速配置


    最近对golang实现目标检测心血来潮,尝试在没有sudo权限的平台配置go-cv,有所发现,索性多个平台都做尝试

    安装Go语言(Golang)

    通过包管理器安装(适用于Debian/Ubuntu)(有点慢)

    1. 更新包列表:

      sudo apt update
      
    2. 安装Go语言:

      sudo apt install golang-go
      
    3. 下载Go语言的二进制文件:

      或者使用wget命令直接下载,例如:

      wget https://golang.google.cn/dl/go1.21.1.linux-amd64.tar.gz
      
    4. 解压下载的文件:

      tar -C /usr/local -xzf go1.21.1.linux-amd64.tar.gz
      
    5. 设置环境变量:

      • 打开或创建~/.profile文件,并添加以下内容:

        export PATH=$PATH:/usr/local/go/bin
        
      • 使环境变量生效:

        source ~/.profile
        

    验证安装

    无论你使用哪种方法安装Go语言,都可以通过以下命令验证安装是否成功:

    go version
    

    如果安装成功,你将看到类似如下的输出:

    go version go1.17.6 linux/amd64
    

    这样,你就成功在Linux系统上安装了Go语言。

    安装conda

    探索Miniconda3:简单、灵活的Python环境和软件包管理利器
    Miniconda3是一个轻量级的Anaconda发行版,可以在Miniconda官方网站上下载适合你操作系统的安装包。选择对应的版本(例如,Windows、MacOS或Linux)并下载安装包。

    在下载完成后,运行安装脚本并按照提示进行安装。你可以选择默认安装路径,也可以自定义安装路径。

    在这里插入图片描述

    常用依赖项

    sudo apt-get update
    sudo apt-get install -y build-essential cmake git pkg-config libgtk-3-dev \
        libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
        libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \
        gfortran openexr libatlas-base-dev python3-dev python3-numpy \
        libtbb2 libtbb-dev libdc1394-22-dev
    

    测试代码

    我们以加载YOLOV3模型开始

    • 设置 GOPROXY:尝试设置 GOPROXY 环境变量,使用其他模块代理或直接指向源仓库:
      export GOPROXY=https://goproxy.io,direct
      
    mkdir golov3
    cd golov3
    go mod init golov3 
    touch load.go
    export GOPROXY=https://goproxy.io,direct
    
    
    package main
    
    import (
    	"fmt"
    	"gocv.io/x/gocv"
    )
    
    func main() {
    	net := gocv.ReadNet("yolov3.weights", "yolov3.cfg")
    	if net.Empty() {
    		fmt.Println("无法加载模型文件")
    		return
    	}
    
    	layerNames := net.GetLayerNames()
    	for _, name := range layerNames {
    		fmt.Println(name)
    	}
    }
    
    
    go get gocv.io/x/gocv
    
    在这里插入代码片
    

    换版本

    module golov3
    
    go 1.21.4
    
    require gocv.io/x/gocv v0.31.0 // indirect
    
    
    go mod tidy
    go run load.go
    

    没有权限

    飞桨AI

    **飞桨自带golang和conda环境 **

    pkg-config

    aistudio@jupyter-7169344-8038676:~/golov3$ go run load.go
    go build gocv.io/x/gocv:
    pkg-config --cflags – opencv4 pkg-config: exec: “pkg-config”: executable file not found in $PATH

    conda
    conda create myenv

    conda install -c conda-forge pkg-config -y
    

    EnvironmentNotWritableError: The current user does not have write permissions to the target environment.environment location: /opt/conda
    uid: 1000
    gid: 1000

    conda init
    conda create -n myenv
    conda activate myenv
    conda install -c conda-forge pkg-config -y
    

    装OpenCV

    go build gocv.io/x/gocv:
    pkg-config --cflags – opencv4 Package opencv4 was not found in the pkg-config search path. Perhaps you should add the directory
    containing `opencv4.pc’ to the PKG_CONFIG_PATH environment variable No
    package ‘opencv4’ found pkg-config: exit status 1

    conda install -c conda-forge opencv=4.6.0
    

    设置 LD_LIBRARY_PATH 环境变量

    缺什么补什么

    /tmp/go-build3099974566/b001/exe/load: error while loading shared
    libraries: libopencv_highgui.so.406: cannot open shared object file:
    No such file or directory exit status 127

    find / -name "libopencv_highgui.so.406" 2>/dev/null
    

    (myenv) aistudiojupyter-7169344-7984906:~/godcv$ find / -name
    “libopencv_highgui.so.406” 2>/dev/null
    /home/aistudio/.conda/pkgs/opencv-4.6.0-py310ha16400d_5/lib/libopencv_highgui.so.406
    /home/aistudio/.conda/envs/myenv/lib/libopencv_highgui.so.406

    我们找到了 libopencv_highgui.so.406 的位置

    /home/aistudio/.conda/pkgs/opencv-4.6.0-py310ha16400d_5/lib/libopencv_highgui.so.406                                                                                                           
    /home/aistudio/.conda/envs/myenv/lib/libopencv_highgui.so.406 
    

    以下是具体步骤:

    1. 设置 LD_LIBRARY_PATH 环境变量

      将 Conda 环境中的库路径添加到 LD_LIBRARY_PATH

      export LD_LIBRARY_PATH=/home/aistudio/.conda/envs/myenv/lib:$LD_LIBRARY_PATH
      

      你可以将这条命令添加到你的 shell 配置文件(如 .bashrc.zshrc)中,以便每次启动 shell 时自动设置:

      echo 'export LD_LIBRARY_PATH=/home/aistudio/.conda/envs/myenv/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
      source ~/.bashrc
      
    2. 验证环境变量

      确认 LD_LIBRARY_PATH 已正确设置:

      echo $LD_LIBRARY_PATH
      

      你应该看到 /home/aistudio/.conda/envs/myenv/lib 在输出中。

    3. 重新编译并运行 Go 程序

      确保所有环境变量和库路径都正确设置后,重新编译并运行你的 Go 程序:

      go run load.go
      

    在这里插入图片描述

    有权限

    本地Linux虚拟机

    Ubuntu扩容

    我使用虚拟机一度安装失败,发现原因是磁盘内存不足,OpenCV没安装完整

    sudo apt-get install gparted
    sudo gparted
    

    pkg-config

    aistudio@jupyter-7169344-8038676:~/golov3$ go run load.go
    go build gocv.io/x/gocv:
    pkg-config --cflags – opencv4 pkg-config: exec: “pkg-config”: executable file not found in $PATH

    有权限(似乎不好用)
    sudo apt-get install -y pkg-config
    
    没权限
    conda install -c conda-forge pkg-config -y
    

    EnvironmentNotWritableError: The current user does not have write permissions to the target environment.environment location: /opt/conda
    uid: 1000
    gid: 1000

    conda init
    conda create -n myenv
    conda activate myenv
    conda install pkg-config
    conda install -c conda-forge pkg-config -y
    

    装OpenCV

    go build gocv.io/x/gocv:
    pkg-config --cflags – opencv4 Package opencv4 was not found in the pkg-config search path. Perhaps you should add the directory
    containing `opencv4.pc’ to the PKG_CONFIG_PATH environment variable No
    package ‘opencv4’ found pkg-config: exit status 1

    有权限(似乎不好用)
    sudo apt-get update
    sudo apt-get install libopencv-dev
    
    没权限
    conda install -c conda-forge opencv=4.6.0
    

    设置 LD_LIBRARY_PATH 环境变量

    缺什么补什么

    /tmp/go-build3099974566/b001/exe/load: error while loading shared
    libraries: libopencv_highgui.so.406: cannot open shared object file:
    No such file or directory exit status 127

    find / -name "libopencv_highgui.so.406" 2>/dev/null
    

    在这里插入图片描述

    我们找到了 libopencv_highgui.so.406 的位置

    /home/qqq/miniconda3/lib/libopencv_highgui.so.406
    
    
    /home/qqq/miniconda3/pkgs/libopencv-4.6.0-py310h5bd1119_9/lib/libopencv_highgui.so.406
    
    

    以下是具体步骤:

    1. 设置 LD_LIBRARY_PATH 环境变量

      将 Conda 环境中的库路径添加到 LD_LIBRARY_PATH

      export LD_LIBRARY_PATH=/home/qqq/miniconda3/lib:$LD_LIBRARY_PATH
      

      你可以将这条命令添加到你的 shell 配置文件(如 .bashrc.zshrc)中,以便每次启动 shell 时自动设置:

      echo 'export LD_LIBRARY_PATH=/home/qqq/miniconda3/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
      source ~/.bashrc
      
    2. 验证环境变量

      确认 LD_LIBRARY_PATH 已正确设置:

      echo $LD_LIBRARY_PATH
      

      你应该看到 /home/aistudio/.conda/envs/myenv/lib 在输出中。

    3. 重新编译并运行 Go 程序

      确保所有环境变量和库路径都正确设置后,重新编译并运行你的 Go 程序:

      go run load.go
      

    在这里插入图片描述

    WINDOWS(待续,暂未成功)

    安装Go

    1. 打开命令提示符(可以通过按 Win + R,然后输入 cmd 并按回车来打开)。

    2. 使用 curl 命令下载Go 1.21.11的安装包。如果你没有安装 curl ,你可以先安装它们。

      使用 curl

      curl -O https://dl.google.com/go/go1.21.11.windows-amd64.msi
      
    3. 打开一个新的命令行窗口(非常重要,因为环境变量的更改需要新的命令行窗口才能生效)。

    4. 输入以下命令来验证Go是否安装成功:

      go version
      

    在Windows命令行中设置 GOPROXY 环境变量

    以下是一个完整的示例,展示如何在Windows命令行中设置 GOPROXY 环境变量:

    1. 打开命令提示符。

    2. 设置 GOPROXY 环境变量(临时):

      set GOPROXY=https://goproxy.io,direct
      
    3. 或者设置 GOPROXY 环境变量(永久):

      setx GOPROXY https://goproxy.io,direct
      
    4. 验证环境变量设置:

      echo %GOPROXY%
      

    通过这些步骤,你应该能够在Windows命令行中成功设置 GOPROXY 环境变量。如果你有任何其他问题,请告诉我。

    curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe
    
    
    setx PATH "%PATH%;C:\Users\admin\miniconda3;C:\Users\admin\miniconda3\Scripts"
    
    

    如果你看到 'conda' 不是内部或外部命令,也不是可运行的程序或批处理文件 的错误消息,这通常意味着Conda没有正确安装,或者Conda的路径没有添加到系统的环境变量中。

    步骤1:安装Conda

    如果你还没有安装Conda,可以从以下链接下载并安装:

    • Anaconda:包含了大量科学计算包,适合需要完整科学计算环境的用户。
    • Miniconda:一个轻量级的Conda安装包,只包含Conda和Python,适合需要最小化安装的用户。

    步骤2:添加Conda到系统路径

    如果你已经安装了Conda,但仍然看到错误消息,你需要确保Conda的路径已添加到系统的环境变量中。

    方法1:手动添加Conda路径
    1. 找到Conda的安装路径
      通常,Conda会安装在你的用户目录下,例如 C:\Users\YourUsername\Anaconda3C:\Users\YourUsername\Miniconda3

    2. 添加路径到系统环境变量

      • 右键点击“此电脑”或“计算机”,选择“属性”。
      • 点击“高级系统设置”。
      • 点击“环境变量”。
      • 在“系统变量”部分,找到名为 Path 的变量,选中并点击“编辑”。
      • 点击“新建”,然后添加Conda的安装路径,例如 C:\Users\YourUsername\Anaconda3C:\Users\YourUsername\Anaconda3\Scripts
      • 点击“确定”保存更改。
    3. 重新启动命令提示符
      关闭并重新打开命令提示符,以使更改生效。

    方法2:使用Conda自带的脚本

    如果你使用的是Anaconda Prompt或Miniconda Prompt,这些提示符会自动配置环境变量,你可以直接使用它们。

    验证Conda安装

    打开命令提示符或Anaconda Prompt,运行以下命令来验证Conda是否正确安装:

    conda --version
    

    如果安装成功,你会看到Conda的版本信息。

    1. 创建新的Conda环境

      conda create -n gocv-env 
      
    2. 激活Conda环境

      conda activate gocv-env
      
    3. 安装OpenCV

      conda install -c conda-forge opencv
      
    4. 获取GoCV

      go get -u -d gocv.io/x/gocv
      
    5. 设置环境变量

      set OPENCV_DIR=%CONDA_PREFIX%
      set CGO_CPPFLAGS=-I%CONDA_PREFIX%\Library\include
      set CGO_LDFLAGS=-L%CONDA_PREFIX%\Library\lib
      
    6. 验证安装

      go run -tags customenv github.com/hybridgroup/gocv/cmd/version/main.go
      
  • 相关阅读:
    【计算机网络笔记】网络地址转换(NAT)
    2022全球智博会 打开非凡之城的未来“穿越门”
    GEO振弦式钢筋计适用范围
    Docker 命令大全
    【JavaScript】String对象知识全解
    基于SSM的零食商店管理系统
    Decoupled Dynamic Spatial-Temporal Graph Neural Network for Traffic Forecasting
    07.智慧商城——商品详情页、加入购物车、拦截器封装token
    深入理解Git
    Python中的copy和deepcopy
  • 原文地址:https://blog.csdn.net/qq_42531954/article/details/139651057