图像识别DM8127开发攻略——序

DAVINCI(ARM+DSP)开发攻略已经整整两年多没写东西了,自从写完DAVINCI DM3730的开发攻略,就基本没什么精力去写,一直在忙DM3730平台客户定制的产品设计和大规模量产的任务。

2015年-2016年-2017上半年爆炸性的出货,公司只好全力去支持大客户,保证产品的质量。还有得了一个可爱的小宝宝,里里外外的事情重重压过来,不得不去处理,结果博客和公司网站基本处在停止更新状态,毕竟这年头大环境是实业误国,投机“兴邦”,在这种情况下科技公司全力赚点伙食费不容易,所以博客基本就没时间更新了。

现在招了些员工,也外包一些事情给其他朋友做做,自己慢慢静下心来,继续DM8127的开发工作,同时在开发工程当中,把一些经验分享出来,继续耕耘自己的博客。

总的来说,一个人要吃透整个TI指定的第3方DM8127的IPNC_RDK包,确实挺难,因为软件包太多东西,一个人的精力确实有限。

说到DM8127开发,我们公司其实2013年就已经启动了,没错就是通过艾睿合众达,买到台湾APPRO的DM8127-IPNC(IP网络相机),现在艾睿合众达已经不卖这个产品了,因为国内用这个平台开发的公司比较少,没办法,TI的DSP就是贵,这些年出货量比较大的就海康等几个大公司了。公司迟迟没有推出DM8127产品,有以下几个原因:

一、当时资金不够;

二、搞过这方面的人才缺乏,不容易招;

三、公司所有资源全力支持大客户去抢占某个市场;

四、DM8127 架构比较复杂;

五、高清CMOS 的ISP 的2A-3A算法这些比较头疼,大大加大了开发成本和时间。

还好,目前调试出了SONY一款1/2.8寸的200万IMX SENSOR,图像效果比以前的720P好多了,感到很欣慰,自己也有动力去搞开发工作了。这2年大规模出货的时候,琐碎的事情一大堆,本人都不知道怎么过来的,整个人根本没心情去搞开发工作。

DM8127 是DM81XX系列功耗相对低一些的带浮点C674X DSP的DAVINCI芯片,浮点运算能力达到4500M FLOPS,专门针对高清相机进行设计的,因为带有ISP模块,所以能和DM368-DM385一样可以对RAW DATA的SENSOR 原始图像数据进行处理。而普通的DM8168和DM8148则没有这个功能。

DM8168和DM8148比较适合做多路D1的智能图像分析DVR的产品,DM8168和DM8148功耗都比DM8127大。当然DM8127比我们以前开发的DM3730功耗大是肯定的,毕竟强悍的性能摆在这里,本公司网站卖的对应型号核心板都有相应的性能描述,这里也不用太累赘去描述。

下面只用一个简单的表格大概了解一下几个常用的ARM CORTEX-A8+DSP DAVINCI芯片的对比,那个ARM9+DSP的90纳米超级大功耗的DM6467T就不用比较了,同样只有一个CORTEX-A8不带DSP的DM385/DM388这里也不列出比较。


功能


DM8127


DM8168


DM8148/8147


DM3730


DSP


浮点C674X 750M


浮点C674X 1G


浮点C674X 750M


定点C64+ 800M


ARM


A8+双M3


A8+双M3


A8+双M3


A8


性能



最强(优)



最低


功耗



最大


较大


最小(优)


ISP


强大的ISP(优)




弱化的ISP


SATA






网口PHY






USB PHY






DSP L2


256K


256K


256K


64K+32K SRAM


ARM L2


256K


256K


512K


256K


H264编解码算法


不占用DSP资源


不占用DSP资源


不占用DSP资源


占用少量DSP资源


内置人脸识别





DM8127内部结构图:

DM8168内部结构图:

DM8148/DM8147内部结构图:

如果需要更详细的功能对比,大家可以到TI网站下载对应的DATASHEET资料。

按道理来说,DM8127是12年TI发布的产品,真正芯片规模量产是从13年开始,到现在17年应该是比较落后的芯片了,为什么我们还要坚持去做呢?

你看看人家那些手机芯片,半年推出一个新的满足旗舰机要求的芯片,更新换代特别快。但从我们工业应用角度讲,TI DSP不一样,TI 的芯片生命力非常强大,一般主推的芯片都是10年以上的生命周期,比如DM6446现在都还有公司在大规模出货,毕竟现在DM6446比2010年那时便宜多了。TI那些TMS320F28XX工控芯片,用在电力系统,电机,电源等控制领域,生命力更加强大,好几个都超过10年以上的生命周期。不单单在工业应用,在国防军工TI的DSP扮演非常重要的角色。

公司坚持做DM8127,是因为公司也一直在做DAVINCI图像分析的SOC平台,还有目前图像识别(视频分析)这个市场并没有萎缩,而是越来越壮大,本人也看了国务院2017年7月8日发布《新一代人工智能发展规划》全文,里面肯定少不了图像识别(机器视觉)这一块的产品,像车牌识别人脸识别都是不错的产品,给社会管理带来很大的便利。

在视频分析方面,TI ARM+DSP的方案,相当适合不同种类算法的移植,纯粹C/C++语言,也适合中小公司快速设计产品,比那种烧钱的ARM+FPGA还是有优势的,移植现成的算法(比如OpenCV啊等等)到FPGA,你必须找到非常牛的人,这种人对verilog语言和HLS语言非常非常熟悉,而且对硬件逻辑非常熟悉,对现成算法每个模块都非常熟悉。还有TI 2014年推出的那个用32级流水线执行指令的杀手锏浮点DSPC66X,从2017年开始加入到了DAVINCI系列,目前推出的是DM50X,只不过ARM 是双Cortex-M4超级单片机,跑的是TI RTOS(DSP BIOS这种实时操作系统)。这个C66X  浮点DSP拿来做视频分析超级爽。

至于DM8127的开发攻略要如何写,本人文化水平有限,文字功底更有限,没法按照那种专业布局架构去写,由于IPNC_RDK软件包涉及到的东西比较多,我只能先从开发人员从无到有的角度去写。

比如搭建Linux HOST开发环境,IPNC_RDK整体架构分析,BOOT过程和应用程序运行过程等等。就是买芯片回来后,参考开发板,设计好硬件,我们是如何一步一步去开发这个平台的,如何让这个自己做的裸板自动跑起来。

IPNC_RDK有类似的相关手册,但是写的用户手册是有点简单,只是告诉你他们的IPNC高清相机如何使用,软件包如何编译等等,对如何工作的原理没太多精力去描述,特别是他们那一套McFW,本人总感觉介绍有点简单,如果不是分析过源代码,根本不清楚McFW的架构。

本人要写的开发攻略出发点不同,有时间和兴趣就写写,分享分享,或许对那些毕业设计的学生有帮助,或许对那些出来工作的新手有帮助,或许能遇见在这方面共同爱好的朋友,看看是否有合作可能,共同去做一个好的图像识别(视频分析)产品,比如有些朋友有很好的图像识别(视频分析)算法,软件有一个好的卖点,而对硬件设计啊,生产啊,认证啊,电磁干扰啊,防雷啊等等无法分心去做或者不够专业去做,我们就可以提供对应的软件平台和硬件平台去帮客户实现他们的卖点,实现共赢的同时,我们共同做的产品能给社会带来良性的帮助,本人觉得也是一种成就。

时间: 2024-10-12 17:27:05

图像识别DM8127开发攻略——序的相关文章

图像识别DM8127开发攻略——UBOOT的移植说明

图像识别DM8127开发攻略--UBOOT的移植说明 根据前几篇文章的介绍,想必大家对DM8127软件架构有了全局的认识,下面我们从开发的角度进行裁剪移植最基本的BOOT软件包,嵌入式开发人员拿到一个新的板子,就是要如何让板子能跑得起自己编译和移植的程序,这才有价值,否则直接拿别人的BIN文件直接烧写到板子上没啥意思. 一.DM8127 UBOOT编译说明DM8127 的UBOOT的版本是u-boot-2010.06, UBOOT代码 和 以前的DM6446-DM368-DM3730平台稍微不同

图像识别DM8127开发攻略——KERNEL的移植说明

图像识别DM8127开发攻略--KERNEL的移植说明 接上一篇<图像识别DM8127开发攻略--UBOOT的移植说明>的步伐,DM8127开发攻略最后一篇文章是有关Kernel的裁剪移植.基于APPRO RDK3.8.0的基础上,我们对/ti_tools/ipnc_psp_arago/kernel进行裁剪和移植,这个kernel是linux-2.6.37版本:一.第一步还是做裁剪工作,删除多余的文件夹和文件,方便程序在每个阶段备份保存.1.先在kernel/fs/hostf/Makefile

DAVINCI DM3730开发攻略——应用程序例程分析

过完2015年春节回来了,利用上班前的几天时间,先把这篇文章写完,本来是先写<DAVINCI DM3730开发攻略--linux-2.6.32移植>,但是那篇文章涉及内核的东西太多,不太好写,而本人已经很长时间没写新文章了,先发布这篇文章.后来想了想,从应用程序使用的角度分析,再一步一步深入内核里边去,也许更好. 前面几篇DM3730开发攻略讲到:一个DAVINCI  DM3730板子程序由xload,uboot, linux-2.6.32或者(linux-2.6.37),文件系统rootfs

&lt;2014 05 10&gt; Android平台开发攻略

1.标准SDK开发: IDE: Eclipse Netbeans Language: Java 2.标准NDK+SDK开发: IDE: Eclipse Language: Java(JNI) C/C++ 3.Tranditional linux开发 IDE: c4droid,   command line.vim,emacs Language: C/C++ ------------------------------------------------------------ In a mini

Hi Developer,微服务开发攻略请查收

微服务开发攻略微服务正成为最热门的系统架构之一.作为一名开发者,是否已经了解微服务?微服务系统?微服务应用模式?如何提升微服务开发能力......本文带你一起学习微服务.1 什么是微服务微服务是架构层的一个概念,通过分解(业务单元),将项目拆解出n个单元,互相没有强依赖关系(解耦),自我准备需要的依赖条件,进而达到可以独立运行,不再受环境与地点上的限制.2 微服务的由来微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个

用欧拉蜜语言开发平台实现智能客服开发攻略

客服对话功能就是捕捉客户输入的句子,然后给出适当的回复. 如果使用关键字去做就会很麻烦,而且经常会处理错.使用自然语言理解开放系统就简单多了,我用欧拉蜜智能开放平台试了一下效果不错,简单记录一下过程: 1. 写语法 语法就是你希望捕捉到的用户的句型,比如"在吗","你好"等等. 具体使用方法可以参考我的另一篇博客使用欧拉蜜开发平台制作语音助手 暂时给模块名称取名为"test",这里特别说明自定义回复的使用,如下图,在写Grammar时,有&quo

高灵活低耦合Adapter快速开发攻略

Android开发中经常需要使用Adapter. 传统方法是自定义一个Adapter并继承AndroidSDK内的BaseAdapter, 这种方式代码量大,耦合度高,灵活性差(各种监听事件需要对View单独写,或者自定义一个比较统一的方法): 而ZBLibrary中的BaseViewAdapter不仅预处理了通用方法(getCount,getItem等) 以及 Item复用逻辑, 而且将对Item的处理代码单独写在一个BaseView(提供了大量常用方法)的子类, 所以使用继承BaseView

Chrome插件(Extensions)开发攻略

目录 为什么需要 为什么是Chrome 需要准备什么 如何开始 Page Action Chrome插件结构 学习资料 我的例子 调试 调试Content Scripts 调试Background 调试Popup 一些问题 总结 为什么需要 简单地说,浏览器插件,可以大大的扩展你的浏览器的功能.包括但不仅限于这些功能:捕捉特定网页的内容,捕捉HTTP报文,捕捉用户浏览动作,改变浏览器地址栏/起始页/书签/Tab等界面元素的行为,与别的站点通信,修改网页内容--给你增加许多想象空间,试想想看,你可

广州小程序开发攻略

微信小程序如今已经是如火如荼,目前面对个人.企业都已经开放,主体类型为企业.政府.媒体.其他组织或个人的开发者,均可申请注册小程序.下面我们来认识一下微信小程序. 微信小程序有如下特点: 生于微信,自带微信流量 微信目前用户数已经突破10亿,小程序在微信生态中目前已经有近百个入口,常见的分享给朋友.微信群.附近小程序.公众号文章内.服务消息内等等,只要使用微信,几乎都能见到小程序的身影. 小程序自带的附近的小程序功能,帮助商家被五公里范围内的微信用户搜索到,解决当下商家广告无处可打的尴尬.店铺根