Team Status Report for 12/9/23

Unfortunately we ended up making the decision to not implement diodes in our project. Devan was having too much difficulty with the implementation. The positive side to this is that our circuit classification accuracies have gone up, because previously there were some cases where switches would be classified as diodes. The component classification accuracy has stayed the same at around 83%, and the circuit classification accuracy is around 86%. Because we removed diodes, we have to redraw test images that were used that contained diodes. We plan on continuing testing a lot tomorrow and next week, just to get plenty of data to use in our report.

 

Computer vision unit testing:

  • Individual component classification testing
    • Tested different image preprocessing algorithms and parameters
    • Tested how classification performed with various implementations
      • With special casing on wires
        • Determined that this was highly effective in classifying wires, which allows us to remove wires from the dataset so we don’t even have false positives of wires
      • With varying numbers of matches considered (ex: only considering the top 20 matches of features between the component image and a dataset image)
        • Determined that considering all the matches and not leaving any out had the highest classification accuracy
      • With different feature matching algorithms
        • Determined ORB feature vectors + BRIEF descriptors was the best combination
      • With circle detection to separate voltage+current sources and lightbulbs from other components
        • Determined that the circle detection was beneficial and worked well in identifying voltage+current sources and lightbulbs
        • Interestingly resistors would also get detected to have a circle, but this ended up being fine because in the feature matching there would be a clear difference between the resistors and circular components
      • If a component’s best matching score doesn’t reach some sort of satisfactory threshold, rerun the component matching with all component types in consideration (redo without circle detection)
        • Determined that a consistent threshold could not be determined and that the circle detection was more accurate
    • Tested with various sizes of the dataset
      • Notably as long as there is at least one image of a component in each of its possible orientations, the classification accuracy was similar to when having multiple images.
      • Need to test more with this
  • Node detection testing
    • Tested different image preprocessing algorithms and parameters
    • Tested images with different lightings and shadows
    • Determined that even with improper lighting, the node detection works well as long as the nodes are drawn large enough and are properly filled in
  • Full circuit classification testing
    • Tested complete computer vision code with circuit images of various number of components (4 to 10)
      • Determined that all incorrectly classified circuits were because of poor component classification, not because of failure of node detection

Circuit Simulator Testing

  • Generate netlist with maximum of 8 components
  • Run netlist through existing simulator tool
    • CircuitLab
  • Compare results of simulation 
    • Voltage at every node
    • Current through each component 
  • Tested 25 circuits
    • Voltage Sources, current sources, resistors, light bulbs
  • Current and voltage were correct on every circuit
  • 100% simulator accuracy given a netlist

Usability Testing

  • Surveyed 7 individuals ages 12-14
  • Gave them circuits to draw
  • Answered questions on a scale of 1-10
  • “How easy was it to upload your circuits?”
    • Average score 10/10
  • “Was it clear how to input values?”
    • Average score 6/10
    • Found confusing which component they were inputting values for
  • ““How useful were the tips on the home screen when drawing your circuit?”
    • Average score 7/10
    • Found example drawing of circuit most helpful
  •  “Were the headers of the page useful when asked to do complete some task”
    • Average score 9/10
  • “Do you think adding more tips and headers would make it more clear”
    • Average score 7/10
  •  “How clear were the schematics of all the circuits displayed?”
    • Average score 9/10
  •  “How easy was it to recognize what you needed to redraw with your circuit if it wasn’t an option?” 
    • Average score 7/10
  • Average score of survey 7.85
  • Working on implementing a more clear way to input values for components 

Jaden D’Abreo Status Report 12/09/2023

This week I finished the iOS application, conducted usability testing, and tested the full pipeline of the code. I was able to finish the iOS application early and the week which allowed me to schedule interviews throughout the week to conduct usability testing. The surveys went well, however there is a clear problem with the way we ask users to input values for the circuit. The overwhelming response was that they found it confusing which component that were inputting a value for. Therefore, I plan to try and incorporate adding a number below or next to the components that correspond to the label in the input field. Hopefully by doing so this would cause less confusion. I have asked a couple individuals from the test group to meet again early next week and have them answer the question regarding inputting values once more. The usability results were slightly lower than we wanted, however making the changes to the inputting page should get us to our goal comfortably. The pipeline is fully functional, there are some minor changes that need to be implemented. When the user uploads a bad picture, instead of not doing anything I plan to add some text saying the picture was not readable. Apart from this there is not much else that needs to be done. I plan on adding these minor changes tomorrow and begin working on the design report. 

Jaden D’Abreo Status Report 12/02/2023

This week I made final touches to the phone application and started integrating all the subsystems together. Integrating was a bit challenging, however it was completed! Dev and I were able to integrate each subsystem together and now the project can be completely run within one codebase. As this was our first time working with Swift, the process took a lot of time to debug. Dev and I were first able to complete integrating the phone application and the circuit simulator, therefore I was able to model his header and bridge file to model my integration with the computer vision. Thus, once completing the first integration, the second integration was a bit more straightforward, but still challenging. There were a lot of additional things needed to be added to the codebase to make the CV and the phone application work together. Bridging these two systems together required saving the state of file paths, adding extra parameters, and modifying both existing codebases, the phone application and the CV, to function properly. However, there is still one bug that needs to be fixed. The circuit does not display as it did with the hard coded coordinates due to a slight flaw in logic. However, this is not a very pressing bug and should be resolved within a day’s work. The correct components were placed on the screen, just not in the correct position, and I have located the flaw in the code. In addition, I have to display the contents from the circuit simulator, however this will also be even less work than the other fixing the bug. I am slightly behind on my work, I expected to be completely integrated and finished with the phone application by this week, however with the final presentation tomorrow, as I will be presenting, I will turn my focus tomorrow to that. Even though I am behind on my work, I believe the status of the project is in a great place and the entire system will be completed early this coming week!

Jaden D’Abreo Status Report 11/18/2023

This week I spent time debugging the display of the circuits. When using the coordinates from the computer vision the display was not working correctly. As the majority of the phone application that is left to complete is integrated with the display of the circuit, I was not able to make progress on what is left to be done. I was able to make good progress with this and should not have to spend more time to get it completely working. I was not able to allocate as much time this week to the project as I had other commitments that took up a lot of my time. While I am behind on my work I plan to spend a good amount of time during Thanksgiving to get back on track. Regarding the timeline, I did not set Thanksgiving as work days, however working throughout the week will allow me to get back on track. I expect to be done with the phone application completely by the end of next week and will start testing the following week. I plan to integrate the computer vision with the phone application the following week. This includes testing to make sure the computer vision receives the uploaded picture correctly as well as receiving the coordinates to display the circuit. As the phone application code is tailored to send and receive these items I plan to get that done early in the week.  

 

Jaden D’Abreo Status Report 11/11/2023

This week I was able to complete the user being able to tap the circuit they want to analyze as well as tapping components to input values. However, there is still work to be done with the tapping component functionality. Firstly, I need to display the value the user inputted somewhere on the page so they can keep track. In addition, I need to display a next button once all the components have values so it can get sent to the circuit simulator. There is one bug that needs to be fixed with the tapping functionality. If the user taps a component on the previous page, the page for selecting a circuit, the box will appear to input a value. This bug is marginal and does not cause any functionality problems, however it is something worth fixing if time permits. I am on track with my work and plan to have the input functionality fully completed by Tuesday. I am planning on testing my subsystem with the other subsystems sometime in the next week. I will analyze results by making sure the application is sending and receiving data correctly and the application still works the same as with the hardcoded values it is currently using. 

Jaden D’Abreo status report 11/04/2023

This week I was able to complete my expected work. The phone application is able to display circuit components with coordinates correctly. The code is ready to be demoed, but as it is not implemented with the computer vision code, it uses hard coded coordinates at this point. I have created five pages, one for each recommended circuit, and will create a sixth page in case the user needs to reupload a circuit. I plan to focus on integrating the computer vision code with the current state of the phone application in the next week. This includes correctly sending the image the user uploaded to the phone application and parsing the coordinates the program creates to display the circuit. As I have never done this before I do not know how much time this will take, but expect it to take less than a week, hence allocating the whole week for it. I am on track with my work and plan to spend all of Sunday prepping for the interim demo. In addition, if we complete integrating the computer vision and phone application early in the week, I expect to finish the page allowing users to input the values for each of their components.

Jaden D’Abreo Status Report 10/28/2023

This week I was attempting to create the page that appears after the user uploads a picture. However, I ran into a lot of bugs when trying to get a page to appear. A lot of the time when a new page was created images that I intended to appear on the page did not and when the new page did not appear the images would appear on the upload page. I was not able to fix this bug before today due to the ethics assignment, but I plan to spend all day tomorrow making progress. I also spent time researching how to create an image in a certain location given coordinates. I spent time testing dummy code to understand how I should try and display the picture when receiving the coordinates from the computer vision algorithm. I was able to create the images of each component we plan to identify, in all orientations. I am behind on work, however I have allocated time in this coming week to make progress and plan to fix this bug I am currently stuck on tomorrow. By next week I plan to display circuits given the images I have stored in the assets folders after the user inputs their picture.

Jaden D’Abreo Status Report 10/21/2023

I was able to get the upload functionality of the iOS application working. Now the user can upload a picture from their photo library on the app after leaving the home page. The user also has the ability to go back to the home page and leave the image upload page. In addition to this, there have been some frontend changes to the home page as there were previously some bugs when swiping across the pages.The next step would be to get the iOS application to read the coordinates created by the computer vision algorithm and be able to display the circuits appropriately. 

 

As this was during fall break not that much was expected to get down, however since I was behind on the iOS application I wanted to get the upload functionality working before coming back to school. I am on track with my work as this got completed, but now will have to allocate more time to working on the rest of the project as all that is remaining are much more difficult to implement. 

 

A tool that I plan to implement is unit testing. Specifically, unit testing the upload feature of the application and the production of the circuit UI on the phone. This will be the main focus over the coming weeks to help integrate with the computer vision algorithm.

 

Jaden Dabreo’s Status Report for 10/07/2023

This week I spent my time working on the phone application. I have made some progress, however not as much as I would have liked, due to Swift development being much different to other forms of app development I have done prior. The early stages of the week I spent researching Swift as I have no iOS app development experience. I spent a lot of time watching videos and looking at StackOverflow to learn the basic functionalities. Prior to working,  I planned to finish the home and upload page of the app by the end of this week and I was able to do the home page, however I did not complete the upload page. I implemented a sliding home page with three pages of images, titles, and labels. The page includes the functionality of the app and some tips in regards to uploading a circuit. In addition, I have implemented a skip button that leads to a new page. The functionality of the page has not been implemented, however it will lead to the upload page, where the user will upload their hand-drawn circuit. I plan to work on the phone application during fall break and make progress to being able to run the simulator after uploading the image. Currently I am a little bit behind on work. As the report is due this week as well as other class commitments, I will not be able to work on the project until after Friday. However, I plan to spend time during the break to catch back up on work and make the phone application more functional as the computer vision portion of the project has made great advancements. This means I must research how to allow the phone application to interact with the circuit simulator and the computer vision model. Thus, my goals before returning back from fall break include finishing the upload page and start implementing the backend functionality of the app.

 

Jaden Dabreo’s Status Report 09/30/23

This week I spent most of my time finishing all the frontend portions of the initial web application. I finished the upload page earlier in the week, however I extended the scope of the website after discussing with my teammates to help people that are using the tool for the first time. Hence, I added a FAQ page that explained basic necessities that the simulator will need, such as darkening nodes for detection and attempting to draw the connections straight. All the work I have done has been purely software work and research. Last semester I took a class on web development, Web Application Development (17-437), to write the frontend code of the web application. However, our group came to a consensus that it would be better to use a mobile application instead of a web application due to the specifications of our use cases. Because of this, my work for this week will be discarded and I will have to put in more hours next week to get started on the development of the mobile application. I also looked through computer vision research papers in the hopes of understanding how to justify our accuracy expectations. After our presentation, one piece of feedback we received was that our accuracy expectations were not justified. We were told the best course of action would be to look through computer vision research papers and understand on what basis they quantified their accuracy expectations. Through my research I was not able to find anything of substantial help. Most papers did not mention any accuracy expectations and the papers that did were models building upon previous algorithms that already had a score, thus the expected accuracy expectations were greater than the previous algorithms accuracy score. Currently, I am behind on work. Because of the group’s decision to move to a mobile application, I will have to put back the work I had planned for this week and focus on researching mobile development. I plan to put in an extra hour a day this week, potentially more, in order to get back on track.

 

(Header of home page)