import streamlit as st # Top down page rendering st.set_page_config(page_title='Hockey Breeds v2 - Objects', layout="wide", page_icon=":frame_with_picture:") st.title('Hockey Breeds v2 - Objects') intro = '''The first version of Hockey Breeds was fun and educational, but not useful for analyzing hockey videos. The second version is to a proof of concept with the ability to recognize individual "objects" within an image, which paves the way to ultimately tracking those objects through game play.''' st.markdown(intro) st.subheader('Object Detection Technical Details') desc = '''Hockey Breed detector v2 uses a state of the art (circa 2023) computer vision approach. I used the same training images as the first version of the Hockey Breeds model, but change the ML algorithm to use YOLO object detection (YOLO v8). The output will be a set of hockey objects (defined by "bounding boxes") with labels for any hockey image uploaded. **Object List**: 1. net 1. stick 1. puck 1. skater 1. goalie 1. referee ''' st.markdown(desc) st.subheader("Sample") st.image('src/images/samples/v2/v2-sample1-090124.png', caption='Sample image with hockey objects detected') st.subheader("Validation Results") st.markdown('''Validation of the model\'s performance was done using 15 images not included in the training set. The model had many issues; it did poorly with detecting *pucks* and *sticks* vs backgrounds and even goalies and skaters. It did very well on detecting referees.''') st.image("src/images/artifacts/confusion_matrix_v2.png", caption="Confusion Matrix for Hockey Breeds v2", )