Skip to content

Repository files navigation

Bulb Classifier

When changing a light bulb there are a few different connection types. This can be confusing for the consumer and frustrating to have to go and fiqure it out on the web.

If you could just take a picture of the lightbulb and be told which connection it is, this would be highly preferable. You could then be directly linked to buy one.

This project attempts to build a classifier/object detector to identify the different bulb types.

The different classes (bulb types) included in the project are ['B15','B22','E14', 'E27', 'G4', 'G9','GU10', 'MR16']

Example Images

I scraped the image data from google image search. Here's an example of each of the image type and the number of images available in the total dataset.

B15 (519 images)

drawing

## B22 (490 images)

drawing

## E14 (562 images)

drawing

## E27 (568 images)

drawing

## G4 (665 images)

drawing

## G9 (592 images)

drawing

## GU10 (479 images)

drawing

## MR16 (614 images)

drawing

In the object detection project I created my own dataset based on pictures taken on my phone and labelled these using LabelBox.

Here's an example:

obj example

Challenges

  1. Bulb similarity. A lot of the bulbs connectors look similar - they're not dramatically different.

  2. The part of the bulb that matters is only the connector. The rest of the image is irrelevant. The main bulb shape can look very similar between two different types.

  3. The classification training dataset isn't that big and contains errors. The object detection training dataset is also small as limited by manual labeling.

  4. If this was to be an implementation where people take a picture on their phone of their lightbulb, the domain of the picture is likely to be quite different to these provided by google which tend to be from images used to sell the bulb and have white backgrounds.

  5. Unusual content means there are no pretrained networks on a similar domain. To use transfer learning more later layers may need retraining which makes the training process slower.

Method

  1. CNN classifier from scratch
  2. CNN classifier with Transfer Learning
  3. Object Detection with pretrained network.

Results

Ongoing

TODO

General: -Include more classes -Data augmentation -Include a ‘not sure’ option based on softmax probabilities. -Include more variety in the images (different mobile phone cameras, lighting, positions) -Test speed of inference (how quick will it provide the solution to the customer - depends on API) -Experiment hosting through an API.

Improving the classification -Reduce variance (more images and/or regularisation). -Have the test as representative of the real goal - phone pictures.

Improving the object detector -Test against a larger test dataset to create precision/ recall for comparison.

About

Using image classification to classify different bulb types so that you don't have to manually figure it out.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages