
萎缩的项目logo。。。
有关机器学习的开源项目Apache Mahout三月份的时候推 出了它的0.3版本,这个新版本在之前的基础上添加了一些新功能,比之前的版本更为稳定,性能也有相应的提升。InfoQ采访了Apache Mahout项目的开发者Grant Ingersoll和Ted Dunning,其中Grant Ingresoll也是该项目的创始人之一。
过去十年里,从大 量原始数据中解析出相关信息的需求急剧增长,以致于聚类(clustering)、协同过滤(collaborative filtering)和分类(categorization)等机器学习技术的需 求也是呈稳定增长势态。
Grant Ingersoll这样介 绍Mahout 项目:
Mahout另一个重点是,它提供一系列工 具把文本数据表示成矩阵形式。这也是采用Mahout机器学习算法来处理数据的首要任务。
Mahout项目是由Apache Lucene(开 源搜索项目)社区几 个热衷于聚类、分类等机器学习算法的技术人员所发起。社区最初的开发“追随”于Ng et al.发表的论文“支 持多核之 上的机器学习的Map- Reduce框架(Map-Reduce for Machine Learning on Multicore)”,自项目启动以来,社区也致力于各 种机器学习算法、模式的开发。
最新Apache Mahout版本的亮点有:
在问到这个版本中最激动人心的特性 时,Ingersoll这样回答:
新添加的分布式奇异值分解(Singular Value Decomposition)计算非常令人期待,此外,还有那些方便用户把内容导入到Mahout的诸多工具。其中,最激动人心的其实并不是有形的,而是 Mahout社区的成长。社区目前已吸引到数量客观的贡献者和用户。任何开源项目的发展过程当中,最初阶段往往都很惨淡,工作常常只有一两个人去做,一旦 当中有人离开甚至只是减缓开发速度,整个项目都有可能中途夭折。但我相信Mahout已经通过了这样的考验,现在已经有非常多非常活跃的社区成员正努力把 它变成一个真正令人激动的项目。
Mahout项目的未来计划包括:
SGD 和SVM的实现将适宜于文档挖掘以及其它一些与文本或重复归类数据相关的应用。尤其令人期待的是SGD系统将引入在线创建互动变量的 能力。
查看英文原文:Mahout 0.3: Open Source Machine Learning
来源
分类: 新闻 标签: categorization, clustering, collaborative filtering, dirichlet, hadoop, machine learning, mahout, naive bayes, sgd, SVD, svm
基于计算机视觉基础练习(一)的进一步练习(练习仍然来自于Erasmus Mundus Vision and Robotics (VIBOT) program)
参考资料可以仍然用Computer vision: algorithm and applications,draft March 24 2010, chapter 2.1.5


由于练习描述比较长,就不直接贴在帖子里了。请下载练习:
cvexercise2questions
参考report:
cvexercise2 report
参考matlab code (因为仍然是贴在pdf中的,所以同样注意换行错误):
cvexercise2code
enjoy!!!!
分类: 练习 标签: 2D, 3D, cameras, computer vision, epipolar, epipolar geometry, Erasmus Mundus, essential matrix, Fundamental Matrix, Gaussian noise, Least Square, matlab, stereo vision, SVD, VIBOT, visual perception
决定发几个原来上课时候做的一些小练习,感觉对计算机视觉入门挺有帮助的,希望感兴趣的童鞋可以自己试一试。(练习来源于Erasmus Mundus vision and robotics (VIBOT) program)
参考书籍可以用前些天发的一个帖子推荐的那本书,Computer vision: algorithm and applications,draft March 24 2010, chapter 2.1.5。自己稍微翻看了一下这本书,相当相当不错,非常非常与时俱进。。。同推荐一下。。。
Calibrate a simulated camera
Description: Calibrate a simulated camera. Construct the transformation matrix from a set of
parameters. Get 3D and 2D points. Calibrate by using the method of Hall. Check the accuracy
against the increase of noise in the image points.
Programming platform: Matlab
Part 1
Step 1. Define the intrinsic parameters and extrinsic parameters with the following values:
au=557.0943; av=712.9824; u0=326.3819; v0=298.6679;
f=80 mm.;
Tx=100 mm.; Ty=0 mm.; Tz=1500 mm.;
Phix=0.8*pi/2; Phiy=-1.8*pi/2; Phix1=pi/5; Euler XYX1
Image size:640×480
Step 2. Get the intrinsic and extrinsic transformation matrices
Step 3. Define a set of 3D points in the rang [-480:480;-480:480;-480:480]. Note the points
should be non-linear and non-coplanar. At least you need to define a set of 6 points. It’s not
necessary to demonstrate mathematically the non-linearity/non-coplanarity, just define 6 points
randomly in the 3D space.
Step 4. Compute the projection on the image plane by using the camera transformation matrix.
Do not remove the subpixel precision of the obtained points.
Step 5. Open a window in matlab which will be used as the image plane and draw the 2D
points. Are the points well spread in the image plane? Will the distribution of points in the image
affect the accuracy in the computation?
Step 6. By using the points of Step 3 and their projection obtained in Step 5, compute the 3×4
transformation matrix by using the method of Hall.
Step 7. Compare the matrix obtained in Step 6 to the one defined in step 2.
Step 8. Add some Gaussian noise to the 2D points producing discrepancies between the range
[-1,+1] pixels for the 95% of points. Again repeat step 6 with the noisy 2D points and the ones
defined in step 3. Compare the obtained matrix to the one you got in step 6 with the non-noisy
points.
Step 9. Increase the number of 3D points up to 10 points and then up to 50 points and repeat
step 8. More the points we use more accurate is the matrix obtained.
Part 2.
Step 10. Define the vector X of the method of Faugeras. Compute X by using both leastsquares
(LS) and Singular Value Decomposition (SVD) by using the points of step 3 and 4,
without noise. Extract the camera parameters from both computations. Compare the obtained
parameters with the ones defined in Step 1.o
Step 11. Add Gaussian noise to the 2D points (produce noise so that the 95% is in the rang
[-1,1], then in the rang [-2,2] and finally in the rang [-3,3] ) and compute vector X (repeat step
10) for each rang. Which are the parameters more influenced by noise? Which method of
computation is more accurate (LS or SVD)? Which method is more accurate (Faugeras or Hall)
with such noise?
Part 3.
Step 12. Open another window in matlab and draw the world coordinate system, the camera
coordinate system, the focal point, the image plane, and both 3D points and their corresponding
projections on the image plane by using the parameters of step 2 and points without noise.
Check if camera position corresponds to (tx, ty, tz) defined in step 2. Check if all the optical rays
cross at the focal point? Check if 2D points lie on the optical rays defined by the 3D points?
由于练习来自于原来上课的练习,所以有些符号,例如au,av之类是跟据当时课件定义的。如果有些童鞋对这些符号不清楚,可以参考附件中的report。
camera calibration report:实在找不到当时写的完整的report了,只找到了这个draft。将就用一下吧,的确是有问题的,比如step11就完全没有写,而且连图都没有,囧!不过后面我会上传全部的matlab code,不清楚话可以看code。希望之后的一些练习能找到完整的report。
MATLAB CODE:
matlab code for camera calibration
尝试上传.m格式和.rar格式的文件不成功,只好把code粘到了pdf里,大家用的时候小心换行造成的错误。。。有谁知道该怎么解决这种上传的问题啊?
分类: 新闻, 练习 标签: 2D, 3D, camera calibration, computer vision, Erasmus Mundus, Faugeras, Gaussian noise, Hall, Least Square, matlab, optical rays, SVD, VIBOT, visual perception
最新评论