• [开发资源] eSDK api录像下载接口调用示例
    IVS_SDK_StartPlatformDownload(开始平台录像下载)IVS_SDK_StopPlatformDownload(停止平台录像下载)
  • [问题求助] postman访问api不通
    【功能模块】【操作步骤&问题现象】在roma中设计的api ,在roma中测试可以获取数据,在postman中访问不通【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [活动体验] Python API接口“mindspore.train.callback()”示例文档纠错
    本帖系参加官网文档纠错活动,文档位置位于MindSpore官网“文档-Python API-mindspore.train”内。具体错误为mindspore.train.callback.Callback接口的示例代码缺失模块引入部分,“Callback”类和“run_context”方法在未实例化的情况下直接使用。“Examples”部分的代码在jupyter内将无法正常运行,附图如下:望及时修正,祝MindSpore越办越好!!!
  • [问题求助] API测试接口报错500
    【功能模块】安防模块业务调测时,消息上报测试接口报500错误
  • [技术干货] 为物联网画出奇妙的无线世界
    作为物联网终端“毛细血管级”技术,无线连接技术负责将任何物品与互联网相连接,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理。日前,两种最具代表性的短距离无线技术:Wi-Fi和Bluetooth,纷纷以低功耗版本亮相,意在抢滩总量达14.4万亿美元的物联网市场。  低功耗蓝牙应用增速惊人  “通过低功耗蓝牙连接将云数据安全传输到网络服务和应用中,是云计算乃至物联网的重要组成部分。”蓝牙技术联盟(SIG)首席营销官卓文泰(Suke Jawanda)表示,2013年,SIG会员企业将卖出约25亿部带有蓝牙功能的设备,而1998-2008年十年间这一数字只有1亿部而已。根据SIG的预测,2017年前全球蓝牙设备的出货量将累积达到200亿。“SIG全球目前拥有17000家成员公司,仅来自中国的会员企业就从一年前的2100家迅速增长至3436家,增幅达到60%,这也是我们加大3倍的力度投入中国市场的原因。”  在Android 4.3“果冻豆”(Jelly Bean)系统推出之前,由于缺乏官方支持及开源的应用程序接口(API),导致蓝牙低功耗的实施情况参差不齐。但随着 Android 4.3对BLE通用属性配置文件(GATT)级别的支持,各种使用蓝牙低功耗的最新智能配件产品(血糖监测仪、无线桌面、玩具、运动设备、智能遥控设备等)将会大量上市,从而带来众多新的商机。  “随着最新Bluetooth Smart 4.1版本的发布,Bluetooth Smart和Bluetooth Smart Ready设备的出货量高于传统蓝牙设备的进程将被加速。”SIG大中华区技术市场经理吕荣良透露称,新版本进一步强化了蓝牙技术的几大功能,包括可用性,增加对LE任务传输协议的支持;增强创新性,可通过GATT无极限的开发和扩展未来可能出现的潜在协议;驱动物联网,支持HTTP服务,强化对组网能力和IPv6的支持等。  除了常见的可穿戴设备和智能家居应用外,SIG还向业界展示了一些蓝牙技术新的使用场景。第一个有趣的案例来自植物灌溉系统—将湿度检测传感器埋在土壤里,依照所种植物设定好相应参数。当土壤中水分不足时,传感器就能够向用户手机发送提醒,告诉你需要浇水了。  它也可以用于大面积的农作物灌溉,甚至可以和不同的应用结合起来——例如,将它和天气相关的应用连接起来,如果天气干燥炎热,可以加大湿度;如果暴雨连绵,灌溉系统可以暂时停止浇灌。此外,得益于蓝牙低功耗技术,只需在农场中架设小型太阳能板,就能完成对传感器的供电,无需架设额外线路。  第二个案例则是无线充电。根据SIC与无线充电联盟(A4WP)日前达成的协议,A4WP将使用Bluetooth Smart无线电标准协调A4WP充电站和A4WP认证设备之间的充电管理和电源控制。Suke Jawanda对此解释说,蓝牙技术与其他无线充电方案最大的不同就是它能够进行身份识别。例如当你走进一家咖啡馆,将手机放在桌子上的无线充电设备充电时,咖啡馆的系统就能够通过蓝牙ID自动识别机主和座位。这意味着,无需离开座位,消费者就能用手机完成点餐和支付。  低功耗Wi-Fi和低功耗BT,谁更牛?  高通创锐讯(Qualcomm Atheros)进军物联网的利器之一则是低功耗Wi-Fi解决方案QCA4002/QCA4004网络平台。该公司资深副总裁郑建生认为,之所以称之为平台,是因为两款产品不但在芯片设计上采用一颗单芯片处理器和内存,无需使用其它MCU产品,还同时纳入了IP堆栈、软件中间件架构AllJoyn以及完整的网络服务,以协助客户以最低的开发成本,将低功耗Wi-Fi功能增加至任何产品。目前,海尔(Haier)已在其洗衣机/烘干机和空调设备上采用了QCA4004。  高通日前开始在多个场合大力推广AllJoyn,已经开卖的智能手表Toq就支持该协议。据称它能够联接各种不同的产品、应用程序和服务,具有发现、通知、控制、传输、安全等功能。AllJoyn是开源的,可直接从网站下载SDK。“在游戏领域,采用AllJoyn后,不需要运营商网络就能实现同一区域内的多人对战;结合LBS技术,两个同样使用了AllJoyn技术的人彼此接近时,AllJoyn可以做出提醒;将所有AllJoyn连接的家电串联到一起,不仅能够在手腕上查看所有设备信息,还可以直接在手腕上控制它们的工作状态。”郑建生说。  QCA4002/QCA4004均包括Green TX功能,可让设备在邻近其他设备或接入点的情况下,减少最多1/2的传输功率。这项动态功率调整功能,搭配耗电量小于1mW的睡眠模式,可实现更节能的通信功能,并延长电池续航能力(例如遥控器、恒温器及传感器等应用)。低功耗睡眠运行模式是通过主板内建的唤醒管理程序处理的,可让平台具备自我唤醒和睡眠管理功能,进一步降低睡眠模式功率(最低至微安培)。
  • [问题求助] 求助各位大神 D30 D21 C66这几款摄像机怎么用java api对接获取监控实时画面地址
    【操作步骤&问题现象】求助各位大神 D30 D21 C66这几款摄像机怎么用java api对接获取监控实时画面地址显示在浏览器的页面上?我下载了“华为SDC 8.1.1 API协议说明” 但是里面没有发现相关接口。。。有没有大佬帮个忙。。谢谢!!!
  • [Atlas500] atlas500 在虚拟机18.04上编译API Samples中 InferOfflineVideo报错
    从https://www.hiascend.com/zh/developer/mindx-sdk/applicationDetails/60172215下载的demo,按照README.zh.md进行编译。报错n file included from /home/admin1/InferOfflineVideo/Module/VideoDecoder/VideoDecoder.cpp:17:0:/home/admin1/InferOfflineVideo/Module/VideoDecoder/VideoDecoder.h:20:10: fatal error: ModuleManager/ModuleManager.h: No such file or directory #include "ModuleManager/ModuleManager.h"          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~compilation terminated.CMakeFiles/main.dir/build.make:134: recipe for target 'CMakeFiles/main.dir/Module/VideoDecoder/VideoDecoder.cpp.o' failedmake[2]: *** [CMakeFiles/main.dir/Module/VideoDecoder/VideoDecoder.cpp.o] Error 1make[2]: *** Waiting for unfinished jobs....[ 85%] Building CXX object CMakeFiles/main.dir/Module/StreamPuller/StreamPuller.cpp.oIn file included from /home/admin1/InferOfflineVideo/Module/StreamPuller/StreamPuller.cpp:17:0:/home/admin1/InferOfflineVideo/Module/StreamPuller/StreamPuller.h:21:10: fatal error: ErrorCode/ErrorCode.h: No such file or directory #include "ErrorCode/ErrorCode.h"          ^~~~~~~~~~~~~~~~~~~~~~~compilation terminated.CMakeFiles/main.dir/build.make:110: recipe for target 'CMakeFiles/main.dir/Module/StreamPuller/StreamPuller.cpp.o' failedmake[2]: *** [CMakeFiles/main.dir/Module/StreamPuller/StreamPuller.cpp.o] Error 1In file included from /home/admin1/InferOfflineVideo/Module/PostProcess/PostProcess.cpp:16:0:/home/admin1/InferOfflineVideo/Module/PostProcess/PostProcess.h:20:10: fatal error: ModuleManager/ModuleManager.h: No such file or directory #include "ModuleManager/ModuleManager.h"          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~compilation terminated.CMakeFiles/main.dir/build.make:182: recipe for target 'CMakeFiles/main.dir/Module/PostProcess/PostProcess.cpp.o' failedmake[2]: *** [CMakeFiles/main.dir/Module/PostProcess/PostProcess.cpp.o] Error 1In file included from /home/admin1/InferOfflineVideo/Module/ModelInfer/ModelInfer.cpp:15:0:/home/admin1/InferOfflineVideo/Module/ModelInfer/ModelInfer.h:21:10: fatal error: ModuleManager/ModuleManager.h: No such file or directory #include "ModuleManager/ModuleManager.h"          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~compilation terminated.CMakeFiles/main.dir/build.make:158: recipe for target 'CMakeFiles/main.dir/Module/ModelInfer/ModelInfer.cpp.o' failedmake[2]: *** [CMakeFiles/main.dir/Module/ModelInfer/ModelInfer.cpp.o] Error 1In file included from /home/admin1/InferOfflineVideo/main.cpp:22:0:/home/admin1/InferOfflineVideo/Common/CommandLine.h:20:10: fatal error: CommandParser/CommandParser.h: No such file or directory #include "CommandParser/CommandParser.h"          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~compilation terminated.CMakeFiles/main.dir/build.make:62: recipe for target 'CMakeFiles/main.dir/main.cpp.o' failedmake[2]: *** [CMakeFiles/main.dir/main.cpp.o] Error 1CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/main.dir/all' failedmake[1]: *** [CMakeFiles/main.dir/all] Error 2Makefile:83: recipe for target 'all' failedmake: *** [all] Error 2编译的环境也安装成功了请求帮忙,是哪块出现问题了?
  • [部署上线] 调用modelart发布的API关于image 类型 file 入参请求的问题
    response = requests.post(infer_url, headers=infer_header, files=files, verify=False)post 请求返回如下错误。b'{"erno": "MR.0101", "msg": "The input parameter is invalid", "words_result": {}}'图片接口,约定的类型是什么样的?API 入参  images 类型为 file ,postman 和 页面都能调通,python    requests.post(infer_url, headers=infer_header, files=?, data= ?, verify=False)python代码各种试# 调用华为云aifood接口def get_food_infer(data): # huawei call service api token_value = SysApi.get_token() infer_header = { 'X-Auth-Token': token_value, 'Content-Type': 'multipart/form-data; boundary=<calculated when request is sent>', 'Content-Length': '<calculated when request is sent>', # 'Host': 'c6c6774970f94608a2a046f047b985f7.apic.cn-petrochina-1.e8.petrochina' #'1ed7d7f9583b43fa865b8c2ec79969b0.apig.cn-north-4.huaweicloudapis.com' #'6a74819e2a9f4994a842b865934e954e.apig.cn-north-4.huaweicloudapis.com' } # 二进制方式打开图片文件 type(data) str_url = data.decode() f = open(str_url, 'rb') f_read = f.read() # img = base64.b64encode(f.read()) infer_dic = {"images": {str_url.split("/")[-1]: f}} # 'images': {'image_a.jpg': b'xxx'} # infer_data = bytes('{}'.format(infer_dic), encoding='utf-8') # files ={'images': (str_url.split("/")[-1], open(str_url, 'rb'), 'image/png')} files = {"images": (str_url.split("/")[-1], open(str_url, "rb"), "image/png")} #files = {'str_url.split("/")[-1]': open(str_url, 'rb')} # files = {'images': (str_url.split("/")[-1], open(str_url, 'rb'), 'image/png', {'Expires': '0'}), 'type': 1} #{'file': (str_url.split("/")[-1], open(str_url, 'rb'), 'image/png')} infer_url = 'https://c6c6774970f94608a2a046f047b985f7.apic.cn-petrochina-1.e8.petrochina/v1/infers/ac1266cf-6980-431b-aab4-9c71bb49825c' response = requests.post(infer_url, headers=infer_header, files=files, verify=False) if response: print(response.json()) return response.json()
  • [技术干货] 微服务拆分的10条规范
    如果你的组织想要采用微服务,那么就需要了解领域驱动设计,事件驱动架构,核心域,子域,有界上下文,反腐层等等,以正确地拆分你的业务逻辑(Business Space)并将其与微服务体系结构(Code Space)映射,这样你就可以获得微服务的好处。我将在本文中对它们进行总结,并为你在组织中拆分微服务时提供一些指导。微服务拆分的10条规范1.使用有界上下文:使用有界上下文,我们分离数据模型,抽象业务中的共性。每个有界上下文都有自己的业务逻辑。在进行微服务拆分之前,首先要做的是缩小产品经理与开发人员之间的距离,产品经理可能不了解技术术语,技术团队可能不了解技术术语在业务方面的重要性。他们就像一个葡萄牙语人士与一位英语人士交谈:没有人理解彼此的信息。因此,为了弥补差距,我们需要采取以下步骤:开发人员与产品经理需要讨论:“业务目标是什么?”。“特定功能中的主要角色是什么?” “他们在定义功能时使用了哪些术语?” 在每个步骤上,都要提出更多问题,直到双方达成一致。每个上下文中每个域名实体名称都要是清晰的。为每种上下文定义一种通用语言,以便业务团队和技术团队在交流时可以使用一种通用语言进行交流。从一个粗粒度的有界上下文开始。2.确定核心域并保持竞争优势:核心域是为你的业务带来收益的领域。对于在线购物而言,购物车模块是核心领域,它为从企业到消费者(B2C)提供了平台。了解你的核心模块,并思考如何改进竞争对手没有的功能。任何自动化或创新都会提高优势并增加你的收入,因此请注意,要在核心领域进行研发和投资,以保持竞争优势。3.对通用域进行成本优化:通用域就是该领域中每个企业所共有的领域,并且不同的第三方厂商已经提供了解决方案。像你的信息通知模块或广告活动模块,建议不要花钱来重新发明轮子,最好以便宜的价格采用第三方解决方案。4.考虑支持领域:核心域需要支持域的帮助来丰富自身功能,甚至在某些情况下,支持域也可以带来收益,并且将来有可能成为核心域。例如,在购物车域中,库存管理是支持领域,但投资研发-识别客户订单最近库存位置的算法,对降低运输成本也很重要。5.引入反腐层:反腐层(Anti-corruption layer,简称 ACL)介于新应用和旧应用之间,用于确保新应用的设计不受老应用的限制。是一种在不同应用间转换的机制。创建一个反腐层,以根据客户端自己的域模型为客户提供功能。该层通过其现有接口与另一个系统进行通信,几乎不需要对其进行任何修改。因此,反腐层隔离不仅是为了保护你的系统免受异常代码的侵害,还在于分离不同的域并确保它们在将来保持分离。反腐层是将一个域映射到另一个域,这样使用第二个域的服务就不必被第一个域的概念“破坏”。实际上,我们经常遇到基于大型机或任何其他语言构建的旧系统,但无法拆分该系统,并且还需要使用旧应用的数据。因此,在旧应用和微服务通信之间创建反腐层是一个好主意。还要考虑通用领域,因为他们是不受开发团队控制的任何外部系统(第三方系统),因此也需要引入一个反腐层,该层将微服务与外部AP隔离开来,充当微服务和第三方之间的翻译者。它还可以帮助你将来采用任何第三方库。6.识别数据通信模式:一旦基于功能拆分了微服务,并且每个核心服务封装了它们自己的数据库,接下来就要考虑不同微服务间是如何通信的?是同步的?还是异步的?例如,对于一些系统,用户可以执行部分功能并创建中间状态,另一个系统对中间状态采取措施并回调或通知用户。7.引入事件驱动架构(EDA):在实际的应用程序中,你的业务案例具有复杂的工作流,并且根据数据的状态在工作流上具有许多分支。如果你考虑通过Rest API公开所有内容,则会看到它创建了一个复杂的通信网络。因此,我们需要一个干净的架构,其中每个微服务都可以独立运行而不会产生耦合,这里事件驱动的架构起着至关重要的作用,每个事件都包裹着状态的变化,并且微服务遵循发布订阅(pub/sub) 模型,因此一个微服务会发布以事件的形式包装的数据,其他微服务会侦听该事件。由于事件是不可变的,因此它也保存实体或聚合器的历史记录。8.使API简洁明了:在微服务中,在发布API时,请确保你的API不发布内部状态。发布API是一种使其他服务可以获取足够的信息以继续其流程的方式,因此要虑封装和网络调用,不应多次返回以获取派生信息。还要考虑事件,应该发布哪些事件以及哪些事件必须保留在内部。也许你可以发布一个粗粒度事件,而不是发布一个个内部的小事件。例如,你有地址更改事件和个人信息更改事件。最好是发布一个名为CustomerUpdateEvent的粗粒度事件,而不是提供两个独立的事件。9.将相关的微服务合并为更大的服务:拆分之后,当需要添加或更新功能时,你会遇到一些微服务总是一起变化的情况。这时候,你应该知道你已经以错误的方式拆分了它。它们一定不能被隔离到一个小型服务中,它们是同一逻辑单元的一部分。因此,将它们合并为一个服务是明智的,将减少不必要的网络通信。10. 引入无缝开发支持工具:微服务不是免费的午餐。如果你采用微服务,那么首先要做好准备,因为微服务是分布式的,因此要投资一些软件工具,以此来扩展弹性和提高可用性,并缩短产品投产时间,帮助尽早发现故障等。因此,请花钱在CI / CD流水线上,采用云基础架构,使用跟踪工具,使用日志聚合器来搜索日志,使用混沌工程测试你的系统,等等。结论拆分微服务时,以上几点是必要的。我将针对每个主题写一篇文章,介绍它们如何在采用微服务体系结构中发挥关键作用。另外,我想听听你在拆分微服务时所面临的挑战。译文链接: https://dzone.com/articles/10-commandments-on-microservice-decomposition转载https://www.kubernetes.org.cn/8994.html
  • [API使用] python api的一些疑问
    本地cpu平台开发,有几个问题:1. python api目前还不支持gru网络层,是否可以参考支持网络里的GRU模型自定义算子2. 支持网络里的GRU实际是使用了GRU的encoder、decoder模型。刚接触以为是算子,有一定误导性。3. 现在python api支持加载一些预训练模型吗?或如何从model zoo中加载模型到自己的代码?4. nn中一些不支持cpu平台的算子,也可以在设置成cpu,pynative模式下成功运行。是什么原因?
  • [技术干货] ADC2.0自动流程暂停唤醒
    1.执行前暂停在系统任务环节的配置中勾选执行前暂停,流程会在执行该环节配置的服务之前暂停1.1配置流程配置自动流程CreateTask为脚本任务,由于执行前暂停是在执行API之前就暂停了,在入参中配置execution_id也拿不到,所以需要在这之前配置一个脚本将execution_id塞到流程上下文中(每一条工单的execution_id都是相同的)_context.execution_id = execution.id;ProcessTask为系统任务,API名称任选,勾选执行前暂停1.2 唤醒流程1、创建一个逻辑流,在运行脚本中编写脚本如下var request = {};request.execution_id = message.execution_id;request.activity_id = message.activity_id;request.operator = message.operator;var response = ServiceInvoker.post("/adc-bpm/rest/v1/order/api-order/test_aa/test_aa/api_t/signal", request);return response;调用的唤醒接口为/adc-bpm/rest/v1/order/api-order/{project-name}/{module-name}/{process-key}/signal,根据自己的工程名模块名以及流程标识填充2、配置逻辑流入参execution_id获取:可以前往流程调试界面打开相应的工单,点击_context,参数中的execution_id即为CreateTask环节塞在上下文中的execution_idactivity_id获取:可以前往流程编辑页面查看对应环节的标识3、调试逻辑流逻辑流调试页面填入入参并调试可以查看到暂停的流程已经走完2.执行后等待在系统任务环节的配置中勾选执行后等待,流程会在执行该环节配置的服务之后暂停,无论服务是否返回,等待到配置的超时时长就会继续往下走2.1配置流程配置自动流程ProcessTask为系统任务,API名称任选,勾选执行后等待,超时时间配置为30s2.2唤醒流程1、 到达超时时间自动唤醒流程自动唤醒,历史记录里会记录Auto Signal2、 未到达超时时间手动唤醒手动唤醒同1.2操作,execution_id的获取可以从调试界面获取或者环节入参添加参数${execution.id}获取
  • [问题求助] roma API 公网无法访问
    用postman 无法访问romaAPI 接口。roma 中 api 接口测试可以访问
  • [问题求助] ABC中同步ROMA api数据失败
    The user Hi-zq2021 can't access app Hi-zq2021__ysh_test01
  • [应用实践] 体验1.2.0版本自动数据增强
    硬件平台:X64操作系统:Win10 64位安装截图:体验教程:自动数据增强教程地址:自动数据增强在数据增强的步骤中,比较重要的几步分别是:定义MindSpore算子到AutoAugment算子的映射PARAMETER_MAX = 10 def float_parameter(level, maxval): return float(level) * maxval / PARAMETER_MAX def int_parameter(level, maxval): return int(level * maxval / PARAMETER_MAX) def shear_x(level): v = float_parameter(level, 0.3) return c_transforms.RandomChoice([c_vision.RandomAffine(degrees=0, shear=(-v,-v)), c_vision.RandomAffine(degrees=0, shear=(v, v))]) def shear_y(level): v = float_parameter(level, 0.3) return c_transforms.RandomChoice([c_vision.RandomAffine(degrees=0, shear=(0, 0, -v,-v)), c_vision.RandomAffine(degrees=0, shear=(0, 0, v, v))]) def translate_x(level): v = float_parameter(level, 150 / 331) return c_transforms.RandomChoice([c_vision.RandomAffine(degrees=0, translate=(-v,-v)), c_vision.RandomAffine(degrees=0, translate=(v, v))]) def translate_y(level): v = float_parameter(level, 150 / 331) return c_transforms.RandomChoice([c_vision.RandomAffine(degrees=0, translate=(0, 0, -v,-v)), c_vision.RandomAffine(degrees=0, translate=(0, 0, v, v))]) def color_impl(level): v = float_parameter(level, 1.8) + 0.1 return c_vision.RandomColor(degrees=(v, v)) def rotate_impl(level): v = int_parameter(level, 30) return c_transforms.RandomChoice([c_vision.RandomRotation(degrees=(-v, -v)), c_vision.RandomRotation(degrees=(v, v))]) def solarize_impl(level): level = int_parameter(level, 256) v = 256 - level return c_vision.RandomSolarize(threshold=(0, v)) def posterize_impl(level): level = int_parameter(level, 4) v = 4 - level return c_vision.RandomPosterize(bits=(v, v)) def contrast_impl(level): v = float_parameter(level, 1.8) + 0.1 return c_vision.RandomColorAdjust(contrast=(v, v)) def autocontrast_impl(level): return c_vision.AutoContrast() def sharpness_impl(level): v = float_parameter(level, 1.8) + 0.1 return c_vision.RandomSharpness(degrees=(v, v)) def brightness_impl(level): v = float_parameter(level, 1.8) + 0.1 return c_vision.RandomColorAdjust(brightness=(v, v))定义ImageNet数据集的AutoAugment策略imagenet_policy = [ [(posterize_impl(8), 0.4), (rotate_impl(9), 0.6)], [(solarize_impl(5), 0.6), (autocontrast_impl(5), 0.6)], [(c_vision.Equalize(), 0.8), (c_vision.Equalize(), 0.6)], [(posterize_impl(7), 0.6), (posterize_impl(6), 0.6)], [(c_vision.Equalize(), 0.4), (solarize_impl(4), 0.2)], [(c_vision.Equalize(), 0.4), (rotate_impl(8), 0.8)], [(solarize_impl(3), 0.6), (c_vision.Equalize(), 0.6)], [(posterize_impl(5), 0.8), (c_vision.Equalize(), 1.0)], [(rotate_impl(3), 0.2), (solarize_impl(8), 0.6)], [(c_vision.Equalize(), 0.6), (posterize_impl(6), 0.4)], [(rotate_impl(8), 0.8), (color_impl(0), 0.4)], [(rotate_impl(9), 0.4), (c_vision.Equalize(), 0.6)], [(c_vision.Equalize(), 0.0), (c_vision.Equalize(), 0.8)], [(c_vision.Invert(), 0.6), (c_vision.Equalize(), 1.0)], [(color_impl(4), 0.6), (contrast_impl(8), 1.0)], [(rotate_impl(8), 0.8), (color_impl(2), 1.0)], [(color_impl(8), 0.8), (solarize_impl(7), 0.8)], [(sharpness_impl(7), 0.4), (c_vision.Invert(), 0.6)], [(shear_x(5), 0.6), (c_vision.Equalize(), 1.0)], [(color_impl(0), 0.4), (c_vision.Equalize(), 0.6)], [(c_vision.Equalize(), 0.4), (solarize_impl(4), 0.2)], [(solarize_impl(5), 0.6), (autocontrast_impl(5), 0.6)], [(c_vision.Invert(), 0.6), (c_vision.Equalize(), 1.0)], [(color_impl(4), 0.6), (contrast_impl(8), 1.0)], [(c_vision.Equalize(), 0.8), (c_vision.Equalize(), 0.6)], ]以及在数据读取过程中插入AutoAugment变换 if do_train: dataset = dataset.map(operations=c_vision.RandomSelectSubpolicy(imagenet_policy), input_columns=["image"])对比体验最近在复盘一些kaggle的代码,就正好看了一下常用的数据增强手段在不同框架下的实现使用pytorch的预处理import torchvision from torchvision import transforms as T trans = T.Compose([ T.Resize(IMAGE_SIZE, IMAGE_SIZE), T.RandomHorizontalFlip(p=0.5) T.RandomVerticalFlip(0.5), T.RandomRotation(90) ])这里面主要用到了torchvision这个库其中的API参考是:https://pytorch.org/vision/stable/transforms.html而使用mindspore实现相同的功能:import mindspore.dataset.vision.c_transforms as c_vision import mindspore.dataset.transforms.c_transforms as c_transforms trans = [ c_vision.Resize(IMAGE_SIZE, IMAGE_SIZE), c_vision.RandomHorizontalFlip(0.5), c_vision.RandomVerticalFlip(0.5), c_vision.RandomRotation(degrees=90, resample=Inter.NEAREST, expand=True), ]可以看出来,不需要使用Compose这个API了,相对简洁了一些API参考:https://www.mindspore.cn/doc/api_python/zh-CN/r1.1/mindspore/mindspore.dataset.vision.html而在CV的比赛中,我们还会用一个基于OpenCV的库Augmentations,反正就是很快很好用的库import albumentations as A trfm = A.Compose([ A.Resize(IMAGE_SIZE, IMAGE_SIZE), A.HorizontalFlip(p=0.5), A.VerticalFlip(p=0.6), A.RandomRotate90(), ])API参考:https://albumentations.readthedocs.io/en/latest/api/augmentations.html#transforms从这里可以看出来,实现数据增强,用不同框架的方法是差不多的,基础功能上都是差不多的,关键是选择适合的变换方法,才能更好的实现CV比赛的提分邮箱:hellonexus@qq.com
  • [问题求助] 【welink产品】【日历功能】日历的api接口frequency ,怎么将重复基准设置为无重复
    【功能模块】日历【操作步骤&问题现象】1、如何设置为无重复
总条数:1108 到第
上滑加载中