4273project2

Software engineering object recognition project

https://github.com/wprobst1/4273project2

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.3%) to scientific vocabulary
Last synced: 7 months ago · JSON representation

Repository

Software engineering object recognition project

Basic Info
  • Host: GitHub
  • Owner: wprobst1
  • License: agpl-3.0
  • Language: Python
  • Default Branch: main
  • Size: 358 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing License Citation

README.txt

4273 Project 2 Group 1 - Object Recognition Using YOLO11\
Group members - Wyatt Probst, Cade Seay, Garrett Fundis, Kyle Bowser

------------------------Dependencies----------------------------------------------
The YOLO model is dependent on the following packages:
gitpython>=3.1.30
matplotlib>=3.3
numpy>=1.23.5
opencv-python>=4.1.1
pillow>=10.3.0
psutil
PyYAML>=5.3.1
requests>=2.32.2
scipy>=1.4.1
thop>=0.1.1
torch>=1.8.0
torchvision>=0.9.0
tqdm>=4.66.3
ultralytics>=8.2.34

------------------------Installation----------------------------------------------
The following commands comprise the installation procedure of the model
git clone https://github.com/wprobst1/4273Project2
cd 4273Project2
pip install requirements.txt
python predict.py --source /path/to/video

---------------------------Usage--------------------------------------------------
To use the model for object detection, use the command:
python predict.py --source 0 #for use with web camera
python predict.py --source "path to .mp4 source" #for use with video input
Add --conf_thres float to adjust the sensitivity of the model when drawing boxes
Add --iou_thres float to adjust intersection sensitivity of objects in the frame
Add --view_img to see the output in real time from a .mp4

---------------------------Obstacles-----------------------------------------------
Our major obstacles were:

The datasets from roboflow were often filled with poor quality images with obfuscated or objectively strange sunbjects in the photos.
This made the model training difficult as we had to chage our datasets multiple times looking for ones that had a good variety of subjects with decent images.
The sets we generated in roboflow had many more issues, one of which was that it divided our pikachu class into two classes, reducing our accuracy.

We started training the model in google colab, and the weights generated by our training were not usable in the windows CLI. We ended up writing python scripts to use the weights,
and this solved that issue. Furthermore with colab, it has a strict time limit of around 12 hours before we are kicked off and after that just two hours a day when it would let us back on.
This made training pretty difficult after our initial period of figuring the model out as we had very limited GPU time on colab.

With our CI/CD implementation, we had great difficulty withn our initial choice of Jenkins so me moved on to TravisCI. With TravisCI, we were able to run simpole tests of a few commands successfully,
but when it came to automatically testing the model with ultralytics commands, we got many errors about imports failing and packages missing which we couldn't fix. The commands we were trying to run on 
TravisCI work completely within the windows CLI, but for unknown reasons won't work through scripting.

--------------------------Deliverables------------------------------------------
The deliverables for this project can be found in the Project2Output folder within the repository.
This includes our cost function graph, accuracy table, output video sample, pydoc documentation, and some other relevant graphs.
The predict.py script functions in the windows CLI using our pretrained weights, and the model has an 85% accuracy on all classes.
The model is also able to detect multiple objects in the same image and the live webcam functionality works as well.

--------------------------Credits-------------------------------------------------
The base model was sourced from Ultralytics at https://github.com/ultralytics/yolov5
The training and validation data was sourced from Roboflow at
@misc{
                            pikachu-nmdik_dataset,
                            title = { Pikachu Dataset },
                            type = { Open Source Dataset },
                            author = { Pikachu },
                            howpublished = { \url{ https://universe.roboflow.com/pikachu-9uv9m/pikachu-nmdik } },
                            url = { https://universe.roboflow.com/pikachu-9uv9m/pikachu-nmdik },
                            journal = { Roboflow Universe },
                            publisher = { Roboflow },
                            year = { 2024 },
                            month = { jul },
                            note = { visited on 2024-12-03 },
                            }
@misc{
                            drones4_dataset,
                            title = { Drones4 Dataset },
                            type = { Open Source Dataset },
                            author = { Ivonne },
                            howpublished = { \url{ https://universe.roboflow.com/ivonne/drones4 } },
                            url = { https://universe.roboflow.com/ivonne/drones4 },
                            journal = { Roboflow Universe },
                            publisher = { Roboflow },
                            year = { 2023 },
                            month = { feb },
                            note = { visited on 2024-12-03 },
                            }
@misc{
                            dog-uxste_dataset,
                            title = { DOG Dataset },
                            type = { Open Source Dataset },
                            author = { Max },
                            howpublished = { \url{ https://universe.roboflow.com/max-evo5q/dog-uxste } },
                            url = { https://universe.roboflow.com/max-evo5q/dog-uxste },
                            journal = { Roboflow Universe },
                            publisher = { Roboflow },
                            year = { 2024 },
                            month = { may },
                            note = { visited on 2024-12-03 },
                            }
@misc{
                            catdetection-gy4yk_dataset,
                            title = { catdetection Dataset },
                            type = { Open Source Dataset },
                            author = { qb d },
                            howpublished = { \url{ https://universe.roboflow.com/qb-d/catdetection-gy4yk } },
                            url = { https://universe.roboflow.com/qb-d/catdetection-gy4yk },
                            journal = { Roboflow Universe },
                            publisher = { Roboflow },
                            year = { 2024 },
                            month = { may },
                            note = { visited on 2024-12-03 },
                            }
@misc{
                            people-counting-oh6y8_dataset,
                            title = { People Counting Dataset },
                            type = { Open Source Dataset },
                            author = { CONTADOR },
                            howpublished = { \url{ https://universe.roboflow.com/contador/people-counting-oh6y8 } },
                            url = { https://universe.roboflow.com/contador/people-counting-oh6y8 },
                            journal = { Roboflow Universe },
                            publisher = { Roboflow },
                            year = { 2024 },
                            month = { apr },
                            note = { visited on 2024-12-03 },
                            }

Owner

  • Login: wprobst1
  • Kind: user

GitHub Events

Total
  • Issue comment event: 4
  • Push event: 25
  • Public event: 1
  • Pull request event: 2
  • Create event: 3
Last Year
  • Issue comment event: 4
  • Push event: 25
  • Public event: 1
  • Pull request event: 2
  • Create event: 3

Dependencies

.github/workflows/ci-testing.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • slackapi/slack-github-action v2.0.0 composite
.github/workflows/cla.yml actions
  • contributor-assistant/github-action v2.6.1 composite
.github/workflows/docker.yml actions
  • actions/checkout v4 composite
  • docker/build-push-action v6 composite
  • docker/login-action v3 composite
  • docker/setup-buildx-action v3 composite
  • docker/setup-qemu-action v3 composite
.github/workflows/format.yml actions
  • ultralytics/actions main composite
.github/workflows/links.yml actions
  • actions/checkout v4 composite
  • ultralytics/actions/retry main composite
.github/workflows/merge-main-into-prs.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
.github/workflows/stale.yml actions
  • actions/stale v9 composite
utils/docker/Dockerfile docker
  • pytorch/pytorch 2.0.0-cuda11.7-cudnn8-runtime build
utils/google_app_engine/Dockerfile docker
  • gcr.io/google-appengine/python latest build
pyproject.toml pypi
  • matplotlib >=3.3.0
  • numpy >=1.22.2
  • opencv-python >=4.6.0
  • pandas >=1.1.4
  • pillow >=7.1.2
  • psutil *
  • py-cpuinfo *
  • pyyaml >=5.3.1
  • requests >=2.23.0
  • scipy >=1.4.1
  • seaborn >=0.11.0
  • thop >=0.1.1
  • torch >=1.8.0
  • torchvision >=0.9.0
  • tqdm >=4.64.0
  • ultralytics >=8.1.47
requirements.txt pypi
  • PyYAML >=5.3.1
  • gitpython >=3.1.30
  • matplotlib >=3.3
  • numpy >=1.23.5
  • opencv-python >=4.1.1
  • pandas >=1.1.4
  • pillow >=10.3.0
  • psutil *
  • requests >=2.32.2
  • scipy >=1.4.1
  • seaborn >=0.11.0
  • setuptools >=70.0.0
  • thop >=0.1.1
  • torchvision >=0.9.0
  • tqdm >=4.66.3
utils/google_app_engine/additional_requirements.txt pypi
  • Flask ==2.3.2
  • gunicorn ==22.0.0
  • pip ==23.3
  • werkzeug >=3.0.1
  • zipp >=3.19.1