Code Monkey home page Code Monkey logo

deepsort's Introduction

forthebadgeforthebadgeforthebadge

Build Status Go Report Card Codacy Badge

DeepSort

🧠 AI powered image tagger backed by DeepDetect

Why?

Because sometimes, you have folders full of badly named pictures, and you want to be able to understand what you have in your hard drive.

Prerequisites & installation

You need DeepDetect installed, the easiest way is using docker:

docker pull beniz/deepdetect_cpu
docker run -d -p 8080:8080 beniz/deepdetect_cpu

Right now, the only supported installation of DeepDetect that works with DeepSort is the deepdetect_cpu container, because it contain the good path for the pre-installed resnet-50 and googlenet models.

Then, download the latest DeepSort release from https://github.com/CorentinB/DeepSort/releases

Unzip your release, rename it DeepSort and make it executable with:

chmod +x DeepSort

Usage

DeepSort support few different parameters, you're obliged to fill two of them: --url or -u that correspond to the URL of your DeepDetect server. --input or -i that correspond to your local folder full of images.

For more informations, refeer to the helper:

./DeepSort --help

[-u|--url] is required
usage: deepsort [-h|--help] -u|--url "<value>" -i|--input "<value>"
                [-o|--output "<value>"] [-n|--network (resnet-50|googlenet)]
                [-R|--recursive] [-j|--jobs <integer>] [-d|--dry-run]

                AI powered image tagger backed by DeepDetect

Arguments:

  -h  --help       Print help information
  -u  --url        URL of your DeepDetect instance (i.e: http://localhost:8080)
  -i  --input      Your input folder.
  -o  --output     Your output folder, if output is set, original files will
                   not be renamed, but the renamed version will be copied in
                   the output folder.
  -n  --network    The pre-trained deep neural network you want to use, can be
                   resnet-50 or googlenet. Default: resnet-50
  -R  --recursive  Process files recursively.
  -j  --jobs       Number of parallel jobs. Default: 1
  -d  --dry-run    Just classify images and return results, do not apply.

Todo list

  • Getting docker out of the loop (each user install his own DeepDetect)
  • ResNet 50 integration
  • Output folder (copy and not rename)
  • NSFW tagging (Yahoo open_nsfw)
  • XMP metadata writing
  • GPU support

deepsort's People

Contributors

corentinb avatar riptl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

deepsort's Issues

I don't know how to use it next,in docker

Hello, I downloaded docker and executed docker run-d-p 8080:8080 beniz / deepdetect_cpu, but I don't know how to use it next. Thank you! DeepSort do I need to download it in docker?

Windows Path Issue

Hello it's me again :) Thanks for the work done since my last issue.
Turns out there are still path related issues under Windows. This time I digged a little deeper into the code.

Say my image folder is C:\Users\dnc1994\images.

  1. Since Windows path contains :, to mount a volume I have to use -v "/c/Users/dnc1994/images:/c/Users/dnc1994/images"
  2. DeepDetect service can be successfully started. Testing it using curl also works.
  3. Then in deepsort, by getting the absolute path of the input folder (
    inputFolder, _ := filepath.Abs(*input)
    ), arguments.Input will become C:\Users\dnc1994\images again.
  4. Container will not be able to use that path, as what exists is /c/Users/dnc1994/images.

I can see why you want to have same host & container path. My idea is that, if you were to keep a mapping of host path <-> container path, say we use -v "/c/Users/dnc1994/images:/images". Then when constructing the request for DeepDetect you can transform the host path into container path.

I also think it will help not only this issue but other future features (e.g. output folder you mentioned).

I understand that Windows path is a mess and this could involve a lot of work. So please take my proposal with a grain of salt. As I'm very new to Golang (only started this afternoon in order to debug your project under Windows, actually), if you want me to work on this I probably need some high level instructions.

Anyway I can always test this under Windows if you like! Many thanks.

Exit Status 125 on Windows 10

I'm using Docker Toolbox and PowerShell.

Searching for code 125 tells me that docker run itself fails. But I was able to start DeepDetect HTTP server if I only run docker run beniz/deepdetect_cpu.

Add possibility to add tags as exif metadata

Hi,
Thank you for your work it's very cool, It would be great to use all tags as exif metadata for better search on gallery software.
I try to implement it with "github.com/dsoprea/go-exif-knife/handler/write" but i'm quite noob with golang.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.