Sun Bear

Sun Bear vs. Black Dog: Image Classification with Deep Learning using TensorFlow in Python

In this tutorial, we will train a simple classifier to classify image between sun bear and black dog. Open your Chrome browser and install Fatkun Batch Download Image. Google this keyword sun bear. Select Images and click Fatkun Batch Download Image icon on the right top. Select This tab and new windows will appear.

Fatkun Batch Download Image
Fatkun Batch Download Image

Unselect which images that not related to sun bear then click Save Image. Make sure minimum images that need to train is 75. Wait until all images finish the download. Copy all the images and place it into <your_working_space>tf_files > animals > images > sun bear. Repeat the same steps over and over again for these categories.



black dog

Download retrain script (https://raw.githubusercontent.com/datomnurdin/tensorflow-python/master/retrain.py) to the current directory (<your_working_space>) . Go to the terminal/command line and cd to <your_working_space> directory. Run this command to retrain all the images. It takes around 30 minutes to finish.








python retrain.py 
--bottleneck_dir=tf_files/bottlenecks 
--model_dir=tf_files/inception 
--output_graph=tf_files/retrained_graph.pb 
--output_labels=tf_files/retrained_labels.txt 
--image_dir <your_absolute_path>/<your_working_space>/tf_files/animals/images

Create a prediction script and load generated model into it.






































import tensorflow as tf
import sys

# change this as you see fit
image_path = sys.argv[1] 







# Read in the image_data
image_data = tf.gfile.FastGFile(image_path, 'rb').read()

# Loads label file, strips off carriage return
label_lines = 
[line.rstrip() for line 
                   in tf.gfile.GFile("tf_files/retrained_labels.txt")] 

















# Unpersists graph from file
with tf.gfile.FastGFile("tf_files/retrained_graph.pb", 'rb') as f:
    graph_def = tf.GraphDef()
    graph_def.ParseFromString(f.read())
    _ = tf.import_graph_def(graph_def, name='')

with tf.Session() as sess:
    # Feed the image_data as input to the graph and get first prediction
    softmax_tensor = sess.graph.get_tensor_by_name('final_result:0')
    
    predictions = sess.run(softmax_tensor, \
             {'DecodeJpeg/contents:0': image_data})
    
    # Sort to show labels of first prediction in order of confidence
    top_k = predictions[0] .argsort()[-len(predictions[0] ):][::-1] 



    
    for node_id in top_k:
        human_string = label_lines[node_id] 

        score = predictions[0] [node_id] 

        print('%s (score = %.5f)' % (human_string, score))

Predict the image using the terminal/command line.



python detect.py test_image.png

Leave a Reply

Your email address will not be published. Required fields are marked *