Skip to content

Dev Notebook Siyuan Chen

SiyuanChen edited this page Apr 22, 2019 · 22 revisions

# Developer's Notes

Client First Meeting January 29th 2019: Meeting with Dr. Brian Cooper, project partner at Lexmark, with Nolan Chancellor, Tim Watson, and Michael Dingess

We contacted with Brian Cooper (the client) and made an appointment with him to talk about our incoming project. Finally, we setup a meeting time at Lexmark on January 29th at 2pm.

Tim picked me up after I finished my class and we drove to Lexmark. Nolan did not have class at that time so he decided to drive there by himself. Brain sent Tim a map to lead us to the correct building. After waiting a short time in a lobby, Brain came to see us and led us to a meeting rook where we met two other Lexmark employees there.

Brain introduced the project again and his colleagues also talked about this project and how they want to use this application. We had a Q&A part. We talked about whether any group took this project last semester. They told us there were two groups took this project. One of them just finished user interface section. The other one focused on machine learning aspect without GUI. Both of them did not make any great outputs. We asked if we could look at their codes somewhere so that we may absorb some good ideas from theirs and we may finish this project based on their process. Brain told us they uploaded their codes on Github and he could find the links and send to us. Since two groups did not finish this project at all, Brain said we could use any open sourced codes online to help us finish this project.

During conversation, we realized that it would be a very slow process to use machine learning model to work on the whole page of image, and it would better if we partition the image into small sections so that it could save a lot of time. Also, Brain did not really care about user interface. We could use makefile or some other ways to execute the application. They were more interested on functionality than outlook.

Brain provided us some files were used as trained data. And gave of some tips. First, we don't have to work on color scanning. Second, Our goal is to use OCR optimizing machine learning model to enhance the text in the scanned images. Third, Training data would be office documents that were printed, scanned and compressed. What we need to do is improve the compressed images. Fourth, we may be limited on training data. Last but not least, our client preferred to meet with us if necessary.

Brain said if we have any questions, we can contact him via Microsoft Team but he had to invite us first so that we could use it to contact him. Furthermore, we will be provided training data as well as some papers may be helpful.

The meeting lasted about an hour, since some other groups in Lexmark need to use this meeting room.

Dev Notebook January 30th 2019 (In place of Scrum Meeting – Snow Day)

We have met our client and talked about our project briefly.

Next week, I would plan to get familiar with projects which were done by two teams from last semester to get some useful information and try to find a good spot to start our project. Also, attempt to learn to use Microsoft 'Teams' software. Moreover, get in touch with our client.

Dev Notebook February 1st 2019: Preparation for team project

Started watching online video to study machine learning since I think I could learn quicker by video than books. However, I also have a machine learning book in electronic version, and probably I will take a look too. Machine learning would be the biggest problem in our team since out Michael had finished machine learning class and none of other three. So that we need to work on study machine learning first.

Dev Notebook February 6th 2019: Scrum meeting with Mr. Jeff Chartos, CS499 instructor, with Nolan Chancellor, Tim Watson, and Michael Dingess

Scrum meeting with our CS499 instructor. Talked about our process of project and what problem we were facing. What I had done for last week is studying machine learning by watching videos. The plan for this week is keeping going to study machine learning.

Dev Notebook February 13th 2019: Contact with our client - Brain

Received Team invitation from our client - Brain. We can see sample data there, but we still did not see any code there. He also provides some useful sources which were found by teams in last semester, and we are going to look through them and find some help.

Dev Notebook February 18th 2019: Team Meeting with Nolan Chancellor, Tim Watson, and Michael Dingess

Group meeting. We talked about group essays and split jobs. The meeting lasted about an hour.

What I did is third section of requirements.

Our application should able to export a new file. After the user run the program, the program should export a new file which contains contents from the imported file after being operated on by decompression algorithm. The new file should be in a format easily editable by the users, such as .txt or .docx.

In conclusion, our system will include a stable and functional application which allows users to invoke the software via commands in terminal, that then runs the decompression software (and potentially the OCR application), and finally returns the finished work as a newly created file which is readable and editable by the users.

Dev Notebook March 2nd 2019: Team Meeting with Nolan Chancellor, Tim Watson, and Michael Dingess

We had a group meeting at 2pm at William T. Young Library. Since Tim was sick and he could not attend that meeting, we left a part of architecture assignment to him. Nolan was responsible for High level design, Michael was responsible for Metrics, Tim was responsible for Testing, and I was responsible for Detailed Design. After we finished architecture paperwork, we started to work on our presentation. Nolan made an appointment of Presentation U on March 3th.

I was doing detailed Design. Our system would implement the following methods: The system itself, the main method, which calls the image preprocessing method and passes the feature data to the appropriate machine learning model.

The image preprocessor, which, given an input compressed image, partitions the image into sections and returns the image features of each section to the main method.

The OCR-optimizing machine learning model, which runs prepackaged machine learning models with hand-tuned hyperparameters to improve the OCR accuracy of the image, as determined by the OCR error metric estimation method.

The OCR error metric estimation, which estimates the error in the output of the OCR program on a given image, relative to the absolute OCR of the true uncompressed image.

The super-resolution machine learning model, which runs prepackaged machine learning models with hand-tuned hyperparameters to improve the overall resolution of the image, as determined by the super-resolution error metric estimation method.

The super-resolution error metric estimation, which estimates the error in the output of the super-resolution machine learning model on a given image, relative to the true absolute uncompressed image.

For our User interface design, the client expressed a disinterest in an alluring graphical user interface for the program, stating that the restoration functionality far surpassing usability in priority. Because of this, the program will likely be invoked via command line interface with flags for specifying options.

Dev Notebook March 3rd 2019 Presentation Practice in Presentation U with Nolan Chancellor, Tim Watson, and Michael Dingess

We met at Woodland Glen III to practice out presentation. It was a table presentation without projector so that it looks not really professional and I even did not feel anxious or nervous. After the presentation, people there gave us some feedbacks, and we made some small adjustments on our presentation.

Dev Notebook March 20th 2019: Scrum meeting with Mr. Jeff Chartos, CS499 instructor, with Nolan Chancellor, Tim Watson, and Michael Dingess

We had a stand-up meeting with Jeff. Tim forgot to change time on his laptop so he missed that meeting. What I had done for last week is finished the detail design part for architecture assignment. My team's plan for this week is starting coding for our project.

Dev Notebook March 20th 2019: Team Meeting with Nolan Chancellor, Tim Watson, and Michael Dingess

We met at The Science Library to start our first meeting after Spring break. We briefly talked about the process of our project and we were going to schedule the next meeting with Brain from Lexmark. The main thing we were doing during meeting time is searching existing sources which we could get useful information from, including OCR machine learning model in python and super-resolution machine learning model in python. We just pasted the links we find that we thought they were useful in our Wiki page. Before the end of this meeting, we scheduled to meet again during class time on Friday. We should find all useful information online by Friday so that we could discuss on Friday.

Dev Notebook March 22nd 2019: Team Meeting with Nolan Chancellor, Tim Watson, and Michael Dingess

We met at The Science Library as scheduled. We checked the useful information we found online and tried to download them and see whether we can run them in our own laptop. Michael could download and successful run super resolution prepackaged machine learning model on his Linux environment laptop. But he also met some tricks need to be figured out when he back home.

Dev Notebook April 4th 2019: Team Meeting with Nolan Chancellor, Tim Watson, and Michael Dingess

We met at The Science Library to talk about our current codes for our project. We have already gotten prepackaged super resolution machine learning model. What we need to do next is use training data to train out super resolution machine learning model.

Dev Notebook April 14th 2019: Team Meeting with Tim Watson, and Michael Dingess

We met at the basement of William Young T. Library to work on our Coding Assignment Presentation. Since Nolan was sick, he could not come to our meeting at that time. I created the slides and we edited it based on what we were working on and implemented. We left the part of metrics to Nolan so that he would have a part to work on and to speak during presentation.

For our project, our planned architecture design was using two models. One of them is OCR optimizing machine learning model, which is used to increase the accuracy of output image. The other one is Super-Resolution machine learning model, which is used to improve the resolution of output image. And the process was our application was given a compressed image, then user chooses one of these models to run, and finally the improved image would be saved to local system.

But something has changed. Our implemented architecture design only includes Super-Resolution machine learning model since our limited time and running for a machine learning model costs several days to finish. Our process would keep almost same except users would not have a choice to run with OCR optimizing machine learning model.

Meanwhile, We have finish out command line part so that user could type correct command to run our application. Here is an example of correct command: python3 ahmm_compression.py PATH/inputfile(s) -o PATH/outputfile(s) -algorithm=1. Here "python3" is the version of python installed in local system. "ahmm_compression.py" is the name of our application written in Python. Then user should type the path of inputfile(s) and if he/she wants, paths and names of outputfile(s) can also be settled. Although we only have Super-Resolution machine learning model at this time, we could have more models in the future, so that the algorithm could equal to two, three or even ten.

The tip for our application is running version of Python must be 3.x.

Dev Notebook April 16th 2019: Presentation Practice in Presentation U with Nolan Chancellor, Tim Watson, and Michael Dingess

We Met at the basement of William Young T. Library to practice our presentation. We used projector which is much more professional than last time. We did not really organize our presentation before so that only me and Tim knew what we were responsible to talk about. Michael would do introduction and demo video. Nolan did not know he should talk about conclusion so he was not really fluent at that slide.

Word Count: 2080

Clone this wiki locally