The main thing that inspired me the most, was my passion for the visualization industry. Rather than going the "3 languages in 3 hours" route, the goal I had in mind was use my strengths and develop my skills to come up with better techniques and methodologies for solving problems. These algorithms will in the end allow me to solve things which I thought was not possible before. I really enjoyed my time here and the things that were accomplished by me in BitCamp this year. These accomplishments may be minute, but they play a big role in my drive for Computer Science.
What it does
We use a pattern recognition technique to pinpoint key parts of an image. After figuring out the coordinates of these references, we create the simple regression. We use simple simple regression to figure out the slope of the spine in the image then cross compare that to the slope of a perfect spine. The difference would be displayed to test if you possibly had scoliosis. We also use a similar technique to do other things like find out if one needs braces on there teeth. I am to find the points in a mouth at which the teeth reside. This data can be extrapolated to form lines which again can use simple regression to compare the "curvature" of the teeth to an ideal image hence determining if one needs braces or not.
How I built it
I was able to build this project using Java, OpenCV and the apache math libraries. A stock image was used which was obtained through the camera feed and then it used final image that the user could select. The final image was used to detect similar images in the camera feed. The final images were found using a formula that was in the OpenCV library. Every time images were found, we stored it's coordinates and then used an apache library, simple regression, to analyze the data obtained. I refined this process by improving the traversing method and only looking for the image in approximate areas. For the teeth, by finding the points at which the teeth meet gums, we can compare it to an ideal array of regression values in a very similar way as the spine alignment. Then we created a GUI using swing.
Challenges I ran into
Simply the challenge of not being able to interpret the errors of the OpenCV library. The documentation and forums are out there for OpenCV are predominantly for C++ or Python, both of which use different naming methodology and syntax. This required me to go into the source code of the OpenCV libraries and build from the work of others. I had to see exactly what the code did and how things were handled. For example, the OpenCV library basically converts any given image into a matrix of RGB scalar values. From this and user developed algorithms, the accomplishments are limitless.
Accomplishments that I'm proud of
Successfully being able to say that I can do something if I put my mind towards it.
What I learned
I learned how to interpret the work of others (OpenCV) with little to no documentation. I think that is skill is essential in the Computer Science industry as what one person can achieve is very limited, but as team a lot is possible.
I called this project "MedicalSuite" because it is an array of algorithms that are used to solve problems in the Medical Industry that revolve around visualization, this is the goal that I have in mind for this project. It can absolutely be achieved but it requires time and teamwork. Another idea that I thought of for future hack-a-thon's revolves around hack-a-thon's themselves and fundamental problem that the people face and it can be addressed. To find what it is, stay posted for the next hack-a-thon I'm in. :)