Further deliberated on my 3 ideas, I really enjoy the idea about replacing the keyboard and mouse set up with a gesture recognition system from a 2D camera, most gesture recog systems require another device that one must buy, but cameras are already built into most things. My other favorite is the personal budgeting app, I am interested in this one because it applies to my life, It would be software that I would use to help me save money.
Weekly Update
I have changed two of my ideas upon re-evaluating the achievability of the project given my skill and the time limit I have
Weekly Update
This week, I finally got my own laptop so I redownloaded all the necessary software and libraries for my gesture recognition system. Using the OpenCV library in Python, I was finally able to use the camera to detect the hand by separating the background with the foreground via thresholding. Then, I used findContours to identify the hand within a region of interest (roi). Finally, I made a copy of the the frame containing the roi and displayed the video in binary black and white. My code can now detect the hand with a static background.
Weekly Update (Jan 30)
This week I met with Ajit and discussed some of the necessary features for the user interface that the administrator will be using. This involved seeing a list of recently checked out items, adding new objects, and adding new users. I also met with Craig and discussed the back-end work. We decided to use Django and PostgreSQL.
Capstone Progress#2 1/30/2019
In terms of implementation, I have created 4 different heuristics functions for my Capstone that take in a state and output a value based on how good the state is. with 4 being inadmissible. Technically 5 as 2 heuristics are additions to a single heuristic.
Modified my admissible heuristic function so it outputs a move (left=-1,right=+1,up=-4,down=+4) based on what move a search algorithm would have performed if it is was taking an action in that state.
Created my training agent function that outputs a file contains vectors of these heuristic outputs. One per state
Did some research into activation functions and Neural Network types to figure out what initial design I should go with for my Network.
January 30th Update
This week I worked on developing a script that takes a directory and determines if the contents are all images of the same type, and if they aren’t converts them to jpgs. I also meet with my adviser and starting working on an outline that will be due next week.
CS488 Update 2 (01/30/19)
This week dealt with the focus of the FFT and other conversion formulas. In recognizing that the Fast Fourier Transform is an algorithm that computes the discrete Fourier transform (DFT) of a sequence, or its inverse (IDFT), you understand how that mainly relates to Fourier analysis and converting a signal from its original domain (often time and/or space) to a representation in the frequency domain and vice versa. With my current project, I am trying to understand how this relates between the signal processing and MIDI, and how that will allow me to transfer the signals into the shapes that I will be making in Jitter and MaxMSP. In understanding the multiple ways in which the transforms work I can use the signals that I get by decomposing a sequence of values into components of different frequencies, which will then generate multiple sounds, and that hopefully can be somewhat composed into a song or piece that is made through the patch. Currently SoundStroll 2.0, but it might end up being a whole different concept and Max patch when it’s done. In understanding what changes are being made, the new product could be thought of as a completely different three-dimensional audiovisual spatialization software. My main work has been with working to create a different audiovisual projection whilst working with MIDI and other signals to get different spatialization in MaxMSP, this was concurrently added to my paper, and it was also worked on in MaxMSP and Jitter.
January 30 Update
Here is what I worked on for my project this week:
-Worked with poly tool to process two simultaneous notes.
-Got it working but temporarily disabled the circle of fifths map table-Now midi messages are sent to two paths for separate notes.
-Using xfade to combine matrices is not good, colors are still evenly distributed throughout the whole matrix instead of following freq mapping.
-Patch is getting crowded need to figure out in and out tool to split up and organize project.
-Talked with Xunfei about getting Max installed on some Earlham laptops
Week 1 Ideas
Idea 1: Optical Character Recognition using Machine Learning
Optical character recognition is not a completely new field of research. However, with the advance of today’s technology, we can apply machine learning to optical character recognition and therefore can recognize not only the printed characters but the more difficult handwritten characters or characters from different type of documents such as certificate or receipt. With the help of OCR, a lot of human work can be reduce. I would like to research about that specific use of machine learning in OCR to handle those harder cases.
Idea 2: Disease prediction
People have always want to know their health status therefore they can prepare and take a better care of their body. It is not difficult to know a person’s current health status since he/she can just go to hospital to have a general medical check. However, people also want to know what type of disease they may have the future, this is when disease prediction using machine learning will be useful. I would like to research about this topic but the first things I found to be difficult will be how to get the appropriate the training data set.
Idea 3: Time management application
Since students sometimes need help with planning the classes and studying for exams, I want to create an application that at first can suggest the best time for students to go class or what time to study. After that, each term, the student can input how well did he/she perform on those classes/exams and from that in the next term/semester the application may suggest a more specific timetable for that specific students to have a better performance.
Week 1 Ideas
Topic Name: Earlham Tennis App
Developing an app to use it as a way of improvement for the tennis players. Entering data during matches to get score stats, errors and serve percentages. All this data will be stored in a database and could be accessed at any time.
Topic Name: Box Office App
Again, develop a mobile application to manage the Earlham Box Office. Users would be able to look at the event schedule, purchase tickets. To make it efficient, the student data will have to be obtained in order to find from the directory.
Topic Name: Sensor
If possible, make a sensor that would be attached to the tennis racquet determining how much strength is used and how many balls were hit in a span of time. This would be collected and according to the body analytics of the player, it can be determined how to improve the performance. The stats can then be seen on a web application.
CS488 Week1 Update
Researched how image processing works (tutorials, examples using python and open-source software OpenCV). ~20 minutes on 1/19/19, ~30 minutes on 1/21/19
Made sure all necessary software was downloaded to my computer. ~30 minutes on 1/17/19
Adjusted timeline. ~15 minutes on 1/23/19
CS 488 First Post
Found an advisor, and set up a meeting time to plan my project. Tested that the libraries I plan on using are available and functional on the cluster. Finally reviewed my project to make review the goals I’ve set myself are achievable and reasonable.
CS488 – Welcome Post
This is my first post for CS488.
- Met with Ajit to plan the next few weeks, and decided to start the data collection this week.
- Edited the timeline a little bit to include implementation of the project.
- I’ve shared my box folder with Dave and Charlie and will soon be contacting Andy Moore for access to volumetric data collected by the Geology students across campus.
CS488 Update 1 (01/23/19)
This first week, I tried to focus
my project into something tangible. Initially, I was not sure about how
I wanted to go about editing and making SoundStroll 2.0, and I had
talks with advisors who told me that I tried to achieve too much in a
short period and that I also needed to find a focus. Interestingly
enough, I think that working with and creating a bandpass filter, in
addition to other improvements, can produce different effects in
SoundStroll 2.0, and I’m curious to see how that might change
SoundStroll 2.0, regarding effects and three-dimensional objects that
are spatialized with the signals.
In understanding what needs to be done for the project, I still have many main steps:
1. Completely rehaul and add a new more advanced spatialization toolset/visualizer to work with the updated software.
2. Add vocal recognition through a speech processing patch that’s made by myself to the updated Max project and get them to work together.
3. Add new additions that track the Fourier Transforms for analysis that allow the original and added vocal recognition through a speech processing patch.
4. Make sure that vocal, MIDI, and OpenGL components are working so that objects are spatialized through vocal component or the MIDI interface.
5. Potentially add virtual reality/VR component to the project to let you traverse the world.
In finality, I want SoundStroll 2.0 to be a logical successor to its former self. SoundStroll 2.0, or the new edition that I plan to create will use Fourier Transforms for vocal recognition through a speech processing application, which can also be analyzed for more profound findings audially or mathematically in relation to sound; a different, more advanced spatialization toolset to create a scene that you can traverse; and a more connected environment to create different ways to traverse with Max for Live, Ableton Live, and Reason, which will allow new sounds and objects to be triggered and spatialized through SoundStroll 2.0.
Week 1 – Update
This week I looked over the specific dataset that I want to use for my project. I reached out to sources to obtain that dataset. Similarly, I read various researches and, checked existing experiments and projects to learn implementation of Convolutional Neural Network (CNN) in python using Tensorflow and Keras. Read documentations and went over tutorials to learn Tensorflow and OpenCv. Also, I setup Tensorflow in my local machine to work with OpenCv library.
Just sharing a helpful tutorial link below to understand about OpenCV
Link: https://www.lynda.com/Python-tutorials/OpenCV-Python-Developers/601786-2.html
388 week 1 – 3 ideas
My first idea is for a application that allows the computer to be navigated with gesture control, initial thought is to use the camera that is on almost every laptop to map the mouse pointer between say the thumb and the forefinger, and when the thumb and forefinger touch emulate a the click of the mouse. Further interface could also be implemented such as a virtual keyboard or talk to text features, basically attempting to replace a mouse and keyboard, further research needed.
My second idea is either a stand alone software or a Photoshop add on for real time pixel art animation editors. Given a sequence of images with a specified distance apart, color pallet and speed at which to move through the images, one could make a change and the animation would update real time, also allowing the change of color pallets.
My third idea is a personal budget planning and expense tracking app. I person can track what they buy by inputting the cost of an item and categorize that item falls into (possibly further subcategories for more in depth statistics) ie $16.69 on groceries on 1/21/19, $32.55 on cloths on 1/22/19 etc. One can input there salary and how much they want to not spend and the app could keep track and suggest a budget for you, give statistics about your spending patterns etc.
Week 1 update 488
The tangible work I have done this week on my project is finding the data sets and started setting up a work flow to automate the process. I created the connection between SQL and my simulation so that the simulation takes 2 arguments, a name of the database to store the timestamp data as well as the result data and the file path of a csv containing data. This sets up a database for the data with three tables, two of which contain results and one with the actual timestamp data. I have also started to take notes as I go so that I can refer to them when I start to write my paper.
January 23 Update
I have gotten off to a relatively smooth start on my project. Xunfei is going to be my adviser and I have scheduled a meeting with her for tomorrow morning. I have prepared to present on my topic in class tomorrow. The majority of my time this week I spent starting my project implementation. I am still learning how to use Max/Jitter effectively but here are some of the things I have done:
-Map color values to MIDI notes.
-Map a saw waveform function over the x axis with scale relative to note frecuency
-Make the saw function scroll horizontally at a rate relative to frequency
-Crossfade the color and waveform matrices
With all of this together, my projects output visual output represents a single note at a time. Obviously it is a pretty rough version of what I want the eventually single note visualization to look like but the foundation of representing tone through color and pitch through wave frequency is functional and has no noticeable latency between note press and display.
First Post- Ali
This week I met with Ajit for an hour. We went over timeline and design of my project. I also met with Craig and ordered the RFID reader and tags after approving them.
22/1/2019: Capstone Progress#1
First post of Capstone progress. First thing I did was review my Capstone proposal paper to re familiarize myself. Immediately I begun work on the work I outlined for Week 1 in my timeline.
I built a generator for random initial board states for an 11 sliding tile-puzzle. I chose to have each board state be a solved state that was then subjected to a random number of moves. This is ensure that each state is solvable without having to check first. Another choice I made was to have each state be represented as a string with each tile being represented by a hexadecimal number and position represented by its index in string.The blank space is represented by “_”. This was done because a number of states will be generated during the AI’s decision making process so the states should be as small and compact as possible.
I also started to look into the tools for creating the neural network. So far I am looking at Tensorflow, Keras in combination with Python.