\n```\n\n### SDK初始化\n\n```\nHELPCODEESCAPE-javascript\nconst cheatEngine = new AliyunDetectEngine();\nconst config = {\n objectDetect: true, //电子设备检测\n scenePersonEnter: true, //人物进入\n scenePersonExit: true, //离开\n scenePersonInRectRatio: true, //画面占比\n\n actionHeadUpDown: true, //低/抬头\n actionHeadLeftRight: true, //转头\n actionHeadShaking: true, //摇头\n\n actionPoseStandup: true, //起立\n actionPoseSitting: true, //坐下\n actionPoseHandup: true, //举手\n actionPersonSpeech: true, //声音\n licenseKey: '',//sdk license\n licenseDomain: '' //sdk根域名\n}\nawait cheatEngine.init(config);\n```\n\n### 基于摄像头流作弊检测\n\n```\nHELPCODEESCAPE-javascript\n// 获取video元素\nconst video = document.querySelector('video');\n// 获取摄像头\nconst stream = await navigator.mediaDevices.getUserMedia({ video: true, audio: true })\nvideo.srcObject = stream;\nvideo.play();\n\ncheatEngine.startDetect(video);\ncheatEngine.on('detectResult', (jsonResult) => {\n console.info(jsonResult);\n});\n```\n\n结果输出:\n\n```\nHELPCODEESCAPE-javascript\n{\n \"actionPersonSpeech\": 1.0,\n \"actionPoseHandup\": 0,\n \"actionPoseSitting\": 0,\n \"actionPoseStandup\": 0,\n \"faceCount\": 1,\n \"scenePersonInRectRatio\": 0.13\n}\n```\n\n

参数

类型

说明

objectHeadPhone

number

戴头式耳机检测分值。

objectEarPhone

number

戴入耳式耳机检测分值。

objectDetectCellPhone

number

打电话检测分值。

objectDetectWatch

number

戴手表检测分值。

objectDetectHat

number

戴帽子检测分值。

scenePersonEnter

number

人物进入检测分值。

scenePersonExit

number

人物离开检测分值。

scenePersonInRectRatio

number

画面占比检测分值。

actionHeadUpDown

number

低/抬头检测分值。

actionHeadLeftRight

number

转头检测分值。

actionHeadShaking

number

摇头检测分值。

actionPoseStandup

number

起立检测分值。

actionPoseSitting

number

坐下检测分值。

actionPoseHandup

number

举手检测分值。

actionPersonSpeech

number

人声检测分值。

factCount

number

检测到的人数。

\n\n### 检测引擎注销\n\n```\nHELPCODEESCAPE-javascript\ncheatEngine.destroy();\n```\n\n## API说明\n### SDK初始化\n\n```\nHELPCODEESCAPE-javascript\n/**\n* SDK初始化\n* @param options 检测参数配置\n* @param renderCanvas 用于渲染输出检测点位的Canvas,可为空\n* @returns \n*/\npublic async init(options: DetectInitOptions, renderCanvas?: HTMLCanvasElement)\n```\n\n**DetectInitOptions 类型**\n\n```\nHELPCODEESCAPE-javascript\ninterface DetectInitOptions {\n fps?: number; //检测帧率,默认为5。\n detectTimeout?: number; //单次检测超时时间,默认为5秒。\n objectDetect?: boolean; //是否启用电子设备检测。\n scenePersonEnter?: boolean; //是否启用人物进入检测。\n scenePersonExit?: boolean; //是否启用人物离开检测。\n scenePersonInRectRatio?: boolean; //是否启用画面占比检测。\n actionHeadUpDown?: boolean; //是否启用低/抬头检测。\n actionHeadLeftRight?: boolean; //是否启用转头检测。\n actionHeadShaking?: boolean; //是否启用摇头检测。\n actionPoseStandup?: boolean; //是否启用起立检测。\n actionPoseSitting?: boolean; //是否启用坐下检测。\n actionPoseHandup?: boolean; //是否启用举手检测。\n actionPersonSpeech?: boolean; //是否启用人声检测。\n detectSkipFrame?: number; //每隔多少帧检测一次。\n enableRender: boolean; //是否启用渲染支持。\n licenseKey?: string; //授权LcenseKey。\n licenseDomain?: string; //授权根域名。\n}\n```\n\n### 作弊检测\n\n```\nHELPCODEESCAPE-javascript\n/**\n* 作弊行为动作检测\n* @param mediaElement 媒体对象\n* @returns 检测提交引擎是否成功,提交成功返回 true;当前正在检测或者被 fps 限制,则返回 false\n*/\npublic startDetect(mediaElement: HTMLVideoElement)\n```\n\n### 引擎注销\n\n```\nHELPCODEESCAPE-javascript\n/**\n* 检测引擎注销\n*/\ndestroy()\n```\n\n### 更新检测FPS帧率\n\n```\nHELPCODEESCAPE-javascript\n/**\n * 用于设置每秒检测的帧率,即每秒检测多少次,默认为5fps\n * @param fps 检测限制 FPS\n */\npublic updateFpsLimit(fps: number): void\n```\n\n### 更新检测超时时间\n\n```\nHELPCODEESCAPE-javascript\n/**\n * 用于配置每次检测的超时时间(毫秒),超时后直接返回检测失败\n * @param timeout 检测任务超时时间 毫秒\n */\npublic updateDetectTimeout(timeout: number): void\n```\n\n## Demo体验\n远程监考智能防作弊SDK Demo源码:[ActionDetectionDemos_Web](https://github.com/aliyunvideo/ActionDetectionDemos_Web)。\n\n在线体验:请[提交工单](https://smartservice.console.aliyun.com/service/create-ticket?spm=5176.12818093.top-nav.ditem-sub.3be916d0Enxgqc)获取在线体验地址。","seoTitle":"智能防作弊-远程监考智能防作弊SDK-音视频终端 SDK-阿里云-音视频终端 SDK(Apsara Video SDK)-阿里云帮助中心","title":"远程监考智能防作弊SDK","content":"
\n

通过阅读本文,您可以了解远程监考场景下智能防作弊SDK详细信息。

SDK介绍

远程监考智能防作弊SDK是阿里云针对远程监考场景研发的一款智能监考SDK,可对考试场景中的各种可疑作弊行为通过AI进行智能检测。目前支持的检测行为有:

  • 考场人员检测:人数检测、人员进入/离开

  • 考生物品检测:打电话、戴帽子、戴手表、戴头式耳机、入耳式耳机

  • 考生行为检测:低头/抬头、转头/摇头、起立/坐下、举手

  • 人声检测:说话声音检测

环境要求

开发环境

开发环境

说明

VSCode

建议使用VSCode 1.60或以上版本。下载地址,请参见Visual Studio Code

Chrome

建议使用Chrome 94或以上版本。下载地址,请参见Chrome

运行环境

运行时各平台浏览器版本要求如下:

平台

Chrome

Edge

Safari

Windows

69+

16+

-

macOS

69+

16+

16+

Android

58+

all

-

iOS

69+

16+

16+

购买License

使用之前,您需要前往购买License页面,购买视频AI License。

\"image\"

SDK使用示例

导入SDK

在页面中引入JS文件:

<script src=\"https://g.alicdn.com/apsara-media-box/imp-cheat-detection-wasm/1.0.1/aliyun-detect-engine.js\"></script>

SDK初始化

const cheatEngine = new AliyunDetectEngine();\nconst config = {\n    objectDetect: true, //电子设备检测\n    scenePersonEnter: true, //人物进入\n    scenePersonExit: true, //离开\n    scenePersonInRectRatio: true, //画面占比\n\n    actionHeadUpDown: true, //低/抬头\n    actionHeadLeftRight: true, //转头\n    actionHeadShaking: true, //摇头\n\n    actionPoseStandup: true, //起立\n    actionPoseSitting: true, //坐下\n    actionPoseHandup: true, //举手\n    actionPersonSpeech: true, //声音\n    licenseKey: '',//sdk license\n    licenseDomain: '' //sdk根域名\n}\nawait cheatEngine.init(config);

基于摄像头流作弊检测

// 获取video元素\nconst video = document.querySelector('video');\n// 获取摄像头\nconst stream = await navigator.mediaDevices.getUserMedia({ video: true, audio: true })\nvideo.srcObject = stream;\nvideo.play();\n\ncheatEngine.startDetect(video);\ncheatEngine.on('detectResult', (jsonResult) => {\n    console.info(jsonResult);\n});

结果输出:

{\n  \"actionPersonSpeech\": 1.0,\n  \"actionPoseHandup\": 0,\n  \"actionPoseSitting\": 0,\n  \"actionPoseStandup\": 0,\n  \"faceCount\": 1,\n  \"scenePersonInRectRatio\": 0.13\n}

参数

类型

说明

objectHeadPhone

number

戴头式耳机检测分值。

objectEarPhone

number

戴入耳式耳机检测分值。

objectDetectCellPhone

number

打电话检测分值。

objectDetectWatch

number

戴手表检测分值。

objectDetectHat

number

戴帽子检测分值。

scenePersonEnter

number

人物进入检测分值。

scenePersonExit

number

人物离开检测分值。

scenePersonInRectRatio

number

画面占比检测分值。

actionHeadUpDown

number

低/抬头检测分值。

actionHeadLeftRight

number

转头检测分值。

actionHeadShaking

number

摇头检测分值。

actionPoseStandup

number

起立检测分值。

actionPoseSitting

number

坐下检测分值。

actionPoseHandup

number

举手检测分值。

actionPersonSpeech

number

人声检测分值。

factCount

number

检测到的人数。

检测引擎注销

cheatEngine.destroy();

API说明

SDK初始化

/**\n* SDK初始化\n* @param options 检测参数配置\n* @param renderCanvas 用于渲染输出检测点位的Canvas,可为空\n* @returns \n*/\npublic async init(options: DetectInitOptions, renderCanvas?: HTMLCanvasElement)

DetectInitOptions 类型

interface DetectInitOptions {\n  fps?: number; //检测帧率,默认为5。\n  detectTimeout?: number; //单次检测超时时间,默认为5秒。\n  objectDetect?: boolean; //是否启用电子设备检测。\n  scenePersonEnter?: boolean; //是否启用人物进入检测。\n  scenePersonExit?: boolean; //是否启用人物离开检测。\n  scenePersonInRectRatio?: boolean; //是否启用画面占比检测。\n  actionHeadUpDown?: boolean; //是否启用低/抬头检测。\n  actionHeadLeftRight?: boolean; //是否启用转头检测。\n  actionHeadShaking?: boolean; //是否启用摇头检测。\n  actionPoseStandup?: boolean; //是否启用起立检测。\n  actionPoseSitting?: boolean; //是否启用坐下检测。\n  actionPoseHandup?: boolean; //是否启用举手检测。\n  actionPersonSpeech?: boolean; //是否启用人声检测。\n  detectSkipFrame?: number; //每隔多少帧检测一次。\n  enableRender: boolean; //是否启用渲染支持。\n  licenseKey?: string; //授权LcenseKey。\n  licenseDomain?: string; //授权根域名。\n}

作弊检测

/**\n* 作弊行为动作检测\n* @param mediaElement 媒体对象\n* @returns 检测提交引擎是否成功,提交成功返回 true;当前正在检测或者被 fps 限制,则返回 false\n*/\npublic startDetect(mediaElement: HTMLVideoElement)

引擎注销

/**\n* 检测引擎注销\n*/\ndestroy()

更新检测FPS帧率

/**\n * 用于设置每秒检测的帧率,即每秒检测多少次,默认为5fps\n * @param fps 检测限制 FPS\n */\npublic updateFpsLimit(fps: number): void

更新检测超时时间

/**\n * 用于配置每次检测的超时时间(毫秒),超时后直接返回检测失败\n * @param timeout 检测任务超时时间 毫秒\n */\npublic updateDetectTimeout(timeout: number): void

Demo体验

远程监考智能防作弊SDK Demo源码:ActionDetectionDemos_Web

在线体验:请提交工单获取在线体验地址。

\n\n
","path":"https://help.aliyun.com/zh/apsara-video-sdk/anti-cheating-sdk","productNodeVO":{"emptyNode":false,"level":3,"validDocument":true,"headNavEnable":false,"docTitle":"音视频终端 SDK","id":261167,"title":"音视频终端 SDK","url":"/zh/apsara-video-sdk/"},"alias":"/apsara-video-sdk/anti-cheating-sdk","showType":1,"taskStatus":"NO_TASK_AVAILABLE","website":"cn","level":7,"nodeType":1,"version":9,"url":"/zh/apsara-video-sdk/anti-cheating-sdk","tags":[{"value":"1","key":"accept","desc":"已承接"},{"value":false,"key":"autoTranslation","desc":"非自动翻译"},{"value":2543703,"key":"nodeId","desc":"文档ID"}],"userVO":{},"recommendDocs":[],"directoryPath":{"children":[{"children":[{"children":[{"children":[{"emptyNode":false,"level":7,"validDocument":true,"headNavEnable":false,"docTitle":"远程监考智能防作弊SDK","id":2543703,"title":"远程监考智能防作弊SDK","url":"/zh/apsara-video-sdk/anti-cheating-sdk"}],"emptyNode":false,"level":6,"validDocument":true,"headNavEnable":false,"docTitle":"场景配套组件SDK参考","id":2543701,"title":"场景配套组件SDK参考","url":"/zh/apsara-video-sdk/scenario-component-sdk-reference/"}],"emptyNode":false,"level":5,"validDocument":true,"headNavEnable":false,"docTitle":"远程监考场景","id":2503510,"title":"远程监考场景","url":"/zh/apsara-video-sdk/remote-proctoring-scenarios/"}],"emptyNode":false,"level":4,"validDocument":true,"headNavEnable":false,"docTitle":"AUI Kits","id":2391314,"title":"AUI Kits","url":"/zh/apsara-video-sdk/aui-kits-application-solution/"}],"emptyNode":false,"level":3,"validDocument":true,"headNavEnable":false,"docTitle":"音视频终端 SDK","id":261167,"title":"音视频终端 SDK","url":"/zh/apsara-video-sdk/"},"productUrl":"https://www.aliyun.com/product/apsaravideo/imp","nodeId":2543703,"desc":"通过阅读本文,您可以了解远程监考场景下智能防作弊SDK详细信息。"},"breadcrumb":[{"emptyNode":false,"level":3,"validDocument":true,"headNavEnable":false,"docTitle":"音视频终端 SDK","id":261167,"title":"音视频终端 SDK","url":"/zh/apsara-video-sdk/"},{"emptyNode":false,"level":4,"validDocument":true,"headNavEnable":false,"docTitle":"AUI Kits","id":2391314,"title":"AUI Kits","url":"/zh/apsara-video-sdk/aui-kits-application-solution/"},{"emptyNode":false,"level":5,"validDocument":true,"headNavEnable":false,"docTitle":"远程监考场景","id":2503510,"title":"远程监考场景","url":"/zh/apsara-video-sdk/remote-proctoring-scenarios/"},{"emptyNode":false,"level":6,"validDocument":true,"headNavEnable":false,"docTitle":"场景配套组件SDK参考","id":2543701,"title":"场景配套组件SDK参考","url":"/zh/apsara-video-sdk/scenario-component-sdk-reference/"},{"emptyNode":false,"level":7,"validDocument":true,"headNavEnable":false,"docTitle":"远程监考智能防作弊SDK","id":2543703,"title":"远程监考智能防作弊SDK","url":"/zh/apsara-video-sdk/anti-cheating-sdk"}],"isMachineTranslation":false,"isNotFound":false,"helpResponseCode":200,"redirectUrl":"","helpDocVersion":1,"reloadFlag":true}}};

远程监考智能防作弊SDK

更新时间:
复制为 MD 格式

通过阅读本文,您可以了解远程监考场景下智能防作弊SDK详细信息。

SDK介绍

远程监考智能防作弊SDK是阿里云针对远程监考场景研发的一款智能监考SDK,可对考试场景中的各种可疑作弊行为通过AI进行智能检测。目前支持的检测行为有:

  • 考场人员检测:人数检测、人员进入/离开

  • 考生物品检测:打电话、戴帽子、戴手表、戴头式耳机、入耳式耳机

  • 考生行为检测:低头/抬头、转头/摇头、起立/坐下、举手

  • 人声检测:说话声音检测

环境要求

开发环境

开发环境

说明

VSCode

建议使用VSCode 1.60或以上版本。下载地址,请参见Visual Studio Code

Chrome

建议使用Chrome 94或以上版本。下载地址,请参见Chrome

运行环境

运行时各平台浏览器版本要求如下:

平台

Chrome

Edge

Safari

Windows

69+

16+

-

macOS

69+

16+

16+

Android

58+

all

-

iOS

69+

16+

16+

购买License

使用之前,您需要前往购买License页面,购买视频AI License。

image

SDK使用示例

导入SDK

在页面中引入JS文件:

<script src="https://g.alicdn.com/apsara-media-box/imp-cheat-detection-wasm/1.0.1/aliyun-detect-engine.js"></script>

SDK初始化

const cheatEngine = new AliyunDetectEngine();
const config = {
    objectDetect: true, //电子设备检测
    scenePersonEnter: true, //人物进入
    scenePersonExit: true, //离开
    scenePersonInRectRatio: true, //画面占比

    actionHeadUpDown: true, //低/抬头
    actionHeadLeftRight: true, //转头
    actionHeadShaking: true, //摇头

    actionPoseStandup: true, //起立
    actionPoseSitting: true, //坐下
    actionPoseHandup: true, //举手
    actionPersonSpeech: true, //声音
    licenseKey: '',//sdk license
    licenseDomain: '' //sdk根域名
}
await cheatEngine.init(config);

基于摄像头流作弊检测

// 获取video元素
const video = document.querySelector('video');
// 获取摄像头
const stream = await navigator.mediaDevices.getUserMedia({ video: true, audio: true })
video.srcObject = stream;
video.play();

cheatEngine.startDetect(video);
cheatEngine.on('detectResult', (jsonResult) => {
    console.info(jsonResult);
});

结果输出:

{
  "actionPersonSpeech": 1.0,
  "actionPoseHandup": 0,
  "actionPoseSitting": 0,
  "actionPoseStandup": 0,
  "faceCount": 1,
  "scenePersonInRectRatio": 0.13
}

参数

类型

说明

objectHeadPhone

number

戴头式耳机检测分值。

objectEarPhone

number

戴入耳式耳机检测分值。

objectDetectCellPhone

number

打电话检测分值。

objectDetectWatch

number

戴手表检测分值。

objectDetectHat

number

戴帽子检测分值。

scenePersonEnter

number

人物进入检测分值。

scenePersonExit

number

人物离开检测分值。

scenePersonInRectRatio

number

画面占比检测分值。

actionHeadUpDown

number

低/抬头检测分值。

actionHeadLeftRight

number

转头检测分值。

actionHeadShaking

number

摇头检测分值。

actionPoseStandup

number

起立检测分值。

actionPoseSitting

number

坐下检测分值。

actionPoseHandup

number

举手检测分值。

actionPersonSpeech

number

人声检测分值。

factCount

number

检测到的人数。

检测引擎注销

cheatEngine.destroy();

API说明

SDK初始化

/**
* SDK初始化
* @param options 检测参数配置
* @param renderCanvas 用于渲染输出检测点位的Canvas,可为空
* @returns 
*/
public async init(options: DetectInitOptions, renderCanvas?: HTMLCanvasElement)

DetectInitOptions 类型

interface DetectInitOptions {
  fps?: number; //检测帧率,默认为5。
  detectTimeout?: number; //单次检测超时时间,默认为5秒。
  objectDetect?: boolean; //是否启用电子设备检测。
  scenePersonEnter?: boolean; //是否启用人物进入检测。
  scenePersonExit?: boolean; //是否启用人物离开检测。
  scenePersonInRectRatio?: boolean; //是否启用画面占比检测。
  actionHeadUpDown?: boolean; //是否启用低/抬头检测。
  actionHeadLeftRight?: boolean; //是否启用转头检测。
  actionHeadShaking?: boolean; //是否启用摇头检测。
  actionPoseStandup?: boolean; //是否启用起立检测。
  actionPoseSitting?: boolean; //是否启用坐下检测。
  actionPoseHandup?: boolean; //是否启用举手检测。
  actionPersonSpeech?: boolean; //是否启用人声检测。
  detectSkipFrame?: number; //每隔多少帧检测一次。
  enableRender: boolean; //是否启用渲染支持。
  licenseKey?: string; //授权LcenseKey。
  licenseDomain?: string; //授权根域名。
}

作弊检测

/**
* 作弊行为动作检测
* @param mediaElement 媒体对象
* @returns 检测提交引擎是否成功,提交成功返回 true;当前正在检测或者被 fps 限制,则返回 false
*/
public startDetect(mediaElement: HTMLVideoElement)

引擎注销

/**
* 检测引擎注销
*/
destroy()

更新检测FPS帧率

/**
 * 用于设置每秒检测的帧率,即每秒检测多少次,默认为5fps
 * @param fps 检测限制 FPS
 */
public updateFpsLimit(fps: number): void

更新检测超时时间

/**
 * 用于配置每次检测的超时时间(毫秒),超时后直接返回检测失败
 * @param timeout 检测任务超时时间 毫秒
 */
public updateDetectTimeout(timeout: number): void

Demo体验

远程监考智能防作弊SDK Demo源码:ActionDetectionDemos_Web

在线体验:请提交工单获取在线体验地址。