Bionic Beaver 18.04 LTS에서 얼굴 감지 기능이 있는 Shotwell을 설치하는 방법

Bionic Beaver 18.04 LTS에서 얼굴 감지 기능이 있는 Shotwell을 설치하는 방법

Google 포토에서 전환 중인데 Shotwell의 기능이 정말 마음에 들었습니다. 하지만 사진을 관리하는 방식 때문에 얼굴 감지/인식은 나에게 매우 중요합니다. 나는 보았다이 블로그 게시물분명히 어떻게 해야 하는지 보여주지만, 제가 이 분야의 전문가가 아니기 때문에 매우 모호한 IMO입니다. 나는 그 일을 시도했지만 meson build내가 수동으로 설치한 수많은 종속성이 있었고(어쩌면 그렇게 해서는 안 됐을 수도 있지 않을까?) 그 중 하나가 내 적절한 시스템을 망쳤습니다(소프트웨어 앱에서 다른 모든 소프트웨어를 제거하여 문제를 해결했습니다. 불필요한 패키지와 종속성을 제거하는 dist-upgrade 수행).

이 작업을 수행하는 데 대한 자세한 단계별 가이드가 있습니까? 저는 Shotwell을 정말 좋아하지만~ 해야 하다얼굴 감지 기능이 있습니다(베타 버전인 것은 알고 있지만 작동한다는 것을 증명하는 비디오를 봤습니다).

(digitKam을 사용할 수 있다는 것을 알고 있지만정말샷웰처럼요!)

답변1

당신이 할 수 있는 일은 다음과 같습니다:

# Downloads will be our workspace
cd ~/Downloads

# prepare the terrain by removing unwanted divs
sudo apt remove shotwell gir1.2-gexiv2-0.11 -y
# install dependencies (takes about 30 mins to complete)
sudo apt install unzip meson valac libgphoto2-dev libgudev-1.0-dev \
libgee-0.8 libgtk-3-dev gir1.2-gexiv2-0.10 libgexiv2-2 libwebkit2gtk-4.0 \
libgstreamer1.0-0 libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev \
gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc \
gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 \
gstreamer1.0-qt5 gstreamer1.0-pulseaudio libraw-dev build-essential \
build-essential checkinstall cmake pkg-config yasm gfortran gstreamer1.0-tools \
libjpeg8-dev libpng-dev software-properties-common libjasper1 libtiff-dev \
libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine2-dev \
libv4l-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgtk2.0-dev \
libtbb-dev qt5-default libatlas-base-dev libfaac-dev libmp3lame-dev libtheora-dev \
libvorbis-dev libxvidcore-dev libopencore-amrnb-dev libopencore-amrwb-dev \
libavresample-dev x264 v4l-utils libprotobuf-dev protobuf-compiler \
libgoogle-glog-dev libgflags-dev libgphoto2-dev libeigen3-dev libhdf5-dev \
doxygen python3-dev python3-pip \
-y
# install one package via pip
sudo -H pip3 install -U pip numpy
# continue install now that pip deps are met
sudo apt -y install python3-testresources

# python virtualenv creation
cd
python3 -m venv opencv-4.1.0-py3
source ~/opencv-4.1.0-py3/bin/activate
# now install python libraries within this virtual environment
pip install wheel numpy scipy matplotlib scikit-image scikit-learn ipython dlib
# quit virtual environment
deactivate

# some post install
cd /usr/include/linux
sudo ln -s -f ../libv4l1-videodev.h videodev.h
cd ~/Downloads

# fulfill opencv 4.1 dependency by building from source
# this won't work yet, working off of :
# https://www.learnopencv.com/install-opencv-4-on-ubuntu-18-04/
sudo apt build-dep opencv
cd ~/Downloads
wget -O opencv-4.1.0.zip https://github.com/opencv/opencv/archive/4.1.0.zip
unzip -q opencv-4.1.0.zip
cd opencv-4.1.0/build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D OPENCV_PYTHON3_INSTALL_PATH=~/opencv-4.1.0-py3/lib/python3.5/site-packages \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
make -j4
make install
cd build
cmake ..
cmake --build . --config Release
# still need to move built binary to usable space and declare it system-wide

# No idea how to do DNN models
# !!!

# fulfill exiv2 0.27 dependency by building from source
sudo apt build-dep exiv2
cd ~/Downloads
wget https://www.exiv2.org/builds/exiv2-0.27.1-Source.tar.gz
tar xf exiv2-0.27.1-Source.tar.gz
cd exiv2-0.27.1-Source/
cmake .
make
sudo make install

# fulfill libgexiv2-dev 0.12 dependency by building from source
sudo apt build-dep libgexiv2-dev
cd ~/Downloads
wget http://ftp.gnome.org/pub/GNOME/sources/gexiv2/0.12/gexiv2-0.12.0.tar.xz
tar xf gexiv2-0.12.0.tar.xz
cd gexiv2-0.12.0/
meson build
cd build
sudo meson install

# final build of shotwell with face detection
sudo apt build-dep shotwell
cd ~/Downloads
wget https://gitlab.gnome.org/nma83/shotwell/
\-/archive/wip/faces/shotwell-wip-faces.tar.gz
tar xzf shotwell-wip-faces.tar.gz
cd shotwell-wip-faces
meson configure -Dface-detection=true
meson build
cd build
sudo meson install

참고: 내 게시물은 WIP이므로 편집이 허용됩니다.

업데이트: 저는 희망을 잃고 있습니다. opencv를 설치하는 방법과 OpenFace에서 언급된 DNN 모델을 얻는 방법을 알 수 없습니다.

답변2

이는 해결 방법에 가깝지만~이다Shotwell의 Unstable flatpak을 설치하면 몇 가지 간단한 단계만으로 얼굴 기능이 작동하도록 할 수 있습니다(지금은 행복하게 사용하고 있기 때문에 알고 있습니다!).

단계:

  1. 플랫허브 설치
  2. 공식으로 이동Shotwell 구축 및 설치페이지
  3. "불안정 설치" 버튼을 클릭하세요.
  4. 현재 페이지의 URL(링크)을 복사합니다(버튼을 클릭한 후). 글을 쓰는 시점을 기준으로 링크는 다음과 같습니다: "https://gitlab.gnome.org/GNOME/shotwell/raw/master/platpak/org.gnome.Shotwell.unstable.platpakref"
  5. 터미널을 시작하고 실행합니다. flatpak install https://gitlab.gnome.org/GNOME/shotwell/raw/master/flatpak/org.gnome.Shotwell.unstable.flatpakref(Sudo 관리자 권한이 필요할 수 있습니다. 분명히 sudo 비밀번호를 입력할 필요가 없었으며 를 입력하여 설치 프롬프트를 수락해야 합니다 y.)
  6. 기다리다... (인내심은 미덕이다:-))
  7. 응용 프로그램 표시 버튼을 클릭하고 "(불안정한) Shotwell"을 클릭합니다.
  8. 짜잔! 일부 이미지를 가져오고, 단일 이미지를 선택하고, 성공의 영광을 누려 보세요. 하단 표시줄에 새로운 "얼굴" 옵션이 있습니다. (참고: 불안정한 버전을 설치했을 때 안정 버전이 제거되어 이제 Unstable Shotwell만 남습니다. 하지만 적어도 얼굴 인식 기능은 있습니다!!!)

참고: 물론 이 기능은 아직 WIP이므로 Shotwell은 커튼이 얼굴(또는 문)이라고 생각할 수 있으며 사진 라이브러리를 스캔하고 자동으로 얼굴에 태그를 지정하는 확실한 옵션이 없습니다. - 적어도 거기엔 있어요!

관련 정보