当前位置:  编程技术>软件工程/软件设计
本页文章导读:
    ▪第二章 IoC Spring自动扫描和管理Bean      通过Spring容器自动扫描和管理Bean,我们不再需要在配置文件中使用<bean>标签管理Bean。 2.9.1引入context命名空间 如何引入命名空间及命名空间的写法已经在之前的章节中详细说过。具体可.........
    ▪CMMI简介               真受不了这些鸟人写的书了,明明很简单的东西被写的云里雾里的。如下一段文字,即懂CMMI。          CMMI:书名叫软件能力成熟度集成模型。本来.........
    ▪目标检测(Object Detection)原理与实现(六)      基于形变部件模型(Deformable Part Models)的目标检测         上节说了基于cascade的目标检测,cascade的级联思想可以快速抛弃没有目标的平滑窗(sliding window),因而大大提高了检.........

[1]第二章 IoC Spring自动扫描和管理Bean
    来源: 互联网  发布时间: 2013-11-19

通过Spring容器自动扫描和管理Bean,我们不再需要在配置文件中使用<bean>标签管理Bean。

2.9.1引入context命名空间
如何引入命名空间及命名空间的写法已经在之前的章节中详细说过。具体可参考以下:
http://blog.csdn.net/p_3er/article/details/9231307

2.9.2打开扫描功能

<context:component-scan base-package="cn.framelife.spring"/>

在打开扫描功能后,注解功能也打开了,所以不再需要再打开注解功能。

base-package是要扫描的类的包路径。


2.9.3扫描标注了以下注解的类

@Service业务层组件,如service

@Controller控制层组件,如Struts中的Action

@Repository数据访问层组件,如dao

@Component当组件不好归类时使用,泛指


上面几个注解都是类范围的,所以应该标注在类名的头上。


2.9.4获取Bean

在扫描的时候,Bean的id,如UserDaoImpl会默认为userDaoImpl。

但如果有需要,我们是可以修改这个默认名字的。

如:

@Service("userService")
public class UserServiceImpl implements UserService {
        //...
}

这个时候我们可以使用userService来获取对象。


2.9.5注解作用域
@Service("userService")@Scope("prototype")
public class UserServiceImpl implements UserService {
      //...
}


作者:p_3er 发表于2013-7-4 9:36:54 原文链接
阅读:5 评论:0 查看评论

    
[2]CMMI简介
    来源: 互联网  发布时间: 2013-11-19

         真受不了这些鸟人写的书了,明明很简单的东西被写的云里雾里的。如下一段文字,即懂CMMI。

         CMMI:书名叫软件能力成熟度集成模型。本来有3个不同领域分别的的CMM(软件、硬件、产品),然后CMMI干的事就是把三个领域的CMM(软件能力成熟度模型)集成起来。

        至于什么叫软件能力成熟度模型?就是公司在运作的过程中,各个成员所要遵守的一条条准则。和《中学生行为准则》一样。你按照成熟度1级所要求的那几条准则做了,你就是成熟度1级了。一共有5级。CMMI的特点就是,这些准则不止适用于比如写软件的一个职业,还是用于整个开发组织的诸如硬件、质量、测试等所有相关岗位共同遵守的准则。要不怎么叫整合呢!

        CMMI最新版本是1.3,分为3个版本,适用于3种不同的活动。搞开发的,就用CMMI-DEV版本;搞服务的,就用CMMI-SVC版本;搞采购的,就用CMMI-ACQ。

        上面说了成熟度有5级,达到下一级的要求就可以升一级。还有一种视角,采用另一种评级方式,不是统一的说某些条款达到了就可以升级,而是某一个条款达到了多少级,允许不同的条款达到不同的级别,共6级。某一个条款是多少级和它位于什么成熟度等级是无关,也是不会同时出现的,因为一个组织只会选择一种评级模式。基于整体5级成熟度分级的叫阶段式模型,基于各个组成部分单独的6级评价的叫做连续式模型。

         上面说的”条款“这个字眼比较笼统,正式的叫法是过程域,说白了就是事项。例如“需求管理“过程域,属于2级成熟度要求做到的。在一个过程域里,还包括一些目标和实践。什么意思呢?就是要完成需求管理这个过程域,需要达到1个目标(其他过程域可能会有多个):管理需求并识别计划与工作产品的不一致性。要达成这个目标需要5个实践(实践就是具体的操作方法,也就是5条具体的达成目标的手段)。

         到这里,可能会有点迷糊。这个需求管理的过程域属于2级成熟度,那么它本身按照阶段式模型又怎么分级呢?需求管理这个过程域和其他所有过程域一样,都可以在连续式模型中分为6级。压根没做,叫0级;做了并完成了此过程域规定的目标,叫1级;这个东西被做需求管理的人制度化了,叫2级;这个东西被全公司认识了,有了能让全组织明确的定义叫3级;需求管理这个东西被定量的研究了,叫4级;能不断提高4级时确定的定量的数值,这个提高的能力被制度化,也就是作为一项专门的工作了,叫5级,也就是最高级了。

       好吧,说完单个的过程域的连续式模型上的分级。说说过程域的整体情况和哪些过程域属于哪些成熟度等级。

       上面说过,CMMI有3个版本,每个版本叫做一个群集。3个版本共有的过程域叫基础模型(CMF),共有16个。CMMI-DEV还有6个特有的,CMMI-ACQ也还有6个特有的,CMMI-SVC还有8个特有的。

        具体的每个过程域是什么,有什么目标和实践,位于哪个成熟等级,属于哪个群集,就可以直接查官网的手册了。

        

作者:ljy1988123 发表于2013-7-4 10:32:02 原文链接
阅读:0 评论:0 查看评论

    
[3]目标检测(Object Detection)原理与实现(六)
    来源: 互联网  发布时间: 2013-11-19

基于形变部件模型(Deformable Part Models)的目标检测


        上节说了基于cascade的目标检测,cascade的级联思想可以快速抛弃没有目标的平滑窗(sliding window),因而大大提高了检测效率,但也不是没缺点,缺点就是它仅仅是个很弱的特征,用它做分类的检测器也是弱分类器,仅仅比随机猜的要好一些,它的精度靠的是多个弱分类器来实行一票否决式推举(就是大家都检测是对的)来提高命中率,确定分类器的个数也是经验问题。这节就来说说改进的特征,尽量使得改进的特征可以检测任何物体,当然Deep Learning学习特征很有效,但今天还是按论文发表顺序来说下其他方法,(服务器还没配置好,现在还不能大批跑Deep Learning ^.^),在第四节说了ASM并且简单的提了下AAM,这两个模型其实就是形变模型(deform model),说到基于形变模型检测物体的大牛,就不得说说芝加哥大学教授Pedro F. Felzenszwalb,Pedro发表很多有关基于形变部件来做目标检测的论文,并靠这个获得了VOC组委会授予的终身成就奖,另外它早期发表的《Belief propagation for early vision》也很出名,虽然比不上Science那样的开辟新领域的Paper,但在不牺牲精度的情况下大大提高了BP算法的运行效率,这个BP算法不是神经网络的BP算法,而是概率图模型里的推理求解方法(最大后验概率),它也被用在了后面要说基于霍夫推理的目标检测。貌似Pedro很擅长做这种事情,他的另外一篇论文《Cascade Object Detection with Deformable Part Models》也是不牺牲精度的情况下把基于形变部件做目标检测的效率提高了20倍,今天就来学习一下这种基于形变部件的目标检测。

        基于形变部件的目标检测是现在除了深度学习之外的还相对不错的目标检测方法,先来看下为什么要使用形变部件,在(图一)中,同一个人的不同姿态,试问用前面几节中的什么方法可以检测到这些不同姿态的人?阈值不行,广义霍夫变换行吗?人的姿态是变换无穷的,需要太多的模板。霍夫森林投票?貌似可以,但是霍夫森立的特征是图像块,只适用于一些形变不大的物体,当图像块内的形变很大时同样不太适用。那么ASM可以吗?想想也是和广义霍夫变换一样,需要太多的均值模板。归根结底就是我们没有很好的形状描述方法,没有好的特征。而Pedro几乎每发表一篇论文就改进一下形状描述的方法,最终由简单的表示方法到语法形式的表示方法,其演化过程可以在参考文献[4]中看出,参考文献[4]是Pedro的博士论文。


(图一)

        既然上节中的几种方法都不能解决大形变目标的检测问题,那基于形变部件的目标检测也该上场了。Pedro的五篇关于目标检测的顶级paper,小生就不一一说了,挑参考文献中的三篇学习一下。参考文献[1]、[2]、[3]分别讲述了如何利用形变模型描述物体(特征阶段)、如何利用形变部件来做检测(特征处理+分类阶段)、如何加速检测。首先来说下文献[1]的形变部件。在Deformable Part Model中,通过描述每一部分和部分间的位置关系来表示物体(part+deformable configuration)。其实早在1973年,Part Model就已经在 “Therepresentation and matching of pictorial structures” 这篇文章中被提出了。

(图二)

         Part Model中,我们通过描述a collection of parts以及connection between parts来表示物体。(图二)表示经典的弹簧模型,物体的每一部分通过弹簧连接。我们定义一个energy function,该函数度量了两部分之和:每一部分的匹配程度,部分间连接的变化程度(可以想象为弹簧的形变量)。与模型匹配最好的图像就是能使这个energy function最小的图片。形式化表示中,我们可以用一无向图 G=(V,E) 来表示物体的模型,V={v1,…,vn} 代表n个部分,边 (vi,vj)∈E 代表两部分间的连接。物体的某个实例的configuration可以表示为 L=(l1,…,ln),li 表示为 vi 的位置(可以简单的将图片的configuration理解为各部分的位置布局,实际configuration可以包含part的其他属性)。给定一幅图像,用 mi(li) 来度量vi 被放置图片中的 li 位置时,与模板的不匹配程度;用 dij(li,lj) 度量 vi,vj 被分别放置在图片中的 li,lj位置时,模型的变化程度。因此,一副图像相对于模型的最优configuration,就是既能使每一部分匹配的好,又能使部分间的相对关系与模型尽可能的相符的那一个。同样的,模型也自然要描述这两部分。可以通过下面的(公式一)描述最优configuration:

(公式一) 

        优化(公式一)其实就是马尔科夫随机场中的经典问题求解,可以用上面说的BP算法求解。说的理论些就是最大化后验概率(MAP),因为从随机场中很容易转换到概率测度中(gibbs measure),在这就不说那么复杂了,想系统的学习相关理论可以学习概率图模型(probabilistic graphical model)。识别的时候采用就是采用部件匹配,并且使得能量最小,这有点类似于ASM,但是ASM没有使用部件之间的关系,只是单纯的让各匹配点之间的代价和最小。匹配结果如(图三)所示:

(图三)

       上面的方法没有用到机器学习,另外部件的寻找也不是一件容易的事情,因为首先要大概预估部件的位置,因此这个方法也有缺点,但这个形变部件的思想可以用来作为特征,接着就来看下Pedro的第二篇文献[2]如何用它来做目标检测。

Pedro在文献[2]中基于形变模型的目标检测用到了三方面的知识:1.Hog Features 2.Part Model 3. Latent SVM。

1.      作者通过Hog特征模板来刻画每一部分,然后进行匹配。并且采用了金字塔,即在不同的分辨率上提取Hog特征。

2.      利用上段提出的Part Model。在进行object detection时,detect window的得分等于part的匹配得分减去模型变化的花费。

3.      在训练模型时,需要训练得到每一个part的Hog模板,以及衡量part位置分布cost的参数。文章中提出了Latent SVM方法,将deformable part model的学习问题转换为一个分类问题。利用SVM学习,将part的位置分布作为latent values,模型的参数转化为SVM的分割超平面。具体实现中,作者采用了迭代计算的方法,不断地更新模型。

针对上面三条,我们可能有几个疑问:1、部件从何而来?2、如何用部件做检测?在基于部件做目标检测之前,赢得PASCAL VOC 2006年挑战的Dalal-Triggs的方法是直接用HOG作为特征,然后直接基于不同尺度的滑动窗口做判别,像一个滤波器,靠这个滤波器赢得短时的荣誉,但不能抗大形变的目标。Pedro改进了Dalal-Triggs的方法,他计算作为一个得分,其中beta是滤波器,phi(x)是特征向量。通过滤波器找到一个根(root)部件p0,根部件有专门的滤波器,另外还有一系列非根部件(parts)p1…pn,然后把他们组成一个星形结构,此时回顾(图一)的形变模型思想。每个部件用

    
最新技术文章:
▪主-主数据库系统架构    ▪java.lang.UnsupportedClassVersionError: Bad version number i...    ▪eclipse项目出现红色叉叉解决方案
▪Play!framework 项目部署到Tomcat    ▪dedecms如何做中英文网站?    ▪Spring Batch Framework– introduction chapter(上)
▪第三章 AOP 基于@AspectJ的AOP    ▪基于插件的服务集成方式    ▪Online Coding开发模式 (通过在线配置实现一个表...
▪观察者模式(Observer)    ▪工厂模式 - 程序实现(java)    ▪几种web并行化编程实现
▪机器学习理论与实战(二)决策树    ▪Hibernate(四)——全面解析一对多关联映射    ▪我所理解的设计模式(C++实现)——解释器模...
▪利用规则引擎打造轻量级的面向服务编程模式...    ▪google blink的设计计划: Out-of-Progress iframes    ▪FS SIP呼叫的消息线程和状态机线程
▪XML FREESWITCH APPLICATION 实现    ▪Drupal 实战    ▪Blink: Chromium的新渲染引擎
▪(十四)桥接模式详解(都市异能版)    ▪你不知道的Eclipse用法:使用Allocation tracker跟...    ▪Linux内核-进程
▪你不知道的Eclipse用法:使用Metrics 测量复杂度    ▪IT行业为什么没有进度    ▪Exchange Server 2010/2013三种不同的故障转移
▪第二章 IoC Spring自动扫描和管理Bean    ▪CMMI简介    ▪目标检测(Object Detection)原理与实现(六)
▪值班总结(1)——探讨sql语句的执行机制    ▪第二章 IoC Annotation注入    ▪CentOS 6.4下安装Vagrant
▪Java NIO框架Netty1简单发送接受    ▪漫画研发之八:会吃的孩子有奶吃    ▪比较ASP和ASP.NET
▪SPRING中的CONTEXTLOADERLISTENER    ▪在Nginx下对网站进行密码保护    ▪Hibernate从入门到精通(五)一对一单向关联映...
▪.NET领域驱动设计—初尝(三:穿过迷雾走向光...    ▪linux下的块设备驱动(一)    ▪Modem项目工作总结
▪工作流--JBPM简介及开发环境搭建    ▪工作流--JBPM核心服务及表结构    ▪Eclipse:使用JDepend 进行依赖项检查
▪windows下用putty上传文件到远程Linux方法    ▪iBatis和Hibernate的5点区别    ▪基于学习的Indexing算法
▪设计模式11---设计模式之中介者模式(Mediator...    ▪带你走进EJB--JMS编程模型    ▪从抽象谈起(二):观察者模式与回调
▪设计模式09---设计模式之生成器模式(Builder)也...    ▪svn_resin_持续优化中    ▪Bitmap recycle方法与制作Bitmap的内存缓存
▪Hibernate从入门到精通(四)基本映射    ▪设计模式10---设计模式之原型模式(Prototype)    ▪Dreamer 3.0 支持json、xml、文件上传
▪Eclipse:使用PMD预先检测错误    ▪Jspx.net Framework 5.1 发布    ▪从抽象谈起(一):工厂模式与策略模式
▪Eclipse:使用CheckStyle实施编码标准    ▪【论文阅读】《Chain Replication for Supporting High T...    ▪Struts2 Path_路径问题
▪spring 配置文件详解    ▪Struts2第一个工程helloStruts极其基本配置    ▪Python学习入门基础教程(learning Python)--2 Python简...
▪maven springmvc环境配置    ▪基于SCRUM的金融软件开发项目    ▪software quality assurance 常见问题收录
▪Redis集群明细文档    ▪Dreamer 框架 比Struts2 更加灵活    ▪Maven POM入门
▪git 分支篇-----不断更新中    ▪Oracle非主键自增长    ▪php设计模式——UML类图
▪Matlab,Visio等生成的图片的字体嵌入问题解决...    ▪用Darwin和live555实现的直播框架    ▪学习ORM框架—hibernate(二):由hibernate接口谈...
▪(十)装饰器模式详解(与IO不解的情缘)    ▪无锁编程:最简单例子    ▪【虚拟化实战】网络设计之四Teaming
▪OSGi:生命周期层    ▪Javascript/Jquery——简单定时器    ▪java代码 发送GET、POST请求
▪Entity Framework底层操作封装(3)    ▪HttpClient 发送GET、POST请求    ▪使用spring框架,应用启动时,加载数据
▪Linux下Apache网站目录读写权限的设置    ▪单键模式的C++描述    ▪学习ORM框架—hibernate(一):初识hibernate
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3