Estoy haciendo la transición de Google Photos y realmente me gustaron las funciones de Shotwell. Sin embargo, la detección/reconocimiento de rostros es muy importante para mí debido a cómo administro mis fotos. yo viesta publicación de blogeso aparentemente muestra cómo hacerlo, pero en mi opinión es muy vago ya que no soy exactamente un experto en esta área. Intenté hacerlo, meson build
pero había un montón de dependencias que instalé manualmente (¿tal vez no se suponía que debía hacer eso?) y una de ellas arruinó mi sistema apt (terminé de arreglarlo eliminando todo el resto del software en la aplicación Software y haciendo una actualización dist que eliminó paquetes y dependencias innecesarios).
¿Existe una guía más paso a paso para hacer esto? Me gusta mucho Shotwell perodebetiene la función de detección de rostros (sé que está en versión beta, pero vi un video que demuestra que funciona).
(Sé que podría usar digiKam pero noen realidadcomo Shotwell!)
Respuesta1
Esto es lo que podrías hacer:
# 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
Nota: mi publicación es WIP y se aceptarán modificaciones.
Actualización: estoy perdiendo la esperanza, no puedo entender cómo instalar opencv y cómo obtener los modelos DNN mencionados de OpenFace.
Respuesta2
Esto es más bien una solución alternativa, peroesEs posible hacer que la función de caras funcione en unos simples pasos instalando el Flatpak Unstable de Shotwell (¡lo sé porque lo estoy usando felizmente ahora mismo!).
Pasos:
- Instalar Flathub
- ir a oficialShotwell construcción e instalaciónpágina
- Haga clic en el botón que dice "Instalar Unstable"
- Copie la URL (enlace) de la página actual (después de hacer clic en el botón). Al momento de escribir este artículo, el enlace es: "https://gitlab.gnome.org/GNOME/shotwell/raw/master/flatpak/org.gnome.Shotwell.unstable.flatpakref"
- Encienda su terminal y ejecútelo
flatpak install https://gitlab.gnome.org/GNOME/shotwell/raw/master/flatpak/org.gnome.Shotwell.unstable.flatpakref
(es posible que necesite derechos de administrador de sudo; aparentemente no tuve que ingresar mi contraseña de sudo, y deberá aceptar el mensaje de instalación escribiendoy
) - Esperar... (La paciencia es una virtud:-))
- Haga clic en el botón Mostrar aplicaciones y haga clic en "(Unstable) Shotwell"
- ¡Voilá! Importe algunas imágenes, seleccione una sola imagen y disfrute de la gloria de su éxito: una nueva opción "Caras" en la barra inferior (Nota: cuando instalé la versión inestable, eliminó la versión estable, por lo que ahora solo tengo Unstable Shotwell - pero al menos hay detección de rostros ¡¡¡yay!!!)
Nota: Por supuesto, dado que esta función sigue siendo un WIP, Shotwell podría pensar que su cortina es una cara (o, de hecho, su puerta), y no hay opciones obvias para escanear su biblioteca de fotos y etiquetar caras automáticamente, pero bueno - ¡al menos está ahí!