TensorFlow Image Classifier

Machine Learning

Machine learning is a field of artificial intelligence that equips computers with the ability to learn and improve from experience without explicit programming. It involves the development of algorithms and models that allow systems to recognize patterns, make predictions, and derive insights from data. By iteratively processing and analyzing large datasets, machine learning enables machines to adapt and enhance their performance over time, offering solutions across various domains such as healthcare, finance, gaming, and more.

Image Classification

Image classification is like teaching a computer to recognize what's in a picture. It uses special techniques to figure out if an image shows a cat, a dog, a car, or something else. The computer learns by looking at many pictures that are already labeled, so it knows what each thing looks like. Then, when you show it a new picture, it uses what it learned to guess or say what's in that picture. This helps in many things, like finding objects in photos, helping doctors in diagnoses, and making self-driving cars smarter.

TensorFlow

TensorFlow is a powerful tool that helps computers learn and understand things. It's like a toolbox filled with special gadgets for teaching machines. Using this toolbox, people can build programs that train computers to recognize patterns, make predictions, and solve problems by using lots of data. TensorFlow makes it easier for developers to create and train artificial intelligence models, helping them build smart apps, analyze information, and make sense of complex data using the computer's learning abilities.

The Project

In this project I attempt to train an image classification model using TensorFlow that will predict if Mount Rainier is currently visible in the National Park’s live webcam. TensorFlow allows you to easily train a custom model by using the keras.utils.image_dataset_from_directory() function included in the TensorFlow Python library. Sort training images into directories representing the different labels you want to classify. For my project I used the labels “out” and “not_out”, I collected many examples for each label.

Mount Rainer "not_out" training image:

NPS Not Out

Mount Rainer "out" training image:

NPS Out

Results

I created a simple JavaScript single page application that sends a GET request to the Python API using fetch() and displays the servers JSON response.

App Demo