Your task is to use image capturing AI (Object Detection) to specific items shown on a camera. Your goal is to transmit the count of a specific type of item to our network, PITON, using a LoRa radio. You will be given the LoRa radio, starter code for data transmission, and a set of identifiers. Your team will work to modify the existing code to perform the following tasks:
- Use the image capturing AI to identify and count a specific type of item.
- Transmit the count of the identified item over LoRa to the PITON network.
The challenge is divided into two phases:
Phase 1: Determine a good sampling window. Modify the provided starter code to use the image capturing AI, identify and count a specific item (during sample window), and transmit the count over LoRa to the PITON network. Points will be awarded based on how quickly your team can accomplish this. You are required to commit your code in your teams hackathon folder before you are considered complete with Phase 1.
We will hold a review between phases where teams will be given a short amount of time to review and correct their code before Phase 2
The winner of the Hack-A-Thon will be the team with the highest total points from both phases.
Each team will consist of 3. We will distribute all necessary materials.
You will be provided with a Raspberry Pi, a LoRa radio, and a set of identifiers (keys.py
).You have been given starter code, which you will need to modify to train the Object Detection AI (detect.py
) and transmit data over LoRa. You will need to install the LoRa radio hat on the Raspberry Pi and connect it to the PITON network.
You may complete the tasks in any order that you choose. You have some experience with the Object Detection script as it is the same one that you used last week. You will now being enforcing a sample window instead of an infinite loop. The LoRa code is all new to you but you have been given starter code to help you get started. You may need to modify the code to transmit the count of a specific item over LoRa to the PITON network.
It is important to review each file and understand what is happening before makes changes.
YOU MUST adhere to the Data Formatting Guidelines to get full points!
- Read all
.md
Markdown files - Review ClassroomPresentation PDF
- Modify the Object Detection Code
detect.py
. Look for# TODO
3.1. Find where you should be printing results and consider how you will use that to check for your class. Hint: We covered this yesterdaynames[int(c)]
will return the class string for each object it sees. Soif
it sees a birdnames[int(c)] == 'bird'
will be true. 3.2. You are given an example of how to usetime.time()
to get the current time. Use those two tools to exit that detection loop after your sampling window is complete. Hint:If
i runtime1=time.time()
and wait 30 minutes and run it againtime2=time.time()
. What do you thinktime1 - time2
will equal? 3.2. BEFORE you try to run the detect.py you must search through thoseimport
statements and make sure you have all the necessary supporting directories in the same location. Hint: Look at the folder names currently in/home/pi/yolov7
and see if any match yourfrom
orimport
statements . You can copy the ones you want right where you will need them. - Setup LoRa Radio and Code
4.1 Follow
RADIO.md
andSOFTWARE.md
- Modify the
data.py
file to make sure you are transmitting your data the correct way. CheckDATA.md
- Transmit your data to PITON
6.1 To run the LoRa code (transmit) you need to run:
python3 main.py
- Commit Code with Git
Once your team has successfully identified and counted a specific item, and transmitted the count to the PITON network, you have completed Phase 1 of the challenge. You will then be given a new set of instructions for Phase 2.
Phase 2 will begin for everyone at the same time. You will have a short amount of time to review and correct your code before Phase 2 begins.
Your team's code should be committed to your team's folder in the provided GitHub repository. This is part of the challenge and will be considered during the scoring. You will COMMIT your code to the repository. DO NOT PUSH the code to the remote repository until the end of the challenge (Others will be able to see your work if you do)
- Instructional PowerPoint
- StemX Website
- Git Basics Guide
- LoRa Radio Hardware Installation Guide
- DATA.md file for data layout instructions
- LoRa Software Instructions
- Bytearray Information
Participants are encouraged to use any available resources, including the internet, to assist them in completing the challenge.