Specflame Project Summary

Source: Internet
Author: User

Specflame is the first practical project I have done since I joined the University of Zhejiang Gaps Laboratory in the postgraduate stage. The duration of the project I am responsible for is July 13, 2015 to August 30. The goal of the project is to automate the generation of glasses for different people, based on their scanned human characteristics, with the Kinect Fusion's powerful modeling capabilities. I will introduce the course of my participation in the project and summarize the lessons.

July 13, still with a little graduation when I came to Hangzhou again faint sadness, formally began their own postgraduate career. The task that I received was to continue the project of the spectacles that ZS seniors had done before, rewriting and implementing the project according to the new algorithm.

During the first week (July 1 March-July 19), I was mainly reading the code of the Old project. By learning the MFC mechanism, I generally have a preliminary understanding of the process of generating glasses used in this project. But there is a place in fact there is a problem, that is, I did not start to try to compile and run the program, but I read the code. This is actually very detrimental to my implementation of specific functions and the understanding of code.

In the second week (7.20~7.26), I received the specific development task that the tutor gave me: first to implement a frame based on the tetrahedron grid, and write a simple interface to display it. Because I have just learned DirectX11 programming in the June, so I intend to use DIRECTX+QT to achieve it. Since I'm not very familiar with the implementation of DirectX in Qt, it actually took me a while to do this simple job. And, perhaps because I and the tutor are the type of the more urgent, I in the communication process with the instructor often have some obstacles, resulting in my effect is often not what the instructor wanted, and was also received several batches. At that time the mood is also more depressed, oneself also in the future how to be able to understand more accurately the teacher real idea.

In the third week (7.27~8.1), my work is getting back on track, using the STASM algorithm to get the eigenvalues of the face and integrating the Kinect fusion functionality into the project successfully.

In week four (8.3~8.9), I tried to calculate the feature points and generated glasses and frames for the lenses. In the process of calculating the feature points, I encountered a very strange bug: The computed feature points and the mesh scanned with Kinect are always on. The bug that I had been making for a long time didn't work until the instructor reminded me to replace the code with the old project to determine what the problem was. By doing this, I found that the old project and the Kinect fusion program used by my project were different, and the Kinect fusion program of the old project fixed the bug that the image and depth images were aligned, and the version I used did not fix the bug. This is the cause of the problem of feature points and mesh deviations.

After that, I started to design the code that generated the lenses and frames, and the vertex didn't take much time to build. The trouble is the normal calculation process, because I did not follow the standard process (vertex----build tetrahedron-----the normal vector of the compute vertices), but through the position relationship between vertices to force the normal calculation, This is going to be a lot more difficult. Plus I'm using some of the more primitive debug methods (single-step observation data), causing me to delay finding the cause of the problem. The tutor suggested that I use some debug tools to display the normal in the image. I used this method to debug a lot of days, and finally determine the reason for the existence of the problem, but also make the light completely no problem.

Week five (8.10~8.16), teacher Zhou came to see my current effect, said that I am not satisfied with the interface design, and summed up seven need to modify the list. One of these is to convert the DX version to the OpenGL version. And because the code I wrote earlier was too much of a coupling, it took me a long time to complete this article alone. (also experienced a computer crash, there was no backup code to scare me, thanks to the code I rescued >.<).

Later, the feeling of the project will be more and more, the old bug is not completely eliminated, the mentor to their new requirements one by one, the pressure is growing, almost every day to busy to 3, 4 points. But even so, the teacher's criticism is still constant, then his mood is extremely depressed. Finally, because of the urgency of the project, the lab eventually asked the teacher to take over my project. I finally did some work on the code handover, and the part I was responsible for was temporarily over.

On the whole, my project has been a bit of a failure, which in the beginning made me feel very depressed. When you do the project, it may be because the difficulty is not very big reason, although in the process of doing it also encountered a lot of difficulties, but eventually with the team members to overcome them. And this is the first time I failed the project. After reflection, I summed up these experiences and lessons:

1, in listening to the demands of others do not hurry, to grasp as accurately as possible what he wants, when necessary, he needs to be repeated to his needs to listen to, as far as possible to prevent misunderstanding his meaning.

2, in writing code, to follow a certain code specifications, as far as possible to make their own code readable, coupled not too high. always remember that your code is not just for you to see, and then there may be a lot of people to take over their code, you want to take over the project code is a group of paste it?

3. Learn to use some debug tools to help you debug more efficiently. The so-called "code ability Strong", not only refers to your hand fast, realize fast, more value your code quality, as well as your ability to debug. (So I'm getting the feeling that people who just do ACM are not really going to write code).

4, in the process of doing the project, it is not necessary to use the latest technology, the most cool implementation, but should be with the majority of the team members of the development tools used in conjunction . For example, I started with the DX11 to achieve, but in fact, the project needs to render requirements, OpenGL fixed pipeline completely enough, but because I use the DX to do, but led to a lot of good code implementation of the tutor can not share to me, to a certain extent postponed the progress of the project.

5, in the project process, there are some work, done after you can make the code more convenient after writing. For such things, do not bother, as long as there is time to do. The so-called "ax", you do such a job to improve the efficiency will be far more than the time it takes to do it.

6, do things do not "almost", to a Virgo standard to ask themselves, to their own ruthless, so as to force themselves to really grow.

7, the code should be a good backup, even if the local backup line, do not appear the computer crash code does not exist. Of course, it's best to use some version management tools (such as Git) to help.

In a word, it is necessary to gradually learn to work smarter and more efficiently in the future. Reflect on the previous project and to do the process of doing things, I do have a bit of a "vortex of people" feeling: "with their own skin thickness properties and a large number of nine-tailed chakra, regardless of 3,721 rushed to a burst of hard work." Perhaps in the undergraduate stage, because the project difficulty is not very big, in this way can cope with, but with their own study in depth, this will highlight a lot of problems. In this regard, I this "vortex Naruto" should be to the technical flow of "Yu Uchiha Help", "Magic Ferret" including "Kaka West" learning, to learn how they do things, improve their work efficiency and degree of effectiveness.

At the graduate level, in the depth of the professional field, I need to set myself a learning plan, read some books about code specifications and software engineering (e.g. "Code Complete", "Design pattern", etc.), and try to incorporate them into your own programming ideas. Really improve your ability to write code. I will keep this objective in mind and begin to implement it at the graduate level.

Specflame Project Summary

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.