├── realcrowd ├── 000000.jpg ├── 000001.jpg ├── 000002.jpg ├── 000003.jpg ├── 000004.jpg ├── 000005.jpg ├── 000006.jpg ├── 000007.jpg ├── 000008.jpg ├── 000009.jpg ├── 000010.jpg ├── 000011.jpg ├── 000012.jpg ├── 000013.jpg ├── 000014.jpg ├── 000015.jpg ├── 000016.jpg ├── 000017.jpg ├── 000018.jpg ├── 000019.jpg ├── 000020.jpg ├── 000021.jpg ├── 000022.jpg ├── 000023.jpg ├── 000024.jpg ├── 000025.jpg ├── 000026.jpg ├── 000027.jpg ├── 000028.jpg ├── 000029.jpg ├── 000030.jpg ├── 000031.jpg ├── 000032.jpg ├── 000033.jpg ├── 000034.jpg ├── 000035.jpg ├── 000036.jpg ├── 000037.jpg ├── 000038.jpg ├── 000039.jpg ├── 000040.jpg ├── 000041.jpg ├── 000042.jpg ├── 000043.jpg ├── 000044.jpg ├── 000045.jpg ├── 000046.jpg ├── 000047.jpg ├── 000048.jpg ├── 000049.jpg ├── 000050.jpg ├── 000051.jpg ├── 000052.jpg ├── 000053.jpg ├── 000054.jpg ├── 000055.jpg ├── 000056.jpg ├── 000057.jpg ├── 000058.jpg ├── 000059.jpg ├── 000060.jpg ├── 000061.jpg ├── 000062.jpg ├── 000063.jpg ├── 000064.jpg ├── 000065.jpg ├── 000066.jpg ├── 000067.jpg ├── 000068.jpg ├── 000069.jpg ├── 000070.jpg ├── 000071.jpg ├── 000072.jpg ├── 000073.jpg ├── 000074.jpg ├── 000075.jpg ├── 000076.jpg ├── 000077.jpg ├── 000078.jpg ├── 000079.jpg ├── 000080.jpg ├── 000081.jpg ├── 000082.jpg ├── 000083.jpg ├── 000084.jpg ├── 000085.jpg ├── 000086.jpg ├── 000087.jpg ├── 000088.jpg ├── 000089.jpg ├── 000090.jpg ├── 000091.jpg ├── 000092.jpg ├── 000093.jpg ├── 000094.jpg ├── 000095.jpg ├── 000096.jpg ├── 000097.jpg ├── 000098.jpg ├── 000099.jpg ├── 000100.jpg ├── 000101.jpg ├── 000102.jpg ├── 000103.jpg ├── 000104.jpg ├── 000105.jpg ├── 000106.jpg ├── 000107.jpg ├── 000108.jpg ├── 000109.jpg ├── 000110.jpg ├── 000111.jpg ├── 000112.jpg ├── 000113.jpg ├── 000114.jpg ├── 000115.jpg ├── 000116.jpg ├── 000117.jpg ├── 000118.jpg ├── 000119.jpg ├── 000120.jpg ├── 000121.jpg ├── 000122.jpg ├── 000123.jpg ├── 000124.jpg ├── 000125.jpg ├── 000126.jpg ├── 000127.jpg ├── 000128.jpg ├── 000129.jpg ├── 000130.jpg ├── 000131.jpg ├── 000132.jpg ├── 000133.jpg ├── 000134.jpg ├── 000135.jpg ├── 000136.jpg ├── 000137.jpg ├── 000138.jpg ├── 000139.jpg ├── 000140.jpg ├── 000141.jpg ├── 000142.jpg ├── 000143.jpg ├── 000144.jpg ├── 000145.jpg ├── 000146.jpg ├── 000147.jpg ├── 000148.jpg ├── 000149.jpg ├── 000150.jpg ├── 000151.jpg ├── 000152.jpg ├── 000153.jpg ├── 000154.jpg ├── 000155.jpg ├── 000156.jpg ├── 000157.jpg ├── 000158.jpg ├── 000159.jpg ├── 000160.jpg ├── 000161.jpg ├── 000162.jpg ├── 000163.jpg ├── 000164.jpg ├── 000165.jpg ├── 000166.jpg ├── 000167.jpg ├── 000168.jpg ├── 000169.jpg ├── 000170.jpg ├── 000171.jpg ├── 000172.jpg ├── 000173.jpg ├── 000174.jpg ├── 000175.jpg ├── 000176.jpg ├── 000177.jpg ├── 000178.jpg ├── 000179.jpg ├── 000180.jpg ├── 000181.jpg ├── 000182.jpg ├── 000183.jpg ├── 000184.jpg ├── 000185.jpg ├── 000186.jpg ├── 000187.jpg ├── 000188.jpg ├── 000189.jpg ├── 000190.jpg ├── 000191.jpg ├── 000192.jpg ├── 000193.jpg ├── 000194.jpg ├── 000195.jpg ├── 000196.jpg ├── 000197.jpg ├── 000198.jpg ├── 000199.jpg ├── 000200.jpg ├── 000201.jpg ├── 000202.jpg ├── 000203.jpg ├── 000204.jpg ├── 000205.jpg ├── 000206.jpg ├── 000207.jpg ├── 000208.jpg ├── 000209.jpg ├── 000210.jpg ├── 000211.jpg ├── 000212.jpg ├── 000213.jpg ├── 000214.jpg ├── 000215.jpg ├── 000216.jpg ├── 000217.jpg ├── 000218.jpg ├── 000219.jpg ├── 000220.jpg ├── 000221.jpg ├── 000222.jpg ├── 000223.jpg ├── 000224.jpg ├── 000225.jpg ├── 000226.jpg ├── 000227.jpg ├── 000228.jpg ├── 000229.jpg ├── 000230.jpg ├── 000231.jpg ├── 000232.jpg ├── 000233.jpg ├── 000234.jpg ├── 000235.jpg ├── 000236.jpg ├── 000237.jpg ├── 000238.jpg ├── 000239.jpg ├── 000240.jpg ├── 000241.jpg ├── 000242.jpg ├── 000243.jpg ├── 000244.jpg ├── 000245.jpg ├── 000246.jpg ├── 000247.jpg ├── 000248.jpg ├── 000249.jpg ├── 000250.jpg ├── 000251.jpg ├── 000252.jpg ├── 000253.jpg ├── 000254.jpg ├── 000255.jpg ├── 000256.jpg ├── 000257.jpg ├── 000258.jpg ├── 000259.jpg ├── 000260.jpg ├── 000261.jpg ├── 000262.jpg ├── 000263.jpg ├── 000264.jpg ├── 000265.jpg ├── 000266.jpg ├── 000267.jpg ├── 000268.jpg ├── 000269.jpg ├── 000270.jpg ├── 000271.jpg ├── 000272.jpg ├── 000273.jpg ├── 000274.jpg ├── 000275.jpg ├── 000276.jpg ├── 000277.jpg ├── 000278.jpg ├── 000279.jpg ├── 000280.jpg ├── 000281.jpg ├── 000282.jpg ├── 000283.jpg ├── 000284.jpg ├── 000285.jpg ├── 000286.jpg ├── 000287.jpg ├── 000288.jpg ├── 000289.jpg ├── 000290.jpg ├── 000291.jpg ├── 000292.jpg ├── 000293.jpg ├── 000294.jpg ├── 000295.jpg ├── 000296.jpg ├── 000297.jpg ├── 000298.jpg ├── 000299.jpg ├── 000300.jpg ├── 000301.jpg ├── 000302.jpg ├── 000303.jpg ├── 000304.jpg ├── 000305.jpg ├── 000306.jpg ├── 000307.jpg ├── 000308.jpg ├── 000309.jpg ├── 000310.jpg ├── 000311.jpg ├── 000312.jpg ├── 000313.jpg ├── 000314.jpg ├── 000315.jpg ├── 000316.jpg ├── 000317.jpg ├── 000318.jpg ├── 000319.jpg ├── 000320.jpg ├── 000321.jpg ├── 000322.jpg ├── 000323.jpg ├── 000324.jpg ├── 000325.jpg ├── 000326.jpg ├── 000327.jpg ├── 000328.jpg ├── 000329.jpg ├── 000330.jpg └── imageList.txt ├── util ├── rowcolop_core.mexw32 ├── rowcolop_core.mexw64 ├── sladdrowcols.m ├── slmulrowcols.m ├── rowcolop_core.cpp └── slmetric_pw.m ├── dataset_evaluation ├── humanGT.mat ├── collectivenessVideoResult.mat ├── returnROC.m └── label_evaluationCollectiveness.m ├── SDP_order.m ├── readTraks.m ├── .gitattributes ├── SDP_initialXwithNoise.m ├── readme.txt ├── trk2XV.m ├── SDP_updateXwithOutlier.m ├── measureCollectiveness.m ├── run_realscene.m ├── collectiveMerging.m ├── SDPmodel.m └── .gitignore /realcrowd/000000.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000000.jpg -------------------------------------------------------------------------------- /realcrowd/000001.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000001.jpg -------------------------------------------------------------------------------- /realcrowd/000002.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000002.jpg -------------------------------------------------------------------------------- /realcrowd/000003.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000003.jpg -------------------------------------------------------------------------------- /realcrowd/000004.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000004.jpg -------------------------------------------------------------------------------- /realcrowd/000005.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000005.jpg -------------------------------------------------------------------------------- /realcrowd/000006.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000006.jpg -------------------------------------------------------------------------------- /realcrowd/000007.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000007.jpg -------------------------------------------------------------------------------- /realcrowd/000008.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000008.jpg -------------------------------------------------------------------------------- /realcrowd/000009.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000009.jpg -------------------------------------------------------------------------------- /realcrowd/000010.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000010.jpg -------------------------------------------------------------------------------- /realcrowd/000011.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000011.jpg -------------------------------------------------------------------------------- /realcrowd/000012.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000012.jpg -------------------------------------------------------------------------------- /realcrowd/000013.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000013.jpg -------------------------------------------------------------------------------- /realcrowd/000014.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000014.jpg -------------------------------------------------------------------------------- /realcrowd/000015.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000015.jpg -------------------------------------------------------------------------------- /realcrowd/000016.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000016.jpg -------------------------------------------------------------------------------- /realcrowd/000017.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000017.jpg -------------------------------------------------------------------------------- /realcrowd/000018.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000018.jpg -------------------------------------------------------------------------------- /realcrowd/000019.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000019.jpg -------------------------------------------------------------------------------- /realcrowd/000020.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000020.jpg -------------------------------------------------------------------------------- /realcrowd/000021.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000021.jpg -------------------------------------------------------------------------------- /realcrowd/000022.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000022.jpg -------------------------------------------------------------------------------- /realcrowd/000023.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000023.jpg -------------------------------------------------------------------------------- /realcrowd/000024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000024.jpg -------------------------------------------------------------------------------- /realcrowd/000025.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000025.jpg -------------------------------------------------------------------------------- /realcrowd/000026.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000026.jpg -------------------------------------------------------------------------------- /realcrowd/000027.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000027.jpg -------------------------------------------------------------------------------- /realcrowd/000028.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000028.jpg -------------------------------------------------------------------------------- /realcrowd/000029.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000029.jpg -------------------------------------------------------------------------------- /realcrowd/000030.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000030.jpg -------------------------------------------------------------------------------- /realcrowd/000031.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000031.jpg -------------------------------------------------------------------------------- /realcrowd/000032.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000032.jpg -------------------------------------------------------------------------------- /realcrowd/000033.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000033.jpg -------------------------------------------------------------------------------- /realcrowd/000034.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000034.jpg -------------------------------------------------------------------------------- /realcrowd/000035.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000035.jpg -------------------------------------------------------------------------------- /realcrowd/000036.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000036.jpg -------------------------------------------------------------------------------- /realcrowd/000037.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000037.jpg -------------------------------------------------------------------------------- /realcrowd/000038.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000038.jpg -------------------------------------------------------------------------------- /realcrowd/000039.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000039.jpg -------------------------------------------------------------------------------- /realcrowd/000040.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000040.jpg -------------------------------------------------------------------------------- /realcrowd/000041.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000041.jpg -------------------------------------------------------------------------------- /realcrowd/000042.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000042.jpg -------------------------------------------------------------------------------- /realcrowd/000043.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000043.jpg -------------------------------------------------------------------------------- /realcrowd/000044.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000044.jpg -------------------------------------------------------------------------------- /realcrowd/000045.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000045.jpg -------------------------------------------------------------------------------- /realcrowd/000046.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000046.jpg -------------------------------------------------------------------------------- /realcrowd/000047.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000047.jpg -------------------------------------------------------------------------------- /realcrowd/000048.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000048.jpg -------------------------------------------------------------------------------- /realcrowd/000049.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000049.jpg -------------------------------------------------------------------------------- /realcrowd/000050.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000050.jpg -------------------------------------------------------------------------------- /realcrowd/000051.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000051.jpg -------------------------------------------------------------------------------- /realcrowd/000052.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000052.jpg -------------------------------------------------------------------------------- /realcrowd/000053.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000053.jpg -------------------------------------------------------------------------------- /realcrowd/000054.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000054.jpg -------------------------------------------------------------------------------- /realcrowd/000055.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000055.jpg -------------------------------------------------------------------------------- /realcrowd/000056.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000056.jpg -------------------------------------------------------------------------------- /realcrowd/000057.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000057.jpg -------------------------------------------------------------------------------- /realcrowd/000058.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000058.jpg -------------------------------------------------------------------------------- /realcrowd/000059.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000059.jpg -------------------------------------------------------------------------------- /realcrowd/000060.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000060.jpg -------------------------------------------------------------------------------- /realcrowd/000061.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000061.jpg -------------------------------------------------------------------------------- /realcrowd/000062.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000062.jpg -------------------------------------------------------------------------------- /realcrowd/000063.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000063.jpg -------------------------------------------------------------------------------- /realcrowd/000064.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000064.jpg -------------------------------------------------------------------------------- /realcrowd/000065.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000065.jpg -------------------------------------------------------------------------------- /realcrowd/000066.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000066.jpg -------------------------------------------------------------------------------- /realcrowd/000067.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000067.jpg -------------------------------------------------------------------------------- /realcrowd/000068.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000068.jpg -------------------------------------------------------------------------------- /realcrowd/000069.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000069.jpg -------------------------------------------------------------------------------- /realcrowd/000070.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000070.jpg -------------------------------------------------------------------------------- /realcrowd/000071.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000071.jpg -------------------------------------------------------------------------------- /realcrowd/000072.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000072.jpg -------------------------------------------------------------------------------- /realcrowd/000073.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000073.jpg -------------------------------------------------------------------------------- /realcrowd/000074.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000074.jpg -------------------------------------------------------------------------------- /realcrowd/000075.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000075.jpg -------------------------------------------------------------------------------- /realcrowd/000076.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000076.jpg -------------------------------------------------------------------------------- /realcrowd/000077.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000077.jpg -------------------------------------------------------------------------------- /realcrowd/000078.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000078.jpg -------------------------------------------------------------------------------- /realcrowd/000079.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000079.jpg -------------------------------------------------------------------------------- /realcrowd/000080.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000080.jpg -------------------------------------------------------------------------------- /realcrowd/000081.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000081.jpg -------------------------------------------------------------------------------- /realcrowd/000082.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000082.jpg -------------------------------------------------------------------------------- /realcrowd/000083.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000083.jpg -------------------------------------------------------------------------------- /realcrowd/000084.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000084.jpg -------------------------------------------------------------------------------- /realcrowd/000085.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000085.jpg -------------------------------------------------------------------------------- /realcrowd/000086.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000086.jpg -------------------------------------------------------------------------------- /realcrowd/000087.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000087.jpg -------------------------------------------------------------------------------- /realcrowd/000088.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000088.jpg -------------------------------------------------------------------------------- /realcrowd/000089.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000089.jpg -------------------------------------------------------------------------------- /realcrowd/000090.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000090.jpg -------------------------------------------------------------------------------- /realcrowd/000091.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000091.jpg -------------------------------------------------------------------------------- /realcrowd/000092.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000092.jpg -------------------------------------------------------------------------------- /realcrowd/000093.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000093.jpg -------------------------------------------------------------------------------- /realcrowd/000094.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000094.jpg -------------------------------------------------------------------------------- /realcrowd/000095.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000095.jpg -------------------------------------------------------------------------------- /realcrowd/000096.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000096.jpg -------------------------------------------------------------------------------- /realcrowd/000097.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000097.jpg -------------------------------------------------------------------------------- /realcrowd/000098.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000098.jpg -------------------------------------------------------------------------------- /realcrowd/000099.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000099.jpg -------------------------------------------------------------------------------- /realcrowd/000100.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000100.jpg -------------------------------------------------------------------------------- /realcrowd/000101.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000101.jpg -------------------------------------------------------------------------------- /realcrowd/000102.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000102.jpg -------------------------------------------------------------------------------- /realcrowd/000103.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000103.jpg -------------------------------------------------------------------------------- /realcrowd/000104.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000104.jpg -------------------------------------------------------------------------------- /realcrowd/000105.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000105.jpg -------------------------------------------------------------------------------- /realcrowd/000106.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000106.jpg -------------------------------------------------------------------------------- /realcrowd/000107.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000107.jpg -------------------------------------------------------------------------------- /realcrowd/000108.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000108.jpg -------------------------------------------------------------------------------- /realcrowd/000109.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000109.jpg -------------------------------------------------------------------------------- /realcrowd/000110.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000110.jpg -------------------------------------------------------------------------------- /realcrowd/000111.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000111.jpg -------------------------------------------------------------------------------- /realcrowd/000112.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000112.jpg -------------------------------------------------------------------------------- /realcrowd/000113.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000113.jpg -------------------------------------------------------------------------------- /realcrowd/000114.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000114.jpg -------------------------------------------------------------------------------- /realcrowd/000115.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000115.jpg -------------------------------------------------------------------------------- /realcrowd/000116.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000116.jpg -------------------------------------------------------------------------------- /realcrowd/000117.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000117.jpg -------------------------------------------------------------------------------- /realcrowd/000118.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000118.jpg -------------------------------------------------------------------------------- /realcrowd/000119.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000119.jpg -------------------------------------------------------------------------------- /realcrowd/000120.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000120.jpg -------------------------------------------------------------------------------- /realcrowd/000121.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000121.jpg -------------------------------------------------------------------------------- /realcrowd/000122.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000122.jpg -------------------------------------------------------------------------------- /realcrowd/000123.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000123.jpg -------------------------------------------------------------------------------- /realcrowd/000124.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000124.jpg -------------------------------------------------------------------------------- /realcrowd/000125.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000125.jpg -------------------------------------------------------------------------------- /realcrowd/000126.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000126.jpg -------------------------------------------------------------------------------- /realcrowd/000127.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000127.jpg -------------------------------------------------------------------------------- /realcrowd/000128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000128.jpg -------------------------------------------------------------------------------- /realcrowd/000129.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000129.jpg -------------------------------------------------------------------------------- /realcrowd/000130.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000130.jpg -------------------------------------------------------------------------------- /realcrowd/000131.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000131.jpg -------------------------------------------------------------------------------- /realcrowd/000132.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000132.jpg -------------------------------------------------------------------------------- /realcrowd/000133.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000133.jpg -------------------------------------------------------------------------------- /realcrowd/000134.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000134.jpg -------------------------------------------------------------------------------- /realcrowd/000135.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000135.jpg -------------------------------------------------------------------------------- /realcrowd/000136.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000136.jpg -------------------------------------------------------------------------------- /realcrowd/000137.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000137.jpg -------------------------------------------------------------------------------- /realcrowd/000138.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000138.jpg -------------------------------------------------------------------------------- /realcrowd/000139.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000139.jpg -------------------------------------------------------------------------------- /realcrowd/000140.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000140.jpg -------------------------------------------------------------------------------- /realcrowd/000141.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000141.jpg -------------------------------------------------------------------------------- /realcrowd/000142.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000142.jpg -------------------------------------------------------------------------------- /realcrowd/000143.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000143.jpg -------------------------------------------------------------------------------- /realcrowd/000144.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000144.jpg -------------------------------------------------------------------------------- /realcrowd/000145.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000145.jpg -------------------------------------------------------------------------------- /realcrowd/000146.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000146.jpg -------------------------------------------------------------------------------- /realcrowd/000147.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000147.jpg -------------------------------------------------------------------------------- /realcrowd/000148.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000148.jpg -------------------------------------------------------------------------------- /realcrowd/000149.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000149.jpg -------------------------------------------------------------------------------- /realcrowd/000150.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000150.jpg -------------------------------------------------------------------------------- /realcrowd/000151.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000151.jpg -------------------------------------------------------------------------------- /realcrowd/000152.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000152.jpg -------------------------------------------------------------------------------- /realcrowd/000153.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000153.jpg -------------------------------------------------------------------------------- /realcrowd/000154.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000154.jpg -------------------------------------------------------------------------------- /realcrowd/000155.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000155.jpg -------------------------------------------------------------------------------- /realcrowd/000156.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000156.jpg -------------------------------------------------------------------------------- /realcrowd/000157.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000157.jpg -------------------------------------------------------------------------------- /realcrowd/000158.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000158.jpg -------------------------------------------------------------------------------- /realcrowd/000159.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000159.jpg -------------------------------------------------------------------------------- /realcrowd/000160.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000160.jpg -------------------------------------------------------------------------------- /realcrowd/000161.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000161.jpg -------------------------------------------------------------------------------- /realcrowd/000162.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000162.jpg -------------------------------------------------------------------------------- /realcrowd/000163.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000163.jpg -------------------------------------------------------------------------------- /realcrowd/000164.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000164.jpg -------------------------------------------------------------------------------- /realcrowd/000165.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000165.jpg -------------------------------------------------------------------------------- /realcrowd/000166.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000166.jpg -------------------------------------------------------------------------------- /realcrowd/000167.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000167.jpg -------------------------------------------------------------------------------- /realcrowd/000168.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000168.jpg -------------------------------------------------------------------------------- /realcrowd/000169.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000169.jpg -------------------------------------------------------------------------------- /realcrowd/000170.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000170.jpg -------------------------------------------------------------------------------- /realcrowd/000171.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000171.jpg -------------------------------------------------------------------------------- /realcrowd/000172.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000172.jpg -------------------------------------------------------------------------------- /realcrowd/000173.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000173.jpg -------------------------------------------------------------------------------- /realcrowd/000174.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000174.jpg -------------------------------------------------------------------------------- /realcrowd/000175.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000175.jpg -------------------------------------------------------------------------------- /realcrowd/000176.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000176.jpg -------------------------------------------------------------------------------- /realcrowd/000177.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000177.jpg -------------------------------------------------------------------------------- /realcrowd/000178.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000178.jpg -------------------------------------------------------------------------------- /realcrowd/000179.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000179.jpg -------------------------------------------------------------------------------- /realcrowd/000180.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000180.jpg -------------------------------------------------------------------------------- /realcrowd/000181.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000181.jpg -------------------------------------------------------------------------------- /realcrowd/000182.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000182.jpg -------------------------------------------------------------------------------- /realcrowd/000183.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000183.jpg -------------------------------------------------------------------------------- /realcrowd/000184.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000184.jpg -------------------------------------------------------------------------------- /realcrowd/000185.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000185.jpg -------------------------------------------------------------------------------- /realcrowd/000186.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000186.jpg -------------------------------------------------------------------------------- /realcrowd/000187.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000187.jpg -------------------------------------------------------------------------------- /realcrowd/000188.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000188.jpg -------------------------------------------------------------------------------- /realcrowd/000189.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000189.jpg -------------------------------------------------------------------------------- /realcrowd/000190.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000190.jpg -------------------------------------------------------------------------------- /realcrowd/000191.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000191.jpg -------------------------------------------------------------------------------- /realcrowd/000192.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000192.jpg -------------------------------------------------------------------------------- /realcrowd/000193.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000193.jpg -------------------------------------------------------------------------------- /realcrowd/000194.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000194.jpg -------------------------------------------------------------------------------- /realcrowd/000195.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000195.jpg -------------------------------------------------------------------------------- /realcrowd/000196.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000196.jpg -------------------------------------------------------------------------------- /realcrowd/000197.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000197.jpg -------------------------------------------------------------------------------- /realcrowd/000198.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000198.jpg -------------------------------------------------------------------------------- /realcrowd/000199.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000199.jpg -------------------------------------------------------------------------------- /realcrowd/000200.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000200.jpg -------------------------------------------------------------------------------- /realcrowd/000201.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000201.jpg -------------------------------------------------------------------------------- /realcrowd/000202.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000202.jpg -------------------------------------------------------------------------------- /realcrowd/000203.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000203.jpg -------------------------------------------------------------------------------- /realcrowd/000204.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000204.jpg -------------------------------------------------------------------------------- /realcrowd/000205.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000205.jpg -------------------------------------------------------------------------------- /realcrowd/000206.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000206.jpg -------------------------------------------------------------------------------- /realcrowd/000207.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000207.jpg -------------------------------------------------------------------------------- /realcrowd/000208.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000208.jpg -------------------------------------------------------------------------------- /realcrowd/000209.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000209.jpg -------------------------------------------------------------------------------- /realcrowd/000210.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000210.jpg -------------------------------------------------------------------------------- /realcrowd/000211.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000211.jpg -------------------------------------------------------------------------------- /realcrowd/000212.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000212.jpg -------------------------------------------------------------------------------- /realcrowd/000213.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000213.jpg -------------------------------------------------------------------------------- /realcrowd/000214.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000214.jpg -------------------------------------------------------------------------------- /realcrowd/000215.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000215.jpg -------------------------------------------------------------------------------- /realcrowd/000216.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000216.jpg -------------------------------------------------------------------------------- /realcrowd/000217.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000217.jpg -------------------------------------------------------------------------------- /realcrowd/000218.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000218.jpg -------------------------------------------------------------------------------- /realcrowd/000219.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000219.jpg -------------------------------------------------------------------------------- /realcrowd/000220.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000220.jpg -------------------------------------------------------------------------------- /realcrowd/000221.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000221.jpg -------------------------------------------------------------------------------- /realcrowd/000222.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000222.jpg -------------------------------------------------------------------------------- /realcrowd/000223.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000223.jpg -------------------------------------------------------------------------------- /realcrowd/000224.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000224.jpg -------------------------------------------------------------------------------- /realcrowd/000225.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000225.jpg -------------------------------------------------------------------------------- /realcrowd/000226.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000226.jpg -------------------------------------------------------------------------------- /realcrowd/000227.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000227.jpg -------------------------------------------------------------------------------- /realcrowd/000228.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000228.jpg -------------------------------------------------------------------------------- /realcrowd/000229.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000229.jpg -------------------------------------------------------------------------------- /realcrowd/000230.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000230.jpg -------------------------------------------------------------------------------- /realcrowd/000231.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000231.jpg -------------------------------------------------------------------------------- /realcrowd/000232.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000232.jpg -------------------------------------------------------------------------------- /realcrowd/000233.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000233.jpg -------------------------------------------------------------------------------- /realcrowd/000234.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000234.jpg -------------------------------------------------------------------------------- /realcrowd/000235.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000235.jpg -------------------------------------------------------------------------------- /realcrowd/000236.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000236.jpg -------------------------------------------------------------------------------- /realcrowd/000237.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000237.jpg -------------------------------------------------------------------------------- /realcrowd/000238.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000238.jpg -------------------------------------------------------------------------------- /realcrowd/000239.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000239.jpg -------------------------------------------------------------------------------- /realcrowd/000240.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000240.jpg -------------------------------------------------------------------------------- /realcrowd/000241.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000241.jpg -------------------------------------------------------------------------------- /realcrowd/000242.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000242.jpg -------------------------------------------------------------------------------- /realcrowd/000243.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000243.jpg -------------------------------------------------------------------------------- /realcrowd/000244.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000244.jpg -------------------------------------------------------------------------------- /realcrowd/000245.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000245.jpg -------------------------------------------------------------------------------- /realcrowd/000246.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000246.jpg -------------------------------------------------------------------------------- /realcrowd/000247.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000247.jpg -------------------------------------------------------------------------------- /realcrowd/000248.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000248.jpg -------------------------------------------------------------------------------- /realcrowd/000249.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000249.jpg -------------------------------------------------------------------------------- /realcrowd/000250.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000250.jpg -------------------------------------------------------------------------------- /realcrowd/000251.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000251.jpg -------------------------------------------------------------------------------- /realcrowd/000252.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000252.jpg -------------------------------------------------------------------------------- /realcrowd/000253.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000253.jpg -------------------------------------------------------------------------------- /realcrowd/000254.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000254.jpg -------------------------------------------------------------------------------- /realcrowd/000255.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000255.jpg -------------------------------------------------------------------------------- /realcrowd/000256.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000256.jpg -------------------------------------------------------------------------------- /realcrowd/000257.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000257.jpg -------------------------------------------------------------------------------- /realcrowd/000258.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000258.jpg -------------------------------------------------------------------------------- /realcrowd/000259.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000259.jpg -------------------------------------------------------------------------------- /realcrowd/000260.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000260.jpg -------------------------------------------------------------------------------- /realcrowd/000261.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000261.jpg -------------------------------------------------------------------------------- /realcrowd/000262.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000262.jpg -------------------------------------------------------------------------------- /realcrowd/000263.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000263.jpg -------------------------------------------------------------------------------- /realcrowd/000264.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000264.jpg -------------------------------------------------------------------------------- /realcrowd/000265.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000265.jpg -------------------------------------------------------------------------------- /realcrowd/000266.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000266.jpg -------------------------------------------------------------------------------- /realcrowd/000267.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000267.jpg -------------------------------------------------------------------------------- /realcrowd/000268.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000268.jpg -------------------------------------------------------------------------------- /realcrowd/000269.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000269.jpg -------------------------------------------------------------------------------- /realcrowd/000270.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000270.jpg -------------------------------------------------------------------------------- /realcrowd/000271.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000271.jpg -------------------------------------------------------------------------------- /realcrowd/000272.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000272.jpg -------------------------------------------------------------------------------- /realcrowd/000273.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000273.jpg -------------------------------------------------------------------------------- /realcrowd/000274.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000274.jpg -------------------------------------------------------------------------------- /realcrowd/000275.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000275.jpg -------------------------------------------------------------------------------- /realcrowd/000276.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000276.jpg -------------------------------------------------------------------------------- /realcrowd/000277.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000277.jpg -------------------------------------------------------------------------------- /realcrowd/000278.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000278.jpg -------------------------------------------------------------------------------- /realcrowd/000279.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000279.jpg -------------------------------------------------------------------------------- /realcrowd/000280.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000280.jpg -------------------------------------------------------------------------------- /realcrowd/000281.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000281.jpg -------------------------------------------------------------------------------- /realcrowd/000282.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000282.jpg -------------------------------------------------------------------------------- /realcrowd/000283.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000283.jpg -------------------------------------------------------------------------------- /realcrowd/000284.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000284.jpg -------------------------------------------------------------------------------- /realcrowd/000285.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000285.jpg -------------------------------------------------------------------------------- /realcrowd/000286.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000286.jpg -------------------------------------------------------------------------------- /realcrowd/000287.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000287.jpg -------------------------------------------------------------------------------- /realcrowd/000288.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000288.jpg -------------------------------------------------------------------------------- /realcrowd/000289.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000289.jpg -------------------------------------------------------------------------------- /realcrowd/000290.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000290.jpg -------------------------------------------------------------------------------- /realcrowd/000291.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000291.jpg -------------------------------------------------------------------------------- /realcrowd/000292.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000292.jpg -------------------------------------------------------------------------------- /realcrowd/000293.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000293.jpg -------------------------------------------------------------------------------- /realcrowd/000294.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000294.jpg -------------------------------------------------------------------------------- /realcrowd/000295.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000295.jpg -------------------------------------------------------------------------------- /realcrowd/000296.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000296.jpg -------------------------------------------------------------------------------- /realcrowd/000297.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000297.jpg -------------------------------------------------------------------------------- /realcrowd/000298.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000298.jpg -------------------------------------------------------------------------------- /realcrowd/000299.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000299.jpg -------------------------------------------------------------------------------- /realcrowd/000300.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000300.jpg -------------------------------------------------------------------------------- /realcrowd/000301.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000301.jpg -------------------------------------------------------------------------------- /realcrowd/000302.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000302.jpg -------------------------------------------------------------------------------- /realcrowd/000303.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000303.jpg -------------------------------------------------------------------------------- /realcrowd/000304.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000304.jpg -------------------------------------------------------------------------------- /realcrowd/000305.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000305.jpg -------------------------------------------------------------------------------- /realcrowd/000306.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000306.jpg -------------------------------------------------------------------------------- /realcrowd/000307.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000307.jpg -------------------------------------------------------------------------------- /realcrowd/000308.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000308.jpg -------------------------------------------------------------------------------- /realcrowd/000309.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000309.jpg -------------------------------------------------------------------------------- /realcrowd/000310.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000310.jpg -------------------------------------------------------------------------------- /realcrowd/000311.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000311.jpg -------------------------------------------------------------------------------- /realcrowd/000312.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000312.jpg -------------------------------------------------------------------------------- /realcrowd/000313.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000313.jpg -------------------------------------------------------------------------------- /realcrowd/000314.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000314.jpg -------------------------------------------------------------------------------- /realcrowd/000315.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000315.jpg -------------------------------------------------------------------------------- /realcrowd/000316.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000316.jpg -------------------------------------------------------------------------------- /realcrowd/000317.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000317.jpg -------------------------------------------------------------------------------- /realcrowd/000318.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000318.jpg -------------------------------------------------------------------------------- /realcrowd/000319.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000319.jpg -------------------------------------------------------------------------------- /realcrowd/000320.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000320.jpg -------------------------------------------------------------------------------- /realcrowd/000321.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000321.jpg -------------------------------------------------------------------------------- /realcrowd/000322.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000322.jpg -------------------------------------------------------------------------------- /realcrowd/000323.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000323.jpg -------------------------------------------------------------------------------- /realcrowd/000324.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000324.jpg -------------------------------------------------------------------------------- /realcrowd/000325.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000325.jpg -------------------------------------------------------------------------------- /realcrowd/000326.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000326.jpg -------------------------------------------------------------------------------- /realcrowd/000327.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000327.jpg -------------------------------------------------------------------------------- /realcrowd/000328.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000328.jpg -------------------------------------------------------------------------------- /realcrowd/000329.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000329.jpg -------------------------------------------------------------------------------- /realcrowd/000330.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/realcrowd/000330.jpg -------------------------------------------------------------------------------- /util/rowcolop_core.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/util/rowcolop_core.mexw32 -------------------------------------------------------------------------------- /util/rowcolop_core.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/util/rowcolop_core.mexw64 -------------------------------------------------------------------------------- /dataset_evaluation/humanGT.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/dataset_evaluation/humanGT.mat -------------------------------------------------------------------------------- /dataset_evaluation/collectivenessVideoResult.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhoubolei/collectiveness/HEAD/dataset_evaluation/collectivenessVideoResult.mat -------------------------------------------------------------------------------- /SDP_order.m: -------------------------------------------------------------------------------- 1 | function order_system = SDP_order(curV) 2 | %SPP_ORDER to compute the average velocity as the system order of particles 3 | 4 | velocityValue = sqrt(sum(curV.^2,2)); 5 | curV_normalized = curV./(repmat(velocityValue,[1,2])+eps); 6 | order_system = sum(curV_normalized,1)./size(curV,1); 7 | order_system = sqrt(order_system(1)^2+order_system(2)^2); 8 | 9 | end 10 | 11 | -------------------------------------------------------------------------------- /readTraks.m: -------------------------------------------------------------------------------- 1 | function trk= readTraks(fileName) 2 | 3 | fid = fopen(fileName, 'r'); 4 | 5 | i = 0; 6 | len = fscanf(fid,'%d'); 7 | while (len) > 0 8 | i = i + 1; 9 | 10 | A = fscanf(fid,'(%d,%d,%d)'); 11 | 12 | trk(i).x = A(1:3:end); 13 | trk(i).y = A(2:3:end); 14 | trk(i).t = A(3:3:end); 15 | 16 | len = fscanf(fid,'%d'); 17 | end 18 | fclose(fid); -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /SDP_initialXwithNoise.m: -------------------------------------------------------------------------------- 1 | function [curX,curVelocityDegree,Label,newpara] = SDP_initialXwithNoise(para) 2 | %SPP_INITIALX to initilize the spatial locations and velocities of particles 3 | % 4 | % 5 | nOutlier=round(para.outlierRatio*para.nPoint); 6 | para.nPoint=para.nPoint+nOutlier; 7 | p=randperm(para.nPoint); 8 | Label=ones(1,para.nPoint); 9 | Label(1,p(1:nOutlier))=-1; 10 | oldX=[para.L*[rand([para.nPoint,1])] para.L*[rand([para.nPoint,1])]]; 11 | velocityDegree=pi*(-1+2*rand([para.nPoint,1])); 12 | incrementX=[para.velocity*cos(velocityDegree) para.velocity*sin(velocityDegree)]; 13 | curX=oldX+incrementX; 14 | z=incrementX(:,1)+1i*incrementX(:,2); 15 | curVelocityDegree=angle(z); 16 | newpara=para; 17 | 18 | end 19 | 20 | -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | Source codes for Measuring Crowd Collectiveness 2 | 3 | 1, measureCollectiveness.m 4 | Core function of computing collectiveness. 5 | 6 | 2, collectiveMerging.m 7 | Clustering algorithm Collective Merging in the paper. 8 | 9 | 3, SDPmodel.m 10 | Simulation of Self-driven Particle with measuring its collectiveness over time 11 | 12 | 4, run_realscene.m 13 | Measuring collectiveness in each frame of a real crowd with detecting collective motion clusters. 14 | 15 | 5, Some utility functions are included in util folder. You may first mex them. 16 | 17 | 18 | Mar. 28 2013, Bolei Zhou 19 | 20 | Bolei Zhou, Xiaoou Tang, and Xiaogang Wang. "Measuring Crowd Collectiveness." Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR 2013) 21 | -------------------------------------------------------------------------------- /util/sladdrowcols.m: -------------------------------------------------------------------------------- 1 | function Y = sladdrowcols(X, vrow, vcol) 2 | %SLADDROWCOLS Adds the vectors to all rows and all columns 3 | % 4 | % $ Syntax $ 5 | % - Y = sladdrowcols(X, vrow, vcol) 6 | % 7 | % $ Arguments $ 8 | % - X: The input matrix 9 | % - vrow: The row vector to add to all rows 10 | % - vcol: The column vector to add to all columns 11 | % - Y: The resultant matrix 12 | % 13 | % $ Description $ 14 | % - Y = sladdrowcols(X, vrow, vcol) adds vrow to all rows of X and 15 | % adds vcol to all columns of Y. 16 | % 17 | % $ Remarks $ 18 | % - The implementation simply wrapps the mex function rowcolop_core. 19 | % 20 | % $ History $ 21 | % - Created by Dahua Lin, on Sep 10, 2006 22 | % 23 | 24 | Y = rowcolop_core(X, vrow, vcol, 1); % 1 is the opcode of addition -------------------------------------------------------------------------------- /dataset_evaluation/returnROC.m: -------------------------------------------------------------------------------- 1 | function [ TPRset, FPRset, accuracySet, threshold_set] = returnROC( gt_high,gt_low ) 2 | %RETURNROC to compute the ROC curve 3 | % Bolei Zhou, April 23, 2013 4 | threshold_set = [0:0.02:1]; 5 | nThreshold = length(threshold_set); 6 | TPRset = [];FPRset = []; 7 | accuracySet = []; 8 | for i = 1 : nThreshold 9 | curThreshold = threshold_set(i); 10 | TP = length(find(gt_high>=curThreshold)); 11 | P = length(gt_high); 12 | FP = length(find(gt_low>=curThreshold)); 13 | N = FP + length(find(gt_low<=curThreshold)); 14 | curTPR = TP/P; 15 | curFPR = FP/N; 16 | accuracy = (TP+length(find(gt_low <= curThreshold)))/(P+N); 17 | TPRset = [TPRset curTPR]; 18 | FPRset = [FPRset curFPR]; 19 | accuracySet = [accuracySet accuracy]; 20 | end 21 | 22 | 23 | end 24 | 25 | -------------------------------------------------------------------------------- /util/slmulrowcols.m: -------------------------------------------------------------------------------- 1 | function Y = slmulrowcols(X, vrow, vcol) 2 | %SLMULROWCOLS Multiplies the vectors to all rows and all columns 3 | % 4 | % $ Syntax $ 5 | % - Y = slmulrowcols(X, vrow, vcol) 6 | % 7 | % $ Arguments $ 8 | % - X: The input matrix 9 | % - vrow: The row vector to multiply to all rows 10 | % - vcol: The column vector to multiply to all columns 11 | % - Y: The resultant matrix 12 | % 13 | % $ Description $ 14 | % - Y = slmulrowcols(X, vrow, vcol) multiplies vrow to all rows of X and 15 | % adds vcol to all columns of Y. 16 | % 17 | % $ Remarks $ 18 | % - The implementation simply wrapps the mex function rowcolop_core. 19 | % 20 | % $ History $ 21 | % - Created by Dahua Lin, on Sep 10, 2006 22 | % 23 | 24 | Y = rowcolop_core(X, vrow, vcol, 2); % 2 is the opcode of multiplication -------------------------------------------------------------------------------- /trk2XV.m: -------------------------------------------------------------------------------- 1 | function [XVset] = trk2XV(trks, interval, length_threshold) 2 | %TRK2XV to transform trk series into point set 3 | % trks: trajectory series from gKLT tracker 4 | % interval: the interval between trajectory series 5 | % length_threshold: keep trajectories with large length 6 | % 7 | % XVset: the point set: 1-2 column, XY; 3-4 column, V_xV_y, 5: time; 6: index 8 | % 9 | % Mar.28 2013, Bolei Zhou 10 | 11 | XVset = []; 12 | for i = 1:length(trks) 13 | curTrk=trks(i); 14 | if length(curTrk.x) > length_threshold 15 | curX1 = curTrk.x(1:interval:end); 16 | curX2 = curTrk.y(1:interval:end); 17 | curT = curTrk.t(1:interval:end); 18 | curX = [curX1(1:end-1) curX2(1:end-1)]; 19 | curV = [curX1(2:end)-curX1(1:end-1) curX2(2:end)-curX2(1:end-1)]; 20 | curXV = [curX curV curT(1:end-1) ones(size(curX,1),1)*i]; 21 | XVset = [XVset;curXV]; 22 | end 23 | end 24 | 25 | end -------------------------------------------------------------------------------- /SDP_updateXwithOutlier.m: -------------------------------------------------------------------------------- 1 | function [nextX,nextVelocityDegree]=SDP_updateXwithOutlier(curX,curVelocityDegree,Xlabel,para) 2 | correlationMatrix=repmat(curVelocityDegree,[1, size(curX,1)])'; 3 | 4 | distanceMatrix=slmetric_pw(curX',curX','eucdist'); 5 | neighborMatrix=distanceMatrix<=para.R; 6 | nNeighbor=sum(neighborMatrix,2); 7 | nextVelocityDegreeSet=correlationMatrix.*neighborMatrix; 8 | 9 | 10 | nextVelocityDegree=curVelocityDegree; 11 | for i=1:size(distanceMatrix,1) 12 | curNeighborIndex=find(nextVelocityDegreeSet(i,:)~=0); 13 | curCosAverage=sum(cos(nextVelocityDegreeSet(i,curNeighborIndex)))/nNeighbor(i); 14 | curSinAverage=sum(sin(nextVelocityDegreeSet(i,curNeighborIndex)))/nNeighbor(i); 15 | nextVelocityDegree(i)=atan2(curSinAverage,curCosAverage); 16 | end 17 | 18 | %% 19 | velocityDegree_noise=pi*para.noise*(-1+2*rand([para.nPoint,1])); %% adding noise 20 | outlierIndex=find(Xlabel==-1); 21 | nextVelocityDegree(outlierIndex)=curVelocityDegree(outlierIndex); 22 | nextVelocityDegree=nextVelocityDegree+velocityDegree_noise; 23 | incrementX=[para.velocity*cos(nextVelocityDegree) para.velocity*sin(nextVelocityDegree)]; 24 | nextX=curX+incrementX; 25 | nextX=mod(nextX,para.L); 26 | 27 | end 28 | 29 | -------------------------------------------------------------------------------- /measureCollectiveness.m: -------------------------------------------------------------------------------- 1 | function [collectivenessSet, crowdCollectiveness, Z] = measureCollectiveness( curX, curV, para) 2 | %Objective: to measure the collectiveness of moving points. 3 | % curX: spatial location of points. 4 | % curV: velocity of points. 5 | % collectivenessSet: individual collectiveness. 6 | % crowdCollectiveness: crowd collectiveness 7 | 8 | %% step 1: compute the weighted adjacency matrix using KNN 9 | weightedAdjacencyMatrix = computeAdj(curX, curV, para.K); 10 | 11 | %% step 2: integrating all the paths with regularization 12 | I_matrix = eye(size(weightedAdjacencyMatrix,1)); 13 | Z = inv(I_matrix-para.z*weightedAdjacencyMatrix) - I_matrix; 14 | collectivenessSet = sum(Z,2); 15 | crowdCollectiveness = mean(collectivenessSet); 16 | end 17 | 18 | function weightedAdjacencyMatrix = computeAdj(curX, curV, K) 19 | distanceMatrix = slmetric_pw(curX',curX','eucdist'); 20 | correlationMatrix = slmetric_pw(curV',curV','nrmcorr'); 21 | %% K-nearest neighbor adjacency matrix 22 | neighborMatrix = zeros(size(distanceMatrix,1)); 23 | for i=1:size(distanceMatrix,1) 24 | [~,neighborIndex] = sort(distanceMatrix(i,:),'ascend'); 25 | neighborMatrix(i,neighborIndex(2:K+1)) = 1; 26 | end 27 | weightedAdjacencyMatrix = (correlationMatrix.*neighborMatrix);%weigted adjacency matrix 28 | end -------------------------------------------------------------------------------- /run_realscene.m: -------------------------------------------------------------------------------- 1 | %% Measuring collectiveness at each frame of a video 2 | % Mar.28 2013, Bolei Zhou 3 | clear 4 | addpath('util\'); 5 | curVideo = 'realcrowd\'; 6 | curTrkName = 'klt_3000_10_trk.txt'; 7 | 8 | %% Collectiveness parameter 9 | para.K = 20; 10 | para.z = 0.5/para.K ; 11 | para.upperBound = para.K*para.z/(1-para.K*para.z); 12 | para.threshold = 0.6*para.z/(1-para.K*para.z); 13 | 14 | %% 15 | curClipFrameSet = dir([curVideo '\*.jpg']); 16 | curTrks = readTraks([curVideo '\' curTrkName]); 17 | [XVset] = trk2XV(curTrks, 1, 2); % transform trajectories into point set 18 | 19 | figure 20 | for i = 1:length(curClipFrameSet) 21 | curFrame = imread([curVideo '\' curClipFrameSet(i).name]); 22 | curFrame = im2double(curFrame); 23 | curIndex = find(XVset(:, 5) == i); 24 | curX = XVset(curIndex,1:2); 25 | curV = XVset(curIndex,3:4); 26 | curOrder = SDP_order(curV); % average velocity measurement 27 | [collectivenessSet, crowdCollectiveness, Zmatrix] = measureCollectiveness( curX, curV, para);%crowd collectiveness 28 | clusterIndex = collectiveMerging( Zmatrix, para ); % get clusters from Z matrix 29 | hold off, imshow(curFrame),hold on 30 | %%%%%%%%%%% plot points with different clusters at each frame 31 | scatter(curX(:,1),curX(:,2),'+r') 32 | quiver(curX(:,1),curX(:,2),curV(:,1),curV(:,2),'y'), 33 | for j = 1:max(clusterIndex) 34 | curClusterIndex=find(clusterIndex==j); 35 | scatter(curX(curClusterIndex,1),curX(curClusterIndex,2),'filled'), 36 | end 37 | title(['No.Points=' num2str(size(curX,1)) ',order=' num2str(curOrder) ',Collectiveness=' num2str(crowdCollectiveness)]) 38 | drawnow 39 | end 40 | 41 | -------------------------------------------------------------------------------- /collectiveMerging.m: -------------------------------------------------------------------------------- 1 | function [ clusterIndex ] = collectiveMerging( Zmatrix, para ) 2 | %COLLECTIVEMERGING extract components from Z matrix 3 | % Mar.28,2013, Bolei Zhou 4 | linkGraph = Zmatrix > para.threshold; 5 | [ clusterIndex ] = linkGraph2cluster( linkGraph ); 6 | 7 | end 8 | 9 | function [ clusterIndex ] = linkGraph2cluster( linkGraph ) 10 | [row,col] = find(linkGraph==1); 11 | pairData = [row';col']; 12 | clusterIndex = pairClustering(pairData,size(linkGraph,1)); 13 | end 14 | 15 | 16 | function clusterIndex = pairClustering(pairwiseData,totalNum) 17 | 18 | clusterNum = 0; 19 | clusterIndex = zeros(1,totalNum); 20 | 21 | for i = 1:size(pairwiseData,2) 22 | curPair = pairwiseData(:,i); 23 | curPairAlabel = clusterIndex(1,curPair(1)); 24 | curPairBlabel = clusterIndex(1,curPair(2)); 25 | 26 | if curPairAlabel == 0 && curPairBlabel == 0 27 | clusterNum = clusterNum+1; 28 | curPairLabel = clusterNum; 29 | clusterIndex(1,curPair(1)) = curPairLabel; 30 | clusterIndex(1,curPair(2)) = curPairLabel; 31 | elseif curPairAlabel~=0 && curPairBlabel==0 32 | clusterIndex(1,curPair(2)) = curPairAlabel; 33 | elseif curPairBlabel~=0 && curPairAlabel==0 34 | clusterIndex(1,curPair(1)) = curPairBlabel; 35 | else 36 | combineLabel = min(curPairAlabel,curPairBlabel); 37 | clusterIndex(1,find(clusterIndex==curPairAlabel)) = combineLabel; 38 | clusterIndex(1,find(clusterIndex==curPairBlabel)) = combineLabel; 39 | end 40 | 41 | 42 | end 43 | newClusterNum = 0; 44 | for i = 1:max(clusterNum) 45 | curClusterIndex = find(clusterIndex==i); 46 | if length(curClusterIndex)<10 47 | clusterIndex(curClusterIndex) = 0; 48 | else 49 | newClusterNum = newClusterNum+1; 50 | clusterIndex(curClusterIndex) = newClusterNum; 51 | end 52 | end 53 | 54 | end -------------------------------------------------------------------------------- /SDPmodel.m: -------------------------------------------------------------------------------- 1 | clear 2 | 3 | addpath('util\'); 4 | 5 | %% parameters of Self-Driven Particles 6 | SDPpara.nPoint = 400; %number of particles 7 | SDPpara.L = 7; %size of the ground 8 | SDPpara.R = 1; %size of the interaction radius 9 | SDPpara.noise = 0.00; %random perturbation 10 | SDPpara.velocity = 0.03; %velocity value 11 | SDPpara.outlierRatio = 0.2; %outlier ratio 12 | 13 | %% parameters of collectiveness measurement 14 | para.K = 20; 15 | para.z = 0.5/para.K ; 16 | para.upperBound = para.K*para.z/(1-para.K*para.z); 17 | para.threshold = 0.4*para.z/(1-para.K*para.z); 18 | 19 | %% initilize the self-driven particles 20 | [curX,curVelocityDegree,XLabel,SDPpara] = SDP_initialXwithNoise(SDPpara); 21 | keyDotIndex = find(XLabel==1); % the index of self-driven particles 22 | outlierIndex = find(XLabel==-1); % the index of randomly moving points 23 | %% begin iteration 24 | figure 25 | while 1 26 | [nextX,nextVelocityDegree] = SDP_updateXwithOutlier(curX,curVelocityDegree,XLabel,SDPpara); % update SDP model 27 | curVelocityDegree = nextVelocityDegree; 28 | curX = nextX; 29 | curV = [cos(curVelocityDegree) sin(curVelocityDegree)]; 30 | order_system = SDP_order(curV); % compute the average velocty 31 | [collectivenessSet, crowdCollectiveness] = measureCollectiveness( curX, curV, para); % compute collectiveness 32 | subplot(1,2,1), 33 | hold off 34 | scatter(curX(keyDotIndex,1),curX(keyDotIndex,2),'b'),hold on 35 | scatter(curX(outlierIndex,1),curX(outlierIndex,2),'r'),hold on 36 | quiver(curX(keyDotIndex,1),curX(keyDotIndex,2),curV(keyDotIndex,1),curV(keyDotIndex,2),'b'); 37 | xlim([0 SDPpara.L]) 38 | ylim([0 SDPpara.L]) 39 | title(['System Order=' num2str(order_system) ', Collectiveness=' num2str(crowdCollectiveness)]); 40 | drawnow 41 | subplot(1,2,2),hist(collectivenessSet,20) 42 | title('Histogram of Individual Collectiveness'); 43 | end 44 | 45 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ################# 2 | ## Eclipse 3 | ################# 4 | 5 | *.pydevproject 6 | .project 7 | .metadata 8 | bin/ 9 | tmp/ 10 | *.tmp 11 | *.bak 12 | *.swp 13 | *~.nib 14 | local.properties 15 | .classpath 16 | .settings/ 17 | .loadpath 18 | 19 | # External tool builders 20 | .externalToolBuilders/ 21 | 22 | # Locally stored "Eclipse launch configurations" 23 | *.launch 24 | 25 | # CDT-specific 26 | .cproject 27 | 28 | # PDT-specific 29 | .buildpath 30 | 31 | 32 | ################# 33 | ## Visual Studio 34 | ################# 35 | 36 | ## Ignore Visual Studio temporary files, build results, and 37 | ## files generated by popular Visual Studio add-ons. 38 | 39 | # User-specific files 40 | *.suo 41 | *.user 42 | *.sln.docstates 43 | 44 | # Build results 45 | [Dd]ebug/ 46 | [Rr]elease/ 47 | *_i.c 48 | *_p.c 49 | *.ilk 50 | *.meta 51 | *.obj 52 | *.pch 53 | *.pdb 54 | *.pgc 55 | *.pgd 56 | *.rsp 57 | *.sbr 58 | *.tlb 59 | *.tli 60 | *.tlh 61 | *.tmp 62 | *.vspscc 63 | .builds 64 | *.dotCover 65 | 66 | ## TODO: If you have NuGet Package Restore enabled, uncomment this 67 | #packages/ 68 | 69 | # Visual C++ cache files 70 | ipch/ 71 | *.aps 72 | *.ncb 73 | *.opensdf 74 | *.sdf 75 | 76 | # Visual Studio profiler 77 | *.psess 78 | *.vsp 79 | 80 | # ReSharper is a .NET coding add-in 81 | _ReSharper* 82 | 83 | # Installshield output folder 84 | [Ee]xpress 85 | 86 | # DocProject is a documentation generator add-in 87 | DocProject/buildhelp/ 88 | DocProject/Help/*.HxT 89 | DocProject/Help/*.HxC 90 | DocProject/Help/*.hhc 91 | DocProject/Help/*.hhk 92 | DocProject/Help/*.hhp 93 | DocProject/Help/Html2 94 | DocProject/Help/html 95 | 96 | # Click-Once directory 97 | publish 98 | 99 | # Others 100 | [Bb]in 101 | [Oo]bj 102 | sql 103 | TestResults 104 | *.Cache 105 | ClientBin 106 | stylecop.* 107 | ~$* 108 | *.dbmdl 109 | Generated_Code #added for RIA/Silverlight projects 110 | 111 | # Backup & report files from converting an old project file to a newer 112 | # Visual Studio version. Backup files are not needed, because we have git ;-) 113 | _UpgradeReport_Files/ 114 | Backup*/ 115 | UpgradeLog*.XML 116 | 117 | 118 | 119 | ############ 120 | ## Windows 121 | ############ 122 | 123 | # Windows image file caches 124 | Thumbs.db 125 | 126 | # Folder config file 127 | Desktop.ini 128 | 129 | 130 | ############# 131 | ## Python 132 | ############# 133 | 134 | *.py[co] 135 | 136 | # Packages 137 | *.egg 138 | *.egg-info 139 | dist 140 | build 141 | eggs 142 | parts 143 | bin 144 | var 145 | sdist 146 | develop-eggs 147 | .installed.cfg 148 | 149 | # Installer logs 150 | pip-log.txt 151 | 152 | # Unit test / coverage reports 153 | .coverage 154 | .tox 155 | 156 | #Translations 157 | *.mo 158 | 159 | #Mr Developer 160 | .mr.developer.cfg 161 | 162 | # Mac crap 163 | .DS_Store 164 | -------------------------------------------------------------------------------- /util/rowcolop_core.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////// 2 | // 3 | // The core of matrix-vector operation: 4 | // simultaneously applying a column vector to 5 | // every columns and a row vector to every rows 6 | // 7 | // Important Nodes on Compilation !!! 8 | // - you must use mex -O to open the optimization 9 | // option, otherwise, the efficiency will be 10 | // very low in run-time. (Due to the using of 11 | // template inline function in implementation 12 | // for core computation.) 13 | // 14 | // History: 15 | // - Created by Dahua Lin, on Sep 10, 2006 16 | // 17 | /////////////////////////////////////////////////////////// 18 | 19 | 20 | #include "mex.h" 21 | 22 | // The operation codes 23 | enum OpCode 24 | { 25 | opAdd = 1, // r = m + v 26 | opMul = 2, // r = m * v 27 | }; 28 | 29 | // The core functors to do operations 30 | 31 | template class CoreFunctor; 32 | 33 | 34 | template<> class CoreFunctor { 35 | public: inline double Calc(double m, double vr, double vc){ return m + vr + vc; } }; 36 | 37 | template<> class CoreFunctor { 38 | public: inline double Calc(double m, double vr, double vc){ return m * vr * vc; } }; 39 | 40 | 41 | template 42 | void apply_rowcols(const double* X, const double* vrow, const double* vcol, double* Y, int m, int n); 43 | 44 | // The function to delegate operations 45 | void delegate_operations(int opc, const double* X, const double* vrow, const double* vcol, double* Y, int m, int n) 46 | { 47 | switch (opc) 48 | { 49 | case opAdd: apply_rowcols(X, vrow, vcol, Y, m, n); break; 50 | case opMul: apply_rowcols(X, vrow, vcol, Y, m, n); break; 51 | } 52 | } 53 | 54 | // The template function to do whole calculations 55 | template 56 | void apply_rowcols(const double* X, const double* vrow, const double* vcol, double* Y, int m, int n) 57 | { 58 | CoreFunctor f; 59 | 60 | double cvr = 0; 61 | for (int j = 0; j < n; ++j) 62 | { 63 | cvr = vrow[j]; 64 | for (int i = 0; i < m; ++i) 65 | { 66 | *(Y++) = f.Calc(*(X++), cvr, vcol[i]); 67 | } 68 | } 69 | } 70 | 71 | 72 | // The entry function 73 | // Input: 74 | // X, vrow, vcol, opcode 75 | // Output: 76 | // Y 77 | void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) 78 | { 79 | if (nlhs > 1) 80 | { 81 | mexErrMsgTxt("The number of outputs should not be larger than 1\n"); 82 | } 83 | 84 | if (nrhs != 4) 85 | { 86 | mexErrMsgTxt("The number of inputs should be 4: X, vrow, vcol, opcode\n"); 87 | } 88 | 89 | // get input 90 | const mxArray* mxX = prhs[0]; 91 | const mxArray* mxvrow = prhs[1]; 92 | const mxArray* mxvcol = prhs[2]; 93 | const mxArray* mxopc = prhs[3]; 94 | 95 | int m = mxGetM(mxX); 96 | int n = mxGetN(mxX); 97 | int vrm = mxGetM(mxvrow); 98 | int vrn = mxGetN(mxvrow); 99 | int vcm = mxGetM(mxvcol); 100 | int vcn = mxGetN(mxvcol); 101 | int opc = (int)mxGetScalar(mxopc); 102 | 103 | // check size 104 | if (vrm != 1 || vrn != n) 105 | mexErrMsgTxt("The size of the row vector is illegal, it should be 1 x n.\n"); 106 | if (vcm != m || vcn != 1) 107 | mexErrMsgTxt("The size of the column vector is illegal, it should be m x 1.\n"); 108 | 109 | // get base address 110 | const double* X = mxGetPr(mxX); 111 | const double* vrow = mxGetPr(mxvrow); 112 | const double* vcol = mxGetPr(mxvcol); 113 | 114 | mxArray* mxY = mxCreateDoubleMatrix(m, n, mxREAL); 115 | double* Y = mxGetPr(mxY); 116 | 117 | // do operation 118 | delegate_operations(opc, X, vrow, vcol, Y, m, n); 119 | 120 | // make output 121 | plhs[0] = mxY; 122 | 123 | } 124 | 125 | 126 | 127 | 128 | 129 | 130 | -------------------------------------------------------------------------------- /dataset_evaluation/label_evaluationCollectiveness.m: -------------------------------------------------------------------------------- 1 | % Compute the ROC curves and correlation between collectiveness/velocity 2 | % Order and human scores. 3 | clear 4 | load('humanGT.mat'); 5 | load('collectivenessVideoResult.mat'); 6 | collectivenessClips=cell2mat(collectivenessData(2,:)); 7 | velocityOrderClips=cell2mat(velocityOrderData(2,:)); 8 | 9 | %% evaluation criteria 1 10 | % sum the scores and computing the coefficient between the scores and 11 | % collectiveness 12 | GT_table = GT_human; 13 | GT_mean=sum(GT_table,1); 14 | figure 15 | subplot(1,2,1),scatter(collectivenessClips,GT_mean) 16 | r=corrcoef(collectivenessClips,GT_mean); 17 | title(['Collectiveness coefficient=' num2str(r(2,1))]) 18 | 19 | figure 20 | subplot(1,2,1),scatter(velocityOrderClips,GT_mean) 21 | r=corrcoef(velocityOrderClips,GT_mean); 22 | title(['VelocityOrder coefficient=' num2str(r(2,1))]) 23 | 24 | %% evaluation criteria 2 25 | % majority voting to get the category of each clip 26 | clipLabel_majorvoting=mode(GT_table); % 27 | curIndex_high=find(clipLabel_majorvoting==2); 28 | curIndex_mid=find(clipLabel_majorvoting==1); 29 | curIndex_low=find(clipLabel_majorvoting==0); 30 | interval=[0:0.05:1]; 31 | n_low=hist(collectivenessClips(curIndex_low),interval); 32 | n_mid=hist(collectivenessClips(curIndex_mid),interval); 33 | n_high=hist(collectivenessClips(curIndex_high),interval); 34 | subplot(1,2,2),bar(interval',[n_low;n_mid;n_high]') 35 | 36 | %% compute the ROC 37 | collectiveness_high=collectivenessClips(1,curIndex_high); 38 | collectiveness_low=collectivenessClips(1,curIndex_low); 39 | collectiveness_mid=collectivenessClips(1,curIndex_mid); 40 | 41 | velocityOrder_high=velocityOrderClips(1,curIndex_high); 42 | velocityOrder_low=velocityOrderClips(1,curIndex_low); 43 | velocityOrder_mid=velocityOrderClips(1,curIndex_mid); 44 | 45 | figure, 46 | [ TPRset, FPRset, accuracySet, threshold_set] = returnROC( collectiveness_high,collectiveness_low ); 47 | [maxAccuracy,maxIndex]=max(accuracySet); 48 | maxThreshold=threshold_set(maxIndex); 49 | display(['Collectiveness Best Accuracy for High-Low=' num2str(maxAccuracy) ',best Boundary=' num2str(maxThreshold)]); 50 | [FPRset_sort,index]=sort(FPRset,'ascend'); 51 | TPRset_sort=TPRset(index); 52 | subplot(1,3,1),plot(FPRset_sort,TPRset_sort), 53 | 54 | 55 | [ TPRset, FPRset, accuracySet, threshold_set] = returnROC( velocityOrder_high,velocityOrder_low ); 56 | [maxAccuracy,maxIndex]=max(accuracySet); 57 | maxThreshold=threshold_set(maxIndex); 58 | display(['VelocityOrder Best Accuracy for High-Low=' num2str(maxAccuracy) ',best Boundary=' num2str(maxThreshold)]); 59 | [FPRset_sort,index]=sort(FPRset,'ascend'); 60 | TPRset_sort=TPRset(index); 61 | hold on,plot(FPRset_sort,TPRset_sort,'r'),title('ROC curve:High-Low'); 62 | 63 | [ TPRset, FPRset, accuracySet, threshold_set] = returnROC( collectiveness_high,collectiveness_mid ); 64 | [maxAccuracy,maxIndex]=max(accuracySet); 65 | maxThreshold=threshold_set(maxIndex); 66 | display(['Collectiveness Best Accuracy for High-Mid=' num2str(maxAccuracy) ',best Boundary=' num2str(maxThreshold)]); 67 | 68 | [FPRset_sort,index]=sort(FPRset,'ascend'); 69 | TPRset_sort=TPRset(index); 70 | subplot(1,3,2),plot(FPRset_sort,TPRset_sort), 71 | 72 | [ TPRset, FPRset, accuracySet, threshold_set] = returnROC( velocityOrder_high,velocityOrder_mid ); 73 | [maxAccuracy,maxIndex]=max(accuracySet); 74 | maxThreshold=threshold_set(maxIndex); 75 | display(['VelocityOrder Best Accuracy for High-Mid=' num2str(maxAccuracy) ',best Boundary=' num2str(maxThreshold)]); 76 | [FPRset_sort,index]=sort(FPRset,'ascend'); 77 | TPRset_sort=TPRset(index); 78 | hold on,plot(FPRset_sort,TPRset_sort,'r'),title('ROC curve:High-Mid'); 79 | 80 | 81 | [ TPRset, FPRset, accuracySet, threshold_set] = returnROC( collectiveness_mid,collectiveness_low ); 82 | [maxAccuracy,maxIndex]=max(accuracySet); 83 | maxThreshold=threshold_set(maxIndex); 84 | display(['Collectiveness Best Accuracy for Mid-Low=' num2str(maxAccuracy) ',best Boundary=' num2str(maxThreshold)]); 85 | [FPRset_sort,index]=sort(FPRset,'ascend'); 86 | TPRset_sort=TPRset(index); 87 | subplot(1,3,3),plot(FPRset_sort,TPRset_sort), 88 | 89 | [ TPRset, FPRset, accuracySet, threshold_set] = returnROC( velocityOrder_mid,velocityOrder_low ); 90 | [maxAccuracy,maxIndex]=max(accuracySet); 91 | maxThreshold=threshold_set(maxIndex); 92 | display(['VelocityOrder Best Accuracy for Mid-Low=' num2str(maxAccuracy) ',best Boundary=' num2str(maxThreshold)]); 93 | 94 | [FPRset_sort,index]=sort(FPRset,'ascend'); 95 | TPRset_sort=TPRset(index); 96 | hold on,plot(FPRset_sort,TPRset_sort,'r'),title('ROC curve:Mid-Low'); -------------------------------------------------------------------------------- /realcrowd/imageList.txt: -------------------------------------------------------------------------------- 1 | 000000.jpg 2 | 000001.jpg 3 | 000002.jpg 4 | 000003.jpg 5 | 000004.jpg 6 | 000005.jpg 7 | 000006.jpg 8 | 000007.jpg 9 | 000008.jpg 10 | 000009.jpg 11 | 000010.jpg 12 | 000011.jpg 13 | 000012.jpg 14 | 000013.jpg 15 | 000014.jpg 16 | 000015.jpg 17 | 000016.jpg 18 | 000017.jpg 19 | 000018.jpg 20 | 000019.jpg 21 | 000020.jpg 22 | 000021.jpg 23 | 000022.jpg 24 | 000023.jpg 25 | 000024.jpg 26 | 000025.jpg 27 | 000026.jpg 28 | 000027.jpg 29 | 000028.jpg 30 | 000029.jpg 31 | 000030.jpg 32 | 000031.jpg 33 | 000032.jpg 34 | 000033.jpg 35 | 000034.jpg 36 | 000035.jpg 37 | 000036.jpg 38 | 000037.jpg 39 | 000038.jpg 40 | 000039.jpg 41 | 000040.jpg 42 | 000041.jpg 43 | 000042.jpg 44 | 000043.jpg 45 | 000044.jpg 46 | 000045.jpg 47 | 000046.jpg 48 | 000047.jpg 49 | 000048.jpg 50 | 000049.jpg 51 | 000050.jpg 52 | 000051.jpg 53 | 000052.jpg 54 | 000053.jpg 55 | 000054.jpg 56 | 000055.jpg 57 | 000056.jpg 58 | 000057.jpg 59 | 000058.jpg 60 | 000059.jpg 61 | 000060.jpg 62 | 000061.jpg 63 | 000062.jpg 64 | 000063.jpg 65 | 000064.jpg 66 | 000065.jpg 67 | 000066.jpg 68 | 000067.jpg 69 | 000068.jpg 70 | 000069.jpg 71 | 000070.jpg 72 | 000071.jpg 73 | 000072.jpg 74 | 000073.jpg 75 | 000074.jpg 76 | 000075.jpg 77 | 000076.jpg 78 | 000077.jpg 79 | 000078.jpg 80 | 000079.jpg 81 | 000080.jpg 82 | 000081.jpg 83 | 000082.jpg 84 | 000083.jpg 85 | 000084.jpg 86 | 000085.jpg 87 | 000086.jpg 88 | 000087.jpg 89 | 000088.jpg 90 | 000089.jpg 91 | 000090.jpg 92 | 000091.jpg 93 | 000092.jpg 94 | 000093.jpg 95 | 000094.jpg 96 | 000095.jpg 97 | 000096.jpg 98 | 000097.jpg 99 | 000098.jpg 100 | 000099.jpg 101 | 000100.jpg 102 | 000101.jpg 103 | 000102.jpg 104 | 000103.jpg 105 | 000104.jpg 106 | 000105.jpg 107 | 000106.jpg 108 | 000107.jpg 109 | 000108.jpg 110 | 000109.jpg 111 | 000110.jpg 112 | 000111.jpg 113 | 000112.jpg 114 | 000113.jpg 115 | 000114.jpg 116 | 000115.jpg 117 | 000116.jpg 118 | 000117.jpg 119 | 000118.jpg 120 | 000119.jpg 121 | 000120.jpg 122 | 000121.jpg 123 | 000122.jpg 124 | 000123.jpg 125 | 000124.jpg 126 | 000125.jpg 127 | 000126.jpg 128 | 000127.jpg 129 | 000128.jpg 130 | 000129.jpg 131 | 000130.jpg 132 | 000131.jpg 133 | 000132.jpg 134 | 000133.jpg 135 | 000134.jpg 136 | 000135.jpg 137 | 000136.jpg 138 | 000137.jpg 139 | 000138.jpg 140 | 000139.jpg 141 | 000140.jpg 142 | 000141.jpg 143 | 000142.jpg 144 | 000143.jpg 145 | 000144.jpg 146 | 000145.jpg 147 | 000146.jpg 148 | 000147.jpg 149 | 000148.jpg 150 | 000149.jpg 151 | 000150.jpg 152 | 000151.jpg 153 | 000152.jpg 154 | 000153.jpg 155 | 000154.jpg 156 | 000155.jpg 157 | 000156.jpg 158 | 000157.jpg 159 | 000158.jpg 160 | 000159.jpg 161 | 000160.jpg 162 | 000161.jpg 163 | 000162.jpg 164 | 000163.jpg 165 | 000164.jpg 166 | 000165.jpg 167 | 000166.jpg 168 | 000167.jpg 169 | 000168.jpg 170 | 000169.jpg 171 | 000170.jpg 172 | 000171.jpg 173 | 000172.jpg 174 | 000173.jpg 175 | 000174.jpg 176 | 000175.jpg 177 | 000176.jpg 178 | 000177.jpg 179 | 000178.jpg 180 | 000179.jpg 181 | 000180.jpg 182 | 000181.jpg 183 | 000182.jpg 184 | 000183.jpg 185 | 000184.jpg 186 | 000185.jpg 187 | 000186.jpg 188 | 000187.jpg 189 | 000188.jpg 190 | 000189.jpg 191 | 000190.jpg 192 | 000191.jpg 193 | 000192.jpg 194 | 000193.jpg 195 | 000194.jpg 196 | 000195.jpg 197 | 000196.jpg 198 | 000197.jpg 199 | 000198.jpg 200 | 000199.jpg 201 | 000200.jpg 202 | 000201.jpg 203 | 000202.jpg 204 | 000203.jpg 205 | 000204.jpg 206 | 000205.jpg 207 | 000206.jpg 208 | 000207.jpg 209 | 000208.jpg 210 | 000209.jpg 211 | 000210.jpg 212 | 000211.jpg 213 | 000212.jpg 214 | 000213.jpg 215 | 000214.jpg 216 | 000215.jpg 217 | 000216.jpg 218 | 000217.jpg 219 | 000218.jpg 220 | 000219.jpg 221 | 000220.jpg 222 | 000221.jpg 223 | 000222.jpg 224 | 000223.jpg 225 | 000224.jpg 226 | 000225.jpg 227 | 000226.jpg 228 | 000227.jpg 229 | 000228.jpg 230 | 000229.jpg 231 | 000230.jpg 232 | 000231.jpg 233 | 000232.jpg 234 | 000233.jpg 235 | 000234.jpg 236 | 000235.jpg 237 | 000236.jpg 238 | 000237.jpg 239 | 000238.jpg 240 | 000239.jpg 241 | 000240.jpg 242 | 000241.jpg 243 | 000242.jpg 244 | 000243.jpg 245 | 000244.jpg 246 | 000245.jpg 247 | 000246.jpg 248 | 000247.jpg 249 | 000248.jpg 250 | 000249.jpg 251 | 000250.jpg 252 | 000251.jpg 253 | 000252.jpg 254 | 000253.jpg 255 | 000254.jpg 256 | 000255.jpg 257 | 000256.jpg 258 | 000257.jpg 259 | 000258.jpg 260 | 000259.jpg 261 | 000260.jpg 262 | 000261.jpg 263 | 000262.jpg 264 | 000263.jpg 265 | 000264.jpg 266 | 000265.jpg 267 | 000266.jpg 268 | 000267.jpg 269 | 000268.jpg 270 | 000269.jpg 271 | 000270.jpg 272 | 000271.jpg 273 | 000272.jpg 274 | 000273.jpg 275 | 000274.jpg 276 | 000275.jpg 277 | 000276.jpg 278 | 000277.jpg 279 | 000278.jpg 280 | 000279.jpg 281 | 000280.jpg 282 | 000281.jpg 283 | 000282.jpg 284 | 000283.jpg 285 | 000284.jpg 286 | 000285.jpg 287 | 000286.jpg 288 | 000287.jpg 289 | 000288.jpg 290 | 000289.jpg 291 | 000290.jpg 292 | 000291.jpg 293 | 000292.jpg 294 | 000293.jpg 295 | 000294.jpg 296 | 000295.jpg 297 | 000296.jpg 298 | 000297.jpg 299 | 000298.jpg 300 | 000299.jpg 301 | 000300.jpg 302 | 000301.jpg 303 | 000302.jpg 304 | 000303.jpg 305 | 000304.jpg 306 | 000305.jpg 307 | 000306.jpg 308 | 000307.jpg 309 | 000308.jpg 310 | 000309.jpg 311 | 000310.jpg 312 | 000311.jpg 313 | 000312.jpg 314 | 000313.jpg 315 | 000314.jpg 316 | 000315.jpg 317 | 000316.jpg 318 | 000317.jpg 319 | 000318.jpg 320 | 000319.jpg 321 | 000320.jpg 322 | 000321.jpg 323 | 000322.jpg 324 | 000323.jpg 325 | 000324.jpg 326 | 000325.jpg 327 | 000326.jpg 328 | 000327.jpg 329 | 000328.jpg 330 | 000329.jpg 331 | 000330.jpg -------------------------------------------------------------------------------- /util/slmetric_pw.m: -------------------------------------------------------------------------------- 1 | function M = slmetric_pw(X1, X2, mtype, varargin) 2 | %SLMETRIC_PW Compute the metric between column vectors pairwisely 3 | % 4 | % $ Syntax $ 5 | % - M = slmetric_pw(X1, X2, mtype); 6 | % - M = slmetric_pw(X1, X2, mtype, ...); 7 | % 8 | % $ Description $ 9 | % - M = slmetric_pw(X1, X2, mtype) Computes the metrics between 10 | % column vectors of X1 and X2 pairwisely, using the metric 11 | % specified by mtype. If X1 has n1 columns, X2 has n2 columns, then 12 | % the resultant M would be of size n1 x n2. The entry at i-th row 13 | % and j-th column of M represents the metric between X1(:, i) and 14 | % X2(:, j). 15 | % 16 | % - M = slmetric_pw(X1, X2, mtype, ...) Some metric types requires 17 | % extra parameters, which should be specified in params. 18 | % 19 | % - The supported metrics of this function are listed as follows: 20 | % \* 21 | % \t Table 1. The supported metrics \\ 22 | % \h name & description \\ 23 | % 'eucdist' & Euclidean distance: ||x - y|| \\ 24 | % 'sqdist' & Square of Euclidean distance: ||x - y||^2 \\ 25 | % 'dotprod' & Canonical dot product: = x^T * y \\ 26 | % 'nrmcorr' & Normalized correlation (cosine angle): 27 | % (x^T * y ) / (||x|| * ||y||) \\ 28 | % 'angle' & Angle between two vectors (in radian) \\ 29 | % 'quadfrm' & Quadratic form: x^T * Q * y 30 | % Q is specified in the 1st extra parameter \\ 31 | % 'quaddiff' & Quadratic form of difference: 32 | % (x - y)^T * Q * (x - y), 33 | % Q is specified in the 1st extra parameter \\ 34 | % 'cityblk' & City block distance (abssum of difference) \\ 35 | % 'maxdiff' & Maximum absolute difference \\ 36 | % 'mindiff' & Minimum absolute difference \\ 37 | % 'wsqdist' & Weighted square of Euclidean distance \\ 38 | % \sum_i w_i (x_i - y_i)^2, w = (w_1, ..., w_d) 39 | % the weights w is specified in 1st extra parameter 40 | % as a length-d column vector \\ 41 | % \* 42 | % 43 | % $ Remarks $ 44 | % - X1 and X2 are both matrices with n1 column vectors and n2 column 45 | % vectors respectively. Then the resultant matrix M will be a n1 * n2 46 | % matrix. The entry at i-th row and j-th column of M is the metric between 47 | % the i-th column vector in X1 and the j-th column vector in X2. 48 | % 49 | % $ History $ 50 | % - Created by Dahua Lin on Dec 06th, 2005 51 | % - Modified by Dahua Lin on Apr 21st, 2005 52 | % - regularize the error reporting 53 | % - Modified by Dahua Lin on Sep 11st, 2005 54 | % - completely rewrite the core codes based on new mex computation 55 | % cores, and the runtime efficiency in both time and space is 56 | % significantly increased. 57 | % 58 | 59 | 60 | %% parse and verify input arguments 61 | if nargin < 3 62 | raise_lackinput('slmetric_pw', 3); 63 | end 64 | mtype = lower(mtype); 65 | 66 | %% compute 67 | switch mtype 68 | case {'eucdist', 'sqdist'} 69 | checkdim(X1, X2); 70 | sqs1 = sum(X1 .* X1, 1)'; 71 | sqs2 = sum(X2 .* X2, 1); 72 | M = (-2) * X1' * X2; 73 | M = sladdrowcols(M, sqs2, sqs1); 74 | M(M < 0) = 0; 75 | if strcmp(mtype, 'eucdist') 76 | M = sqrt(M); 77 | end 78 | 79 | case 'dotprod' 80 | checkdim(X1, X2); 81 | M = X1' * X2; 82 | 83 | case {'nrmcorr', 'angle'} 84 | checkdim(X1, X2); 85 | M = X1' * X2; 86 | f1 = sqrt(sum(X1 .* X1, 1))'; 87 | f2 = sqrt(sum(X2 .* X2, 1)); 88 | f1(f1 < eps) = eps; % prevent from being zeros 89 | f2(f2 < eps) = eps; 90 | f1 = 1 ./ f1; 91 | f2 = 1 ./ f2; 92 | M = slmulrowcols(M, f2, f1); 93 | if strcmp(mtype, 'angle0') 94 | M = real(acos(M)); 95 | end 96 | 97 | case 'quadfrm' 98 | % parse parameters 99 | Q = varargin{1}; 100 | [d1, d2] = size(Q); 101 | if size(X1, 1) ~= d1 || size(X2, 1) ~= d2 102 | error('sltoolbox:sizmismatch', ... 103 | 'The dimensions of X1 and X2 are not consistent with Q'); 104 | end 105 | 106 | % compute 107 | M = X1' * Q * X2; 108 | 109 | case 'quaddiff' 110 | % parse parameters 111 | d = checkdim(X1, X2); 112 | Q = varargin{1}; 113 | if ~isequal(size(Q), [d, d]) 114 | error('sltoolbox:dimmismatch', ... 115 | 'The dimensions of X1 and X2 are not consistent with Q'); 116 | end 117 | 118 | % compute 119 | qs1 = sum(X1 .* (Q * X1), 1)'; 120 | qs2 = sum(X2 .* (Q * X2), 1); 121 | M = X1' * (-(Q + Q')) * X2; 122 | M = sladdrowcols(M, qs2, qs1); 123 | 124 | case 'cityblk' 125 | M = sldiff_pw(X1, X2, 'abssum'); 126 | 127 | case 'maxdiff' 128 | M = sldiff_pw(X1, X2, 'maxdiff'); 129 | 130 | case 'mindiff' 131 | M = sldiff_pw(X1, X2, 'mindiff'); 132 | 133 | case 'wsqdist' 134 | % parse parameters 135 | d = checkdim(X1, X2); 136 | w = varargin{1}; 137 | if ~isequal(size(w), [d, 1]) 138 | error('sltoolbox:sizmismatch', ... 139 | 'w is not a proper size column vector'); 140 | end 141 | 142 | % compute 143 | wX1 = slmulvec(X1, w, 1); 144 | qs1 = sum(wX1 .* X1, 1)'; 145 | clear wX1; 146 | wX2 = slmulvec(X2, w, 1); 147 | qs2 = sum(wX2 .* X2, 1); 148 | M = (-2) * X1' * wX2; 149 | clear wX2; 150 | M = sladdrowcols(M, qs2, qs1); 151 | 152 | otherwise 153 | error('sltoolbox:invalid_type', 'Unknown metric type %s', mtype); 154 | 155 | end 156 | 157 | %% Auxiliary function 158 | 159 | function d = checkdim(X1, X2) 160 | 161 | d = size(X1, 1); 162 | if d ~= size(X2, 1) 163 | error('sltoolbox:sizmismatch', ... 164 | 'X1 and X2 have different sample dimensions'); 165 | end 166 | 167 | 168 | 169 | 170 | 171 | --------------------------------------------------------------------------------