In this quickstart, we'll use LandingLens — a Native App available in the Snowflake Marketplace — to create a computer vision model that detects defects in components from a manufacturing environment. After completing this quickstart, users can use the concepts and procedures from this quickstart to build Object Detection, Segmentation, and Classifications models in LandingLens.
LandingLens is a cloud-based Visual AI platform. LandingLens empowers users to create and train Visual AI models even if you don't have a background in AI, machine learning, or computer vision. LandingLens guides you through the process of uploading images, labeling them, training models, comparing model performance, and deploying models.
To users who are familiar with machine learning, LandingLens offers advanced tools to customize the model training process. LandingLens supports advanced deployment options including cloud deployment as well as Docker and LandingEdge, LandingAI's edge-deployment solution.
Access to the LandingLens app is available by request. To request the app, follow the instructions below:
After you've requested the app and been granted access it, follow the instructions below to install it in Snowflake:
Now that you've installed the LandingLens app, you are ready to get the sample images. LandingAI provides a set of sample images as an "app" that can be downloaded from the Snowflake Marketplace. You will use these images to train a computer vision model in LandingLens that detects manufacturing defects.
To get the sample images, follow these instructions:
Now that you've loaded the sample dataset into your Snowflake account, you're ready to create a computer vision model using those images in LandingLens.
Now that all of the images are in the LandingLens project and have classes assigned to them, train a computer vision model. When you train a model, you give the labeled images to a deep learning algorithm. This allows the algorithm to "learn" what to look for in images.
To train a model, click Train.
The right side panel opens and shows the model training progress. This process can take a few minutes.
Once training finishes, you will see the model's predictions and performance information. You can click the model tile in the side panel to see more detailed information. In most real-world use cases, you might need to upload and label more images to improve performance. In this example, the model should be performing well, so we will go to the next step, which is deploying the model.
After you are happy with the results of your trained model, you are ready to use it. To use a model, you deploy it, which means you put the model in a virtual location so that you can then upload images to it. When you upload images, the model runs inference, which means that it detects what it was trained to look for.
In this example, we're going to show how to use Cloud Deployment. You can also deploy models using LandingEdge and Docker.
To deploy the model with Cloud Deployment, follow these instructions:
endpoint_id
that displays in the Python SDK script. You will include this when you run inference later. After deploying a model with Cloud Deployment, there are a few ways to send images to that endpoint for inference. In this example, you will run inference using SQL commands in Snowsight.
Since you already have access to the Manufacturing dataset, you will run inference on one of those images (typically you would run inference on new images).
The SQL commands you will run in this section require you to include the APP_NAME
of your LandingLens instance. To get your APP_NAME
, follow the instructions below:
APP_NAME
is the text following the LandingLens Installer for line. For example, in the screenshot below, the APP_NAME
is LANDINGLENS_SNOWFLAKE. Using SQL commands to run inference requires the LLENS_PUBLIC application role.
Application roles can't be granted directly to users, so you must grant LLENS_PUBLIC to an account role (or to another application role that is then granted to an account role). In this tutorial, you will create an account role called LANDINGLENS_EXTERNAL_ACCESS, grant that role to yourself, and then grant the LLENS_PUBLIC application role to that account role.
CREATE ROLE LANDINGLENS_EXTERNAL_ACCESS;
GRANT ROLE LANDINGLENS_EXTERNAL_ACCESS TO USER <user_name>;
GRANT APPLICATION ROLE APP_NAME.LLENS_PUBLIC TO ROLE LANDINGLENS_EXTERNAL_ACCESS;
with your Snowflake user name, and APP_NAME
with the name of your LandingLens instance. In this tutorial, you will run inference using SQL commands. To do this, follow the instructions below:
SELECT
APP_NAME.core.run_inference('@llens_sample_ds_manufacturing.ball_bearing.dataset/data/no-defects/cast_ok_0_102.jpeg', '<endpoint_id>') as inference;
APP_NAME
with the name of your LandingLens instance, and
with the endpoint ID for the deployed model.labelName
is no defects
. {
"backbonepredictions": null,
"backbonetype": null,
"latency": {
"infer_s": 0.26324915885925293,
"input_conversion_s": 0.0013682842254638672,
"model_loading_s": 0.0002269744873046875,
"postprocess_s": 7.891654968261719e-05,
"preprocess_s": 0.0044956207275390625,
"serialize_s": 0.00017309188842773438
},
"model_id": "a24d15b0-3822-4602-a544-720a0097aa36",
"predictions": {
"labelIndex": 2,
"labelName": "no defects",
"score": 0.999671220779419
},
"type": "ClassificationPrediction"
}
After running inference, you can also see the prediction results in LandingLens. To do this:
Congratulations on creating a defect detection computer vision model in LandingLens! You can now apply the concepts you've learned to building custom computer vision models in LandingLens.
In this quickstart you learned: