Automatic Bird Identification: Part III

Building our first model.

Training the Model

Now we can actually write the script that will train the model!

# python --vgg vgg16/vgg16 --checkpoints checkpoints --prefix vggnet

from config import bird_config as config
import mxnet as mx
import argparse
import logging
import os

# construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-v", "--vgg", required=True,
                help="path to pre-trained VGGNet for fine-tuning")
ap.add_argument("-c", "--checkpoints", required=True,
                help="path to output checkpoint directory")
ap.add_argument("-p", "--prefix", required=True,
                help="name …

Automatic Bird Identification: Part II

Building the rec files that our model will consume for training

In this post I'll be concentrating on creating the lst and rec files needed for model training using the training data that we generated in Part I of this series.

The model will use the mxnet framework which reads rec files as training data. First we'll create the lst files guided by a config file that we can define now:

The Config File

from os import path

# top level path to our bird related …

Automatic Bird Identification: Part I

Making a bird feeder that automatically identifies its visitors.


I have a bird feeder with a Raspberry Pi camera pointed at it. That raspberry pi creates a video feed of the bird feeder accessible on my local network. My local network has a Synology 918+ with a IP camera license. The Synology configured IP camera detects motion from birds (and wind unfortunately), and saves a short video of the motion events to disk.


The Plan

At first I will manually watch each motion …