https://github.com/muhammedbuyukkinaci/object-classification-and-localization-with-tensorflow
This repository is containing an object classification & localization project for SINGLE object.
https://github.com/muhammedbuyukkinaci/object-classification-and-localization-with-tensorflow
alexnet alexnet-localization classification cnn cnn-tensorflow convolutional-neural-networks image-augmentation image-classification-localization image-localization localization multiclass-classification neural-networks object-detection object-localization ready-to-run ready-to-use single-image-localization tensorflow tensorflow-gpu tensorflow-image-localization
Last synced: about 2 months ago
JSON representation
This repository is containing an object classification & localization project for SINGLE object.
- Host: GitHub
- URL: https://github.com/muhammedbuyukkinaci/object-classification-and-localization-with-tensorflow
- Owner: MuhammedBuyukkinaci
- Created: 2018-09-04T11:30:20.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-05-19T14:37:50.000Z (almost 6 years ago)
- Last Synced: 2025-02-25T13:41:27.602Z (2 months ago)
- Topics: alexnet, alexnet-localization, classification, cnn, cnn-tensorflow, convolutional-neural-networks, image-augmentation, image-classification-localization, image-localization, localization, multiclass-classification, neural-networks, object-detection, object-localization, ready-to-run, ready-to-use, single-image-localization, tensorflow, tensorflow-gpu, tensorflow-image-localization
- Language: Python
- Homepage:
- Size: 8.74 MB
- Stars: 24
- Watchers: 2
- Forks: 12
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Object-Classification-and-Localization-with-TensorFlow
This is a multiclass image classification & localization project for SINGLE object using CNN's and TensorFlow on Python3.# Dependencies
```pip3 install requirements.txt```
# Training (GPU)
Cloning the repository to local machine:
```git clone https://github.com/MuhammedBuyukkinaci/Object-Classification-and-Localization-with-TensorFlow```
Changing directory to this folder
```cd Object-Classification-and-Localization-with-TensorFlow```
1 ) Augmenting data:
```python3 create_training_data.py ```
2 ) Training the CNN:
```python3 train.py ```
3 ) Testing on unseen data:
```python3 test.py ```
# Training on CPU
I trained on a GTX 1050. 1 epoch lasted 10 seconds approximately.If you are using CPU, which I do not recommend, change the lines below in train.py:
```
config = tf.ConfigProto(allow_soft_placement=True)
config.gpu_options.allow_growth = True
config.gpu_options.allocator_type = 'BFC'
with tf.Session(config=config) as sess:
```
to
```
with tf.Session() as sess:
```# Data
3 categories: Cucumber, eggplant and mushroom. 188 images from 3 categories were used in this project. Images used in this project are in **training_images** folder. You can also download them from [here](https://www.kaggle.com/mbkinaci/image-localization-dataset).
![]()
# Steps
1 ) Collecting images via [Google Image Download](https://github.com/hardikvasa/google-images-download). Only one object must be in the image. After collecting images, you must resize them to in order to be able to label.
![]()
2 ) Labeling images via [LabelImg](https://github.com/tzutalin/labelImg).
![]()
3 ) Data Augmentation (**create_training_data.py**). Mirroring with respect to x axis, mirroring with respect to y axis and adding noise were carried out. Hereby, data amount is 8-fold.
![]()
4 ) After data augmentation, **create_training_data.py** script is creating suitable xml files for augmented images(in order not to label all augmented labels).
5 ) Making our data tabular. Input is image that we feed into CNN. Output1 is one hot encoded classification output. Output2 is the locations of bounding boxes(regression) in **create_training_data.py**.
6 ) Determining hypermaraters in **train.py**.
7 ) Separating labelled data as train and CV in **train.py**.
8 ) Defining our architecture in **train.py**. I used [AlexNet](https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf) for model architecture.
9 ) Creating 2 heads for calculating loss in **train.py**. One head is classification loss. The other head is regression loss.
10 ) Training the CNN on a GPU (GTX 1050 - One epoch lasted 10 seconds approximately)
11 ) Testing on unseen data (**testing_images** folder) collected from the Internet(in **test.py**).
# Architecture
AlexNet is used as architecture. 5 convolution layers and 3 Fully Connected Layers with 0.5 Dropout Ratio. 60 million Parameters.
# Predictions
![]()