Warning: This project is not finished, it is very much a work in progress and is not functional. Please do not attempt to use it yet. You can look through the code-base, however i am still training the model. The model only recognises airplanes and birds right now. Please check back at a later time.
This is a project dedicated to using image recognition technology to create an internet-accessible program for classifying known and unknown objects within the view of a telescope.
Welcome to the DIY UFO Detector, automated AI and Telescope enabled 👽 .
With all of the hubub going on in the US, with ATIP, and the pentagon being forced to declassify documentation regarding un-identified flying objects - I have decided to build an open-source and automated classification system for a telescope and/or a lensed camera(s).
The idea of the project is to look to the skies and attempt to classify everything known to humans to fly in the sky (over a certain geo-specific area - this software uses geo-location to ensure performance on your machine, and to simplify the training).
The objects that are outside of the scope of the trained dataset are placed into a folder for further classification in order to weed out errors and smudges. The final filtered results are then left for human classification.
- Change source code to use FastAPI instead of Flask.
- Create a GUI for the AI interface software.
- Port the GUI to a web-based interface.
- Gather all images from the sky using google images.
- Train our model using deep Learning Lobe.
- Deploy our model to the internet.
- Deploy to Raspberry Pi.
- Deploy to a mobile device.
- Integrate Smart Raspberrypi Telescope control and Stellarium Software interfacing.
- Integrate a web-based interface for the telescope.
This section is currently 100% factual - it will be actively changed as the program is developed and expanded - until first Alpha, when the below draft section will become the only instructions section.
Currently, the software is in early development. To test the current image recognition model please use the following steps:
-
Download the source code from Github.
-
cd into the UFO-Detector directory.
-
By default, the program will start in live-camera-feed mode. To change this, append the starting command.
-
execute the following command to start the server:
python3 -m pip install -r requirements.txt python3 app.py
-
Next open a new terminal window and execute the following command to perform a post request to the server (which returns a prediction with confidence):
python3 testing.py
-OR FOR SINGLE IMAGE MODE-
Use the -f flag and the name of the folder that contains the image(s) and activate Photo-mode with the -p flag
python3 testing.py -f foldername -p
As the application becomes more robust, and the AI model is trained, the testing.py file will be removed and replaced with a GUI.
Setup is very straight forward, thankfully. You will need to purchase a few components before you begin:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
This section is not currently 100% factual - it is a draft for when the fully-built program is finalized.
Pre-trained models exist within the ~/Models folder
This project uses Lobe to generate the model, for this reason, it is recommended that you use the Lobe GUI to generate your model, should you wish to use a custom model. This is a free software, and can be found at: Lobe
Lobe is a free software utilized to expedite and automate the model training parameters.
This project utilises TensorFlow, and is compatible with most TensorFlow models, however it is optimized for Lobe generated models.
In-order to use this software, git clone this repo onto your desired server device. This server device MUST have at least one camera connected on the same network, and who's feed is exposed to it. Once the camera is connected to the device and picked up by the so
git clone https://github.com/ZanzyTHEbar/UFO-Detector.git
Once the software stack is installed, run the main.py file using
python3 main.py
After this, a locally hosted server instance will launch and can be accessed via your browser. In the browser, ensure to enable camera permissions and connect your cameras.
Ensure that a trained model (custom or built-in) is inside of the ~/Models folder.
Setup is very straight forward, thankfully. You will need to purchase a few components before you begin:
-
Compatibility with all Tensor Flow Models
- TensorFlowLite support and a branch of the project for mobile
-
Full User interface for controlling a servo-enabled camera and or telescope