You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+8-1
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,8 @@
1
1
# Active learning + object detection
2
2
Labeling images for object detection is commonly required task to get started with Computer Vision related project.
3
-
Good news that you do not have to label all images (draw bounding boxes) from scratch --- the goal of this project is to add (semi)automation to the process.
3
+
Good news that you do not have to label all images (draw bounding boxes) from scratch --- the goal of this project is to add (semi)automation to the process.
4
+
Please refer to this blog post that describes Active Learning and semi-automated flow:
5
+
[Active Learning for Object Detection in Partnership with Conservation Metrics](https://www.microsoft.com/developerblog/2018/11/06/active-learning-for-object-detection/)
4
6
We will use Transfer Learning and Active Learning as core Machine Learning components of the pipeline.
5
7
-- Transfer Learning: use powerful pre-trained on big dataset (COCO) model as a startining point for fine-tuning foe needed classes.
6
8
-- Active Learning: human annotator labels small set of images (set1), trains Object Detection Model (model1) on this set1 and then uses model1 to predict bounding boxes on images (thus pre-labeling those). Human annotator reviews mode1's predictions where the model was less confident -- and thus comes up with new set of images -- set2. Next phase will be to train more powerful model2 on bigger train set that includes set1 and set2 and use model2 prediction results as draft of labeled set3…
@@ -28,6 +30,11 @@ There is config.ini that needs to be updated with details like blob storage conn
28
30
More details TBD.
29
31
Basically the idea is to kick off Active Learning cycle with model retaining as soon as human annotator revises new set of images.
30
32
33
+
# Notes before we get started
34
+
- The steps below refer to updating config.ini. You can find detailed description of config [here](config_description.md)
35
+
- Got several thousands of images (or much more) and not sure if random sampling will be helpful to get rolling with labeling data?
36
+
Take a look at [Guide to "initialization" predictions](init_pred_desription.md).
37
+
31
38
# How to run semi-automated pipeline
32
39
The flow below assumes the following:
33
40
1) We use Tensorflow Object Detection API (Faster RCNN with Resnet 50 as default option) to fine tune object detection.
Assuming you got an datatet containing many thousands of images -- how do you get started with labeling first
3
+
few hundreds images?
4
+
What about unblanced case when most of the pictures not have much going on?
5
+
If you just random sample pictures _blindly_ it make quite a few Active Learning cycles to set your model and
6
+
training set onto the right pass.
7
+
8
+
## Let's get "metadata" about each image
9
+
We could use pretrained model that can detect decently few dozens or more object class to get idea what kind
10
+
of objects are on the images. The model might not provide super-accurate results however some of those might be
11
+
useful for more target image sampling.
12
+
For example if you dataset has common scenes of nature or city life than using model trained on [COCO dataset](https://github.com/amikelive/coco-labels/blob/master/coco-labels-paper.txt)
13
+
might give you an idea what images have objects that _resembles_ person, car, deer and so on. And depedning on your
14
+
scenario you might focus you initial labeling efforts on images that have or don't have a particular class.
15
+
16
+

17
+
18
+
## Settings in config.ini
19
+
The following settings control what model is going to be used for "initialization" predictions.
0 commit comments