Need help with LCFCN?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

149 Stars 43 Forks Apache License 2.0 82 Commits 15 Opened issues


ECCV 2018 - Where are the Blobs: Counting by Localization with Point Supervision

Services available


Need anything else?

Contributors list

LCFCN - ECCV 2018 (Try in a Colab)

Where are the Blobs: Counting by Localization with Point Supervision


Make the segmentation model learn to count and localize objects by adding a single line of code. Instead of applying the cross-entropy loss on dense per-pixel labels, apply the lcfcn loss on point-level annotations.


pip install git+
from lcfcn import lcfcn_loss

compute an CxHxW logits mask using any segmentation model

logits = seg_model.forward(images)

compute loss given 'points' as HxW mask (1 pixel label per object)

loss = lcfcn_loss.compute_loss(points=points, probs=logits.sigmoid())


Predicted Object Locations


1. Install dependencies

pip install -r requirements.txt

This command installs pydicom and the Haven library which helps in managing the experiments.

2. Download Datasets

  • Shanghai Dataset - Trancos Dataset



  • Shanghai:
    curl -L
  • Trancos:
    curl -L

3. Train and Validate

python -e trancos -d  -sb  -r 1
  •  is where the dataset is located.
  •  is where the experiment weights and results will be saved.
  • -e trancos
    specifies the trancos training hyper-parameters defined in

4. View Results

3.1 Launch Jupyter from terminal

> jupyter nbextension enable --py widgetsnbextension --sys-prefix
> jupyter notebook

3.2 Run the following from a Jupyter cell

from haven import haven_jupyter as hj
from haven import haven_results as hr

try: %load_ext google.colab.data_table except: pass

path to where the experiments got saved

savedir_base =

filter exps

filterby_list = None

get experiments

rm = hr.ResultManager(savedir_base=savedir_base, filterby_list=filterby_list, verbose=0)

dashboard variables

title_list = ['dataset', 'model'] y_metrics = ['val_mae']

launch dashboard

hj.get_dashboard(rm, vars(), wide_display=True)

This script outputs the following dashboard


If you find the code useful for your research, please cite:

  title={Where are the blobs: Counting by localization with point supervision},
  author={Laradji, Issam H and Rostamzadeh, Negar and Pinheiro, Pedro O and Vazquez, David and Schmidt, Mark},
  booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.