Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/broadinstitute/keras-rcnn
Keras package for region-based convolutional neural networks (RCNNs)
https://github.com/broadinstitute/keras-rcnn
cntk deep-learning image-segmentation object-detection tensorflow theano
Last synced: 1 day ago
JSON representation
Keras package for region-based convolutional neural networks (RCNNs)
- Host: GitHub
- URL: https://github.com/broadinstitute/keras-rcnn
- Owner: broadinstitute
- License: other
- Created: 2017-04-25T13:32:06.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-05-20T00:44:02.000Z (over 4 years ago)
- Last Synced: 2025-01-15T00:11:27.548Z (8 days ago)
- Topics: cntk, deep-learning, image-segmentation, object-detection, tensorflow, theano
- Language: Python
- Homepage:
- Size: 5.07 MB
- Stars: 555
- Watchers: 39
- Forks: 221
- Open Issues: 71
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
Keras-RCNN
==========.. image:: https://travis-ci.org/broadinstitute/keras-rcnn.svg?branch=master
:target: https://travis-ci.org/broadinstitute/keras-rcnn.. image:: https://codecov.io/gh/broadinstitute/keras-rcnn/branch/master/graph/badge.svg
:target: https://codecov.io/gh/broadinstitute/keras-rcnnkeras-rcnn is *the* Keras package for region-based convolutional
neural networks.Requirements
---------------
Python 3keras-resnet==0.2.0
numpy==1.16.2
tensorflow==1.13.1
Keras==2.2.4
scikit-image==0.15.0
Getting Started
---------------Let’s read and inspect some data:
.. code:: python
training_dictionary, test_dictionary = keras_rcnn.datasets.shape.load_data()
categories = {"circle": 1, "rectangle": 2, "triangle": 3}
generator = keras_rcnn.preprocessing.ObjectDetectionGenerator()
generator = generator.flow_from_dictionary(
dictionary=training_dictionary,
categories=categories,
target_size=(224, 224)
)validation_data = keras_rcnn.preprocessing.ObjectDetectionGenerator()
validation_data = validation_data.flow_from_dictionary(
dictionary=test_dictionary,
categories=categories,
target_size=(224, 224)
)target, _ = generator.next()
target_bounding_boxes, target_categories, target_images, target_masks, target_metadata = targettarget_bounding_boxes = numpy.squeeze(target_bounding_boxes)
target_images = numpy.squeeze(target_images)
target_categories = numpy.argmax(target_categories, -1)
target_categories = numpy.squeeze(target_categories)
keras_rcnn.utils.show_bounding_boxes(target_images, target_bounding_boxes, target_categories)
Let’s create an RCNN instance:
.. code:: python
model = keras_rcnn.models.RCNN((224, 224, 3), ["circle", "rectangle", "triangle"])
and pass our preferred optimizer to the `compile` method:
.. code:: python
optimizer = keras.optimizers.Adam(0.0001)
model.compile(optimizer)
Finally, let’s use the `fit_generator` method to train our network:
.. code:: python
model.fit_generator(
epochs=10,
generator=generator,
validation_data=validation_data
)External Data
-------------The data is made up of a list of dictionaries corresponding to images.
* For each image, add a dictionary with keys 'image', 'objects'
* 'image' is a dictionary, which contains keys 'checksum', 'pathname', and 'shape'
* 'checksum' is the md5 checksum of the image
* 'pathname' is the pathname of the image, put in full pathname
* 'shape' is a dictionary with keys 'r', 'c', and 'channels'
* 'c': number of columns
* 'r': number of rows
* 'channels': number of channels
* 'objects' is a list of dictionaries, where each dictionary has keys 'bounding_box', 'category'
* 'bounding_box' is a dictionary with keys 'minimum' and 'maximum'
* 'minimum': dictionary with keys 'r' and 'c'
* 'r': smallest bounding box row
* 'c': smallest bounding box column
* 'maximum': dictionary with keys 'r' and 'c'
* 'r': largest bounding box row
* 'c': largest bounding box column
* 'category' is a string denoting the class nameSuppose this data is save in a file called training.json. To load data,
.. code:: python
import json
with open('training.json') as f:
d = json.load(f)Slack
-----We’ve been meeting in the #keras-rcnn channel on the keras.io Slack
server.You can join the server by inviting yourself from the following website:
https://keras-slack-autojoin.herokuapp.com/