Learn about IBM Cloud™ Code Engine by deploying an image classification application with pre-defined MobileNet TensorFlow.js model.

In my previous post, “Text Analysis with IBM Cloud Code Engine” you learned how to create an IBM Cloud™ Code Engine project, select the project and deploy Code Engine entities — applications and jobs to the project. You also learned how to bind IBM Cloud services (e.g., IBM Cloud Object Storage and Natural Language Understanding) to your Code Engine entities to analyze your text files uploaded to Cloud Object Storage.

In this post, you will deploy an image classification application, upload images to IBM Cloud Object Storage and then classify the uploaded images using a pre-defined MobileNet Tensorflow.js model without any training. The images are classified with labels from the ImageNet database.

Clone the repository

On your machine, launch a terminal or command prompt and run the below commands to clone the GitHub repository and then move it to the cloned repo folder:

git clone https://github.com/VidyasagarMSC/image-classification-code-engine
cd image-classification-code-engine
Scroll to view full table

Build the container images

Before building and pushing your container images, plan your image registry:

  1. If you plan to use a private container registry like IBM Cloud Container Container Registry, follow the steps here to add access to a private registry.
  2. If you plan to use public Docker Hub, run the below command to build and push three container images — frontend, backend and backend-job respectively. Replace <DOCKER_ACCOUNT_NAME> with your own Docker account name: ./deploy.sh <DOCKER_ACCOUNT_NAME>.
  3. If you don’t wish to build your own container images, you can use the pre-built container images — vidyasagarmsc/*. For example: docker pull vidyasagarmsc/frontend.

Use the container images with the solution tutorial

Follow the steps in the solution tutorial and use this code sample to learn about IBM Cloud Code Engine by deploying an image classification application.

Use the container images built from this code sample. Replace ibmcom/* with <ACCOUNT_NAME>/*.

Instead of uploading a text file, upload an image (.jpeg, .png) to COS. For sample images, check the images folder in this repo.

The result

You can find the sample images to test the classification under the output folder of the repository:

Questions and feedback

If you have feedback, suggestions or questions about this post, please reach out to me on Twitter (@VidyasagarMSC) or use the feedback button on the tutorial to report a problem on its content. You can also open issues

The tutorials section has a feedback form on the side where you can comment on the content. If you have suggestions on the existing tutorials or ideas for future additions, please submit your feedback.

More from Cloud

Using advanced scan settings in the IBM Cloud Security and Compliance Center

5 min read - Customers and users want the ability to schedule scans at the timing of their choice and receive alerts when issues arise, and we’re happy to make a few announcements in this area today: Scan frequency: Until recently, the IBM Cloud® Security and Compliance Center would scan resources every 24 hours, by default, on all of the attachments in an account. With this release, users can continue to run daily scans—which is the recommended option—but they also have the option for…

5 min read

Modernizing child support enforcement with IBM and AWS

7 min read - With 68% of child support enforcement (CSE) systems aging, most state agencies are currently modernizing them or preparing to modernize. More than 20% of families and children are supported by these systems, and with the current constituents of these systems becoming more consumer technology-centric, the use of antiquated technology systems is archaic and unsustainable. At this point, families expect state agencies to have a modern, efficient child support system. The following are some factors driving these states to pursue modernization:…

7 min read

IBM Cloud Databases for Elasticsearch End of Life and pricing changes

2 min read - As part of our partnership with Elastic, IBM is announcing the release of a new version of IBM Cloud Databases for Elasticsearch. We are excited to bring you an enhanced offering of our enterprise-ready, fully managed Elasticsearch. Our partnership with Elastic means that we will be able to offer more, richer functionality and world-class levels of support. The release of version 7.17 of our managed database service will include support for additional functionality, including things like Role Based Access Control…

2 min read

Connected products at the edge

6 min read - There are many overlapping business usage scenarios involving both the disciplines of the Internet of Things (IoT) and edge computing. But there is one very practical and promising use case that has been commonly deployed without many people thinking about it: connected products. This use case involves devices and equipment embedded with sensors, software and connectivity that exchange data with other products, operators or environments in real-time. In this blog post, we will look at the frequently overlooked phenomenon of…

6 min read