tag:blogger.com,1999:blog-81944150716954976332024-02-20T10:47:13.730-08:00Yili Zhao's computer vision blogwith image processing, computer vision and machine learningUnknownnoreply@blogger.comBlogger18125tag:blogger.com,1999:blog-8194415071695497633.post-66466179996002565222017-01-31T08:38:00.000-08:002017-05-07T09:06:17.010-07:00Test Image<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTZUk_4f_76j127PYLyBY0cER4TsFsVWaaICFVEXIrqWKMDookW6853md8e7SbdeVeeL4CfubjeZwBFUd9qowXM2jvSvTsQlVjYgy2EvPnPvc3mL-oNjHrlJ0sZfMrKyhNsKldJJtER48/s1600/epoch_0.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTZUk_4f_76j127PYLyBY0cER4TsFsVWaaICFVEXIrqWKMDookW6853md8e7SbdeVeeL4CfubjeZwBFUd9qowXM2jvSvTsQlVjYgy2EvPnPvc3mL-oNjHrlJ0sZfMrKyhNsKldJJtER48/s320/epoch_0.jpg" width="306" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeEZdXqnxBVDhJnj1Rc4LfvnsLzDXCePg2e-cNpoHIYSS40iWevKC9f9Tn4d6dZBKrSj9_XUBSyeihcnlZ-7_t7uEIsedNYqpVaLohT7nH7XQeVCZ58LBif_Kc5ANnBxk7h9xO02YfaJc/s1600/epoch_10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeEZdXqnxBVDhJnj1Rc4LfvnsLzDXCePg2e-cNpoHIYSS40iWevKC9f9Tn4d6dZBKrSj9_XUBSyeihcnlZ-7_t7uEIsedNYqpVaLohT7nH7XQeVCZ58LBif_Kc5ANnBxk7h9xO02YfaJc/s320/epoch_10.jpg" width="306" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKWK1ZfuGANg8JcAwYeAV8AgdVzah6UyHr4g1BtPVThwMyNO3dXtPXPF1V1cYmdymh3619W5BVA0Nug_9Q9M2ifaztvSmJe3yfDixGYOX2puOrDabBs_fh6EmDVZwDPD5Cg94w-aKvjSw/s1600/epoch_20.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKWK1ZfuGANg8JcAwYeAV8AgdVzah6UyHr4g1BtPVThwMyNO3dXtPXPF1V1cYmdymh3619W5BVA0Nug_9Q9M2ifaztvSmJe3yfDixGYOX2puOrDabBs_fh6EmDVZwDPD5Cg94w-aKvjSw/s320/epoch_20.jpg" width="306" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN8E67H-UGuYYKSo9EWJiSbt8LWlpITvNdDTeagJ_Zoc2eCZU3hhwvqwHBXRuYM18RqU3HNGbCr1QsOe4R7daHxVuTUU7mNZytc6Oz6cM6wGODaNrS9sZXYbEZuIos8LOv1Z-vRNIv3Es/s1600/epoch_80.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN8E67H-UGuYYKSo9EWJiSbt8LWlpITvNdDTeagJ_Zoc2eCZU3hhwvqwHBXRuYM18RqU3HNGbCr1QsOe4R7daHxVuTUU7mNZytc6Oz6cM6wGODaNrS9sZXYbEZuIos8LOv1Z-vRNIv3Es/s320/epoch_80.jpg" width="306" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8bQcumnySO0UeuBJpqGONcpvlJOVCakXVtO4_ILPafDf1TFpPaYnMsyCESLaXFjaJg_q2NNIi4D74Gol5pBCiCa-6JmZ5pTCfacwwdqArGkeuyAa6YjwC-vONJ0iwYvzN3H-s3AQxJgk/s1600/epoch_90.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8bQcumnySO0UeuBJpqGONcpvlJOVCakXVtO4_ILPafDf1TFpPaYnMsyCESLaXFjaJg_q2NNIi4D74Gol5pBCiCa-6JmZ5pTCfacwwdqArGkeuyAa6YjwC-vONJ0iwYvzN3H-s3AQxJgk/s320/epoch_90.jpg" width="306" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPOhTwzUKAyMkigdH0qyA5rGXUJcr03TbVVXb9LYlMQj1r5N9TRPBw3uUqsCp3Bus8qaiU_BvlEcW7vjQfmWo18Lxq8dIpt0xvSjWs7dyk1yRQpHxHDS7iPc9nIsn-drPK6Lvg_WzFWLw/s1600/accuracy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPOhTwzUKAyMkigdH0qyA5rGXUJcr03TbVVXb9LYlMQj1r5N9TRPBw3uUqsCp3Bus8qaiU_BvlEcW7vjQfmWo18Lxq8dIpt0xvSjWs7dyk1yRQpHxHDS7iPc9nIsn-drPK6Lvg_WzFWLw/s320/accuracy.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQfV5RT59bd860FLU4__AeJlVW5G_pgRhB7_OtoiPWqfYPkM7cuE-AaUFuWFlkvCFN9aA39A3ZIulkSIEumtHYbfqV4mrswjk4InzMtJk3Z_1cS9vqiul0hkqlsXPrDugQ4Tpqv4ai5cU/s1600/loss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQfV5RT59bd860FLU4__AeJlVW5G_pgRhB7_OtoiPWqfYPkM7cuE-AaUFuWFlkvCFN9aA39A3ZIulkSIEumtHYbfqV4mrswjk4InzMtJk3Z_1cS9vqiul0hkqlsXPrDugQ4Tpqv4ai5cU/s320/loss.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1cZwM_8uokpiO0_mKnYHmmdDBonzjoWUqygXKnCw51tja-Orb9XZy6l8CZwgs68jLwPTuYUWgazNKSqmzI2-zBUvVLNcsI4QaG_BjRX0G9N44xYTnMN8v3P6Cf_3rjJuyKU8Ip_3bGcs/s1600/i1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1cZwM_8uokpiO0_mKnYHmmdDBonzjoWUqygXKnCw51tja-Orb9XZy6l8CZwgs68jLwPTuYUWgazNKSqmzI2-zBUvVLNcsI4QaG_BjRX0G9N44xYTnMN8v3P6Cf_3rjJuyKU8Ip_3bGcs/s1600/i1.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio3d967s9VZYEE3LxqEhL-HJykKsrJBRHHtFwCk1rYM568_HGAu3vIPxdRPEHXagKIF27iCO08PZGEg8onDzLKqRBCJlkLsrupLyicADzV1IEu7fKg92gT-x4xYEhQCdyPZbzMBe5MuUc/s1600/i2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio3d967s9VZYEE3LxqEhL-HJykKsrJBRHHtFwCk1rYM568_HGAu3vIPxdRPEHXagKIF27iCO08PZGEg8onDzLKqRBCJlkLsrupLyicADzV1IEu7fKg92gT-x4xYEhQCdyPZbzMBe5MuUc/s1600/i2.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb3X8RjW3ecp5Tf3STAnSt42tcCw9sMfr131WJO_sVv7fC9x7fTFuvAbT-gJXVb2QJJOHUSoGx1gjWP12OdX5kwDSE2EtxaqJ-7vH7CoUkuwQZFXF0m-pbB3_n0MjeECyWqBhnRMFmywY/s1600/i3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb3X8RjW3ecp5Tf3STAnSt42tcCw9sMfr131WJO_sVv7fC9x7fTFuvAbT-gJXVb2QJJOHUSoGx1gjWP12OdX5kwDSE2EtxaqJ-7vH7CoUkuwQZFXF0m-pbB3_n0MjeECyWqBhnRMFmywY/s1600/i3.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-8194415071695497633.post-2380107492864920882016-11-06T03:47:00.003-08:002017-05-31T16:13:13.877-07:00Fine-tuning pre-trained ResNet model with different learning rateFine-tuning Facebook Torch implementation of ResNet model with different learning rate.<br />
<br />
<ul>
<li>with learning rate 0.1</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBGQn2egl6spITO5CZJHR5ZG8JFM2O9WAU3A7ncUtI_O4zq0tgFZSI3Z_meWMJnpspkkpFIdbNoJX6Ptc2W2E-JcMTEAe705T2CyqCgNbFWEkpoXq_tCksJMvXBA0KTnMAiKzNkkus2RU/s1600/resnet-18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="330" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBGQn2egl6spITO5CZJHR5ZG8JFM2O9WAU3A7ncUtI_O4zq0tgFZSI3Z_meWMJnpspkkpFIdbNoJX6Ptc2W2E-JcMTEAe705T2CyqCgNbFWEkpoXq_tCksJMvXBA0KTnMAiKzNkkus2RU/s400/resnet-18.png" width="400" /></a></div>
<div>
<ul>
<li>with learning rate 0.01</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIWhrgyLmnmQOA4PWpCdn-4rnJ-XUAc-wyxXy6LKT_sJvlZZ-1Fhkf1lZsmCJhqPvnLFnvR0vzdXJ9xy0mTpKpfskLmetqcMsm5SL3gjfcTYPZkH8fQ_v6z6yn2qVowoEEymgG7ZNjRgM/s1600/resnet-18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="315" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIWhrgyLmnmQOA4PWpCdn-4rnJ-XUAc-wyxXy6LKT_sJvlZZ-1Fhkf1lZsmCJhqPvnLFnvR0vzdXJ9xy0mTpKpfskLmetqcMsm5SL3gjfcTYPZkH8fQ_v6z6yn2qVowoEEymgG7ZNjRgM/s400/resnet-18.png" width="400" /></a></div>
<br />
<br />
<ul>
<li>with learning rate 0.001</li>
</ul>
</div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQaimiFdlyvTLzDuM4HTvd10shxr0bztVWqcBGqK99moWy_APo5WcanZaprjSreDUrhhWUpFCO-QLl9op8sH4HYdo9luSuFvVYg-dF2ktTV1tURfHLqTFLvvgwnKXO4rjt3tE60n-lhqM/s1600/resnet-18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="315" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQaimiFdlyvTLzDuM4HTvd10shxr0bztVWqcBGqK99moWy_APo5WcanZaprjSreDUrhhWUpFCO-QLl9op8sH4HYdo9luSuFvVYg-dF2ktTV1tURfHLqTFLvvgwnKXO4rjt3tE60n-lhqM/s400/resnet-18.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0b30E6WRn3EwDlf8I38Tel3x0SAEnK7eXQsbeKctmRMNw9iPyL96O8jtBdPoH29ADPC4G6MmlvciMZuuzcx8wACbrWz-KtjPBvgLz0IeSbCWss0kkVSBsLRD-mFHspkEjLUUgc7_OCQM/s1600/resnet18_hard_finetune.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="450" data-original-width="570" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0b30E6WRn3EwDlf8I38Tel3x0SAEnK7eXQsbeKctmRMNw9iPyL96O8jtBdPoH29ADPC4G6MmlvciMZuuzcx8wACbrWz-KtjPBvgLz0IeSbCWss0kkVSBsLRD-mFHspkEjLUUgc7_OCQM/s320/resnet18_hard_finetune.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrjOd9DzCqe9GtbGMoHapgtLJb8Rktf5_KxlrfzpiU-wwMZBTD_ZPOrfcQZV1xIF7vwKcPieWywurhYu6ARUmu8tP4Zj7OavcdsVv8laEBb59z2J9ioSIAt51WRZvvi-j_033dPwUCG_Y/s1600/resnet18_soft_finetune.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="450" data-original-width="570" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrjOd9DzCqe9GtbGMoHapgtLJb8Rktf5_KxlrfzpiU-wwMZBTD_ZPOrfcQZV1xIF7vwKcPieWywurhYu6ARUmu8tP4Zj7OavcdsVv8laEBb59z2J9ioSIAt51WRZvvi-j_033dPwUCG_Y/s320/resnet18_soft_finetune.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjfmmTCDx_dUu67mRPk6NM7DU5GUI1TRu4wirXVF-aeiRX1SPUzAO1u626gNapLr7Lk-qIqY1OptQVtnT9hlHo1_77Cl6iSgR5urrKmqMTHjq06MF2sZt57VyeF8aMAqEROBWviDJscBM/s1600/resnet18_soft_finetune_aug.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="450" data-original-width="570" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjfmmTCDx_dUu67mRPk6NM7DU5GUI1TRu4wirXVF-aeiRX1SPUzAO1u626gNapLr7Lk-qIqY1OptQVtnT9hlHo1_77Cl6iSgR5urrKmqMTHjq06MF2sZt57VyeF8aMAqEROBWviDJscBM/s320/resnet18_soft_finetune_aug.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8194415071695497633.post-47936498115926887032016-03-05T07:00:00.002-08:002016-03-05T07:01:20.332-08:00One note for building Caffe RC3 on Ubuntu 14.04When building Caffe RC3 on Ubuntu 14.04, you may run into this error:<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
CXX/LD -o .build_release/tools/extract_features.bin</blockquote>
<blockquote class="tr_bq">
CXX/LD -o .build_release/tools/device_query.bin</blockquote>
<blockquote class="tr_bq">
CXX/LD -o .build_release/tools/net_speed_benchmark.bin</blockquote>
<blockquote class="tr_bq">
CXX/LD -o .build_release/tools/test_net.bin</blockquote>
<blockquote class="tr_bq">
//usr/lib/x86_64-linux-gnu/libunwind.so.8:对‘lzma_index_buffer_decode@XZ_5.0’未定义的引用</blockquote>
<blockquote class="tr_bq">
//usr/lib/x86_64-linux-gnu/libunwind.so.8:对‘lzma_index_size@XZ_5.0’未定义的引用</blockquote>
<blockquote class="tr_bq">
//usr/lib/x86_64-linux-gnu/libunwind.so.8:对‘lzma_index_uncompressed_size@XZ_5.0’未定义的引用</blockquote>
<blockquote class="tr_bq">
//usr/lib/x86_64-linux-gnu/libunwind.so.8:对‘lzma_stream_footer_decode@XZ_5.0’未定义的引用</blockquote>
</blockquote>
解决方法是在~/.bashrc文件最后添加路径<br />
<blockquote class="tr_bq">
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH</blockquote>
Unknownnoreply@blogger.com10tag:blogger.com,1999:blog-8194415071695497633.post-28796458704243137342016-03-01T23:07:00.001-08:002016-03-02T00:48:24.656-08:00Some notes about building Caffe RC3 with Mac OS X 10.11.3, Anaconda, CUDA 7.5, cuDNN 4, Intel MKL and MATLAB R2015bEnvironment: Mac OS X 10.11.3, Xcode 7.2, Anaconda Python 2.7.11, CUDA 7.5, cuDNN 4, Intel parallel_studio_xe_2016.1.043 mkl, homebrew boost 1.6.0, homebrew OpenCV 2.4.12, MATLAB R2015b.<br />
<br />
<b>Note 1</b>: If your run into this problem afterwards "ld: warning: directory not found for option '-L/opt/intel/mkl/lib/intel64'", you can solve this problem as:<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
cd /opt/intel/mkl/lib/</blockquote>
<blockquote class="tr_bq">
sudo ln -s . /opt/intel/mkl/lib/intel64</blockquote>
</blockquote>
Suppose the environment is setup as above, first follow the official Caffe <a href="http://caffe.berkeleyvision.org/install_osx.html" target="_blank">OS X Installation guide</a> step by step.<br />
<br />
Then modify your .bash_profile file as:<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
export PATH=/usr/local/bin:/Applications/MATLAB_R2015b.app/bin:/Developer/NVIDIA/CUDA-7.5/bin:$PATH</blockquote>
<blockquote class="tr_bq">
export PATH="/Users/ylzhao/anaconda/bin:$PATH"</blockquote>
<blockquote class="tr_bq">
export DYLD_LIBRARY_PATH=/Developer/NVIDIA/CUDA-7.5/lib:$DYLD_LIBRARY_PATH</blockquote>
<blockquote class="tr_bq">
export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/cuda/lib::$HOME/anaconda/lib:/usr/local/lib:/usr/lib:$DYLD_FALLBACK_LIBRARY_PATH</blockquote>
<blockquote class="tr_bq">
export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH</blockquote>
</blockquote>
<b>Note 2</b>: If you run into this problem when invoking "make runtest"afterwards:<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
dyld: Library not loaded: @rpath/libcudart.7.0.dylib</blockquote>
<blockquote class="tr_bq">
Referenced from: .../caffe/.build_release/tools/caffe</blockquote>
<blockquote class="tr_bq">
Reason: image not found</blockquote>
<blockquote class="tr_bq">
make: *** [runtest] Trace/BPT trap: 5</blockquote>
</blockquote>
That is because on Mac OS X El Capitan, DYLD_FALLBACK_LIBRARY_PATH is cleared by the new System Integrity Protection feature of El Capitan. See the discussions <a href="https://github.com/BVLC/caffe/issues/2320" target="_blank">2320</a> and <a href="https://github.com/BVLC/caffe/issues/3628" target="_blank">3628</a>. One possible way to solve this problem is disabled System Integrity Protection as:<br />
<ol></ol>
<ol>
<li>Boot to Recovery OS by restarting your machine and holding down the Command and R keys at startup.</li>
<li>Launch Terminal from the Utilities menu.</li>
<li>Enter the following command: csrutil disable</li>
<li>restart your computer</li>
</ol>
Then follow the official Caffe <a href="http://caffe.berkeleyvision.org/installation.html#compilation" target="_blank">compilation with Make</a> guide, my 'Makefile.config' file is:<br />
<blockquote class="tr_bq">
## Refer to http://caffe.berkeleyvision.org/installation.html</blockquote>
<blockquote class="tr_bq">
# Contributions simplifying and improving our build system are welcome!</blockquote>
<blockquote class="tr_bq">
# cuDNN acceleration switch (uncomment to build with cuDNN).</blockquote>
<blockquote class="tr_bq">
<b>USE_CUDNN := 1</b></blockquote>
<blockquote class="tr_bq">
# CUDA directory contains bin/ and lib/ directories that we need.</blockquote>
<blockquote class="tr_bq">
<b>CUDA_DIR := /usr/local/cuda</b></blockquote>
<blockquote class="tr_bq">
# BLAS choice:<br />
# atlas for ATLAS (default)<br />
# mkl for MKL<br />
# open for OpenBlas<br />
<b>BLAS := mkl</b><br />
<br />
# This is required only if you will compile the matlab interface.<br />
# MATLAB directory should contain the mex binary in /bin.<br />
# MATLAB_DIR := /usr/local<br />
<b>MATLAB_DIR := /Applications/MATLAB_R2015b.app</b><br />
<br />
# NOTE: this is required only if you will compile the python interface.<br />
# We need to be able to find Python.h and numpy/arrayobject.h.<br />
<b># PYTHON_INCLUDE := /usr/include/python2.7 \</b><br />
<b><span class="Apple-tab-span" style="white-space: pre;"> </span># /usr/lib/python2.7/dist-packages/numpy/core/include</b><br />
# Anaconda Python distribution is quite popular. Include path:<br />
# Verify anaconda location, sometimes it's in root.<br />
<b>ANACONDA_HOME := $(HOME)/anaconda</b><br />
<b>PYTHON_INCLUDE := $(ANACONDA_HOME)/include \</b><br />
<b><span class="Apple-tab-span" style="white-space: pre;"> </span>$(ANACONDA_HOME)/include/python2.7 \</b><br />
<b><span class="Apple-tab-span" style="white-space: pre;"> </span>$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \</b><br />
<br />
# We need to be able to find libpythonX.X.so or .dylib.<br />
# PYTHON_LIB := /usr/lib<br />
<b>PYTHON_LIB := $(ANACONDA_HOME)/lib</b><br />
<br />
# Uncomment to support layers written in Python (will link against Python libs)<br />
# WITH_PYTHON_LAYER := 1<br />
<br />
# Whatever else you find you need goes here.<br />
<b>INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include</b><br />
<b>LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib</b></blockquote>
My modification parts are labelled as bold.<br />
<br />
Then you can start the compilation in Terminal:<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
make all</blockquote>
<blockquote class="tr_bq">
make test</blockquote>
<blockquote class="tr_bq">
make runtest</blockquote>
</blockquote>
<b>Note 3</b>: If your "LIBRARY_DIRS" like these:<br />
<blockquote class="tr_bq">
LIBRARY_DIRS := $(PYTHON_LIB) $(MATLAB_DIR)/bin/maci64 usr/local/lib /usr/lib</blockquote>
you may run into this protobuf problem afterwards:<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
Undefined symbols for architecture x86_64:</blockquote>
<blockquote class="tr_bq">
"google::protobuf::io::CodedOutputStream::WriteStringWithSizeToArray(std::__1::basic_string<char char="" std::__1::char_traits="">, std::__1::allocator<char> > const&, unsigned char*)", referenced from:</char></char></blockquote>
<blockquote class="tr_bq">
caffe::Datum::SerializeWithCachedSizesToArray(unsigned char*) const in caffe.pb.o</blockquote>
</blockquote>
<b>This is because Caffe tries to link with MATLAB's protobuf instead of homebrew protobuf, and this will also happen with the boost library and CUDA.</b> (More detail: Caffe was seeing Matlab's internal libraries earlier in the library path than the local homebrew libraries in /usr/local/lib. Caffe might be trying to link Matlab's version of the boost library, which, needless to say, isn't compatible with Caffe.) See discussion <a href="https://github.com/BVLC/caffe/issues/915" target="_blank">915</a>.<br />
<br />
So before compile the Caffe Matlab interface, your "LIBRARY_DIRS" should like:<br />
<blockquote class="tr_bq">
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib</blockquote>
After the commands "make all", "make test", "make runtest" successfully, you should modify the "LIBRARY_DIRS" like:<br />
<blockquote class="tr_bq">
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib $(MATLAB_DIR)/bin/maci64 /usr/lib</blockquote>
<b>Thus we can avoid the conflict between homebrew's protobuf/boost/cuda libraries and MATLAB's protobuf/boost/cuda libraries.</b><br />
<br />
Then you can build the Caffe Matlab interface as:<br />
<blockquote class="tr_bq">
make matcaffe</blockquote>
<blockquote class="tr_bq">
make mattest </blockquote>
<b>Note 4</b>: If you forget to add "(MATLAB_DIR)/bin/maci64" in "LIBRARY_DIRS" line, you may run into this problem:<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
Undefined symbols for architecture x86_64:</blockquote>
<blockquote class="tr_bq">
"_mxArrayToString", referenced from:</blockquote>
<blockquote class="tr_bq">
get_solver(int, mxArray_tag**, int, mxArray_tag const**) in caffe_.o</blockquote>
<blockquote class="tr_bq">
solver_restore(int, mxArray_tag**, int, mxArray_tag const**) in caffe_.o</blockquote>
<blockquote class="tr_bq">
get_net(int, mxArray_tag**, int, mxArray_tag const**) in caffe_.o</blockquote>
<blockquote class="tr_bq">
net_copy_from(int, mxArray_tag**, int, mxArray_tag const**) in caffe_.o</blockquote>
<blockquote class="tr_bq">
net_save(int, mxArray_tag**, int, mxArray_tag const**) in caffe_.o</blockquote>
<blockquote class="tr_bq">
read_mean(int, mxArray_tag**, int, mxArray_tag const**) in caffe_.o</blockquote>
<blockquote class="tr_bq">
write_mean(int, mxArray_tag**, int, mxArray_tag const**) in caffe_.o</blockquote>
<blockquote class="tr_bq">
...</blockquote>
</blockquote>
That why we need to change the LIBRARY_DIRS := ... line in your Makefile.config so that the /usr/local/lib directory is before your Matlab library directory as above described.<br />
<br />
<b>Note 5</b>: when you compile Caffe Python interface like:<br />
<blockquote class="tr_bq">
make pycaffe</blockquote>
<blockquote class="tr_bq">
make pytest </blockquote>
you may run into this problem:<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
======================================================================</blockquote>
<blockquote class="tr_bq">
ERROR: test_forward_backward (test_net.TestNet)</blockquote>
<blockquote class="tr_bq">
----------------------------------------------------------------------</blockquote>
<blockquote class="tr_bq">
Traceback (most recent call last):</blockquote>
<blockquote class="tr_bq">
File "/Users/ylzhao/Project/caffe/python/caffe/test/test_net.py", line 45, in setUp</blockquote>
<blockquote class="tr_bq">
size=self.net.blobs['label'].data.shape)</blockquote>
<blockquote class="tr_bq">
File "caffe/pycaffe.py", line 28, in _Net_blobs</blockquote>
<blockquote class="tr_bq">
return OrderedDict(zip(self._blob_names, self._blobs))</blockquote>
<blockquote class="tr_bq">
TypeError: No to_python (by-value) converter found for C++ type: boost::shared_ptr<caffe::blob float=""> ></caffe::blob></blockquote>
</blockquote>
It seems that this problem is related to Boost 1.60, not 1.59. You can find the discussion at <a href="https://github.com/BVLC/caffe/issues/3494" target="_blank">3494</a> and <a href="https://github.com/BVLC/caffe/pull/3575" target="_blank">3575</a>, and the fix is at <a href="https://github.com/BVLC/caffe/pull/3575" target="_blank">3575</a>. The commit you want to apply is at <a href="https://github.com/BVLC/caffe/pull/3575/files" target="_blank">3575 commit</a>.<br />
<br />
Unfortunately, this commit has not been merged into Caffe master branch, so you should do the merge by hand.<br />
<br />
That's all, have fun with Caffe building!Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-8194415071695497633.post-55652369165241644902015-04-21T03:42:00.003-07:002015-04-21T18:26:38.970-07:00Mac OS X 10.10安装深度学习框架Caffe教程<h2 style="text-align: center;">
Mac OS X 10.10安装深度学习框架Caffe教程</h2>
<div style="text-align: center;">
Author: Hoondy.com</div>
<div style="text-align: center;">
翻译和修订:赵毅力(panovr at gmail dot com)</div>
<br />
这份教程是关于在Mac OS X 10.10上安装深度学习框架Caffe的详细指南(成功测试的操作系统是Mac OS X10.10.3,2.3 GHz的英特尔酷睿i7 CPU,NVIDIA的GeForce GT650M显卡)<br />
<br />
在过去的几天,我一直尝试着在我的MacBook Pro上面安装Caffe框架。Caffe是由Berkeley视觉小组开发的深度学习框架,你可以从Caffe的主页上http://caffe.berkekeyvision.org/获取更多关于它的介绍。如果你正在阅读这篇教程,你可能已经注意到了要在Mac OS X上面安装Caffe框架,你必须安装正确的依赖,并从不同的地方下载几个第三方库和工具包。Caffe网站上关于Mac OS X的安装文档有点过时,并不十分完整,有时还有点令人费解。所以,我决定分享我的成功故事,并为简单起见,我把它做成一个一步一步的安装教程,用于帮助和指导其他人如何在Mac OS X上安装Caffe框架。为了获得最大的计算性能,我将使用我的MacBook Pro上面的NVIDIA GPU并链接NVIDA的cuDNN GPU库进行加速。<br />
<br />
<a name='more'></a><br />
详细安装步骤:<br />
<ul>
<li><b>Homebrew</b></li>
</ul>
<ol>
<li>根据http://brew.sh/上面的说明安装Homebrew包管理</li>
</ol>
<ul>
<li><b>Anaconda Python</b></li>
</ul>
<ol>
<li>从https://store.continuum.io/cshop/anaconda/下载和安装Anaconda Python包(其中包括Caffe框架用到的hdf5)</li>
<li>export PATH=~/anaconda/bin:$PATH</li>
</ol>
<ul>
<li><b>CUDA</b></li>
</ul>
<ol>
<li>从https://developer.nvidia.com/cuda-downloads下载并安装CUDA 7.0</li>
<li>从http://www.nvidia.com/object/mac-driver-archive.html下载并安装最新的CUDA 独立驱动</li>
<li>export PATH=/Developer/NVIDIA/CUDA-7.0/bin:$PATH</li>
<li>export DYLD_LIBRARY_PATH=/Developer/NVIDIA/CUDA-7.0/lib:$DYLD_LIBRARY_PATH</li>
</ol>
<ul>
<li><b>BLAS - Intel MKL</b></li>
</ul>
<ol>
<li>由于Mac OS X操作系统自带的BLAS库存在一些不稳定的问题,因此我选择安装Intel MKL库。如果你是在校大学生,可以使用学校邮箱从https://software.intel.com/en-us/qualify-for-free-software/student页面申请Intel Parallel XE 2015安装包(后面不要忘记在Makefile.config中设置BLAS:=MKL)</li>
<li>确保在安装Intel Parallel XE时选择每一个组件(因为缺省情况下不会安装MKL组件)</li>
<li>cd /opt/intel/mkl/lib/</li>
<li>sudo ln -s . /opt/intel/mkl/lib/intel64(因为在编译Caffe时Caffe会从MKL的intel64目录中去搜索mkl的库,但是在安装MKL后,MKL的lib目录下并没有intel64这个目录,所以需要建立一个intel64目录到lib目录的软链接)</li>
</ol>
<div>
<ul>
<li><b>cuDNN</b></li>
</ul>
<ol>
<li>从https://developer.nvidia.com/cudnn页面下载并安装cuDNN库(别忘了在Makefile.config中取消USE_CUDNN := 1的注释)</li>
<li>tar -xzvf cudnn-6.5-osx-v2.tgz</li>
<li>cd cudnn-6.5-osx-v2</li>
<li>sudo cp lib* /usr/local/cuda/lib</li>
<li>sudo cp cudnn.h /usr/local/cuda/include/</li>
</ol>
<ul>
<li><b>通过Homebrew安装依赖项</b></li>
</ul>
<ol>
<li>brew edit opencv</li>
<li>将下面两行</li>
<li>args << "-DPYTHON#{py_ver}_LIBRARY=#{py_lib}/libpython2.7.#{dylib}"</li>
<li>args << "-DPYTHON#{py_ver}_INCLUDE_DIR=#{py_prefix}/include/python2.7"</li>
<li>替换为</li>
<li>args << "-DPYTHON_LIBRARY=#{py_prefix}/lib/libpython2.7.dylib"</li>
<li>args << "-DPYTHON_INCLUDE_DIR=#{py_prefix}/include/python2.7"</li>
<li>brew install --fresh -vd snappy leveldb gflags glog szip lmdb homebrew/science/opencv</li>
<li>brew install --build-from-source --with-python --fresh -vd protobuf</li>
<li>brew install --build-from-source --fresh -vd boost boost-python</li>
</ol>
<ul>
<li><b>从Github上面克隆Caffe的代码</b></li>
</ul>
<ol>
<li>git clone https://github.com/BVLC/caffe.git</li>
<li>cd caffe</li>
<li>cp Makefile.config.example Makefile.config</li>
</ol>
<ul>
<li><b>配置Makefile.config</b></li>
</ul>
<ol>
</ol>
<div>
<ol>
<li>设置BLAS := mkl</li>
<li>取消USE_CUDNN := 1注释</li>
<li>检查并设置Python路径</li>
</ol>
<ul>
<li><b>设置环境变量</b></li>
</ul>
<ol>
<li>export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/cuda/lib:$HOME/anaconda/lib:/usr/local/lib:/usr/lib:/opt/intel/composer_xe_2015.2.132/compiler/lib:/opt/intel/composer_xe_2015.2.132/mkl/lib</li>
</ol>
<ul>
<li><b>编译Caffe</b></li>
</ul>
<ol>
<li>make clean</li>
<li>make all</li>
<li>make test</li>
<li>make runtest</li>
<li>make pycaffe</li>
<li>make distribute</li>
</ol>
原文地址:http://hoondy.com/2015/04/03/how-to-install-caffe-on-mac-os-x-10-10-for-dummies-like-me/<br />
<br />
未经授权,请勿转载,谢谢!<br />
<ol>
</ol>
</div>
</div>
Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-8194415071695497633.post-33643920808588108842015-04-19T17:11:00.003-07:002015-04-21T18:49:48.799-07:00从特征描述符到深度学习:计算机视觉发展20年<br />
<h2>
<div style="text-align: center;">
从特征描述符到深度学习:计算机视觉研究20年</div>
</h2>
<div style="text-align: center;">
Author: Tomasz Malisiewicz</div>
<div style="text-align: center;">
翻译:赵毅力(panovr at gmail dot com)</div>
<br />
<br />
我们都知道在过去两年(2012-2014年)深度卷积神经网络在目标检测与识别的基准测试中有过辉煌的成绩,所以你可能会问:在此之前的物体识别技术是什么样子?早期识别系统的设计和现代以多层卷积为基础的框架之间的关系是什么?<br />
<br />
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">让我们先来回顾一下过去</span><span lang="EN-US">20</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年里计算机视觉研究中的一些重要理论和方法。</span><span lang="EN-US"><o:p></o:p></span><br />
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"></span><br />
<a name='more'></a></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNormal">
<b><span lang="EN-US">1995</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年至</span><span lang="EN-US">2000</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年:局部特征描述符的崛起</span></b><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">1999</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年当英属哥伦比亚大学教授大卫·罗伊(David Lowe)提出</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">(尺度不变特征变换的缩写,</span><span lang="EN-US">Scale
Invariant Feature Transform</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">)算法后,计算机视觉研究的世界几乎在一夜之间发生了改变。</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">是一种对图像块进行比较和匹配的鲁邦解决方案。在大卫·罗伊没有提出</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">算法之前,人们通常只使用</span><span lang="EN-US">SSD</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">(平方距离的总和)作为图像块比较的距离度量标准,对此并没有太多的考虑。</span><span lang="EN-US"><o:p></o:p></span><br />
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgk8gjrQ8xueZPIldQL7e5MXh7OykR6IUfEqFWVgV_db6oCSBUonQh1n-OaBgFWxb2tWHteyQ6QAy3a-ayMaZ14h8KjbrqQ5ZbVWhycocmipVf0K0aJAKBtdG0e0pWEnYOxmy_O2F-xyCg/s1600/sift_pic.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgk8gjrQ8xueZPIldQL7e5MXh7OykR6IUfEqFWVgV_db6oCSBUonQh1n-OaBgFWxb2tWHteyQ6QAy3a-ayMaZ14h8KjbrqQ5ZbVWhycocmipVf0K0aJAKBtdG0e0pWEnYOxmy_O2F-xyCg/s1600/sift_pic.png" height="149" width="320" /></a></div>
<div style="text-align: center;">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"></span></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">描述符计算方法:梯度方向和规范化技巧</span><span lang="EN-US"><o:p></o:p></span></div>
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span>
<br />
<div class="MsoNormal">
<span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">又被称为局部特征描述符</span><span lang="EN-US"> - </span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">这是一个雄心勃勃的人在图像方面超过十年研究的成果之一。</span> <span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">大卫·罗伊和英属哥伦比亚大学为</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">算法申请了专利,并且大卫·罗伊还在自己的主页上公布了</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">实现的一条经过编译后的二进制程序,供研究人员在他们的工作中使用。</span><span lang="EN-US"> SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">允许一幅彩色图像中的点由一个低维向量进行鲁棒表示。当你通过旋转照相机对同一物理拍摄不同角度的多幅图像,这些对应点的</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">描述符在其</span><span lang="EN-US">128</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">维空间中非常相似。初看之下在进行图像匹配之前需要进行如</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">这么复杂的处理似乎有点愚蠢,但是请相信我:那是因为你,作为一个人类,可以用肉眼观看两个图像块并迅速“理解”它们属于同一个物体上的相同点,而这对于计算机来说是不同的。</span><span lang="EN-US"> SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">对计算机视觉(包括立体视觉、从运动结恢复构等)的几何方面的研究都有着重要的影响,后来还成为用于对象识别的流行的词袋模型的基础。</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">看到</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">这样的技术在图像块匹配上大大超过像平方距离求和(</span><span lang="EN-US">SSD</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">)方法在每一个有抱负的视觉科学家的职业生涯的重要一步。</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">不只是滤波器响应的一个载体,其中的直方图分级和规范化的步骤也是非常重要的。值得指出的是,虽然最初</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">(在其论文中公布的形式)主要作为兴趣点检测器的输出,但是后来发现兴趣点检测步骤在对象分类问题中并不重要。对于分类问题,研究人员对图像应用的是</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">描述符的向量量化。</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">我还要提到的是其它的描述符方法,如旋转图像方法提出的时间早于</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">,但由于旋转图像方法只适用于</span><span lang="EN-US">2.5</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">维的数据,所以这一方法的影响力没有</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">方法那样大。</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNormal">
<b><span lang="EN-US">2000</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年至</span><span lang="EN-US">2005</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年:现代数据集(又名强化视觉科学)</span></b><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">单应估计、地平面估计、机器视觉,从运动恢复结构以及其它计算机视觉几何问题极大地受益于鲁邦的图像特征,如</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">。但对</span><span lang="EN-US">20</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">世纪</span><span lang="EN-US">90</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年代末来说,很明显,互联网是下一件大事。在线图像,还有跟多正在创建的数据集。结构恢复(即几何视觉)问题不再是这一代研究人员主要感兴趣的主题。这是一个大数据集的时代,以此同时加州理工学院的</span><span lang="EN-US">Caltech-101</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">数据集逐渐得到普及,分类研究在不断上升。研究人员不再仅仅是对自己内部的数据集评估他们自己的算法,现在大家都有一个更加客观的标准方法来进行方法之间的比较。尽管用</span><span lang="EN-US">2015</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年的标准来看</span><span lang="EN-US">Caltech-101</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">数据集被认为是过时的,但是可以把它认为是更现代的</span><span lang="EN-US">ImageNet</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">数据集的鼻祖。</span><span lang="EN-US"><o:p></o:p></span></div>
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbEiwvDahYG4ubbM8h_sLpYXYU3YTb2BJyaNiKQpZDh8Xl2I92hGiMqp4A7nO50SrB-Av2Z7qN90DtlGat9_u5wLabDc-Zkgt_JfGt29nEITPBkKsZKdBOzz4IGvmqES-eAIeCzEG9nM3o/s1600/caltech101.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbEiwvDahYG4ubbM8h_sLpYXYU3YTb2BJyaNiKQpZDh8Xl2I92hGiMqp4A7nO50SrB-Av2Z7qN90DtlGat9_u5wLabDc-Zkgt_JfGt29nEITPBkKsZKdBOzz4IGvmqES-eAIeCzEG9nM3o/s1600/caltech101.jpg" height="270" width="320" /></a></div>
<br />
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">基于类别的数据集:著名的</span><span lang="EN-US">Caltech-101</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">图像数据集</span><span lang="EN-US"><o:p></o:p></span></div>
<div style="text-align: center;">
</div>
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"></span>
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span>
<br />
<div class="MsoNormal">
<b><span lang="EN-US">2000</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年至</span><span lang="EN-US">2005</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年:箱、网格和视觉单词(即面向描述符的机器学习)</span></b><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">研究人员逐步从视觉几何恢复问题转向更为雄心勃勃的目标识别问题,涌现了词袋(</span><span lang="EN-US">BoW</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">,</span><span lang="EN-US">Bag of Words</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">)、空间金字塔(</span><span lang="EN-US">Spatial Pyramids</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">)、矢量量化(</span><span lang="EN-US">Vector Quantization</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">),以及在计算机视觉的各个阶段使用的各种机器学习工具。原生的</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">对于宽基线立体匹配来说很棒,但它不是强大到足以从相同的视觉对象类别提供两种不同的对象实例之间的匹配。我们需要的是一种对以下思路进行编码的方法:相对于彼此对象部件可以变形,一些图像块可能会确实。总体而言,需要更多基于统计的方法来对物体进行表征。</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">由</span><span lang="EN-US">Josef Sivic</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">和</span><span lang="EN-US">Andrew Zisserman</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">于</span><span lang="EN-US">2003</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年提出视觉单词(</span><span lang="EN-US">Visual Words</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">),这是一种从大规模的文本匹配中借鉴的方法。</span><span lang="EN-US">Josef</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">和</span><span lang="EN-US">Andrew</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">把它们应用到视频内容中。视觉字典可以通过执行对</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">描述符进行无监督学习(例如通过</span><span lang="EN-US">K-</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">均值聚类),将</span><span lang="EN-US">128</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">维的</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">描述映射为整数获得。可以使用这些视觉单词的直方图来表示图像,这种表示是一种相当可靠的方。至今词袋模型的变种仍被大量使用在视觉研究中。</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhFw2cKeq5avR5Gh0g6-3XL63RbiRvux9IzQfcKpJfGlmmOe2cgQsmNrdkJs1QfU6l5zr8Yi7dW-T-JwD8KKyz6LkLUqDZVBVxWc7a_RAkCQhDYbd-TbPdNOJcLmqNaS9NHHbeY97WX7Kr/s1600/lola.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhFw2cKeq5avR5Gh0g6-3XL63RbiRvux9IzQfcKpJfGlmmOe2cgQsmNrdkJs1QfU6l5zr8Yi7dW-T-JwD8KKyz6LkLUqDZVBVxWc7a_RAkCQhDYbd-TbPdNOJcLmqNaS9NHHbeY97WX7Kr/s1600/lola.png" height="121" width="320" /></a></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">基于内容的视频匹配与检索</span><span lang="EN-US"><o:p></o:p></span></div>
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"></span>
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span>
<br />
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">另一个关于对象识别的想法是使用某种形式的分级结构进行对象匹配的方法。</span><span lang="EN-US">Caltech-101</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">图像数据主要包含对象,所以这些网格最初被放置在整个图像,后来他们被放置在对象包围盒上。</span><span lang="EN-US">Kristen Grauman</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">发表的著名的金字塔匹配核(</span><span lang="EN-US">Pyramid Match Kernel</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">)论文介绍了一个用于在图像匹配过程中整合空间信息的强大的和分层的方法。下图是其中的一幅示意图:</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMikVysZuTe-rF8eHq8B2gB-YCKtce1MyBjxInAZamWegIXjwL4aTRpUEzWzqcz_tvoNEkL4x9GT30nPKZUosmN93LRbWjqXaDWnCY7FaAcTPPFgzQy8DPCztFO-sQ7FrIWA6n4ltWBZ09/s1600/pmk.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMikVysZuTe-rF8eHq8B2gB-YCKtce1MyBjxInAZamWegIXjwL4aTRpUEzWzqcz_tvoNEkL4x9GT30nPKZUosmN93LRbWjqXaDWnCY7FaAcTPPFgzQy8DPCztFO-sQ7FrIWA6n4ltWBZ09/s1600/pmk.jpg" height="213" width="320" /></a></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">格劳曼提出的基于金字塔匹配核的改进图像匹配</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"></span><br />
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">在那个时候研究人员还不清楚是否应该专注于更好的特征、更好的比较标准或更好的学习方法。在</span><span lang="EN-US">2000</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年中期对于年轻的博士生是否应该花更多的时间来设计新的描述符或新的支持向量机核函数也并不是十分清楚。</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNormal">
<b><span lang="EN-US">2005</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年至</span><span lang="EN-US">2010</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年:对象模板(即方向梯度直方图和</span><span lang="EN-US">DPM</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">)</span></b><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">在</span><span lang="EN-US">2005</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">,一个名叫</span><span lang="EN-US">Navneet Dalal</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">的年轻研究人员向世界展示了用他自己设计的</span><span lang="EN-US">HOG</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">特征描述符能够完成的功能。</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGkkc1L_VP9iZoAokq8kLYYUomPmCXQhzuY3OssarDvQj3oXhy7tHWWmbgg1gZb1E5LCvn45GK4dSmXRFFQZ-tymydkYiduJrrPjByaFKnFizIlWLBq23l13pEMCLDrlBhzcRxeBgsamMS/s1600/hog.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGkkc1L_VP9iZoAokq8kLYYUomPmCXQhzuY3OssarDvQj3oXhy7tHWWmbgg1gZb1E5LCvn45GK4dSmXRFFQZ-tymydkYiduJrrPjByaFKnFizIlWLBq23l13pEMCLDrlBhzcRxeBgsamMS/s1600/hog.jpg" height="90" width="320" /></a></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<span lang="EN-US">Navneet
Dalal的HOG描述符<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">HOG</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">描述符是当每个人通过使用多层学习对词袋应用运用空间分级,使得他们的系统过于复杂的时候出现的。</span><span lang="EN-US">Dalal</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">巧妙设计的描述符其实本质上是比较简单的。</span><span lang="EN-US">HOG</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">的论文是由</span><span lang="EN-US">Navneet</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">和他的博士生导师</span><span lang="EN-US">Bill Triggs</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">在</span><span lang="EN-US">2005</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年发表的。</span><span lang="EN-US">Bill Triggs</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">因为早期在几何视觉方面的研究而出名,</span><span lang="EN-US">Dalal</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">博士则是由于他新发现的描述符而出名。</span><span lang="EN-US">HOG</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">描述符最初应用于行人检测问题,之所以</span><span lang="EN-US">HOG</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">描述如此受欢迎的原因是用在</span><span lang="EN-US">HOG</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">上层使用机器学习工具非常简单和容易理解,这种机器学习工具正是线性支持向量机。</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">我要指出的是在</span><span lang="EN-US">2008</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年在一篇关于对象检测的后续文章中介绍了一种技术叫做以变形部件为基础的模型(做计算机视觉研究的人一般把这个方法称为</span><span lang="EN-US">DPM</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">),有助于加强</span><span lang="EN-US">HOG</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">技术的普及和功能。在</span><span lang="EN-US">2008</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年我也开始使用</span><span lang="EN-US">HOG</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">方法。作为一个研究生的最初几年(</span><span lang="EN-US">2005-2008</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年)我一直使用自己设计的滤波器组,并且也积累了一些特征描述符的经验。最后,我意识到,我自己设计的特征描述符方法只是“好”,因为我是把它们应用到的图像分割算法的输出,因此速度都非常缓慢。当我开始使用</span><span lang="EN-US">HOG</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">方法时,没有多久我就意识到我不会再走回头路去使用那些自己定制的、速度慢的特征描述符了。当我开始使用一个多尺度金字塔,再搭配上如</span><span lang="EN-US">Ramanan</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">和</span><span lang="EN-US">Felzenszwalb</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">改进的</span><span lang="EN-US">HOG</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">方法,我就能够以</span><span lang="EN-US">100</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">倍的速度处理图像。</span><span lang="EN-US"><o:p></o:p></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgprslDlkVNHVEufA4IXgCwef7t1ZSq2KLqNE6NkjIIv0s3xnuILifaV43e2dQP-RY-h8HGZqU5oYBAT3fM9YbJSVgVVtrWTO0MN_ON5UqyA5r9m43blcDT8QOApNnli-7pIhGntGEdcDWd/s1600/dpm.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgprslDlkVNHVEufA4IXgCwef7t1ZSq2KLqNE6NkjIIv0s3xnuILifaV43e2dQP-RY-h8HGZqU5oYBAT3fM9YbJSVgVVtrWTO0MN_ON5UqyA5r9m43blcDT8QOApNnli-7pIhGntGEdcDWd/s1600/dpm.jpg" height="244" width="320" /></a></div>
<div style="text-align: center;">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"></span></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">著名的可变性部件模型</span><span lang="EN-US"><o:p></o:p></span></div>
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"></span><br />
<div class="MsoNormal">
<span lang="EN-US">DPM</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">为什么变得如此受欢迎的原因之一是它是</span><span lang="EN-US">PASCAL
VOC</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">挑战赛的卫冕冠军,以及</span><span lang="EN-US">Ramanan</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">和</span><span lang="EN-US">Felzenszwalb</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">公布了优秀的</span><span lang="EN-US">MATLAB/ C++</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">实现代码。我知道很多研究者从来没有完全承认释放如此巨大的代码真对刚入学的博士生的意义,但在某些时候,就好像每个人都在修改</span><span lang="EN-US">DPM</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">的代码库以便为自己尝试</span><span lang="EN-US">CVPR</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">的比赛。大部分的新生都缺乏坚实的软件工程技能,给予他们</span><span lang="EN-US">DPM</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">的代码来获得一些一些实验和运行结果是一个正确的方式。就我个人而言,我从来没有去深入研究以</span><span lang="EN-US">DPM</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">为基础的方法,但我确实有几次对</span><span lang="EN-US">DPM</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">代码库进行了拆分。</span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNormal">
<b><span lang="EN-US">2010</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">至</span><span lang="EN-US">2015</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年:大数据,卷积神经网络和深度学习</span></b><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">到</span><span lang="EN-US">2008</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年的某个时候,科学家们越来越适应大型数据集的处理。这是不是“云计算”和“大数据”的兴起,这是数据科学家的兴起。早晨设计一个公式,午饭期间开发一个原型,在晚上部署大规模的计算,在日落的时候并整合结果到生产系统。我花了两个夏天在谷歌的做实习研究,我看到了很多以视觉黑客成名的研究人员和工程师。但在谷歌他们不只是写“学院派”的论文,而是实实在地进行大数据的处理。将来的视觉研究者将会非常熟悉大型数据集的处理。不在需要一个人有数学学位的博士、一位软件工程师、一位经理和一个测试人员。很多人都可以完成所有这些工作。</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNormal">
<b><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">深度学习:</span><span lang="EN-US">1980</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年至</span><span lang="EN-US">2015</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年</span></b><span lang="EN-US"><o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<span lang="EN-US">2014</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年绝对是深度学习丰收的一年。关于深度学习有趣的是它是一种非常古老的技术。我们现在看到的深度学习本质上是神经网络</span><span lang="EN-US">2.0</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">的版本。但这一次,我们的计算机和研究以及开发的速度要比原来快好几个数量级。好笑的是现在倡导深度学习的人和</span><span lang="EN-US">90</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">年代初倡导这种技术的同样的一批研究人员。我猜他们真的笑到了最后,因为最终这些神经网络大师成为研究深度学习追随的人。</span><span lang="EN-US">Geoffrey Hinton</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">,</span><span lang="EN-US">Yann LeCun</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">,</span><span lang="EN-US">Andrew Ng</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">和</span><span lang="EN-US">Yeshua Bengio</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">是深度学习的四位巨人。现在,几乎每个做机器学习的人都在研究深度学习。</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"></span><br />
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">但随着谷歌、</span><span lang="EN-US">Facebook</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">、百度以及众多小创业公司乘着深学习浪潮,谁将会上升到顶部成为人工智能的主人?</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.cs.nyu.edu/~yann/research/deep/images/ff1.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.cs.nyu.edu/~yann/research/deep/images/ff1.gif" height="320" width="301" /></a></div>
<div class="MsoNormal" style="text-align: center;">
<span style="text-align: start;">Yann LeCun深度学习示例</span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><b>那么今天的深层学习系统和昔日的识别系统有什么相似性?</b></span><span lang="EN-US"><o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">和以往的基于特征的系统相比,多尺度卷积神经网络并没有太大的不同。在深度学习系统的第一级的神经元学习利用梯度的方式是类似于手工设计的特征的,例如</span><span lang="EN-US">SIFT</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">和</span><span lang="EN-US">HOG</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">。在过去使用滑动窗口发现对象,但现在它更容易和更感性的认为这种操作可以作为图像与滤波器进行过滤。有些最佳监测系统习惯使用多元线性支持向量机,结合一些特设的方式,现在我们基本上更多在使用这种线性决策边界。深度学习系统可以被认为是应用线性算子的多阶段过程,并通过非线性激活函数放到一个管道中进行处理。和以核函数为基础的学习系统相比,深度学习更类似于一种将多个线性支持向量机进行巧妙组合的系统。</span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"></span><br />
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">现在不再手工设计特征描述。然而,深度学习系统的架构仍然需要手工设计</span><span lang="EN-US"> - </span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">看起来专家们最擅长此任务。在古典和现代的识别系统内部的操作仍然是大同小异。除了聪明以外,现在你还需要一个大型计算机。关于这方面的研究还有很大的提升空间,所以我鼓励大家在自己的研究中要更具创新性。</span><span lang="EN-US"><o:p></o:p></span><br />
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span>
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"></span><br />
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">作为一位明智的研究人员,了解研究领域以前的历史可以使我们可以更好地规划我们的未来。我希望你喜欢这个简短的计算机视觉历史介绍,下一次在你寻找研究灵感的时候,不要害怕回顾过去的研究历史。</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: 宋体;">英文原文地址:</span><span style="text-align: center;"><a href="http://quantombone.blogspot.tw/2015/01/from-feature-descriptors-to-deep.html" target="_blank">From feature descriptors to deep learning: 20 years of computer vision</a></span><br />
<br />
未经授权,请勿转载,谢谢!</div>
</div>
</div>
</div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8194415071695497633.post-76901925207921038842013-10-10T22:28:00.005-07:002014-01-03T05:23:51.758-08:00BLAS & LAPACK for Windows<a href="http://www.netlib.org/blas/" target="_blank">BLAS</a> and <a href="http://www.netlib.org/lapack/%E2%80%8E" target="_blank">LAPACK</a> from <a href="http://www.netlib.org/" target="_blank">Netlib</a> are the de facto libraries for linear algebra. For those interested in using BLAS and LAPACK on Windows platform, I have compiled them in 32bit and 64bit libraries by Intel® Fortran Compiler XE 13.1 and Visual Studio 2010.<br />
<div>
<a name='more'></a></div>
<div>
<br />
I use LAPACK version 3.2.1, and the original patched makefiles can be downloaded from <a href="http://www.fi.muni.cz/~xsvobod2/misc/lapack/" target="_blank">David Svoboda’s website</a>. The source codes of LAPACK and BLAS packages are available from Netlib.</div>
<div>
<br /></div>
<div>
The 32 bit BLAS and LAPACK libraries downloading:</div>
<div>
o <a href="http://cs2.swfu.edu.cn/~zyl/lapack/LAPACK_Debug_x86.zip" target="_blank">debug version</a></div>
<div>
o <a href="http://cs2.swfu.edu.cn/~zyl/lapack/LAPACK_Release_x86.zip" target="_blank">release version</a></div>
<div>
<br /></div>
<div>
The 64 bit BLAS and LAPACK libraries downloading:</div>
<div>
o <a href="http://cs2.swfu.edu.cn/~zyl/lapack/LAPACK_Debug_x64.zip" target="_blank">debug version</a></div>
<div>
o <a href="http://cs2.swfu.edu.cn/~zyl/lapack/LAPACK_Release_x64.zip" target="_blank">release version</a></div>
<div>
<br /></div>
<div>
The modified Windows makefile can be downloaded from here:</div>
<div>
o <a href="http://cs2.swfu.edu.cn/~zyl/lapack/makefile.zip" target="_blank">makefile</a></div>
<div>
<br /></div>
<div>
Thanks David Svoboda for the original LAPACK Windows version.</div>
<div>
<br /></div>
<div>
Thanks Conrad Sanderson for the "/QaxSSSE3" suggestion, and the wonderful Armadillo C++ linear algebra library!<br />
<br />
Updated with "/QaxCORE-AVX2", thanks Huijuan Li and Sigurður Freyr Hafstein for the tip!<br />
<br />
The 32 bit BLAS and LAPACK libraries with "/QaxCORE-AVX2" downloading:<br />
o <a href="http://cs2.swfu.edu.cn/~zyl/lapack/Lapack_win32_debug.rar" target="_blank">debug version</a><br />
o <a href="http://cs2.swfu.edu.cn/~zyl/lapack/Lapack_win32_release.rar" target="_blank">release version</a><br />
<br />
The 64 bit BLAS and LAPACK libraries with "/QaxCORE-AVX2" downloading:<br />
o <a href="http://cs2.swfu.edu.cn/~zyl/lapack/Lapack_win64_debug.rar" target="_blank">debug version</a><br />
o <a href="http://cs2.swfu.edu.cn/~zyl/lapack/Lapack_win64_release.rar" target="_blank">release version</a><br />
<br /></div>
Unknownnoreply@blogger.com7tag:blogger.com,1999:blog-8194415071695497633.post-7331514971139912992013-09-25T06:08:00.001-07:002014-08-23T05:07:25.639-07:00Random Research ResourceScene Completion<br />
1. <a href="http://graphics.cs.cmu.edu/projects/scene-completion/">http://graphics.cs.cmu.edu/projects/scene-completion/</a><br />
2. <a href="http://cs.brown.edu/~hays/">http://cs.brown.edu/~hays/</a><br />
3. <a href="http://cybertron.cg.tu-berlin.de/pdci08/scenecompletion/">http://cybertron.cg.tu-berlin.de/pdci08/scenecompletion/</a><br />
4. <a href="http://cybertron.cg.tu-berlin.de/pdci11ws/scene_completion/index.html">http://cybertron.cg.tu-berlin.de/pdci11ws/scene_completion/index.html</a><br />
5. <a href="http://lafarren.com/image-completer/">http://lafarren.com/image-completer/</a> - Implementation of the research titled: "Image Completion Using Efficient Belief Propagation via Priority Scheduling and Dynamic Pruning"<br />
6. <a href="https://github.com/darrenlafreniere/lafarren-image-completer">https://github.com/darrenlafreniere/lafarren-image-completer</a> - Image Completing<br />
7. <a href="http://www.pearltrees.com/#/N-s=1_7364673&N-play=0&N-u=1_783320&N-p=70497259&N-f=1_7364673&N-fa=5967396">http://www.pearltrees.com/#/N-s=1_7364673&N-play=0&N-u=1_783320&N-p=70497259&N-f=1_7364673&N-fa=5967396</a><br />
<br />
<a name='more'></a><br />
Infinite panorama<br />
1. <a href="http://cs.brown.edu/courses/csci1290/2011/results/final/gen/">http://cs.brown.edu/courses/csci1290/2011/results/final/gen/</a><br />
2. <a href="https://code.google.com/p/infinity-panorama/">https://code.google.com/p/infinity-panorama/</a><br />
3. <a href="http://cybertron.cg.tu-berlin.de/pdci09/infinite_panorama/">http://cybertron.cg.tu-berlin.de/pdci09/infinite_panorama/</a><br />
4. <a href="http://www.cs.cmu.edu/afs/andrew/scs/cs/15-463/f07/proj_final/www/lisachan/">http://www.cs.cmu.edu/afs/andrew/scs/cs/15-463/f07/proj_final/www/lisachan/</a><br />
<br />
Panorama Stitching<br />
1. <a href="http://www1.idc.ac.il/toky/videoProc-07/projects/Panorama/Panorama%20Creator.htm">http://www1.idc.ac.il/toky/videoProc-07/projects/Panorama/Panorama%20Creator.htm</a><br />
2. <a href="http://louki.org/panorama-stitching">http://louki.org/panorama-stitching</a><br />
3. <a href="http://tobw.net/index.php?cat_id=2&project=Panorama+Stitching+Demo+in+Matlab">http://tobw.net/index.php?cat_id=2&project=Panorama+Stitching+Demo+in+Matlab</a><br />
4. <a href="http://ramsrigoutham.com/2012/11/22/panorama-image-stitching-in-opencv/">http://ramsrigoutham.com/2012/11/22/panorama-image-stitching-in-opencv/</a><br />
5. <a href="https://code.google.com/p/panorama-provider/">https://code.google.com/p/panorama-provider/</a> - panorama provider<br />
6. <a href="https://github.com/zed0/Matlab-stuff">https://github.com/zed0/Matlab-stuff</a> - some random Matlab functions<br />
<br />
Gist<br />
1. <a href="http://ilab.usc.edu/siagian/Research/Gist/Gist.html">http://ilab.usc.edu/siagian/Research/Gist/Gist.html</a><br />
2. <a href="http://lear.inrialpes.fr/software">http://lear.inrialpes.fr/software</a><br />
3. <a href="http://people.csail.mit.edu/torralba/code/spatialenvelope/">http://people.csail.mit.edu/torralba/code/spatialenvelope/</a><br />
4. <a href="http://cvcl.mit.edu/aude.htm">http://cvcl.mit.edu/aude.htm</a><br />
5. <a href="http://people.rennes.inria.fr/Herve.Jegou/software.html">http://people.rennes.inria.fr/Herve.Jegou/software.html</a><br />
6. <a href="http://horatio.cs.nyu.edu/mit/tiny/data/">http://horatio.cs.nyu.edu/mit/tiny/data/</a><br />
<br />
Poisson Solver<br />
1. <a href="http://www.cfar.umd.edu/~aagrawal/software.html">http://www.cfar.umd.edu/~aagrawal/software.html</a><br />
2. <a href="http://opencv.jp/opencv2-x-samples/poisson-blending">http://opencv.jp/opencv2-x-samples/poisson-blending</a> - poisson blending<br />
3. <a href="https://code.google.com/p/opencvjp-sample/source/browse/trunk/cpp/poisson_blending.hpp?r=71">https://code.google.com/p/opencvjp-sample/source/browse/trunk/cpp/poisson_blending.hpp?r=71</a> - poisson blending<br />
4. <a href="http://www.ctralie.com/Teaching/">http://www.ctralie.com/Teaching/</a> - Poisson Image Editing in Java<br />
5. <a href="https://www.udacity.com/course/viewer#!/c-cs344/l-116611037/e-120722632/m-120887570">https://www.udacity.com/course/viewer#!/c-cs344/l-116611037/e-120722632/m-120887570</a> - Seamless Image Cloning<br />
6. <a href="http://grail.cs.washington.edu/projects/screenedPoissonEq/">http://grail.cs.washington.edu/projects/screenedPoissonEq/</a> - Fourier Analysis of the 2D Screened Poisson Equation for Gradient Domain Problems<br />
7. <a href="http://www.howardzzh.com/research/poissonImageEditing/">http://www.howardzzh.com/research/poissonImageEditing/</a> - Poisson Image Editing & Texture Based Terrain Synthesis<br />
8. <a href="http://www.colinzheng.com/?page_id=5">http://www.colinzheng.com/?page_id=5</a> - Solve Poisson Equations Using Least Square Technique in Image Editing<br />
9. <a href="http://blog.merza-k.com/gradient-domain-imaging#comment-788">http://blog.merza-k.com/gradient-domain-imaging#comment-788</a> - Gradient Domain Imaging<br />
10. <a href="https://github.com/Siddharthk/CompPhoto-NUIGroup-GSoC-2012">https://github.com/Siddharthk/CompPhoto-NUIGroup-GSoC-2012</a> - Interactive Poisson Blending<br />
11. <a href="http://louki.org/poisson-image-editing">http://louki.org/poisson-image-editing</a> - Poisson Image Editing<br />
12. <a href="https://code.google.com/p/imageblending/">https://code.google.com/p/imageblending/</a> - Image Blending<br />
13. <a href="http://www.cs.jhu.edu/~misha/Code/">http://www.cs.jhu.edu/~misha/Code/</a> - streaming multigrid solver<br />
14. <a href="http://web.media.mit.edu/~raskar/">http://web.media.mit.edu/~raskar/</a> - Computational Photography<br />
15. <a href="http://cybertron.cg.tu-berlin.de/pdci11ws/gdi/index.html">http://cybertron.cg.tu-berlin.de/pdci11ws/gdi/index.html</a> - Efficient Gradient-domain Compositing<br />
16. <a href="http://graphics.cs.cmu.edu/projects/gradient-paint/">http://graphics.cs.cmu.edu/projects/gradient-paint/</a> - Real-Time Gradient-Domain Painting<br />
17. <a href="http://grail.cs.washington.edu/projects/gradientshop/">http://grail.cs.washington.edu/projects/gradientshop/</a> - GradientShop: A Gradient-Domain Optimization Framework for Image and Video Filtering<br />
18. <a href="http://www.dgp.toronto.edu/~rms/links.html">http://www.dgp.toronto.edu/~rms/links.html</a> - Computer Graphics Research Software (including poisson blending)<br />
19. <a href="http://www.cs.uky.edu/~jacobs/classes/2011_photo/projects/03_blending/index.html">http://www.cs.uky.edu/~jacobs/classes/2011_photo/projects/03_blending/index.html</a> - Project including skeleton code<br />
<br />
Graph Cut<br />
<br />
<br />
Seam Carving<br />
1. <a href="http://www.eng.tau.ac.il/~avidan/">http://www.eng.tau.ac.il/~avidan/</a><br />
2. <a href="http://people.csail.mit.edu/mrub/index.html">http://people.csail.mit.edu/mrub/index.html</a><br />
3. <a href="http://www.ctralie.com/Teaching/">http://www.ctralie.com/Teaching/</a> - Seam Carving in Matlab<br />
<br />
Image Retrieval<br />
1. <a href="http://www.imageclef.org/2012/photo-flickr/descriptors">http://www.imageclef.org/2012/photo-flickr/descriptors</a><br />
2. <a href="http://koen.me/research/">http://koen.me/research/</a><br />
3. <a href="http://labelme.csail.mit.edu/Release3.0/">http://labelme.csail.mit.edu/Release3.0/</a><br />
<br />
Minimal Loss Hashing for Compact Binary Codes<br />
1. <a href="https://github.com/marklar/min-loss-hashing">https://github.com/marklar/min-loss-hashing</a><br />
<br />
Image Analogies<br />
1. <a href="http://www.ctralie.com/Teaching/">http://www.ctralie.com/Teaching/</a> - Image Analogies in C++<br />
<br />
SVM<br />
1. <a href="http://www.chibi.ubc.ca/gist/">http://www.chibi.ubc.ca/gist/</a><br />
2. <a href="http://www.support-vector-machines.org/index.html">http://www.support-vector-machines.org/index.html</a><br />
<br />
Event/Action Detection and Recognition<br />
1. <a href="http://giuseppeserra.com/">http://giuseppeserra.com/</a><br />
<br />
Photosketcher<br />
1. <a href="http://perso.telecom-paristech.fr/~boubek/papers/PhotoSketcher/">http://perso.telecom-paristech.fr/~boubek/papers/PhotoSketcher/</a><br />
2. <a href="http://cg.cs.tsinghua.edu.cn/montage/main.htm">http://cg.cs.tsinghua.edu.cn/montage/main.htm</a><br />
<br />
Code<br />
1. <a href="http://www.csee.wvu.edu/~xinl/source.html" target="_blank">Reproducible Research in Computational Science</a><br />
2. <a href="http://vision.cs.princeton.edu/code.html">http://vision.cs.princeton.edu/code.html</a><br />
<br />
Data<br />
1. <a href="http://horatio.cs.nyu.edu/mit/tiny/data/">http://horatio.cs.nyu.edu/mit/tiny/data/</a><br />
2. <a href="http://ww2.cs.fsu.edu/~jyuan/">http://ww2.cs.fsu.edu/~jyuan/</a><br />
3. <a href="http://research.microsoft.com/en-us/people/larryz/">http://research.microsoft.com/en-us/people/larryz/</a> - MSR 3D video dataset (break-dancing)Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8194415071695497633.post-40013021397586579712012-08-26T01:14:00.002-07:002014-01-03T05:31:47.682-08:00C++ versus Objective-C as API substrate<div style="text-align: center;">
C++ versus Objective-C as API substrate (作为API基板的C++与Objective-C)</div>
<br />
<div style="text-align: center;">
翻译:赵毅力</div>
<br />
Windows 8 marks the start of the end of the ancient workhorse API – Win32. Win32, along with COM, underlies all other APIs – including .NET – that Windows developers have used. MFC, ATL, COM itself (if I’m not mistaken), etc… these all depend on Win32 underneath.<br />
<br />
Windows 8的启动标志着Windows操作系统中古老的主力API – Win32的终结。 在Windows操作系统中,Win32和COM是所有其他API – 包括.NET的基础,Windows开发者使用的MFC,ATL 和COM本身(如果我没有记错),等等……这些都在底层都依赖于Win32。<br />
<br />
<a name='more'></a><br />
Starting with Windows 8, all new development going forward is expected to take place with WinRT being the lowest level developer-accessible API. The way I understand it, newer iterations of the .NET Framework will be relying on WinRT underneath. As per [1], WinRT will be a COM-based API albeit supposedly more evolved.<br />
<br />
从Windows 8开始,所有新的开发将依托WinRT作为最底层API。我的理解是,.NET Framework的新迭代也将依赖于WinRT。按[1]所说,WinRT将是一个基于COM的API。<br />
<br />
In Stroustrup’s C++ FAQ [2], when asked what he thinks of C++/CLI – which is a way to get C++ to talk to the CLR, he characterizes it thus:<br />
<br />
“C++/CLI … essentially augments C++ with a separate language feature for each feature of CLI (interfaces, properties, generics, pointers, inheritance, enumerations, etc…”<br />
在Stroustrup的的C++常见问题[2]中,当被问及他对的C++/CLI (这是一种使得C++和CLR可以互操作的方法)的看法时,他回答:<br />
<br />
“C++/CLI的…本质上是增加了CLI特性的增强版的C++。需要增加的CLI特性包括:接口,属性,泛型,指针,继承,枚举等功能……”<br />
The above is essentially what it takes to get C++ to grok the CLR object model!<br />
<br />
以上基本上涵盖了C++需要和CLR对象模型进行通信的要点。<br />
<br />
Thinking about the above, I suddenly realize that before Microsoft invented the One True Runtime To Bind Them All, C++ turned out to be SO INADEQUATE A SYSTEMS LANGUAGE that they essentially had to layer a whole infrastructure on top of it – COM – with its own huuuge panoply of conventions [3], in order to make it possible to use as an API substrate for the newer stuff they wanted to make available to Windows developers. Recall that COM was introduced because the more vanilla C++-based APIs, e.g. MFC, turned out to be inadequate (I have a very good reference discussing this which I can’t seem to recall right now…).<br />
<br />
对上述问题的思考,我突然意识到,在微软发明一个能够绑定一切的运行时以前,作为一个系统编程语言,C++是如此的不足,以至于他们需要在C++语言上面构建一整个基础设施 -即COM – 以及COM的一整套公约[3],其目的是为Windows开发人员提供一个API基板。回想起当时COM的引入是因为越来越多的以C++为基础的API呈现出很多不足,例如: MFC(我有一个很好的参考,讨论这个,我不能现在依稀记得…)。<br />
<br />
As a COM developer, you not only had to master the already humongous list of C++ dos and dont’s, you then had to do the same for COM’s conventions… but you basically have no choice if you intended to take advantage of Windows APIs from C++.<br />
<br />
作为一名COM开发人员,你不仅需要掌握已堆积如山的关于C++能做的和不能做知识点,你还不得不掌握同样多的关于COM的一大堆约定…如果你打算通过C++利用Windows API的优势,你基本上已经别无选择。<br />
<br />
If one looks at the evolution of C++-based APIs on Linux, pretty much the same issues arise. VANILLA (if you could call the hideous chopsuey of syntax and conventions that is C++ ‘vanilla’) C++ alone NEVER CUTS IT, everyone has to layer some BIG piece of proprietary plumbing on top of it to get work done. You’ve got Qt with its meta object compiler moc (and god-knows-what-else), KDE with its DCOP, Mozilla’s XPCOM (and just for writing a browser!) etc…<br />
<br />
如果观察Linux操作系统上的基于C++的API演变史,会发现几乎出现同样的问题。每个人都不得不在C++上面构架一个专属的大框架来完成工作。例如Qt的元对象编译器moc,KDE的DCOP,Mozilla的XPCOM的等…<br />
<br />
basically, each of these project/environment comes with its own reinvented object model/environment conventions that you have to pick up in addition to C++! So much for the notion of “C++ code portability”…<br />
<br />
基本上,除了C++本身,这些项目/环境每个都有自己重新发明的对象模型/环境约定!<br />
<br />
I believe much of the gunk above has to do with the lack of DYNAMIC BINDING in C++. It seems that Jobs, Tevanian, et al… made the right call way, way back when NeXTStep was born.<br />
<br />
我相信上面提到的重新构建框架的大部分原因是因为C++缺乏动态绑定。看起来似乎乔布斯,Tevanian在设计NEXTSTEP系统的时候作出了正确的选择。<br />
<br />
There seem to be two roads that one could have taken:<br />
<br />
人们可以选择的道路有两条:<br />
<br />
1) Objective-C with its “one syntax addition” and few dozen keyword additions to C, enabling dynamic dispatch and the other goodies of the Smalltalk object model (including concise, no-nonsense reflection facilities) to interoperate intimately with C.<br />
<br />
1)使用Objective-C语言,开启动态调度和Smalltalk的对象模型(包括简洁的反射能力),并与C语言互通;<br />
<br />
2) Deal with all the gunk in C++ and then, additionally, reinvent a memory management model (e.g. reference counting in COM), method dispatch, reflection, and on and on and on and on… to put on top of C++.<br />
<br />
2)处理所有和C++有关的问题,此外,在C++的基础上重新发明内存管理模型(如COM中的引用计数机制),构建方法调度,反射,以及其他更多需要的东西。<br />
<br />
In OS X, just about the only place where C++ lives is as a glorified template language (chuckle) for – ironically enough – device driver writing (to avoid the copy-paste of common driver code) in IOKit [4]. And this in the form of Stroustrup’s much hated Embedded C++ [5], while the rest of the APIs are implemented as either pure C (e.g. the CoreXXXXXX APIs) or Objective-C.<br />
<br />
在OS X操作系统中,C++唯一存在的地方就是用于IOKit设备驱动程序编写(避免了常见的驱动程序代码的复制粘贴)[4]。而这正式Stroustrup的非常讨厌的嵌入式C++用法[5],而其余的API,要么是纯C实现(如CoreXXXXXX的API),要么是Objective-C的实现。<br />
<br />
原文参考:<a href="http://webmechs.com/webpress/2011/11/c-versus-objective-c-as-api-substrate/" target="_blank">C++ versus Objective-C as API substrate</a><br />
<div style="background-color: #f3f3f3; border: 0px; color: #333333; font-family: Verdana, 'Trebuchet MS', Tahoma, Georgia, Helvetica; font-size: 14px; line-height: 24.66666603088379px; margin-bottom: 20px; padding: 0px; vertical-align: baseline;">
</div>
Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-8194415071695497633.post-3035382249249488672012-08-26T01:13:00.002-07:002014-01-03T05:26:09.355-08:00Less is exponentially more<div style="text-align: center;">
Less is exponentially more</div>
<div style="text-align: center;">
Author: Rob Pike</div>
<div style="text-align: center;">
大道至简(原标题:少是指数级的多)</div>
<div style="text-align: center;">
翻译:邢兴</div>
<div style="text-align: center;">
校验:赵毅力</div>
<br />
原文 Less is exponentially more 是 Rob Pike 自己整理的他在六月22日,旧金山的 Golang 会议上的演讲稿。清晰的介绍了 Go 的前世今生,来龙去脉。为了让更多的人能够更加清楚的认识到 Go 的优雅并喜爱上 Go,特翻译成中文,以飧读者。<br />
<br />
Here is the text of the talk I gave at the Go SF meeting in June, 2012.<br />
这是我(Rob Pike)在 2012 年六月,旧金山 Go 会议上的演讲内容。<br />
<br />
<a name='more'></a><br />
This is a personal talk. I do not speak for anyone else on the Go team here, although I want to acknowledge right up front that the team is what made and continues to make Go happen. I’d also like to thank the Go SF organizers for giving me the opportunity to talk to you.<br />
这是一个私人演讲。我并未代表 Go 项目团队的任何人在此演讲,但我首先要感谢团队为 Go 的诞生和发展所做的一切。同时,我也要感谢旧金山 Go 社区给我这个演讲机会。<br />
<br />
I was asked a few weeks ago, “What was the biggest surprise you encountered rolling out Go?” I knew the answer instantly: Although we expected C++ programmers to see Go as an alternative, instead most Go programmers come from languages like Python and Ruby. Very few come from C++.<br />
在几个星期之前我被问到,“在推出 Go 之后,什么令你感到最为惊奇?”我立刻有了一个答案:尽管我们希望 C++ 程序员来了解 Go 并作为一个可选的语言,但是更多的 Go 程序员来自如于 Python、Ruby。只有很少来自 C++。<br />
<br />
We—Ken, Robert and myself—were C++ programmers when we designed a new language to solve the problems that we thought needed to be solved for the kind of software we wrote. It seems almost paradoxical that other C++ programmers don’t seem to care.<br />
我们——Ken,Robert 和我自己曾经是 C++ 程序员,我们设计新的语言是为了解决那些我们编写的软件中遇到的问题。而这些问题,其他 C++ 程序员似乎并不怎么在意,这看起来有些矛盾。<br />
<br />
I’d like to talk today about what prompted us to create Go, and why the result should not have surprised us like this. I promise this will be more about Go than about C++, and that if you don’t know C++ you’ll be able to follow along.<br />
今天我想要谈谈是什么促使我们创建了 Go,以及为什么本不应该是这样的结果会我们惊讶。我承诺讨论 Go 会比讨论 C++ 多,即便你不了解 C++ 也仍然完全跟得上主题。<br />
<br />
The answer can be summarized like this: Do you think less is more, or less is less?<br />
答案可以概括为:你认为少既是多,还是少就是少?<br />
<br />
Here is a metaphor, in the form of a true story. Bell Labs centers were originally assigned three-letter numbers: 111 for Physics Research, 127 for Computing Sciences Research, and so on. In the early 1980s a memo came around announcing that as our understanding of research had grown, it had become necessary to add another digit so we could better characterize our work. So our center became 1127. Ron Hardin joked, half-seriously, that if we really understood our world better, we could drop a digit and go down from 127 to just 27. Of course management didn’t get the joke, nor were they expected to, but I think there’s wisdom in it. Less can be more. The better you understand, the pithier you can be.<br />
这里有一个真实的故事作为隐喻。贝尔实验室最初用三个数字标识:111 表示物理研究,127 表示计算机科学研究,等等。在上世纪八十年代早期,一篇如期而至的备忘录声明由于我们所了解的研究正在增长,为了便于识别我们的工作,必须再添加一位数。因此,我们的中心变为 1127。Ron Hardin 开玩笑半认真的说道,如果我们真的更好的了解了这个世界,我们可以减少一位数,使得 127 仅为 27。当然管理层没有听到这个笑话,又或者他们不愿意听到,但是我想这其中确有大的智慧。少既是多。你理解得越好,越含蓄。<br />
<br />
Keep that idea in mind.<br />
请务必记住这个思路。<br />
<br />
Back around September 2007, I was doing some minor but central work on an enormous Google C++ program, one you’ve all interacted with, and my compilations were taking about 45 minutes on our huge distributed compile cluster. An announcement came around that there was going to be a talk presented by a couple of Google employees serving on the C++ standards committee. They were going to tell us what was coming in C++0x, as it was called at the time. (It’s now known as C++11).<br />
回到 2007 年 9 月,我在一个巨大的 Google C++ 程序(就是你们都用过的那个)上做一些琐碎但是很核心的工作,我在那个巨大的分布式集群上需要花大约 45 分钟进行编译。这时候我收到一个通知说Google公司里面几个为 C++ 标准化委员会工作的雇员将会做一场报告。他们将向我们介绍那时还被称作 C++0x(就是现在众所周知的 C++11)中将会有哪些改进。<br />
<br />
In the span of an hour at that talk we heard about something like 35 new features that were being planned. In fact there were many more, but only 35 were described in the talk. Some of the features were minor, of course, but the ones in the talk were at least significant enough to call out. Some were very subtle and hard to understand, like rvalue references, while others are especially C++-like, such as variadic templates, and some others are just crazy, like user-defined literals.<br />
在长达一个小时的报告中,我们听说了诸如有已经在计划中的 35 个特性之类的事情。事实上有更多,但仅有 35 个特性在报告中进行了描述。当然一些特性很小,但是意义重大,值得在报告中提出。一些非常微妙和难以理解,如左右值引用(rvalue references),还有一些是 C++ 特有的,如可变参数模板(variadic templates),还有一些就是发疯,如用户定义数据标识(user-defined literals)。<br />
<br />
At this point I asked myself a question: Did the C++ committee really believe that was wrong with C++ was that it didn’t have enough features? Surely, in a variant of Ron Hardin’s joke, it would be a greater achievement to simplify the language rather than to add to it. Of course, that’s ridiculous, but keep the idea in mind.<br />
这时我问了自己一个问题:C++ 委员会真得相信 C++ 的问题在于没有足够的特性?肯定的说,在另一个 Ron Hardin 的玩笑中,简化语言的成就远远大于添加功能。当然这有点可笑,不过请务必记住这个思路。<br />
<br />
Just a few months before that C++ talk I had given a talk myself, which you can see on YouTube, about a toy concurrent language I had built way back in the 1980s. That language was called Newsqueak and of course it is a precursor to Go.<br />
就在这个C++报告的数月前,我自己也进行了一个演讲,你可以在 YouTube 上看到,关于我在上世纪 80 年代开发的一个玩具性质的并发语言。这个语言被叫做 Newsqueak,它是 Go 的前辈了。<br />
<br />
I gave that talk because there were ideas in Newsqueak that I missed in my work at Google and I had been thinking about them again. I was convinced they would make it easier to write server code and Google could really benefit from that.<br />
我进行这次报告是因为在 Newsqueak 中缺失的一些想法,在为 Google 工作的时候我再次思考了这些它们。我当时确信它们可以使得编写服务端代码变得更加轻松,使得 Google 能从中获得收益。<br />
<br />
I actually tried and failed to find a way to bring the ideas to C++. It was too difficult to couple the concurrent operations with C++’s control structures, and in turn that made it too hard to see the real advantages. Plus C++ just made it all seem too cumbersome, although I admit I was never truly facile in the language. So I abandoned the idea.<br />
事实上我曾尝试在 C++ 中实现这些思路,但是失败了。要将 C++ 控制结构和并发操作联系起来太困难了,最终这导致很难看到真正的优势。虽然我承认我从未真正熟练的使用 C++,但是纯粹的 C++ 仍然让所有事情看起来过于笨重。所以我放弃了这个想法。<br />
<br />
But the C++0x talk got me thinking again. One thing that really bothered me—and I think Ken and Robert as well—was the new C++ memory model with atomic types. It just felt wrong to put such a microscopically-defined set of details into an already over-burdened type system. It also seemed short-sighted, since it’s likely that hardware will change significantly in the next decade and it would be unwise to couple the language too tightly to today’s hardware.<br />
但是那场 C++0x 报告让我再次思考这个问题。有一件令我十分困扰的事情(同时我相信也在困扰着 Ken 和 Robert)是新的 C++ 内存模型有原子类型。感觉上在一个已经负担过重的类型系统上加入如此微观的描述细节的集合是绝对的错误。这同样是目光短浅的,几乎能确信硬件在接下来的十年中将迅速发展,将语言和当今的硬件结合的过于紧密是不明智的。<br />
<br />
We returned to our offices after the talk. I started another compilation, turned my chair around to face Robert, and started asking pointed questions. Before the compilation was done, we’d roped Ken in and had decided to do something. We did not want to be writing in C++ forever, and we—me especially—wanted to have concurrency at my fingertips when writing Google code. We also wanted to address the problem of “programming in the large” head on, about which more later.<br />
在报告后我们回到了办公室。我启动了另一个编译,将椅子转向 Robert,然后开始沟通关键的问题。在编译结束前,我们已经把 Ken 拉了进来,并且决定做些什么。我们不准备继续写 C++ 了,并且我们——尤其是我,希望在写 Google 代码的时候能够轻松的编写并发程序。同时我们也想勇往直前的驾驭“大编程”,后面会谈到。<br />
<br />
We wrote on the white board a bunch of stuff that we wanted, desiderata if you will. We thought big, ignoring detailed syntax and semantics and focusing on the big picture.<br />
我们在白板上写了一堆想要的东西,和其必要条件。忽略了语法和语义细节,设想了蓝图和全局。<br />
<br />
I still have a fascinating mail thread from that week. Here are a couple of excerpts:<br />
我这里还有那时的一个令人神混魂颠倒的邮件。这里摘录了一部分:<br />
<br />
Robert: Starting point: C, fix some obvious flaws, remove crud, add a few missing features.<br />
Robert: 起点:C,修复一些明显的缺陷,移除杂物,添加一些缺失的特性。<br />
<br />
Rob: name: ‘go’. you can invent reasons for this name but it has nice properties. it’s short, easy to type. tools: goc, gol, goa. if there’s an interactive debugger/interpreter it could just be called ‘go’. the suffix is .go.<br />
Rob: 命名:“go”。你们可以编造这个名字的来由,不过它有很好的底子。它很短,容易拼写。工具:goc, gol, goa。如果有交互式调试器/解释器,可以就叫做“go”。扩展名是 .go。<br />
<br />
Robert Empty interfaces: interface {}. These are implemented by all interfaces, and thus this could take the place of void*.<br />
Robert 空接口:interface {}。它们实现了所有的接口,所以这个可以用来代替 void *。<br />
<br />
We didn’t figure it all out right away. For instance, it took us over a year to figure out arrays and slices. But a significant amount of the flavor of the language emerged in that first couple of days.<br />
我们并没有正确描绘全部的东西。例如,为了描绘 array 和 slice 用了我们差不多一年的时间。但是这个语言特色的大多数重要的东西都在开始的几天里确定下来。<br />
<br />
Notice that Robert said C was the starting point, not C++. I’m not certain but I believe he meant C proper, especially because Ken was there. But it’s also true that, in the end, we didn’t really start from C. We built from scratch, borrowing only minor things like operators and brace brackets and a few common keywords. (And of course we also borrowed ideas from other languages we knew.) In any case, I see now that we reacted to C++ by going back down to basics, breaking it all down and starting over. We weren’t trying to design a better C++, or even a better C. It was to be a better language overall for the kind of software we cared about.<br />
注意 Robert 说 C 是起点,而不是 C++。我不确定,不过我相信他是指 C,尤其是 Ken 在的情况下。不过事实是,最终我们没有从 C 作为起点。我们从头开始,仅仅借鉴了如运算符、括号、大括号、和部分关键字。(当然也从我们知道的其他语言中吸取了精髓。) 无论如何,我们对 C++ 作出的回应是解构全部,回到原点重新开始。我们并未尝试去设计一个更好的 C++,甚至更好的 C。仅仅是一个对于我们在意的那种类型的软件来说更好的语言。<br />
<br />
In the end of course it came out quite different from either C or C++. More different even than many realize. I made a list of significant simplifications in Go over C and C++:<br />
最终,它成为了一个与 C 和 C++ 完全不同的语言。每个发布版本都越来越不同。我制作了一个 Go 中对 C 和 C++ 进行的重要简化的清单:<br />
<br />
regular syntax (don’t need a symbol table to parse)规范的语法(无需用于解析的符号表)<br />
garbage collection (only) 垃圾收集(唯一)<br />
no header files 没有头文件<br />
explicit dependencies 显式依赖<br />
no circular dependencies 无循环依赖<br />
constants are just numbers 常量只能为数字<br />
int and int32 are distinct types int 和 int32 是不同的类型<br />
letter case sets visibility 字母大小写设定可见性<br />
methods for any type (no classes) 任何类型都可以有方法(没有类)<br />
no subtype inheritance (no subclasses) 没有子类型继承(没有子类)<br />
package-level initialization and well-defined order of initialization 包级别初始化和定义好的初始化顺序<br />
files compiled together in a package 文件编译到一个包中<br />
package-level globals presented in any order 包级别的全局表达与顺序无关<br />
no arithmetic conversions (constants help) 没有算数转换(常量做了辅助处理)<br />
interfaces are implicit (no “implements” declaration) 隐式的接口实现(无需“implements”定义)<br />
embedding (no promotion to superclass) 嵌入(没有向父类的升级)<br />
methods are declared as functions (no special location) 方法如同函数一样进行定义(没有特的别位置要求)<br />
methods are just functions 方法就是函数<br />
interfaces are just methods (no data) 接口仅仅包含方法(没有数据)<br />
methods match by name only (not by type) 方法仅通过名字匹配(而不是通过类型)<br />
no constructors or destructors 没有构造或者析构方法<br />
postincrement and postincrement are statements, not expressions 后自增和后自减是语句,而不是表达式<br />
no preincrement or predecrement 没有前自增或前自减<br />
assignment is not an expression 赋值不是表达式<br />
evaluation order defined in assignment, function call (no “sequence point”) 按照赋值、函数调用定义时的顺序执行(没有“sequence point”)<br />
no pointer arithmetic 没有指针运算<br />
memory is always zeroed 内存总是零值初始化<br />
legal to take address of local variable 对局部变量取地址合法<br />
no “this” in methods 方法没有“this”<br />
segmented stacks 分段的堆栈<br />
no const or other type annotations 没有静态或其他类型注解<br />
no templates 没有模板<br />
no exceptions 没有异常<br />
builtin string, slice, map 内建 string、slice、map<br />
array bounds checking 数组边界检查<br />
And yet, with that long list of simplifications and missing pieces, Go is, I believe, more expressive than C or C++. Less can be more.<br />
除了这个简化清单和一些未提及的琐碎内容,我相信,Go 相比 C 或者 C++ 是更加有表达力的。少既是多。<br />
<br />
But you can’t take out everything. You need building blocks such as an idea about how types behave, and syntax that works well in practice, and some ineffable thing that makes libraries interoperate well.<br />
但是你不能拿走一切(意味过度简化?)。你仍然需要构建类型工作的方式,在实践中恰当的语法,以及让库的交互更好这种不可言喻的事情。<br />
<br />
We also added some things that were not in C or C++, like slices and maps, composite literals, expressions at the top level of the file (which is a huge thing that mostly goes unremarked), reflection, garbage collection, and so on. Concurrency, too, naturally.<br />
我们也添加了一些 C 或者 C++ 没有的东西,例如 slice 和 map,复合声明,每个文件的顶级表达式(一个差点被忘记的重要东西),反射,垃圾收集,等等。d当然,还有并发。<br />
<br />
One thing that is conspicuously absent is of course a type hierarchy. Allow me to be rude about that for a minute.<br />
当然明显缺少的是类型层次化。请允许我对此爆那么几句粗口。<br />
<br />
Early in the rollout of Go I was told by someone that he could not imagine working in a language without generic types. As I have reported elsewhere, I found that an odd remark.<br />
在 Go 最初的版本中,有人告诉我他无法想像用一个没有范型的语言来工作。就像之前在某些地方提到过的,我认为这绝对是神奇的评论。<br />
<br />
To be fair he was probably saying in his own way that he really liked what the STL does for him in C++. For the purpose of argument, though, let’s take his claim at face value.<br />
公平的说,他可能正在用其自己的方式来表达非常喜欢 STL 在 C++ 中为他做的事情。在辩论的前提下,让我们先相信他的观点。<br />
<br />
What it says is that he finds writing containers like lists of ints and maps of strings an unbearable burden. I find that an odd claim. I spend very little of my programming time struggling with those issues, even in languages without generic types.<br />
他说编写像 int 列表或 map string 这样的容器是一个无法忍受的负担。我觉得这是个神奇的观点。即便是那些没有范型的语言,我也只会花费很少的事件在这些问题上。<br />
<br />
But more important, what it says is that types are the way to lift that burden. Types. Not polymorphic functions or language primitives or helpers of other kinds, but types.<br />
但是更重要的是,他说类型是放下这些负担的解决途径。类型。不是函数多态,不是语言基础,或者其他协助,仅仅用类型。<br />
<br />
That’s the detail that sticks with me.<br />
这就是卡住我的细节问题。<br />
<br />
Programmers who come to Go from C++ and Java miss the idea of programming with types, particularly inheritance and subclassing and all that. Perhaps I’m a philistine about types but I’ve never found that model particularly expressive.<br />
从 C++ 和 Java 转过来 Go 的程序员怀念工作在类型上的编程方式,尤其是继承和子类,以及所有相关的内容。可能对于类型来说,我是门外汉,不过我真得从未发现这个模型十分具有表达力。<br />
<br />
My late friend Alain Fournier once told me that he considered the lowest form of academic work to be taxonomy. And you know what? Type hierarchies are just taxonomy. You need to decide what piece goes in what box, every type’s parent, whether A inherits from B or B from A. Is a sortable array an array that sorts or a sorter represented by an array? If you believe that types address all design issues you must make that decision.<br />
我已故的朋友 Alain Fournier 有一次告诉我说他认为学术的最低级形式就是分类。那么你知道吗?类型层次化就是分类。你必须对哪块进哪个盒子作出决策,包括每个类型的父级,不论是 A 继承自 B,还是 B 继承自 A。一个可排序的数组是一个排序过的数组还是一个数组表达的排序器?如果你坚信所有问题都是由类型驱动设计的,那么你就必须作出决策。<br />
<br />
I believe that’s a preposterous way to think about programming. What matters isn’t the ancestor relations between things but what they can do for you.<br />
我相信这样思考编程是荒谬可笑的。核心不是东西之间的祖宗关系,而是它们可以为你做什么。<br />
<br />
That, of course, is where interfaces come into Go. But they’re part of a bigger picture, the true Go philosophy.<br />
当然,这就是接口进入 Go 的地方。但是它们已经是蓝图的一部分,那是真正的 Go 哲学。<br />
<br />
If C++ and Java are about type hierarchies and the taxonomy of types, Go is about composition.<br />
如果说 C++ 和 Java 是关于类型继承和类型分类的,Go 就是关于组合的。<br />
<br />
Doug McIlroy, the eventual inventor of Unix pipes, wrote in 1964 (!):<br />
Unix pipe 的最终发明人 Doug McIlroy 在 1964 (!) 这样写到:<br />
<br />
We should have some ways of coupling programs like garden hose–screw in another segment when it becomes necessary to massage data in another way. This is the way of IO also.<br />
我们应当像连接花园里的龙头和软管一样,用某种方式一段一段的将消息数据连接起来。这同样是 IO 使用的办法。<br />
That is the way of Go also. Go takes that idea and pushes it very far. It is a language of composition and coupling.<br />
这也是 Go 使用的办法。Go 用了这个主意,并且将其向前推进了一大步。这是一个关于组合与连接的语言。<br />
<br />
The obvious example is the way interfaces give us the composition of components. It doesn’t matter what that thing is, if it implements method M I can just drop it in here.<br />
一个显而易见的例子就是接口为我们提供的组合元件的方式。只要它实现了方法 M,就可以放在合适的地方,而不关心它到底是什么东西。<br />
<br />
Another important example is how concurrency gives us the composition of independently executing computations.<br />
另一个重要的例子是并发如何连接独立运行的计算。<br />
<br />
And there’s even an unusual (and very simple) form of type composition: embedding.<br />
并且也有一个不同寻常(却非常简单)的类型组合模式:嵌入。<br />
<br />
These compositional techniques are what give Go its flavor, which is profoundly different from the flavor of C++ or Java programs.<br />
这就是 Go 特有的组合技术,滋味与 C++ 或 Java 程序完全不同。<br />
<br />
===========<br />
<br />
There’s an unrelated aspect of Go’s design I’d like to touch upon: Go was designed to help write big programs, written and maintained by big teams.<br />
有一个与此无关的 Go 设计我想要提一下:Go 被设计用于帮助编写大程序,由大团队编写和维护。<br />
<br />
There’s this idea about “programming in the large” and somehow C++ and Java own that domain. I believe that’s just a historical accident, or perhaps an industrial accident. But the widely held belief is that it has something to do with object-oriented design.<br />
有一个观点叫做“大编程”,不知怎么回事 C++ 和 Java 主宰了这个领域。我相信这只是一个历史的失误,或者是一个工业化的事故。但是一个广泛被接受的信念是面向对象的设计可以做些事情。<br />
<br />
I don’t buy that at all. Big software needs methodology to be sure, but not nearly as much as it needs strong dependency management and clean interface abstraction and superb documentation tools, none of which is served well by C++ (although Java does noticeably better).<br />
我完全不相信那个观点。大软件确实需要方法论保驾护航,但它不比强大的依赖管理、清晰的接口抽象和优秀的文档工具来得更重要,而这些没有一样是 C++ 做好的事情(尽管 Java 明显做得更好一些)<br />
<br />
We don’t know yet, because not enough software has been written in Go, but I’m confident Go will turn out to be a superb language for programming in the large. Time will tell.<br />
我们还不知道,因为没有足够的软件采用 Go 来编写,不过我有自信 Go 将在大编程领域脱颖而出。时间证明一切。<br />
<br />
===========<br />
<br />
Now, to come back to the surprising question that opened my talk:<br />
现在,回到我演讲一开始提到的那个令人惊奇的问题:<br />
<br />
Why does Go, a language designed from the ground up for what what C++ is used for, not attract more C++ programmers?<br />
为什么 Go,一个被设计为用于摧毁 C++ 的语言,并未获得 C++ 程序员的芳心?<br />
<br />
Jokes aside, I think it’s because Go and C++ are profoundly different philosophically.<br />
撇开玩笑不说,我认为那是因为 Go 和 C++ 有着完全不同的哲学。<br />
<br />
C++ is about having it all there at your fingertips. I found this quote on a C++11 FAQ:<br />
C++ 是让你的指尖解决所有的问题。我在 C++11 的 FAQ 上引用了这段内容:<br />
<br />
The range of abstractions that C++ can express elegantly, flexibly, and at zero costs compared to hand-crafted specialized code has greatly increased.<br />
C++ 与那些巨大增长的特别编写的手工代码相比,具有更加广泛的抽象,优雅、灵活并且零成本的表达能力。<br />
That way of thinking just isn’t the way Go operates. Zero cost isn’t a goal, at least not zero CPU cost. Go’s claim is that minimizing programmer effort is a more important consideration.<br />
这个思考的方向与 Go 的不同。零成本不是目标,至少不是零 CPU 成本。Go 的主张更多考虑的是最小化程序员的工作量。<br />
<br />
Go isn’t all-encompassing. You don’t get everything built in. You don’t have precise control of every nuance of execution. For instance, you don’t have RAII. Instead you get a garbage collector. You don’t even get a memory-freeing function.<br />
Go 不是无所不包的。你无法通过内建获得所有东西。你无法精确控制每个细微的执行。例如没有 RAII。而可以用垃圾收集作为代替。也没有内存释放函数。<br />
<br />
What you’re given is a set of powerful but easy to understand, easy to use building blocks from which you can assemble—compose—a solution to your problem. It might not end up quite as fast or as sophisticated or as ideologically motivated as the solution you’d write in some of those other languages, but it’ll almost certainly be easier to write, easier to read, easier to understand, easier to maintain, and maybe safer.<br />
你得到的是功能强大,但是容易理解的,容易用来构建一些用于连接组合解决问题的模块。这可能最终不像你使用其他语言编写的解决方案那么快,那么精致,在思想体系上那么明确,但它确实会更加容易编写,容易阅读,容易理解,容易维护,并且更加安全。<br />
<br />
To put it another way, oversimplifying of course:<br />
换句话说,当然,有些过于简单:<br />
<br />
Python and Ruby programmers come to Go because they don’t have to surrender much expressiveness, but gain performance and get to play with concurrency.<br />
Python 和 Ruby 程序员转到 Go 是因为他们并未放弃太多的表达能力,但是获得了性能,并且与并发共舞。<br />
<br />
C++ programmers don’t come to Go because they have fought hard to gain exquisite control of their programming domain, and don’t want to surrender any of it. To them, software isn’t just about getting the job done, it’s about doing it a certain way.<br />
C++ 程序员无法转到 Go 是因为他们经过艰辛的战斗才获得对其语言的精确控制能力,他们不想放弃已经获得的任何东西。对于他们,软件不仅仅是关于让工作完成,而是关于用一个确定的方式完成。<br />
<br />
The issue, then, is that Go’s success would contradict their world view.<br />
那么,问题是,Go 的成功能否反驳他们的世界观。<br />
<br />
And we should have realized that from the beginning. People who are excited about C++11′s new features are not going to care about a language that has so much less. Even if, in the end, it offers so much more.<br />
我们应当在一开始的时候就意识这一点。那些为 C++11 的新特性而兴奋的人们是不会在意一个没有这么多特性的语言的。即便最后发现这个语言能够比他们所想象的提供更多。<br />
<br />
Thank you.<br />
谢谢大家。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8194415071695497633.post-57560332068087888552012-08-26T01:07:00.001-07:002014-01-03T05:29:06.810-08:00Scientific Computing Resource<b>Mathematical Software</b><br />
1. <a href="http://www.mathworks.com/" target="_blank">Matlab</a><br />
2. <a href="http://www.maplesoft.com/" target="_blank">Maple</a><br />
3. <a href="http://www.wolfram.com/mathematica/" target="_blank">Mathematica</a><br />
<br />
<b>Linear Algebra</b><br />
1. <a href="http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms" target="_blank">Wikipedia</a><br />
2. <a href="http://www.netlib.org/blas/" target="_blank">BLAS</a> - Basic Linear Algebra Subprograms<br />
3. <a href="http://www.netlib.org/lapack/" target="_blank">LAPACK</a> - Linear Algebra PACKage<br />
4. <a href="http://arma.sourceforge.net/" target="_blank">Armadillo</a> - A C++ linear algebra library<br />
5. <a href="http://eigen.tuxfamily.org/index.php?title=Main_Page" target="_blank">Eigen</a> - A C++ template library for linear algebra<br />
<br />
<b>Numerical Analysis</b><br />
1. <a href="http://en.wikipedia.org/wiki/List_of_numerical_libraries" target="_blank">Wikipedia</a><br />
2. <a href="http://www.gnu.org/software/gsl/" target="_blank">GSL</a> - GNU Scientific LibraryUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-8194415071695497633.post-45713069952818595302012-08-26T01:06:00.000-07:002014-01-03T05:33:26.137-08:00Computer Graphics Research Resources<b>2D Graphics</b><br />
1. <a href="http://cairographics.org/" target="_blank">Cairo</a> - 2D graphics library, used by GTK+.<br />
2. <a href="http://code.google.com/p/skia/" target="_blank">Skia</a> - Complete 2D graphic library for drawing Text, Geometries, and Images, used by Chrome and Android.<br />
3. <a href="http://www.antigrain.com/index.html" target="_blank">Anti-Grain Geometry </a>- A High Quality Rendering Engine for C++, used by Haiku OS.<br />
4. <a href="http://code.google.com/p/fog/" target="_blank">Fog</a> - High performance 2d vector graphics library.<br />
<a name='more'></a><b><br /></b>
<b>3D Graphics</b><br />
1. <a href="http://run.usc.edu/vega/index.html" target="_blank">Vega FEM Library</a> – 3D deformable object simulation<br />
<br />
<b>Volume Rendering</b><br />
1. <a href="http://www.voreen.org/" target="_blank">Voreen</a> - Open source volume rendering engine<br />
<br />
<b>Computer Graphics Research Software</b><br />
1. <a href="http://www.dgp.toronto.edu/~rms/links.html">http://www.dgp.toronto.edu/~rms/links.html</a><br />
2. <a href="http://www.csee.wvu.edu/~xinl/source.html" target="_blank">Reproducible Research in Computational Science</a><br />
<br />
<b>Research Lab</b><br />
1. <a href="http://graphics.cs.cmu.edu/" target="_blank">CMU Graphics Lab</a><br />
2. <a href="http://grail.cs.washington.edu/" target="_blank">GRAIL</a> - Washington University Graphics and Imaging Laboratory<br />
3. <a href="http://www.graphics.cornell.edu/index.html" target="_blank">Cornell University Graphics Lab</a><br />
4. <a href="http://graphics.cs.brown.edu/index.html" target="_blank">Brown University Graphics Lab</a><br />
<br />
<b>Researcher</b><br />
1. <a href="http://graphics.stanford.edu/~levoy/" target="_blank">Marc Levoy</a> (Stanford University)<br />
2. <a href="http://graphics.stanford.edu/~hanrahan/" target="_blank">Pat Hanrahan</a> (Stanford University)<br />
3. <a href="http://www.cs.cmu.edu/~efros/" target="_blank">Alexei Efros</a> (Carnegie Mellon University)<br />
4. <a href="http://www.cs.brown.edu/people/hays/" target="_blank">James Hays</a> (Computer Science Department, Brown University)<br />
5. <a href="http://www.cs.cornell.edu/~snavely/" target="_blank">Noah Snavely</a> (Department of Computer Science, Cornell University)Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8194415071695497633.post-88551060441686423002012-08-26T00:59:00.000-07:002014-01-03T05:38:50.371-08:00Massive Open Online Course (MOOC) Resource1. <a href="http://ocw.mit.edu/index.htm" target="_blank">MIT OpenCourseWare</a><span style="color: #0000ee;"><u></u></span><br />
2. <a href="http://online.stanford.edu/courses" target="_blank">Stanford Online Courses</a><br />
3. <a href="http://www.khanacademy.org/" target="_blank">Khan Academy</a><br />
4. <a href="http://www.udacity.com/" target="_blank">Udacity</a><br />
5. <a href="https://www.coursera.org/" target="_blank">Coursera</a><br />
6. <a href="http://academicearth.org/" target="_blank">Academic Earth</a> - Online courses from the world’s top scholars<br />
7. <a href="http://www.codeschool.com/" target="_blank">Code School</a><br />
8. <a href="http://open.163.com/" target="_blank">网易公开课</a><br />
9. <a href="http://open.sina.com.cn/" target="_blank">新浪公开课</a><br />
10. <a href="http://tv.sohu.com/open/" target="_blank">搜狐公开课</a><br />
11. <a href="http://v.qq.com/zt2011/open/" target="_blank">腾讯公开课</a><br />
12. <a href="http://www.computingbook.org/" target="_blank">Introduction to Computing</a><br />
<ul style="background-color: #f3f3f3; border: 0px; color: #333333; font-family: Verdana, 'Trebuchet MS', Tahoma, Georgia, Helvetica; font-size: 14px; line-height: 24.66666603088379px; list-style-image: initial; list-style-position: initial; margin: 0px 0px 20px 20px; padding: 0px; vertical-align: baseline;">
</ul>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8194415071695497633.post-4493938708825329302012-08-26T00:56:00.004-07:002013-10-04T02:35:10.564-07:00编程资源<b>编程语言</b><br />
1. <a href="http://www.python.org/" target="_blank">Python</a><br />
2. <a href="http://golang.org/" target="_blank">Go</a><br />
3. <a href="http://www.dartlang.org/" target="_blank">Dart</a><br />
4. <a href="http://www.rust-lang.org/" target="_blank">Rust</a><br />
5. <a href="http://www.typescriptlang.org/" target="_blank">TypeScript</a><br />
<a name='more'></a><br />
<b>社区</b><br />
1. <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a><br />
2. <a href="http://www.cplusplus.com/" target="_blank">cplusplus</a><br />
3. <a href="http://c-plusplus.org/index.php" target="_blank">c-plusplus</a><br />
4. <a href="http://www.oschina.net/" target="_blank">开源中国社区</a><br />
5. <a href="http://www.open-open.com/news/" target="_blank">Open资讯</a><br />
<br />
<b>在线学习</b><br />
1. <a href="http://people.csail.mit.edu/pgbovine/python/tutor.html#mode=edit" target="_blank">在线学习Python</a><br />
2. <a href="http://learnjs.info/#mode=edit" target="_blank">在线学习JavaScript</a><br />
<br />
<b>编码规范(Code Style)</b><br />
1. <a href="http://code.google.com/p/google-styleguide/" target="_blank">Google编码规范</a><br />
<br />
<b>文档生成工具</b><br />
1. <a href="http://www.stack.nl/~dimitri/doxygen/index.html" target="_blank">Doxygen</a><br />
<br />
<b>网络(Network)</b><br />
1. <a href="http://pocoproject.org/" target="_blank">POCO</a> - 一个现代的、功能强大的、开源的C ++类库和框架<br />
2. <a href="http://www.boost.org/" target="_blank">Boost Asio</a> - Boost库中用于网络编程的C++库。<br />
3. <a href="http://cpp-netlib.github.com/latest/index.html" target="_blank">cpp-netlib</a> - C++网络库<br />
4. <a href="https://github.com/chenshuo/muduo" target="_blank">muduo</a> - A C++ non-blocking network library for multi-threaded server in Linux<br />
5. <a href="http://facebook.github.io/libphenom/" target="_blank">libPhenom</a><br />
<br />
<b>数据库</b><br />
1. <a href="http://www.mysql.com/" target="_blank">MySQL</a><br />
2. <a href="http://www.postgresql.org/" target="_blank">PostgreSQL</a><br />
3. <a href="http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en//archive/spanner-osdi2012.pdf" target="_blank">Spanner</a><br />
<br />
<b>Web</b><br />
1. <a href="http://twitter.github.com/bootstrap/" target="_blank">Bootstrap</a> by Twitter<br />
2. <a href="http://hyde.github.com/" target="_blank">Hyde</a> - a static website generator written in Python<br />
3. <a href="http://jekyllrb.com/" target="_blank">Jekyll</a> - a static website generator written in Ruby<br />
<br />
<b>图形用户界面(GUI,Graphics User Interface)</b><br />
1. <a href="http://www.wxwidgets.org/" target="_blank">wxWidgets</a><br />
2. <a href="http://qt-project.org/" target="_blank">Qt</a><br />
3. <a href="http://www.gtk.org/" target="_blank">GTK+</a><br />
4. <a href="http://www.fltk.org/" target="_blank">FLTK</a><br />
<ul style="background-color: #f3f3f3; border: 0px; color: #333333; font-family: Verdana, 'Trebuchet MS', Tahoma, Georgia, Helvetica; font-size: 14px; line-height: 24.66666603088379px; list-style-image: initial; list-style-position: initial; margin: 0px 0px 20px 20px; padding: 0px; vertical-align: baseline;">
</ul>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8194415071695497633.post-62179311264320068002012-08-26T00:48:00.002-07:002013-10-04T02:37:42.696-07:00图像处理研究资源<b>图像文件格式处理库</b><br />
1. <a href="http://www.ijg.org/" target="_blank">LibJPEG</a> - JPEG 图像处理库<br />
2. <a href="http://www.libjpeg-turbo.org/" target="_blank">libjpeg-turbo</a> - LibJPEG的加速库<br />
3. <a href="http://www.ece.uvic.ca/~frodo/jasper/" target="_blank">libjasper</a> - JPEG-2000 编码器/解码器(codec)的参考实现<br />
4. <a href="http://www.libpng.org/" target="_blank">libpng</a> - PNG图像处理库<br />
5. <a href="http://www.remotesensing.org/libtiff/" target="_blank">LibTIFF</a> - TIFF图像处理库<br />
6. <a href="https://developers.google.com/speed/webp/" target="_blank">WebP</a> - Google根据<a href="http://www.webmproject.org/" target="_blank">VP8/WebM</a>视频编码技术开发的无损图像压缩格式<br />
<a name='more'></a><br />
<b>EXIF处理库</b><br />
1. <a href="http://libexif.sourceforge.net/" target="_blank">libexif</a> - 纯C语言实现的EXIF处理库<br />
2. <a href="http://www.exiv2.org/" target="_blank">Exiv2</a> - C++实现的EXIF处理库<br />
3. <a href="http://www.sentex.net/~mwandel/jhead/" target="_blank">jhead</a> - Exif Jpeg header manipulation tool<br />
4. <a href="http://phototour.cs.washington.edu/focal.html" target="_blank">focal length estimation</a> - Estimating the focal length of a photo from EXIF tags by Noah Snavely<br />
<br />
<b>开发库</b><br />
1. <a href="http://freeimage.sourceforge.net/" target="_blank">FreeImage</a><br />
2. <a href="http://cimg.sourceforge.net/" target="_blank">CImg</a><br />
3. <a href="http://www.xdp.it/cximage.htm" target="_blank">CxImage</a><br />
4. <a href="http://www.orfeo-toolbox.org/otb/" target="_blank">Orfeo Toolbox</a> - 是一个高分辨率的远程传感图像处理库<br />
5. <a href="http://www.lrde.epita.fr/cgi-bin/twiki/view/Olena/WebHome" target="_blank">Olena</a><br />
<br />
<b>遥感图像处理</b><br />
1. <a href="http://www.osgeo.org/" target="_blank">OSGeo</a><br />
2. <a href="http://trac.osgeo.org/ossim/" target="_blank">OSSIM</a><br />
3. <a href="http://www.gdal.org/" target="_blank">GDAL</a> - Geospatial Data Abstraction Library (Trac)<br />
4. <a href="http://www.terralib.org/" target="_blank">TerraLib</a><br />
5. <a href="http://www.orfeo-toolbox.org/otb/" target="_blank">Orfeo Toolbox</a> - an open source remote sensing image processing library<br />
<ul style="background-color: #f3f3f3; border: 0px; color: #333333; font-family: Verdana, 'Trebuchet MS', Tahoma, Georgia, Helvetica; font-size: 14px; line-height: 24.66666603088379px; list-style-image: initial; list-style-position: initial; margin: 0px 0px 20px 20px; padding: 0px; vertical-align: baseline;">
</ul>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8194415071695497633.post-72423957590406522932012-08-26T00:47:00.002-07:002013-10-03T22:32:07.589-07:00三维图形引擎研究资源随着计算机图形软、硬件的不断发展,人们对实时真实感渲染以及场景复杂度提出了更高<br />
的要求。传统的直接使用底层图形接口如OpenGL和DirectX开发图形应用的模式越来越暴露出开发复杂性大、周期长、维护困难的缺陷。<br />
鉴于以上原因,三维图形引擎相关技术受到了广泛的关注。目前,国外已有众多商用或开源三维图形引擎,如OGRE、OSG等。这些开源的三维图形引擎在国内也得到了广泛的应用,如游戏、虚拟现实和地理信息系统等。<br />
<a name='more'></a><br />
下面是一些常用的三维图形引擎:<br />
1. <a href="http://devmaster.net/" target="_blank">Devmaster</a> - 三维图形引擎数据库<br />
2. <a href="http://www.ogre3d.org/" target="_blank">OGRE</a> - 最流行的开源三维图形引擎之一,使用C++开发。<br />
3. <a href="http://axiom3d.net/wiki/index.php/Main_Page" target="_blank">Axiom 3D Engine</a> - OGRE引擎的C#移植。<br />
4. <a href="http://www.openscenegraph.org/projects/osg" target="_blank">OpenSceneGraph</a> - 基于场景图,使用C++开发的三维图形引擎。<br />
5. <a href="http://www.delta3d.org/" target="_blank">Delta3D</a> - 使用OSG进行绘制的游戏三维游戏引擎。<br />
6. <a href="http://g3d.sourceforge.net/index.html" target="_blank">G3D Innovative engine</a> - 又一个使用C++开发的三维图形引擎。<br />
7. <a href="http://www.panda3d.org/" target="_blank">Panda3D </a>- 迪斯尼和CMU联合开发的开源游戏引擎,使用C++和Python开发。<br />
8. <a href="http://irrlicht.sourceforge.net/" target="_blank">Irrlicht Engine</a> - 另外一个使用广泛的三维引擎,使用C++开发。<br />
9. <a href="http://www.crystalspace3d.org/main/Main_Page" target="_blank">Crystal Space</a> - 也是一个使用C++开发的三维图形引擎。<br />
10. <a href="http://www.horde3d.org/home.html" target="_blank">Horde3D</a> - 一个轻巧的三维图形引擎,使用C++开发。<br />
11. <a href="http://www.blender.org/" target="_blank">Blender Game Engine</a> - 基于Blender三维建模软件,使用C++和Python开发。<br />
12. <a href="http://www.cafu.de/" target="_blank">Cafu Engine</a> - 使用C++开发的一个三维图形引擎<br />
13. <a href="http://www.geometrictools.com/" target="_blank">Geometric Tools</a> - Wild Magic引擎的网站。<br />
14. <a href="http://jmonkeyengine.com/" target="_blank">jMonkeyEngine</a> - 使用Java开发的三维图形引擎<br />
15. <a href="http://unity3d.com/" target="_blank">Unity3D</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8194415071695497633.post-2854527237241483142012-08-26T00:45:00.003-07:002013-10-04T00:49:40.189-07:00数据挖掘和机器学习研究资源<b>通用库</b><br />
1. <a href="http://mloss.org/software/" target="_blank">mloss</a> - maching learning open source software<br />
2. <a href="http://graphlab.org/" target="_blank">GraphLab</a> - A New Parallel Framework for Machine Learning<br />
3. <a href="http://mahout.apache.org/" target="_blank">Mahout</a> - Scalable machine learning and data mining<br />
4. <a href="http://dlib.net/" target="_blank">dlib C++ library</a><br />
<a name='more'></a><br />
<b>统计机器翻译</b><br />
1. <a href="http://zh.wikipedia.org/wiki/%E7%B5%B1%E8%A8%88%E6%B3%95%E6%A9%9F%E5%99%A8%E7%BF%BB%E8%AD%AF" target="_blank">统计机器翻译 by wikipedia</a><br />
<br />
<b>统计学习和推理(statistical learning and inference)</b><br />
1. <a href="http://people.csail.mit.edu/dhlin/softwares.html" target="_blank">Statistical Modeling and Inference Toolbox</a><br />
2. <a href="http://www.cs.ubc.ca/~murphyk/Software/" target="_blank">Software by Kevin Murphy and students</a><br />
<br />
<b>词袋模型(bag-of-words model)</b><br />
1. <a href="http://people.csail.mit.edu/fergus/iccv2005/bagwords.html" target="_blank">A demonstration of bag-of-words classifiers</a><br />
<br />
<b>分类(classification)</b><br />
1. <a href="http://www.cs.utexas.edu/~grauman/research/projects/pmk/pmk_projectpage.htm" target="_blank">The Pyramid Match Kernel</a><br />
<br />
<b>Topic Model</b><br />
1. <a href="http://psiexp.ss.uci.edu/research/programs_data/toolbox.htm" target="_blank">Matlab Topic Modeling Toolbox</a><br />
2. <a href="http://nlp.stanford.edu/software/tmt/tmt-0.4/" target="_blank">Stanford Topic Modeling Toolbox</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8194415071695497633.post-13047860554957429142012-08-26T00:42:00.001-07:002013-10-26T06:43:42.722-07:00计算机视觉研究资源<b>资源导航</b><br />
1. <a href="http://www.cs.cmu.edu/~cil/vision.html" target="_blank">The Computer Vision Homepage</a><br />
2. <a href="http://www.cvpapers.com/" target="_blank">CVPapers</a> - Computer Vision Resource<br />
3. <a href="https://sites.google.com/site/jbhuang0604/resources/vision" target="_blank">Computer Vision Resources</a><br />
4. <a href="http://homepages.inf.ed.ac.uk/rbf/CVonline/" target="_blank">CVonline</a> - Compendium of Computer Vision<br />
5. <a href="http://cvisioncentral.com/vision-resources/" target="_blank">Vision Resources | Computer Vision Central</a><br />
6. <a href="http://www.csee.wvu.edu/~xinl/source.html" target="_blank">Reproducible Research in Computational Science</a><br />
<a name='more'></a><br />
<b>通用库</b><br />
1. <a href="http://opencv.org/" target="_blank">OpenCV</a> - Open Source Computer Vision (Wiki, C/C++, 最新版本2.4.2)<br />
2. <a href="http://vxl.sourceforge.net/" target="_blank">VXL</a> - C++ Libraries for Computer Vision<br />
3. <a href="http://www.mrpt.org/" target="_blank">MRPT</a> - The Mobile Robot Programming Toolkit (C++)<br />
4. <a href="http://www.edwardrosten.com/cvd/" target="_blank">libCVD</a> - computer vision library<br />
5. <a href="http://ai.stanford.edu/~sgould/svl/" target="_blank">STAIR Vision Library</a> (C++)<br />
6. <a href="http://www.vlfeat.org/" target="_blank">VLFeat</a> (C/Matlab)<br />
7. <a href="http://hci.iwr.uni-heidelberg.de/vigra/" target="_blank">VIGRA</a> - Generic Programming for Computer Vision (C++)<br />
8. <a href="https://github.com/visionworkbench/visionworkbench" target="_blank">NASA Vision Workbench</a> by <a href="http://www.maximumentropy.org/" target="_blank">Matthew D. Hancher</a> and <a href="http://graphics.stanford.edu/~broxton/" target="_blank">Michael Broxton</a> (C++)<br />
9. <a href="https://sourceforge.net/projects/qvision/" target="_blank">QVision</a> - Computer Vision Library for Qt<br />
10. <a href="http://cvlab.epfl.ch/software/bazar/" target="_blank">BazAR</a> (C++)<br />
11. <a href="http://www.ces.clemson.edu/~stb/blepo/" target="_blank">BLEPO</a> (C++)<br />
12. <a href="http://libccv.org/" target="_blank">CCV</a> - A Modern Computer Vision Library (C)<br />
13. <a href="http://www.aforgenet.com/" target="_blank">AForge</a> (C#)<br />
14. <a href="http://accord-framework.net/" target="_blank">Accord</a> (C#)<br />
<br />
<b>工具箱</b><br />
1. <a href="http://www.csse.uwa.edu.au/~pk/research/matlabfns/" target="_blank">Peter’s Functions for Computer Vision</a> (Matlab)<br />
2. <a href="http://vision.ucsd.edu/~pdollar/toolbox/doc/index.html" target="_blank">Piotr’s Image & Video Matlab Toolbox</a> (Matlab)<br />
3. <a href="http://www.petercorke.com/Toolbox_software.html" target="_blank">Peter Corke’s Machine Vision Toolbox</a> (Matlab)<br />
4. <a href="http://www.robots.ox.ac.uk/~vgg/hzbook/code/" target="_blank">MATLAB Functions for Multiple View Geometry</a><br />
5. <a href="http://dmery.ing.puc.cl/index.php/balu/" target="_blank">Balu Toolbox Matlab</a><br />
6. <a href="http://www.cs.ubc.ca/~murphyk/Software/index.html" target="_blank">Machine Learning Toolbox by Kevin Murphy</a> (Matlab)<br />
7. <a href="http://www.nowozin.net/sebastian/gboost/" target="_blank">Graph Boosting Toolbox for Matlab</a><br />
8. <a href="http://labelme.csail.mit.edu/LabelMeToolbox/index.html" target="_blank">MATLAB Toolbox for the LabelMe Image Database</a><br />
<br />
<b>图像分析和处理</b><br />
1. <a href="http://cimg.sourceforge.net/" target="_blank">The CImg Library</a> - C++ Template Image Processing Toolkit by <a href="https://tschumperle.users.greyc.fr/" target="_blank">David Tschumperlé</a><br />
2. <a href="http://www.boost.org/" target="_blank">Boost GIL </a>- Boost Generic Image Library<br />
3. <a href="http://freeimage.sourceforge.net/" target="_blank">FreeImage</a><br />
4. <a href="http://www.itk.org/" target="_blank">ITK</a> - Segmentation & Registration Toolkit<br />
5. <a href="http://www.vtk.org/" target="_blank">VTK</a> - The Visualization Toolkit<br />
6. <a href="http://rsbweb.nih.gov/ij/" target="_blank">ImageJ</a><br />
7. <a href="http://fiji.sc/Fiji" target="_blank">Fiji</a><br />
8. <a href="http://code.google.com/p/openip/" target="_blank">openip</a><br />
9. <a href="https://github.com/Argoday/IPL" target="_blank">Image Processing Library</a> (IPL)<br />
10. <a href="http://www.mevislab.de/home/about-mevislab/" target="_blank">MeVisLab</a> - Medical Imagemage Processing and Visualization (for Mac OS X)<br />
<br />
<b>数据压缩</b><br />
1. <a href="http://qccpack.sourceforge.net/index.shtml" target="_blank">QccPack</a> - Quantization, Compression, and Coding Library by <a href="https://www.ece.msstate.edu/~fowler/" target="_blank">James E. Fowler</a><br />
<br />
<b>多视几何和三位重构(Multiple View Geometry and 3D Reconstruction)</b><br />
1. <a href="http://www.fit3d.info/" target="_blank">FIT3D</a> - Multiple View Geometry and 3D Reconstruction for Matlab by <a href="http://staff.science.uva.nl/~iesteban/" target="_blank">Isaac Esteban</a><br />
2. <a href="http://www.robots.ox.ac.uk/~vgg/" target="_blank">Oxford Visual Geometry Group</a><br />
<br />
<b>Bundle adjustment</b><br />
1. <a href="http://en.wikipedia.org/wiki/Bundle_adjustment" target="_blank">Wikipedia about Bundle adjustment</a><br />
2. <a href="http://www.ics.forth.gr/~lourakis/sba/" target="_blank">sba</a> - A Generic Sparse Bundle Adjustment C/C++ Package Based on the Levenberg-Marquardt Algorithm<br />
3. <a href="http://code.google.com/p/ceres-solver/" target="_blank">ceres-solver</a> - A Nonlinear Least Squares Minimizer by <a href="http://www.cs.washington.edu/homes/sagarwal/" target="_blank">Sameer Agarwal</a><br />
<br />
<b>点云处理</b><br />
1. <a href="http://pointclouds.org/" target="_blank">PCL</a> - Point Cloud Library<br />
<br />
<b>模型拟合和鲁棒估计</b><br />
1. <a href="http://vision.ece.ucsb.edu/~zuliani/Research/RANSAC/RANSAC.shtml" target="_blank">RANSAC Toolbox for Matlab</a><br />
2. <a href="http://www.csse.uwa.edu.au/~pk/research/matlabfns/#robust" target="_blank">RANSAC Matlab implementation</a><br />
3. <a href="http://www.mrpt.org/RANSAC_C%20%20_examples" target="_blank">MRPT RANSAC C++ examples</a><br />
4. <a href="http://isiswiki.georgetown.edu/zivy/" target="_blank">RANSAC C++ template framework</a><br />
5. <a href="http://pointclouds.org/documentation/tutorials/random_sample_consensus.php" target="_blank">PCL’s RANSAC tutorial</a><br />
6. <a href="http://crsouza.blogspot.com/2010/06/random-sample-consensus-ransac-in-c.html" target="_blank">RANdom Sample Consensus (RANSAC) in C#</a><br />
7. <a href="http://www.kaini.org/Research/GroupSAC/GroupSAC.html" target="_blank">GroupSAC</a><br />
<br />
<b>相机标定</b><br />
1. <a href="http://www.vision.caltech.edu/bouguetj/calib_doc/" target="_blank">Camera Calibration Toolbox for Matlab</a><br />
2. <a href="https://sites.google.com/site/scarabotix/ocamcalib-toolbox" target="_blank">OCamCalib</a> - Omnidirectional Camera Calibration Toolbox for Matlab<br />
<br />
<b>特征检测与匹配</b><br />
1. <a href="http://www.cs.ubc.ca/~lowe/keypoints/" target="_blank">SIFT</a> – Scale-invariant feature transform<br />
2. <a href="http://www.vision.ee.ethz.ch/~surf/index.html" target="_blank">SURF </a>– Speeded Up Robust Features<br />
3. <a href="http://cvlab.epfl.ch/software/brief/" target="_blank">BRIEF</a> – Binary Robust Independent Elementary Features<br />
4. <a href="http://cvlab.epfl.ch/research/surface/daisy/#code" target="_blank">DAISY</a> – An Efficient Dense Descriptor Applied for Wide Baseline Stereo<br />
5. <a href="http://www.vision.cs.chubu.ac.jp/CV-R/pdf/Rublee_iccv2011.pdf%E2%80%8E" target="_blank">ORB</a> – An efficient alternative to SIFT or SURF<br />
<br />
<b>近似邻域邻检索</b><br />
1. <a href="http://www.cs.umd.edu/~mount/ANN/" target="_blank">ANN</a> - A Library for Approximate Nearest Neighbor Searching<br />
2. <a href="http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN" target="_blank">FLANN</a> - Fast Library for Approximate Nearest Neighbors<br />
<br />
<b>机器人</b><br />
1. <a href="http://www.willowgarage.com/" target="_blank">Willow Garage</a> (ROS, PCL and OpenCV)<br />
<br />
<b>课程</b><br />
1. <a href="http://www.comp.nus.edu.sg/~cs4243/" target="_blank">NUS CS4243</a> - Computer Vision & Pattern Recognition<br />
2. <a href="http://www.csie.ntu.edu.tw/~cyy/courses/vfx/12spring/news/" target="_blank">NTU Digital Visual Effects</a><br />
3. <a href="http://pages.cs.wisc.edu/~lizhang/courses/cs766-2010f/" target="_blank">WISC CS766</a>, Computer Vision, Fall, 2010<br />
4.<a href="http://pages.cs.wisc.edu/~lizhang/courses/cs766-2009f/" target="_blank"> WISC CS766</a>, Computer Vision, Fall, 2009<br />
5. <a href="http://pages.cs.wisc.edu/~lizhang/courses/cs766-2008f/" target="_blank">WISC CS766</a>, Computer Vision, Fall, 2008<br />
6. <a href="http://pages.cs.wisc.edu/~lizhang/courses/cs766-2007f/" target="_blank">WISC CS766</a>, Computer Vision, Fall 2007<br />
<br />
<b>研究者</b><br />
1. <a href="http://www.ics.uci.edu/~dramanan/" target="_blank">Deva Ramanan</a> - 目标检测与跟踪<br />
2. <a href="http://research.microsoft.com/en-us/um/people/szeliski/" target="_blank">Richard Szeliski</a><br />
3. <a href="http://www.cs.washington.edu/homes/curless/" target="_blank">Brian Curless</a> (University of Washington)<br />
4. <a href="http://www.cs.cornell.edu/~snavely/" target="_blank">Noah Snavely</a><br />
5. <a href="http://www.cs.bath.ac.uk/brown/research/research.html" target="_blank">Matthew Brown</a> - 特征检测与匹配<br />
6. <a href="http://www.cs.toronto.edu/~kyros/" target="_blank">Kyros Kutulakos</a><br />
7. <a href="http://www.cs.washington.edu/homes/sagarwal/" target="_blank">Sameer Agarwal</a><br />
8. <a href="http://www.nowozin.net/sebastian/index.html" target="_blank">Sebastian Nowozin</a><br />
<br />
<b>书籍</b><br />
1. <a href="http://szeliski.org/Book/" target="_blank">Computer Vision: Algorithms and Applications</a> by Richard Szeliski<br />
<br />
<b>研究方向</b><br />
1. Sensors and Early Vision(传感器和早期视觉)<br />
2. Color and Texture(颜色和纹理)<br />
3. Segmentation and Grouping(分割和组合)<br />
4. Motion and Tracking(运动和跟踪)<br />
5. Stereo and Structure from Motion(立体和从运动恢复结构)<br />
6. Image-Based Modeling(基于图像的建模)<br />
7. Illumination and Reflectance Modeling(光照和反射建模)<br />
8. Shape Representation(形状表示)<br />
9. Object Recognition(对象识别)<br />
10. Video Analysis and Event Recognition(视频分析和事件识别)<br />
11. Face and Gesture(人脸和手势)<br />
12. Statistical Methods and Learning(统计方法和学习)<br />
13. Performance Evaluation(性能评估)<br />
14. Image and Video Retrieval(图像和视频检索)<br />
15. Applications(应用)Unknownnoreply@blogger.com0