Here are the details of my current journey. It took a hardware detour about a year back to get low cost CPU (sand-bridge needed) and GPU-Nivida compatible hardware active an running to support TensorFlow and the Jupyter Notebook. Once that was accomplished got kind of bogged down in the multiple version/dependencies of the modules and Python need to support the bird cam software. {versions keep changing, PIA for legacy code, pip3 command line is great}
All was resolved, now I can re-create/run this old GIMP project software to explore further.
CHOICES MADE
1) Run both Python and all module locally ( dedicated PC)
- Though this would help with version control and avoid forced updates. This was not the case, python has links to external libraries with dependencies and makes updates frequent.
- I Have comfort in that external parties do not see my work, so still like local instance
2) Use local Jupyter notebook, GUI tool/environment over a command line one
- Helps in looking at code and search fin feature. But GUI has mind of its own, and a learning curve
- Problem at time finding/locating where version/file are saved, mostly in project sub-folder
3) Web Cams used to feed bird images/ live feeds into program
- Tried both outdoor IP cameras and USB Webcams, went back top USB Web option for simplicity (IP Camera was flooding bandwidth on my home network)
- Problem with USP wire length here is 30 meter rough limit, found adapter to run USB over 10baseT wire for greater length. (need to get Web Cam outdoor to bird feeder)
- Explored multiple Web Cams to get 600x400 dependable resolution on input video. (Python module HD limits setting/control - big issue)
SETUP OF PLATFORM
Lots of learning and twist and turns, dedicate TensorFlow build on a local Dell Precision T5600 dual CPU with 32 Gig RAM and a single Geforce GTX 970. Greatly disappointed with Dell, they made this PC model way too complicated and limited the disk one can add and box runs hot. (I bricked one mobo, hence no longer a Dell/Precision enthusiast) On the software setup, both python and modules are a local installed as mentioned before. Version control of all the installed modules is a challenge, one update impacts other modules.
RUNNING OF MODEL
Here is a pic of the running of the model under Jupiter Notebook. The setup took some time with PIP and PIP3 modules, all are local to the machine.. I have tried multiple USB web cams to try and get best result. At best the model has a roughly 30% hit rate at successfully identifying birds in my test rig (ie: bar chair with bird pics on clip board). Success rate is poor even in artificial conditions, that was looking to improve, hence the many debug and log notes further mentioned below.
The original effort/project can be found under Gihub: GitHub raw code
ADDED DEBUG PRINT STATEMENTS
While running the code it backed apparent there were multiple image/vector conversions. I added multiple debug or log tags to track the program. It was also found the initial design on for a roughly 5 minute image gaps to allow for processing, certainly not real time. I also dropped/commented out the posting to Twitter for social notification that was in the original Git project. (Cmoom the original contributor, is likely going to crying on the changes).
I also re-build the project for CUDA Video Card processing, all was set and enabled, but code crashed likely due to just 4G on my single Geforce GTX-970, disabled that in the code, hopefully can upgrade the video card in future.
OUTDOOR LOCATION OF THE WEB CAM
Had issued with USB cable length. What was the point of this program if it cannot watch the bird feeder. I found a USB-Cat5 converted to extend the valid signal length to approx.150 feet. Challenge is this is impacts the quality and resolution of the image (logitech seems the least affected) . TensorFlow does not help it just has one CV image module with limited setting. although, it does work with a lage need for improvement.
Target bird feeder looking to adjust this program accurately read/identify.
{Don't mind the leaves, they just keep coming off the yard's big oak trees this time of year...}