# 處理含有雜訊之點雲骨架的生成 - 政大學術集成

全文

(2) 處理含有雜訊之點雲骨架的生成 Dealing with Noisy Data for the Generation of Point Cloud Skeletons 研 究 生：林逸芃. Student：Yi-Peng Lin. Hsu 政 治Advisor：Kuo-Wei 大. 指導教授：徐國偉. 立. ‧ 國. er. io. sit. y. Nat. 碩士論文. ‧. 資訊科學系. 學. 國立政治大學. al. n. A Thesis v i n submitted toC Department Science U h e n g c hofi Computer National ChengChi University in partial fulfillment of the Requirements for the degree of Master in Computer Science 中華民國一百零三年七月 July 2014.

(3) Abstract. The skeleton of a visual object or a 3D model is a representation that can reveal the topological structure of the object or the model, and therefore it can be used in various applications such as shape analysis and computer animation. Over the years there have been many studies working on the extraction of the skeleton of an object. However, most of those. 政 治 大 account), while in practice we often have to deal with incomplete and unclean data, just as there 立. studies focused on complete and clean data (even though some of them took missing values into. ‧ 國. 學. might be missing values and noise in data. In this thesis, we study noise handling, and we put our focus on preprocessing a noisy point cloud for the generation of the skeleton of the. ‧. corresponding object. In the proposed approach, we first identify data points that might be. sit. y. Nat. noise and then lower the impact of the noisy values. For identifying noise, we use supervised. io. er. learning on data whose features are density and distance. For lowering the impact of the noisy. al. v i n C hthat can extract skeletons because it can be used with any tool e n g c h i U from point clouds. n. values, we use triangular surfaces and projection. The preprocessing method is flexible, We. conduct experiments with several 3D models and various settings, and the results show the effectiveness of the proposed preprocessing approach. Compared with the unprocessed model (which is the original model with the added noise), if we apply the proposed preprocessing approach to a noisy point cloud before using a tool to generate the skeleton, we can obtain a skeleton that contains more topological characteristics of the model.. Our contributions are as. follows: First, we show how machine learning can help computer graphics. Second, we propose to use distance and density as features in learning for noise identification. Third, we propose to use triangular surfaces and projection to save execution time in noise reduction. i.

(4) Fourth, the proposed approach could be used to improve 3D scanning.. Keywords: Noise, Point cloud, Skeleton. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. ii. i n U. v.

(5) 摘要. 一個視覺物體或一個三維模型的骨架，是一種可以揭示該物體或模型的拓樸結構的 呈現方式，因此骨架可以被應用在諸多場合當中，例如形狀分析和電腦動畫。近年來， 有許多針對從一個物體當中抽取骨架的研究工作。然而，大多數的研究著重於完整和乾. 政 治 大. 淨的資料（儘管這些研究當中，有一些有將缺失值考慮在內），但在實務上，我們經常. 立. 要處理不完整和不潔淨的資料，就像資料裡面可能有缺失值和雜訊。在本論文中，我們. ‧ 國. 學. 研究雜訊處理，而且我們將焦點放在針對帶有雜訊的點雲資料進行前置處理，以便生成. ‧. 相應物體的骨架。在我們提出的方法當中，我們首先識別可能帶有雜訊的資料點，然後. y. Nat. er. io. sit. 降低雜訊值的影響。為了識別雜訊，我們將監督式學習用在以密度和距離作為特徵的資 料上。為了降低雜訊值的影響，我們採用三角形表面和投影。這個前置處理方法是有彈. n. al. Ch. engchi. i n U. v. 性的，因為它可以搭配任何能夠從點雲資料當中抽取出物體的骨架的工具。我們用數個 三維模型和多種設定進行實驗，而結果顯示本論文所提出的前置處理方法的有效性。與 未經處理的模型（也就是原始模型加上雜訊）相比，在從帶有雜訊的點雲資料當中產生 物體的骨架之前，如果我們先使用本論文所提出的前置處理方法，那麼我們可以得到一 個包含更多原來的物體的拓撲特徵的骨架。我們的貢獻如下：第一，我們展示了機器學 習可以如何協助電腦圖學。第二、針對雜訊識別，我們提出使用距離和密度做為學習過 程中要用的特徵。第三、我們提出使用三角表面和投影，以減少在做雜訊削減時所需要 iii.

(6) 花費的時間。第四、本論文提出的方法可以用於改進三維掃描。 關鍵字：雜訊，點雲，骨架. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. iv. i n U. v.

(7) 致謝 本篇論文的完成，也意味著研究所的生涯即將告一段落。在兩年來的研究生生活中， 非常感謝能夠得到許多人的幫助與鼓勵，本篇論文能夠順利地完成，不只是倚靠我個人 的努力，而是要歸功於許多人的指導與協助，在此由衷的向各位表示感謝。 首先要感謝我的指導老師徐國偉教授在兩年的研究所求學期間所給予我的指導，不. 政 治 大. 論是在學術研究還是論文撰寫方面，老師總是提供很多豐富的資源與建議，給予我思考. 立. 方向並協助我解決許多難題，讓我在這兩年的碩士生涯中獲益良多，尤其是在最後論文. ‧ 國. 學. 的寫作過程中，老師更是不厭其煩的為我審視論文內容，促使本論文得以順利完成。另. ‧. 外，感謝 廖文宏 教授，不論是在本論文的內容上還是我這兩年的求學期間內，都提供. y. Nat. er. io. sit. 我許多專業知識與研究方向。. 感謝研究室的學長姐在課業上提供的協助，能夠讓大學就讀非本科系的我能夠在這. n. al. Ch. 兩年的學習過程中更加的順利。. engchi. i n U. v. 除此之外，也感謝口試委員陳佳妍教授、何瑁鎧教授以及廖文宏教授在百忙之中抽 空閱覽本論文並提供了寶貴的建議和指導，使得本論文的品質和正確性能夠提升。 最後，要感謝我的家人在我就學期間給予我的鼓勵與支持，讓我能更加專心的完成 學業。. v.

(8) Table of Contents CHAPTER 1 INTRODUCTION........................................................................................................ 1 1.1 Motivation .............................................................................................................. 1 1.2 Main framework ..................................................................................................... 5 1.3 Contributions .......................................................................................................... 8 1.4 Organization............................................................................................................ 9 CHAPTER 2 BACKGROUND ........................................................................................................ 11 2.1 Skeleton extraction ..................................................................................................... 11 2.2 Point cloud .................................................................................................................. 16 2.3 Noise handling ............................................................................................................ 17 CHAPTER 3 THE PROPOSED APPROACH ................................................................................... 20 3.1 The preprocessing method ................................................................................... 20 3.2 The additive noise model ..................................................................................... 22 3.3 Noise identification............................................................................................... 26 3.4 Noise reduction .................................................................................................... 31 CHAPTER 4 THE EXPERIMENTS ................................................................................................. 40 4.1 Overview ............................................................................................................... 40 4.2 1 Stdev, 10% noisy values, using Support Vector Machine .................................. 43 4.3 1 Stdev, 10% noisy values, using Naïve Bayes ...................................................... 46 4.4 1 Stdev, 10% noisy values, using Classification Tree ............................................. 50 4.5 1 Stdev, 20% noisy values, using Support Vector Machine .................................. 54 4.6 1 Stdev, 20% noisy values, using Naïve Bayes ...................................................... 58 4.7 1 Stdev, 20% noisy values, using Classification Tree ............................................. 62 4.8 2 Stdev, 10% noisy values, using Support Vector Machine .................................. 66 4.9 2 Stdev, 10% noisy values, using Naïve Bayes ...................................................... 67 4.10 2 Stdev, 10% noisy values, using Classification Tree ............................................. 68 4.11 2 Stdev, 20% noisy values, using Support Vector Machine .................................. 68 4.12 2 Stdev, 20% noisy values, using Naïve Bayes ...................................................... 69 4.13 2 Stdev, 20% noisy values, using Classification Tree ............................................. 70 4.14 Other experiments---pair models ......................................................................... 71 4.15 Discussions............................................................................................................ 72 CHAPTER 5 CONCLUSIONS AND FUTURE WORK ...................................................................... 74 REFERENCES .............................................................................................................................. 77. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. vi. i n U. v.

(9) List of Figures Figure 1. An example of a point cloud (downloaded from the Internet). ................................... 2 Figure 2. An example of the impact of noise and the effect of the preprocessing. .................... 4 Figure 3. The main framework of the proposed approach. ........................................................ 6 Figure 4. The models in our database used in experiments. ....................................................... 8 Figure 5. An example illustrating how the algorithm works [1]. ............................................. 14 Figure 6. The flow chart of the preprocessing method. ............................................................ 21. 治 政 Figure 7. Means and standard deviations of x, y, and z coordinates 大 of an example................. 23 立 Figure 8. The scatter plots of each model without and with noise---spider. ............................. 24 ‧ 國. 學. Figure 9. The scatter plots of each model without and with noise---eagle. .............................. 24. ‧. Figure 10. The scatter plots of each model without and with noise---leopard. ........................ 25 Figure 11. The scatter plots of each model without and with noise---horse. ............................ 25. y. Nat. io. sit. Figure 12. The scatter plots of each model without and with noise---human. ......................... 25. n. al. er. Figure 13. The scatter plots of each model without and with noise---dinosaur........................ 26. Ch. i n U. v. Figure 14. The flow chart of feature creation. .......................................................................... 27. engchi. Figure 15. The flow chart of noisy point identification. ........................................................... 30 Figure 16. The flow chart of noisy value reduction. ................................................................ 32 Figure 17. A surface passes through 10 points. ........................................................................ 33 Figure 18. A surface created by triangle faces. ......................................................................... 34 Figure 19. An illustration of the intersection point of the line and the surface. ....................... 35 Figure 20. The unadjusted model vs. the adjusted models (10% noise)--spider. ..................... 35 Figure 21. The unadjusted model vs. the adjusted models (10% noise)--eagle. ...................... 35 Figure 22. The unadjusted model vs. the adjusted models (10% noise)--leopard. ................... 36. vii.

(10) Figure 23. The unadjusted model vs. the adjusted models (10% noise)--horse. ...................... 36 Figure 24. The unadjusted model vs. the adjusted models (10% noise)--human. .................... 36 Figure 25. The unadjusted model vs. the adjusted models (10% noise)--dinosaur. ................. 37 Figure 26. The unadjusted model vs. the adjusted models (20% noise)--spider. ..................... 37 Figure 27. The unadjusted model vs. the adjusted models (20% noise)--eagle. ...................... 38 Figure 28. The unadjusted model vs. the adjusted models (20% noise)--leopard. ................... 38 Figure 29. The unadjusted model vs. the adjusted models (20% noise)--horse. ...................... 38. 政 治 大. Figure 30. The unadjusted model vs. the adjusted models (20% noise)--human. .................... 39. 立. Figure 31. The unadjusted model vs. the adjusted models (20% noise)--dinosaur. ................. 39. ‧ 國. 學. Figure 32. The skeletons of some models without noisy data. ................................................. 41 Figure 33. The comparison of the process of the experiment................................................... 42. ‧. Figure 34. Skeletons of model w/o & w/ preprocessing (10% noise, using SVM)--spider...... 43. Nat. sit. y. Figure 35. Skeletons of model w/o & w/ preprocessing (10% noise, using SVM)--eagle. ...... 44. n. al. er. io. Figure 36. Skeletons of model w/o & w/ preprocessing (10% noise, using SVM)--leopard. .. 44. i n U. v. Figure 37. Skeletons of model w/o & w/ preprocessing (10% noise, using SVM)--horse. ..... 45. Ch. engchi. Figure 38. Skeletons of model w/o & w/ preprocessing (10% noise, using SVM)--human. ... 45 Figure 39. Skeletons of model w/o & w/ preprocessing (10% noise, using SVM)--dinosaur.. 46 Figure 40. Skeletons of model w/o & w/ preprocessing (10% noise, using NB)--spider. ........ 47 Figure 41. Skeletons of model w/o & w/ preprocessing (10% noise, using NB)--eagle. ......... 47 Figure 42. Skeletons of model w/o & w/ preprocessing (10% noise, using NB)--leopard. ..... 48 Figure 43. Skeletons of model w/o & w/ preprocessing (10% noise, using NB)--horse.......... 48 Figure 44. Skeletons of model w/o & w/ preprocessing (10% noise, using NB)--human. ...... 49 Figure 45. Skeletons of model w/o & w/ preprocessing (10% noise, using NB)--dinosaur. .... 49 Figure 46. Skeletons of model w/o & w/ preprocessing (10% noise, using CT)--spider. ........ 51 viii.

(11) Figure 47. Skeletons of model w/o & w/ preprocessing (10% noise, using CT)--eagle. ......... 51 Figure 48. Skeletons of model w/o & w/ preprocessing (10% noise, using CT)--leopard. ...... 52 Figure 49. Skeletons of model w/o & w/ preprocessing (10% noise, using CT)--horse. ......... 52 Figure 50. Skeletons of model w/o & w/ preprocessing (10% noise, using CT)--human. ....... 53 Figure 51. Skeletons of model w/o & w/ preprocessing (10% noise, using CT)--dinosaur. .... 53 Figure 52. Skeletons of model w/o & w/ preprocessing (20% noise, using SVM)--spider...... 55 Figure 53. Skeletons of model w/o & w/ preprocessing (20% noise, using SVM)--eagle. ...... 55. 政 治 大. Figure 54. Skeletons of model w/o & w/ preprocessing (20% noise, using SVM)--leopard. .. 56. 立. Figure 55. Skeletons of model w/o & w/ preprocessing (20% noise, using SVM)--horse. ..... 56. ‧ 國. 學. Figure 56. Skeletons of model w/o & w/ preprocessing (20% noise, using SVM)--human. ... 57 Figure 57. Skeletons of model w/o & w/ preprocessing (20% noise, using SVM)--dinosaur.. 57. ‧. Figure 58. Skeletons of model w/o & w/ preprocessing (20% noise, using NB)--spider. ........ 59. Nat. sit. y. Figure 59. Skeletons of model w/o & w/ preprocessing (20% noise, using NB)--eagle. ......... 59. n. al. er. io. Figure 60. Skeletons of model w/o & w/ preprocessing (20% noise, using NB)--leopard. ..... 60. i n U. v. Figure 61. Skeletons of model w/o & w/ preprocessing (20% noise, using NB)--horse.......... 60. Ch. engchi. Figure 62. Skeletons of model w/o & w/ preprocessing (20% noise, using NB)--human. ...... 61 Figure 63. Skeletons of model w/o & w/ preprocessing (20% noise, using NB)--dinosaur. .... 61 Figure 64. Skeletons of model w/o & w/ preprocessing (20% noise, using CT)--spider. ........ 63 Figure 65. Skeletons of model w/o & w/ preprocessing (20% noise, using CT)--eagle. ......... 63 Figure 66. Skeletons of model w/o & w/ preprocessing (20% noise, using CT)--leopard. ...... 64 Figure 67. Skeletons of model w/o & w/ preprocessing (20% noise, using CT)--horse. ......... 64 Figure 68. Skeletons of model w/o & w/ preprocessing (20% noise, using CT)--human. ....... 65 Figure 69. Skeletons of model w/o & w/ preprocessing (20% noise, using CT)--dinosaur. .... 65 Figure 70. The pair model we use in the experiments---spiders. ............................................. 71 ix.

(12) Figure 71. The pair model we use in the experiments---spiders. ............................................. 72. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. x. i n U. v.

(13) List of Tables Table 1. RMSE values between the original models and the model with noisy values. .......... 29 Table 2. The accuracy of three classifiers in noise identification. ............................................ 31 Table 3. The number of data points in each model. .................................................................. 40 Table 4. Experimental result with 10% noisy values and SVM. .............................................. 46 Table 5. Experimental result with 10% noisy values and Naïve Bayes. .................................. 50 Table 6. Experimental result with 10% noisy values and Classification Tree. ......................... 54. 治 政 Table 7. Experimental result with 20% noisy values and大 Support Vector Machine. ................ 58 立 Table 8. Experimental result with 20% noisy values and Naïve Bayes. .................................. 62 ‧ 國. 學. Table 9. Experimental result with 20% noisy values and Classification Tree. ......................... 66. ‧. Table 10. Experimental result with 2 stdev, 10% noisy values and SVM. ............................... 67 Table 11. Experimental result with 2 stdev, 10% noisy values and NB. .................................. 67. y. Nat. io. sit. Table 12. Experimental result with 2 stdev, 10% noisy values and CT. ................................... 68. n. al. er. Table 13. Experimental result with 2 stdev, 20% noisy values and SVM. ............................... 69. Ch. i n U. v. Table 14. Experimental result with 2 stdev, 20% noisy values and NB. .................................. 70. engchi. Table 15. Experimental result with 2 stdev, 20% noisy values and CT. ................................... 70 Table 16. The result of the experiments using pair models. ..................................................... 72 Table 17. The range of three coordinates of data points of the model in our database. ........... 73. xi.

(14) CHAPTER 1 INTRODUCTION The skeleton of a visual object is a representation of the topological structure of the object, and a point cloud is a set of points that display the outer surface of an object. In this thesis, we. 治 政 focus on lowering the impact of noise in a point cloud of大 a 3D model in order to facilitate the 立 skeleton extraction of the model. In this chapter, we are going to introduce our motivation ‧ 國. 學. with an example and two application scenarios, the main framework of the proposed approach,. sit. y. Nat. 1.1 Motivation. ‧. and our contributions.. n. al. er. io. The skeleton of a visual object represents a compact version of the shape of the object. It. i n U. v. contains the information that could be used to assist in shape reconstruction, and consequently. Ch. engchi. it has been applied to many fields. In this thesis, we consider the skeletons extracted from point clouds. A point cloud is simply a set of data points in 3D space, and therefore it is used as a simple representation of an object or a 3D model. Figure 1 shows an example of a point cloud.. 1.

(15) 政 治 大. Figure 1. An example of a point cloud (downloaded from the Internet).. 立. ‧ 國. 學. In this thesis, we focus on generating the skeleton of a 3D model that is stored in the form of a point cloud and contains noisy values. On the one hand, although there has been a rapid. ‧. development of the techniques for 3D scanning in recent years, the scanned data (which are. sit. y. Nat. usually point clouds) may be imperfect. On the other hand, although the quality of data. io. er. transmission is increasing with the continued development of information and communication. al. v i n For example, theCdata h etransmitted i Uan extreme weather condition, on a n g c hunder n. technologies, the data may be incomplete and there may be noise in the data points under some circumstances.. battlefield, or in the outer space may be incomplete, incorrect, and/or noisy. Here we show an example of the impact of noise on a model.. Figure 2a is the scatter. plot (for the point cloud) of a given model, and Figure 2b displays the skeleton extracted from the original model (by using the tool that will be described later).. Next, we introduce noise. to some of the data points in the original model and show the result in Figure 2c.. We. generate the skeleton corresponding to Figure 2c and show it in Figure 2d, from which we can see that the skeleton of the noisy model (that is, the point cloud containing noisy values) has already lost some part of the topological characteristics of the original model. 2. Then, we.

(16) preprocess the noisy model by first using supervised learning to identify the noisy data points and then using triangular surfaces and projection to lower the impact of the noisy values.. In. this example, we use Support Vector Machine (SVM) to identify the noisy data points according to density and distance between the data points in the noisy model.. As shown in. Figure 2e, by processing the noisy model before using a tool to extract the skeleton from it, we lower the degree of the impact of the noisy values.. Although Figure 2e (the processed. noisy model) is not exactly the same as Figure 2a (the original model), Figure 2e is closer to. 政 治 大. (or looks more like) Figure 2a when it is compared to Figure 2c.. 立. After obtaining Figure 2e,. we generate the skeleton for the processed noisy model and show it in Figure 2f.. ‧ 國. 學. example, we can clearly see that noise in a model could have a great impact on the presentation of the model and the generated skeleton could be deformed.. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. 3. i n U. v. From this.

(17) (a). 立. 政 治 大. (b). ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. (c). Ch. v ni. (d). engchi U. (e). (f). Figure 2. An example of the impact of noise and the effect of the preprocessing.. 4.

(18) There are many cases where we need to deal with noise in real life, and the approach we proposed in this thesis can be used in some application scenarios.. Below are two application. scenarios. The first application scenario is as follows: A person wants to buy a 3D scanner, but there is a budget issue. High-end scanners can generate models (in point clouds) with little or no noise but are unacceptably expensive, while low-end ones are less costly but the generated models are rather noisy and thus not satisfactory in quality. The person decides to buy a. 政 治 大. low-end scanner that can generate models of better quality compared to models generated by. 立. other low-end scanners, and the person also decides to buy a software package that can help. ‧ 國. 學. handle noise in the models generated by a scanner. This combination still cannot compete with a high-end scanner in terms of quality of the generated models, but it can generate models. ‧. satisfactory to the person and is much cheaper than a high-end scanner. The approach. y. Nat. sit. proposed in this thesis can be a key module of such a software package.. n. al. er. io. The second application scenario is as follows: A company wants to design and sell a 3D. i n U. v. scanner. The market of the high-end scanners is more profitable but the capital and technical. Ch. engchi. investment required to enter the market is high, while the investment required to enter the market of the low-end scanners is lower but the market is more competitive and less profitable. What the company can do is design a better low-end scanner, use the approach proposed in this thesis to design a software solution (as an independent package or as part of the firmware), and sell them as a bundle. This bundle would be slightly more expensive than other low-end scanners but can give customers models of better quality.. 1.2 Main framework The main framework of the proposed approach is shown in Figure 3. 5. As mentioned.

(19) earlier, the main goal of this thesis is to generate the skeleton from a model in which some data points have noisy values, while our focus is on the preprocessing method (which is used before we use the skeleton extraction tool) applied to the point cloud representing the noisy model. Start. Preprocess point cloud. 學. ‧ 國. 立. 政 治 大. ‧. Extract skeleton from the processed point cloud. Nat. er. io. sit. y. End. Figure 3. The main framework of the proposed approach.. n. al. Ch. engchi. i n U. v. We utilize the Laplacian-based contraction algorithm, proposed by Cao et al. in 2010 [1], to do skeleton extraction. The algorithm can generate the skeleton on point cloud data without reconstructing the surface of the model.. However, although the algorithm can operate. normally when the model contains missing data, it may not be able to deal with noise nicely, as we can see in Figure 2.. Therefore, there is a need to be able to generate the skeleton from a. noisy point cloud model. We fulfill the need by using the preprocessing method that we propose in this thesis.. The technical details of the preprocessing method shown in Figure 3. will be described in Chapter 3.. To be short, there are two major steps in the preprocessing. 6.

(20) method: The first step is regarding noise identification, in which we use supervised learning on data whose features are density and distance; the second step is regarding noise reduction, in which we use triangular surfaces and projection. The 3D models used in our experiments are downloaded from the Princeton Shape Benchmark (http://shape.cs.princeton.edu/benchmark/) created and maintained by the Princeton Shape Retrieval and Analysis Group. In order to demonstrate the proposed approach, we have chosen ten different models as our input models, as shown in Figure 4:. 政 治 大. Spider, eagle, leopard, horse, human, dinosaur, owl, fish, rabbit, and turtle.. 立. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 7. i n U. v.

(21) 政 治 大. 立. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. Figure 4. The models in our database used in experiments.. 1.3 Contributions We present in this thesis the work that we have done on preprocessing noisy point clouds for skeleton extraction, and we have made a number of contributions.. The contributions of. this thesis are described as follows: (a) In image processing, noise is generally handled by digital signal processing techniques, but these techniques may not be suitable for noise handling in skeleton extraction for 8.

(22) 3D models.. Moreover, some techniques come with assumptions about the data. (signal) generation process. deal with noise.. In this thesis, we propose to use machine learning to. Machine learning is a collection of data-driven techniques with no. or few assumptions.. As a result, we contribute to a study of how machine learning. can assist in computer graphics. (b) We propose to use distance and density as features in the feature creation step, as part of the step for identifying noisy data points.. We show through experimental results that by. 政 治 大. using these two simple features we can achieve reasonable performance.. 立. (c) We propose to construct triangular surfaces and then projection to lower the impact of. ‧ 國. 學. noisy values.. Compared to constructing meshes, constructing triangular surfaces can. reduce the execution time.. As a result, one of our contributions is to show the. ‧. superiority of triangular surfaces over meshes in the application domain studied in this. sit. y. Nat. thesis.. er. io. (d) We contribute to an approach that can be used as a software solution to improve the. n. a lThis is especially useful for low-quality v 3D scanners. In i n Ch U have the potential for a positive e nin g h i could other words, the approach proposed thiscthesis quality of 3D scanning.. impact on the 3D scanning industry. Last but not least, the core of the proposed approach is a preprocessing method, and it can be used with any tool that is designed to extract skeletons from point clouds, so it is a flexible approach.. 1.4 Organization The remainder of this thesis is organized as follows: In Chapter 2, we give background information as well as discuss the studies related to our work. Afterward, in Chapter 3, we 9.

(23) describe the details of the proposed approach and additionally the procedure that we use to conduct extensive experiments. Then, in Chapter 4, we present as well as discuss the results of experiments. Finally, we conclude this thesis and discuss possible directions for future work in Chapter 5.. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 10. i n U. v.

(24) CHAPTER 2 BACKGROUND Nowadays, the applications of skeleton extraction are wide-ranging, as we can see such applications in medical treatment [2], animation [3], shape recognition and analysis, etc.. 治 政 Some studies focused on the detection of (visual) objects大 in certain environments [4] [5] [6], 立 and some others focused on the reconstruction of (visual) objects [7] [8] [9]. These studies ‧ 國. 學. are based on the fact that the full shape of an object is known.. lost during the process of data transmission.. For example, the information may be. ‧. may be noise in data or the data may not be complete.. However, sometimes there. Even though some studies considered noisy. y. Nat. rather than extracting the skeleton of an object.. As an example, Jankowski and Stanberry. n. al. er. io. sit. data, many of them put emphasis on reconstructing the surface of an object [10] [11] [12]. Ch. i n U. v. proposed a method to identify the skeleton in noisy data [13], but the purpose of their method. engchi. is to try to find the centerline curve in noisy data.. In this thesis, we focus on generating the. skeleton of an object represented by a set of data points some of which contain noisy values, and the generated skeleton can be further used to reconstruct the surface of an object. In this chapter, we are going to give background information and discuss related studies. We will start from a discussion about skeleton and skeleton extraction, then a discussion about point cloud, and finally a discussion about noise and noise handling.. 2.1 Skeleton extraction The study of the extraction of skeleton can be dated back to 1960s. 11. The definition of.

(25) skeleton can be found in a number of papers.. Below are some examples: According to. Bucksch and Lindenbergh [14], “A skeleton is defined as a graph containing geometric information with its vertices and edges.” For a (solid) shape, a skeleton is a “compact and effective representation” that contains information about the geometry and topology of the shape [15].. Described in the paper written by Barnachon et al. [16], skeleton can be used to. “make an efficient and compact representation of a shape.” The types of skeleton can be roughly divided into two categories, and Rossi and Torsello. 政 治 大. described these two types as follows [17]: “The curve skeleton provides a minimal yet efficient. 立. representation for shape analysis and recognition. The medial surfaces, on the other hand,. ‧ 國. 學. carry enough information to accurately reconstruct the original shape from the skeleton.” Skeleton in this thesis refers to the curve skeleton.. Au et al. defined curve skeletons as. ‧. follows [18]: “Curve-skeletons are 1D structures that represent a simplified version of the. y. Nat. sit. geometry and topology of a 3D object.” Moreover, according to Cornea, Silver, and Min. n. al. er. io. [19], “The curve-skeleton captures the essential topology of the underlying object in an easy to understand and very compact form.” applications.. Ch. i n U. v. Curve skeletons have been used in various. engchi. For instance, according to Cornea, Silver, and Min [19], “Curve-skeletons are. thinned 1D representations of 3D objects useful for many visualization tasks including virtual navigation, reduced-model formulation, visualization improvement, animation, etc.” Additionally, Au et al. stated that “the extraction of curve-skeletons from 3D models is a fundamental problem in computer graphics and visualization” [18].. Moreover, Sobiecki et. al. described that [20], “Curve skeletons are among the most well-known, and widest used, descriptors for 3D shapes.” The applications of skeleton are very broad. used skeleton in body pose recovery [21].. As an example, Menier, Boyer, and Raffin. Lee et al. used the extracted skeleton in 3D 12.

(26) pipeline reconstruction [22].. Skeleton extraction has also been used in many important. applications in various fields of science and engineering.. For example, as described by. Wang et al. [23], “Extracting curve skeletons for vascular structures is vital for many medical applications.” Skeleton is a widely-used to represent or describe shapes for 2D or 3D shape recognition [17].. It can be used in human action recognition [24] or motion analysis [25].. Furthermore, according to Tagliasacchi, Zhang, and Cohen-Or [26], “The skeleton of a shape, especially an articulated shape such as a human or animal, provides an intuitive and effective. 政 治 大. abstraction which facilitates shape understanding and manipulation.”. 立. In this thesis, we mainly deal with the skeleton of an object or a 3D model in the form of. ‧ 國. 學. a point cloud.. The skeleton extraction for objects or 3D models represented as point clouds. has attracted much research attention for decades, and each of the approaches proposed by. ‧. researchers has its own characteristics (strengths and weaknesses), such as the robustness to. sit. y. Nat. noise [22].. al. n. geometric methods.. er. io. There are two methods to generate the skeleton of a model: Volumetric methods and. i n U. v. Volumetric methods require a voxelization of the model while. Ch. engchi. geometric methods work on meshes or point clouds [1].. The algorithm that we use in this. thesis to generate the skeleton of a model is the Laplacian-based Contraction [1], which is an algorithm working on point cloud data without the reconstruction of the surface. The contraction method was first proposed by Au et al. [27]. It was used on triangle meshes then, and it was later extended to be used on point cloud data in the paper [1]. In the algorithm, the input model, or the input point cloud, is contracted and topologically thinned to reduce the skeleton to a line. Because the contraction process depends on a local analysis, a topology-preserving procedure is used in order to avoid the incorrect topology structure [28]. The procedure of the algorithm is as follows: Given a point cloud P = {𝑝𝑝𝑖𝑖 }, it first 13.

(27) contracts P to a zero-volume point set C; next, it builds a skeleton graph G using sub-samples of C; it then contracts edges of G iteratively in order to build a skeleton T, which is a curve skeleton with cycles; finally, in order to restrict T to the interior of P as much as possible, it moves every vertex of T to the center of its local neighborhood in P [1]. An example demonstrating the process of the algorithm is shown in Figure 5.. 政 治 大. 立. ‧ 國. 學. Figure 5. An example illustrating how the algorithm works [1].. ‧ y. Nat. n. al. er. io. thinning.. sit. The algorithm can be further divided into two parts: geometric contraction and topological. i n U. v. The geometric contraction was first proposed in [27], it uses an implicit Laplacian. Ch. engchi. smoothing process to choose anchor points for maintaining the global shape of the input model [29][30], so that the contracted point set C captures the topological characteristics of the original model with minimal value. As stated in [27], the contraction is computed by solving Eq. (1) iteratively for the vertex positions:. �. 𝑊𝑊𝐿𝐿 𝐿𝐿 0 � 𝑃𝑃′ = � � 𝑊𝑊𝐻𝐻 𝑊𝑊𝐻𝐻 𝑃𝑃. (1). In Eq. (1), L is a n*n Laplacian matrix with cotangent weights; 𝑃𝑃′ is a contracted point cloud; 14.

(28) W𝐿𝐿 and W𝐻𝐻 are the diagonal weighting matrices that balance the contraction and attraction constraints, and the i-th diagonal element of W𝐿𝐿 (W𝐻𝐻 ) is denoted by W𝐿𝐿,𝑖𝑖 (W𝐻𝐻,𝑖𝑖 ) [1]. The solution to Eq. (1) is equivalent to minimizing the quadratic energy:. 2 ‖𝑊𝑊𝐿𝐿 𝐿𝐿𝑃𝑃′ ‖ + ∑𝑖𝑖 𝑊𝑊𝐻𝐻,𝑖𝑖 ‖𝑝𝑝𝑖𝑖′ − 𝑝𝑝𝑖𝑖 ‖2. (2). In Eq. (2), the first term removes geometry details using implicit Laplacian smoothing and the. 政 治 大. second term preserves shape geometry during contractions [1]. Because solving the above. 立. equation will not collapse the model into a 1-dimentional shape, it requires a number of. ‧ 國. 學. iterations for the process to converge into a thin shape. The iterative contraction process is as follow, where the superscript t denotes the iteration number:. ‧. 𝑊𝑊𝐿𝐿𝑡𝑡 𝐿𝐿𝑡𝑡 𝑡𝑡+1 0 = � 𝑡𝑡 𝑡𝑡 � for 𝑃𝑃𝑡𝑡+1, 𝑡𝑡 � 𝑃𝑃 𝑊𝑊 𝑊𝑊𝐻𝐻 𝐻𝐻 𝑃𝑃. io. 𝑆𝑆 0. sit. y. Nat. 1. Solve �. n. al. er. 𝑡𝑡+1 0 𝑖𝑖 2. Update 𝑊𝑊𝐿𝐿𝑡𝑡+1 = 𝑆𝑆𝐿𝐿 𝑊𝑊𝐿𝐿𝑡𝑡 and 𝑊𝑊𝐻𝐻,𝑖𝑖 = 𝑊𝑊𝐻𝐻,𝑖𝑖 where 𝑆𝑆𝑖𝑖𝑡𝑡 and 𝑆𝑆𝑖𝑖0 are the current and 𝑆𝑆 𝑡𝑡. i n C original neighborhood extent of h point e ni, respectively, gchi U 𝑖𝑖. v. 3. Compute the new Laplacian operator 𝐿𝐿𝑡𝑡+1 with the current point cloud 𝑃𝑃𝑡𝑡+1 [1]. The first two images in Figure 5 show an example of the contraction process. As shown in the second image in Figure 5, after several iterations, we can obtain a set of point clouds that keep the original geometric structure but contain fewer points. The result of the above contraction process is a point cloud set C, and there are some methods to convert a point cloud to a curve skeleton, such as [31] and [32]. In the algorithm, the conversion process is similar to the one discussed in the paper [33]: First, it imposes an 15.

(29) initial connectivity to build a skeletal structure from C, and then it applies an edge-contraction operation, collapses unnecessary edges until no triangles exist when it builds a curve skeleton [1]. The corresponding example is shown in the last two images in Figure 5. In this thesis, we use the same method to generate the skeleton of the 3D models (with or without being processed by our preprocessing method) in our database.. 2.2 Point cloud. 政 治 大 [23]: Volumetric representations, surface mesh, and point cloud. 立. Wang et al. categorized main forms used to represent 3D models into three categories In this thesis, we use point. ‧. ‧ 國. Internet).. 學. cloud to represent the 3D models in our database (which stores models downloaded from the. A point cloud is a set of data points in 3D space, these points are defined by X, Y, and Z It can show the external surface of an object or a 3D model, and a point cloud. io. al. A scanned point cloud is a widely-used form to represent an. er. can be created by 3D scanners.. sit. y. Nat. coordinates.. v ni. n. object or a 3D model. It is popular in the applications of modeling and rendering [34].. Ch. engchi U. For. instance, according to Kalogerakis et al. [35], “The raw output of most shape acquisition methods is a point cloud sampling of the scanned surface.” Moreover, as described by Mahmoudi and Sapiro [36], “point clouds are one of the most primitive and fundamental representations of 3D objects” and as described by Tang et al. [37], “point clouds are the direct output of laser scanners”.. Additionally, as stated by Liu, Zhang, and Yuen [38], “With. the aid of laser scanners, nowadays, it is easy to obtain the 3D information of individual body in the format of point clouds.”. 16.

(30) 2.3 Noise handling In communication, noise can be viewed as a random variation when the signal carrying the data is interfered by external energy during the transmission process. problems.. Noise will cause. It usually causes distortion of the signal, resulting in incorrect or incomplete. transmitted/received information. As stated by Carr et al. [8], “smoothing and remeshing existing noisy surfaces are important problems in both CAD (Computer Aided Design) and computer graphics.” It is. 治 政 important to deal with noise before we perform more complex 大 operations on a point cloud of a 立 3D model. According to Woo et al. [39], “The initial point data acquired by a measuring ‧ 國. 學. device generally require pre-processing operations such as noise filtering, smoothing, merging. ‧. and data ordering in order to be useable in subsequent operations.” Although technological development of scanning devices is advanced nowadays, noise may still exist in a scanning. y. Nat. io. sit. For example, as stated by Carr et al. [8], “LIDAR (laser rangefinder) data is. er. process [40].. often noisy and irregular due to limited range resolution and misregistration between scans. n. al. Ch. i n U. v. taken at different scanner positions.” Furthermore, according to Mémoli and Sapiro [41],. engchi. “The acquisition process or the sensors themselves might be subject to some perturbations (miscalibrations of mechanical parts of a 3D-scanner, electric noise in electrodes, etc).” Kalogerakis et al. also stated that “different shape acquisition processes produce a wide range of characteristic point clouds that commonly exhibit artifacts of irregular sampling, noise and outliers” [35].. In addition, Jiang et al.had the following description [42]: “In particular, the. input point cloud is assumed to be imperfect with noise and missing data, which are typical results of acquisition via 3D capture/scanning devices.” There are various types of noise. One type of noise is called “digitization noise”, which. 17.

(31) is “caused by spatial and temporal quantization of the input by the mechanical hardware” [43].. Moreover, noise could be from “the propagation of numerical errors” [17].. Additionally, other type of noise could be related to measurement.. As stated by Axelsson. [44], “The unwanted measurements can, depending on application, be characterised as noise, outliers or gross errors.” Noise can be caused by many ways.. When the surface of the. scanned object has low reflectance, there could be missing or noisy data in the generated model of the object [37]. Furthermore, the reflective surface of an object under scanning. 政 治 大. could cause noise (and this could be related to the capability of the sensor in the scanner) [22].. 立. Noise could also be from “surface perturbations” [45].. For instance, as stated by Tam et al.. ‧ 國. 學. [46], “Noise may take the form of perturbations of points, or unwanted points close to a 3D surface.” The algorithm used to perform skeleton extraction could cause noise, too.. For. ‧. example, Menier, Boyer, and Raffin stated that “skeletonization methods lead to higher noise. y. Nat. sit. on the torso than on the arms or the legs” [21].. al. n. system.. er. io. The capability of handling noise could be a key to the success of an object recognition. i n U. v. As an example,Fadaifard, Wolberg, and Haralick mentioned that one of the reasons. Ch. engchi. why their 3D face recognition system can outperform state-of-the-art systems is its “resilience to noise” [45]. In this thesis, our interest is in measurement noise.. Pauly, Mitra, and Guibas considered. measurement noise as a source of uncertainty, and they assumed that each point sampled by a scanner is “corrupted by zero-mean, additive noise” and also that “the noise is small, i.e., in the range of the local sample spacing” [47].. The noise model used in this thesis is similar to. those used by some other researchers, and some examples are as follows: Yoon et al. used the following way to model noise [48]: “For each of the data sets we created, the length of the displacement we added to a noisy point is a random number in the range between zero and 18.

(32) the average distance from a point to its nearest neighbor times a constant.” Mehra et al. considered the case in which noise is from “large structural perturbations”, and they assumed that “in the noisy point cloud every point is perturbed to a point chosen uniformly at random from a ball of radius a centered at it” [49]. Jiang et al. discussed the robustness against noise by using the following setting [42]: “The noise level is the ratio of the average vertex displacement over the average edge length in the original meshed model.”. Rossi and. Torsello showed the effect of noise by using “random vertex displacement of respectively 10%. 政 治 大. and 20% of the average edge applied to the shape” [17].. 立. There are some methods to identify and eliminate noise.. For instance, Deschaud and. ‧ 國. 學. Goulette calculated the distance from a point to a plane and used a threshold to determine if it is noise [50]: “With noise, a point belongs to a plane if the distance from the point to the plane. ‧. is less than a parameter gamma” and “Gamma is the maximum distance between the point of. y. Nat. sit. a plane and the plane model, represents the plane thickness and is linked to the point cloud. n. al. er. io. noise.” Furthermore, Leong, Fang, and Tsai discussed using image processing techniques to. i n U. v. eliminate noise existing in a point cloud generated from a full body scanned [51].. Ch. engchi. In this. thesis, we do not deal with noise on the surface of a 3D object reconstructed from a point cloud, but rather we directly process noisy points in a point cloud. We believe that directly working on noisy point clouds is preferable to most applications. other researchers.. This is also supported by. For example, according to Mémoli and Sapiro [41], “With the increasing. popularity and very broad applications of this source of data, it is natural and important to work directly with this representation, without having to go through the intermediate and sometimes impossible and distorting steps of surface reconstruction.”. 19.

(33) CHAPTER 3 THE PROPOSED APPROACH We introduced our main framework in the first chapter.. In this chapter, we are going to. describe the details of the approach proposed by us in this thesis.. The core of the approach 治 政 is the preprocessing method (Sec. 3.1). Before talking大 more about the details of the 立 preprocessing method, we would like to describe the noise model that we consider in this. ‧ 國. 學. thesis (Sec. 3.2).. There are two steps involved in the preprocessing method: The first step is. ‧. noise identification (Sec. 3.3) and the second step is noise reduction (Sec. 3.4).. In this. chapter, we will also show some experimental results as the support to the approach that we. er. io. sit. y. Nat. propose.. 3.1 The preprocessing amethod. n. iv l C n U and we have to handle noise h e ncause h i problems As we mentioned before, noise may g csome. properly.. If there is some noise in the information we received, then these noisy values may. have some different characteristics in some aspects compared with the normal data points. For instance, they may have distinct data values or topological structure, like shape, density, connectivity, continuity, direction, or convergence.. In this thesis, we preprocess the point. cloud model before we generate the skeleton of the model, and therefore the preprocessing method plays the center role in the approach that we propose.. We try to lower the impact of. noise in the model so that we can obtain a skeleton which can be used for further purpose. Figure 6 shows the flow chart of the preprocessing method. 20. Initially, we attempt to identify.

(34) all noisy data points. Afterward, we check the identified noisy data point one by one, and we attempt to adjust its value in order to lower the impact of noisy values.. We will describe in. detail how to identify noisy data points and how to lower the impact of noisy values in Sec. 3.3 and Sec. 3.4, respectively. Start. Identify all noisy data points. 學. ‧ 國. 立. 政 治 大. Have a list of all noisy data points. ‧ Yes. End. n. er. io. Ch. sit. y. Nat. al. Is the list empty?. eNon g c h i. i n U. v. Retrieve and remove a noisy point from the list. Reduce impact of noisy value of an identified point. Figure 6. The flow chart of the preprocessing method.. 21.

(35) We use supervised learning in noise identification.. In order to do so, we need to. perform training on data whose features are properly defined and created. features: One is based on density and the other is based on distance.. We create two. We use these two. features to identify noisy data points, because a noisy data point may have relatively small density in the neighborhood and its distance between other points may be large compared with the distance among non-noisy data points.. 3.2 The additive noise model. 政 治 大 We noise model considered in this thesis is an additive model. 立. We randomly select. ‧ 國. 學. some data points as noisy ones for every model in our database, and for every selected point we add a noisy value to its original value (and the added value could be positive or negative).. ‧. We assume that the range of a noisy value would be less than one standard deviation away. y. sit. For example, Figure 7 shows the means and standard deviations of the. io. er. values) in a model.. Nat. from the mean of the values of the original data points (i.e. all data points before we add noisy. al. v i n Because the means and standard C deviations different in x, y, and z coordinates, the range h e n are gchi U n. values of x, y, and z coordinates of the data points in the model that we use in Figure 2.. of noisy values that we add will be different in three axes.. 22.

(36) (a) x’s mean= -0.1248, s.d.= 6.3902. 立. (b) y’s mean= 0.2746, s.d.= 15.3939. 政 治 大. sit. y. ‧. ‧ 國. 學. Nat. (c) z’s mean= 0.0862, s.d.= 2.6767. io. er. Figure 7. Means and standard deviations of x, y, and z coordinates of an example.. al. n. v i n C h cloud is denotedUby p, and a data point randomly A data point of the original point engchi. selected from the original point cloud is denoted by 𝑝𝑝′ .. its original value in x, y, and z coordinates independently.. For every selected point, we change The following arithmetic. equations explain the way we create the noisy data points.. where. 𝑝𝑝′ = 𝑝𝑝′ + 𝑛𝑛. (3). 𝑝𝑝𝑥𝑥′ = 𝑝𝑝𝑥𝑥′ + 𝑛𝑛𝑥𝑥. 𝑛𝑛𝑥𝑥 ~ 𝑁𝑁(0, 𝑋𝑋𝑠𝑠𝑠𝑠 ). (4). 𝑝𝑝𝑧𝑧′ = 𝑝𝑝𝑧𝑧′ + 𝑛𝑛𝑧𝑧. 𝑛𝑛𝑧𝑧 ~ 𝑁𝑁(0, 𝑍𝑍𝑠𝑠𝑠𝑠 ). (6). 𝑝𝑝𝑦𝑦′ = 𝑝𝑝𝑦𝑦′ + 𝑛𝑛𝑦𝑦. 𝑛𝑛𝑦𝑦 ~ 𝑁𝑁(0, 𝑌𝑌𝑠𝑠𝑠𝑠 ). In these equations, 𝑝𝑝′ is sampled from the original data points in the model. 23. (5). Then, we.

(37) add some noisy values to x, y, and z of 𝑝𝑝′ .. We can see from the above equations that the. range of the noisy values are different in three coordinates because the values of 𝑋𝑋𝑠𝑠𝑠𝑠 , 𝑌𝑌𝑠𝑠𝑠𝑠 ,. and 𝑍𝑍𝑠𝑠𝑠𝑠 (standard deviations in x, y, and z) are different in the model.. For each model, we produce two sets of data points that contain different proportions of. noisy values.. One set contains 10% noisy data points, and the other contains 20%.. display six models in our database in the figures from Figure 8 to Figure 13.. We. In every such. figure, the images on the left are the original noise-free images, while the images in the. 政 治 大. second column and the third column contain 10% and 20% noisy values, respectively.. 立. ‧. ‧ 國. 學 er. io. sit. y. Nat. Figure 8. The scatter plots of each model without and with noise---spider.. n. al. Ch. engchi. i n U. v. Figure 9. The scatter plots of each model without and with noise---eagle.. 24.

(38) 政 治 大. Figure 10. The scatter plots of each model without and with noise---leopard.. 立. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. Figure 11. The scatter plots of each model without and with noise---horse.. Figure 12. The scatter plots of each model without and with noise---human.. 25.

(39) Figure 13. The scatter plots of each model without and with noise---dinosaur.. 3.3 Noise identification. 立. 政 治 大. ‧ 國. supervised learning. We show the flow chart in Figure 14.. 學. Noise identification is the first step in the preprocessing method.. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. 26. i n U. v. Here, we use.

(40) Start. Have a list of all data points. Is the list empty?. Yes. End. No. 學. ‧ 國. 立. 治 政 大 Retrieve and remove a point from the list. n. Ch. y. sit. io. Generate distance feature Ny taking average of k1 shortest distances. er. Nat. al. ‧. Calculate its distance to each of all other points. engchi. Generate density feature Ny counting numNer of points in its neighNoring space. i n U. v. Figure 14. The flow chart of feature creation. In this thesis, the value of k1 is equal to 10.. To apply a supervised learning technique. to the data in the form of a point cloud, we need to properly define and create features for the data used to train a classifier.. We propose two features: One is based on density, and the. other is based on distance. We calculate the density and distance values for all points.. 27. For each point, we record.

(41) the number of points within 1/4 or 1/2 of one standard deviation from that point, and we use it as the density value of the point.. We use Euclidean distance in Cartesian coordinates, Eq.. (7), to calculate the distance between one point and all other points in the model.. D(x, y) = �(𝑥𝑥1 − 𝑦𝑦1 )2 + (𝑥𝑥2 − 𝑦𝑦2 )2 + (𝑥𝑥3 − 𝑦𝑦3 )2. (7). Because we want to construct the surface near the noisy data point and we need at least three points to construct a surface.. 立. But we will suffer from the high cost of the overall execution time if we take too. many data points.. 學. ‧ 國. will be.. 治 政 The more points we take, the more accurate the surface 大. Therefore, we take the average of the first ten shortest distances as the. distance to that point.. In addition, we also record the distance between data points in the. ‧. original noise-free models and the models that contain noisy values.. Nat. y. We use RMSE (Root. sit. Mean Square of Errors), as shown in Eq. (8), to indicate the average distance between the data. al. n. noisy values.. er. io. points in the original model and the corresponding data points in the model that contains. i n U. v. So, the higher the RMSE value, the higher the average distance, the higher the. impact of noise.. Ch. engchi. Table 1 shows RMSE values of all the models in our database.. 𝑋𝑋𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 = �. (𝑥𝑥𝑖𝑖 −𝑥𝑥1 )2 + (𝑥𝑥𝑖𝑖 − 𝑥𝑥2 )2 + ⋯+ (𝑥𝑥𝑖𝑖 − 𝑥𝑥𝑛𝑛 )2 𝑛𝑛. 28. (8).

(42) Table 1. RMSE values between the original models and the model with noisy values.. 10% Noisy values 20% Noisy values Spider 0.3597 0.4909 Eagle 0.2616 0.2943 Leopard 0.3886 0.4791 Horse 0.4508 0.5614 Human 0.2875 0.3799 Dinosaur 0.2238 0.2909 Owl 0.4139 0.5425 Fish 0.2617 0.397 Rabbit 0.383 0.5224 Turtle 0.4102 0.5345. 立. 政 治 大. ‧ 國. 學. Afterward, we use three supervised learning algorithms to train classifiers that are used. ‧. to identify noisy data points: Support Vector Machine, Naïve Bayes, and Classification Tree.. y. Nat. n. al. As Dinerstein, Egbert, and Cline stated,. er. io. apply what is learned to a large set of data.. sit. It is not uncommon to use a learning algorithm to learn from a small set of data and then. i n U. v. “techniques have been developed for generating meshes of novel human bodies given a small set of example meshes” [52].. Ch. engchi. Machine learning has found its use in computer graphics.. For. example, the same group if authors mentioned above proposed to use machine learning to fulfill the need for “for data transformation and modeling techniques that can synthesize and/or generalize data” [52]. Figure 15 is the flow chart of noisy point identification. For each algorithm, we randomly choose 10% of the data points in the model as input data, and we use distance and density as features to train each classifier.. Our experiments are run on MATLAB R2013a. which provides a toolbox of machine learning algorithms.. For Support Vector Machine [53]. [54], we use RBF (which stands for Gaussian Radial Basis Function) as the kernel function 29.

(43) [55] [56] and SMO (Sequential Minimal Optimization) as the method to find the separating hyperplane.. For Naïve Bayes algorithm [57], we use Gaussian distribution to model the data. and use the empirical probability as the prior probability for the classes in training [58] [59]. For Classification Tree algorithm [60], we use the default settings.. Inside the program Start. 政 治 大. 學. Identify and label noisy points from a random portion p of all points. ‧ 國. 立. Outside the progeam. Create features for all data points. ‧. sit. n. er. io. al. y. Nat. Train a classifier using a pre-specified learning algorithm. Ch. engchi. Use the trained classifier to classify the remaining portion of all points. i n U. v. Generate a list of noisy points. End. Figure 15. The flow chart of noisy point identification. 30.

(44) After we have trained the model, we take the remaining 90% of the data and use the model to identify noisy values. We record the accuracy of three algorithms in ten different models, as shown in Table 2. We can see that if there are 10% of noisy values in the model, the accuracy of all three methods can be up to about 90%, but when the proportion of noisy values are increased to 20%, the accuracy can be maintained at about 70%.. Table 2. The accuracy of three classifiers in noise identification.. 政 治 大 20% Noisy values SVM NB CT. n. 0.7984 0.8022 0.7897 0.8008 0.7831 0.7998 0.8409 0.8125 0.9229 0.8527. y. sit. io. er. Nat. Ch. 0.7456 0.6416 0.7454 0.7309 0.7854 0.692 0.7965 0.8291 0.9263 0.834 iv. ‧. ‧ 國. 立. 學. 10% Noisy values SVM NB CT Spider 0.9477 0.9378 0.9542 Eagle 0.9451 0.9553 0.9483 Leopard 0.9411 0.9426 0.942 Horse 0.9345 0.933 0.9308 Human 0.9346 0.9327 0.9234 Dinosaur 0.8647 0.8951 0.897 Owl 0.9038 0.9155 0.9063 Fish 0.8678 0.8948 0.8941 Rabbit 0.9659 0.9633 0.9461 Turtle 0.9074a l 0.9116 0.9086. n U engchi. 0.6708 0.6945 0.7237 0.7127 0.6964 0.6832 0.8052 0.818 0.8928 0.798. 3.4 Noise reduction Noise reduction is the second step in the preprocessing method, and its goal is to lower the impact of noisy values.. For each of the identified noisy data point, we do the following:. 1) we find the nearest k2, (set to ten in our experiments) non-noisy data points, i.e. those identified as not noise; 2) we construct the surface that passes through these points; 3) we find the center points of these points; 4) we calculate the equation of the line passes through the noisy data point and the center point; 5) we find the intersection point of the line and the 31.

(45) surface; 6) finally, we replace the noisy data point with the intersection point.. We show the. flow chart of the above six steps in Figure 16.. Start. Find nearest k2 nonnoisy data points of the noisy point. Is there any intersection point?. Construct a surface that passes through these k2 points. No. Replace the noisy point with the center point. Replace the noisy point with the intersection point. ‧ 國. Yes. Replace the noisy data point with the average of intersection points. ‧ y. sit. n. al. er. io. Find the intersection points of the line and the surface. No. 立. Nat. Calculate the equation of the line connecting the noisy and center points. 政 治 大. 學. Find the center point of these k2 points. Yes. Is there more than one intersection point?. Ch. engchi. i n U. v. End. Figure 16. The flow chart of noisy value reduction.. When we construct the surface near the noisy data point, we use the concept that is similar to k-nearest neighbors.. According to Lee et al. [22], one can consider the k-nearest. neighbors of a point when performing arithmetic operations on a point cloud, and by doing this he or she can “compensate for the negative effect of noise” on the calculation. in the paper written by Lee et al. k was set to ten based on an empirical study [22]. 32. Moreover,.

(46) Now we demonstrate an example of constructing the surface that passes through ten points.. Figure 17 shows an example of a surface.. demonstration.. We use ten points in Figure 17 for. We use meshes to create the surface.. However, as we can see in the figure,. if we use meshes, there will be plenty of points on the surface since every intersection of two lines can be considered as a point. That will cause a lot of computations when we try to find the intersection point of the line and the surface, because in Matlab a function of surface is recorded by the coordinates of points and the faces on the surface, and a face is represented by. 政 治 In大order to solve this problem, we try. the index number of the point which forms that face.. 立. the surface, as shown in Figure 18.. 學. ‧ 國. to reduce the number of faces on the surface, we use triangle faces instead of meshes to create Because if we use triangle faces, there will be only one. face among the vertices that forms the face.. Therefore, we can save a considerable amount. ‧. of execution time if we use triangle faces as the surface of our model.. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. Figure 17. A surface passes through 10 points.. 33.

(47) Figure 18. A surface created by triangle faces.. 學. ‧. ‧ 國. 立. 政 治 大. After we construct the surface from the nearest ten points around a noisy data point (the. sit. y. Nat. one that is identified as noise), we calculate the center point of these ten points as well as the. io. al. Then, we. er. equation of the line that passes through the center point and the noisy data point.. v i n C hand the yellow pointUis the intersection point of the line the red point is the noisy data point engchi n. find the intersection point of the surface and the line.. and the surface.. Figure 19 shows an illustration, where. In our experiments, we substitute all the intersection points for the noisy. data points, lowering the influence of noisy values in the model.. The figures from Figure 20. to Figure 25 show the results of our experiments, and the models in the figures contain 10% noisy data points.. The first column in the figures is the unadjusted model (without noise. reduction), the second column to the fourth column are the adjusted model (with noise reduction) using Support Vector Machine, Naïve Bayes, and Classification Tree as the classifier, respectively.. As we can see in the figures, no matter which method we use, the. range of the noise can be significantly reduced. 34. This results in a model that has the similar.

(48) topological structure with the original one, and therefore we can generate a skeleton that keeps more original characteristics of the original model.. Noisy data point. 立. 政 治 大. Intersection point. ‧. ‧ 國. 學. n. al. er. io. sit. y. Nat. Figure 19. An illustration of the intersection point of the line and the surface.. Ch. engchi. i n U. v. Figure 20. The unadjusted model vs. the adjusted models (10% noise)--spider.. Figure 21. The unadjusted model vs. the adjusted models (10% noise)--eagle.. 35.

(49) Figure 22. The unadjusted model vs. the adjusted models (10% noise)--leopard.. 立. 政 治 大. ‧. ‧ 國. 學 er. io. sit. y. Nat. Figure 23. The unadjusted model vs. the adjusted models (10% noise)--horse.. n. al. Ch. engchi. i n U. v. Figure 24. The unadjusted model vs. the adjusted models (10% noise)--human.. 36.

(50) Figure 25. The unadjusted model vs. the adjusted models (10% noise)--dinosaur.. points in a model are noisy data points.. 學. ‧ 國. 治 政 In the following figures, we increase the proportion大 of noisy data points to 20%. As we 立 notice in Table 2, the accuracy of three types of classifiers will be lower when 20% of data Because the amount of noise is increased, the We can observe from Figure. ‧. characteristics of noisy values become relatively less obvious.. 26 to Figure 31 that there are still some noisy data points in the adjusted model. This is. y. Nat. when 10% of data points in a model are noisy data points.. n. al. Ch. engchi. er. io. sit. because all the three classification algorithms perform poorly compared to how they perform. i n U. v. Figure 26. The unadjusted model vs. the adjusted models (20% noise)--spider.. 37.

(51) Figure 27. The unadjusted model vs. the adjusted models (20% noise)--eagle.. 立. 政 治 大. ‧. ‧ 國. 學. Figure 28. The unadjusted model vs. the adjusted models (20% noise)--leopard.. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. Figure 29. The unadjusted model vs. the adjusted models (20% noise)--horse.. 38.

(52) Figure 30. The unadjusted model vs. the adjusted models (20% noise)--human.. 立. 政 治 大. ‧. ‧ 國. 學 y. Nat. n. al. er. io. sit. Figure 31. The unadjusted model vs. the adjusted models (20% noise)--dinosaur.. i n U. v. In next chapter, we will show results obtained from using different settings on mode models.. Ch. engchi. 39.

(53) CHAPTER 4 THE EXPERIMENTS. 政 治 大. 立. 4.1 Overview. ‧ 國. 學. In our experiments, we use a general personal computer equipped with an Intel Core i7-2600 (running at 3.4 GHz) and 8GB memory. Our code runs on Matlab R2013a and our. ‧. data source is downloaded from the Internet, as described earlier. Because our algorithm. y. Nat. sit. works directly on point cloud data, the quantity of points will affect the execution time as well. n. al. er. io. as the performance of our algorithm.. i n U. v. Table 3 lists the number of data points in the models we use in the experiment. We also. Ch. engchi. show some of the original skeletons of the models in our database (the models without noise), so we can compare these skeletons with the skeletons we generate with the approach that we describe in detail in Chapter 3. Also, in the following images of the skeletons, because both the model and the skeleton are 3D, we adjust the viewpoint of the images so that the skeleton can be more obvious.. Table 3. The number of data points in each model. Spider 4250. Eagle Leopard Horse 2684 12515 3051. Human Dinosaur Owl 2873 4640 1082. 40. Fish 1606. Rabbit 7691. Turtle 1848.

(54) Figure32 shows the skeletons of six models in our database. models.. These are noisy-free. Although we use more models in experiments, we only display results. corresponding to some of them.. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. Figure 32. The skeletons of some models without noisy data.. Our experiment can be divided into two parts: In the first half of the experiment we assume that the range of noisy values to be less than one standard deviation away from the mean of the original data points in the model, and we record the number of points within 1/4 of one standard deviation from that point as the density value of the point.. In the second part. of the experiment, we expand the range of noise to two times the standard deviation away from the mean, and we record the number of points within 1/2 of one standard deviation from. 41.

(55) that point as the density value of the point. into two sub-parts.. We further divide each half of the experiment. In the first sub-part we use models which contain 10% noisy values, and. in the second sub-part we use models containing 20% noisy values.. In each sub-part, we use. three classifiers to identify noise. Therefore, there are 12 different combinations of parameters in our experiment, and we present the output of each combination of parameter in one subsection.. We preprocess the model by reducing the impact of noisy data with the. approach that we describe in detail in Chapter 3, and then we generate the skeleton of the. 政 治 大. model with Laplacian-Based Contraction [1]. We present the process of the experiment in. 立 Start. Start. Get a 3D model from database. Get a 3D model from database. ‧. Get a 3D model from database. 學. Start. ‧ 國. the following figure.. sit. y. Nat. n. al. Have a list of data points of a random portion q of the model. er. io. Have a list of data points of a random portion q of the model. Is the list empty?. Ch. Yes. bo. engchi Retrieve and remove a point from the list. Add +/-α*standard deviation for x, y, or z to each of its x, y, and z values. i n U. v. Is the list empty?. Yes. Preprocess the noised model. Apply skeleton extraction to the original model. Apply skeleton extraction to the noised model. Apply skeleton extraction to the noised but processed model. End. End. End. (a). bo. (b) (c) Figure 33. The comparison of the process of the experiment.. 42. Retrieve and remove a point from the list. Add +/-α*standard deviation for x, y, or z to each of its x, y, and z values.

(56) Figure 33a is the baseline case, in which we use the skeleton extraction tool on a noise-free model; Figure 33b is the case where we add noise to the original model and use the skeleton extraction tool on the noisy model; Figure 33c is the case where we add noise, process the noisy model with the proposed approach, and use the skeleton extraction tool on the processed model.. 4.2 1 Stdev, 10% noisy values, using Support Vector Machine The following images show six skeletons of the models in our database.. The left image. 政 治 大 skeleton of the same model using Support Vector Machine as the classifier to preprocess the 立 is the skeleton of the model without preprocessing the noise, and the right image is the. As we can see, if we use Support Vector Machine as the classifier to identify the. ‧ 國. 學. model.. noise, we can obtain a skeleton that looks more like the original one.. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. Figure 34. Skeletons of model w/o & w/ preprocessing (10% noise, using SVM)--spider.. 43.

(57) 政 治 大. Figure 35. Skeletons of model w/o & w/ preprocessing (10% noise, using SVM)--eagle.. 立. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. Figure 36. Skeletons of model w/o & w/ preprocessing (10% noise, using SVM)--leopard.. 44.

(58) 立. 政 治 大. Figure 37. Skeletons of model w/o & w/ preprocessing (10% noise, using SVM)--horse.. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. Figure 38. Skeletons of model w/o & w/ preprocessing (10% noise, using SVM)--human.. 45.

(59) Figure 39. Skeletons of model w/o & w/ preprocessing (10% noise, using SVM)--dinosaur.. In the following table, we record the values of accuracy, RMSE (before and after. 治 政 preprocessing), and F-measure in order to make the result 大of the experiment more precise. 立 We can see that if we preprocess the noisy model, the values of RMSE in all cases can be ‧. ‧ 國. 學. reduced.. Table 4. Experimental result with 10% noisy values and SVM.. n. RMSE(after) 0.2954 0.2262 0.3169 iv n U 0.3720 0.2492 0.2049 0.3757 0.2511 0.3316 0.3530. y. RMSE(before) 0.3597 0.2616 0.3886 C h 0.4508 e0.2875 ngchi 0.2238 0.4139 0.2617 0.3830 0.4102. sit. io. Accuracy 0.9477 0.9451 0.9411 a l 0.9345 0.9346 0.8647 0.9038 0.8678 0.9659 0.9074. er. Nat. Model Spider Eagle Leopard Horse Human Dinosaur Owl Fish Rabbit Turtle. F-measure 0.7494 0.7613 0.7136 0.6281 0.6412 0.4550 0.5357 0.2625 0.8030 0.5188. 4.3 1 Stdev, 10% noisy values, using Naïve Bayes In this subsection, we use the same range and proportion of noisy values, but we use Naïve Bayes as the classifier.. We also show six skeletons of the models. 46. In table 5, we.

(60) report the values of accuracy, RMSE (before and after preprocessing), and F-measure of all the cases for the ten models. The following six images show the result, the image on the left is the skeleton of the noisy model, the image on the right side is the preprocessed model using Naïve Bayes.. 立. 政 治 大. ‧. ‧ 國. 學 y. Nat. n. al. er. io. sit. Figure 40. Skeletons of model w/o & w/ preprocessing (10% noise, using NB)--spider.. Ch. engchi. i n U. v. Figure 41. Skeletons of model w/o & w/ preprocessing (10% noise, using NB)--eagle.. 47.

(61) 立. 政 治 大. Figure 42. Skeletons of model w/o & w/ preprocessing (10% noise, using NB)--leopard.. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. Figure 43. Skeletons of model w/o & w/ preprocessing (10% noise, using NB)--horse.. 48.

(62) 立. 政 治 大. ‧ 國. 學 ‧. Figure 44. Skeletons of model w/o & w/ preprocessing (10% noise, using NB)--human.. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. Figure 45. Skeletons of model w/o & w/ preprocessing (10% noise, using NB)--dinosaur.. 49.

數據

相關文件

In summary, the main contribution of this paper is to propose a new family of smoothing functions and correct a flaw in an algorithm studied in [13], which is used to guarantee

Courtesy: Ned Wright’s Cosmology Page Burles, Nolette & Turner, 1999?. Total Mass Density

The remaining positions contain //the rest of the original array elements //the rest of the original array elements.

A smaller aperture increases the range in which A smaller aperture increases the range in which the object is approximately in focus. Di

Our main goal is to give a much simpler and completely self-contained proof of the decidability of satisfiability of the two-variable logic over data words.. We do it for the case

• Given a finite sample of some texture, the goal is to synthesize other samples from that same is to synthesize other samples from that same texture...

To convert a string containing floating-point digits to its floating-point value, use the static parseDouble method of the Double class..

Since Dolby AC-3(abbreviated as AC-3) is the main technology of the surrounding sound format, in this thesis, we proposes a data model for mining the relationship between