一、项目需求

简单说下项目需求,首先基于CNN(卷积神经网络)框架的人脸识别和人脸追踪的算法能在Linux环境下单独地编译,能实现功能;其次把这两个算法移植到CEVA-DSP上;然后对算法进行优化,其中涉及代码矢量化。最后是编译算法,将其加到bin文件中去。

二、准备工作

EMCV即Embedded Computer Vision Library,是一个可在TI DM64x系列DSP上运行的计算机视觉库。其提供了跟OpenCV完全一致的函数接口(包括IplImage, CvMat,CvSeq等基本数据结构),通过EMCV,可以轻松的将OpenCV算法移植到DSP。
       EMCV并不是一个官方库,其是由Shiqi Yu老师在2008年启动的开源项目,目前已经支持IplImage, CvMat,CvSeq等基本OpenCV数据结构,也可使用cvCreateImage等创建和释放图像,以及contour检测等。但是里面绝大多数函数只有接口却没有实现,所以这里值得注意的,EMCV并不能实现OpenCV的多数功能,不过我们可以利用EMCV里的数据结构。
       此外,需要提一下的是,实现将OpenCV里的代码完全移植到DSP是可以的,目前已经有人这么做了!
       本节主要参考这个文档:Shiqi Yu老师的EMCV:可在DSP上运行的OpenCV:http://www.opencv.org.cn/forum.php?mod=viewthread&tid=3569&extra=page%3D1

详细的资料可以看这个链接:https://blog.csdn.net/tostq/article/details/51246746
例程下载:https://github.com/tostq/EasyMulticoreDSP/tree/master/2.emcv

EMCV库实际上是余老师根据opencv源码移植成c语言版本,是个大牛。EMCV相关资料从2013年以后就基本没有了,可能是跟DM64x系列被淘汰了有关。EMCV库可以在Ti c6000系列DSP上用,但没有实际操作过。目前发现是能在DM64x系列能用。我尝试着把EMCV库用在CEVA-tool-box上,始终有一个error,编译通不过。经过一番挣扎,基本上已放弃把EMCV库移植到CEVA-dsp上的想法。

三、CEVA-ADK

经过很多次尝试后,去CEVA官网去逛了一圈,发现一个信息。真是柳暗花明又一村。接下来介绍CEVA-ADK官方提供的开发工具包。

Application Developer Kit用于CEVA-XM智能视觉DSP和NeuPro AI处理器的SLAM,视觉库,RTOS和驱动程序。

概观

CEVA-XM和NeuPro的应用程序开发工具包(ADK)简化了高级视觉和AI应用程序所需的软件开发和集成工作。它使整个应用程序能够在更熟悉的CPU环境中运行,同时在更节能的DSP上自动转换和优化代码。

ADK帮助软件工程师开发计算机视觉应用程序,使他们能够优化电源效率和内存管理,处理成像和视觉算法的复杂性,并简化涉及框架,磁贴等的系统处理任务。

优点

CEVA ADK通过直接从CPU中提取基于CEVA-XM和NeuPro的平台上的计算机视觉使用来缓解挑战。程序员可以从使用ADK大大简化和缩短整个软件开发周期,并提供显着的性能,内存带宽和功耗节省中受益。

主要特点

CEVA-SLAM SDK:同步本地化和映射(SLAM)软件开发套件通过以下方式加速SLAM开发:
                                从CPU启用详细界面,将重型SLAM构建块卸载到CEVA-XM和NeuPro处理器
                                这些构建模块利用DSP效率支持定点和浮点数学运算,从而延长器件的电池寿命。
                                SDK构建模块包括图像处理功能(包括特征检测,特征描述符,特征匹配),线性代数(包括矩阵操作,线                                  性方程求解),快速稀疏方程求解束调整等。
CEVA-CV:基于OpenCV的视觉处理功能标准库,完全针对CEVA-XM和NeuPro系列进行了优化。它可以为目标应用程序使用预                     优化的内核,从而加速开发并优化性能。
CEVA-VX:旨在处理所有系统资源需求,包括数据传输,DMA事务和内核执行,从而抽象出系统架构并自动化帧处理。CEVA-                       VX支持内核隧道,链接多个功能,最小化内存带宽和降低系统功耗。
实时操作系统(RTOS),调度程序:一个DSP任务管理和调度软件模块,用于处理任务优先级和任务切换。
CEVA-Link驱动程序:通信通道和系统驱动程序,完全抽象CPU-DSP接口,并实现从CPU到DSP的自动任务卸载。

所以只要想办法获得这个ADK就能在CEVA-tool-box软件里调用优化过的opencv函数。完美。

CEVA-DSP算法移植--1相关推荐

  1. 基于davinci6467的DSP算法移植

    封装a.64p成.x64p达芬奇工具链的建立(工程编译步骤) (参考:http://blog.163.com/laorenyuhai126@126/blog/static/19350779201101 ...

  2. Ceva Dsp公司及产品介绍

    1.Ceva公司 ceva:美国思华科技,2002年成立,一家仅仅300多人的以色列公司,却做出这么多伟大的产品,2017有12亿台的设备搭载了ceva的dsp.大部分中国厂商就是买IP,然后生产芯片 ...

  3. UART接口算法移植加密芯片的调试技巧——通讯调试

    算法移植类加密芯片是凌科芯安公司的专利产品,主要功能是芯片内部嵌入凌科芯安公司的LKCOS智能操作系统,用户可以把MCU中程序一部分关键算法函数移植到芯片中运行.用户采用标准C语言编写代码,通过KEI ...

  4. OpenCV将现有算法移植到G-API的实例(附完整代码)

    OpenCV将现有算法移植到G-API的实例 OpenCV将现有算法移植到G-API的实例 OpenCV将现有算法移植到G-API的实例 #include "opencv2/opencv_m ...

  5. UART接口算法移植加密芯片的调试技巧——算法调试

    算法移植加密芯片的调试包含2个部分:通讯调试和算法调试.之前讲到过通讯调试技巧,接下来本篇将对算法调试中的问题进行分析总结,来帮助客户顺利地完成调试. 算法调试中的常见问题: 1.不要自行建工程 客户 ...

  6. 加密芯片算法移植方案的优点

    所谓算法移植就是客户可以把自定义的程序一部分关键算法函数移植到加密芯片中运行.用户采用标准C语言编写代码,通过KEIL C编译器,编译并下载到智能芯片中.在实际运行中,通过专用指令调用函数方式运行智能 ...

  7. 嵌入式算法移植优化学习笔记5——CPU,GPU,TPU,NPU都是什么

    嵌入式算法移植优化学习笔记5--CPU,GPU,TPU,NPU都是什么 一.什么是CPU? 二.什么是GPU? 三.什么是NPU? 四.什么是TPU? 附: 随着AI的广泛应用,深度学习已成为当前AI ...

  8. 【如何在寒武纪MLU上进行算法移植】-概述

    本文介绍如何在寒武纪MLU智能加速卡上进行各类常用算法移植.整个移植过程大体可分为环境准备.模型量化.在线推理.生成离线模型.离线推理.性能测试.精度测试共七个步骤,以下概要描述整个移植过程.详细内容 ...

  9. 基于LPRNet的车牌识别算法移植与测试

    课程全程将在[SOPHGO(算能)云平台上进行. 本次课程将介绍: (1)SOPHGO(算能)云平台环境搭建 (2)LPRNet算法 (3)通过BMNNSDK 2.7.0进行LPRNet模型转换和量化 ...

最新文章

  1. ActiveMQ学习笔记03 - 消息持久化
  2. java int数列转字符串,鍥剧墖杞瓧绗︿覆
  3. shell的几个实战脚本例子(欠)
  4. 2022-03-19
  5. Android 底层驱动开发步骤——linux内核层、HAL层、JNI层
  6. java响应鼠标滚轮事件_一文读懂鼠标滚轮事件(wheelEvent)
  7. Win API记录点滴
  8. ffmpeg-0.6.3 移植到 windows 开源代码
  9. java继承时父类常量覆盖吗_Java父类继承中的static和final用法
  10. 软件测试转行月薪过万,那些转行软件测试的新手小白,是如何从月薪5000到月薪2万的?...
  11. java配置文件强制更新_对Java配置文件Properties的读取、写入与更新操作
  12. 关公战秦琼java,IDE 之争是在争啥
  13. 西瓜书《机器学习》线性模型 一元线性回归公式推导
  14. python库skimage 常值轮廓寻找并标记
  15. python中静态方法、类方法、属性方法区别
  16. c语言例题22:日期计算
  17. 对格斗游戏的一点想法
  18. java find symbol,cannot find symbol
  19. 下一个大危机,会是什么?
  20. iPhoneX APP界面设计尺寸图-庞姿姿

热门文章

  1. 水平和因素是什么_血脂是什么?高血脂对身体有何危害?一篇长文为你详解
  2. 一片姨妈巾托起4亿中国女性背后的千亿市场
  3. 【FPGA】EDA技术概述
  4. 多商户商城系统功能拆解43讲-平台端应用-客服话术
  5. HTML简单练习案例
  6. 设置电脑通电自动开机
  7. python图片横向合并_使用python进行图片横向拼接
  8. TI AM5728 RTOS环境搭建笔记
  9. python获取本月天数_如何获得本月的所有天数?
  10. JAVA毕业设计高校网上报销系统计算机源码+lw文档+系统+调试部署+数据库