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']
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.
## B22 (490 images) ## E14 (562 images) ## E27 (568 images) ## G4 (665 images) ## G9 (592 images) ## GU10 (479 images) ## MR16 (614 images)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:
-
Bulb similarity. A lot of the bulbs connectors look similar - they're not dramatically different.
-
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.
-
The classification training dataset isn't that big and contains errors. The object detection training dataset is also small as limited by manual labeling.
-
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.
-
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.
- CNN classifier from scratch
- CNN classifier with Transfer Learning
- Object Detection with pretrained network.
Ongoing
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.







