学习极市开发平台
这是官网的链接:极市开发者平台-计算机视觉算法开发落地平台-极市科技 (cvmart.net)
第一次用这个平台有很多问题,首先在使用这个平台之前,我大部分时候使用的是百度的飞浆平台,也就是BML,去训练一些深度学习的模型。
首先说一哈两个平台给我的最大的不同点:
第一个,BML平台的定制程度更深一点,而且就不单纯是jupylab,还有包括快速环境搭建的包,这可能得益于百度自己改良研发的深度学习框架,paddle系列,里面包括有paddledetection,paddleocr,nlp等等一系列的各种常用的基础深度学习领域,这为快速搭建令开发者极为痛苦的痛点,就是还原开源仓库python环境,提供了便捷。
第二个,就是关于极市的平台,给我最大的感受,就是它除了可以使用python进行深度学习开发,还提供了可以使用C++进行ev_sdk的封装,具体这方面的功能我不得不吐槽一哈,官方文档里面对于这个ev_sdk的教程实在是少,这或许是因为“平台不成熟”,开个玩笑,回到正题,它的sdk还是有很多可取之处,比如百度就没有专门去做sdk开发,但是百度的开源套件基本上都有C++的部署,因此当我第一次接触ev_sdk的时候,我以为只是将C++实现以后,放到平台上面就可以实现编译so文件了(.so文件是共享对象文件(Shared Object file),它是一种二进制文件格式,用于存储程序的可执行代码和数据。与静态链接库dll不同的是,.so文件在程序运行时以动态链接的方式与其他程序或库进行连接。),后面发现并不是,开发者需要在给定的环境下面,比如含有tensorflow它是指定8.3的版本,又或者指定pytorch1.13的版本等,因此如果要使用框架之外的一些依赖,需要安装,并且修改cmkaelist.txt等相关文件。
第三个,相比较于百度的BML里面的项目,极市平台的项目应用好像更实地应用(偏向工业化和智慧场景)会更多一点,BML的项目则是有很多可玩性和多样性。当然不可否认的一点,我可能还是喜欢BML多一点,确实可以减少自己开发的周期,再加上近几年,百度的飞浆团队推出了paddlex,这个事快速开发的模块,只需要自己处理好数据集,放到指定的位置,按照流程三步走,就能训练出自己想要的模型,甚至不用自己编写深度学习方面的代码!简直绝绝子。
第四个,就是极市平台的深度学习,是闭环式的,也许是因为我选择的是比赛案例,就是看不到训练的数据集是具体什么样的,给予的参考示例图片,也都是脱敏,比如将车牌号打码,人物头像进行马赛克化!不得不,吐槽一哈,极市平台的BUG是真的多,好几次我怀疑以为平台的问题,所以加载不了模型,去提出问题表单,第一次提出,工作人员的回答是说我没有按照文档操作,让我去看文档,我再次追问,但是没有答复,必须得新开表单(问第二次)才会回复我,最后发现是平台的问题加载不了模型(。。。。当时那一刻心里确实有点意见),而BML我使用的比较多,里面的图片也都是能看到的。这可能对于选择框架是比较有益的。然后就是BML的比赛里面,会有一个基线(baseline)项目,但是极市平台似乎好像没有。。。虽然有一些帮助文档,但是我不得不吐槽,文笔之淡然,而且也包含歧义争议!再就是模型评估的时候,BML的猫咪分类比赛里面,是只需要提交结果就可以得到分数,但是在极市平台,是需要写ji.py的接口去实现的,其实说实话,实现并不难,麻烦的是测试是否可以正确实现,因为每一次将测试集放进去,都是一个漫长的过程。。。。环境准备,而且还有BUG,就是明明自己在本地电脑的输出是对的,到了指定的测试环节进行结果判定的时候,莫名其妙显示不对,比如result.txt文件的每一行输出代表一个框选结果,指定要输出七个参数,我加载模型成功输出的是七个参数,和文档里面描述的事一致的,可到了模型验证阶段,报错显示是只有六个参数。。。