返回列表
共 1 条
发表主题
楼主

华小Hi

Lv 1

195

主题

77

回复

57

粉丝
#
1055 0
| 发表于 2019-2-27 16:14:25 显示全部楼层 |
跳转到指定楼层

HUAWEI HiAI相关FAQ

[复制链接]

1. HIAI的盈利模式及上市布局如何?

HiAI Foundation这层芯片能力的开放是完全免费提供给APP的。


HiAI Engine这层功能业务API同样是免费开放给开发者,让你的APP找到爱(AI)。


HiAI Service服务能力开放,根据用户所需,适时适地推送服务,让服务主动找到用户。这一层的推送与直达,部分可能会涉及相关的合作伙伴的收益分成。


对于快速接入HIAI能力的APP更会在华为应用市场AI专区、云文件夹等给予相应的丰厚的资源激励,并同时有机会获得在华为各类产品发布会联合宣传与造势。


HiAI将全面携手开发者共同构建移动端的AI生态,希望能够在移动端呈现出非常丰富多彩、有趣,酷炫的AI应用,能够让AI切实的惠及到更广泛的用户群体,让用户真正感受到AI的神奇与魅力。


2. HIAI是对具体的算法做基于NPU芯片的加速,接入APP需要做平台定制么,比如有接入HIAI的APP?

目前加速是基于麒麟970芯片的,可以在线判断选择使用基于传统CPU或基于HiAI实现。

3. 华为HIAI接口只有华为手机能用吗?

除了华为手机,还有华为的Hikey970开发板(可用于IOT,Robot等的开发)


4. 标准resnet50,224*224输入,forward/inference一次要耗时多少?

resnet50,224*224输入推理在NPU上运行时间是39ms(fp16)


5. mobilenet,nasnet-mobile这种小型网络接入的速度如何?

小网络结构比较简单,本身运行的就很快,加速效果体现不会很明显。


6. HIAI的SDK有兼容其它机型CPU的逻辑么?

架构设计上是可以兼容的,我们对和其他平台厂商合作的态度是开放的


7. 华为暂时不支持的算子,客户可以自己定制么?

我们有支持定制算子的计划,在今年下半年将更新相关信息。


8. 什么时候开发者能得到一块开发板?

Hikey970开发版将于2018Q1发布,有新的信息会及时通过各种媒体通知大家


9. 合作伙伴免费,合作伙伴是怎样界定的?哪些能力需要收费?

现在想使用华为AI能力的都是我们的合作伙伴,华为HIAI的API、DDK都是免费的。


10. 能否提供一个官方文档链接作为参考?

官方文档链接: https://developer.huawei.com/consumer/cn/hiai


11. 华为的API跟模型商店是什么关系?

华为API是为开发者提供的可直接调用的API(类似Android 应用API),覆盖常用场景,比如美学评分、人脸识别,文字识别等。模型商店是为AI算法工程师和AI应用工程师搭建的共享平台,AI算法工程师可将自己的模型上传至模型商店(商业模式可以考虑收费或者免费),需要使用模型的开发者下载使用。


12. 场景检测相关/手机截屏OCR相关/码检测/美学评分相关/人脸朝向识别/人脸检测/标签检测

1)没有调用接口的prepare()方法可以直接使用detect()方法吗?


可以的,在detect()方法中会默认启动引擎,如果引擎已经启动则不会再次启动,开发者可以放心使用。


13. 场景检测

1)release()方法是什么时候调用?


请在应用不再使用场景检测时及时卸载模型,释放资源。


2)是否支持多线程调用?


HiAiEngine 不支持同一应用使用多线程调用同一接口,这样会导致某一线程调用release方法后,卸载模型,导致正在运行的另一些线程出错。事实上,由于NPU硬件底层也是排队执行多任务,所以多线程执行同一功能达不到并行的效果。另外,引擎支持使用多线程调用不同接口,如开启两个线程同时使用美学评分和场景检测接口。


14. 词性标注相关

1)词性标注,支持哪些语言?


目前词性标注,支持中文


2)词性标注,算法是端测的还是云测的?


词性标注是端测的,用户在手机断网的情况下,仍然可以使用这个功能。


3)服务什么时候初始化


SDK设计为单例,最好在application的onCreate里面初始化,onDestroy里面销毁


15. 分词相关

1)分词,支持哪些语言?


目前分词,支持中文


2)分词,算法是端测的还是云测的?


分词是端测的,用户在手机断网的情况下,仍然可以使用这个功能。


3)服务什么时候初始化


SDK设计为单例,最好在application的onCreate里面初始化,onDestroy里面销毁


16. 手机截屏OCR相关

1)手机截屏OCR,对自然场景图片效果怎样?


手机截屏OCR目前支持手机中App的简单背景的截屏,其特点就是文本行没有倾斜、背景几乎为纯色。手机截屏OCR针对其特点,进了速度优化。而自然场景图片主要是通过相机拍照获取的,图片中的文本受到光照、倾斜、复杂背景等因素影响,使用手机截屏OCR进行文字提取时,效果会非常差。


2)手机截屏OCR,支持哪些语言?


目前手机截屏OCR,支持中文和英文。识别时无需指定语言,算法会自动判断。


3)手机截屏OCR,支持哪些字体?


目前手机截屏OCR,支持手机中常用的如思源黑体、黑体、宋体、楷体等。


4)手机截屏OCR,算法是端测的还是云测的?


手机截屏OCR是端测的,用户在手机断网的情况下,仍然可以使用这个功能。


17. 码检测

1)release()方法是什么时候调用?


release()方法会卸载在码检测相关组件,请在应用不再使用码检测时及时卸载模型,释放资源。


18. 美学评分相关

1)release()方法是什么时候调用?


release()方法会卸载在NPU芯片中已经加载的模型,请在应用不再使用美学评分时及时卸载模型,释放资源。如:


AestheticsScoreDetector aestheticsScoreDetector = newAestheticsScoreDetector(this)

for(……) {

JSONObject json =aestheticsScoreDetector.detect(frame,null);

AestheticsScoreaestheticsScores = aestheticsScoreDetector.convertResult(json);

float score = aestheticsScores.getScore();

//do something

}

aestheticsScoreDetector.release();


19. 人脸比对相关

1)没有调用接口的prepare()方法可以直接使用faceCompare()方法吗?


可以的,在faceCompare()方法中会默认启动引擎,如果引擎已经启动则不会再次启动,开发者可以放心使用。


2)release()方法是什么时候调用?


release()方法会卸载引擎中已经加载的模型,请在应用不再使用人脸比对时及时卸载模型,释放资源。如:


FaceComparator faceComparator = newFaceComparator(getApplicationContext());

for(……) {

JSONObject jsonObject = faceComparator.faceCompare(frame1,frame2, null);

FaceCompareResult result =faceComparator.convertResult(jsonObject);

//do something

}

faceComparator.release();


20. 人脸朝向识别

1)人脸朝向识别,算法是端测的还是云测的?


人脸朝向识别是端测的,用户在手机断网的情况下,仍然可以使用这个功能。


2)输出结果中的confidence表示什么含义?


confidence表示识别为该朝向的可信度,是介于0和1之间的浮点数,confidence越大,表示识别结果的可信度越高。一般情况下,可设定较大阈值,可信度超过这个阈值,才进行相关的决策。


4) release()方法是什么时候调用?

release()方法会卸载在NPU芯片中已经加载的模型,请在应用不再使用人脸朝向时及时卸载模型,释放资源。如:


HeadposeDetector headposeDetector = newHeadposeDetector(mContext);

for(……) {

JSONObjectjsonObject = headposeDetector.detect(frame1, null);

HeadPoseResultresult = headposeDetector.convertResult(jsonObject);

int headpose =result.getHeadpose();

int confidence =result.getConfidence();

//do something

}

headposeDetector.release();


21. 人脸检测

1)release()方法是什么时候调用?


release()方法会卸载在NPU芯片中已经加载的模型,请在应用不再使用人脸检测时及时卸载模型,释放资源。如:

FaceDetector faceDetector = new FaceDetector (this)

for(……) {

JSONObject jsonFace =faceDetector.detect(frame, 10, null);

List faces = faceDetector.convertResult(jsonFace);

//do something

}

faceDetector.release();


22. 标签检测

1)没有调用接口的prepare()方法可以直接使用doFaceParsing()方法吗?


可以的,在doFaceParsing()方法中会默认启动引擎,如果引擎已经启动则不会再次启动,开发者可以放心使用。


2)release()方法是什么时候调用?


release()方法会卸载在NPU芯片中已经加载的模型,请在应用不再使用人脸解析时及时卸载模型,释放资源。如:

FaceParsing faceParsing = new FaceParsing(this)

for(……) {

ImageResult srt =faceParsing.doFaceParsing(frame, null);

Bitmap newbmp =srt.getBitmap();

//do something

}

faceParsing.release();


23. 标签检测

1)没有调用接口的prepare()方法可以直接使用doSegmentation()方法吗?


可以的,在doSegmentation()方法中会默认启动引擎,如果引擎已经启动则不会再次启动,开发者可以放心使用。


2)release()方法是什么时候调用?


release()方法会卸载在NPU芯片中已经加载的模型,请在应用不再使用人像分割时及时卸载模型,释放资源。如:


ImageSegmentation ssEngine = new ImageSegmentation(this);

for(……) {

ImageResult srt =ssEngine.doSegmentation(frame, null);

Bitmap newbmp =srt.getBitmap();

//do something

}

ssEngine.release();


24. 标签检测

1)没有调用接口的prepare()方法可以直接使用detectFaceAttributes()方法吗?


可以的,在detectFaceAttributes ()方法中会默认启动引擎,如果引擎已经启动则不会再次启动,开发者可以放心使用。


2)release()方法是什么时候调用?


release()方法会卸载在NPU芯片中已经加载的模型,请在应用不再使用人脸属性时及时卸载模型,释放资源。如:


FaceAttributesDetector faceAttributes = newFaceAttributesDetector(this);

for(……) {

JSONObject json = faceAttributes.detectFaceAttributes (frame, null) ;

FaceAttributesInfo info =faceAttributes.convertResult(json);

//do something

}

faceAttributes.release();


25. 实体识别

1)实体识别,支持哪些语言?


目前实体识别,名称本身语言不限制,能支持名称为外文的实体,但整体语境要在中文下


2)实体识别,算法是端测的还是云测的?


实体识别是端测的,用户在手机断网的情况下,仍然可以使用这个功能。


3)服务什么时候初始化


SDK设计为单例,最好在application的onCreate里面初始化,onDestroy里面销毁


26. 标签检测

1)release()方法是什么时候调用?


release()方法会卸载在NPU芯片中已经加载的模型,请在应用不再使用标签检测时及时卸载模型,释放资源。如:

LabelDetector labelDetector = new LabelDetector(this)

for(……) {

JSONObject jsonLabel = labelDetector.detect(frame,null);

Label label =labelDetector.convertResult(jsonLabel);

//do something

}

labelDetector.release();


27. 超分辨率

1)当超分辨率(简称超分)运行出错的时候,应该如何排查问题?


观察Android错误日志,这是最快、最直接能得到错误原因的方法。

观察结果码,可以知道大致的错误类型。

在绝大多数情况下,运行错误的主要原因是输入不合法,请阅读API接口文档中的约束和限制,并仔细检查输入的参数是否符合规定。

查看应用是否有相应的权限,比如存储权限。

2)使用超分接口,需要额外管理资源么?


华为超分API将所有附加的资源管理都封装在接口之内,除了用户已有资源外,不需要额外管理任何资源。


3) 超分功能的输入图片限制纵横比么?

华为超分对输入图片尺寸的具体限制是:较长一边的像素数应大于0且小于等于800,较短一边的像素数应大于0且小于等于600,不限制纵横比。


所谓“较长一边“,就是宽度和高度中,像素数较多的那个边;与之对应的“较短一边”,就是宽度和高度中,像素数较少的那个边。比如640x480的图片,和480x640的图片,较长的一边都是640像素,较短的一边都是480像素。


一个典型的例子是:华为超分可以支持最大800x600的尺寸和600x800的尺寸。


4) 为什么要支持ALPHA_8像素格式?

AndroidBitmap是不支持单通道灰度图的,我们这里使用ALPHA_8像素格式来模拟单通道灰度图。值得注意的是,ALPHA_8像素格式存储的是ALPHA通道,也就是透明度,我们这里纯粹是借用ALPHA_8来模拟单通道灰度图。


5) 华为超分实际上目前不支持质量选择,为什么还要在接口中开放?

华为超分接口的超分质量选择,主要是为了后续扩展使用,质量选择主要是为了给用户提供最佳的方案选择。更高质量的超分意味着更大的计算量,也就意味着更高的耗电量和更高的延迟。


在某些场景下,超分的质量并不是特别敏感,或者因人而异,比如:最高质量的超分和质量稍差的超分之间的画质对比,可能只有专家或者放大到100%仔细观察才能发现区别,但运行时间可能相差很多。


28. 标签检测

1)没有调用接口的prepare()方法可以直接使用doSegmentation()方法吗?


可以的,在doSegmentation()方法中会默认启动引擎,如果引擎已经启动则不会再次启动,开发者可以放心使用。


2)release()方法是什么时候调用?


release()方法会卸载在NPU芯片中已经加载的模型,请在应用不再使用图像语义分割时及时卸载模型,释放资源。如:

ImageSegmentation is = new ImageSegmentation(this);

for(……) {

ImageResult sr = is.doSegmentation (frame, null);

Bitmap bmp = sr.getBitmap();

//do something

}

is.release();


29. 文档校验&文档检测

1)没有调用接口的prepare()方法可以直接使用detect()方法吗?


可以的,在docDetect()和docRefine()方法中会默认启动引擎,如果引擎已经启动则不会再次启动,开发者可以放心使用。


2)release()方法是什么时候调用?


请在应用不再使用文档校验时及时卸载模型,释放资源。


3)是否支持多线程调用?


HiAiEngine 不支持同一应用使用多线程调用同一接口,这样会导致某一线程调用release方法后,卸载模型,导致正在运行的另一些线程出错。事实上,由于NPU硬件底层也是排队执行多任务,所以多线程执行同一功能达不到并行的效果。另外,引擎支持使用多线程调用不同接口,如开启两个线程同时使用美学评分和文档校验接口。


30. 文字图像超分辨率

1)没有调用接口的prepare()方法可以直接使用doSuperResolution方法吗?


可以,在doSuperResolution()方法中会默认启动引擎,如果引擎已经启动则不会再次启动,开发者可以放心使用。


2)release()方法是什么时候调用?


请在应用不再使用文字超分时及时卸载模型,释放资源。


3)是否支持多线程调用?


HiAiEngine 不支持同一应用使用多线程调用同一接口,这样会导致某一线程调用release方法后,卸载模型,导致正在运行的另一些线程出错。事实上,由于NPU硬件底层也是排队执行多任务,所以多线程执行同一功能达不到并行的效果。另外,引擎支持使用多线程调用不同接口,如开启两个线程同时使用美学评分和文字超分。


31. 标签检测

1)没有调用接口的prepare()方法可以直接使用detectLandMark()方法吗?


可以的,在detectLandMark()方法中会默认启动引擎,如果引擎已经启动则不会再次启动,开发者可以放心使用。


2)release()方法是什么时候调用?


release()方法会卸载在NPU芯片中已经加载的模型,请在应用不再使用五官特征检测时及时卸载模型,释放资源。如:

FaceLandMarkDetector lm = new FaceLandMarkDetector(this);

for(……) {

JSONObject resultObj = lm.detectLandMark (frame, null);

ListlandMarks = lm.convertResult(resultObj);

//do something

}

lm.release();


32. IM类场景意图

1)IM类场景意图,支持哪些语言?


目前IM类场景意图,只支持中文语境,意图中出现的属性可以为其他语言


2)IM类场景意图,算法是端测的还是云测的?


IM类场景意图是端测的,用户在手机断网的情况下,仍然可以使用这个功能。


3)服务什么时候初始化


SDK设计为单例,最好在application的onCreate里面初始化,onDestroy里面销毁


33. 语音识别

1)writePcm()什么时候调用?


开发者可以将获取到的语音数据通过writePcm()方法写入到引擎中,引擎通过识别解码,将语音转化为相应的文本。同时引擎支持自录音和从文件读取的方式进行识别,初始化引擎时可以通过配置ASR_AUDIO_SRC_TYPE参数来实现。文件读取的方式可以进行批量的文件测试。


2)cancel()与stopListening()方法的区别是什么?


当用户已经启动了识别后,即识别的过程中,突然想停止上述两种方法都可以停下来,差别是:


cancel()停止但是不上报当前已经识别的结果;


stopListening()停止且会把当前的结果刷新上报显示;


3)是否支持多线程调用?


HiAiEngine 不支持同一应用使用多线程调用同一接口,这样会导致某一线程调用release方法后,卸载模型,导致正在运行的另一些线程出错。故多线程执行同一功能达不到并行的效果。另外,由于Android同一时刻只能有一个录音线程在,故语音识别本身不支持多线程的并发。但是引擎支持使用多线程调用不同接口,如开启两个线程同时使用美学评分和ASR接口。




返回列表
共 1 条
发表主题
您需要登录后才可以回帖 登录 注册

快速回复 返回顶部 返回列表