Introducing kushscan

mobile application that recognizes
dry kush by photo

Scroll Down

Let us introduce KushScan

KushScan - mobile application that recognizes type, thc level, sativa/indica level of a dry kush by photo. You can take a new photo or use previously saved from your gallery.
Using our app you can perform mobile cannabis testing, it can help you to understand what you smoke, how strong is the strain, by using sativa indica level you can predict mood and effects. After prediction, on probability screen, you can tap on flower photo to read extended information about your marijuana strain.

App Screenshots


An extended research, devoted to marijuana classification problem was conducted. Final algorithm consists of next steps:


This step is done to reduce photo conditions influence and helps our algorithm to become invariant to distance and angle of an object on photo.


Noise reduction. By detecting noisy parts of images(dark, unfocused blobs etc) and excluding them from analysis we are making your image more smooth and useful for our algorithmic analysis. Lighting. On this step your image moving through brightness histogram analysis, we are stretching image brightness to full color range in accordance with the brightness distribution.

Features extraction

On this step we are gathering flower texture, structure and color properties. We have developed a set of a special nug features that are combined with a classical computer vision texture and color approaches. Our description of kush properties includes properties that we are able to get from your photo: trichomes size and positioning, nods structure, stems structure, stamens structure, calyx-to leaf ratio, gargling type, strain viscosity and density, color description.

Features description

On fourth step, for every previously described feature we create an image description in context of features distribution. Partial descriptors are combined to common descriptor applying such type of normalization, which matches better features distribution.


On the last step we have final descriptor that was predicted by previously trained classifier. We are using supervised machine learning approach, classification model is trained on a large dataset. While training, classifier detects generalization and separation properties between the classes, in context of mentioned nug description.

10 different strains

For now we teached our algorithm to recognize 10 different kinds of strain. It means that when our algorithm found a weed flower among your image data it will be compared to 10 known strains and most relevant to it will be chosen.

Our Database

On this picture you can see our photo database screenshot. It consist of photos made by KushScan users all around the world. We use this images for: gathering and collecting statistics, algorithm improving, media content creation.