Giter Site home page Giter Site logo

gkalliatakis / human-rights-archive-cnns Goto Github PK

View Code? Open in Web Editor NEW
8.0 4.0 0.0 2.88 MB

The Human Rights Archive CNNs for Human Rights Violations Classification

Python 97.55% JavaScript 0.32% CSS 1.56% HTML 0.57%
convolutional-neural-networks cnn-keras baseline-cnns keras embeddings image-classification human-rights-activists human-rights-violations image-dataset image-database

human-rights-archive-cnns's Introduction

Release of Human-Rights-Archive-CNNs Tweet

We release various convolutional neural networks (CNNs) trained on Human Rights Archive (HRA) to the public. HRA is the first verified-by-experts repository of human rights violations photographs, labelled with human rights semantic categories, comprising a list of the types of human rights abuses encountered at present.

Data of Human Rights Archive

Here we release the data of Human Rights Archive to the public. Human Rights Archive is the core set of HRA Database, which has been used to train the Human-Rights-Archive-CNNs. We will add other kinds of annotation on the Human Rights Archive in the future.

There are 3050 train images from 8 human rights violations categories and one 'no violation' category in the HRA, which are used to train the Human-Rights-Archive-CNNs. The validation set can automatically be set in Keras by using the validation_split argument in model.fit accordingly. There are 30 images per category in the testing set.

Models for image classification with weights trained on HRA (applications module):

Pre-trained weights can be automatically loaded upon instantiation (weights='HRA' argument in model constructor for all models). Weights are automatically downloaded if necessary, and cached locally in ~/.keras/HRA_models/ just like the default applications module of the Keras deep learning library.

All architectures are compatible with both TensorFlow and Theano, and upon instantiation the models will be built according to the image dimension ordering set in your Keras configuration file at ~/.keras/keras.json. For instance, if you have set image_dim_ordering=tf, then any model loaded from this repository will get built according to the TensorFlow dimension ordering convention, "Width-Height-Depth".

This repository contains code for the following fine-tuned Keras models:

  • Baseline model (very similar to the architectures that Yann LeCun advocated in the 1990s)
  • ResNet50
  • VGG16
  • VGG16-Places365
  • VGG19
  • CompoundNet-ResNet50
  • CompoundNet-VGG16
  • CompoundNet-VGG19

Git

To download the very latest source from the Git server do this:

git clone https://github.com/GKalliatakis/Human-Rights-Archive-CNNs.git

(you'll get a directory named Human-Rights-Archive-CNNs created, filled with the source code)

Usage

Train Human-Rights-Archive-CNNs using Keras. The training script is here.

Example
--------
>>> python train_HRA.py --pre_trained_model VGG16 --pooling_mode avg

Run single image inference code to get the human rights violations predictions from Human-Rights-Archive-CNNs

Example
--------
>>> python run_HRA_basic.py --img_path path/to/your/image/xxxx.jpg --pre_trained_model VGG16 --pooling_mode avg

or run unified code to predict human rights violations categories, and the class activation map together from Human-Rights-Archive-CNNs

Example
--------
>>> python run_HRA_unified.py --img_path path/to/your/image/xxx.jpg --pre_trained_model VGG16 --pooling_mode avg --to_file output_filename.png

Dependencies

  • Keras 2.1.5 or above
  • OpenCV (relevant only to run_HRA_unified.py where we generate an image that superimposes the original image with the class activation heatmap)

Performance of the Human-Rights-Archive-CNNs

The performance of the CNNs is listed below.

Pool Top-1 acc. Coverage Trainable Params.
VGG16 34.44% 45% 4,853,257
VGG19 avg 35.18% 42% 4,853,257
ResNet50 25.55% 55% 4,992,521
VGG16-places365 30.00% 32% 4,853,257
VGG16 31.85% 55% 8,784,905
VGG19 flatten 31.11% 50% 8,784,905
ResNet50 30.00% 44% 4,992,521
VGG16-places365 28.51% 52% 8,784,905
VGG16 28.14% 64% 4,853,257
VGG19 max 29.62% 61% 4,853,257
ResNet50 25.55% 61% 4,992,521
VGG16-places365 26.66% 51% 4,853,257

Some qualitative prediction results using the VGG16-Places365:

Human rights violations recognition demo

Does your image depict a human right violation? Upload to find out!

The application can be executed on a PC without Internet access or it can be installed on a remote server, where you can access it through the Internet.

Run the following command to open up the application:

Example
--------
>>> python Human-Rights-Archive-CNNs/web_app/app.py

Then you'll see the application opening in the web browser on the following address: http://0.0.0.0:5000/.


Reference

Please cite the following paper if you use the data or pre-trained CNN models.

@article{kalliatakis2019exploring,
  title={Exploring object-centric and scene-centric CNN features and their complementarity for human rights violations recognition in images},
  author={Kalliatakis, Grigorios and Ehsan, Shoaib and Leonardis, Ale{\v{s}} and Fasli, Maria and McDonald-Maier, Klaus D},
  journal={IEEE Access},
  volume={7},
  pages={10045--10056},
  year={2019},
  publisher={IEEE}
}

Please email Grigorios Kalliatakis if you have any questions or comments.

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.