nextcloud / recognize

πŸ‘ πŸ‘‚ Smart media tagging for Nextcloud: recognizes faces, objects, landscapes, music genres
https://apps.nextcloud.com/apps/recognize
GNU Affero General Public License v3.0
561 stars 45 forks source link
ai face-recognition machine-learning media-services music music-genre-classification nextcloud object-recognition photos

Recognize: Smart media tagging for Nextcloud

Join the chat at https://gitter.im/marcelklehr/recognize

This app goes through your media collection and adds fitting tags, automatically categorizing your photos and music.

⚑ Tagging works via Nextcloud's Collaborative Tags

Model sizes:

Ethical AI Rating

Rating for Photo object detection: 🟒

Positive:

Rating for Photo face recognition: 🟒

Positive:

Rating for Video action recognition: 🟒

Positive:

Rating Music genre recognition: 🟑

Positive:

Negative:

Learn more about the Nextcloud Ethical AI Rating in our blog.

Examples

(Screenshot by @_DigitalWriter_)

Privacy

This app does not send any sensitive data to cloud providers or similar services. All image processing is done on your nextcloud machine, using Tensorflow.js running in Node.js, which comes bundled with this app.

Encryption

Note that end-to-end encrypted files are not possible to be processed by recognize, because the server by design cannot read them.

Categories

This is the list of recognized things and which categories they are currently mapped to. I'm happy to accept pull requests for this file to fine tune predictions.

Behind the scenes

Recognize uses

Learn more about what's going on behind the scenes in this wiki article and this forum post.

Install

Requirements

Tmp

This app temporarily stores files to be recognized in /tmp. If you're using docker, you might find that adding an additional volume for /tmp speeds things up and eases the burden on your disk:

⚠️⚠️⚠️ Make sure that your RAM is big enough to store big files. Otherwise public uploads will fail.

docker run: Add --mount type=tmpfs,destination=/tmp:exec to command line.

docker compose: Add the following to the volume section docker-compose.yml:

  app:
    image: nextcloud:26
    ...
    volumes:
      - type: tmpfs
        target: /tmp:exec
      ...
    ...

One click

Go to "Apps" in your nextcloud, search for "recognize" and click install.

Help: If one-click install fails

Configuration

Any configuration is done in Settings/Recognize of your Nextcloud instance.

Ignoring directories

If you want path/to/your/folder/* to be excluded from image recognition, add a file path/to/your/folder/.noimage. If you want to exclude it from music genre recognition, add a file path/to/your/folder/.nomusic. If you want to exclude it from video recognition, add a file path/to/your/folder/.novideo. If you want to exclude it from all recognition, add a file path/to/your/folder/.nomedia.

Manual install

Dependencies

Setup

cd /path/to/nextcloud/apps/
git clone https://github.com/marcelklehr/recognize.git
cd recognize
make

Maintainers

πŸ› οΈ State of maintenance

While there are some things that could be done to further improve this app, the app is currently maintained with limited effort. This means:

We would be more than excited if you would like to collaborate with us. We will merge pull requests for new features and fixes. We also would love to welcome co-maintainers.

If you are a customer of Nextcloud and you have a strong business case for any development of this app, we will consider your wishes for our roadmap. Please contact your account manager to talk about the possibilities.

Contribute

We always welcome contributions. Have an issue or an idea for a feature? Let us know. Additionally, we happily accept pull requests.

In order to make the process run more smoothly, you can make sure of the following things:

Please read the Code of Conduct. This document offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other.

More information on how to contribute: https://nextcloud.com/contribute/

Happy hacking :heart:

License

This software is licensed under the terms of the AGPL written by the Free Software Foundation and available at COPYING.

The recognize logo Smart tag by Xinh Studio from the Noun Project is licensed under a Creative Commons Attribution license.