This week I met with Charlie to discuss my project design. We also talked about GIS extension, which is a library to handle GIS data for NetLogo. Charlie talked about how to layer different types of data on a base map. The most important tasks for the upcoming weeks are to figure out how to find different types of data for a fire location and how to process the data.
I worked extensively on finishing the first draft. I rewrote the design and related works section.
Uploaded papers I have finalized for the proposal. I will meet Xunfei to confirm the papers and talk more about the first draft. I have made an appointment with the writing center for the first draft. I spoke to the library desk and Jose regarding the project and got suitable feedback.
I have narrowed my project to studying Facebook Reactions and how reactions may differ based on the gender of the post creator. I have also found papers that focus on facebook reactions. Because Facebook Reactions were released as a feature in 2016, the papers on the subject are limited, and I haven’t found any relating to gender. However, some papers I found analyze facebook reactions in a way that would be interesting to compare between the gender of the post creator. For example, one paper uses the reactions to measure the controversy of a post, so I could measure if posts by women are more controversial in general than that of men. I also found tools from some of these papers that I could use in my project.
After meeting with Xunfei, I decided to modify my diagram a bit so I redesigned it from my practice proposal. I also collected more papers that could be used in my proposal and read more articles and research papers. I also found an online tutorial of a project that is closely related to mine, so I enrolled in the course for free and downloaded the jupyter file to play with it on my own. I think doing this now will help me figure out some possible options and directions for next semester. I also made a timeline of my work for this semester as well as next semester. I asked Xunfei some remaining questions about the proposal and my project in general to clarify my thoughts. I also checked out the rubric for project proposal and brainstormed ideas for my first draft of proposal.
In order to get more familiar with neural networks I decided to use a program that lets you create neural networks. In order to do this I started reading about tensorflow and tensorflow graphs and their inner workings like variables, constants and operations. I read some tutorials on tensorflow and also studied about the Keras model subclassing API which is one of the building blocks of tensor flow to start building a simple neural network. I also read I also searched for more papers that are similar to my research and read Semantic expansion using word embedding clustering and convolutional neural network for improving short text classification, Semantic Clustering and Convolutional Neural Network for Short Text Categorization in order to familiarize myself more with neural networks that are used for text classification.
- This past week I have been trying to find more research papers that discuss how to create a prototype fake news detector instead of papers that just talk about how to discern fake news from media.
- The hunt for those kinds of papers is more difficult than the one for methods of fake news detection which tells me that my work in creating a user application for fake news detection is very much needed.
- It also seems like a lot of these papers are geared specifically towards twitter and so hopefully my research can fill a gap.
- I have also been trying to figure out a good timeline for myself both for this semester and the next. I do believe this project is feasible if I can just find some data sets in a timely manner.
I have been looking more into the image processing part. I have created my first draft of the code to alter the colors of an image. I have also looked into the rotating of the food in the image. This seems not doable (in the way and scope I wanted to), so I changed my framework to take a video as an input, instead of an image. The video can then be split into images, and the images from the better angels will be picked. I have also written to the Gourmet Food Dataset researchers to ask for their dataset, but have not received a reply yet. I have been looking at the yelp dataset. I have found an online project that assumed all images taken with DSLR cameras were good, and the rest wasn’t. This seems to have worked pretty well for the classifying. I will look into that.
I discussed my new idea with Charlie and Xunfei. I searched for more papers about 3D modeling and volume estimation but could not find a lot. I will be creating an Andriod application, so I looked into Andriod camera API and found that I can specify the distance between the food and phone camera until it satisfies the requirement. I plan to include face recognition as authentication for privacy purposes and found a GitHub repo for it that I can use. I also found a paper that is more closely related than what I have found so far.
After coming back from CMU workshop for CS researches, I have decided to modify my idea a bit to integrate more CV into the project. From recipe recommendation and calorie estimation, I have decided to focus only on calorie estimation. There are many calorie estimation software that requires users to have a reference object when taking a picture of food. As much as this method has brought food calorie estimation to a new level of accuracy, it is inconvenient for users as they need to have the reference object with them at all times.
In my project, I aim to solve this problem as well as to bring the accuracy of calorie estimation to another level. Users will scan the reference object the first time they set up the application. The scanned object will be saved in the database as a 3D object with its area and volume. Next time the user scans the food, the object will appear next to food. These two will be compared and extract the volume of food from it. From volume, the calorie of food will be estimated.
I read and did more research on different algorithms of recipe recommendation. I removed some papers from my box that turned out to be not quite related and added some more papers. I also wrote the final version of my literature review.
During this past week, I have revised how I want to implement my social engineering attack. I want to use what is called a USB rubber ducky where you insert a MicroSD card into the USB. This card has payloads on it which you insert into the victims computer and then the payload is executed. Many different types of payloads can be written. These scripts are written in a language called duck script.
Charlie and I also discussed how to better implement my physical attack. This includes using a wireless adapter as well as ethernet cords to jack into ports around campus and see how easily I can get in.
In the past week, I have:
- Finished a simple Hangman Game in Elixir, I coded it up during the weekend. It can be found here: https://github.com/hungphi98/Hangman_Elixir. I learned a lot of things while making this tiny game: decoupling design; BEAM processes and concurrency; distributed client-side; and a couple of Elixir native concepts: Supervisor, Agent, and Application. I think these lessons will be extremely valuable to me once I started implementing my idea.
- I started picking up three books and reading them at the same time, two books by Tanenbaum: Distributed System and Computer Network, another one is Handbook of Peer to peer networking. I find it much more useful to learn from reading books other than papers. They gave me a foundation of knowledge, and I don’t feel starved like I do when reading the papers. Some of the stuff I have picked up so far:
- Scaling techniques
- Basics of network security
- Requirements and implications of a P2P network
- I started seriously looking at the implementation of Blockchain. I have learned their basic protocol and had a rough idea of how they work. I have coded a basic blockchain using Flask but too shy to upload to GitHub since the code is extremely messy – I might clean it – probably not.
For this week, I started working on NetLogo, the software that I plan to use to create the simulation model for my project. I looked into the tutorials and the sample models library. NetLogo has its own programming language and development environment, so I spent quite some time to study its ecosystem. I also created a simple simulation model that read a file containing elevation information, display the elevation in different shades of green, built some fire sources and let them spread to places where elevation was smaller than 500. All of my notes for NetLogo can be found in Box.
Charlie and I also discussed my design for the project. For now I will focus on four types of input: Wind, Elevation, Temperature, and Humidity. First I will explore them individually to see how each affects my model. Then I will combine them, two at a time, to explore their combined effect on the model.
I found a MFCC library in GitHub and explored it a little bit. It directly takes a wav file as input and returns one N*1 array (a sequence of acoustic vector). I recorded my voice and converted to a wav file. I briefly tested the code. It took my wav file and return an array containing a sequence of vectors. I will use this library in my project. But there are many related factors that i need to study. I also wrote the timeline for the rest of this semester and next semester. My next step is to keep working on this MFCC library and explore the Dynamic Time Warping library in GitHub.
I finished a first pass of all but one of the papers in my reading list, and also read some of the papers that are highly relevant to my project, which I had already read for a first pass, for a second or third pass depending on how relevant the content seemed. I have also outlined the introduction and motivation for my project, and am working through the related works section. Apart from the project proposal, I have also spent some time trying to find some ‘gadgets’ that will assist with the proof for a simpler variant of parks puzzle, which is an effort that has not yet borne much fruit.
This week I have:
- Learned about the P2P and different Protocols in the implementation
- Learned about the history of P2P, and different architectures in implementing a fully functional P2P File Sharing Application. It is quite colorful actually.
- Made a rough draft of Outline Proposal
- Learned about design patterns in Elixir. I am still very very new to the language. The backend architecture of Elixir is actually a lot different from all the web servers backend I have seen.
- The code is really really tight – there is should be no place for redundancy, ever. A good Elixir code should be decoupled as much as possible for scaling later.
- Perfect for real-time processing, and concurrency handling. – An absolutely perfect choice for this project. Fun fact, Elixir is built on top of Erlang VM. And Erlang is what helped WhatsApp become the WhatsApp we know today – at times WhatsApp had 1 million new users every day – and the scaling power of Erlang enabled instantaneous communication, with little to no failure of nodes. AT&T also used Erlang as its backbone for telecommunication – in Erlang, your application still runs while being updated! (That’s why you can make phone calls why AT&T updates their software in the background – mindblown!)
- Supervision tree which automatically respawns failing nodes/processes –> guarantee availability.
- Running on Erlang VM means the code in Elixir is compiled into Erlang bytecode, which runs on BEAM VM. Erlang processes are implemented entirely by the Erlang VM and have no connection to either OS processes or OS threads. So even if you are running an Erlang system of over ten million processes it is still only one OS process and one thread per core and completely isolated to your actual OS. Amazing!
- There are more wonderful things about Elixir but I guess I stop ranting here.
- I am trying to scale my current implementation of Baby Distributed Hash Table (still very early stage and primitive) to more nodes but there are some unexpected bugs that I have to study further. The Distributed Hash Table will become a crucial part of the query later in my application, along with the Merkle Tree.
- I am studying the architecture of Napster – the killer P2P application that appears in the early 2000s that paved the way to P2P. However, I kinda want to improve/ or rather try with a slightly modified architecture – to negate the delegator/gateway node to make my system completely decentralized to absolutely destroy the single point of failure. I am not sure if this is possible. I might not have time to actually implement it in the near future but might be good to keep in mind.
- Continue with studying Elixir. The more I learn about it, the more I fall in love with this language. So elegant yet doing so much.
- Continue to do more research on applications that have P2P architectures. I already saw some “grid architecture”, which is slightly different from P2P but have not taken a deep dive in it yet. So perhaps one of the things to look at. I have also looked at some apps other than Napster, and I wonder why most of them were implemented for Windows.
- Contemplate over the current architecture that I have in mind and its purpose. Most of the P2P apps have faced a challenge in the legal issues regarding copyright. I guess I have to repurpose my app such that no such thing would happen if I decide to do hardcore and actually deploy it into use.
This week, I worked more on my proposal outline. Tuesday morning, I met with somebody from EPIC to go over my grant application to go to GDC, at which I may try getting some playtesting data from my project from professionals. This morning, I met with Xunfei to look at my proposal outline before revising and finalizing it.
During this week, I continued work on my literature review after meeting with Xunfei. After finishing the review, I also started work on my proposal outline, and continued looking for more resources to use in my project. I specifically need to find more procedural generation source code for game stages, I’m fairly happy with my two music generation methods.
- I’ve been working on the Lit Review and Proposal Outline this week and I finally finished the Lit Review fully.
- My Lit Review included sections on:
- Data sets: what kind of data has been tested and what do they extract from the data to use as a way of identifying misinformation
- Identification/Classification Methods: what approaches did people take to test the data and have it respond with whether or not it was fake news
- Prototype Design Consideration: some papers outlined what a good prototype detector should have or be used for and that is something I want to deliver on so it was important I note what I found
- The Proposal was a bit challenging
- While drawing designs, I realized that there are a lot of parts to my idea (not that it’s unfeasible though) so I’ll have to sit down and not only figure out a good overall framework but good designs for all the smaller parts
- I also struggled with the methodology, budget, and timeline section because my framework is very much in flux since I actually need to figure out what works before doing the meat of my project.
I am working on finding more papers that study gender bias in social media posts and narrowing my idea further. One challenge is finding a feasible way to collect data from a site (since APIs have limits), or finding an existing data set or web scraper that fits my needs. I am also looking for authors that have published their code for their work and/or who have described their methods in detail.
This past week I worked on revising my literature review as well as writing my proposal outline that will serve as a starting point for my first proposal draft. I met with my advisor who helped me to come up with a good starting dataset for my initial neural network. I will continue read about neural networks and maybe try to implement a simple one in the upcoming weeks.
I went over the broad categories that need to be addressed by the project proposal, and created a proposal outline for Assignment 7. I also worked with my advisor, Igor, to find a good candidate for the reduction adn start working on the proof. We found that there was a natural way of reducing a subset of 3SAT, 2SAT with distinct variables was, to an instance of Parks Puzzle. For next week I hope to generalize the technique to a larger subset of 3SAT.
This week, I changed my method from hybrid to content-based filtering because there isn’t much research done in the hybrid method. So I chose to improve the content-based filtering instead. I also wrote my proposal outline and revised my diagram with the help of Xunfei. I might explore more ways to improve the existing method and see if there is anything else I can add.
For this week, I wrote my proposal outline. During the next two weeks I will use this to construct the 1st draft of my proposal. I also spoke with Charlie about taking a different approach to the social engineering aspect of my project. Most of these I have found YouTube videos to demonstrate and describe the process but I have yet to find any hard research.
I also constructed more details for implementing the technical part of my project. This will also be discussed with Craig.
I finished my proposal outline. The next step is to write my proposal draft. I also discussed with Xunfei and she help me drew a better flowchart. I gained a clearer understanding about the flow of my project. I downloaded a SDK of the iFlytek company’s voiceprint recognizer product for reference.
I met with Charlie for the weekly meeting. We discussed different designs for my simulation model. I will first create some input data, which includes creating dummy values for the base map instead of using a real map. The main program will contain simple transition functions. This is to make sure that I can produce a simple version of a simulation model. I will also have to look more into NetLogo, especially into its fire model libraries.
During my weakly meeting with Igor, he brought to my attention a better way to increment the ranking algorithm. In the first round, a certain number of image processing techniques will be applied to the original image and the top 10 or so images will be passed on to the next round. For each round after, permutations of the image processing techniques will be applied to the images, and the next 10 winners will be promoted to the next round. This way, we can keep applying several techniques on the images, and find the best combination. The process would go on until either the machine has a confidence interval beyond a certain threshold, or a certain number of rounds have passed. The latter is important so the machine does not keep going for ever (or for too long) if the image is simply to bad be made decent. This brings me to the question of what to do if no food is found in the image. Should it return an error, or maybe apply the process to the image and see how it turns out? It is possible that the user submitted an image that contains an unusually morphed food, which the AI might not recognize as food, but still be able to make look good.
I also have heard about genetic algorithms, and will look into those as a safety net/supplement.
I met with Xunfei to improve my design outline for the proposal outline. I completed the outline on the box site. I am trying to find more ways to improve the existing system and see if there is anything else I can add. I found additional papers on QR code security, so I am learning how to avoid thefts with QR codes.
- I wrote my project proposal this week and I already had most of the info ready.
- The sections that I didn’t feel really prepared for were the design and what software/hardware do you need sections.
- I didn’t have a good idea of what should go into my design and what counts as a component
- I’m also not sure what kind of software/hardware I need because I’m not completely sure what my own unique approach will be so I don’t know which software/hardware is the best for my approach yet
- After reading articles for my literature review, I see that there are a lot of different ways to identify and classify media with misinformation.
- I will need to do a bit of work to be able to combine all the methods in a way that it will be able to identify and classify media of all different topics and types
- I’ve also split up my project into smaller more manageable goals to accomplish
- First Level Basic Goals:
- Find a large enough dataset that is properly vetted as credible and one that is properly vetted as not credible
- I want this dataset to be on a variety of topics
- Find an algorithm/classifier that is accurate 80%-100% of the time on the dataset with a variety of topics
- Find the key features that are the most reliable for classifying
- Find a large enough dataset that is properly vetted as credible and one that is properly vetted as not credible
- Second Level Goals:
- Expand the dataset to include pictures where the text was extracted from it
- Re-test the algorithm/classifier to make sure a drop in accuracy hasn’t occurred
- Re-test that the key features for articles can apply to the text within a picture
- Third Level Goals:
- Expand the dataset to include videos where they are transcribed as accurately as possible.
- Re-test the algorithm/classifier to make sure a drop in accuracy hasn’t occurred
- Re-test that the key features for articles can apply to the transcriptions
- Fourth Level Goals:
- Create an app/website where you can upload a piece of media and the app will use the algorithm/classifier and tell you if it is credible or not
- Fifth Level Goal:
- The app/website will keep a record of things that have been deemed credible or not
- Create a browser extension that will take the media from the current tab and check if it is credible
- Sixth Level Goal:
- The app/website and browser extension will scan and search for certain keywords set by the user and check new content that’s been uploaded
- First Level Basic Goals:
- I’ve chosen Charlie as my adviser for my project
- The idea that I picked for my Capstone is my Fake News Detection Idea
- The basic idea is that I would create a website/application and a website extension that takes mediums as input and will tell the user if it is factual or not
In the past few weeks I have settled on my topic being exploring gender bias on a website using a combination of computational linguistics and quantitative analysis. After writing my literature review on work that explored a variety of sites, I decided this week to focus on a social media site for my project. My next step is to explore more papers focused on analyzing social media and the APIs available for different sites in order to choose which site I want to focus on.
I read over 20 papers in the last two weeks to work on my literature review. I met with my advisor and talked to him about my proposal and what could be improved in my literature review. I have found some projects/papers that touch upon what my project aims to be. This will help me find and establish a starting point once I start working on my project. One of the challenges that I am currently facing is finding a dataset. I have come across a few datasets that I can use from kaagle.com.
This is what my initial model looks like (This does not delve deeper into how the neural networks are configured.)
While preparing my diagram for the quiz, I got a much better conceptual understanding of what I want my project to look like. I have also found nice papers this week. I started thinking of a few different image processing techniques that might help with making the image, and picked a computer vision algorithm for my AI (AlexNet) . I also decided on an image ranking algorithm to decide which image to return, a binary comparison. I feel significantly more comfortable about my project now that I have a more concrete idea for my software architecture, even though I am still fuzzy on the implementation details/
This week, I mainly worked on reviewing my papers carefully and summarizing them for the literature review. I also met and talked with Xunfei about my proposal idea and came up with a preliminary idea. I will have to work more to develop it.
This week, I wrapped up my first draft of the literature review. I’ll be meeting with the writing center as I embark on my final draft. I’ve continued working on nailing down my exact idea that I’ll be proposing, as well as looking into the available resources found throughout the papers I’ve read, from algorithms to source codes. I’ve done some basic work on a prototype game, but have been too busy to make much progress yet. I think a good portion of my project may include comparisons between different methods and combinations of methods between the PCG-G (different algorithms, mostly) and music generation (mostly grammar-based versus machine learning).
This week I worked on improving my understanding of the Parks Puzzle and exploring possible proof techniques to show that it is NP complete from two directions. I continued working on the Time Complexity chapters of “Introduction to The Theory of Computation” by Michael Sipser to round out my theoretical understanding, while also solving many instances of the puzzle using an app on my phone. I came onto one general idea for the proof involving only ‘AND’ and ‘OR’ gadgets that I discussed with my advisor, who made some suggestions involving an ‘IFF’ gadget, which I am going to continue working on. I also received feedback on my literature review, which showed some significant problems that I corrected according to the grading rubric.
I’ve finished writing the Literature Review for my idea “Fire Spread Simulation Using Cellular Automata.” After reading the papers for my research, I found a recent paper on this topic which used Machine Learning to solve the drawbacks of previous research. However, I could only find one paper using this technique so I will have to dig deeper to find more related materials. Charlie has suggested that I should categorize the papers based on the input data (terrain, weather condition, etc).
I’ve chosen “Fire Simulation Using Cellular Automata” as my final idea. I have also met with Charlie and decided to meet every week on Monday. I will also meet with Xunfei regularly for my research. Xunfei has suggested that I should look into ArcGIS for the simulation part of the research and also suggested me to talk to Jose as ArcGIS would require funding.
I finalized my proposal to “Applying Voiceprint Recognition Technology to Identity Verification”. The keywords are voice recognition, voiceprint, feature extraction, voice detection, voice verification. The difficulty I might encounter is that there may be background noise in the voice input. If the noise is loud, it may affect the feature extraction and voice recognition. I probably need to explore methods for removing noise.
Received feedback for LR. I understood the mistakes I made and working on the revised LR. I also found additional papers that I will use. Met with Xunfei to discuss proposal outline and LR.
I did not add an update to week 6 due to the long weekend but had been working on my literature review, which I finished today. It was very useful to read and re-read certain articles and realise some are useful and some are not. I now have further inspiration with where I can take my idea and am happy with its process. I will be looking in the next week or two to start looking into potential technologies to use for my project, which currently seems to be leaning on public Python libraries.
I have decided on the project I will be working on as my senior project. I have talked to Charlie about it, discuss my ideas regarding this project. He will be my advisor for the project. I have found 10 more papers and a couple of technologies I might be using. I have also found the datasets of food and recipes I will be using for my project.
My final idea is nutrition management and recipe recommendation system. Users will be able to scan the ingredients they have using the app and the app will recommend recipes using the user input they have put before such as any allergies, or food they don’t want to or cannot consume. The next step of my project will be the calorie estimation of food the user will consume. For this part, I plan to use a texture mapping and scanning for the optimum estimation of calories, and ingredients. For the privacy issues, I plan to have users scan their face on the first use of the app and have an API that will determine whether the current user is the user of this account. I am still thinking about possible ways to detect liquid ingredients and seasonings of the food.
I now know what idea I am going to go with, it’s a new idea and is not related to any of my old ideas. My new idea is about using neural networks and natural language processing to predict a better way to write emails or other forms of text in order to better engage the reader. This will be focused on business emails and other forms of business-related texts. I have read a lot of papers on neural networks in the past week and have spent most of my time writing my literature review on it.
I have talked to Xunfei about my 3 ideas and decided to discard one of my 3 ideas because of overhead issues. I wrote 2 annotated bibliographies of my 2 ideas with 3 papers each. I have also done more research on my 2 ideas.
I wrote 3 annotated bibliographies, one for each idea, and each of the annotated bibliographies is composed of 2 papers I have found for my ideas. I went to San Diego to attend Tapia conference of diversity in computing.
I’ve finalized the base project idea – I’m going with the one involving music generating AI. Additionally, I’ve officially gotten a proposal adviser, Xunfei, who I’ll be meeting with every Wednesday morning. I’m having some issues in limiting the scope and application of my project, which I’ll be focusing on while I finish up my literature review. In terms of the review, I’ve read 9 of the 10 papers, so I only need to read the last one and put the notes I have into the literature review format.
- The First Responders Tech idea is not panning out in terms of finding any relevant research articles so that may be way to difficult for me to achieve in this time frame
- The Secure Paperless Voting Machine is working out in terms of finding research articles but upon reading a couple of the them, I’ve realized how complex the issues are. Both the hardware itself and the software need to be more secure. This might be too big of a project.
- There are a lot of articles and info about my Fake News Detector idea and my Ancient Sites in VR idea so that bodes really well for the feasibility of those two ideas as my official capstone idea
Updates in Ideas
- My first “Fake News Detector” idea has remained mostly the same
- I still have not come up with a more doable idea for the secure paperless voting machines because there’s so much oversight with voting regulations and laws and because there’s an added obstacle of different voting systems/mechanisms.
- My “911 Tech” has hit a wall in terms of find research articles on it
Updates in Process
- I talked to Charlie about my three ideas and he suggested a change from 911 specific tech to First Responders/Disaster Relief tech because they actually use open source technology and it might be more feasible to create something and find research on it.
- I also created a fourth idea in case the First Responders idea doesn’t pan out. My idea was creating very realistic recreations of ancient archaeological sites that you can interact with in VR.
My project is using Voice Print Recognition technology to check if the voiceprint of the input match the corresponding one in the database. This technology can be used in many identity verification scenes like customer services for bank, door lock, business transaction. The main steps approximately will be: take voice input -> (remove noise -> ) extract voice features -> building models with selected algorithms -> compare voice features -> check if voiceprint match. The possible algorithms might be: VQ, MFCC, DTW.
This week I mainly finished my LR and spoke in detail regarding the project idea with Xunfei. It seems I like I know which technology to progress with and eliminate the two I was debating before. I also worked on my basic design outline.
I read more papers on my ideas, met with my advisor to schedule a weekly meeting and discussed a new idea proposed by the company I interned with this summer.
The new idea is a Neural Network driven A.I. that can learn and predict better ways to write emails, marketing campaigns and other forms of communication with the customer.
This week, I finalized who my advisor will be (Charlie). I also decided that I will be working on my security testing idea as my main project. To start this, I spoke with Brendan Post (IT) to discuss my ideas. He was happy to help me and I will be in further discussion with him as I move forward with my proposal.
I also found a couple other papers related to my idea. There was one that had much more lower level detail and actuially described the implementation of their testing. The researchers used Kali Linux to hack into a router through different ways such as SSH, Telnet, and SNMP. There were images that showed the commands they used. It was the first article I found to have a lot of low-level detail.
This week I spent some time finalizing my proposal idea. I discussed the Parks Puzzle with Igor and come to the conclusion that I should work on proving its NP-Completeness for my final project. I had to discuss this idea with my advisor Igor, as well as Charlie and Xunfei before I could finalize this plan. Once I had this confirmed by Xunfei, I put aside my work on the other ideas and started to solely focus on NP-Completeness. My first task is to go through the relevant chapters of “Introduction to The Theory of Computation” by Michael Sipser nad working through problems to clear up my understanding of the problem, which I have started to work on.
In the past week, I searched and skimmed lots of papers to use for my own research. I also talked with Dave and Xunfei to refine my ideas. I also found a data scraping software to extract product information from Sephora.
I am going with the auto-image processing for food. I have been looking more into the literature, and there is limited literature that deals with making food look better, and they are all relatively recent publications. However, there is literature about how to train machines to assess how aesthetically pleasing images of food are, and also on how to make regular images more aesthetically pleasing.
I will start experimenting with different machine learning algorithms, and also image processing techniques.
In the past week, I have found papers for the literature review, started working on the paper. I have to talk with my advisor regarding the papers. I also found that the QR code would be a viable option rather than a barcode. QR code can store data horizontally and vertically whereas only vertically in the barcode.
Most of the articles I have read this week have been quite informative and take the time to explain even the most basic things. However, this has not been true for all the articles that I have read. Some of these articles assume that the reader is already familiar with the terminologies and technologies used in their research or study. Although this helps the reader dig deeper into the topic and come out with a better understanding of the study or research, it also means that doing a 1 or 2 par reading often does not suffice in these cases. Along with reading research papers this week, I also worked on some technical diagrams for my projects this week.
In the past week, I explored different ideas, talked to the faculty, and found more papers to read. I found lots of interesting paper related to my personalized skin care product recommendation idea. I found out that using content-based filtering to recommend products might be helpful, and I could modify the algorithm to have better performance.
Some papers I found useful include:
 Recommender System By Grasping Individual Preference and Influence from other users
 Recommendations System for Purchase of Cosmetics Using Content- Based Filtering
 Item Clustering as An Input for Skin Care Product Recommended System using Content Based Filtering
These papers gave me an idea for what algorithm to use for the recommendation system and how to modify it according to my need. Some of the research was done using five skin types, but I’m thinking to increase it to 16 or more.
I am pretty certain at this point that I want to do something food and image processing related. This evolved out of my first idea (MyOrder), but is not quite the same.
I want to do some sort of auto image processing to make food look better, and provide an interface/API to use the service. I have found a very large dataset that could help with that, albeit unlabeled. There also is research done on labeling food images as good-loking/not-good-lookingm, which I could use to label the food.
I have two other ideas I will consider (as long as I am still allowed to consider). The first is an app that can tell the ingredients of food and/or some kind of shazaam for food that tells what dish a certain dish is. The other is an app that counts calories by looking at pictures of the food you eat.
I haven’t decide my topic yet, but I was reading papers related to my three ideas to gain a deeper understanding on these ideas.
My first idea is an AI tech for voice print recognition. It can be used for avoiding voice spoofing attacks on business, banks (like mobile phone customer service), etc. The main steps for voice recognition is: take vocal input -> identity-feature analysis -> deviating feature selection -> deviating feature comparison -> distance to reference pattern estimate -> check if voice match. The main algorithms for feature extractions are: GMM, JFA, GMM-SVM, etc. On the paper “Vulnerability of speaker verification systems against voice conversion spoofing attacks: The case of telephone speech”, the authors experimented several algorithms and concluded that although JFA has a high inaccuracy but the converted samples with JFA sounds very mechanical so human can easily distinguish. The authors of paper “Voice command recognition system based on MFCC and VQ algorithms” discuss and examine two significant modules: MFCC and DTW. Their results were good. So I will consider use these two modules.
For my second idea which is creating an AI tool for safety driving, the key tech is 3D dynamic facial recognition. I learned that the most Facial recognition tech can be decided into two main parts: facial detection and facial recognition. I can use open sources like opencv and dlib to do facial detection. There are 3 factors i need to care about: detection rate, misdetection rate, false alarm rate. The authors of the paper “BP4D-Spontaneous: A high-resolution spontaneous 3D dynamic facial expression database” reported a newly developed spontaneous 3D dynamic facial expression database in their paper. I am not sure if I can or should use their new database. Although the paper “Real time facial expression recognition in video using support vector machines” primary discuss detecting emotion from facial expression, it provides some facial recognition tech info for me.
My third idea is creating a smart tool to grade algebra on handwritten homework. The APP takes a photo of the handwritten homework and using OCR tech to extract the texts and grade them. The main tech is just OCR. Although the two papers I read both talk about their own APP and OCR system, I can refer some technologies they used, like matrix matching, fuzzy logic for facial extraction.
This week I researched deeper into my three ideas, and now have developed preferences and better understandings of them. Specifically, I believe the natural language processing idea where I will create summaries of subjects in PDF’s seems to not only be the most interesting to me, but the most achievable and most understandable of the ideas. It requires a lot more CS than the other two, which I like. The others, especially the math proof assistant idea, seem like they will contain much more design choices and therefore will distract from the CS side of it. I did make more progress though on finding approaches to the math notes to LaTeX idea, as there is a decent amount of research in symbol recognition, however handwritten was harder to find as opposed to digitally drawn with electric pens. The proof assistant idea is the hardest to research but I am making slow steady progress in this field.
In the past two weeks, I’ve read through a total of 12 sources, four for each idea, and created annotated bibliographies based on them. While some of these papers are more useful than others, each has been helpful in one way or another – and, indeed, I’ve been able to find more papers to look into further as I modify my ideas based off of both peer feedback and my own research. Some papers have given me actual algorithms to either implement or look at as a building block for my own- others have shown me, for example, how much one of my ideas (copyright detection) is already extensively researched, and pointed me towards new directions in which I could modify the project to make it something original.
I spoke with Charlie this past week and we both decided that my first idea is my best one. So, I decided this was the one I was going to pursue my penetration testing idea and found 6 more articles for this.
A couple of the articles I found were about professors having/teaching a first-time hacking course. It was really cool to see the different designs of the classes. There was a general theme of keeping a subset of computers in a controlled environment and then allowing the students to work from there. One article included a complete description of their syllabus and the assignments of the course. This was helpful as it gave me an idea as to what software was being used in these courses.
For my first idea, I have been researching methods and corner and shape detection that I might be able to apply to my implementation. I found a very relevant paper about shape detection using VLI and NIR imagery from drones, which, while new and not especially
For my second idea, I have been researching different classification methods for audio. Both of the papers I found this week use a metric called Mel-Frequency Cepstral Coefficients, in both KNN and DNN algorithms. I think, having read over these papers, I will continue to search more specifically for research related to this concept.
For my final idea, I have found two papers that discuss the obfuscation and user controls necessary to make geo-location safe, while still preserving its usefulness. One of these papers also discusses a
I found a very promising paper called “an introduction to the conjugate gradient method without the agonizing pain” and started working through it. I have only gotten through the first 10 pages or so, but it is helping me think of narrower research questions. I have also skimmed through a fair number of NP-completeness reductions, and have a much better idea about the background work I will need to do to be able to work on the Parks Puzzle problem. Some especially strange and interesting reductions I have come across are a reduction of SAT to minesweeper and a reduction of the Hamiltonian cycle problem for cubic graphs to the zen garden puzzle, which use boolean ‘gadgets’ and nodes and edges that can be combined to create instances of the game.
Here are my comments for the papers I read this week. Forest fires spread modeling using cellular automata approach.
They described a method using cellular automata to simulate how fire spread over an area of island Brac in Croatia. The paper had a great overview of Classification of forest fire models, explanation of cellular automata, well-known Neighborhood Templates, and how Landscapes can be represented as cellular automata. They mentioned that only vegetation characteristics and wind conditions were taken into account as input parameters. I might include more input data if I use this model. Computer vision system for fire detection and report using UAVs Special Issue for Submission.
The main concerns of the paper was how to detect fire using computer vision techniques as well as hardware systems. The paper serves as an explanation to their system rather than how their system is compared to other fire detection models. I might use this pa- per for my research if I want to establish a communication system later on. Using cellular automata to simulate wildfire propagation and to assist in fire management.
Unlike the cellular automaton mentioned in the other two papers, this one did not take into consideration the state of stress of vegetation and the meteorological condition. If it possible, I would like to develop a system that can output different simulations based on different cellular automata models based the ones in this paper and in the other two mentioned above. An FPGA processor for modeling wildfire spreading.
The model was designed to not require too much computational resources and computational power so that it could describe fire behavior in real time. I might use this model if I want to design my simulation model in real time. A Cellular Automata model for fire spreading prediction.
The result was a model of cells that evolve with given transition rules. This model forms the basic foundation my research. I can implement a similar model with these transition rules. Forest fire spread simulating model using cellular automaton with extreme learning machine Extracting Traffic Events and Human Mobility Patterns in Geosocial Media Data for Assessing Real-time Road Traffic View project Understanding human activity pattern.
They mentioned that the accuracy of this model was between 58.45 and 82.08%. I do not think a simulation accuracy of 58.45% is a reliable. This research also used cellular automaton to pre- dict fire propagation, which is similar to the paper ”Forest fire spread simulation algorithm based on cellular automata.”
For this week I tried to narrow down my research scope; I talked with Dave about my ideas, and where I might begin with researching each of them. I got some good ideas about previous work and what might work well to back up my project ideas, and then used that information to pick what I think were the six more relevant papers.
(I was attending a CS conference in California this week so my post is late.) I have read some papers related to my 3 topics. I gained a clear understanding of the technologies I need for my three topics. I also explored the new ideas from Xunfei’s feedback. There are already available APPs that can scan printed music sheet and play the music. Most of them are not free. I only found two free APPs called PlayScore2 and iSeeNotes. PlayScore2 works much better than iSeeNotes. I tested the APP with my printed music sheet, and the result was not as good as I thought. It couldn’t read all the music notes. If I am going on this topic, my goal will be enhancing the accuracy. But scanning and reading hand written music sheet would be very challenging. Even I cannot read those old music sheets very well.
In the past week, I read 3 more papers for each idea. I spoke to the faculty regarding the 3 ideas to decide which one is feasible for the final project. Some papers I found are listed below. I will work on the bib assign 2 based on the feedback on assign 1.
- A. S. Das, M. Datar, A. Garg, and S. Rajaram, “Google news personalization:scalable online collaborative filtering,” in Proceedings of the 16th international conference on World Wide Web. ACM, 2007, pp.271–280.
- M. Tavakolifard, J. A. Gulla, K. C. Almeroth, J. E. Ingvaldesn, G. Nygreen, and E. Berg, “Tailored news in the palm of your hand: a multiperspective transparent approach to news recommendation,” in Proceedings of the 22nd International Conference on World Wide Web. ACM, 2013, pp. 305–308.
- J. Kahn, “Neural network prediction of nfl football games,” May 2003,
- J. Shin and R. Gasparyan, “A novel way to soccer match prediction, May 2014.
- R. Dinesh, S. A. Pravin, M. Aravindhan, and D. Rajeswari, “Library access system smartphone application using android,” International Journal of Computer Science and Mobile Computing, vol. 4, no. 3, pp. 142–149, 2015.
- G. McCarthy and S. Wilson, “Isbn and qr barcode scanning mobile app or libraries,” Code4Lib Journal, no. 13, 2011.
I did a 2 pass reading of all the sources that I had collected over the last two weeks. I realized that some of the things I had in mind already exist. I’m still researching about pre-existing technologies/frameworks that could help me set up a reference point to build upon as I work on my project.
After talking to Igor, I realized I could incorporate a food recommendation system to my food ordering app. After thinking some more, I realized the food recommender might actually be more interesting than the food ordering system.
Started the draft of my outline and abstract. Continued working with the “jigsaw” idea/method ran into a hiccup with placing content while moving left and up, this will require a code segment to further regulate the placement based on there the anchor point is.
I have pretty much decided on my main topic, which is working on the complexity of the Parks Puzzle. I found a survey paper that goes over a number of puzzle problems, and provides a vast reading list, which I am working through now.
For this week, I started reading more into the papers that I found initially interesting for my ideas. I found some to be less relevant than others, but still drew some nice views that may be helpful later to shape my ideas. I want to perhaps find some replacement papers, and also talk to a CS professor this week about idea refinement.
For this week, I created my annotated bibliographies for 2 papers of each of my 3 ideas. I also spoke with Charlie and refined 2 of 3 ideas. For my penetration testing idea, instead of making the project solely on the technical side, I want to basically have three phases of this project- technical, social, and physical. I plan to speak w/ Brendan Post in ITS and see how I could implement this at Earlham. I’d plan to publish the results of this testing to where other schools could do something similar.
In regards to the bibliography, one of my ideas is tracking Digital Footprints of users and I found a paper where the researchers created their own piece of software that was a blend of a password manager and an auditing service. I thought of being able to do something similar and create my own piece of software but with additional features.
This week, I did a first pass reading for a total of 6 papers and visited the writing center for the annotated bibliography. Some of them turned out to be less relevant to the topic than they had appeared, but they were mostly useful and interesting. For one of my journals, the authors introduced the eigen-values and associated them with our facial features which I thought was fascinating. A lot of the methods that I thought were either subjective or determined by consensus actually involved detailed algorithms and logical processes. I look forward to reading them more in depth.
Below are the papers I read for each idea this week. I also read more papers for my third idea, “Fire Spread Simulation” and found the cellular automata algorithm mentioned in one of the papers quite interesting. The basic idea behind the model is to break down the images of the forest fire into different cells and apply the same algorithms onto each cell, similar to divide and conquer. The authors have also developed an improved algorithm based on this model to not only predict how fire spreads but also trace the source of fire.
Improve Fire Identification Mapping and Monitoring Algorithm (FIMMA)
 Z. Li, W. Jiang, F. Wang, Q. Meng, X. Zheng, and B. Liu, “GIS based dynamic modeling of fire spread with heterogeneous cellular automation model and standardized emergency management protocol,” Proceedings of the 3rd ACM SIGSPATIAL International Workshop on the Use of GIS in Emergency Management, EM-GIS 2017, 2017.
 X. Xie, J. Wang, H. Qin, and X. Cheng, “The simulation and research of fire spread situation based on osg,” ACM International Conference Proceeding Series, pp. 156–159, 2019.
Fire Detection Using A Combination of Different Image Analysis Techniques L. Giglio, W. Schroeder, and C. O. Justice, “The collection 6 MODIS active fire detection algorithm and fire products,” Remote Sensing of Environment, vol. 178, pp. 31–41, jun 2016.
 Y. Long and X. Hu, “Spatial partition-based particle filtering for data assimilation inwildfire spread simulation,” ACM Transactions on Spatial Algorithms and Systems, vol. 3, no. 2, aug 2017.
Fire Spread Simulation
 X. Rui, S. Hui, X. Yu, B. Wu, and G. Zhang, “Forest fire spread simulation algorithm based on cellular automata,” Natural Hazards, vol. 91, no. 1, pp. 309–319, 2018.
 S. K. Singh and S. Kanga, “Forest Fire Simulation Modeling using Remote Sensing & GIS,” International Journal of Advanced Research in Computer Science, vol. 8, no. 5. [Online]. Available: https://www.researchgate.net/publication/325848449
This week, I created annotated bibliographies for papers pertaining to each of my three ideas. I also further considered the possibilities for updating my project ideas – I’m likely to not go with the copyright detection idea. If I go with the visualization of music idea, I’m likely to turn it on its head and deal with the audiation of visual art. I’m still fairly content with the rhythm game idea as it is in its current state.
This week, I browsed through chiefly ACM and Google Scholar to find five papers on each of my topics. I additionally met with Charlie to go through my three ideas, getting some helpful insights about my projects and what is being looked for in the capstone project, as well as generating some ideas based off of the original three. The Copyright Detection idea in particular is likely to be cut – it’s a field already rich with research and work done, making it harder to come up with something better or wholly original.
Talked to Charlie about my ideas and got feedback from him. Found 5 papers for each idea.
I researched and made a list of papers that I will read in the upcoming week. Here is the list of papers, that I plan to read:
Topic 1 Name: 3d Printer – A new Technique
(1) Innovations in 3D printing: a 3D overview from optics to organs (2013) - Journal: British Journal of Ophthalmology -
Journal: British Journal of Ophthalmology –
Authors: Carl Schubert, Mark C van Langeveld, Larry A Donoso
(2) Development of a 3D printer using scanning projection stereolithography (2015) -
Publication: Scientific Reports 2015
Authors: Michael P. Lee, Geoffrey J. T. Cooper, Trevor Hinkley, Graham M. Gibson, Miles J. Padgett & Leroy Cronin
(3) Printing 3D microfluidic chips with a 3D sugar printer (2015) -
Publication: Microfluidics and Nanofluidics
Authors: Yong He, Jing Jiang, Qiu Jian, Zhong Fu
(4) A Layered Fabric 3D Printer for Soft Interactive Objects (2015) -
Conference: 33rd Annual ACM Conference on Human Factors in Computing Systems
Authors: Huaishu Peng, Jennifer Mankoff, Scott E. Hudson, James McCann
(5) Recent advances in 3D printing of biomaterials (2015) -
Journal: Journal of Biological Engineering
Authors: Helena N Chia, Benjamin M Wu
Topic 2 Name: 3d – Drone Mapping
(1) Automatic wireless drone charging station creating essential environment for continuous drone operation (2016) -
Conference: International Conference on Control, Automation and Information Sciences (ICCAIS)
Authors: Chung Hoon Choi, Hyeon Jun Jang, Seong Gyu Lim, Hyun Chul Lim, Sung Ho Cho, Igor Gaponov
(2) INTEGRATED THREE-DIMENSIONAL LASER SCANNING AND AUTONOMOUS DRONE SURFACE (2013) -
Conference: 2013 ICS Proceedings
Authors: D. A. McFarlane, M. Buchroithner, J. Lundberg, C. Petters, W. Roberts, G. Van Rentergen
(3) Submodular Trajectory Optimization for Aerial 3D Scanning (2017) -
Conference: The IEEE International Conference on Computer Vision (ICCV)
Authors: Mike Roberts, Debadeepta Dey, Anh Truong, Sudipta Sinha, Shital Shah, Ashish Kapoor, Pat Hanrahan, Neel Joshi
(4) Google Street View: Capturing the World at Street Level (2010) -
Journal: Computer ( Volume: 43 , Issue: 6 , June 2010 )
Authors: Dragomir Anguelov, Carole Dulong, Daniel Filip, Christian Frueh, Stéphane Lafon, Richard Lyon
(5) Integrating Sensor and Motion Models to Localize an Autonomous AR.Drone (2011) -
Journal: International Journal of Micro Air Vehicles
Authors: Nick Dijkshoorn, Arnoud Visser
Topic 3 Name: AI-NLP multi platform application builder
(1) A Primer on Neural Network Modelsfor Natural Language Processing (2016) -
Journal: Journal of Artificial Intelligence Research
Authors: Yoav Goldberg
(2) Natural Language Assistant: A Dialog System for Online Product Recommendation (2015) -
Publication: AI Magazine
Authors: Joyce Chai, Veronika Horvath, Nicolas Nicolov, Margo Stys, Nanda Kambhatla, Wlodek Zadrozny, Prem Melville
(3) Web-based models for natural language processing (2005) -
Journal: ACM Transactions on Speech and Language Processing (TSLP)
Authors: Mirella Lapata, Frank Keller
(4) Web 2.0-Based Crowdsourcing for High-Quality Gold Standard Development in Clinical Natural Language Processing (2013) -
Publication: J Med Internet Res
Authors: Haijun Zhai, Todd Lingren, Louise Deleger, Qi Li, Megan Kaiser, Laura Stoutenborough, Imre Solti
(5) The impact of cross-platform development approaches for mobile applications from the user's perspective (2016) -
Conference – Proceedings of the International Workshop on App Market Analytics
Authors: Iván Tactuk Mercado, Nuthan Munaiah, Andrew Meneely
Summary of Updates:
This week I spent a lot of time trying to refine my last two ideas to make it more suitable for a capstone and tried finding enough research articles about all three ideas. I struggled with finding related articles to my second idea so I came up with a fourth idea that was easy to research. Below I’ll put all four of my ideas that I have right now.
First Idea: Automatically Detecting Fake News
- Create a database of media of different opinions that are credible with truthful information.
- Using Machine Learning, find/develop an algorithm that when given a medium could accurately determine whether it is credible and truthful.
- Create an app/website/browser extension as a user interface where you can manually input the medium you want to check, or follow certain keywords and be alerted when new credible content with those keywords has been created, or tell you when a medium you are currently looking at is not credible and link you to credible sources of both opinions.
Second Idea: First Responder’s Tech
- Disaster relief first responders, like 911 operators, would benefit from a tech upgrade as well and they actually use open source software.
- I would like to set up a text system for those responders because you can handle more texts at once than you can calls and sometimes it’s easier to text for help.
- With texts, it would also be easier to automatically send location data to the responders
- I would like to create a technology that uses the phone’s barometric pressure sensor and gps location tech to be able to tell first responders exactly where and what floor a person is on.
Third Idea: Secure Paperless Voting Machines
- The paperless voting machines that we have at this very moment have been proven to have many flaws and vulnerabilities and are easy to hack into. Given the interference of the Russian in the last presidential election, this is extremely concerning.
- I would like to create a paperless voting method that would allow people unable to securely cast their ballot and have the capabilities to have a secure virtual caucus for those unable to make it to the physical location.
- I would make sure all data is encrypted to the highest standards we have at the moment and that all vulnerabilities noted in our current methods and efforts are addressed.
Fourth Idea: Virtual Recreation of Ancient Sites
- world in an immersive environment without having to damage the sites and spend money building on top of the actual ancient stones and what not
- People should be able to walk into places and into rooms
- People should be able to hear sounds as well
- Perhaps incorporate smell???
- People should be able to walk up stairs!
- There should be an interactive element that will give you facts and info about a specific thing that you touched or selected
- This could be used as an educational tool in classes and could be used by museums so that they could give back the original pieces and works to the countries that can safely house them and use the VR with recreations
I visited the writing center for bibliography help and to sort out the papers. I was able to remove some irrelevant papers and finish up my assignment. The library management idea seems to be my project idea and I am exploring similar systems to get some help.
I am still exploring my new ideas.
Idea 1 Title: AI Assistant for Safety Driving
Description: My idea is to use facial recognition to detect fatigue driving or dangerous driving. A small camera will be placed in front of the driver and the AI Assistant will be a mobile phone APP. For fatigue driving, the camera detects behaviors like closing eyes for long time, yarning, frequently rubbing eyes with hand, etc. For other dangerous driving behaviors, the camera can detect behaviors like playing mobile phone, turning back to chat, smoking, etc. After detecting dangerous driving behaviors, the APP will do a series of operations according to the dangerous behavior: giving an alarm, play refresh songs, report the location of the nearest rest stop. Actually there are already research and real products available now, but most of them are commercialized. They are expensive and big-sized. What makes my idea different is that I am going to develop it as a cheap and handy daily life tool. And I probably can enhance the accuracy of detection under dark light or special environment. The main tech is facial recognition and there are many open sources online.
Idea 2 Title: Voice Print Recognition Identifier
Description: Facial recognition is very popular recently, but many people do not notice voice print recognition. VPR is cheaper and more convenient because it only needs one microphone. Voice can tell many information like age, gender, emotion, environment, and etc. Wearing glasses or makeup might affect the performance of facial recognition, but a mature human being’s voice is stable. There are already research and real application on voice print recognition. For example, WeChat user uses voice recognition to log in. But I can innovate my idea on the application, for example, combine it with bank customer service. When a user steals other’s password and calls Chase to do money transaction, the VPR can detect if the voiceprint matches the bank account owner. Or use it to fight crime, home robots, etc. The VPR tech is already exist. I need to innovate from other aspects. But the two primary usages are: speaker identification or speaker verification. Voice print is a spectrogram of voice, forming from wavelength, frequency, intensity and other hundreds of characteristics. I can differentiate people from differences in purity of voice, resonance ways, average pitch characteristic, voice range.
The popular used spectrogram characteristics are: MFCC, PLP, FBank, D-vector by Google, Deep feature, Bottleneck feature, Tandem feature. Existing models: GMM-UBM, JFA, GMM-UBM i-vector, DNN i-vector, Supervised-UBM i-vector. Scoring algorithm: SVM, PLDA, LDA, Cosine Distance.
(But i don’t know if the scope is too big)
Idea 3 Title: Using OCR to grade hand-written homework
Description: Take a picture of the hand-written homework and use OCR tech to extract the content. (OCR is a technology converting printed text into editable text.) Then check if the algebra calculation is correct. Mark the correctness in the picture near the problem. There are already APP like that available online. But it only checks for algebra calculation, and it is not that accurate. It requires good hand-writing. I can expand my project to enhance the OCR tech, or make it check for simple English homework as well. Especially some parents in non english speaking countries cannot speak english to help their children. And probably I can expand the idea to a mobile phone APP that can summarize and analyze the grades data: collect incorrect problems, analyze which category did incorrectly the most, and etc.
I have finished buying the parts to make the headset and i have finished setting up a unity environment, but haven’t been able to run tests there yet.
This week I tackled simple branching. I have gotten it to the point where it is fully functional but limited in content. At some point during the process, the algorithm will place a specified branch segment, It will then create the lower branch using only chunks that are specified to be either flat or down. It places a certain number of chunks then a cap chunk to signify that the branch has completed. From here the algorithm works on the top branch, placing only rise and flat chunks, and eventually ending with the portal. Thought about a “jigsaw” method where the algorithm keeps track of overall outline of placed chunks and after branching occurs checks before the placement of chunks.
I have read some literature on all three of my ideas, and was pleasantly surprised to see that there was a lot of academic research potential in the ideas that I thought were a little dry in research, which was my main concern with my ideas. The most exciting idea I got was adding a food recommendation system for my food ordering app, where the user can get either a healthy or a tasty recommendation depending on their preferences.
For my second idea, I realized I need to research the intersection of human-computer interaction and pedagogy.
For my third idea, there is a lot to research about indexing a large number of text documents, where the corpora grows, and there is a space constraint. I can also look into text summarization techniques and metadata extraction from the documents.
Name of Your Project Computational complexity of the ‘Park Puzzle’
What research topic/question your project is going to address? The Park Puzzle is a game that involves splitting a n*n grid into different colored continuous ‘parks’. A solution to a park puzzle involves marking the position of a tree in each park such that no two trees share a row or a column. The research topic involves exploring various algorithms for solving the park puzzle, and determining some bounds on the computational complexity of the puzzle. The most involved version of this project could be to prove those bounds. (The initial, intuitive hypothesis is that the park puzzle cannot be solved in polynomial time)
Update: I am looking into the proofs of NP-completeness of other pencil puzzle problems to gain an understanding of the techniques involved in proving such complexity bounds.
Name of Your Project Fast Integer multiplication
What research topic/question your project is going to address? There have been significant improvements in algorithms for fast multiplication of integers within the last decade (see Fast integer Multiplication by Anandya et al), approaching O(nlogn), which use modular arithmetic and computation on p-adics The research project would be to explore the theory behind these algorithms and verify their results.
Update: I am looking into the minimal mathematical background required to make sense of how the algorithms work, without necessarily getting into all of the details.
Idea#3 Iterative solvers for systems of Linear Equations
Description Large and sparse systems of linear equations appear in the solution to some partial differential equations by finite difference methods, and in general many day-to-day problem areas such as in engineering and scientific computing. As such the theory of developing methods for solving such large systems, and proving their correctness is an area of active research. in this project I would like to test the effectiveness of various iterative methods at finding solutions to systems linear equations with various characteristics by taking an experimental approach.
Update: no update for this idea
Idea: Breakdown of Mathematical Proofs Using Natural Language Processing
I wish to use natural language processing to break down a bachelor-level mathematical proof into the components that make up a proof (e.g. given knowledge, statements, calculations). This will be shown in a GUI so that the user can clearly see the build-up of their proof. Without constraints of time, some more technologies could be applied (machine learning) to give feedback to the user of the strength of their proof.
No update to this idea.
Character Description Generation from Novels
I want to use natural language processing to allow a user to enter a character’s name (fictional or non-fictional) in whatever PDF they please, and have the algorithm generate a list of facts/short descriptive paragraph about the character. This could be useful when doing novel summaries, studying history and remembering the roles of persons, etc.
This idea is new and came after a discussion with Charlie that my previous ideas were not too interesting ideas (ie. not much room for expansion, not much coding).
Photo to LaTex Generation
This idea came while looking over some of my math notes and wanting to digitalize them. After looking online, the technology does not seem to be there, with some very primitive attempts. I would like to attempt myself at allowing someone to digitalize their math notes in LaTex form. It would require symbolic and natural language processing, potentially machine learning upon more investigation.
This is also a new idea, again discussed with Charlie after doubts about the previous idea.
For this week, I read the papers on Moodle, met with Charlie to discuss my ideas, and read papers related to them. Below are some updates for each topic.
Idea 1 Title: Improve Fire Identification Mapping and Monitoring Algorithm (FIMMA)
Description: Enhance FIMMA to reduce the number of false-positive results and apply the algorithm to detect fire in urban areas.
Update: This algorithm has been developed for the past 20 years by NASA. It has gone through many modifications and enhancements, and is currently producing quite accurate results. The main reason why it cannot detect fire instantly is because of the time the satellites take to circle the Earth.
Idea 2 Title: Fire Detection Using A Combination of Different Image Analysis Techniques.
Description: The research aims to detect fire by analyzing different attributes (heat, temperature of the surrounding area, temperature and color of the smoke) at different ranges of the electromagnetic spectrum (UV, visible, and infrared).
Update: There have been numerous unmanned vehicles being developed to take images of a fire scene at different electromagnetic spectrum. A drawback of detecting fire using image analysis might potentially lie with the hardware rather than the analysis techniques. For example, the resolution of the images and the hardware of the camera are usually affected when the vehicles try to take photos too close to the fire source.
Idea 3 Title: Real-time Fire Tracking System.
Description: The research aims to create a system that can provide current data for active fire as well as calculate the direction it is moving. The system can combine the data from Google Earth and NASA’s Fire Map to provide the current condition of the fire. It will also need real-time data of a given location, particularly weather (wind, humidity) and local condition (population, buildings) in order to make predictions.
Update: Since last week, I have been focusing on this idea more than the other two. What I am planning to do is to build a system that can produce a simulation of how an active fire spreads in a specific fire situation, particularly in forest fire. Many factors will have to be considered to build this simulation, especially data about the surrounding environment, weather, and terrain, etc. I plan to use archived data so that I can compare my predictive result to the actual fire spread direction.
I further developed my ideas and added more details to each of them. Then I talked to Xunfei about modifications and got more suggestions from her. We looked through the research paper I found on Google Scholars together and searched for related articles. After the meeting, I went back to find some more articles. I think I now know what to choose as my final idea.
As suggested by Charlie, I chose a new direction for my third idea:
Name of Your Project? Geosocial Weight Algorithm
What research topic/question your project is going to address? Lots of social networks, including, for example, one that I created with my classmates last year, use geolocation services to sort data. Our social network uses location to not only sort and tag data, but to filter what is available to the user.
What technology will be used in your project? Location APIs, React Native (assuming that I build on to the pre-existing app we have built), Geosocial algorithms.
What software and hardware will be needed for your project? Requirements might include access to Apple devices for development and testing, such as a mac/macbook (could use one in hopper, or another lab), and some version of iPhone for testing, if making a mobile app is the most effective.
How are you planning to implement? Assuming I continue to work on the same basic network that we already began to set up, my implementation would continue in react native. We already have the basic framework of a social networking app, but I think it would be a good foundation on which to apply my ideas for geosocial algorithms
How is your project different from others? What’s new in your project? My main idea for this is to create an algorithm which can efficiently update the viewable radius of a post based on the feedback from other users in the area. This algorithm would have to take many things into account, such as the population density, user density, post density, and how much positive and negative feedback should affect the geographic radius of each post.
What’s the difficulties of your project? What problems you might encounter during your project? Programming in react-native can be a bit of a challenge. This algorithm could be very complex, so it might get tricky to work with.
After updating my ideas, I picked out 5-7 articles for each of my ideas, quickly finding an abundance of relevant material. I also set up a meeting at the writing center this weekend to discuss how to get started writing, and I will start reading into the articles I found soon. I plan to try and meet with Charlie again soon to discuss my strategy moving forward, and to talk about the quality of the sources I aquired this week.
For this week, I updated my 3 proposal ideas and met with Charlie to review and seek his advice. Prior to this meeting, I found my 5 articles for each and used these discuss potential problems if each idea was used.
Post meeting w/ Charlie, I read a little deeper into the articles and now have a better idea on which proposal I may want to further investigate. Before I ead into the articles, I read the two PDF’s on Moodle about reading research papers and tried to implement this into my first and second pass of each article.
I spoke with Xunfei regarding the three ideas. Currently, I am reading through similar papers and figuring out which idea I will finalize. I have selected the papers for the next assignment and going through the first pass for the bibliography.
- My first idea is to create an application that scans the picture of foods and let users know what ingredients are in the dish. I am still deciding whether I want my app to be used as a diet and nutrition guide or aid for visually impaired people. This application will be available in multiple languages (at least 3). Xunfei had provided me more questions to explore as feedback. I will integrate computer vision and natural language processing in this project.
- My second idea is a program that detects prank calls made to 911 or other emergency centers. I will focus on details of the caller’s speech such as the urgency, intonations, breathing, etc. as well as background noises like whether the background is too quiet or too loud or is there any footsteps, etc.
- My third idea is to generate speech from a user’s hand gestures in several languages. I plan to piggyback an already existing and working program that translates hand gestures to speech. My main focus will be on improving that program and working to the accuracy of language translations.
Thought a lot about how I am going to handle simple branching, currently looking into a version that would just at some point split the level and after the split, here will be a branch that only goes right and down and one that goes right and up. very rudimentary but it would be a building block.
My first idea stays the same, making an online food ordering system that works over wifi. I need to think about how to differentiate my product, what is new with this, and how to test it.
A web platform aimed at helping people learn/practice math. Using a template, it would generate math questions, and allow people to try to solve them. It would also provide step by step solutions for people. This would be especially applicable to calculus. There are APIs that help with this, at least some open source.
A time tracker app for TAs, who are currently logging in their hours on a Google spreadsheet. This site could allow TAs to clock-in and clock-out, take attendance, and also show them how much they worked in each pay period. The app would also update the currently existing Google sheet with the new logs. This can also be packaged in a way that others can also use it.
- Name of Your Project? Corner Finder AI
- What research topic/question your project is going to address? Can deep learning and/or neural networks be used over a set of imagery to identify rectilinear structures which might be undetectable to the human eye (in other words, structures that are buried, or very obfuscated).
- What technology will be used in your project? Drones and drone imagery, as well as machine learning concepts like deep learning with training data and neural networks.
- What software and hardware will be needed for your project? I would like to make this project so that it can be used with the data the IFS trip collected from Iceland this summer. This also gives me an advantage with testing/learning data, as we created quite a stockpile of the kind of drone imagery I would like to analyse.
- How are you planning to implement? I plan to use python, or another language to create the software for this, possibly with support from some libraries (depending on language).
- How is your project different from others? What’s new in your project? From my first hand experience and preliminary research, it seems that most image analysis like this is done through direct processing of data, rather than by training an AI. The scripts we have used are mostly filtering the data that is there, rather than analyzing patterns. I think that this different approach might help us find things we wouldn’t find otherwise.
- What’s the difficulties of your project? What problems you might encounter during your project? The main difficulty will likely be the complicated nature of this kind of software. I have a medium level of experience with AI concepts, but something at this level will undoubtedly get murky with details eventually.
- Name of Your Project? Scatter Box
- What research topic/question your project is going to address? Is there an analysis based solution for organizing sounds based on their parameters? Can it be applied to music creation / production / organization? Can it be applied to scientific data? Can it be made efficient enough to be practical? Can it be abstracted to be broader; perform the same analysis over images, or text. In many ways, what I want this to be is a user-friendly, abstract K-nearest-neighbor classifier.
- What technology will be used in your project? Audio Manipulation algorithms, maybe other analysis algorithms for things other than audio (pictures, text), 3D data plotting.
- What software and hardware will be needed for your project? Libraries that include processing ability like Numpy and Pyaudio, 3d mesh plot output (matplotlib has a simple version of this).
- How are you planning to implement? I plan to use python, or another language to create the software for this, possibly with support from some libraries (depending on language).
- How is your project different from others? What’s new in your project? There are many software options for organizing and evaluating sounds. What makes this project stand out is the idea of visualizing the data in terms of the actual parameters of the audio. These parameters could be anything from audio length, to pitch or frequency, and more could be added throughout the course of the project, as testing made it clearer which were the most beneficial to the purpose of the project.
- What’s the difficulties of your project? What problems you might encounter during your project? There could be problems with processing efficiency, as well as with the actual output of the program. I haven’t worked much with programming visuals, let alone 3d visuals.
- Name of Your Project? Earlham CS Info Tool / Resource Concatenation Tool
- What research topic/question your project is going to address? The CS department at Earlham has a huge range of resources available to students through the cs.earlham.edu website. Many of these resources, however, are somewhat buried. Taking myself for example, I didn’t find out about some of the available resources, such as the CS wiki, until after I was a Junior CS major.
- What software and hardware will be needed for your project? Requirements might include access to Apple devices for development and testing, such as a mac/MacBook (could use one in hopper, or another lab), and some version of iPhone for testing if making a mobile app is the most effective.
- How are you planning to implement? I plan to use a platform-agnostic framework, such as React Native, to provide as broad of support as possible to students.
- How is your project different from others? What’s new in your project? All the information to provide students with the help they need is there, but it needs to be connected in a simple, front-facing user interface. My project would provide a single, unified way to search the information made available to students in CS. The project would (in theory) be able to search all the resources, including the CS website, as well as the CS wiki, portfolio page, and any other resources. From a single search bar, the app would be able to return a list, sorted by relevance or most recent, of all the matching information from each one of these resources. My side goal for this project is to create a more abstract version of the concept, capable of applying the same combined search to a user-defined set of web pages and resources.
- What’s the difficulties of your project? What problems you might encounter during your project? I have little experience with crawling web pages for data, which could be a big part of the implementation of the project.