Utilizing deep crowd network to classificate sealions & recognise the population of each classification, with given dataset from NOAA satellite photographs.
The dataset originate from NOAA, and could be obtained from Kaggle.
It contains:
- sample_submission.csv: an example valid submission file
- Train/*.jpg: a set of training images, with each filename corresponding to a train_id
- Train/train.csv: a list of ground-truth counts for each train_id
- TrainDotted/*.jpg: copies of the training images with markings showing where each animal is (see below)
- Test/*.jpg: a set of test images, with each filename corresponding to a test_id
Here only several train pics were uploaded to this git because the whole dataset is quite a bit huge, and the validation and enhancement of this model was priority in this git. Definitely you can download the dataset from above link.
Unzip the dataset file and put them under the folder 'input', here you can find a editorial coordinates csv file offered by a kaggler (also could be found in the kernel tab).
Basic method to achieve data preprocessing, classification, and crowd counting has already been realized in the Notebook file Deepcrowd_sealion.ipynb, and of course was written in python.
Descriptions for each fuction in the Notebook file could also be found above their own section part.
This model focuses on crowd network method to count sealions, and relies on following tools to operate:
- Python 3.x
- Opencv 3.x
- Latest caffe
- Anaconda(optinal, you can choose to seperate the Jupyter file into python files and operate in your own way)
Recently(a month ago from creating this git) I have set up this model on an AWS GPU instance, dealing with 100 training pictures, and a lot of impovement and ensembling need to be done.
Note, several lines need to be edited if you're trying to perform this model:
- paths in the Jupyter file
- paths in models/crowdnet/train_val.prototxt