ymx-huawei-vision
    正在准备搜索索引...

    接口 YmxHuaweiVision

    华为视觉能力

    识别与推理全部在本机完成(传入网络地址时仅有下载需要联网);仅适用于中国境内(不含港澳台)。 图片结果统一为 PNG 字节(Uint8Array)。

    能力与图片要求:

    • 文字识别:支持 JPEG、JPG、PNG;建议 720p 以上,100px<高<15210px、100px<宽<10000px,高宽比建议 10:1 以下
    • 人脸检测、人脸比对:224px<高<15210px、100px<宽<10000px,高宽比建议 10:1 以下
    • 主体分割:20px<高<9000px、20px<宽<9000px,高宽比建议 3:1 以下
    • 多目标识别、骨骼点检测:100px<高<10000px、100px<宽<10000px,高宽比建议 5:1 以下
    • 图像超分:16px<高<2048px、16px<宽<2048px,建议处理 1024×1024 以下图片
    • 卡证识别:卡证需保持真实证件长宽比、无遮挡无摩尔纹,正向拍摄角度小于 30 度
    • 图片识图:图片最小 100×100,需静态位图(不支持 svg、gif)
    const vision = ymx.requirePlugin('ymx-huawei-vision') as YmxHuaweiVision;

    // 文字识别(图片支持本地文件与网络地址)
    const ocr = await vision.ocrText({ src: 'https://cdn.myapp.ltd/ag/35/img/logo.png' });
    console.log(ocr.value);

    // 人脸检测
    const face = await vision.detectFace({ src: 'https://cdn.myapp.ltd/ag/35/img/logo.png' });
    console.log(face.faces.length, face.faces[0]?.rect);
    interface YmxHuaweiVision {
        id: string;
        version: string;
        analyzeImage(data: AnalyzeImageData): Promise<AnalyzeImageResult>;
        clearSearchImages(): Promise<void>;
        compareFace(data: CompareFaceData): Promise<CompareFaceResult>;
        deleteSearchImage(data: SearchImageItemData): Promise<void>;
        detectFace(data: DetectFaceData): Promise<DetectFaceResult>;
        detectObject(data: ImageData): Promise<DetectObjectResult>;
        detectSkeleton(data: ImageData): Promise<DetectSkeletonResult>;
        getLivenessResult(): Promise<LivenessResult>;
        insertSearchImage(data: SearchImageItemData): Promise<void>;
        ocrText(data: OcrData): Promise<OcrResult>;
        recognizeCard(data?: RecognizeCardData): Promise<CardResult>;
        removeListener(): Promise<void>;
        scanDocument(data?: ScanDocumentData): Promise<ScanDocumentResult>;
        searchImage(data: SearchImageQueryData): Promise<SearchImageResult>;
        segmentSubject(data: SegmentData): Promise<SegmentResult>;
        setListener(
            listener: (eventName: string, data: any) => void,
        ): Promise<void>;
        startLiveness(data?: LivenessData): Promise<void>;
        superResolution(data: ImageData): Promise<SuperResolutionResult>;
    }

    层级

    • JsApiBase
      • YmxHuaweiVision
    索引

    属性

    id: string

    获取插件 ID

    version: string

    获取插件版本,如 1.2.3

    方法

    • 图片识图

      打开图片识图页,可长按选中图片中的文字、点选主体抠图,退出页面时返回识别到的文字与主体(PNG 字节)。

      参数

      返回 Promise<AnalyzeImageResult>

      识图结果

      const res = await vision.analyzeImage({ src: imagePath });
      console.log(res.texts, res.subjects.length);
    • 清空图库数据

      返回 Promise<void>

      无返回值

      await vision.clearSearchImages();
      
    • 人脸比对

      比较两张图片中的人脸是否为同一人,返回相似度,仅支持 1v1 比对。

      参数

      返回 Promise<CompareFaceResult>

      比对结果

      const res = await vision.compareFace({ src1: imagePath1, src2: imagePath2 });
      console.log(res.isSamePerson, res.similarity);
    • 删除图库中的图片

      参数

      返回 Promise<void>

      无返回值

      await vision.deleteSearchImage({ src: imagePath, scope: 'default_scope' });
      
    • 人脸检测

      返回人脸框、置信度、五官位置与人脸朝向,可选择同时检测遮挡。

      参数

      返回 Promise<DetectFaceResult>

      人脸列表

      const res = await vision.detectFace({ src: imagePath });
      console.log(res.faces[0].probability, res.faces[0].points);
    • 多目标识别

      检测图片中的风景、动物、植物、建筑、人脸、表格、文本等目标并返回区域与置信度。

      参数

      返回 Promise<DetectObjectResult>

      目标列表

      const res = await vision.detectObject({ src: imagePath });
      res.objects.forEach(item => console.log(item.labels, item.score, item.rect));
    • 骨骼点检测

      检测人体 17 个关键点(鼻、左右眼、左右耳、左右肩、左右肘、左右手腕、左右髋、左右膝、左右脚踝)。

      参数

      返回 Promise<DetectSkeletonResult>

      骨骼列表

      const res = await vision.detectSkeleton({ src: imagePath });
      console.log(res.skeletons[0]?.points);
    • 获取人脸活体检测结果

      返回最近一次活体检测的结果。

      返回 Promise<LivenessResult>

      检测结果

      const res = await vision.getLivenessResult();
      console.log(res.livenessType, res.image?.length);
    • 图片入库(通过文本搜索图片)

      先把图片加入指定图库,之后可用文字检索图库中的图片。

      参数

      返回 Promise<void>

      无返回值

      await vision.insertSearchImage({ src: imagePath, scope: 'default_scope' });
      
    • 文字识别(OCR)

      支持简体中文、英文、日文、韩文、繁体中文,返回整图文字与文本块、行、词的坐标。

      参数

      返回 Promise<OcrResult>

      识别结果

      const res = await vision.ocrText({ src: imagePath });
      console.log(res.value);
    • 卡证识别

      打开系统卡证识别页(相机取景),支持身份证、银行卡、护照、驾驶证、行驶证、港澳居民来往内地通行证、台湾居民来往大陆通行证。

      参数

      返回 Promise<CardResult>

      识别结果

      const res = await vision.recognizeCard({ type: 1, side: 1 });
      console.log(res.code, res.cardInfo);
    • 移除监听器

      返回 Promise<void>

    • 文档扫描

      打开系统文档扫描页,支持拍照或相册取图、编辑、导出 JPG、PDF、Excel。 需要表格提取时在 docTypes 中传入 1(部分设备不支持表格提取)。

      参数

      返回 Promise<ScanDocumentResult>

      扫描结果(保存后的文件地址)

      const res = await vision.scanDocument({ maxShotCount: 3, saveOptions: [1] });
      console.log(res.saveType, res.uris);
    • 通过文本搜索图片

      在指定图库中用文字检索已入库的图片,按相似度返回。

      参数

      返回 Promise<SearchImageResult>

      检索结果

      const res = await vision.searchImage({ query: '红色汽车', scope: 'default_scope' });
      res.images.forEach(item => console.log(item.imagePath, item.similarity));
    • 主体分割

      抠出图片主体,可返回主体区域、抠图前景(PNG 字节)、掩膜数据与各主体明细。

      参数

      返回 Promise<SegmentResult>

      分割结果

      const res = await vision.segmentSubject({ src: imagePath, enableSubjectForegroundImage: true });
      console.log(res.subjectCount, res.fullSubject.image?.length);
    • 设置监听器,接收 eventName 事件名称,data 事件数据

      注意: 此接口为覆盖操作,仅保留最后一个监听器,最后的 listener 才能收到事件通知。

      参数

      • listener: (eventName: string, data: any) => void

      返回 Promise<void>

    • 拉起人脸活体检测

      跳转到系统人脸活体检测页面,返回是否跳转成功;检测结果需在返回后调用 [getLivenessResult] 获取。 首次调用会请求相机授权。

      参数

      返回 Promise<void>

      是否跳转成功

      await vision.startLiveness({ routeMode: 'replace', actionsNum: 3 });
      // 用户完成检测返回后
      const res = await vision.getLivenessResult();
      console.log(res.livenessType);
    • 图像超分

      对低分辨率图像进行超分辨率重建,返回超分后的 PNG 字节与尺寸。

      参数

      返回 Promise<SuperResolutionResult>

      超分结果

      const res = await vision.superResolution({ src: imagePath });
      console.log(res.width, res.height, res.image.length);