Bionic Beaver 18.04 LTS に顔検出機能付き Shotwell をインストールする方法

Bionic Beaver 18.04 LTS に顔検出機能付き Shotwell をインストールする方法

私はGoogleフォトから移行しており、Shotwellの機能は本当に気に入っています。しかし、写真の管理方法を考えると、顔検出/認識は私にとって非常に重要です。このブログ投稿どうやらやり方は示されているようですが、私はこの分野の専門家ではないので、非常に漠然としていると思います。 試してみましたmeson buildが、手動でインストールした依存関係が大量にあり (そうしてはいけないのかもしれません)、そのうちの 1 つが apt システムを台無しにしました (最終的には、ソフトウェア アプリ内の他のすべてのソフトウェアを削除し、不要なパッケージと依存関係を削除する dist-upgrade を実行することで修正しました)。

これを実行するためのより詳細な手順ガイドはありますか?私はShotwellが大好きですが、しなければならない顔検出機能があります(ベータ版であることは知っていますが、機能することを証明するビデオを見ました)。

(digiKamを使うこともできるのは分かっていますが、本当にショットウェルのように!)

答え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

注: 私の投稿は現在作成中であり、編集は受け付けられます。

更新: 望みがなくなってきました。opencv のインストール方法や、OpenFace から前述の DNN モデルを取得する方法がわかりません。

答え2

これは回避策に近いですが、Shotwell の Unstable flatpak をインストールすることで、いくつかの簡単な手順で faces 機能を動作させることができます (現在喜んで使用しているため、そのことはわかっています)。

手順:

  1. Flathubをインストールする
  2. 公式ページへショットウェルの建築と設置ページ
  3. 「不安定版をインストール」というボタンをクリックします
  4. 現在のページの URL (リンク) をコピーします (ボタンをクリックした後)。執筆時点でのリンクは次のとおりです: "https://gitlab.gnome.org/GNOME/shotwell/raw/master/flatpak/org.gnome.Shotwell.unstable.flatpakref
  5. ターミナルを起動して実行しますflatpak install https://gitlab.gnome.org/GNOME/shotwell/raw/master/flatpak/org.gnome.Shotwell.unstable.flatpakref(sudo 管理者権限が必要になる場合があります - どうやら sudo パスワードを入力する必要はなかったようです - と入力してインストールプロンプトを受け入れる必要がありますy)
  6. 待って... (忍耐は美徳:-))
  7. アプリケーションの表示ボタンをクリックし、「(不安定な) Shotwell」をクリックします。
  8. できました! いくつかの画像をインポートし、1 つの画像を選択して、成功の栄光に浸りましょう - 下部のバーに新しい「顔」オプションが表示されます (注: 不安定なバージョンをインストールしたときに、安定バージョンが削除されたため、現在は不安定な Shotwell のみになっています - ただし、少なくとも顔検出はあります yahoo!!!)

注: もちろん、この機能はまだ開発中なので、Shotwell はカーテン (またはドア) を顔と認識する可能性があります。また、写真ライブラリをスキャンして顔を自動的にタグ付けする明確なオプションはありませんが、少なくとも機能はあります。

関連情報