Sunday, November 22, 2015

Progress Report Due: 11/22/15

  • Progress:
Tasks Accomplished:
We have successfully completed the first step of a tutorial (http://a2dr.blogspot.com/2014/12/canny-edge-detection.html) that shows and provides an example code, for implementing canny edge detection into your Xcode Project. 
Problems Solved:
We are continuing work on how to use our app on the most up to date technology (i.e. iPhones 5C/5S/6/6S. Although, this is not our priority right now, considering we already have it working on Mr. Lin's iPad.
Questions Answered:
How we will have the app decipher one object from another in an image view (through the use of edge detection).
Lessons Learned:
It is best to dig in to Xcode rather than trying to learn the ropes prior to working with it. We wouldn't have known if our app truly worked or not until we had plugged the iPad in and tested it out. Just because we got a "Build Succeeded" on Xcode, doesn't deem our app usable.
New Idea Identified: Implementing edge detection in live video rather than in recorded videos or images.
  • Problem:
Difficulties Encountered:
We have to use two separate codes and somehow tie them together to form the type in which we want our app to operate on (take an edge detection code for images and tie it in with a code for live video).
Missing Information: None.
Equipments Required: Mac Laptops, Mr. Lin's iPad.
Materials Missed: We are not lacking of any materials as of now.
Open Issues: Inserting a camera feature that does not include a recording feature; our app does not need to record and playback what it detects as you would for instance take a video or picture.
New Risks: Not getting the app to work off of devices aside from Mr. Lin's iPad. Again though, it is more important we get our app to work off of at least one platform and building our app from there before we try to make our app compatible with multiple devices (such as updated forms of the iPhone as stated previously).
Show Stopper Identified: XCode's software not having an updated enough edition that matches the latest iOS technology. Additionally, not being able to find or create a code where edges can be detected through live video rather than recorded videos or images.
Personal Problems: None as of now.
Schedule Conflicts: None as of now. Whenever we cannot meet in person we communicate via Facebook to let one another know of new discoveries outside of classtime.
  • Plan:
Proposals/Steps to Attack the Problems:
We will focus Tuesday's class period on fixing this minor issue. It most likely will be solved beforehand, depending on time constraints.

Action Items for the Coming Week:
Before heading off for Thanksgiving break we hope to tie together our edge detection code with our video code, by finishing the tutorial at hand.
Experiments to Conduct, Ideas to Try, Vendors to Contact, Updated Schedule, etc.

As we add to our app and alter the code, we will need to continuously reassure that our app is compatible with Mr. Lin's iPad (at the least) in order to fix any errors that stop the app from thoroughly running.

Monday, November 16, 2015

Sunday, November 15, 2015

Progress Report Due: 11/15/15

  • Progress:
Tasks Accomplished:
We have found an app that is basically just a camera in an app that you can start and stop. No recording is actually done on it.
Problems Solved: We have inserted OpenCV into our code.
Questions Answered: We were unsure if the code for OpenCV would be compatible with our XCode project since we had many problems with getting it to work in the past. We are now aware that it did work and we will not have to pursue alternative obstacles.
Lessons Learned: Inserting OpenCV showed us that we now need to focus on edge detection for the objects our app detects.
New Idea Identified: Due to the success of inserting OpenCV, no new plan is necessary as of now.
  • Problem:
Difficulties Encountered: We found that our Xcode Project was not compatible with many devices. The only device that it worked upon was Mr. Lin's iPad. This led to the questioning of how it will be a universal app if it will only work off of a particular update? It would not work off of the iPhone 5S or iPhone 6.
Missing Information: None.
Equipments Required: No new equipment is needed. Occasionally though we will need to try our app out on alternative devices (iPhones for instance rather than Mr. Lin's iPad). Such equipment though does not need to be purchased, we can use our own.
Materials Missed: We are not lacking of any materials as of now.
Open Issues: Inserting a camera feature that does not include a recording feature; our app does not need to record and playback what it detects as you would for instance take a video or picture.
New Risks: Not getting the app to work off of devices aside from Mr. Lin's iPad.
Show Stopper Identified: XCode's software not having an updated enough edition that matches the latest iOS technology.
Personal Problems: None as of now.
Schedule Conflicts: None as of now. Whenever we cannot meet in person we communicate via Facebook to let one another know of new discoveries outside of classtime.
  • Plan:
Proposals/Steps to Attack the Problems:
We will focus Tuesday's and Thursday's class periods on this, as well as time outside of class throughout the week. If found unsuccessful (our app off of platforms aside from Mr. Lin's iPad) we will focus on tackling the issue as to why they aren't compatible. We are too far in to switch platforms, softwares, etc.


Action Items for the Coming Week:
We will mainly be using any iOS device we can get our hands on; iPhones, iPods, etc.
Experiments to Conduct, Ideas to Try, Vendors to Contact, Updated Schedule, etc.

We will be testing our app off of multiple platforms.

Sunday, November 8, 2015

Progress Report Due: 11/8/15

  • Progress:
Tasks Accomplished:
OpenCV was successfully inserted into our XCode Project.
Before:     After:
original.jpgnew.jpg
Problems Solved: We switched tutorials from the one we were originally working on (http://computer-vision-talks.com/2012/06/opencv-tutorial-part-3/) to a new one Leslie found (https://github.com/Itseez/opencv_for_ios_book_samples). The new one thus far has proven successful. The project itself resulted in a “built succeeded,” within our XCode Project, which has yet to happen so far this year, due to various errors found in previous codes we were not able to fix.
Questions Answered: We were unsure if the code for OpenCV would be compatible with our XCode project since we had many problems with getting it to work in the past. What worked instead was working off of Mr. Lin’s XCode Project and inserting code from the new tutorial. For some unidentified reason, the code was compatible with Mr. Lin’s XCode Project and not ours, we will look into why this week.
Lessons Learned: Different codes apply to different versions of XCode. We knew this when we began our project but didn’t realize how different one version of XCode varies from another and how different troubleshooting can be.
New Idea Identified: Due to the success of inserting OpenCV, no new plan is necessary as of now.
  • Problem:
Difficulties Encountered: In this past week we once again tried solving the various errors that appeared in our XCode project while trying to insert Computer Vision’s (http://computer-vision-talks.com/2012/06/opencv-tutorial-part-3/) tutorial’s code into our project. We were hoping to continue on with one tutorial as Mr.Lin suggested, trying to tackle our errors instead of avoiding them with new tutorials. Although, we did switch to another tutorial that was proven successful.
Missing Information: None.
Equipments Required: No new equipment is needed.
Materials Missed: We are not lacking of any materials as of now.
Open Issues: Right now we have been focusing on inserting OpenCV into XCode, a process that took longer than expected. Although soon we will need to specify the way in which our app will detect objects (how it will detect one particular object while the camera is seeing many).
New Risks: None since last week.
Show Stopper Identified: The chance our app cannot focus on one particular object (the one we want it to detect) amongst many others.
Personal Problems: None as of now.
Schedule Conflicts: None as of now. Whenever we cannot meet in person we communicate via Facebook to let one another know of new discoveries outside of classtime.
  • Plan:
Proposals/Steps to Attack the Problems:
Our problems were fixed this week, aside from getting the app’s camera to detect particular objects while looking at many. We will troubleshoot this problem once we reach specifying the app’s camera’s capabilities in the near future.

Action Items for the Coming Week:
We need to get our app to be able to use edge detection with video instead of picture, since our app will not be taking pictures, but rather solely using the camera to detect objects; no pictures are necessary.
Experiments to Conduct, Ideas to Try, Vendors to Contact, Updated Schedule, etc.

Attempting to try out our app (as long as all our needed information to do so is present) on the iPad. By the end of this week, our goal is to have made the OpenCV that has been inserted into our app, compatible with videos instead of pictures. We will definitely need to crunch on this task, time wise, considering how long inserting the OpenCV code took compared to how long we had originally planned for it to take.

Sunday, November 1, 2015

Progress Report Due 11/1/15

Progress Report Due 11/1/15
Tasks Accomplished:
This week we have yet to solve our issue of not being able to successfully place the OpenCV code into our XCode Project. We spent both class periods this week trying to do so, but we realize we need to pinpoint the errors and solve them as soon as possible in order to move forward with our project. If we spend too much time on this one error, we will waste too much of our time now and with future errors we may have.
Problems Solved:
We’ve realized it may be in our team’s best interest to not use Mr. Lin’s code from his app and move forward with a similar code we can find elsewhere online, as long as we are allowed to do so. An alternative is to find a sample code online, place it in our XCode Project and if it works, see where it differs from Mr. Lin’s code. Although, we have been able to breakup inserting OpenCV into XCode in steps. This has made it easier for us to identify where our errors are present and target them in a smaller section of code.
Lessons Learned:
Relating back to our “Tasks Accomplished” section, we’ve learned that tackling and solving errors in a timely manner is extremely important. We have spent nearly two weeks on this one error we have been having and need to move forward. If we spend such time on errors we may have in the future, our project will never be created.
New Idea Identified:
Last class, we followed the steps of the “Computer Vision Talks, OpenCV Tutorial to Detect and Track Objects with Mobile Devices,” (http://computer-vision-talks.com/articles/2012-06-23-opencv-tutorial-part-1/). Here, we followed the steps to insert OpenCV code into our project. The tutorial provided code we could copy straight from the tutorial and place in our XCode Project. From this tutorial, we concluded, as similarly stated above, that we should try taking sample codes from tutorials such as these, to at least let XCode build our app, since each building has failed thus far.
Problem:
Difficulties Encountered:
We have encountered unfamiliar errors on XCode that have halted our progress. Typically these errors cannot be fixed through one-step processes. Some of our more frequent errors we’ve encountered in the past week are shown below.
Screen Shot 2015-11-01 at 9.50.14 PM.png
Missing Information:
With regards to XCode, many of our errors revolve around missing files. Therefore, we need to assure all OpenCV files are present in their stated path place, before including them in our code.
Equipments Required:
No new equipment is required for our project thus far. Again, our project is fully computer based aside from tests done on mobile devices in which we can provide.
Materials Missed:
It is becoming increasingly hard to find tutorials as up to date as the XCode update we are working off of. Certain aspects of older XCode versions are included in tutorials we’ve followed that do not pertain to all aspects of our version.
Open Issues:
We are looking into the practicality of our app. We want our app to be easy to use and applicable in daily situations so we want to make sure that the app is useful and functional. In our last progress presentation, there were many questions as to how our app will work and how it is useful and we want to take all those thoughts into consideration to create the best functioning and practical app we can make.
New Risks:
Leslie witnessed an a visually impaired man on the subway within the last few weeks, using a stick to navigate around in a crowded station. This aroused the questions, how will people be able to use their mobile devices to detect signs that may be blocked by other humans? How can one who is visually impaired just wave their phone around in hopes of the phone detecting the right area? We started with a vague concept. Now though, we need to find a medium through which users can point the device and be able to detect the exact object they want to detect. We may have to steer towards using markers as Team 1 is using, that we’d place around subway signs as was suggested at the First Progress Report Meeting.
Show Stopper:
We are still new to Xcode and its many functions and settings so errors in XCode are always a challenge to overcome and can set us back majorly. They are very time consuming. We are unclear of whether the problem is dependent upon XCode’s compatibility with OpenCV code or if the problem relies within the OpenCV Code itself. If the problem is in the code, we may have to use a different image processing library, such as SimpleCV. Although, it is harder to find SimpleCV code online as opposed to OpenCV code.
Plan:
Follow a step by step tutorial of OpenCV. We will start out with simpler codes and then as move up in difficulty.
Create a sketch of our app. It’s time to start pinpointing its exact functions and how we want it to look and how a person will use it. We hope that with a sketch, less people will have questions on our app. We need to steer our focus away from inserting the code and more towards the larger picture, creating the app. If OpenCV continues to halt our project, we will have to choose a different route.

Sunday, October 25, 2015

Weekly Progress Report for the week of 10/18/15-10/25/15

Progress:
Tasks Accomplished:
  • We have inserted the OpenCV code from Mr. Lin’s app, into your XCode project. Although, we haven’t been able to make much progress since due to an error that comes up every time we’ve tried to build our app; finding a solution to fix this error has taken up most of our time.
Problems Solved:
  • We were concerned with the particular code we would be inserting into our XCode project, since we could not start from scratch due to a time crunch. As of now we are using Mr. Lin’s code from the app he has created to at least reach a starting point to see how OpenCV will meet our needs.
Lessons Learned:
  • Not only do we have to deal with familiarizing ourselves with XCode, but additionally we need to familiarize ourselves with the common problems that cause the building of the app to fail. We came across the one in the picture below quite frequently.
  • Through our struggle with this error below, we are more familiar with the OpenCV library and how to use it and why it is so important to reference it correctly in our code.
          
HlfxQ.png
New Idea Identified:
  • We may need to use a different image processor aside from OpenCV. OpenCV is very complicated and may not be necessary if we can find a simpler one that will still be able to accomplish our task.
  • We figured out that by downloading the older versions of OpenCV, we obtain the files we are missing and by dragging them into our code, we are able to reference them. However, this will not work for all because it is an inefficient way of working plus we then get errors saying we don’t have other files. So, we are still working on referencing the files.
Problem:
Difficulties Encountered:
  • We continuously received the “Lexical or Preprocessor Issue” that halted the progress of our app. Everytime we tried alternatives, typically more errors came out. Some alternatives we tried were:
Missing Information
  • We are not necessarily missing information. Any “missing information,” is information we are learning along the way, like what certain issues that pop up on XCode mean (like the issue we’ve been having listed above).
Equipments Required
  • We have not come across any obstacles that require equipment we do not already have; our project is computer based. Although, we have created a membership for the iOS Developer Center.
Materials Missed
  • We were introduced to the iOS Developer Center, an online location where we can post questions we have pertaining to anything iOS related, as well as search through similar issues others have had to find solutions. This will help us when we come across issues that we ourselves do not have the answer for.
New Risks:
  • If we cannot get OpenCV to comply with our XCode project we may need to find a different image processing software.
  • If we do use an alternative image processing software/library, will we have to write code from scratch? Will a sample code be online anywhere for us to use/work off of?
Show Stopper Identified:
  • Getting our app to decipher numbers instead of colors; many trains’ symbols share the same color but differ in meaning (ex. the 4 and 6 trains have the same color but bring riders to different locations). A question that comes along with this though is if OpenCV is capable of doing so.
Personal Problems
  • Schedule Conflict: Leslie and I have one less day together than many other teams. Her OpenLab time on Wednesday is during 8th period while Kate’s is during 9th. Therefore, this provides us less time to collaborate, causing us to have to divide more of our tasks.
Plan:
Proposals/Steps to Attack the Problems
  • We will continue working through the issue this week. An additional issue we might encounter that we've known about from the start, is OpenCV's ability to recognize what we want it to (symbols of subway signs). An alternative is through the use of marking the areas in which we want to identify with technology similar to what the drone navigation team plans to use.
Action Items for the Coming Week
  • Our main goal of the week is to solve the “Lexical or Preprocessor Issue” that keeps appearing in our XCode project amongst inserting Mr. Lin’s code.
Experiments to Conduct
  • If the OpenCV code pulls through, we will need to begin testing it’s ability with our pictures, ones we have taken of subway symbols.
Ideas to Try
  1. We are going to try downloading the older open cv for the files we are missing. If that doesn’t work, then we will have to think of a plan B. WE are giving ourselves the week but after that, we need to start thinking of something else because we don’t want to stay halted forever.
Vendors to Contact
  • If we cannot fix the issue we have encountered (Lexical or Preprocessor Issue) and decide to not use a different image processor (library), then we may have to contact the OpenCV Company ourselves to see if they can help us fix the issue specific to our project. Or we might post our problem on popular coding blogs (stackoverflow, apple developer chats, etc.) and see if anyone else knows how to fix the problem
Updated Schedule


  1. Fix this error by the end of the week
  2. Once OpenCV is running, start figuring out how to have our app identify the objects we want it to identify.
  3. Make some trips to subway stations to take pictures and get an idea of what our app should do (how it should maneuver, what it should learn to recognize, etc.) As well as identify alternative manners if we come to the conclusion our plan may not be suitable.

Monday, October 12, 2015

Little Good News!

I have successfully compiled, downloaded, and ran the old "shape" code on the new iPad from school (iOS 8.3, 12F69) using the new Xcode (6.4, 6E35B) over the weekend. Though the audio part is no longer working, however, the OpenCV part is working! You can test it further and look into the code tomorrow. Also, you might want to get familiar with the process of running code on iOS devices such that you can use your own devices.