日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux(debian系列)和 Windows 10配置seetaface6

發布時間:2024/1/1 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux(debian系列)和 Windows 10配置seetaface6 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

seetaface6依賴于opencv,另外我們需要界面,所以也需要Qt(你也可以選擇其他的)。

這里的目標是配置好環境,能夠編譯并運行seetaface6給的demo。

那個demo中用到了sqlite數據庫,所以我們還需要安裝sqlite。

總的來說就是以下步驟:

  • 編譯并安裝OpenCV
  • 編譯并安裝seetaface6
  • 安裝Qt
  • 安裝sqlite和sqlite開發包
  • 編譯運行seetaface_demo
  • 一、安裝OpenCV

    安裝依賴:

    apt install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libatlas-base-dev gfortran libgtk2.0-dev libjpeg-dev libpng-dev

    如果不安裝這些依賴,可能會出現例如無法識別jpg圖片、無法打開mp4文件等問題,而且要在編譯前安裝好。

    這里用官網給的步驟即可,目前最新的是opencv4.7,由于需要人臉識別,所以我們需要安裝opencv_contrib模塊。
    https://docs.opencv.org/4.x/d7/d9f/tutorial_linux_install.html

    # Install minimal prerequisites (Ubuntu 18.04 as reference) sudo apt update && sudo apt install -y cmake g++ wget unzip # Download and unpack sources wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.x.zip unzip opencv.zip unzip opencv_contrib.zip # Create build directory and switch into it mkdir -p build && cd build # Configure cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.x/modules ../opencv-4.x # Build cmake --build .

    注意,默認安裝路徑是/usr/local。

    • 頭文件在/usr/local/include/opencv4
    • 鏈接庫在/usr/local/lib
    • cmake文件在/usr/local/cmake。

    我們知道這三個就夠了??梢杂?D CMAKE_INSTALL_PREFIX=來指定安裝路徑。
    這里假定為默認路徑/usr/local。

    如果你不想自己編譯,可以用我打包好的:
    https://github.com/sixsixQAQ/opencv4-dev

    $dpkg --info opencv4-dev.deb新格式的 Debian 軟件包,格式版本 2.0。大小 16311436 字節:主控包=380 字節。265 字節, 9 行 control Package: opencv4-devVersion: 1.0Architecture: amd64Maintainer: sixqaq@outlook.comDescription: OpenCV4 development package with opencv-contrib module.binary: /usr/local/binincludes: /usr/local/include/opencv4lib: /usr/local/libshare: /usr/local/share

    二、編譯安裝seetaface6

    1. 去github找到seetafce6,這個只是個是demo,我們先不管它

    2. 根據提示,seetaface6源碼在SeetaFace6Open

    3. 根據提示下載

    git clone --recursive https://github.com/SeetaFace6Open/index.git

    4. 編譯

    然后會有一個index文件夾,我們需要挨個模塊編譯:按個進入它們的craft文件夾,運行build.linux.x64.sh。
    但是編譯有順序要求,否則有的會無法編譯通過。
    這里給個編譯腳本:

    #!/bin/bashmodules="OpenRoleZoo SeetaAuthorize TenniS FaceBoxes FaceRecognizer6 FaceTracker6 Landmarker PoseEstimator6 QualityAssessor3 SeetaAgePredictor SeetaEyeStateDetector SeetaGenderPredictor SeetaMaskDetector FaceAntiSpoofingX6"for dir in $modules docd $dir/craftbash build.linux.x64.shcd - done

    編譯得到的東西在index/build,里面有頭文件、鏈接庫、.cmake文件,是我們開發和編譯demo需要的。

    5.配置路徑/安裝

    你需要將編譯出的文件配置到位,放到/usr/lib、/usr/incldue等位置(這樣弊端是卸載不方便),或者在你的項目構建文件中填寫頭文件路徑、鏈接庫路徑(弊端是比較繁瑣,不方便遷移),否則會找不到文件。

    我的做法是把它打包成.deb(推薦),方便安裝和卸載:https://github.com/sixsixQAQ/seetaface6-dev

    $dpkg --info seetaface6-dev.deb新格式的 Debian 軟件包,格式版本 2.0。大小 5529512 字節:主控包=360 字節。226 字節, 9 行 control Package: seetaface6-devVersion: 1.0Architecture: amd64Maintainer: sixqaq@outlook.comDescription: seetaface6 development package.binary: /usr/binheaders: /usr/includelib: /usr/lib/seetaface6cmake: /usr/lib/cmake

    你也可以自己打包,很簡單,教程參見:如何制作deb包

    三、安裝Qt5

    由于demo用的是qt5,所以要安裝qt5。
    安裝:略。
    建議:完美解決QT在線安裝太慢

    四、配置sqlite

    apt install sqlite3 libsqlite3-dev

    這里sqlite3是命令行工具,-dev的是開發包,我們兩個都需要。

    五、編譯運行seetaface6-demo

    1.修改pro文件

    刪除seetaface6-demo中的.pro.user文件,然后用qt creator打開.pro文件,把Qt5勾上來重新配置項目。
    這個demo用的qmake,我們需要修改那個.pro文件,這里只求在linux運行即可,所以我把windows的全刪除了。
    seetaface6-dev包中把seetaface6鏈接庫安裝到了/usr/lib/seetaface6,修改一下頭文件路徑和鏈接庫路徑即可。

    #------------------------------------------------- # # Project created by QtCreator 2020-03-16T14:40:38 # #-------------------------------------------------QT += core gui sql greaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = seetaface_demo TEMPLATE = app# The following define makes your compiler emit warnings if you use # any feature of Qt which has been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \mainwindow.cpp \videocapturethread.cpp \inputfilesprocessdialog.cpp \resetmodelprocessdialog.cppHEADERS += \mainwindow.h \videocapturethread.h \inputfilesprocessdialog.h \resetmodelprocessdialog.hforms += \mainwindow.ui#linux: INCLUDEPATH += /usr/local/include/opencv4#OpenCV的鏈接庫安裝路徑,這里是/usr/local/lib LIBS += -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs #seetaface6鏈接庫的路徑,這里是/usr/lib/seetaface6 LIBS += -L/usr/lib/seetaface6 -lSeetaFaceDetector600 -lSeetaFaceLandmarker600 \-lSeetaFaceAntiSpoofingX600 -lSeetaFaceTracking600 -lSeetaFaceRecognizer610 \-lSeetaQualityAssessor300 -lSeetaPoseEstimation600 -lSeetaAuthorize -ltennisRESOURCES += \face_resource.qrc

    2.下載模型

    github上有模型的鏈接,下載、解壓,并放到你的Qt構建目錄下,重命名為models,

    3.運行

    點擊綠三角運行。

    建議:沒攝像頭的買個攝像頭。

    Windows 10 下配置

    由于我主力系統是Linux,所以在配置Windows時遇到一些麻煩,淺講一下Windows。

    主要講那個怎么構建。

    為了使用shell,我使用cygwin來構建(你也可以用git-bash,差不多,但是MSYS有點小麻煩,需要自己再加PATH變量)。

    看這個腳本(前面Linux給出的),

    #!/bin/bashmodules="OpenRoleZoo SeetaAuthorize TenniS FaceBoxes FaceRecognizer6 FaceTracker6 Landmarker PoseEstimator6 QualityAssessor3 SeetaAgePredictor SeetaEyeStateDetector SeetaGenderPredictor SeetaMaskDetector FaceAntiSpoofingX6"for dir in $modules docd $dir/craftbash build.linux.x64.shcd - done

    我們將其中的bash build.linux.x64.sh換成./build.win.vc14.x64.cmd,主要必須有./,不然cygwin和git-bash不會將它當作windows腳本解析。

    然而,僅僅說這樣還不夠,
    我們打開一個build.wn.vc14.x64.cmd為例看一下:

    @echo offset "BUILD_DIR=build.win.vc14.x64" set "BUILD_TYPE=Release" set "PLATFORM=x64" set "PLATFORM_TARGET=x64"set "ORZ_HOME=%~dp0/../../build"set "INSTALL_DIR=%~dp0/../../build"call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" %PLATFORM%cd %~dp0md "%BUILD_DIR%"cd "%BUILD_DIR%"md "%INSTALL_DIR%"cmake "%~dp0.." ^ -G"NMake Makefiles JOM" ^ -DCMAKE_BUILD_TYPE="%BUILD_TYPE%" ^ -DCONFIGURATION="%BUILD_TYPE%" ^ -DPLATFORM="%PLATFORM_TARGET%" ^ -DORZ_ROOT_DIR="%ORZ_HOME%" ^ -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%" ^ -DCMAKE_MODULE_PATH="" ^ -DSEETA_AUTHORIZE=OFF ^ -DSEETA_MODEL_ENCRYPT=ONjom -j16 installexit /b

    注意,里面的-G"NMake Makefiles JOM"。我的情況是只安裝了最新的VS2022,它里面只有NMake,沒有這個叫JOM的東東。

    起初嘗試把-G換成去掉,或者換成NMake Makefiles,結果發現似乎沒有編譯的痕跡,嘗試用cmake --build .,印象里好像會報錯來著,而且無法用cmake --install 來安裝。

    心想一定有個底層的構建工具來完成它,找了半天才知道VS的構建工具是MSBuild。
    一次完整的構建過程:

    cmake ../ -DCMAKE_INSTALL_PREFIX=../../../BUILD ... msbuild.exe ALL_BUILD.vcxproj msbuild.exe INSTALL.vcxproj

    可以msbuild /m:8使用八線程編譯,雖然聽說不一定有效。

    我們可以在程序菜單中打開Visual Studio的命令行終端來使用MSBuild,但是這樣就不能借助強大的Linux shell,如果你不嫌棄,可以這樣一個一個地改下去:

  • 進入一個模塊的craft(例如 OpenRoleZoo)
  • 修改buildXXX.cmd中的-G"XXX",把-G那行取掉,讓它自動選擇Visual Studio作為Generator(如果沒有,請手動指定)。
  • 將jom -16 install改為msbuild.exe ALL_BUILD.vcxproj、msbuild.exe INSTALL.vcxproj
  • 如果你想借助shell,那么這樣:
    在所有模塊文件夾目錄外執行下面的腳本來替換,由于\r\n、\n的問題,替換時有些差異(注意你用的哪個替換腳本,就用哪個來構建,不要混用):
    如果你使用git-bash:

    for file in `find -name build.win.vc14.x64.cmd` dosed -i ':a;N;s/-G\"NMake Makefiles JOM\" \^\n//g;ta' $filesed -i 's/jom -j16 install/msbuild.exe \/m:8 ALL_BUILD.vcxproj\nmsbuild.exe \/m:8 INSTALL.vcxproj/g' $file done

    如果你使用cygwin:

    for file in `find -name build.win.vc14.x64.cmd` dosed -i ':a;N;s/-G\"NMake Makefiles JOM\" \^\r\n//g;ta' $filesed -i 's/jom -j16 install/msbuild.exe \/m:8 ALL_BUILD.vcxproj\r\nmsbuild.exe \/m:8 INSTALL.vcxproj/g' $file done

    替換后的文件類似下面:

    @echo offset "BUILD_DIR=build.win.vc14.x64" set "BUILD_TYPE=Release" set "PLATFORM=amd64" set "PLATFORM_TARGET=x64"set "WITH_SSL=OFF"set "INSTALL_DIR=../../../build"call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" %PLATFORM%cd %~dp0md "%BUILD_DIR%"cd "%BUILD_DIR%"md "%INSTALL_DIR%"cmake "%~dp0.." ^ -DCMAKE_BUILD_TYPE="%BUILD_TYPE%" ^ -DPLATFORM="%PLATFORM_TARGET%" ^ -DORZ_WITH_OPENSSL="%WITH_SSL%" ^ -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%"msbuild.exe /m:8 ALL_BUILD.vcxproj msbuild.exe /m:8 INSTALL.vcxprojexit /b

    替換完成后,在頂層執行構建腳本:
    (構建之前,和Linux一樣,記得在OpenRoleZoo那個文件里加上#include <functional>)

    #!/bin/bashmodules="OpenRoleZoo SeetaAuthorize TenniS FaceBoxes FaceRecognizer6 FaceTracker6 Landmarker PoseEstimator6 QualityAssessor3 SeetaAgePredictor SeetaEyeStateDetector SeetaGenderPredictor SeetaMaskDetector FaceAntiSpoofingX6"for dir in $modules docd $dir/craft./build.win.vc14.x64.cmdcd - done

    總結

    以上是生活随笔為你收集整理的linux(debian系列)和 Windows 10配置seetaface6的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。