py-image-feature-extractor

This package provides implementations of different methods to perform image feature extraction


Keywords
image-processing, feature-extraction, cnn-keras, lbp, bag-of-visual-words, image-feature-detection
Install
pip install py-image-feature-extractor==0.1.1

Documentation

Py Image Feature Extractor

Index

  1. Overview
  2. Requirements
  3. Installation
  4. Tests
  5. Run

Overview

This package provides implementations of different methods to perform image feature extraction. These methods are though a Python package and a command line interface. Available feature extraction methods are:

  • Convolutional Neural Networks
    • VGG-19
    • ResNet-50
    • DenseNet-50
    • Custom CNN through .h5 file
  • Linear Binary Patterns Histograms (LBPH)
  • Bag of Features (bag-of-visual-words)
    • SIFT
    • SURF
    • KAZE

At the notebooks folder, some proofs-of-concept related to feature extraction and image classification may be found.

Requirements

System requirements:

  • python >= 3.7.3
  • pip >= 19.1.1

All the package requirements are listed on the install_requires property within the setup.py.

Installation

This project may be installed as a python package using:

pip install .

Or using the PyPI package.

Tests

All the test suite has been developed using the pytest framework.

# All tests
pytest

# Unit tests of extractors module
pytest image_feature_extractor/tests/extractors

# Unit tests of models module
pytest image_feature_extractor/tests/models

# Validation tests
pytest image_feature_extractor/tests/validation

Run

Model

The package has a command-line entry point configured. This entry point is built using the library Click. To get all the possible commands, use image_feature_extractor --help.

# Example to perform feature extraction using a pre-trained VGG-19
image_feature_extractor extract --deep --src imgs/train --dst vgg19_train.csv --cnn vgg19 --size 200

# Example to perform feature extraction using LBPs
image_feature_extractor extract --lbp --src imgs/train --dst vgg19_train.csv --detector kaze vgg19 --k 100 --size 200 --export --vocabulary-route vocabulary.npy

# Example to perform feature extraction using bag-of-features with KAZE keypoint detector
image_feature_extractor extract --bow --src imgs/train --dst vgg19_train.csv --points 8 --radius 1 --grid 8 --size 200