Picking up from where I left off on my previous machine learning post, which you can find here
I am embarking on a personal project involving machine learning and computer vision. The project has four main goals:
- Develop an artificial neural network that can identify vehicles within an image.
- Optimize that neural network so it can scan between five and ten images every second (in other words, allow it to operate on a video stream).
- Further optimize that neural network so it can run on a $35 mini-computer known as a Raspberry Pi (rather than my large desktop computer).
- Develop some computer routines that utilize the above and collect data.
- Learn as much as possible in the process.
Tonight, the project reached its first milestone: I programmed and trained my first artificial neural network. I trained it by showing it 6,592 images - half of which contained a car, and half did not contain a car. After viewing each image, the neural network would say whether or not it thought the image contained a car. If it guessed wrong, it would re-calibrate itself, and then we'd move to the next image.
The above sounds like a really boring a tedious process - but it's not. The training is all automated, and it completed in under one hour. After training, I showed the neural network about 750 images that it never seen before, and it was able to predict whether or not they contained a car with over 95% accuracy.
These accomplishments are rather mundane in the world of computer science - but its a humble start to the project. I can't make the neural network too flashy, or else Steps 2 and 3 will get very difficult.