Socket
Socket
Sign inDemoInstall

image-classifier-ts

Package Overview
Dependencies
165
Maintainers
1
Versions
59
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    image-classifier-ts

Command line tool to auto-classify images, renaming them with appropriate labels. Uses Node and Google Vision API.


Version published
Weekly downloads
11
increased by266.67%
Maintainers
1
Install size
92.9 MB
Created
Weekly downloads
 

Readme

Source

:camera: image-classifier-ts readme

Command line tool to auto-classify images, renaming them with appropriate address and labels. Uses Node.js and the Google Geocoding and Vision APIs.

status - stable

image-classifier-ts is stable, with ongoing development (tested on Windows, Ubuntu Linux) following semantic versioning.

node

Dependencies

npm Package NPM Downloads

styled with prettier semantic-release

License: MIT

ko-fi

why?

The project was started as a way to avoid depending on particular photo software such as Picasa, and also to save time spent on sorting tons of photos!

dependencies

  • Node 10.18.0 or higher
  • Yarn

dependencies for Windows

We use sharp to resize images during processing. sharp requires node-gyp to build, so you will need to install Microsoft's windows-build-tools using this command:

npm install --global --production windows-build-tools

features

  • process multiple image files and move them to a configurable folder, using a flexible filename template
  • auto classify the image using the Google Vision API
  • determine geographic location (address) of an image using the Google Geocoding API
  • the output filename can include date, dimensions, file size as well as labels and adress provided by Google
  • can take geographic locations from mobile photos and apply them to photos taken with a non-GPS device (matching by closest time for that date)
  • supports JPEG, PNG file formats

usage - as cli (command line tool)

1 Configure your Google API key

see configure Google APIs.

2 Classify (label) your images

note: the processed images will be moved to the output directory. so you may want to point 'input directory' to a copy of your images directory.

3 ways to run

You can run image-classifier-ts in one of three ways:

  • a) as a globally installed command line tool (this is the easiest way)
  • OR b) as an npm package inside an npm project
  • OR c) from the source code
a) install globally as a command line tool

npm i -g image-classifier-ts@latest --production

on Ubuntu, you may need administrator permissions via sudo:

sudo npm i -g image-classifier-ts@latest --production

To use:

image-classifier-ts <path to image directory> <path to output directory> [-filenameFormat=<file name format>]

OR b) from the npm package

Install inside your npm project:

yarn add image-classifier-ts

via bash script:

node_modules/image-classifier-ts/dist/lib/cli.js <input directory> <output directory>

OR via node:

node node_modules/image-classifier-ts/dist/lib/main <input directory> <output directory>

OR c) from the source code
yarn

On Windows: use a bash shell like git bash.

To test your installation:

./test.sh

To classify your images:

./go.sh <path to image directory> <path to output directory> [-filenameFormat=<file name format>]

example:

./go.sh ../myPhotos ../myPhotos-labelled

To have a 'dry run' where the images are not actually moved, use the 'dryRun' option:

./go.sh ../myPhotos ../myPhotos-labelled -dryRun

To see more detailed usage info:

./go.sh
example:
./go.sh ../my-photos -filenameFormat={year}/{location}/{topLabel}/{combinedLabels}-{fileSizeMb}-{width}x{height}--{filename}
advanced - specifying locations by date

You can specify locations for the photos, by date.

Do this by adding a file named mapDateToLocation.csv in the same folder as your images.

The approprite location description will be used when renaming the image files.

For an example, see mapDateToLocation.csv

note: if the location is unknown, and the filename format includes {location}, then the image will NOT be moved.

usage - as a library in a node based project

Install inside your npm project:

yarn add image-classifier-ts

Then in TypeScript, you can import the library:

import * as ic from "image-classifier-ts";

For a working example, see the library test harness.

sites

siteURL
source code (github)https://github.com/mrseanryan/image-classifier-ts
github pagehttps://mrseanryan.github.io/image-classifier-ts/
npmhttps://www.npmjs.com/package/image-classifier-ts

developing code in this repository

see the contributing readme.

origin

This project is based on the excellent seeder project typescript-library-starter.

libaries

image-classifier-ts uses the ExifReader library.

ORIGINAL readme (from the seeder project)

see here

authors

Original work by Sean Ryan - mr.sean.ryan(at gmail.com)

licence = MIT

This project is licensed under the MIT License - see the LICENSE file for details

Keywords

FAQs

Last updated on 18 Jan 2022

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc