2018-03-01.集成百度MDL一路的坑

工作需要,集成百度MDL
百度开源移动端深度学习框架,用于AR扫描分析,具体原理不懂,C++的语言,demo是用swift写的,工作环境是oc,没办法,只能慢慢来

2018-03-01.集成百度MDL一路的坑_第1张图片

百度开源源码中有个 examples->mdl_ios,打开其workspace,出现如上图所示项目结构,首先吧项目选到MDLCPUCore,跑一下



然后把项目选到MDL,跑一下



然后MDLDemo中的MDL.framework就不再是红色的了,然后就可以跑这个项目了.

注意,中间拖了一段时间,有个问题是百度迭代了挺多版本,导致我运行时报了一个错误

这个问题查了下,网上让我改成4.0.但是改了没用,



所以我只能把framework在git上走了几个版本,重新编译了一个MDL.framework


2018-03-01.集成百度MDL一路的坑_第2张图片
我随便选的版本

然后项目继续跑的时候发现报错,
2018-03-01.集成百度MDL一路的坑_第3张图片

这是由于我的framework是3的版本,我编译环境是4的版本,所以改之为3.2



出现importMDL报错的可能是因为MDL库有问题,我查了下,把动态库可用添加进来即可
2018-03-01.集成百度MDL一路的坑_第4张图片

这时候项目编译不报错了,展示一下项目的抽出来的项目结构


2018-03-01.集成百度MDL一路的坑_第5张图片

注意百度原本的桥接文件文件名需要改成我当前项目工程文件名,然后在项目bulidSetting中设置一下头文件路径


2018-03-01.集成百度MDL一路的坑_第6张图片
项目名+头文件路径

CPU控制器拖进来的原因是common中有个文件用到了,懒得细查就直接拖进来防报错用的

有个问题是,我在代码中用present方式弹出,但是报崩溃了,因为有两个属性videoview和resultlab是xib属性,然后我只能用storyboard方式来弹出


2018-03-01.集成百度MDL一路的坑_第7张图片

注意这里有个问题是,用push方式弹出后,需要在storyboard把videoView的上下约束从layout.guide改为superview

这就是最后出来的效果,因为不太懂swift,所以videoview和result我用的storyboard,只要这两个用代码创建,我认为用代码push也是没有问题的,后续会更新代码push改界面效果

2018-03-01 更新:有个问题更新一下


我也不造为什么

添加一些查询的链接以备不时之需:

https://www.crifan.com/xcode_module_compiled_with_swift_4_0_1_cannot_be_imported_in_swift_3_2_3/
https://www.jianshu.com/p/ca857caecc6e
https://www.jianshu.com/p/c6adc79a00f9
https://www.jianshu.com/p/b10680a32d35
http://blog.csdn.net/xyxjn/article/details/42102259
https://www.2cto.com/kf/201611/569446.html

2018年03月02日更新:我重新把百度MDL.framework替换到最新版本编译了一下,这次用.mobileNet也能正确识别了,之后AR扫描只需要改改UI,然后将扫描匹配出来的字符串数组传到后台,然后就是一堆的业务代码而已.

你可能感兴趣的:(2018-03-01.集成百度MDL一路的坑)