├── main.py ├── 实验步骤.docx ├── dataset ├── 10.jpg ├── test.jpg ├── w1 │ ├── 1.jpg │ ├── 2.jpg │ ├── 3.jpg │ ├── 4.jpg │ ├── 5.jpg │ ├── 6.jpg │ ├── 7.jpg │ ├── 8.jpg │ ├── 9.jpg │ └── 10.jpg ├── w2 │ ├── 1.jpg │ ├── 2.jpg │ ├── 3.jpg │ ├── 4.jpg │ ├── 5.jpg │ ├── 6.jpg │ ├── 7.jpg │ ├── 8.jpg │ ├── 9.jpg │ └── 10.jpg ├── w3 │ ├── 1.jpg │ ├── 2.jpg │ ├── 3.jpg │ ├── 4.jpg │ ├── 5.jpg │ ├── 6.jpg │ ├── 7.jpg │ ├── 8.jpg │ ├── 9.jpg │ └── 10.jpg └── w4 │ ├── 1.jpg │ ├── 2.jpg │ ├── 3.jpg │ ├── 4.jpg │ ├── 5.jpg │ ├── 6.jpg │ ├── 7.jpg │ ├── 8.jpg │ ├── 9.jpg │ └── 10.jpg ├── .gitattributes ├── .idea ├── inspectionProfiles │ └── profiles_settings.xml ├── other.xml ├── modules.xml ├── misc.xml ├── WebSearchHW.iml └── workspace.xml ├── classModel ├── w1 │ ├── class_pi.csv │ ├── class_mu.csv │ └── class_sigma.csv ├── w2 │ ├── class_pi.csv │ ├── class_mu.csv │ └── class_sigma.csv ├── w3 │ ├── class_pi.csv │ ├── class_mu.csv │ └── class_sigma.csv └── w4 │ ├── class_pi.csv │ ├── class_mu.csv │ └── class_sigma.csv ├── .gitignore ├── README.md ├── test.py ├── LICENSE └── functions.py /main.py: -------------------------------------------------------------------------------- 1 | from functions import * 2 | 3 | sml() -------------------------------------------------------------------------------- /实验步骤.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/实验步骤.docx -------------------------------------------------------------------------------- /dataset/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/10.jpg -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /dataset/test.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/test.jpg -------------------------------------------------------------------------------- /dataset/w1/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w1/1.jpg -------------------------------------------------------------------------------- /dataset/w1/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w1/2.jpg -------------------------------------------------------------------------------- /dataset/w1/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w1/3.jpg -------------------------------------------------------------------------------- /dataset/w1/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w1/4.jpg -------------------------------------------------------------------------------- /dataset/w1/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w1/5.jpg -------------------------------------------------------------------------------- /dataset/w1/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w1/6.jpg -------------------------------------------------------------------------------- /dataset/w1/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w1/7.jpg -------------------------------------------------------------------------------- /dataset/w1/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w1/8.jpg -------------------------------------------------------------------------------- /dataset/w1/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w1/9.jpg -------------------------------------------------------------------------------- /dataset/w2/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w2/1.jpg -------------------------------------------------------------------------------- /dataset/w2/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w2/2.jpg -------------------------------------------------------------------------------- /dataset/w2/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w2/3.jpg -------------------------------------------------------------------------------- /dataset/w2/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w2/4.jpg -------------------------------------------------------------------------------- /dataset/w2/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w2/5.jpg -------------------------------------------------------------------------------- /dataset/w2/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w2/6.jpg -------------------------------------------------------------------------------- /dataset/w2/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w2/7.jpg -------------------------------------------------------------------------------- /dataset/w2/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w2/8.jpg -------------------------------------------------------------------------------- /dataset/w2/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w2/9.jpg -------------------------------------------------------------------------------- /dataset/w3/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w3/1.jpg -------------------------------------------------------------------------------- /dataset/w3/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w3/2.jpg -------------------------------------------------------------------------------- /dataset/w3/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w3/3.jpg -------------------------------------------------------------------------------- /dataset/w3/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w3/4.jpg -------------------------------------------------------------------------------- /dataset/w3/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w3/5.jpg -------------------------------------------------------------------------------- /dataset/w3/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w3/6.jpg -------------------------------------------------------------------------------- /dataset/w3/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w3/7.jpg -------------------------------------------------------------------------------- /dataset/w3/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w3/8.jpg -------------------------------------------------------------------------------- /dataset/w3/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w3/9.jpg -------------------------------------------------------------------------------- /dataset/w4/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w4/1.jpg -------------------------------------------------------------------------------- /dataset/w4/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w4/2.jpg -------------------------------------------------------------------------------- /dataset/w4/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w4/3.jpg -------------------------------------------------------------------------------- /dataset/w4/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w4/4.jpg -------------------------------------------------------------------------------- /dataset/w4/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w4/5.jpg -------------------------------------------------------------------------------- /dataset/w4/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w4/6.jpg -------------------------------------------------------------------------------- /dataset/w4/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w4/7.jpg -------------------------------------------------------------------------------- /dataset/w4/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w4/8.jpg -------------------------------------------------------------------------------- /dataset/w4/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w4/9.jpg -------------------------------------------------------------------------------- /dataset/w1/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w1/10.jpg -------------------------------------------------------------------------------- /dataset/w2/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w2/10.jpg -------------------------------------------------------------------------------- /dataset/w3/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w3/10.jpg -------------------------------------------------------------------------------- /dataset/w4/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xtymbbt/WebSearchHW/HEAD/dataset/w4/10.jpg -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/other.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /classModel/w1/class_pi.csv: -------------------------------------------------------------------------------- 1 | 0 2 | 0.07594111999666961 3 | 0.0 4 | 0.0 5 | 0.06820562158004322 6 | 0.07213529400485705 7 | 0.10087964460320871 8 | 0.0597405928226155 9 | 0.11349163651999446 10 | 0.06092814409289623 11 | 0.04668802093084195 12 | 0.0 13 | 0.10811956384415447 14 | 0.07562922424548289 15 | 0.0 16 | 0.05946883873561637 17 | 0.15877229862361952 18 | -------------------------------------------------------------------------------- /classModel/w2/class_pi.csv: -------------------------------------------------------------------------------- 1 | 0 2 | 0.030484014350648757 3 | 0.06475582856226375 4 | 0.09436148229432174 5 | 0.12791009601298414 6 | 0.05179890527550237 7 | 0.05463401539723937 8 | 0.14606844845376793 9 | 0.12050134826475475 10 | 0.05572834013211423 11 | 0.0 12 | 0.030365512958378173 13 | 0.10874118811884374 14 | 0.0 15 | 0.06397344488370688 16 | 0.0 17 | 0.05067737529547424 18 | -------------------------------------------------------------------------------- /classModel/w3/class_pi.csv: -------------------------------------------------------------------------------- 1 | 0 2 | 0.10650877864644086 3 | 0.07009356604676105 4 | 0.14230892219902722 5 | 0.05509949488390018 6 | 0.10664943869066276 7 | 0.08762166610600354 8 | 0.0 9 | 0.05160371490678506 10 | 0.04269489796877895 11 | 0.08976616141108235 12 | 0.07979339554556265 13 | 0.05783681779903117 14 | 0.0 15 | 0.025020561802610797 16 | 0.08500258399335345 17 | 0.0 18 | -------------------------------------------------------------------------------- /classModel/w4/class_pi.csv: -------------------------------------------------------------------------------- 1 | 0 2 | 0.07593863769483591 3 | 0.025259087201796225 4 | 0.030909804113240586 5 | 0.07019042962460018 6 | 0.07099122662636474 7 | 0.07566618348885205 8 | 0.0825142836334686 9 | 0.09630639295105606 10 | 0.0551125887859248 11 | 0.02972203745740471 12 | 0.1594939804111963 13 | 0.03278486828323948 14 | 0.08063066538668962 15 | 0.0 16 | 0.052524567254515674 17 | 0.061955247086815025 18 | -------------------------------------------------------------------------------- /.idea/WebSearchHW.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | 12 | 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # celery beat schedule file 95 | celerybeat-schedule 96 | 97 | # SageMath parsed files 98 | *.sage.py 99 | 100 | # Environments 101 | .env 102 | .venv 103 | env/ 104 | venv/ 105 | ENV/ 106 | env.bak/ 107 | venv.bak/ 108 | 109 | # Spyder project settings 110 | .spyderproject 111 | .spyproject 112 | 113 | # Rope project settings 114 | .ropeproject 115 | 116 | # mkdocs documentation 117 | /site 118 | 119 | # mypy 120 | .mypy_cache/ 121 | .dmypy.json 122 | dmypy.json 123 | 124 | # Pyre type checker 125 | .pyre/ 126 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 基于SML算法的GMM高斯混合模型 2 | ## 介绍 3 | 本程序训练了4个语义类,建筑、树木、天空、公路。 4 | 每个语义类中有10张训练图像。 5 | 图像的高斯混合模型为4个分量,类的高斯混合模型为16个分量。 6 | 由于计算过程非常耗时,因此K-means和高斯混合模型的EM算法没有迭代太多次。 7 | ## 主要文件介绍: 8 | ### test.py 9 | 该文件起初为测试function.py中各个函数所用,因此文件中会有许多注释掉的代码。 10 | 现在可作为对单个图片进行标注的文件。通过加载预训练好的模型参数,实现对单个图片 11 | 进行测试。 12 | ### main.py 13 | 程序主函数。运行该函数即可开始运行程序。 14 | ### functions.py 15 | 存放各种函数。 16 | * def sml(): 17 | >该函数为各个函数的综合,按照SML算法的顺序依次执行。 18 | * def load_picture(`path`): 19 | >该函数用于从指定路径`path`中加载dataset中的图片, 20 | 然后将同一个语义文件夹中的所有图片综合到一个矩阵img中,并返回。 21 | * def split_picture(`img`): 22 | >该函数用于执行Web搜索课本中SML算法的第②-a步,即,通过一个像素数为8×8, 23 | 每次滑动2个像素的窗口,将img矩阵中的每一张图片分解为相互重叠的N个区域。 24 | 一共(图像宽度-6)/2 × (图像高度)-6)/2 个区域,每个区域像素数为8×8。 25 | 最终返回一个大小为(图片数m,区域数n,8,8,通道数3)的矩阵。 26 | * def split_picture_single_image(`img`): 27 | >该函数作用与上一个函数作用相似,不同之处在于,此函数是用于给单张图片贴标签用的。 28 | >因此,该函数中只计算单张图片的切分。 29 | * def dct(`spl_img`): 30 | >该函数用于执行Web搜索课本中SML算法的第②-b步。即,分别计算n个区域的DCT变换, 31 | 然后将图片进行压缩。本程序中只取了每个区域DCT变换后所得到的图像的左上角的区域, 32 | 该区域是DCT变换之后大部分能量集中的区域。 33 | 最后,将三个通道进行交错排列。 34 | >_**注**_:本函数对原书中的顺序稍微做了一点小改动。 35 | 原书中是先进行交错排列,后进行数据压缩。 36 | 而本函数适应了numpy方便的矩阵运算,因此,先进行了数据压缩,后进行了交错排列。 37 | * def k_means(`shuffle_fl`): 38 | >该函数为单张图片的K-means算法。 39 | >该函数对每一张图片中的N个区域进行K-means聚类,得到GMM模型的初始化均值。 40 | * def gaussian(`x, mu, sigma`): 41 | >高斯函数的计算方程式。 42 | >输入为x,x的均值mu,x的协方差矩阵sigma。 43 | >输出为高斯分布的概率值。 44 | * def single_em(`img, mu_all`): 45 | >通过EM算法进行高斯混合分布的估计。 46 | >需要注意的是,需要在其中预先计算出N个区域的均值向量以及协方差矩阵, 47 | >对于协方差矩阵,不能随机初始化协方差矩阵,根据均值和N个区域的值, 48 | >很容易可以计算出协方差矩阵。如果随机初始化的话, 49 | >那么将会造成高斯分布计算出错的问题,从而影响后续进程。 50 | >输入: 51 | >img:语义w中的每一张图片,图片已经过DCT变换,已经过数据压缩,已经过交错排列。 52 | >mu_all:语义w中的每一张图片被切分成的N个区域,经过扁平化之后的向量,经过K-means算法之后初始化得到的均值。 53 | * def k_means_ex_em(`img_mu`): 54 | >用于扩展EM算法的K-means算法。即用于类模型的的K-means算法。 55 | >对通过EM算法之后得到的高斯混合分布模型的均值进行K-means聚类, 56 | >从而得到扩展EM算法的初始化均值。 57 | * def ex_em(`img_mu, img_sigma, img_pi, class_mu`): 58 | >扩展EM算法。即用于类模型的EM算法。 59 | >均值向量及协方差矩阵同single_em。需要预先计算出协方差矩阵的值。 60 | >输入: 61 | >img_mu:每张图片的混合高斯分布的均值。 62 | >img_sigma:每张图片的混合高斯分布的协方差矩阵。 63 | >img_pi:每张图片中4个混合高斯分布所占的权重。 64 | >class_mu:通过扩展EM算法得到的混合高斯分布的均值。 65 | * label(`path, w1, w2, w3, w4`): 66 | >对要进行标注的图片(在path路径下)进行标注。 67 | >w1,w2,w3,w4为四个语义类的模型信息,为Python的dictionary类型, 68 | >其中包含有每个类模型的均值、协方差矩阵、权重。 69 | >通过利用贝叶斯后验概率准则对该图片所属的语义类进行估计。 70 | >最后的返回值是该图片的所属的语义类。 71 | ## 收敛后的模型: 72 | * 收敛后的模型存放位置在classModel文件夹中,文件格式为.csv 73 | 值得注意的是,对于class_sigma而言,由于是16个协方差矩阵,其维度是三维的, 74 | 但是pandas中的data frame只能存储二维数据,因此,需要将其由三维转为二维, 75 | 通过numpy中自带的reshape来将后两维重新排列成一维。 76 | 因此,在读取该文件时,对于class_sigma,需要将.csv文件中所存储的第二维重新 77 | 变为两个维度,即,总共变为三个维度,后两个维度的具体大小为第二个维度的大小开方。 78 | >w1:用于存放语义为w1的模型数据,其中包括均值、协方差、权重 79 | >w2:用于存放语义为w2的模型数据,其中包括均值、协方差、权重 80 | >w3:用于存放语义为w3的模型数据,其中包括均值、协方差、权重 81 | >w4:用于存放语义为w4的模型数据,其中包括均值、协方差、权重 -------------------------------------------------------------------------------- /classModel/w1/class_mu.csv: -------------------------------------------------------------------------------- 1 | 0,1,2,3,4,5,6,7,8,9,10,11 2 | 767.2917067942103,-0.47314298987907066,-12.29588682731202,-0.15989918275943915,1280.8314762217622,0.04562909315290507,-5.713825892971074,0.5929642358499575,1694.453847368744,0.6416378229058981,-0.8233132437302259,1.0348563253008407 3 | 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 4 | 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 5 | 532.800809355509,6.718231511879784,-8.624040915734266,1.0712078102431088,869.6504785941479,7.15768590031576,0.7382016571496296,0.3017536989763792,1205.40216034552,1.3226709186964565,-4.768376203845757,0.2094275494771873 6 | 1459.3757779819412,-0.2061832546831693,-4.571212346772534,-0.018321392478812648,1637.6791669080917,-0.16491782150808024,-2.5405053255562495,-0.02324291547725875,1816.842370620065,-0.19649837168880802,0.08618715774666372,-0.07211552150198078 7 | 866.8942755504972,21.891714231296458,20.187573890739632,2.5715388724921726,885.8019489978731,54.126275059016805,53.33090081053202,1.3594482126722245,1014.3117264995363,78.44759819393656,79.5055395488284,-0.1065283247900306 8 | 795.6220511011064,1.4999526745031178,-12.119681947422928,0.6401748901095811,1347.7130440215024,1.1509255816063972,-7.756828208801066,0.47610668085350144,1741.2392483088825,-0.4681771957228506,-2.1430513085678546,0.02810452734133712 9 | 736.0112859450963,-1.255757289350303,-21.39322295541602,-2.7581088890514844,634.9883934130305,-0.26155325837436993,-15.689947154192113,-2.1903005443822186,632.2612058683924,0.8886628027693972,-9.785563274095283,-1.9667047060415117 10 | 474.8231205201014,2.7956228181873617,-8.809623049415404,-0.9715188343882857,1028.8234466737147,2.1403002026953897,-11.908997128941962,-0.9549671783022998,1661.277961070282,0.18759992781846635,-7.6443141112550705,-0.568498066640926 11 | 771.6288263208966,-17.061126394063074,39.223025138018656,0.8184902245895501,1102.6319148867187,-26.578062729497656,51.541267185929705,0.4785465918010368,1342.447036444223,-19.53859474330892,57.50271369403945,0.6111133628843705 12 | 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 13 | 989.8990117650025,-3.2613307283771493,-6.533338108526461,-0.06097468955945623,1191.4573641003933,-2.344547176640356,-4.906616098521261,0.06035460777686621,1656.0621603106033,-1.4387542990100861,-2.0016778187297564,0.3166904035253368 14 | 1356.882196663147,42.37215720739581,82.56001271468155,-0.8266365383345815,1413.5039441264967,57.246167980604575,101.91808131968313,-1.689284066421964,1474.217055924486,65.66336275876071,126.48920376608137,-1.6501928953510785 15 | 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 16 | 1249.2047545385751,12.469263426858065,-75.56060226487372,1.1217068213076193,1603.6334686524572,12.9706934777293,-43.8644460487609,0.3954939995823422,1869.8774674297529,14.890242216623351,-9.810316622117448,0.3752247577062787 17 | 1363.13919085685,-1.5134308668016994,-0.029214677453498414,0.08431704659334972,1602.5988011303727,-0.7815018016432833,-0.7973757163107402,0.015190377216131493,1815.5221609880336,-0.1986924493704752,0.49923574759131956,-0.08086386588034511 18 | -------------------------------------------------------------------------------- /classModel/w2/class_mu.csv: -------------------------------------------------------------------------------- 1 | 0,1,2,3,4,5,6,7,8,9,10,11 2 | 569.9229144795432,11.48644290865505,-13.695771072866595,-1.48850582272513,860.6717419651419,0.9260391828748354,-3.9381141319367785,-2.012797200114214,927.1817162133029,-35.41469563207127,34.596444204598065,-2.4297155750524295 3 | 606.4062119357039,-0.06224695336128494,-4.981435797209316,-0.3830378831813781,945.0527866393721,1.5393658520305553,-4.736128744013993,-0.03399955582816776,1188.855268411792,3.185633625858347,3.0803061105486855,0.8618756374339744 4 | 1493.804852141684,3.245740614569179,-2.555734146089403,-0.04885785291547306,1560.9278599333986,1.2663228681890388,-2.185895364152205,0.3983615374157541,928.2615355273028,3.648713258906292,0.9315226586507134,-0.7259813804128713 5 | 810.2940462985429,1.4690538413451797,6.398529423165302,-0.18694051810912854,928.5309201197714,1.627951592319725,7.758925828953946,0.03693172299265567,428.79697526558675,-0.5358000585348079,7.388135178979535,-0.49171780159061407 6 | 1534.954684202418,-3.5495737269057197,2.7346521953927234,0.8462228594266858,1246.3198372306779,-7.381238617481145,7.555800714359946,1.8320080579000373,793.7835331108851,-11.272820761749582,15.193491649595307,3.1441490160966947 7 | 1039.9926132243388,-0.7791433271616778,16.880348131600453,-4.496619169810884,935.7877599529942,2.9694572094150664,13.718889383410387,-6.666900878933509,325.9967693679089,-3.5018466381105986,21.087452057817096,-3.4179928947690836 8 | 1424.3335215281024,-9.200726861495191,6.529157376339419,4.612233761586065,1543.079212843424,-7.364128668831402,14.3989455720775,2.7376931862934133,1522.9544014811595,-6.284566395763461,33.247790836959325,1.1699516414003486 9 | 612.8614165753548,-0.2309229951690375,11.892159927378406,0.18645492166630961,704.9477842046746,0.5291388795237524,14.537926197712343,0.12867798725345575,458.1898104665483,0.5792537027959781,14.742021849536178,0.1770693817177791 10 | 982.9029358811592,7.036926570204399,1.8735885571656796,4.265846067925111,1114.5133352581652,5.144861082622341,3.535041726500573,5.292664362814685,645.0435691873774,10.742880129255623,10.372252228648234,5.3986432136479765 11 | 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 12 | 712.7497287429397,-2.5672404626929146,-28.549568681635417,-4.158639043955586,1330.6574814745222,-0.7783678787710945,-7.396619873035279,-1.6476846074787357,1629.0967567919977,0.45210015988617064,-0.12151247858825427,-0.5248683600558397 13 | 1246.6282471982418,-3.3214427265527133,25.034111416659798,0.3423937881518576,1329.5748112738193,-3.9032630025646307,24.09901470885996,0.18101341589038722,1191.8340856069897,-7.775289085818902,31.07566122357933,0.8980263795751475 14 | 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 15 | 430.1522444109971,-5.3513154612328835,10.617136960879224,-0.2409498706343129,648.2177273263288,-5.443650362365465,12.834155050575816,-0.7753934342770086,539.2783173117225,0.32685570650760865,6.244076220225554,-0.9520766536748185 16 | 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 17 | 862.7206710916316,-24.049675772357325,17.824374873817394,-1.3433270707265197,1111.9980183534433,-21.762422622741482,11.950621317454255,-0.20749148455835395,919.0587632159888,-31.508323971427263,13.428399397119259,-1.4853527724894184 18 | -------------------------------------------------------------------------------- /classModel/w3/class_mu.csv: -------------------------------------------------------------------------------- 1 | 0,1,2,3,4,5,6,7,8,9,10,11 2 | 268.12152924832594,-0.7320522800249071,-2.4717709595316837,-0.14231132373496247,665.701257923742,0.6956670119152965,-4.389053996208296,-0.15988270624113105,1391.8603377740694,1.1547142881321122,-3.895559104693937,-0.14964320890014313 3 | 792.2648391436156,16.150957393989714,-65.57250815844374,6.838497238729072,1162.1838869113953,12.560926141480229,-35.41460385930428,5.7871698526146345,1595.7437092087905,2.917425061728503,-7.761435310823564,4.016940692519884 4 | 603.9032401270181,-4.56258679475216,-9.348844901926208,-0.06035215373903716,804.123779594287,-4.213600311963414,-5.604200955506718,-0.06468210565345864,1132.836404066403,-3.986162001006472,-3.1941248414789087,-0.04390641642067155 5 | 915.1600400673649,2.570003262774289,-16.17849481338502,-2.6443452754174426,1176.3187135518494,1.5251609886835173,-11.739891298040083,-2.152310834629143,1530.2977365190875,1.0836924715705507,-4.253855439161555,-1.2641445567585574 6 | 240.7390835435696,1.236902646829926,-9.40561166355744,-1.8940134328555969,902.4018979916968,-0.16432530596236555,-10.441657341880623,-1.804687807210974,1575.764976436403,-0.520211756280594,-3.553721753444819,-0.7259388747352129 7 | 1469.663304019355,-3.071246271462782,-4.3562831685069705,-4.045365732574413,1621.2832985784394,-2.4179505693271377,-3.0890167038430705,-3.3789498753725584,1828.5836931447268,-1.3134311502910778,0.08333078782930493,-1.8620984139420225 8 | 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 9 | 1272.1322792580754,-8.09737897107503,-7.864106195348291,-0.37368295929891954,1107.1011549319908,-4.746778177698563,-1.7084600592795098,-0.32215277782328855,1309.3769313882274,-2.1861043635612147,3.963682138518047,-0.19694697593565208 10 | 847.061803119012,2.4441362257170387,-44.941321152469925,1.5954410762974396,859.2993547095639,1.6874117974128409,-34.66272769453041,1.4126589858923482,1254.1489847840026,-1.6906217466173385,-11.372053834840615,0.6616381417747518 11 | 1115.241850339031,-3.833384439900369,-9.335898892913178,-0.1926164815696854,1126.2173932795529,-2.5033855766512993,-3.692662329252069,-0.18401260332738525,1294.5693474071331,-1.7590856508731665,2.7050038698610392,-0.06257311078294138 12 | 645.6626400452993,-4.481934549209113,-7.268377521217281,0.021351824800088116,954.4023767603088,-6.670482220566668,-0.24547603301942086,0.0037602223750731224,1279.851040983017,-8.241375167712171,4.763339645704794,-0.005342045123768168 13 | 1224.9161033572861,-6.657353337475665,-5.570980110583195,8.78397562001733,1339.0407731958617,-6.650218324973573,-8.528282147573206,4.7626909336732615,1590.9894996886267,-4.3066312736023,-6.861276572859804,1.1412932871036512 14 | 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 15 | 1110.1401909076703,0.006039472173836058,158.42054801761108,3.729140493808618,1166.9950940441693,-0.20739319832413508,153.66950787660355,1.9710473028505844,1378.3142369018747,0.1309362956323843,124.22859887286734,-0.09333440084465337 16 | 594.560587270371,-31.187731451280477,-48.692429875632975,0.8090866595818669,1096.5548327305428,-15.103914016624648,-32.9161868046651,2.0579104323203268,1664.5159618294697,-4.294100468745895,-12.883219501956237,1.1523943266747994 17 | 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 18 | -------------------------------------------------------------------------------- /classModel/w4/class_mu.csv: -------------------------------------------------------------------------------- 1 | 0,1,2,3,4,5,6,7,8,9,10,11 2 | 1258.0135059348133,-4.844392267013904,49.74195109685646,1.6479747261149504,1085.2874839753697,-6.236589224698058,68.5950107736349,1.317150157230057,833.7690326816895,-6.331107497792159,93.79235978566952,0.9280641211141712 3 | 1194.9234870522273,4.923472609037385,-85.12375146042992,-6.418987519594584,1181.4318205674338,-4.189446512832456,-78.75828611105818,-6.343055443548177,1096.6149554784656,-24.259156039525987,-74.31585111558583,-5.766143482298628 4 | 1413.9652610980772,-3.768182990013539,-11.645664814890564,-0.06576099808615422,1450.376145673196,-2.957366377127064,-7.365619949745634,0.0858844358306698,1483.5505782477114,-2.1420993645318447,-1.7510956356301652,0.15751064083557748 5 | 1514.7150741801074,-3.2510727828119603,-6.5310131741208135,0.27805904503430495,1543.5016077243984,-2.5472553193607257,-4.6343713624713025,0.3041064351046511,1582.9238394934341,-1.8782029932549618,-1.8880748449364269,0.35157445400280124 6 | 698.0485408831686,-4.431202018367616,-19.808233222431525,0.05364206040336872,776.8973898160453,-3.2883011769219124,-12.355426858232322,0.0013633079028942988,878.9863171386378,-1.7884136275916975,-3.5376942254934307,0.010598095581437372 7 | 1271.7860803801684,-4.895485201180607,180.5817170543233,10.297739779933973,1287.833169366451,-4.179454827600215,183.93199895772096,9.724121544837978,1334.5449128765715,-8.312261065702657,190.68275704974153,11.00406017887353 8 | 615.7012557397934,28.17413061835092,3.5853087762332376,-0.8719859370110041,565.6984408810562,28.190262341778933,2.3977638603850076,-0.7504336985892365,396.80933040692827,18.346032790827618,-3.418351874412978,-1.6033293742053658 9 | 782.511760603206,1.3971682883897827,6.307447332179333,-2.3037012062011732,806.9066331860456,1.8195144029203878,1.0695730704579707,-2.117562847988992,510.21106166775934,5.027619971461776,0.5462214639430404,0.48101349197903925 10 | 596.1697644265445,-2.799758728791729,-3.3922337247201146,-0.6455433624825152,659.3949769945331,-5.211735498357136,-0.011216100425831977,-0.569267148502865,526.1379752847552,-1.3992126911479896,-5.727520551169713,-0.6776517660705498 11 | 637.2793268976974,-117.04432994099844,-7.895349508391484,2.023659509180227,667.827148884906,-121.65882473603152,-7.976246639252546,2.396824188922823,489.72401523126797,-97.88763127046053,-5.52666532417019,1.4847070384657766 12 | 1553.9277023567333,-2.5672187926038093,-3.1558795709047813,0.08104041341801191,1581.9880120735093,-2.2537195867933835,-1.7154381999512904,0.09911226496448518,1671.31635296021,-1.73521622545217,0.4055995160234549,0.19120504017029236 13 | 989.1307334279583,-8.833419063665751,-46.92470056267087,-1.6707103210835306,1310.2104046396591,-6.586478714964391,-38.60913783412057,0.3594360782252665,1516.771282619913,-2.0710853380173364,-27.315221461440775,1.2560149398291012 14 | 1454.5815867969088,-1.4608700218368025,-15.288291634173852,2.4472890106070495,1535.325910723316,-0.7940167818447935,-12.835580413531453,2.0551116177145574,1546.2177778757332,-0.2399850357608634,-10.148173380297964,1.841423045290739 15 | 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 16 | 1464.8641509145475,-4.270445513994975,-24.022680313110442,-0.18312462458848175,1871.145335522166,-1.7754032207113093,-5.8644314009379634,-0.08706970253212994,1984.69216318633,-1.1901897545257552,-0.7166214114545768,-0.07701970458535992 17 | 717.0051380971789,-3.9541171154659787,-15.267545300124127,-6.871437349010754,856.3247463557716,-3.4092144651541934,-14.506151656587935,-6.799759066186533,960.8992355638258,-2.036899371206739,-13.045651173644814,-7.443952642342528 18 | -------------------------------------------------------------------------------- /test.py: -------------------------------------------------------------------------------- 1 | from functions import * 2 | 3 | # shuffle_fl = np.random.randn(10, 32634, 48)*255 4 | # # mu = k_means(shuffle_fl) 5 | # # print(mu.shape) # (10, 4, 48) 6 | # mu_all = np.random.randn(10, 4, 48)*255 7 | # # 8 | # mu_all, sigma_all, pi_all = single_em(shuffle_fl, mu_all) 9 | # print(mu_all.shape, sigma_all.shape, pi_all.shape) 10 | # print(mu_all) 11 | # print(sigma_all) 12 | # print(pi_all) 13 | # (10, 4, 48) (10, 4, 48, 48) (10, 4) 14 | 15 | # mu_class_d1 = k_means_ex_em(mu_all) 16 | # print(mu_class_d1.shape) 17 | # (16, 48) 18 | 19 | # sigma_all = np.random.randn(10, 4, 48, 48) 20 | # pi_all = np.ones((10, 4))/4 21 | 22 | # all_mu_all = mu_all.reshape((mu_all.shape[0]*mu_all.shape[1], mu_all.shape[2])) 23 | # mu_class_d1 = np.random.randn(16, 48)*600 24 | # kn = int(all_mu_all.shape[0]/16) 25 | # for k in range(16): 26 | # mu_class_d1[k, :] = np.mean(all_mu_all, axis=0) 27 | # 28 | # pi_class_d1 = np.ones(16)/16 29 | # # # 30 | # class_mu_d1, class_sigma_d1, class_pi_d1 = ex_em(mu_all, mu_class_d1, pi_class_d1) 31 | # print(class_mu_d1.shape, class_sigma_d1.shape, class_pi_d1.shape) 32 | # # (16, 48) (16, 48, 48) (16,) 33 | # print(class_mu_d1) 34 | # print(class_sigma_d1) 35 | # print(class_pi_d1) 36 | 37 | 38 | class_mu_w1 = np.array(pd.read_csv('classModel/w1/class_mu.csv')) 39 | class_sigma_w1 = np.array(pd.read_csv('classModel/w1/class_sigma.csv')) 40 | a = int(np.power(class_sigma_w1.shape[1], 0.5)) 41 | class_sigma_w1 = class_sigma_w1.reshape((class_sigma_w1.shape[0], a, a)) 42 | class_pi_w1 = np.array(pd.read_csv('classModel/w1/class_pi.csv')) 43 | w1 = { 44 | 'class_mu': class_mu_w1, 45 | 'class_sigma': class_sigma_w1, 46 | 'class_pi': class_pi_w1 47 | } 48 | 49 | class_mu_w2 = np.array(pd.read_csv('classModel/w2/class_mu.csv')) 50 | class_sigma_w2 = np.array(pd.read_csv('classModel/w2/class_sigma.csv')) 51 | a = int(np.power(class_sigma_w2.shape[1], 0.5)) 52 | class_sigma_w2 = class_sigma_w2.reshape((class_sigma_w2.shape[0], a, a)) 53 | class_pi_w2 = np.array(pd.read_csv('classModel/w2/class_pi.csv')) 54 | w2 = { 55 | 'class_mu': class_mu_w2, 56 | 'class_sigma': class_sigma_w2, 57 | 'class_pi': class_pi_w2 58 | } 59 | 60 | class_mu_w3 = np.array(pd.read_csv('classModel/w3/class_mu.csv')) 61 | class_sigma_w3 = np.array(pd.read_csv('classModel/w3/class_sigma.csv')) 62 | a = int(np.power(class_sigma_w3.shape[1], 0.5)) 63 | class_sigma_w3 = class_sigma_w3.reshape((class_sigma_w3.shape[0], a, a)) 64 | class_pi_w3 = np.array(pd.read_csv('classModel/w3/class_pi.csv')) 65 | w3 = { 66 | 'class_mu': class_mu_w3, 67 | 'class_sigma': class_sigma_w3, 68 | 'class_pi': class_pi_w3 69 | } 70 | 71 | class_mu_w4 = np.array(pd.read_csv('classModel/w4/class_mu.csv')) 72 | class_sigma_w4 = np.array(pd.read_csv('classModel/w4/class_sigma.csv')) 73 | a = int(np.power(class_sigma_w4.shape[1], 0.5)) 74 | class_sigma_w4 = class_sigma_w4.reshape((class_sigma_w4.shape[0], a, a)) 75 | class_pi_w4 = np.array(pd.read_csv('classModel/w4/class_pi.csv')) 76 | w4 = { 77 | 'class_mu': class_mu_w4, 78 | 'class_sigma': class_sigma_w4, 79 | 'class_pi': class_pi_w4 80 | } 81 | 82 | print("testing...") 83 | # test test pictures. 84 | idx = label("D:/ML_project/WebSearchHW/dataset/test.jpg", w1, w2, w3, w4) 85 | print("the thing in the test picture is: w"+str(idx)) 86 | 87 | # t_d1 = load_picture("D:/ML_project/WebSearchHW/dataset/w1/") 88 | # print("t_d1:") 89 | # print(t_d1) 90 | # spl_t_d1 = split_picture(t_d1) 91 | # print("spl_t_d1") 92 | # print(spl_t_d1) 93 | # dct_spl_t_d1 = dct(spl_t_d1) 94 | # print("dct_spl_t_d1") 95 | # print(dct_spl_t_d1) 96 | # mu_d1, pi_d1 = k_means(dct_spl_t_d1) 97 | # print("mu_d1") 98 | # print(mu_d1) 99 | # print("pi_d1") 100 | # print(pi_d1) 101 | # mu_d1, sigma_d1, pi_d1 = single_em(dct_spl_t_d1, mu_d1, pi_d1) 102 | # print("mu_d1") 103 | # print(mu_d1) 104 | # print("sigma_d1") 105 | # print(sigma_d1) 106 | # print("pi_d1") 107 | # print(pi_d1) 108 | # mu_class_d1, pi_class_d1 = k_means_ex_em(mu_d1) 109 | # print("mu_class_d1") 110 | # print(mu_class_d1) 111 | # print("pi_class_d1") 112 | # print(pi_class_d1) 113 | # class_mu_d1, class_sigma_d1, class_pi_d1 = ex_em(mu_d1, mu_class_d1, pi_class_d1) 114 | # print("class_mu_d1") 115 | # print(class_mu_d1) 116 | # print("class_sigma_d1") 117 | # print(class_sigma_d1) 118 | # print("class_pi_d1") 119 | # print(class_pi_d1) 120 | -------------------------------------------------------------------------------- /.idea/workspace.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 11 | 12 | 22 | 23 |