MAC OX 10.8 环境下运行TLD算法(MATLAB版)

原创 2013年11月10日 23:43:07

关于TLD算法,就不具体阐述了,谷歌百度搜索一下,介绍的文章相当多。


概述:

一、安装和编译高性能OpenCV 2.4.6

二、安装xcode和command line tool

三、MATLAB安装

四、TLD算法修改和配置


详细介绍:

一、安装和编译高性能OpenCV 2.4.6

(高性能编译部分引用:http://tianchunbinghe.blog.163.com/blog/static/7001201151592834161/)

1)先安装好brew,这个安装软件利器。

2)利用brew安装cmake,libpng,libjpeg,libtiff,pkgconfig;

3) 安装 Intel Threading Building Blocks

Intel Threading Building Blocks (TBB) 类似于以前的 OpenMP 和苹果系统自带的 GCD,用于帮助用户创建隐式的并行计算程序,底层依赖于操作系统的多线程库。TBB 最初是 Intel 的商业软件,但自从 3.0 以后就开源了,同时 Intel 仍然销售带有技术支持的商业版本。在其下载站点上下载了最新的 Commercial Aligned Release,目前的版本是4.2 。下载后把它移动到了 /opt/intel 目录下并创建了一个软链接以便日后版本升级时可以随意切换到新版本:

$ ls -l
total 8
lrwxr-xr-x   1 root    wheel   17 11  6 09:40 tbb -> tbb42_20131003oss
drwxr-xr-x  12 paopao  staff  408 11  6 09:33 tbb42_20131003oss

然后需要做两件事,首先修改 /opt/intel/tbb/bin/tbbvars.sh 脚本文件的第一个有效行,将正确的安装位置设置到环境变量上:

TBBROOT={SUBSTITUTE_INSTALL_DIR_HERE}

修改为:

SUBSTITUTE_INSTALL_DIR_HERE="/opt/intel/tbb"
TBBROOT="/opt/intel/tbb"


这样改好像有点问题,但是OpenCV只识别SUBSTITUTE_INSTALL_DIR_HERE,对TBBROOT不关注;(也可能我没有注意到,时间比较紧,没有细究这里)。


然后在 ~/.bash_profile 里添加一行以确保 TBB 库可被以后编译出来的 OpenCV 库成功加载:

source /opt/intel/tbb/bin/tbbvars.sh

操作完成以后重新打开一个终端窗口,显示 DYLD_LIBRARY_PATH 环境变量的值,里面应该包含 TBB 的路径才对:

$ echo $DYLD_LIBRARY_PATH
/opt/intel/tbb/lib

4)下载并编译高性能OpenCV;

直接官网下载最新版本程序包,解压并编译安装;这里需要注意的地方是cmake编译选项(注意最后还有一个点,表示cmake要编译的CMakefiles.txt存在地方);

cmake -G "Unix Makefiles" -D BUILD_NEW_PYTHON_SUPPORT=OFF -D CMAKE_OSX_ARCHITECTURES="x86_64" -D WITH_TBB=ON -D TBB_INCLUDE_DIR=/opt/intel/tbb/include .


cmake之后的日志可以看到这个字样表示成功。

--     Use TBB:                    YES


二、安装xcode和command line tool;

这部分比较简单,直接app store安装和下载。


三、MATLAB安装

这部分网上相关教程也比较多,也相对比较简单,下载直接安装即可。(个人安装最新的matlab 2013a)

这里要重点说明的一点:matlab C编译器 xcode的设置,主要是安装optsPatch_MACOSX8.patch补丁。

1)到官方网站 http://www.mathworks.cn/support/solutions/en/data/1-FR6LXJ/ 下载最新的补丁(些此文时是optsPatch_MACOSX8.patch)
2)进入matlab根目录

		>>cd(matlabroot)
		>>!unzip -o ~/Downloads/optsPatch_MACOSX8.patch

3)命令行下输入:mex -setup ,选择Template Options file for building gcc MEX-files 即可。
至此就完成了matlab C编译器 xcode的设置


四、TLD算法修改和配置

1)配置TLD算法matlab路径:(选择Set Path-> Add with Subfolders)



2) 安装如下内容修改compile.m文件

if ismac
    disp('--->Mac');
    
    include = ' -I/usr/local/include/opencv -I/usr/local/include/'; 
    libpath = '/usr/local/lib/'; 


并注释掉if isUnix的判断部分;这部分会跟ismac冲突。


3)修改源文件:

1. 头文件:

//在TLD中,lkcpp文件里面的
#include <cv.h>
#include <highgui.h>
修改为:
#include <opencv2/opencv.hpp>
#include <opencv2/legacy/legacy.hpp>

//在TLD中,lk和fern的cpp文件里面注释掉:
//#ifdef _CHAR16T
//#define CHAR16_T
//#endif

2.修改lk.cpp里面的函数参数:

cvCalcOpticalFlowPyrLK( IMG[J], IMG[I],..., Level, 0 , 0,...);
修改为:
cvCalcOpticalFlowPyrLK( IMG[J], IMG[I],..., Level,
status , 0,...);

(省略号表示省略了部分参数)

3.修改initcamera.m文件

source.vid = videoinput('winvideo', 1, 'YUY2_640x480');

修改为:

source.vid = videoinput('macvideo',[1]);


######################################

摄像头配置

1.获取matlab安装的硬件信息:

>> imaqhwinfo

ans = 

    InstalledAdaptors: {'dcam'  'gige'  'macvideo'}
        MATLABVersion: '8.1 (R2013a)'
          ToolboxName: 'Image Acquisition Toolbox'
       ToolboxVersion: '4.5 (R2013a)'

>> imaqhwinfo('macvideo')

ans = 

       AdaptorDllName: [1x85 char]
    AdaptorDllVersion: '4.5 (R2013a)'
          AdaptorName: 'macvideo'
            DeviceIDs: {[1]}
           DeviceInfo: [1x1 struct]

>> help videoinput

2.如果获取视频输入的全部信息可以matlab输入help videoinput;

######################################


4.修改img_blur.m文件:

h = FSPECIAL('gaussian',csize,sigma);

修改为

h = fspecial('gaussian',csize,sigma);



5.依次运行compile.m,initcamera.m,run_TLD.m;

就可以运行TLD程序了,代码默认是一个摩托车手的视频跟踪视频。


6.摄像头采集视频并进行跟踪,


修改run_TLD.m文件:

opt.source   = struct('camera',0,'input','_input/','bb0',[])。

修改为

opt.source   = struct('camera',1,'input','_input/','bb0',[])。
 
0改成1,就能成功从摄像头运行TLD程序了。


至此,mac os x环境下运行TLD算法流程基本完成。









Mac上(Xcode7)使用Matlab调用libsvm库函数

libsvm经典的库函数的使用教程网上很多了,大体流程可参照http://blog.csdn.net/abcjennifer/article/details/7370177,这里只是解决一个在安装了X...
  • sadcup
  • sadcup
  • 2015年09月24日 13:36
  • 1311

数据挖掘-全面的MAC上matlab安装libsvm

主要整理于: 1,简书mac安装libsvm 2,matlab社区关于mex -setup失败 (下面的过程会翻译) 3,百度知道关于如何确定安装成功 步骤: 1,下载下面两个文件: Matlab...
  • maxu12345
  • maxu12345
  • 2016年03月18日 16:27
  • 1658

MATLAB R2014b 的安装破解

注: 本博文纯供技术学习之用,无意侵权,请不要传播转载并在破解24小时之内删除 提要: 因为考虑到数学建模和日常的数学学习只用安装的matlab,现在我了解的最新的应该就是matlab ...
  • baidu_25537855
  • baidu_25537855
  • 2015年09月24日 17:54
  • 5688

Mac OS环境下的libsvm在Matlab中安装

Mac OS下在Matlab中安装libsvm
  • u013515273
  • u013515273
  • 2016年04月28日 17:22
  • 1878

Mac上的Matlab编译添加Libsvm库

环境:Matlab R2016a & MacOX 10.12 & Xcode8 LIbsvm 3.22 本篇文章主要记录了如何在以上环境下编译使用libsvm,毕竟要在Mac上使用这个库,有些工作还...
  • ZhouZhouMonster
  • ZhouZhouMonster
  • 2017年05月05日 20:29
  • 319

Mac上Matlab库libsvm安装指南

Mac上Matlab库libsvm安装指南 How SVM works 一个星期前装了Kinect的环境,当时用的百度搜索教程,往上各种不靠谱的...
  • maxu12345
  • maxu12345
  • 2016年05月19日 09:22
  • 479

matlab中图像块(patch)处理命令小结

在使用MATLAB语言实现图像处理算法时,我们常常会遇到需要对图像块(patch)进行运算的情况。受到其他语言编程习惯的影响,循环通常是不假思索的第一选择。但由于matlab是利于矩阵运算的编程语言,...
  • left_la
  • left_la
  • 2014年11月17日 23:10
  • 15366

matlab学习

12天的努力,我看完了586页书,学了MATLAB,过得很累,但我心里很舒坦。我不用再为别的事情烦心了,因为我在一门心思的学习,我花了我将近所有的课余时间。只有这样,我才能用自己身体上的累来掩盖我自己...
  • xiaodeguang
  • xiaodeguang
  • 2016年11月19日 14:17
  • 1255

Matlab中的im2col函数

官方文档对其功能的描述为为:Rearrange image blocks into columns. 即重排图像块为矩阵列。 函数原型为:B = im2col(A,[m n],block_type)...
  • T_27080901
  • T_27080901
  • 2016年03月22日 21:22
  • 5529

patch match

1、PatchMatch: A Randomized Correspondence Algorithm for Structural Image Editing http://gfx.cs.princ...
  • luckyboy101
  • luckyboy101
  • 2014年03月11日 09:14
  • 2454
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MAC OX 10.8 环境下运行TLD算法(MATLAB版)
举报原因:
原因补充:

(最多只允许输入30个字)