Skip to content

Commit

Permalink
Merge pull request #151 from ESE-Peasy/150-prep-for-release
Browse files Browse the repository at this point in the history
Preparation for v1.0.0 release
  • Loading branch information
Ashwin-MJ authored Apr 14, 2021
2 parents 00e250c + c012132 commit 7cf652f
Show file tree
Hide file tree
Showing 8 changed files with 28 additions and 23 deletions.
11 changes: 5 additions & 6 deletions PosturePerfection_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ case $OS in
*"armv7"*)
wget "https://github.com/ESE-Peasy/opencv/releases/download/v4.5.1-pp/opencv-4.5.1_armhf.deb"
sudo apt install ./opencv-4.5.1_armhf.deb
wget "https://github.com/ESE-Peasy/PosturePerfection/releases/download/v0.4.0/PosturePerfection_0.4.0_armv7l"
chmod u+x PosturePerfection_0.4.0_armv7l
wget "https://github.com/ESE-Peasy/PosturePerfection/releases/download/v1.0.0/PosturePerfection_1.0.0_armv7l"
chmod u+x PosturePerfection_1.0.0_armv7l
;;
*"x86"*)
wget "https://github.com/ESE-Peasy/opencv/releases/download/v4.5.1-pp/opencv-4.5.1_x86.deb"
sudo apt install ./opencv-4.5.1_x86.deb
wget "https://github.com/ESE-Peasy/PosturePerfection/releases/download/v0.4.0/PosturePerfection_0.4.0_x86_64"
chmod u+x PosturePerfection_0.4.0_x86_64
wget "https://github.com/ESE-Peasy/PosturePerfection/releases/download/v1.0.0/PosturePerfection_1.0.0_x86_64"
chmod u+x PosturePerfection_1.0.0_x86_64
;;
*)
printf -e "${RED}Unfortunately PosturePerfection is not yet supported on your system.${NO_COLOUR}\n"
Expand All @@ -41,5 +41,4 @@ sudo ldconfig

printf "${B_GREEN}PosturePerfection has been successfully installed!\n\n"

printf "${GREEN}Run ./PosturePerfection_0.4.0_xxx to run our graphical user interface which displays real time posture estimation. Lines are drawn between
your Head, Neck, Shoulder and Hip to demonstrate your detected posture! See the \`About & Help\` page for more information about usage.${NO_COLOUR}\n\n"
printf "${GREEN}Run ./PosturePerfection_1.0.0_xxx to run our graphical user interface which displays real time posture estimation. Lines are drawn between your Head, Neck, Shoulder and Hip to demonstrate your detected posture! When you adopt a poor posture, the system will show you guidance back to a better posture in real time! See the \`About & Help\` page for more information about usage.${NO_COLOUR}\n\n"
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
<ul>
<li><a href="#components-used">Components Used</a></li>
<li><a href="#built-with">Built With</a></li>
<li><a href="#demonstration">Demonstration</a></li>
</ul>
</li>
<li>
Expand Down Expand Up @@ -83,6 +84,12 @@ We are a group of 5th Year Electronics & Software Engineering students at the Un
- CMake
- CTest

## Demonstration

Check out a demo of PosturePerfection below:

[![Demonstration of PosturePerfection](https://user-images.githubusercontent.com/45148261/114715259-ce48d900-9d2a-11eb-8306-7c3a4138aee7.mp4)](https://ese-peasy.github.io/PosturePerfection/#demonstration)

<!-- GETTING STARTED -->

## Quickstart
Expand Down
5 changes: 1 addition & 4 deletions docs/doxygen-homepage.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The project is separated into three main sections, each with a unique function.

1. The Pipeline is responsible for performing pose estimation to detect the user's posture and identify when it has worsened as well as the adjustments required to guide the user into a better posture.
2. The GUI is responsible for displaying these results and posture adjustment suggestions to the user, as well as allowing various configuration options to be set.
3. The [Notification System](@ref Notify) allows an alert to be sent to a separate device which the user is using.
3. The [Notification System](@ref Notify) allows an alert to be sent to a separate device which the user is using. This is done using [simple-remote-notify-send](https://github.com/ESE-Peasy/simple-remote-notify-send), also developed by us!

\subsection pipeline Pipeline

Expand Down Expand Up @@ -49,9 +49,6 @@ The _GUI_ is responsible for user interaction and displaying a live feed of the

A _[Notification System](@ref Notify)_ has been developed to allow an alert to be sent to a separate device when then system detects a poor posture. In this way, although the PosturePerfection system will be placed at the side of the user to analyse their posture profile, an alert can be sent to their laptop device which they are working on so that they are immediately notified of their poor posture.

- [NotifyBroadcast](@ref Notify::NotifyBroadcast)
- [NotifyReceiver](@ref Notify::NotifyReceiver)

\section additional_resources Additional Resources

- [GitHub Repository](http://github.com/ESE-Peasy/PosturePerfection)
Expand Down
14 changes: 7 additions & 7 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,14 @@ Therefore we wanted to create a system which notifies you when it detects a poor

## Demonstration

Coming Soon!
{: .label .label-yellow}
Check out a demonstration of PosturePerfection running on a Raspberry Pi 4B below:

## Future Plans

Coming Soon!
{: .label .label-yellow}
<div align="center">
<video width="600" controls>
<source src="videos/PosturePerfectionv1.0.0.mp4" type="video/mp4">
</video>
</div>

## Support or Contact

Please reach out to us [here](/about-us) if you have any questions.
Please reach out to us [here](about-us) if you have any questions.
8 changes: 4 additions & 4 deletions docs/requirements/spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ Here we outline the specification that was developed at the beginning of our pro
| It must run using a single camera attached to the Raspberry Pi |
| The system should work with sensible default settings such that initialisation of PosturePerfection is straightforward |
| Customisable settings/options must be presentable and configurable with minimal overhead |
| The system should act as a "posture warning system" which warns the user within X seconds of their posture worsening. A "bad" posture is defined [here](tbc) |
| The warning defined must initially at a minimum be in the form of an obvious notification to the user. The exact nature of this notification is yet to be decided |
| The system should also incorporate a "posture correction" aspect which can guide the user to "good" posture which can be configured by the user themself |
| The system could be extended to make use of a GUI via a small/medium sized HDMI-connected screen |
| The system should act as a "posture warning system" which warns the user when their posture worsen after a minimal delay.|
| The warning defined must, at a minimum, be in the form of an obvious notification to the user |
| The system should also incorporate a "posture correction" aspect which can guide the user to a "good" posture which can be configured by the user themself |
| The system could be extended to make use of a GUI via a small/medium sized screen |
| Optionally, the system could also send a notification to the main work machine of the user, so that they are immediately made aware of worsened posture, and so that they can turn to the posture correction tool for guidance |
4 changes: 3 additions & 1 deletion docs/system/sequence-diagram.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,12 @@ To more easily understand the exact process of analysing the video input and per

The system is separated into six main components:

## 1. `PiCamera`
## 1. `FrameGenerator`

An input video stream must first be obtained which allows frames to be passed through the system. This is done using [OpenCV](https://docs.opencv.org/3.4/d8/dfe/classcv_1_1VideoCapture.html) and individual individual frames are passed to the `Core Thread`.

[FrameGenerator Documentation](../html/classPipeline_1_1FrameGenerator.html){: .btn .btn-green}

## 2. `PreProcessor`

The `PreProcessor` is responsible for performing some initial processing on each frame of the video stream as it comes in. The image needs to be resized and normalised to suit the model being used in the `InferenceCore`, however it is also possible that some further filtering can be completed to improve the performance of the pose estimation model. This could be filtering the image to discard sections which are not of interest, such as the background of the picture.
Expand Down
Binary file added docs/videos/PosturePerfectionv1.0.0.mp4
Binary file not shown.
2 changes: 1 addition & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
set(CMAKE_CXX_STANDARD 11)
cmake_minimum_required(VERSION 3.16) # Required by TFL
project(PosturePerfection VERSION 0.3.0)
project(PosturePerfection VERSION 1.0.0)

if(APPLE)
set(CMAKE_PREFIX_PATH "/usr/local/Cellar/")
Expand Down

0 comments on commit 7cf652f

Please sign in to comment.