最近在看一个名叫“Darwin”的工具箱(有关机器学习,计算机视觉的工具箱,里面有很多可以直接调用的函数),因为这名字太常见,以至于谷歌和百度都找不到任何博客或者空间有文章介绍这个工具箱,所以我就做第一个,兴许可以给以后使用该工具箱的朋友们一点儿帮助。
由于是上个月配置的,现在才想到写个总结,忘了好多内容……
工具箱的介绍网址:http://drwn.anu.edu.au/index.html
开发工具箱的大牛主页:http://users.cecs.anu.edu.au/~sgould/
官网有很详细的配置过程,按照说明基本没问题,但是我遇到几个印象深刻的问题:
1.出现了multi MFC库不能加载?(具体描述忘了。。)
是在运行工程的时候,链接出错。当时困扰了好久,忙着找解决方案也没截图……解决方案:我的电脑是中文win10的,vs2013是英文版的,所以按照系统的语言,下载中文MFC库,至于链接,把你的错误复制百度下,会找到微软官网的链接,有的人的IDE上错误信息就会提供链接。。。反正我的没有。起初按照网上有的人说法按照vs的语言,我下载了英文的MFC库,结果MFC库根本安装不了,所以死马当活马医,试了下中文版MFC,结果好使了,建议大家也按照我这样来吧,一个语言版本不好使,试试另一个。
2.opencv的配置问题。
我下载的是1.0.9的Darwin工具箱,里面vs配置的opencv版本是2.4.9,而我的电脑已经有3.0版本的cv,所以每个工程都要修改“属性——链接——输入”,把里面的2.4.9的库都删除。同时“属性——c/c++——General——第一项”,这里我是把我的opencv文件夹中的文件进行删减,保留所有包含代码的文件,然后将处理后的opencv文件夹放到工具箱的“external”文件夹下,这样这里的属性就可以不用改了。
暂时能想到这些,想到再更新~
/***************************************************/
2016.5.7更新:
试验了下multiSeg工程的python脚本(prepareMSRCDemo.py),结果发现他要下载微软的图像库,结果半天都没下载成功,原因是下载速度太慢。。。。所以解决方案是自己到微软网站上下载(http://research.microsoft.com/en-us/projects/ObjectClassRecognition/),然后把压缩包放到工程下就OK了。
下载之后压缩包的名字不用改变的,直接用。
同时prepareMSRCDemo做如下改动:
# download and preprocess data --------------------------------------- '''去掉原程序中的下载 URL_BASE = "http://research.microsoft.com/en-us/um/people/antcrim/data_objrec/" URL_FILE = "msrc_objcategimagedatabase_v2.zip" # fetch data if (os.path.isfile(URL_FILE) == 0): print("WARNING: Downloading images. This make take a while...") try: urllib.request.urlretrieve(URL_BASE + URL_FILE, URL_FILE) except: print("ERROR: Could not download data file " + URL_FILE) exit() ''' #在这里本地添加图像库_start URL_FILE = "msrc_objcategimagedatabase_v2.zip"
然后脚本会自己负责解压,训练分类器等等。。。
/********************************/
2016.5.9更新
由于要换到另一台电脑重新训练分类器,我的做法是用U盘吧vs整个工程的文件夹拷贝走,新电脑里下载opencv,python,环境配置好。
但是在新电脑打开工程编译的时候发现了一些问题:
1.出现了好多连接错误或者是找不到文件错误,我采取的办法是把Darwin的工程属性里涉及到opencv的全搞上去,错误几乎就没了,同时记得考虑下官网的提示(Set "maximum number of parallel project builds"
to 1.)
2.出现了一种类似于这样的错误:error C1041: 无法打开程序数据库“x:\projects\hellococo\debug.win32\vc120.pdb”;如果要将多个 CL.EXE 写入同一个 .PDB 文件,请使用 /FS 。
所以我采取的做法是:
解决方案:修改项目属性 右击项目 --> "属性”
1. “C/C++” --> "常规” -->”调试信息格式” 设置为 “C7 兼容(/Z7)”
2. “C/C++” --> "代码生成” -->”启用字符串池” 设置为 “是(/GF)”
3. “链接器” --> "调试” -->”生成调试信息” 设置为 “是(/DEBUG)”
参考网页是:http://home.eeworld.com.cn/my/space-uid-291513-blogid-239457.html
这样的话,错误就一个都没有了。
/********************************************/