Visenze API

亚洲求职面试攻略:讲一讲我曾经面试过的那些大公司们 Overview 为什么要叫《亚洲求职面试攻略》呢?看起来有点大,让人觉得是假标题。但是如果把亚洲分为几个比较IT发达的地区的话(额,没有忘了三哥,暂时不想去),中国、新加坡、日本,我觉得差不多可以代表亚洲的Top实力,所以说标题还是可以的。 成绩 加粗的公司属于比较坑爹的公司,求职的时候应该尽量避免 面试 小红书 小红书印象不深,本来面试地点在会议室,结果临时说别的组要开会,被赶了出去,找了... 阅读详情

Visenze API学习

Visenze概述

Visenze是新加坡国立大学的一个孵化项目,主要用于提供图片检索识别方案。一般来说,搭建一个CBIR系统大体需要以下几个关键技术:

  • 图片数据库的构建和管理
  • 图片检索算法研究,包括特征提取、匹配及索引等算法
  • 服务器搭建和维护,与客户机进行交互(Visenze用到了Http和Json协议)

对于一个中小型公司而言,搭建这样一个系统是需要很大的精力和财力的,特别是在图片检索研究方面,很多公司并不具备相关的技术积累。而Visenze提供了一个完整的解决方案,用户只需将自己的图片数据以csv文件的方式上传至Visenze,调用Visenze提供的API即可实现整个图片检索过程。因此,用户无需再关注图片检索的技术细节,可以把工作重心转移到UI设计及其他功能实现上来。当然,个人认为,当公司发展到一定程度的时候,还是要把这些技术掌握到自己手里比较好。

Visenze允许用户为图片添加各种标签(如价钱,来源等等),从这点看还是具有很大的应用价值的。上传格式见下图(除im_name, im_url必须有外,其他标签可任意增删):

这里写图片描述

最近准备仿照Visenze搭建一个基于Android的图片检索系统,作为小白,但求多学到点技术。本文先翻译Visenze API Doc, 目的是对其通信协议,数据交互有一个整体认识,便于后续深入研究。
       由于Visenze的服务器源码是非开源的,所以后端代码还是需要自己编写的,希望能写出来吧!
       

一、API概述

1.1 介绍

ViSearch是Visenze的图片检索API,用以提供准确、可靠及可扩展的图片检索。ViSearch API能够使开发者有效地索引并完成图片检索功能。Visenze提供了各种不同语言的SDK,可以方便的应用于Web和移动终端。

1.2 SDK下载

SDK下载地址:

1.3 认证

Visenze为每个ViSearch应用分配了一个唯一的 access keyaccess key。这个密钥对用于认证每个API调用。
Visearch有两个API调用机制。第一个方法是HTTP基本认证(HTTP Basic Auth)——aceess key 和 secret key经过base64编码后,附加在请求头中。这种方法使用简单,但仅仅适用于从后台系统调用API(可能是因为安全问题,前端采用这种方式容易被劫持)。第二种方法是基于签名的认证(signature based authentication)——密钥对用于生成一个数字签名并附加在request URL上。这种方法对于前端和后端调用都较安全。

1.3.1 HTTP Basic Auth

这种认证方式就是标准的HTTP Basic Auth。这里,access key用作用户名,secret key用作认证密码。

在HTTP中,基本认证是一种用来允许Web浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。
在发送之前是以用户名追加一个冒号然后串接上口令,并将得出的结果字符串再用Base64算法编码。例如,提供的用户名是Aladdin、口令是open sesame,则拼接后的结果就是Aladdin:open sesame,然后再将其用Base64编码,得到QWxhZGRpbjpvcGVuIHNlc2FtZQ==。最终将Base64编码的字符串发送出去,由接收者解码得到一个由冒号分隔的用户名和口令的字符串。
虽然对用户名和口令的Base64算法编码结果很难用肉眼识别解码,但它仍可以极为轻松地被计算机所解码,就像其容易编码一样。编码这一步骤的目的并不是安全与隐私,而是为将用户名和口令中的不兼容的字符转换为均与HTTP协议兼容的字符集。

1.3.2 Signature Based Authentication

这种认证方法需要生成一个签名,且对于每次请求只能使用一次。
1.串联成以下字段: secret_key + nonce + date

  • secret_key: app的secret key;
  • nonce: 一个随机的唯一的字符串,至少8个字符;
  • date: 发出请求的UNIX时间戳(以秒为单位),必须保证在做出请求的10分钟内。

2.生成上述串联字符串的HMAC-SHA1,并使用secret key作为HMAC-SHA1的加密密钥。
3.将以下参数附加到HTTP请求中:

  • access_key = your_access_key
  • nonce = your_generated_nonce
  • date = unix_timestamp
  • sig = hnmac_s
微服务综合案例-02-product服务创建   上篇文章我们分析了我们要实现的案例的需求,本文我们来实现下product服务。因为要创建的项目比较多所以,本案例采用eclipse来开发。 Product服务   因为我们是通过Feign来声明是的调用服务,所以我们需要创建service接口服务。持久层我们通过mybatis操作,所以我们需要通过mybatis的generator插件来帮助我们生存对应文件 一、数据库   product服务对... 阅读详情

相关推荐

YOLO26算法保龄球馆保龄球目标检测+训练好的模型+743张数据集+pyqt可视化界面.zip

数据集可视化效果可参见下方展示。 【数据集概况】 · 检测类别(中文):[保龄球(bowling)] · 训练集:594 张 · 验证集:75 张 · 测试集:74 张 · 总计:743 张 该数据集聚焦于室内保龄球馆场景,系统性采集了多角度、多姿态下保龄球在不同运动阶段的视觉特征,为保龄球运动过程中的球体识别与轨迹分析提供了高质量标注样本,具有明确的体育训练与智能辅助系统开发价值。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 100 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9938** mAP50-95 | 0.6966 Precision | 0.9740 Recall | 0.9974 train/box_loss | 0.9113 train/cls_loss | 0.2862 val/box_loss | 1.1516 val/cls_loss | 0.3116 【训练过程分析】 100 轮训练后 mAP50 达到 0.9938,模型收敛良好。Loss 曲线前段快速下降,后段趋于平稳,val_loss 无反弹,没有明显过拟合。但 mAP50-95 为 0.6966,和 mAP50 差距 0.30,定位精度仍有优化空间。 【模型性能评估】 Precision 0.9740、Recall 0.9974,精召双高,模型对保龄球的检测能力强。 【预测效果展示】 验证集预测效果较好,检测框基本准确覆盖保龄球,置信度整体偏高。 【改进建议】 1. 丰富场景多样性:补充不同光照、背景和遮挡条件下的样本。 2. 提升输入分辨率:640 ...

高手来帮我解决下这个问题啊..!!

我自己用.NET做了个网站..功能都实现了..    都测试好了,没问题.. 买了个域名,做好设置了..  但是进网站后点添加功能就报错..错误如下:详细信息: 若要使他人能够在远程计算机上查看此特定错误消息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 标记。然后应将此 标记的“mode”属性设置为“Off”。

chengbangzhu的专栏 832

PaddleOCRApi面向 Windows 与 Linux 的轻量级 OCR 与YOLO目标检测 HTTP 服务

PaddleOCR 与YOLO目标检测 HTTP 服务。 项目通过 PaddleOCROnnx 原生库集成 OnnxRuntime加速能力,围绕 ONNX 模型部署, 以统一接口提供图像文字识别、YOLO 目标检测和 Tensor 数据输出。 功能概览 文字识别:支持图片 Base64、multipart/form-data 上传,以及文本和 JSON 结果。 目标检测:支持 YOLO 图片检测,返回检测框 JSON 或原始 Tensor。 浏览器演示:访问服务根地址,上传图片并切换 OCR、YOLO 模式。 健康检查:通过 /health 查看服务及 OCR、YOLO 引擎初始化状态。 并发处理:通过 OCR 引擎实例池处理并发请求,可调整实例数量。 体验与调用 启动后访问: 入口 地址 浏览器演示 http://localhost:5000/ 健康检查 http://localhost:5000/health 原生依赖 Windows:优先从 runtimes/win-x64/native/ 加载原生 DLL;该目录没有 PaddleOCROnnx.dll 时,尝试从可执行文件所在目录加载。主 DLL 与对应后端依赖应放在同一原生目录中,不要将同一组依赖分散到多个目录。 Linux:原生运行时位于 runtimes/linux-x64/native/,程序使用相对于可执行文件的运行时搜索路径查找随包部署的依赖。 后端选择:CoreOCROnnx 支持 ONNX Runtime、OpenVINO、TensorRT 后端。请使用与平台、进程架构、硬件和后端匹配的一整套运行时,不要混用不同后端或版本的依赖。

产品上线后出现问题处理

建立上线问题回溯机制,分以下几步: 1、分析线上问题并尽快解决; 2、搞清楚线上问题产生原因(开发流程处理不当还是测试不到位等等); 3、如何处理该问题 -- 解决问题方案; 4、后续如何规避。 总体来说: 线上出现问题后应先把问题都收集起来,把原因了解清楚,责任人分清楚。前期不以惩罚为目的,以收集信息为目的。 测试主导回溯文档,开发配合,主要包括以下内容:1、...

monkey_怡宝的博客 1344

九个问题从入门到熟悉HTTPS

女朋友也是软件工程专业,因为快要毕业了,最近一边做毕设一边学习编程。前两天她问我 HTTPS 的问题,本来想直接扔一篇网上的教程给她。后来想了一下,那些文章大多直接介绍概念, 对新手不太友好,于是我干脆亲自给她解释一下,顺便整理了一份问答录。 Q1: 什么是 HTTPS? BS: HTTPS 是安全的 HTTP HTTP 协议中的内容都是明文传输,HTTPS 的目的是将这些内容加密,确保信息传输安...

weixin_33962621的博客 359

Kubernetes安装dashboard

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33725807的博客 218

流程平台:报错排错 - Licenses.ProductLicenseException

问题描述:这个问题主要是由于该流程平台的流程实例数量超过平台版本规定的数量,需要购买相应版本的注册码。 解决方法:购买注册码,并进行注册,注册步骤如下,在程序菜单中找到“管理和激活”并点击,或者执行安装目录下 c:\OThinker\H3\Sever\H3Manager.exe 在打开的窗口中,选择“注册”选项,根据“编码”跟厂商换取相应的注册码,然后把注册码填写文本框内,点击“激活”...

weixin_30262255的博客 345

再聊PID

网上关于PID算法的文章很多,但是感觉有必要自己再进行一次总结,抽丝剥茧地重新认识了一下PID;1 前言2 开环控制3 闭环控制4 PID4.1 系统架构4.2 理论基础4.3 离散化4...

张巧龙的博客 832

product

ResourceModel 1 //return: //Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection $collection = Mage::getResourceModel('catalog/product_collection') 2 addAttributeToSelect3$collection = Mage::getResourceModel('catalog/product_collection')       

Terry - 专注外贸B2C 580

pidstat命令详解

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34113237的博客 581

使用PID库,轻松搞定PID

原文地址:http://www.arduino.cn/thread-15176-1-2.html             http://www.arduino.cn/thread-15177-1-1.html 感谢作者的无私奉献 每个接触PID的人,都知道PID的公式吧:   然后根据这个公式,就可以编出计算output的arduino程序如下:   注:程序源码可以在

见习馒头 1万+

product出现错误解决

 product出现错误解决 function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSelection?d.getSelection():);void(keyit=window.open(http://www.36

signsun的专栏 2785

PID 详解 (附伪代码

目录前言PID含义PID算法PPDPID位置式PID伪代码增量式PID伪代码参考资料结语 前言 PID是什么?PID怎么用? 今天小编就来帮助大家了解一下PID到底是什么和怎么使用。 PID含义 P——Proportion,比例 I——Integral,积分 D——Differential,微分 PID控制(源自wiki,译自google):比例积分微分控制器(PID控制器或三项控制器)是一种采用反馈的控制回路机制,广泛用于工业控制系统和需要连续调制控制的其他各种应用中。 用程序来讲,就是利用实时位置信息(

qq_43739951的博客 7957
下一篇: JAVA/C++ 堆栈详解
anyangchn
博客等级 码龄11年 1粉丝 3原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值