• linux 图像识别环境搭建过程以及问题记录


    系统制作

    取一个U盘用作做电脑linux系统。

    制作系统启动盘网址:

    https://www.cnblogs.com/coxiseed/p/9851459.html

    按照这个做的linux系统会起不来,提示错误,需要改动一下其中的步骤,如下入所示↓,选择红色剪头指向的选项即可。写入镜像后U盘控件会变成2兆大小,再次格式化重新换个选项即可恢复正常空间。

     

    进入系统后联网问题。

    这个网址有介绍:

    https://blog.csdn.net/yuanwuwei/article/details/114143789?spm=1001.2101.3001.6650.16&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-16.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-16.nonecase

    最后临时解决办法用手机连接数据线USB共享网络功能。

    系统版本要求

    Ubuntu  18及以上即可。测试使用的是Ubuntu  20.04。

    软件准备

    cuda和cudnn

    软件介绍

    用显卡计算需要安装cuda和cudnn来支持。没有则无需安装。

    先安装cuda,再安装对应版本的cudnn。

     

    安装步骤

    查看 cuda 版本命令:nvcc -V

    网址:Linux下安装cuda和对应版本的cudnn (1024sky.cn)

       严格按照下面得网址操作。提示相同,没有问题。本地文件夹中有cuda相关得压缩包。

    (23条消息) Ubuntu20.04 安装cuda和cudnn_Archy瞬的博客-CSDN博客_ubuntu20.04安装cuda和cudnn

    安装cuda命令:

    sudo sh cuda_9.0.176_384.81_linux.run

    cuda安装完成,输入nvcc -V命令查看cuda信息

    用到的文件↓:

    下面是官网下载介绍。公司网有时无法下载。也做个记录。

    Cuda下载:

    Cudnn下载(需要注册登录):

    cuDNN 下载|英伟达开发者 (nvidia.com)

     

    OpenCV

    软件介绍

    OpenCV是一个开源的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。提供了Python、Ruby、MATLAB等语言的接口,并且实现了图像处理和计算机视觉方面的很多通用算法,可以给开发者调用

    环境搭建

    安装opencv命令操作网址:按照下面的网址中命令进行编译。

    https://docs.opencv.org/4.5.4/d7/d9f/tutorial_linux_install.html

    需要注意的是下载的解压缩后要把.master的文件名放到主目录中。如下图所示↓

    opencv安装完毕编译成功。在ubuntu系统中测试是否安装成功↓

    cd opencv –版本号/samples/cpp/example_cmake

    cmake .

    make

    ./opencv_example

    安装问题整理

    安装编译Opencv会遇到很多问题。主要问题如图示例:

    问题记录都有总结和说明↓。

     ***************************************************************************************************************************************************************

    安装opencv命令操作网址:
    https://docs.opencv.org/4.5.4/d7/d9f/tutorial_linux_install.html
    最后安装cmake命令:
    由于 由 root 用户拥有,因此应使用提升的权限 () 执行安装:/usr/local sudo
    sudo make install
    相关命令:**********************************************************************
    查看cmake的版本:
    cmake --version
    查看当前路径命令:pwd
    Ubuntu查看OpenCV版本
    pkg-config --modversion opencv
    新建文件命令:
    sudo touch videoio.h
    执行命令测试:
    heng@ubuntu:~/opencv/build$ cmake --build .
    mkdir -p build && cd build
    cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-master/modules ../opencv-master
    编译完成,输入sudo make install 进行安装

    提示:tessearct相关:下载tessearct
    相关两个网址:
    https://copyfuture.com/blogs-details/20201208173533930bxpgaw7s24uhrwr
    https://blog.csdn.net/cleanarea/article/details/85846257

    1.$ cd ~ $ git clone https://github.com/tesseract-ocr/tesseract.git $ cd tesseract

    2.使用cmake重新编译,保证没有错误
    sudo ./autogen.sh
    编译命令:sudo ./configure
    提示error:Leption 1.74 or higher is required...
    编译命令:sudo apt-get install libleptionica-dev
    make
    sudo make install
    sudo make 最后有提示命令。
    暂时编译还提示找不到的话,先按照网址下载安装编译解决VTK问题。
    安装教程的命令,即可。再次编译,两者都找到了。

    JNI安装后重启才会生效。

    提示:# Module opencv_alphamat disabled because the following dependencies are not Found: Eigen3
    解决:sudo apt-get install libeigen3-dev

    提示: Module opencv_ovis disabled because OGRE3D was not found
    这里需要安装ogre3d,但是在安装它之前,需要先安装ois
    1)从git上下载
    sudo git clone https://github.com/ogre3d/OIS.git (提示无法访问的话多试几次,是网络的问题。)
    2)cmake一下,先新建build文件夹(cmake -H. -B.)
    然后执行sudo make命令

    完成 sudo make install
    3)git上下载
    https://github.com/OGRECave/ogre.git 安装命令同上。
    从github上下载ceres-solver
    git clone https://github.com/ceres-solver/ceres-solver.git
    重新编译,记得在build文件中运行sudo make 然后 sudo make install 安装命令同上。
    可能出现问题:fatal error:pugixml.hpp:没有那个文件或目录
    sudo apt-get install libpugixml-dev
    # google-glog + gflags
    sudo apt-get install libgoogle-glog-dev
    # BLAS & LAPACK
    sudo apt-get install libatlas-base-dev
    sudo add-apt-repository ppa:bzindovic/suitesparse-bugfix-1319687
    sudo apt-get update
    sudo apt-get install libsuitesparse-dev
    编译提示:imgcodes:OpenEXR codec is disabled in runtime.Details:http://git......
    解决:sudo apt-get install libopenexr-dev zlib1g-dev
    sudo apt install python3-pip
    pip install OpenEXR
    问题:提示libva.h找不到head(大概)
    http://www.mamicode.com/info-detail-175931.html
    解决:
    $ git clone git://anongit.freedesktop.org/wayland/wayland
    $ cd wayland(看里面的readme文件编译 重启就好了。)
    $ ./autogen.sh --prefix=$WLD
    $ make && make install
    $ cd .
    提示找不到BLAS, Atlas, LAPACK:
    一定要按照网址提示安装。仔细一点,确定编译成功,并把相关得库文件考到对应目录。卡了两天
    https://copyfuture.com/blogs-details/20201208173533930bxpgaw7s24uhrwr
    cblas 文件夹中:Makefile.in 中BLLIB = libblas.a 需要加完全路径。/usr/local/lib/libblas.a
    Lapack文件夹中:make.inc中 末尾:也都加相应路径:/usr/local/lib/XXX.a
    编译失败记得make clean 再重新编译。
    相关命令:**********************************************************************
    问题:CMake Error at CMakeLists.txt:3 (project):
    No CMAKE_CXX_COMPILER could be found.
    原因:缺库
    解决:
    sudo apt-get update
    sudo apt-get install -y build-essential

    opencv编译安装--踩坑。先看这几个!!
    https://blog.csdn.net/cleanarea/article/details/85846257

    https://copyfuture.com/blogs-details/20201208173533930bxpgaw7s24uhrwr

    https://blog.csdn.net/sheqianweilong/article/details/102646929

    在下载的过程中,我们可以添加opencv所需要的依赖库:
    sudo apt-get install build-essential
    sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
    sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
    错误:*********************************************************************************************************************************
    提示-:-------------- Looking for ccache -not found
    解决命令-:----------sudo apt-get install ccache
    提示-:-------------- Could NOT find HDF5
    解决命令-:----------sudo apt-get install libhdf5-dev

    安装python 命令 要不编译opencv 报错1.
    sudo apt-get install python-dev
    安装libgtk3库.要不编译opencv 报错2.
    sudo apt-get install libgtk-3-dev
    安装gtk2.0.要不编译opencv 报错3.
    sudo apt-get install libgtk2.0-dev
    安装aptitude命令:报错4.
    sudo apt-get install aptitude
    安装下列包命令:报错5.
    sudo aptitude install libavcodec-dev libavformat-dev libswscale-dev libavutil-dev
    安装下列包命令:报错6.
    sudo apt-get install libjpeg-dev
    安装下列包命令:报错7.
    Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR)
    sudo apt-get install libtiff5-dev

    https://www.cnblogs.com/rohens-hbg/p/12326084.html
    问题1:
    E: Unable to locate package libjasper-dev

    解决方法:
    https://blog.csdn.net/weixin_41053564/article/details/81254410

    sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
    sudo apt update
    sudo apt install libjasper1 libjasper-dev
    成功的解决了问题,其中libjasper1是libjasper-dev的依赖包

    问题2:
    No package 'gstreamer-base-1.0' found
    解决方法:
    https://stackoverflow.com/questions/37678324/compiling-opencv-with-gstreamer-cmake-not-finding-gstreamer
    sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
    问题3:
    No package 'libavresample' found
    解决方法:
    sudo apt-get install libavresample-dev
    问题4:
    No package 'libgphoto2' found
    解决方法:
    sudo apt-get install libgphoto2-dev
    问题5:
    IPPICV: Download failed: 7;"Couldn't connect to server"
    解决方法:
    问题6:
    Could not find OpenBLAS include. Turning OpenBLAS_FOUND off
    -- Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off
    -- Could NOT find Atlas (missing: Atlas_CBLAS_INCLUDE_DIR Atlas_CLAPACK_INCLUDE_DIR Atlas_CBLAS_LIBRARY Atlas_BLAS_LIBRARY Atlas_LAPACK_LIBRARY)
    -- A library with BLAS API not found. Please specify library location.
    -- LAPACK requires BLAS
    -- A library with LAPACK API not found. Please specify library location.
    -- Could NOT find JNI (missing: JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)
    -- Could NOT find Matlab (missing: MATLAB_MEX_SCRIPT MATLAB_INCLUDE_DIRS MATLAB_ROOT_DIR MATLAB_LIBRARIES MATLAB_LIBRARY_DIRS MATLAB_MEXEXT MATLAB_ARCH MATLAB_BIN)
    -- VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file
    CMake Error at cmake/OpenCVModule.cmake:288 (message):
    No modules has been found:
    /home/program/opencv-3.4.2/opencv_contrib-3.4.0/modules
    Call Stack (most recent call first):
    cmake/OpenCVModule.cmake:368 (_glob_locations)
    modules/CMakeLists.txt:7 (ocv_glob_modules)
    解决方法:
    sudo apt-get install libopenblas-dev
    https://blog.sciencenet.cn/blog-3233813-1001369.html
    问题7:
    fatal error: linux/videodev.h: No such file or directory
    fatal error: sys/videoio.h: No such file or directory

    问题8:No package 'libdc1394' found 已解决
    sudo apt-get install libdc1394-22-dev

    无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),请查看您是否正以 root 用户运行?
    解锁命令:heng@ubuntu:~$ sudo rm /var/lib/dpkg/lock-frontend
    问题9:-- Could NOT find JNI (missing: JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)
    https://www.cnblogs.com/renfu/p/12898040.html

    解决编译opencv时,卡在IPPICV: Download: ippicv_2020_lnx_intel64_20191018_general.tgz
    https://blog.csdn.net/qq_43478260/article/details/109458079
    IPPICV: Download failed: 37;"Couldn't read a file:// file"
    这里就要注意ippicv.cmake文件中,这一句:
    if(X86_64)
    set(OPENCV_ICV_NAME "ippicv_2020_lnx_intel64_20191018_general.tgz")
    的("ippicv_2020_lnx_intel64_20191018_general.tgz")是否与你下载的压缩包文件名称是否一致。
    压缩包放在下列路径下方。
    "file:///home/test/download/
    "file:///home/heng/ippicv_2020/"
    配置不完整,出现错误!
    Configuring incomplete, errors occurred!
    错误:*********************************************************************************************************************************
    安装 opencv 所需依赖包
    https://blog.csdn.net/weixin_41896508/article/details/80795239

    *******************************************************************************************************************************************************************

    相关需要下载的文件已经保存在文件夹中:↓用到的文件用红色圈画出来了。其他是出问题的文件做个保留,出现问题会用的到。

    编译最后提示Configuring done、Generating done、-- Build files have been written to: /home/heng/build即完成。

    到此opencv配置完成。

    Darknet框架

    介绍

    darknet是一个较为轻型的完全基于C与CUDA的开源深度学习框架,其主要特点就是容易安装,没有任何依赖项(OpenCV都可以不用),移植性非常好,支持CPU与GPU两种计算方式。

    安装步骤和相关命令

    yolov3安装过程和和相关命令

    Linux 直接从网上git下载。

    git clone https://github.com/pjreddie/darknet.git

    cd darknet

    make

    运行命令:

    ./darknet

    您应该得到输出:usage: ./darknet <function>
    说明此此时darknet成功安装。

    测试命令:

    ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

    会在文件夹生成一个“prediction.jpg”图片。有opencv会自动弹出窗口。

    Yolov4安装过程和和相关命令

    https://blog.csdn.net/weixin_44771532/article/details/105495755

    首先把代码下载下来,可以用下面命令下载。

    git clone https://github.com/AlexeyAB/darknet.git

    1.编译

    如果需要使用GPU加速,那么得打开项目里面的makefile文件修改一些参数的值。修改完成之后在直接make。
    GPU=1
    CUDNN=1
    CUDNN_HALF=1
    OPENCV=1
    OPENMP=1
    LIBSO=1
    DEBUG=1

    # cd到darknet-master目录下

    make

    或者 make -j8

    2.测试一下开源权重

    # 测试图片,结果保存在darknet-master/predictions.jpg

    ./darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jpg

    3.准备自己要训练的数据集,以voc数据集的格式存放

     

    先按照上面格式准备好数据
    Annotations是存放标签xml文件
    JPEGImage 存放图片
    ImageSets 里面txt按行存放着图片名字

    000001
    000002
    000003…

    4.制作yolov4需要的label以及txt

    这个时候只用voc数据集的格式是不满足我们这里需要的格式。首先打开路径下 build/darknet/x64/data/voc/voc_label.py,修改voc_label.py里面的内容。

    先把7行的关于2012的去掉,再把第9行改成自己的类别。

     

    接着给每个路径前面加个data,如下图

     

     

    修改完了之后在主目录darknet-master下执行voc_label.py,否则哪些文件会生成在build/darknet/x64/data下面,执行完成后你会看到主目录下的data/目录下会生成几个txt。主目录darknet-master下的data/VOCdevkit/VOC2007/下面会生成一个label文件夹。

    5.修改配置文件

    <a.>cfg/目录下复制coco.data,并且重命名为obj.data。然后使用修改下面以下内容

     

    <b.>cfg/目录下复制coco.names,并且重命名为obj.names。改成自己类别的名称

     

    <c.>复制cfg/yolov4-custom.cfg,并且重命名为yolo-obj.cfg,同时修改一下内容

     

    上图中修改width和height为416,修改最大batch迭代多少个数max_batches = 6000,修改steps多久学习率下降一次,一般设置为batch个数的80%和90%。

    然后三个classes的地方要修改

     

    还有三个filters=255的地方要修改成自己的。

     

    6.开始训练自己的数据集

    ./darknet detector train cfg/obj.data cfg/yolo-obj.cfg yolov4.conv.137

    如若报错这个错误,则将cfg/yolo-obj.cfg 里面26行mosaic=1改成mosaic=0或者注释掉。没报错就忽略。

     

    下图为训练时的状态界面,红色圈内为剩余时间。

     

    7.预测

    ./darknet detector test cfg/obj.data cfg/yolo-obj.cfg yolo-obj_xxxx.weights

    相关软件介绍-labelImg

    识别训练过程需要标注工具标注图片。

    labelImg安装步骤

    Linux下载命令下图所示↓

    使用视频学习网址推荐:

    https://www.bilibili.com/video/BV1V44y1i7Av/

    linux labelImg打开命令:

    cd labelImg

    sudo make qt5py3

    python3 labelImg.py

    写的很详细。

    https://www.cnblogs.com/answerThe/p/11481564.html

    https://pjreddie.com/darknet/yolo/

    windows安装使用:

    本地文件夹中labelImg-master文件是windows图像标注工具。windows启动命令↓:

    Anaconda 是相关环境工具。

     

    Darknet 安装问题记录

    在darknet-master文件夹目录下,执行编译执行文件命令:./build.sh

    可能会提示:./build 找不到命令

    解决方式:鼠标右键build.sh文件,选择属性-权限-将允许执行文件(E)进行勾选,再次操作。

    提示:Couldn’t open file:data/XXXX

    一般就是文件路径写的有问题,设置成绝对路径:/home/user/darknet/data/XXXX.

    需要注意的是路径改成自己的路径。Python里路径格式为:

    C:\\Users\wz\Desktop\VOCdevkit\VOC2007      C:后面是两个\\。

    软件运行相关命令

    1、创建文件夹
    mkdir -p 文件夹名
    p 确保目录名称存在,不存在的就建一个。
    2、创建文件
    如:touch a.txt

    3、运行pthon文件命令

    python test.py

  • 相关阅读:
    6月29日训练 题解
    python笔记
    零样本和少样本学习
    基于图的 Affinity Propagation 聚类计算公式详解和代码示例
    pandas.read_csv() 处理 CSV 文件的 6 个有用参数
    100+数据科学面试问题和答案总结 基础知识和数据分析
    基于趋势和季节性的时间序列预测
    Github Copilot 值得购买吗?使用GitHub Copilot进行快速EDA的示例
    ArgMiner:一个用于对论点挖掘数据集进行处理、增强、训练和推理的 PyTorch 的包
    一个简单但是能上分的特征标准化方法
  • 原文地址:https://www.cnblogs.com/shuaiheng/p/15882775.html
Copyright © 2020-2023  润新知