CN117478653A - 图像数据传输方法、设备及协同工作系统 - Google Patents
图像数据传输方法、设备及协同工作系统 Download PDFInfo
- Publication number
- CN117478653A CN117478653A CN202210859326.4A CN202210859326A CN117478653A CN 117478653 A CN117478653 A CN 117478653A CN 202210859326 A CN202210859326 A CN 202210859326A CN 117478653 A CN117478653 A CN 117478653A
- Authority
- CN
- China
- Prior art keywords
- image data
- packet
- camera
- image
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 111
- 230000005540 biological transmission Effects 0.000 title claims abstract description 78
- 230000002159 abnormal effect Effects 0.000 claims description 71
- 238000012545 processing Methods 0.000 claims description 46
- 230000005856 abnormality Effects 0.000 claims description 17
- 230000006855 networking Effects 0.000 claims description 3
- 238000007726 management method Methods 0.000 description 148
- 230000006870 function Effects 0.000 description 86
- 238000004891 communication Methods 0.000 description 49
- 238000010586 diagram Methods 0.000 description 38
- 230000004044 response Effects 0.000 description 35
- 230000008569 process Effects 0.000 description 27
- 230000003993 interaction Effects 0.000 description 19
- 238000012795 verification Methods 0.000 description 17
- 230000000694 effects Effects 0.000 description 16
- 238000001914 filtration Methods 0.000 description 10
- 230000005236 sound signal Effects 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 238000010295 mobile communication Methods 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000001454 recorded image Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
本申请提供了一种图像数据传输方法、设备及协同工作系统。该方法通过在每一个图像数据小包中设置能够记录用于标识该图像数据小包是首包、中间包,还是尾包的包标识信息的标识字段,从而使得接收到这些图像数据小包的电子设备在不对图像数据小包进行解析,即无需获知第二数据头和第二数据体中携带的具体内容的情况下,根据标识字段中记录的包标识信息就可以快速、精准的确定该图像数据小包是首包、中间包,还是尾包,这样在识别出接收到的图像数据小包为尾包时,就可以执行数据组包操作。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种图像数据传输方法、设备及协同工作系统。
背景技术
随着通信技术的发展,任意两个电子设备之间可以根据业务需求进行数据传输,如图像数据传输。考虑到图像数据通常较大,为加快传输速度,避免网络堵塞,通常会将一张大容量的照片,如100K~20M的照片的图像数据分解成多个图像数据小包,然后将得到的多个图像数据小包放入待传输队列,后续从待传输队列中依次取出图像数据小包进行传输。
但对于图像数据而言,最终展示的照片必须按照图像数据小包之间的位置关系确定,并根据尾包触发组包操作。然而目前的图像数据传输方式中,必须对图像数据小包的数据体进行解析才能确定该图像数据小包是否为首包。另外,即便对图像数据小包的数据体进行解析也不能确定该图像数据小包是否为尾包,即不能快速、精准的触发组包。
发明内容
为了解决上述技术问题,本申请提供一种图像数据传输方法、设备及协同工作系统,旨在不对接收到的图像数据小包的数据体进行解析的情况下,快速、精准的确定该图像数据小包是首包、中间包,还是尾包,这样在识别出接收到的图像数据小包为尾包时,就可以执行数据组包操作。
第一方面,本申请提供一种图像数据传输方法。该方法应用于物联网设备,物联网设备上设置有摄像头,摄像头用于向下采集图像数据,物联网设备与电子设备中的目标应用绑定,包括:接收电子设备发送的拍照请求,拍照请求中携带了指示摄像头拍摄的图像数据的分辨率;调用摄像头按照分辨率拍摄图像,得到图像数据;根据第一数据包标准,将图像数据处理为图像数据包;根据第二数据包标准,对图像数据包分包,得到N个图像数据小包,N为大于0的整数,每一个图像数据小包中携带了标识图像数据小包为首包,或者中间包,或者尾包的包标识信息;将得到的N个图像数据小包发送给电子设备。
其中,物联网设备可以为任意能够拍摄图像,并与电子设备进行图像数据传输的设备。具体到本实施例中,物联网设备例如可以是具有摄像头的台灯,或者直接为摄像头等。
其中,电子设备例如为手机、平板等具备强大处理能力的电子设备。
其中,拍照请求例如由电子设备在响应于用户对查词场景、提交作业场景的操作行为时产生。
关于查词场景、提交作业场景可以参见下文的具体描述,此处不再赘述。
可理解的,由于查词需要准确识别用户选择的内容,提交作业需要保证提交的作业的内容能够清晰可见,因此拍照请求中携带的分辨率为较高,例如1080P。
其中,目标应用,例如为下文所说的教育应用。
其中,第一数据包标准指示了生成的图像数据包需要包括多大的数据头(如下所说的第一数据),数据头中具体携带哪些内容,以及数据体(如下所说的第一数据体)从哪一个位置开始。
其中,第二数据包标准指示了每个图像数据小包的大小,以及每个图像数据小包需要包括多大的数据头(如下所说的第二数据头)、数据头中具体携带哪些内容,标识字段,以及数据体(如下所说的第二数据体)从哪一个位置开始。
由此,通过在每一个图像数据小包中设置能够记录用于标识该图像数据小包是首包、中间包,还是尾包的包标识信息的标识字段,从而使得接收到这些图像数据小包的电子设备在不对图像数据小包进行解析,即无需获知第二数据头和第二数据体中携带的具体内容的情况下,根据标识字段中记录的包标识信息就可以快速、精准的确定该图像数据小包是首包、中间包,还是尾包,这样在识别出接收到的图像数据小包为尾包时,就可以执行数据组包操作。
根据第一方面,第一数据包标准指示图像数据包包括第一数据头和第一数据体;第一数据体用于存放图像数据;第一数据头包括图像数据标识字段,图像数据标识字段中记录的图像数据标识信息用于标识第一数据体中存放的图像数据是否正常。
其中,图像数据即摄像头拍摄的实际数据,具体以二进制码的形式存放在第一数据体中,如图13中的数据体中。
根据第一方面,或者以上第一方面的任意一种实现方式,第一数据头还包括拓展字段。
示例性的,在一些实现方式中,拓展字段可以进一步划分,比如将其中的一部分用于记录图像数据的唯一标识,以实现精准的上行透传。
示例性的,关于标识图像数据唯一性的标识,可以由电子设备生成,携带在拍照请求中。
根据第一方面,或者以上第一方面的任意一种实现方式,第一数据头的大小为128个字节,标识字段位于0~3字节,拓展字段位于4~127字节。关于第一数据头的结构可以参见图14所示,此处不再赘述。
根据第一方面,或者以上第一方面的任意一种实现方式,第二数据包标准指示图像数据小包包括第二数据头、包标识字段和第二数据体;第二数据头占12个字节,包标识字段占1个字节;包标识字段中第0帧和第1帧对应的二进制数据组合后的内容包标识信息;第二数据体用于存放图像数据。
其中,第二数据体例如为实时传输协议RTP数据头。关于RTP数据头的具体结构,可以参见下文,此处不再赘述。
其中,每一个图像数据小包的大小例如为1394个字节。关于第二数据头、包标识字段和第二数据体的位置,以及占用的字节,可以参见下文,此处不再赘述。
示例性的,在一些实现方式中可以约定第0帧为“1”,第1帧为“0”时,对应的包标识信息“10”指示当前图像数据小包为首包。
示例性的,在一些实现方式中可以约定第0帧为“0”,第1帧为“1”时,对应的包标识信息“01”指示当前图像数据小包为尾包。
示例性的,在一些实现方式中可以约定第0帧为“0”,第1帧为“0”时,对应的包标识信息“00”指示当前图像数据小包为中间包。
关于首包、中间包、尾包的具体结构可以参见下文,此处不再赘述。
根据第一方面,或者以上第一方面的任意一种实现方式,在包标识信息指示图像数据小包为首包时,第二数据体还用于存放第一数据头。这样,只在首包的第二数据体中携带第一数据头,其他图像数据小包中直接存放第一数据体中的数据,从而可以减少图像数据小包的数量,并且通过在首包的第二数据体中携带第一数据头,能够使电子设备组包时根据第二数据体中第一数据头的图像数据标识信息确定整个图像数据是否正常,避免无效组包操作。
根据第一方面,或者以上第一方面的任意一种实现方式,在接收电子设备发送的拍照请求之后,方法还用于:检测摄像头是否异常;在摄像头异常时,向电子设备发送第一异常反馈包,第一异常反馈包中携带指示摄像头异常的异常原因;在摄像头正常时,检测摄像头是否支持分辨率;在摄像头支持分辨率时,执行调用摄像头按照分辨率拍摄图像的步骤;在摄像头不支持分辨率时,向电子设备发送第二异常反馈包,第二异常反馈包中携带指示分辨率异常的异常原因。这样,在拍摄前通过对摄像头的检测,以及分辨率的检测,从而进而尽可能保证拍摄的图像数据为正常数据,避免无效数据的传输对网络资源的占用。
根据第一方面,或者以上第一方面的任意一种实现方式,分辨率为1080P。这样,在查词场景、提交作业场景,能够根据高分辨率的图像数据精准的识别图像中的内容,进而保证处理结果的精准性。
根据第一方面,或者以上第一方面的任意一种实现方式,物联网设备为台灯。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备包括手机、平板电脑。
第二方面,本申请提供了一种图像数据传输方法。该方法应用于电子设备,电子设备中目标应用与物联网设备绑定,物联网设备上设置有摄像头,摄像头用于向下采集图像数据,图像数据传输方法包括:在系统中注册与摄像头对应的虚拟相机,并通过调用虚拟相机向物联网设备发送拍照请求,拍照请求中携带了指示摄像头拍摄的图像数据的分辨率;接收物联网设备发送的图像数据小包,图像数据小包由物联网设备根据第二数据包标准对图像数据包分包获得,图像数据包由物联网设备根据第一数据包标准对图像数据处理所得,图像数据由摄像头按照分辨率拍摄获得,图像数据包可以分为N个图像数据小包,N为大于0的整数,每一个图像数据小包中携带了标识图像数据小包为首包,或者中间包,或者尾包的包标识信息;在接收到携带的包标识信息为尾包的图像数据小包时,对接收的N个图像数据小包进行组包,还原出摄像头按照分辨率拍摄的图像数据,并将图像数据在目标应用中进行显示。
由此,电子设备在不对接收到的图像数据小包的数据体进行解析,即无需获知第二数据头和第二数据体中携带的具体内容的情况下,根据标识字段中记录的包标识信息就可以快速、精准的确定该图像数据小包是首包、中间包,还是尾包,这样在识别出接收到的图像数据小包为尾包时,就可以执行数据组包操作。
根据第二方面,第一数据包标准指示图像数据包包括第一数据头和第一数据体;第一数据体用于存放图像数据;第一数据头包括图像数据标识字段,图像数据标识字段用于标识第一数据体中存放的图像数据是否正常。
根据第二方面,或者以上第二方面的任意一种实现方式,第一数据头还包括拓展字段。
根据第二方面,或者以上第二方面的任意一种实现方式,第一数据头的大小为128个字节,标识字段位于0~3字节,拓展字段位于4~127字节。
根据第二方面,或者以上第二方面的任意一种实现方式,第二数据包标准指示图像数据小包包括第二数据头、包标识字段和第二数据体;第二数据头占12个字节,包标识字段占1个字节;包标识字段中第0帧和第1帧对应的二进制数据组合后的内容包标识信息;第二数据体用于存放图像数据。
根据第二方面,或者以上第二方面的任意一种实现方式,在包标识信息指示图像数据小包为首包时,第二数据体还用于存放第一数据头。
根据第二方面,或者以上第二方面的任意一种实现方式,在接收物联网设备发送的图像数据小包之后,方法还包括:根据第二数据包标准,从包标识字段占用的字节中提取包标识信息;在包标识信息指示图像数据小包为首包时,将首包添加到图像数据小包缓存队列;在包标识信息指示图像数据小包为中间包时,将中间包添加到图像数据小包缓存队列;在包标识信息指示图像数据包为尾包时,将尾包添加到图像数据小包缓存队列,并执行对接收的N个图像数据小包进行组包的步骤。
根据第二方面,或者以上第二方面的任意一种实现方式,对接收的N个图像数据小包进行组包,包括:根据第二数据包标准,对每一个图像数据小包的第二数据头进行解析;根据第二数据头中记录的序列号、时间戳,按序提取每一个图像数据小包中的第二数据体中的数据进行组合。
根据第二方面,或者以上第二方面的任意一种实现方式,在对每一个图像数据小包的第二数据头进行解析之前,方法还包括:根据第二数据包标准和第一数据包标准,确定首包中图像数据标识字段所在的字节;从图像数据标识字段占用的字节中提取图像数据标识信息;在图像数据标识信息指示图像数据正常时,执行对每一个图像数据小包的第二数据头进行解析的步骤;在图像数据标识信息指示图像数据异常时,清空图像数据小包缓存队列中缓存的N个图像数据小包。
根据第二方面,或者以上第二方面的任意一种实现方式,方法还包括:接收物联网设备发送的第一异常反馈包,并根据第一异常反馈包中的异常原因作出响应,第一异常反馈包中携带指示摄像头异常的异常原因;接收物联网设备发送的第二异常反馈包,并根据第二异常反馈包中的异常原因作出响应,第二异常反馈包中携带指示分辨率异常的异常原因。
根据第二方面,或者以上第二方面的任意一种实现方式,分辨率为1080P。
根据第二方面,或者以上第二方面的任意一种实现方式,物联网设备为台灯。
根据第二方面,或者以上第二方面的任意一种实现方式,电子设备包括手机、平板电脑。
第二方面以及第二方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第二方面以及第二方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第三方面,本申请提供了一种物联网设备。该物联网设备包括:存储器和处理器,存储器和处理器耦合;存储器存储有程序指令,程序指令由处理器执行时,使得所述物联网设备执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第三方面以及第三方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第三方面以及第三方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第四方面,本申请提供了一种电子设备。该电子设备包括:存储器和处理器,存储器和处理器耦合;存储器存储有程序指令,程序指令由处理器执行时,使得所述电子设备执行第二方面或第二方面的任意可能的实现方式中的方法的指令。
第四方面以及第四方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第四方面以及第四方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第五方面,本申请提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令,或者执行第二方面或第二方面的任意可能的实现方式中的方法的指令。
第五方面以及第五方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式,或者第二方面或第二方面的任意可能的实现方式相对应。第五方面以及第五方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,或者第二方面或第二方面的任意可能的实现方式所对应的技术效果,此处不再赘述。
第六方面,本申请提供了一种计算机程序产品,包括计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令,或者执行第二方面或第二方面的任意可能的实现方式中的方法的指令。
第六方面以及第六方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式,或者第二方面或第二方面的任意可能的实现方式相对应。第六方面以及第六方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,或者第二方面或第二方面的任意可能的实现方式所对应的技术效果,此处不再赘述。
第七方面,本申请提供了一种芯片,该芯片包括处理电路、收发管脚。其中,该收发管脚、和该处理电路通过内部连接通路互相通信,该处理电路执行第一方面或第一方面的任一种可能的实现方式中的方法,或者执行第二方面或第二方面的任意可能的实现方式中的方法,以控制接收管脚接收信号,以控制发送管脚发送信号。
第七方面以及第七方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式,或者第二方面或第二方面的任意可能的实现方式相对应。第七方面以及第七方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,或者第二方面或第二方面的任意可能的实现方式所对应的技术效果,此处不再赘述。
附图说明
图1a-图1b为示例性示出的一种应用场景;
图2a为示例性示出的电子设备的硬件结构示意图;
图2b为示例性示出的电子设备的软件结构示意图;
图3a为示例性示出的物联网设备的硬件结构示意图;
图3b为示例性示出的物联网设备的软件结构示意图;
图4a为本申请实施例提供的一种模块交互示意图;
图4b为本申请实施例提供的一种模块交互示意图;
图5a-图5b为示例性示出的一种应用场景;
图6a为本申请实施例提供的一种模块交互示意图;
图6b为本申请实施例提供的一种模块交互示意图;
图7a-图7b为示例性示出的一种应用场景;
图8为本申请实施例提供的一种模块交互示意图;
图9a-图9c为示例性示出的一种应用场景;
图10为本申请实施例提供的一种模块交互示意图
图11a-图11b为示例性示出的一种应用场景;
图12为示例性示出的平板与台灯进行图像数据传输的示意图;
图13为示例性示出的整个图像数据包的数据结构示意图;
图14为示例性示出的图像数据包中数据头的结构示意图;
图15为示例性示出的图像数据小包的数据结构示意图;
图16为示例性示出的图像数据小包中RTP数据头的结构示意图;
图17为示例性示出的图像数据小包中标识字段的结构示意图;
图18为示例性示出的图像数据小包的首包为异常包的结构示意图;
图19为示例性示出的图像数据小包的首包为正常包的结构示意图;
图20为示例性示出的图像数据小包的中间包的结构示意图;
图21为示例性示出的图像数据小包的尾包的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
随着互联网的发展,在线教育受到越来越多人的欢迎,用户(如学生)对在线教育的需求也越来越大。在一些应用场景中,当遇到生词时,学生可以进行在线查词以获取相关解释;在一些应用场景中,对书本内容的在线朗读更便于学生学习知识和发音;在一些应用场景中,学生需要将其作业进行在线提交。因此,如何基于智能设备满足用户的在线教育需求,是需要解决的问题。
目前,针对在线教育场景用户通常使用兼备拍摄功能和显示功能的智能学习机,此种设备需要在特殊位置摄像头或者反光镜,以实现对书本的拍摄,通用性和易用性不强。另外,兼具拍摄功能和显示功能的设备需要较强的硬件和系统支持,设备成本较高。进而,如何基于智能设备为用户提供较好的在线教育体验,提升通用性和易用性,降低在线教育成本,是需要解决的问题。
本申请实施例提供的一种协同工作系统,可以应用于在线教育场景。该系统工作系统包括建立通信连接的电子设备和台灯,台灯上设置有摄像头,可用于向下拍摄书本。电子设备调用台灯的摄像头采集图像,并结合平台在线教育资源即可满足用户的在线教育需求。其中,电子设备可以是平板电脑或手机等。除了在线教育场景,电子设备和台灯还可以基于各自的基本功能(即通信功能和照明功能)为用户服务。这样,该系统工作系统可以基于用户常用的两个智能设备为用户打造更好的在线教育体验,通用性和易用性都较强。另外,由于平板电脑或手机等早已是家家户户的必备产品,且只有拍摄功能的台灯设备成本显示会低于兼具拍摄功能和显示功能的设备,极大地降低了用户的在线教育成本。
下述以电子设备为平板为例,对本申请提供的技术方案进行解释说明。
图1a示例性的示出了一种应用场景。如图1a所示,协同工作系统包括建立通信连接的平板100和台灯200。其中,台灯200包括摄像头201,用于向下采集图像,例如可以是向下拍摄书本中文字内容或图片内容。平板100中安装教育APP(Application,应用程序),该教育APP可以调用台灯200的摄像头201采集图像,并根据台灯200的摄像头201采集到的图像为用户提供各种在线教育功能,例如在线查词、在线朗读、在线提交作业等。
虽然平板也具有前置摄像头和后置摄像头,但无论使用哪个摄像头拍摄书本,都需要用户手持平板将摄像头对准书本,不仅拍摄不稳定,还影响用户用手执行的指读、点读操作,无法给用户提供较好的在线教育体验。如图1a所示,平板100和台灯200均可以固定位置放置,平板100使用台灯200的摄像头201拍摄书本,拍摄画面稳定使得内容识别成功率高,用户也可以灵活地在书本中进行指读、点读操作。由此,平板和台灯联动可以给用户提供较好的在线教育体验。
如图1b所示,平板100和台灯200可以进行近场通信或远场通信。其中,近场通信可以通过路由器等设备完成设备间信息交互,远场通信可以通过云服务器完成设备间信息交互。示例性的,平板100和台灯200可以基于Wi-Fi(wireless fidelity,无线保真)网络协议等实现近场通信。
如图2a所示为电子设备100的结构示意图。可选地,电子设备100可以为终端,也可以称为终端设备,终端可以为蜂窝电话(cellular phone)或平板电脑(pad)等设备,本申请不做限定。需要说明的是,电子设备100的结构示意图可以适用于图1a~图1b中的平板。应该理解的是,图2a所示的电子设备100仅是电子设备的一个范例,并且电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图2a中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器,陀螺仪传感器,加速度传感器,温度传感器,运动传感器,气压传感器,磁传感器,距离传感器,接近光传感器,指纹传感器,触摸传感器,环境光传感器,骨传导传感器等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如Wi-Fi网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
在本申请实施例中,显示屏194可以显示拍摄预览界面和拍照图像界面等。需要说明的是,在本申请实施例中,拍摄预览界面是指用户可通过显示屏194观看台灯摄像头实时采集的图像的界面。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理,例如使得电子设备100实现本申请实施例中的协同工作方法。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。在一些实施例中,电子设备100可以设置多个扬声器170A。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器可以设置于显示屏194。电子设备100也可以根据压力传感器的检测信号计算触摸的位置。
触摸传感器,也称“触控面板”。触摸传感器可以设置于显示屏194,由触摸传感器与显示屏194组成触摸屏,也称“触控屏”。触摸传感器用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。
按键190包括开机键(或称电源键),音量键等。按键190可以是机械按键,也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图2b是本申请实施例的电子设备100的软件结构框图。
电子设备100的分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,系统层,HAL层(Hardware Abstract Layer,硬件抽象层),以及内核层。
应用程序层可以包括一系列应用程序包。
如图2b所示,应用程序包可以包括通话、视频、蓝牙、相机、WLAN、教育应用、设备管家应用等。应用程序包还可以包括日历、地图、导航、音乐、短信息等应用程序。
其中,教育应用可以用于为用户提供在线教育功能,例如在线识词、在线朗读、在线提交作业等。
在一些示例中,设备管家应用可以用于对台灯等IOT(Internet of Things,物联网)设备进行绑定。在一些示例中,教育应用可以实现对台灯等IOT(Internet of Things,物联网)设备的绑定。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2b所示,应用程序框架层可以包括相机服务、鉴权服务、硬件虚拟化服务、设备管理服务、传输管理服务等。
其中,相机服务(camera service)可以用于响应于应用的请求,调用摄像头(包括前置摄像头和/或后置摄像头)。
在本申请实施例中,相机服务可以用于响应于应用的请求,调用电子设备侧的虚拟摄像头,也即调用IOT设备中的摄像头。
鉴权服务用于提供安全权限管理能力。
硬件虚拟化服务,可以用于在电子设备侧(即中心设备侧)与IOT设备侧之间建立逻辑通道,提供虚拟化相机的能力。
设备管理服务,可以用于IOT设备发现及管理,为教育应用等应用程序提供远场(即云端)IOT设备信息以及近场(即附近可连接)的IOT设备信息。
传输管理服务,可以用于建立物理传输通道,提供数据传输能力。
除此之外,还可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。
系统库与运行时层(即系统层)包括系统库和安卓运行时(Android Runtime)。
Android Runtime(安卓运行时)包括核心库和虚拟机。Android Runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
在本申请实施例中,Android Runtime还包括虚拟相机适配层,提供虚拟相机注册的能力。
系统层中的系统库可以包括多个功能模块。例如:多媒体平台、图形图像处理库、编解码等。
多媒体平台可以用于对多媒体的管理,支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。多媒体平台可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
图形图像处理库可以用于实现图形绘图,图像渲染,合成,和图层处理等。
编解码器可以用于实现对音频数据、视频数据的编解码操作。
HAL层为位于操作系统内核与硬件电路之间的接口层。HAL层包括但不限于:音频HAL、传感器HAL、调制解调HAL、相机HAL、虚拟相机HAL。
其中,音频HAL用于对音频流进行处理,例如,对音频流进行降噪、定向增强等处理。相机HAL用于对与电子设备侧摄像头对应的图像流进行处理,虚拟相机HAL用于对电子设备侧注册的虚拟相机对应的图像流进行处理,也即用于对IOT设备侧摄像头采集的图像流进行处理。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,相机区域,音频驱动,网络驱动(如Wi-Fi驱动),CPU驱动,USB驱动,存储驱动,打印驱动等。其中,硬件至少包括处理器、显示屏、Wi-Fi模块等。
可以理解的是,图2b示出的软件结构中的层以及各层中包含的部件,并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的层,以及每个层中可以包括更多或更少的部件,本申请不做限定。
如图3a所示为物联网设备200的硬件结构示意图。需要说明的是,物联网设备200的结构示意图可以适用于图1a~图1b中的台灯。应该理解的是,图3a所示的物联网设备200仅是电子设备的一个范例,并且物联网设备200可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图3a中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
物联网设备200可以包括:处理器210,摄像头201,无线通信模块202,存储器203,音频模块204,USB接口205,充电管理模块206,电源管理模块207,电池208,照明装置209,按键211等。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括GPU,ISP,控制器,存储器,视频编解码器等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是物联网设备200的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
摄像头201用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。以台灯为例,摄像头201可以设置于台灯支架上,用于向下采集图像。
物联网设备200可以通过ISP,摄像头201,视频编解码器,GPU等实现拍摄功能。
ISP用于处理摄像头201反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头201中。
无线通信模块202可以提供应用在物联网设备200上的包括WLAN(如Wi-Fi网络),蓝牙(bluetooth,BT)等无线通信的解决方案。在一些实施例中,物联网设备200的天线和无线通信模块202耦合,使得物联网设备200可以通过无线通信技术与网络以及其他设备通信。
存储器203可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器210通过运行存储在存储器203的指令,从而执行物联网设备200的各种功能应用以及数据处理,例如使得物联网设备200实现本申请实施例中的协同工作方法。
物联网设备200可以通过音频模块204,扬声器212等实现音频功能,例如音乐播放等。
USB接口205是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口205可以用于连接充电器为物联网设备200充电,也可以用于物联网设备200与外围设备之间传输数据。
充电管理模块206用于从充电器接收充电输入。充电管理模块206为电池208充电的同时,还可以通过电源管理模块207为物联网设备200供电。
电源管理模块207用于连接电池208,充电管理模块206与处理器210。电源管理模块207接收电池208和/或充电管理模块206的输入,为处理器210,存储器203,摄像头201,无线通信模块202,以及照明装置209等供电。
按键211包括开机键(或称电源键)等。
物联网设备200的软件系统可以采用分层架构或者其他架构等。本申请实施例以分层架构为例,示例性说明物联网设备200的软件结构。
图3b是本申请实施例的物联网设备200的软件结构框图。
物联网设备200的分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将物联网设备200的系统分为三层,从上至下分别为应用程序层,应用程序框架层,系统层,以及内核层。
如图3b所示,应用程序层可以包括设备应用服务,设备应用服务可以理解为系统级应用,物联网设备200系统启动后设备应用服务启动。
如图3b所示,应用程序框架层可以包括设备互联服务、硬件抽象服务、资源管理器等。
设备互联服务,可以用于建立物理传输通道,提供数据传输能力,同时可以管理硬件抽象服务的启动开关。
硬件抽象服务,可以用于在电子设备侧(即中心设备侧)和IOT设备之间建立逻辑通道,提供虚拟化相机的能力,同时提供IOT设备的相机开放接口。
资源管理器可以为应用程序提供各种资源。
如图3b所示,系统层可以包括多媒体平台、图形图像处理库、编解码器、设备适配模块等。
多媒体平台可以用于对多媒体的管理,支持多种常用的音频,视频,以及静态图像文件等。多媒体平台可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
图形图像处理库可以用于实现图形绘图,图像渲染,合成,和图层处理等。
编解码器可以用于实现对音频数据、视频数据的编解码操作。
设备适配模块可以实现硬件抽象服务的接口,可以提供设备信息和能力查询,还可以提供在IOT设备侧执行相关操作的功能,例如打开摄像头、拍照、预览等功能。
可以理解的是,电子设备100和物联网设备200为了实现本申请实施例中的协同工作方法,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
如图4a所示为各模块的交互示意图。参照图4a,本申请实施例提供平板和台灯协同工作的方法流程,具体包括:
0.设备服务初始化阶段
S0.1,响应于用户操作,台灯的设备应用服务启动,加载设备互联服务。
示例性的,用户操作可以时用户开启台灯电源的操作。响应于用户操作,台灯系统启动,设备应用服务随之启动,并加载设备互联服务。其中,设备互联服务可以用于在平板和台灯之间建立物理传输通道,用于提供数据传输能力。
S0.2,台灯的设备互联服务加载硬件抽象服务。
设备互联服务还可以控制硬件抽象服务的开启。示例性的,在设备互联服务启动后,设备互联服务可以以插件的形式加载硬件抽象服务。其中,硬件抽象服务可以用于在平板和台灯之间建立逻辑通道,提供虚拟化相机的能力,同时还可以提供台灯相机的开放接口。
参照图4b所示的模块交互示意图,硬件抽象服务至少可以包括基础组件和相机组件。其中,在设备服务初始化阶段,设备互联服务加载首先加载基础组件,并对基础组件进行初始化。在基础组件初始化之后,可以与台灯的设备适配模块进行信息交互,获取设备信息和虚拟化能力信息。示例性的,设备信息包括但不限于设备名称、设备标识、设备类型等。示例性的,虚拟化能力信息包括但不限于是否支持虚拟化相机、是否支持虚拟化麦克风等。
其中,台灯具有支持虚拟化相机的能力,可以理解为台灯的摄像头允许其他电子设备(如平板)调用,也即可以理解为台灯的摄像头允许被作为其他电子设备的虚拟相机。
在基础组件获取到台灯的设备信息和能力信息之后,如果台灯具有支持虚拟化相机的能力,则基础组件加载相机组件,以提供虚拟化相机的能力。此时,基础组件即可进行协商通道建立准备,以待与平板建立协商通道协商网络连接相关信息(包括但不限于IP地址和端口等)。其中,在基础组件进行协商通道建立准备时,创建一个会话服务(SessionServer),并将会话服务的会话名称(Session Name)发送至设备互联服务中,以待平板侧的传输管理服务与台灯侧的设备互联服务建立协商通道。
1.设备发现阶段
S1.1,响应于用户操作,平板的教育APP向设备管理服务发送设备发现指令。
其中,用户操作可以是用户点击教育APP中需要调用虚拟相机的功能选项的操作。示例性的,用户操作可以时用户点击教育APP中点读功能、查词功能、作业功能、拍照功能的操作。
平板的教育APP接收到用户操作,响应于该操作,向平板的设备管理服务发送设备发现指令。其中,设备发现指令,用于指示查找能够与平板建立连接的IOT设备。示例性的,设备发现指令中可以包括但不限于指令类型和待发现的设备类型。在本实施例中,设备发现指令具体用于查找能够与平板建立连接的台灯。
S1.2,平板中设备管理服务调用鉴权服务对教育APP进行鉴权,获取到对教育APP的鉴权结果。
设备管理服务接收到设备发现指令后,可以基于安卓系统已有机制获取到教育APP的名称(或标识),并根据教育APP的名称对教育APP进行APP鉴权。其中,设备管理服务可以调用鉴权服务对教育APP进行鉴权,以得到对教育APP的鉴权结果。
在本实施例中,平板侧应用程序框架层中还提供有与设备管理服务对应的设备管理API,以及与硬件虚拟化服务对应的硬件虚拟化API。为了实现本实施例提供的技术方案,教育APP需要在相关平台(例如平板厂商提供的平台)上注册,适配设备管理服务、硬件虚拟化服务以及传输管理服务的框架,并申请设备管理API和硬件虚拟化API的权限。
示例性的,鉴权服务访问鉴权服务器,以通过鉴权服务器对教育APP进行鉴权,包括但不限于鉴权是否在相关平台上注册,是否适配了相关框架,是否申请了相关API权限。
又示例性的,鉴权服务可以根据本地白名单对教育APP进行鉴权。
在鉴权服务得到教育APP的鉴权结果(鉴权成功或鉴权失败),将鉴权结果发送给设备管理服务。
S1.3,平板中设备管理服务在教育APP鉴权成功时向传输管理服务发送设备搜索指令。
如果教育APP鉴权成功,则设备管理服务向传输管理服务发送设备搜索指令。其中,设备搜索指令可以包括但不限于指令类型、待搜索的设备类型以及搜索方式。示例性的,搜索方式包括但不限于近场设备扫描和从云服务器中获取设备信息。在本实施中,待搜索的设备类型为台灯。
S1.4,平板中传输管理服务根据设备搜索指令获取到远近场设备列表,并将远近场设备列表发送给设备管理服务。
远近场设备列表包括远场设备列表和近场设备列表。其中,远场设备列表中包括的远场设备是指从云服务器中获取到的已注册设备,近场设备列表中包括的近场设备是指通过近场通信扫描到的设备。在远场设备列表和近场设备列表中,设备信息包括但不限于设备名称、设备标识、设备类型等。
传输管理服务接收到设备搜索指令时,根据设备搜索指令中携带的待搜索的设备类型以及搜索方式执行相关设备搜索操作,如执行近场设备扫描操作以及在云服务器中获取相关设备信息的操作,得到远场设备列表和近场设备列表,并将远场设备列表和近场设备列表发送给设备管理服务。
S1.5,平板中设备管理服务根据远近场设备列表进行设备过滤,并将过滤后得到的设备信息上报给教育APP。
设备管理服务根据远场设备列表和近场设备列表进行设备过滤,确定能够与平板联动的台灯信息,并发送给教育APP。其中,设备管理服务可以对远场设备列表和近场设备列表执行取交集的操作,过滤掉仅存在于远场设备列表或仅存在于近场设备列表中的台灯,将既存在于远场设备列表又存在于近场设备列表中的台灯,作为能够与平板联动的台灯信息。这样,设备管理服务能够过滤掉未在云服务器中注册的台灯,也能过滤掉无法与平板进行近场通信的台灯。
在另一种可选的实施方式中,若平板和台灯无论是否处于同一个局域网下,平板的传输管理服务可以根据设备搜索指令获取通信设备列表和注册设备列表。其中,通信设备列表中包括的设备是指通过近场通信或远场通信扫描到的设备,注册设备列表中包括的设备是指从云服务器中获取到的已注册设备。近场设备列表中包括的近场设备是指通过近场通信扫描到的设备。在通信设备列表和注册设备列表中,设备信息包括但不限于设备名称、设备标识、设备类型等。
平板中传输管理服务将通信设备列表和注册设备列表发送至设备管理服务,设备管理服务根据通信设备列表和注册设备列表进行设备过滤,并将过滤后得到的设备信息上报给教育APP。其中,设备管理服务可以对通信设备列表和注册设备列表执行取交集的操作,过滤掉仅存在于通信设备列表或仅存在于注册设备列表中的台灯,将既存在于通信设备列表又存在于注册设备列表中的台灯,作为能够与平板联动的台灯信息。这样,设备管理服务能够过滤掉未在云服务器中注册的台灯,也能过滤掉无法与平板进行近场通信的台灯。
2.虚拟相机使能阶段
S2.1,平板的教育APP确定待联动的台灯。
设备管理服务过滤得到的能够与平板联动的台灯数量可以为一个或多个。当台灯数量为一个时,教育APP将其默认作为待联动的台灯;当台灯数量为多个时,教育APP可以为用户展示待联动的台灯列表,以供用户在其中选择,响应于用户的选择操作,教育APP将用户选择的台灯作为待联动的台灯。
需要指出的是,教育APP确定待联动台灯的步骤也可以划分至设备发现阶段,本实施例对此不做限定。
S2.2,平板的教育APP对台灯进行设备校验、设备连接,并获取到台灯具有支持虚拟化相机的能力。
S2.3,平板的教育APP向硬件虚拟化服务发送虚拟相机使能请求。
平板的教育APP在获取到台灯具有支持虚拟化相机的能力之后,向硬件虚拟化服务发送虚拟相机使能请求。其中,虚拟相机使能请求用于指示在虚拟相机HAL中注册虚拟相机。虚拟相机使能请求中可以包括但不限于请求类型、设备名称、设备标识、设备类型以及虚拟相机的标识。
S2.4,平板的硬件虚拟化服务向虚拟相机HAL注册虚拟相机。
硬件虚拟化服务接收到虚拟相机使能请求之后,根据虚拟相机使能请求中向虚拟相机HAL注册相应的虚拟相机。
S2.5,平板的虚拟相机HAL在虚拟相机注册完成之后,向教育APP发送虚拟相机使能成功指示。
下面结合图4b所示的模块交互示意图,对虚拟相机使能阶段的流程进行详细解释说明。参照图4b,虚拟相机使能阶段的流程,主要包括设备校验子阶段(S301-S309)、设备连接子阶段(S310-S321)、设备服务能力请求子阶段(S322-S325)和虚拟相机使能子阶段(S326-S331)。
参照图4b,虚拟相机使能阶段的流程,具体包括如下步骤:
S301,平板中教育APP向硬件虚拟化API发送虚拟相机使能指令。
其中,虚拟相机使能指令用于指示使能虚拟相机,虚拟相机使能指令中可以包括但不限于指令类型、设备名称、设备标识、设备类型。
S302,平板中硬件虚拟化API在接收到虚拟相机使能指令之后,向硬件虚拟化服务的接口调度模块发送设备校验指令。
设备校验指令,用于指示对虚拟相机使能指令中携带的设备信息进行校验。其中,设备校验指令中可以包括但不限于指令类型、设备名称、设备标识、设备类型。
S303,平板中硬件虚拟化服务的接口调度模块向硬件虚拟化服务的权限管理模块发送APP鉴权指令。
硬件虚拟化服务的接口调度模块接收到设备校验指令之后,首先向硬件虚拟化服务的权限管理模块发送APP鉴权指令,以对发起虚拟相机使能指令的APP进行鉴权。其中,APP鉴权指令中可以包括但不限于APP的名称。
S304,平板中硬件虚拟化服务的权限管理模块对教育APP进行APP鉴权。
示例性的,权限管理模块可以访问鉴权服务器,以通过鉴权服务器对教育APP进行鉴权,包括但不限于鉴权是否在相关平台上注册,是否适配了相关框架,是否申请了相关API权限。其中,权限管理模块可以通过鉴权服务来访问鉴权服务器,本实施例对此不做限定。
S305,平板中硬件虚拟化服务的权限管理模块在对教育APP鉴权成功时,向接口调度模块发送鉴权成功指示。
权限管理模块得到教育APP的鉴权结果之后,如果教育APP鉴权成功,则向接口调度模块发送鉴权成功指示,如果教育APP鉴权失败,则向硬件虚拟化API发送鉴权失败指示,以使硬件虚拟化API根据鉴权失败指示向教育APP返回APP无权限的指示信息。
S306,平板中硬件虚拟化服务的接口调度模块在确定教育APP鉴权成功时,向设备管理模块发送设备校验指令。
硬件虚拟化服务的接口调度模块接收到鉴权成功指示,确定教育APP鉴权成功之后,向设备管理模块发送设备校验指令。其中,设备校验指令用于对待联动的设备进行状态校验,在本实施例中具体用于对待联动的台灯进行状态校验。示例性的,设备校验指令中可以包括但不限于指令类型、设备名称、设备标识、设备类型。
S307,平板中硬件虚拟化服务的设备管理模块向设备管理服务的设备简介模块发送设备信息查询指令。
其中,设备管理服务的设备简介模块中存储有当前在线的设备信息。
硬件虚拟化服务的设备管理模块接收到设备校验指令之后,向设备管理服务的设备简介模块发送设备信息查询指令,设备信息查询指令中可以包括但不限于设备名称、设备标识、设备类型。
S308,平板中设备管理服务的设备简介模块向硬件虚拟化服务的设备管理模块返回设备信息。
设备管理服务的设备简介模块根据设备信息查询指令如果查询到相应的设备,则将设备信息返回给硬件虚拟化服务的设备管理模块。其中,返回的设备信息中可以包括但不限于设备名称、设备标识、设备类型和在线状态。
设备管理服务的设备简介模块根据设备信息查询指令如果未查询到相应的设备,则向硬件虚拟化服务的设备管理模块返回空值,以指示未查询到相应的设备。此时,硬件虚拟化服务的设备管理模块可以向硬件虚拟化API发送设备校验失败指示,以使硬件虚拟化API根据设备校验失败指示向教育APP返回设备校验失败的指示信息。
S309,平板中硬件虚拟化服务的设备管理模块接收到设备信息后,向硬件虚拟化API发送设备校验成功指示。
硬件虚拟化服务的设备管理模块如何接收到设备管理服务的设备简介模块返回的设备信息,则向硬件虚拟化API发送设备校验成功指示,以指示待联动的台灯校验成功。
S310,平板中硬件虚拟化API向硬件虚拟化服务的设备管理模块发送设备连接请求。
硬件虚拟化API在确认待联动的台灯校验成功之后,向硬件虚拟化服务的设备管理模块发送设备连接请求。其中,设备连接请求用于指示与待联动的设备建立网络连接,在本实施例具体用于指示与待联动的台灯建立网络连接。设备连接请求中可以包括但不限于请求类型、设备名称、设备标识、设备类型。
S311,硬件虚拟化服务的设备管理模块接收到设备连接请求后,执行协商通道建立准备操作,并向传输管理服务发送协商通道打开请求。
硬件虚拟化服务的设备管理模块接收到设备连接请求后,准备协商通道。其中,设备管理模块准备协商通道时,创建一个Session Server,并将会话服务的Session Name发送至传输管理服务中。在准备好协商通道之后,向传输管理服务发送协商通道打开请求。其中,协商通道打开请求用于指示建立协商通道,协商通道打开请求中可以包括但不限于对端设备标识(即台灯标识)以及的Session Name。
在本实施例中,协商通道打开请求是平板侧主动发起的,也即是平板需要与台灯建立连接。此时,台灯可以理解为服务端,平板可以理解为需要访问服务端的客户端。
S312,平板中传输管理服务与台灯中设备互联服务建立协商通道。
传输管理服务接收到协商通道打开请求之后,根据Session Name与台灯中设备互联服务交互以建立协商通道。其中,建立协商通道可以具体为创建会话,确定会话标识。
S313,台灯中设备互联服务向硬件抽象服务中的相机组件发送协商通道成功建立指示。
在协商通道建立完成之后,台灯中设备互联服务向硬件抽象服务中的相机组件发送协商通道成功建立指示,以指示协商通道建立完成以及当前存在需要建立连接的设备。其中,该协商通道成功建立指示中可以包括但不限于需要建立连接的设备信息(即平板设备信息)以及会话标识。
S314,平板中传输管理服务向硬件虚拟化服务的设备管理模块发送协商通道成功建立指示。
在协商通道建立完成之后,平板中传输管理服务向硬件虚拟化服务的设备管理模块发送协商通道成功建立指示,以指示协商通道建立完成以及当前存在需要建立连接的设备。其中,该协商通道成功建立指示中可以包括但不限于需要建立连接的设备信息(即台灯设备信息)以及会话标识。
本实施例对S313和S314的执行顺序不做限定。
S315,平板中硬件虚拟化服务的设备管理模块基于协商通道向台灯中硬件抽象服务的相机组件发送设备信息协商请求。
其中,设备协商请求中可以包括但不限于设备信息(如设备名称、设备标识、设备类型等)以及控制通道连接请求。
S316,台灯中硬件抽象服务的相机组件接收到设备协商请求之后,准备控制通道,并向平板中硬件虚拟化服务的设备管理模块返回设备协商信息。
台灯中硬件抽象服务的相机组件接收到设备协商请求之后,解析设备协商请求获取到对端的设备信息进行记录,并根据控制通道连接请求确定一个待监听的IP地址及端口,将IP地址及端口添加至设备协商信息中返回给平板中硬件虚拟化服务的设备管理模块。
需要指出的是,设备协商请求以及设备协商信息是基于建立的协商通道传输的。
S317,平板中硬件虚拟化服务的设备管理模块接收到返回的设备协商信息之后,关闭协商通道。
其中,关闭协商通道可以具体为关闭会话。当平板中硬件虚拟化服务的设备管理模块接收到返回的设备协商信息之后,此次会话结束,硬件虚拟化服务的设备管理模块可以根据会话标识关闭相应的会话。
S318,平板中硬件虚拟化服务的设备管理模块向传输管理服务发送控制通道打开请求。
控制通道打开请求,用于指示与台灯建立网络通信连接。其中,控制通道打开请求中可以包括但不限于通信协议、源IP、源端口、目的IP和目的端口,该目标IP和目的端口即为台灯中硬件抽象服务的相机组件监听的IP和端口。
S319,平板中传输管理服务连接台灯中硬件抽象服务的相机组件的控制通道,并向平板中硬件虚拟化服务的设备管理模块发送控制通道成功连接指示。
平板中传输管理服务接收到控制通道打开请求,根据控制通道打开请求携带的信息与台灯建立控制通道连接,也即建立平板和台灯的网络通信连接。进而,平板中硬件虚拟化服务的设备管理模块与台灯中硬件抽象服务的相机组件,可以基于该控制通道进行网络通信。
在控制通道建立成功之后,平板中传输管理服务向平板中硬件虚拟化服务的设备管理模块发送控制通道成功连接指示。其中,控制通道成功连接指示中可以包括但不限于连接成功标识以及控制通道相关信息。
S321,平板中硬件虚拟化服务的设备管理模块向硬件虚拟化API发送设备连接成功指示。
其中,设备连接成功指示中可以包括但不限于连接成功标识以及连接的设备信息。
S322,平板中硬件虚拟化API向硬件虚拟化服务的设备管理模块发送设备能力请求。
在接收到设备连接成功指示之后,硬件虚拟化API向硬件虚拟化服务的设备管理模块发送设备能力请求。其中,设备能力请求可以用于请求获取对端设备(即台灯)的虚拟化能力信息。示例性的,虚拟化设备能力信息包括但不限于是否支持虚拟化相机、是否支持虚拟化麦克风等。
S323,平板中硬件虚拟化服务的设备管理模块在控制通道中向台灯中硬件抽象服务的相机组件发送设备能力请求。
S324,台灯中硬件抽象服务的相机组件在控制通道中向平板中硬件虚拟化服务的设备管理模块返回设备能力信息。
在本实施例中,返回的台灯的设备能力信息至少可以包括支持虚拟化相机的能力以及台灯的摄像头标识。
S325,平板中硬件虚拟化服务的设备管理模块向硬件虚拟化API发送设备能力信息。
平板中硬件虚拟化服务的设备管理模块将接收到的设备能力信息发送至硬件虚拟化API,以使硬件虚拟化API获知台灯是否具有支持虚拟化相机的能力。
S326,平板中硬件虚拟化API向硬件虚拟化服务的设备管理模块发送虚拟相机使能请求。
平板中硬件虚拟化API获知到台灯具有支持虚拟化相机的能力,向硬件虚拟化服务的设备管理模块发送虚拟相机使能请求。其中,虚拟相机使能请求中可以包括但不限于请求类型和台灯的摄像头标识。
S327,平板中硬件虚拟化服务的设备管理模块在虚拟相机HAL中注册虚拟相机。
其中,硬件虚拟化服务的设备管理模块接收到虚拟相机使能请求后,向虚拟相机HAL发送虚拟相机注册请求。虚拟相机注册请求中可以包括但不限于请求类型和台灯的摄像头标识。虚拟相机HAL接收到虚拟相机注册请求之后,在虚拟相机HAL中给台灯的摄像头注册一个虚拟相机驱动,并给台灯的摄像头分配一个摄像头ID(即虚拟相机ID),将该摄像头ID注册到系统中。由此,在虚拟相机HAL中建立了台灯摄像头与虚拟相机的映射关系。
S328,平板中硬件虚拟化服务的设备管理模块向台灯中硬件抽象服务的相机组件发送服务状态更新指示。
服务状态更新指示,用于指示台灯中硬件抽象服务的相机组件对其虚拟化服务状态进行更新。其中,虚拟化服务状态可以包括占用状态、未占用状态,或者称可以包括注册状态、未注册状态。示例性的,服务状态更新指示中可以包括但不限于对端设备(即台灯)的设备信息,硬件标识(如台灯摄像头标识),以及与硬件标识对应的虚拟化服务状态。
S329,台灯中硬件抽象服务的相机组件根据服务状态更新指示进行服务状态更新。
当服务状态更新指示中指示与台灯摄像头对应的虚拟化服务状态为占用状态(或称注册状态)时,相机组件将与其灯摄像头对应的虚拟化服务状态更新为占用状态(或称注册状态)。
S330,平板中硬件虚拟化服务的设备管理模块向硬件虚拟化API发送虚拟相机使能成功指示。
其中,虚拟相机使能成功指示中可以包括但不限于使能成功标识(或称虚拟化成功标识)、台灯的摄像头标识以及与虚拟相机对应的摄像头ID(或称与台灯摄像头对应的摄像头ID)。
本实施例对S328和S330的执行顺序不做限定。
S331,平板中硬件虚拟化API向教育APP发送虚拟相机使能成功指示。
3.虚拟相机预览访问阶段
S3.1,平板中硬件虚拟化API向相机服务发送虚拟相机访问指令。
虚拟相机访问指令,指的是用于调用虚拟相机的指令。其中,虚拟相机访问指令中可以包括但不限于指令类型、虚拟相机ID和摄像头配置参数,配置参数包括但不限于摄像头分辨率和采集帧率。
S3.2,平板中相机服务根据虚拟相机访问指令向虚拟相机HAL发送图像预览请求。
相机服务接收到虚拟相机访问指令后,根据虚拟相机ID生成相应的图像预览请求发送至虚拟相机HAL。其中,该图像预览请求用于请求预览图像数据流。示例性的,该图像预览请求中可以包括但不限于请求标识、虚拟相机ID和摄像头配置参数等。
S3.3,平板中虚拟相机HAL向硬件虚拟化服务发送图像预览请求。
虚拟相机HAL接收到图像预览请求后,根据图像请求中携带的虚拟相机ID,确定匹配的虚拟化硬件标识。在本实施例中,虚拟相机HAL根据虚拟相机ID,以及虚拟相机ID与台灯摄像头的映射关系,确定联动的台灯摄像头,并根据确定的虚拟化硬件标识生成相应的图像请求发送至硬件虚拟化服务。示例性的,该图像预览请求中可以包括但不限于请求标识、设备信息(即台灯信息)、虚拟化硬件标识(即台灯摄像头标识)和摄像头配置参数等。
S3.4,平板中硬件虚拟化服务向传输管理服务发送图像预览请求。
硬件虚拟化服务将图像预览请求发送至传输管理服务。其中,图像预览请求中可以包括但不限于请求标识、设备信息(即台灯信息)、虚拟化硬件标识(即台灯摄像头标识)和摄像头配置参数等。
在平板中硬件虚拟化服务向传输管理服务发送图像预览请求时,如果发现未与台灯建立数据通道,则生成数据通道建立请求,发送至传输管理服务中。数据通道建立请求,用于指示与台灯之间传输数据。其中,数据通道建立请求中可以包括但不限于会话标识、连接信息、数据编解码模式等。
平板中传输管理服务接收到数据通道建立请求,根据数据通道建立请求携带的信息与台灯建立数据通道连接,也即在平板和台灯之间建立数据通道。进而,平板中传输管理服务和台灯中设备互联服务可以基于该数据通道传输各种数据,包括但不限于图像数据。
在数据通道建立成功之后,平板中传输管理服务向平板中硬件虚拟化服务发送数据通道成功连接指示,台灯中设备互联服务向硬件抽象服务中相机组件发送数据通道成功连接指示。其中,数据通道成功连接指示中可以包括但不限于连接成功标识以及数据通道相关信息。
S3.5,平板中传输管理服务向台灯的设备互联服务传输图像预览请求。
平板中传输管理服务根据图像预览请求中携带的设备信息确定相应的控制通道,并在该控制通道中向台灯的设备互联服务传输图像预览请求。
S3.6,台灯中设备互联服务向相机驱动下发图像预览请求。
台灯中设备互联服务接收到图像预览请求之后,根据虚拟化硬件标识确定响应的硬件驱动(在本实施例中为确定相机驱动),并将相应的图像预览请求发送至相机驱动。
S3.7,台灯中相机驱动驱动摄像头采集图像,并将预览图像数据通过数据通道传输至平板的硬件虚拟化服务。
相机驱动驱动摄像头开启,并驱动摄像头以图像预览请求中携带的摄像头配置参数采集图像,得到预览图像数据流,并将预览图像数据流通过硬件抽象服务发送至设备互联服务,以使设备互联服务在数据通道中向平板的硬件虚拟化服务中持续传输预览图像数据流。其中,关于预览图像数据流的分包组包及编解码流程,此处不再赘述。
S3.8,平板中硬件虚拟化服务将预览图像数据发送至虚拟相机HAL。
硬件虚拟化服务持续接收到预览图像数据流,将预览图像数据流发送至虚拟相机HAL。
S3.9,平板中虚拟相机HAL将预览图像数据发送至相机服务。
此时,虚拟相机HAL持续获取到台灯摄像头采集的预览图像数据,并将预览图像数据持续发送至相机服务。
S3.10,平板中相机服务将预览图像数据发送至教育APP。
S3.11,平板中教育APP显示预览图像。
教育APP通过相机服务接收到预览图像数据流之后,即可在相应的界面中显示预览图像。
4.虚拟相机拍照阶段
S4.1,响应于接收到的用户操作,平板中教育APP向硬件虚拟化服务发送拍照请求。
用户操作例如可以是点击拍照选项的操作。响应于接收到的用户操作,平板中教育APP向硬件虚拟化服务发送拍照请求。其中,拍照请求中可以包括但不限于拍摄图像序号、设备信息(即台灯信息)、虚拟化硬件标识(即台灯摄像头标识)和摄像头配置参数等。摄像头配置参数包括但不限于图像分辨率。
其中,拍照请求还可以携带任务标识,以保证多拍照任务的有序管理。
S4.2,平板中硬件虚拟化服务向传输管理服务发送拍照请求。
S4.3,平板中传输管理服务将向台灯的设备互联服务传输拍照请求。
平板中传输管理服务根据图像预览请求中携带的设备信息确定相应的控制通道,并在该控制通道中向台灯的设备互联服务传输图像预览请求。
S4.4,台灯中设备互联服务向相机驱动下发拍照请求。
台灯中设备互联服务接收到图像预览请求之后,根据虚拟化硬件标识确定响应的硬件驱动(在本实施例中为确定相机驱动),并将相应的拍照请求发送至相机驱动。
S4.5,台灯中相机驱动驱动摄像头拍摄图像,并将拍摄图像数据通过数据通道传输至平板的硬件虚拟化服务。
相机驱动驱动摄像头以拍照请求中携带的摄像头配置参数采集图像,得到拍摄图像数据,并将拍摄图像数据通过硬件抽象服务发送至设备互联服务,以使设备互联服务在数据通道中向平板的硬件虚拟化服务中持续传输拍摄图像数据。其中,关于拍摄图像数据的分包组包及编解码流程,此处不再赘述。
S4.6,平板中硬件虚拟化服务将拍摄图像数据发送至教育APP。
S4.7,平板中教育APP显示拍摄图像。
教育APP通过硬件虚拟化服务接收到拍摄图像图像之后,即可在相应的界面中显示拍摄图像。
在本实施例中,虚拟相机预览访问阶段基于安卓原生的相机框架实现,虚拟相机拍照阶段基于私有的虚拟化相机框架实现,使得虚拟相机拍照阶段涉及的处理路径更短,拍摄的时延更小。同时,由于图像预览还是基于安卓原生的相机框架实现,使得教育APP为了适配本实施例提供技术方案的改动更少。
需要注意的是,上述流程中的阶段划分仅为示例性的表达,本申请实施例对此不做限定。而且,执行虚拟相机预览访问阶段流程平板上显示预览图像之后,实时显示预览图像的流程与虚拟相机拍照阶段的流程作可以同时执行。在上述流程中未尽详细解释之处可以参照已有技术,在此不再赘述。
图4a中给出了协同工作系统的通信架构,该通信架构用于完成平板对虚拟相机(即台灯摄像头)的管理,平板与台灯之间的控制命令交互,以及图像数据的回传及处理等。
需要指出的是,跨设备传输(即在平板和台灯之间传输)的指令、请求等,需要基于通信协议及参数序列等进行封装,本实施例对此不再赘述。平板中硬件虚拟化服务还可以对通过动态分配内存和动态销毁内存对预览图像流和拍摄图像的生命周期进行管理。
另外,需要指出的是,在执行本实施例提供的协同工作方法之前,教育APP需要与台灯进行绑定,并将台灯注册到云服务器中。
本申请实施例提供了一种安卓系统设备使用外部设备的摄像头进行拍照的框架方案,此方案不仅可以应用在教育场景,同时适用于设置有摄像头的其他设备,这些设备可以共享其相机能力给手机、平板等安卓系统设备,以实现安卓系统设备与设这些设备的互联互通。
图5a-图5b示例性的示出了一种应用场景。如图5a中(1)所示,平板显示界面401,界面401上显示有多个应用程序图标,用户点击教育应用图标4011。响应于接收到的用户操作,平板开启教育应用,平板显示教育应用界面,可以参照图5a中(2)所示。如图5a中(2)所示,平板显示教育应用界面402,在界面402上显示有教育应用的各个功能选项,包括但不限于查词功能、点读功能、作业功能、拍照功能等。以用户使用拍照功能能力,用户点击拍照功能选项4021,响应于用户操作,平板执行设备发现阶段和虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程。
其中,在设备发现阶段,如果平板的设备管理服务过滤得到的能够与平板联动的台灯数量为一个,则平板自动执行虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程,并显示例如图5b中(1)所示的界面。在设备发现阶段,如果平板的设备管理服务过滤得到的能够与平板联动的台灯数量为多个,则平板显示台灯选择界面。示例性的,在台灯选择界面上显示有待联动的台灯列表,用户可以执行选择操作,响应于用户的选择操作,教育应用确定待联动的一个台灯,并继续执行虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程,以显示例如图5b中(1)所示的界面。
如图5b中(1)所示,界面403中显示有图像预览窗口4031和拍照选项4032,在图像预览窗口4031中显示有台灯摄像头实时采集到的预览图像。此时,若用户点击拍照选项4032,响应于用户操作,平板执行虚拟相机拍照阶段的流程,显示例如图5b中(2)所示的界面。如图5b(2)所示的界面404,在图像预览窗口4041中显示台灯摄像头拍摄到的图像。此时,用户若点击确认选项4041,则平板响应于用户操作,将拍摄图像进行保存,并继续显示例如图5b中(1)所示的预览界面。用户若点击取消选项4042,则平板响应于用户操作,可以显示例如图5b中(1)所示的预览界面。
需要指出的是,如图5b(2)所示的界面仅仅为示例性的举例,台灯摄像头拍摄到的图像也可以不在图像预览窗口4041中显示,而是显示在界面的其他区域,图像预览窗口4041中继续显示台灯摄像头实时采集到的预览图像,本申请对此不做限定。
本实施例提供的协同工作方法,主要阐述一种基于平板设备和台灯设备组合实现在线教育功能的低成本技术方案。下述分别结合在线教育涉及的几个不同功能对本实施例提供的技术方案进行阐述。
场景一
参照图1a所示的应用场景示意图,本场景以查词功能为例进行技术方案阐述。学生遇到不认识的生词时,可以将手指指向生词下方,利用台灯摄像头拍摄图片,平板识别图像以确定生词内容,并在完成在线查词后通过显示屏向学生反馈生词含义,例如在界面显示并播报生词解释等。
如图6a所示为各模块的交互示意图。参照图6a,本申请实施例提供平板和台灯协同工作的方法流程,具体包括:
S501,响应于用户点击查词功能的操作,平板和台灯执行设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,平板显示预览界面。
其中,关于设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,可以参见前文,在此不再赘述。
需要指出的是,在虚拟相机预览访问阶段中,平板中硬件虚拟化API向相机服务发送虚拟相机访问指令中会携带摄像头配置参数。其中,摄像头配置参数可以包括但不限于图像分辨率和图像采集帧率。台灯摄像头按照接收到的配置参数进行设置,并案按照相应的图像分辨率和图像采集帧率采集预览图像数据。
在本场景中,平板需要对预览图像进行精准识别,以确定用户指向的文字内容,因此本场景对预览图像的图像质量要求较高,例如可以将图像分辨率设置为1080P。这样,能够保证较高的查词成功率。
S502,平板中教育APP对预览图像进行手指识别。
示例性的,教育APP可以针对接收到的每帧预览图像进行手指识别,也可以定时对最新接收到的预览图像进行手指识别,本实施例对此不做限定。
示例性的,教育APP中可以集成图像识别算法以实现图像识别操作,教育APP也可以调用图像识别服务进行图像识别操作,本实施例对此不做限定。
关于图像识别算法可以参照已有技术,本实施例在此不再赘述。
S503,响应于用户使用手指指词的操作,平板中教育APP在预览图像中识别到用户的手指。
当用户使用手指指向书本中的某个词汇时,台灯摄像头可以采集到手指指词的预览图像,进而平板中教育APP可以在预览图像中识别到用户的手指。
其中,教育APP对预览图像进行手指识别时,如果识别到手指,可以得到手指在预览图中的位置信息,例如坐标信息等。
S504,平板中教育APP根据手指在预览图像中位置确定ROI(region of interest,感兴趣区域)图像。
在教育APP在预览图像中识别到用户的手指之后,可以根据手指在预览图像的位置信息确定ROI图像。其中,教育APP可以根据手指在预览图像的坐标信息,确定ROI信息,ROI信息包括但不限于中心点坐标和区域范围(如宽高信息)。进而,教育APP可以根据ROI信息在预览图像中裁剪出ROI图像。
S505,平板中教育APP对ROI图像进行精准识别,确定待解释生词。
示例性的,教育APP中可以集成图像识别算法对ROI图像进行精准识别,教育APP也可以调用图像识别服务对ROI图像进行精准识别,以确定待解释生词,本实施例对此不做限定。
关于图像识别算法可以参照已有技术,本实施例在此不再赘述。
S506,平板中教育APP对待解释生词进行查词操作,显示待解释生词的释义。
在确定待解释生词之后,教育APP可以进行在线查词操作,或者在数据库中进行查词操作,以得到待解释生词的释义。进而,教育APP可以将待解释生词的释义进行显示,以供用户查看。除此之外,教育APP可以将显示的生词释义进行朗读,本实施例对此不做限定。
类似的,用户也可以使用点读笔等指词工具(或称指示工具)进行指词操作,本实施例对此不做限定。相应的,教育APP对预览图像进行指词工具识别,以确定用户是否有查词意图,并根据指词工具在预览图像的位置信息确定ROI图像。
类似的,用户也可以使用手指或点读笔等指词工具指向书本中的图片。相应的,教育APP根据手指或点读笔等指词工具的位置信息确定ROI图像,并对ROI图像进行图片内容识别,显示与图片对应的释义,同时还可以将显示的图片释义进行朗读。关于此种情形,本实施例不再赘述。
图1a、图7a-图7b示例性的示出一种应用场景。如图7a中(1)所示,平板显示教育APP界面701,在界面701上显示有教育应用的各个功能选项,包括但不限于查词功能、点读功能、作业功能、拍照功能等。用户点击查词功能选项7011,响应于用户操作,平板执行设备发现阶段和虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程。
其中,在设备发现阶段,如果平板的设备管理服务过滤得到的能够与平板联动的台灯数量为一个,则平板自动执行虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程,并显示例如图7a中(2)所示的界面。在设备发现阶段,如果平板的设备管理服务过滤得到的能够与平板联动的台灯数量为多个,则平板显示台灯选择界面。示例性的,在台灯选择界面上显示有待联动的台灯列表,用户可以执行选择操作,响应于用户的选择操作,教育应用确定待联动的一个台灯,并继续执行虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程,以显示例如图7a中(2)所示的界面。
如图7a中(2)所示,界面702中显示有图像预览窗口7021和查词功能操作示意图7022。其中,在图像预览窗口7021中显示有台灯摄像头实时采集到的预览图像。用户可以参照查词功能操作示意图7022执行指词或指图操作,以触发查词功能。教育APP根据预览图像进行指词或指图识别。继续参照图7a中(2),当用户在书本中使用手指指词时,台灯摄像头采集到手指指词预览图像,该手指指词预览图像显示于图像预览窗口7021。进而,教育APP可以在预览图像中识别到用户的手指,并确定手指在预览图中的位置信息,例如坐标信息等。教育APP根据手指在预览图像中位置确定ROI图像,并对ROI图像进行精准识别,确定待解释生词。待教育APP查询到生词释义后,在界面上显示相应的生词释义,可以参照图7b所示。
然而,在上述流程中,为了保证查词成功率,需要使用台灯摄像头持续返回高分辨率(例如1080p)的预览图像流,对带宽的要求也就比较高,需要4-8Mbps的带宽。这样,台灯对硬件芯片的要求也就更高,使得台灯的成本也会提升。
为了实现平板和台灯协同实现查词功能的方案,且降低台灯的硬件成本,本实施例还提供了一种技术方案。其中,由于在图像中进行手指识别或指词工具识别,以及位置识别对图像分辨率的要求不高,故在虚拟相机预览访问阶段,使用台灯摄像头持续返回低分辨率(例如480p)的预览图像流。如果教育APP基于预览图像识别到用户的指词或指图操作,则触发台灯拍摄一张高分辨率(例如1080p)的图像,以使教育APP根据这张高分辨率的图像进行精准识别确定待解释生词或图片。这样,使用台灯摄像头持续返回低分辨率的预览图像流,对带宽的要求不高,只需0.5-1Mbps的带宽,只有在传输这张高分辨率的图像时才需要更多的带宽。由此,本技术方案不仅降低了台灯对硬件芯片的要求,降低了台灯成本,也能保证查词成功率。
如图6b所示为各模块的交互示意图。参照图6b,本申请实施例提供平板和台灯协同工作的方法流程,具体包括:
S601,响应于用户点击查词功能的操作,平板和台灯执行设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,平板显示预览界面。
其中,关于设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,可以参见前文,在此不再赘述。
需要指出的是,在虚拟相机预览访问阶段中,平板中硬件虚拟化API向相机服务发送虚拟相机访问指令中会携带摄像头配置参数。其中,摄像头配置参数可以包括但不限于图像分辨率和图像采集帧率。台灯摄像头按照接收到的配置参数进行设置,并案按照相应的图像分辨率和图像采集帧率采集预览图像数据。
在本场景中,为了降低预览图像流占用的带宽,在拟相机预览访问阶段中,台灯摄像头可以按照低分辨率采集预览图像。例如,平板中硬件虚拟化API向相机服务发送虚拟相机访问指令中会携带第一配置参数,其中,第一配置参数中包括第一图像分辨率(如480P)。进而,台灯摄像头按照接收到的配置参数进行设置,并案按照第一图像分辨率以及相应的图像采集帧率采集预览图像数据。
S602,平板中教育APP对预览图像进行手指识别。
S603,响应于用户使用手指指词的操作,平板中教育APP在预览图像中识别到用户的手指。
S604,平板中教育APP根据手指在预览图像中位置确定ROI信息,并根据ROI信息生成拍照请求。
其中,ROI信息指的是用于确定ROI的信息,可以包括但不限于中心点坐标和区域范围(如宽高信息)。
S605,平板将拍照请求传输至台灯侧。
其中,拍照请求可以包括但不限于与台灯摄像头对应的虚拟相机ID、台灯摄像头的第二配置参数以及ROI信息。第二配置参数包括但不限于第二图像分辨率,第二图像分辨率高于第一图像分辨率,如第二图像分辨率设置为1080P。这样,使得教育APP可以根据这张高分辨率的图像进行精准识别确定待解释生词或图片。
S606,台灯的摄像头按照拍照请求中携带的第二配置参数进行设置,按照第二图像分辨率拍摄图像,并将拍摄图像发送至硬件抽象服务。
S607,硬件抽象服务根据ROI信息确定ROI图像。
硬件抽象服务可以根据ROI信息在拍摄图像中裁剪出ROI图像。
在一种可选的实施方式中,拍照请求中包括但不限于第二配置参数,但不包括ROI信息。这样,平板将拍照请求传输至台灯侧,台灯的摄像头按照拍照请求中携带的第二配置参数进行设置,按照第二图像分辨率拍摄图像,并将拍摄图像返回至平板中教育APP。进而,教育APP可以根据ROI信息确定ROI图像,例如根据ROI信息在拍摄图像中裁剪出ROI图像。
S608,台灯将ROI图像传输至平板中教育APP。
相比较于台灯直接将高分辨率的拍摄图像返回至平板中教育APP,将裁剪后的ROI图像返回至平板中教育APP中,也能够减少数据传输量,降低带宽的占用。
S609,平板中教育APP对ROI图像进行精准识别,确定待解释生词。
S610,平板中教育APP对待解释生词进行查词操作,显示待解释生词的释义。
本流程未尽详细解释之处可以参照前文,在此不再赘述。
类似的,用户也可以使用点读笔等指词工具进行指词操作,本实施例对此不做限定。相应的,教育APP对预览图像进行指词工具识别,以确定用户是否有查词意图,并根据指词工具在预览图像的位置信息确定ROI信息。
类似的,用户也可以使用手指或点读笔等指词工具指向书本中的图片。相应的,教育APP根据手指或点读笔等指词工具的位置信息确定ROI信息,并对ROI信息在拍摄图像中确定ROI图像,对ROI进行图片内容识别,显示与图片对应的释义,同时还可以将显示的图片释义进行朗读。关于此种情形,本实施例不再赘述。
关于此流程的应用场景,可以参照图1a、图7a-图7b所示的应用场景。参照图7a中(2),当用户在书本中使用手指指词时,台灯摄像头采集到手指指词预览图像,该手指指词预览图像显示于图像预览窗口7021。进而,教育APP可以在预览图像中识别到用户的手指,确定ROI信息,并根据ROI信息以及图像高分辨率生成拍照请求,触发台灯摄像头拍摄图像。台灯摄像头根据图像高分辨率拍摄图像,台灯侧并根据ROI信息对高分辨率拍摄图像进行裁剪得到ROI图像,将ROI图像返回至平板中教育APP。教育APP对ROI图像进行精准识别,确定待解释生词。待教育APP查询到生词释义后,在界面上显示相应的生词释义,可以参照图7b所示。
场景二
参照图1a所示的应用场景示意图,本场景以作业功能为例进行技术方案阐述。当学生需要在线提交作业时,可以在教育APP中点击拍照,利用台灯摄像头拍摄作业图像,并通过教育APP将作业图像上传至数据库。
如图8所示为各模块的交互示意图。参照图8,本申请实施例提供平板和台灯协同工作的方法流程,具体包括:
S801,响应于用户点击作业功能的操作,平板中教育APP显示作业提交列表。
需要指出的是,作业提交列表指的是包括多个作业提交选项的列表,一个作业提交选项对应一门作业,可以参照图9a中界面704所示。其中,作业选项可以是按照学科划分的,也可以是按照时间划分的,本实施例对此不做限定。
如果教育APP的作业功能中只需针对一门作业提交作业图像,则教育APP不会显示作业提交列表。此时,响应于用户点击作业功能的操作,平板和台灯执行设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,平板显示预览界面。
S802,响应于用户点击提交作业选项,平板和台灯执行设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,平板显示预览界面。
其中,关于设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,可以参见前文,在此不再赘述。
需要指出的是,在虚拟相机预览访问阶段中,平板中硬件虚拟化API向相机服务发送虚拟相机访问指令中会携带摄像头配置参数。其中,摄像头配置参数可以包括但不限于图像分辨率和图像采集帧率。台灯摄像头按照接收到的配置参数进行设置,并案按照相应的图像分辨率和图像采集帧率采集预览图像数据。
在本场景中,为了降低预览图像流占用的带宽,在拟相机预览访问阶段中,台灯摄像头可以按照低分辨率采集预览图像。例如,平板中硬件虚拟化API向相机服务发送虚拟相机访问指令中会携带第一配置参数,其中,第一配置参数中包括第一图像分辨率(如480P)。进而,台灯摄像头按照接收到的配置参数进行设置,并案按照第一图像分辨率以及相应的图像采集帧率采集预览图像数据。
S803,响应于用户点击拍照选项的操作,平板中教育APP生成拍照请求。
当用户将作业或书本等放置在台灯摄像头采集区域内时,用户则可以点击拍照选项触发台灯摄像头拍摄作业图像。
其中,拍照请求可以包括但不限于与台灯摄像头对应的虚拟相机ID、台灯摄像头的第二配置参数。第二配置参数包括但不限于第二图像分辨率,第二图像分辨率高于第一图像分辨率,如第二图像分辨率设置为1080P。这样,使得教育APP可以上传高分辨率的作业图像。
S804,平板将拍照请求传输至台灯侧。
S805,台灯的摄像头按照拍照请求中携带的第二配置参数进行设置,按照第二图像分辨率拍摄图像。
S806,台灯将拍摄图像传输至平板中教育APP。
S807,平板中教育APP显示拍摄图像。
平板中教育APP接收到台灯摄像头拍摄到的作业图像,将该作业图像进行显示。如果用户对拍摄的作业图像满意,则用户可以点击提交选项以将作业图像上传至数据库。如果用户对拍摄的作业图像不满意,则用户可以重新点击拍照选项以触发台灯摄像头重新拍摄作业图像。
S808,响应于用户点击提交选项的操作,平板中教育APP上传拍摄图像至数据库。
本流程未尽详细解释之处可以参照前文,在此不再赘述。
需要指出的是,上述提及的作业图像仅仅是示例性的举例说明,用户可以点击拍照选项触发台灯摄像头拍摄其他图像。待台灯将拍摄到的图像发送至平板中教育APP中之后,教育APP则可以将接收到的拍摄图像上传至相应的数据库。
图1a、9a-图9c示例性的示出一种应用场景。如图9a中(1)所示,平板显示教育APP界面701,在界面701上显示有教育应用的各个功能选项,包括但不限于查词功能、点读功能、作业功能、拍照功能等。用户点击查词功能选项7012,响应于用户操作,平板中教育APP显示作业提交列表,可以参照图9a中(2)所示。如图9a中(2)所示的作业提交列表界面704中,显示有多个提交作业选项(如提交作业1、提交作业2、提交作业3、提交作业4等),不同的作业提交选项对应于不同的作业。以用户需要针对提交作业4上传作业图像为例,用户点击提交作业4选项7042。响应于用户操作,平板可以显示如图9b中(1)所示的作业提交界面705。
继续参照9b中(1),在作业提交界面705中,显示有图像预览窗口7041、拍照选项7051和提交选项7052。其中,在图像预览窗口7041中显示有台灯摄像头实时采集到的预览图像。当用户将作业或书本等放置在台灯摄像头采集区域内时,用户则可以点击拍照选项7051触发台灯摄像头拍摄作业图像。响应于用户操作,教育APP生成拍照请求发送至台灯侧,以调用台灯摄像头拍摄作业图像。其中,台灯摄像头按照拍照请求中携带的图像高分辨率拍摄作业图像,并将拍摄得到作业图像返回至平板中教育APP,以通过教育APP进行显示,可以参照如图9b中(2)所示的界面706。
继续参照9b中(2),在界面706中显示有图像预览窗口7041、拍照选项7051、提交选项7052,以及台灯摄像头拍摄得到的作业图像7061。其中,在作业图像7061还显示有关闭选项7062。若用户对作业图像7061不满意,则可以点击关闭选项7062,界面上将不再显示作业图像7061。此时用户可以点击拍照选项7051触发台灯摄像头重新拍摄作业图像。若用户对作业图像7061满意,则可以点击提交选项7052。响应于用户操作,平板可以显示如图9c所示的待确认界面701。其中,在待确认界面701中显示有待提交的作业图像7061,以及是否确认提交窗口7071。如果用户点击确认提交窗口7071中的确认选项7072,则教育APP响应于用户操作,将作业图像7061上传至数据库。如果用户点击确认提交窗口7071中的取消选项7071,则教育APP响应于用户操作,可以显示如图9b中(1)所示的界面,以待用户点击拍照选项7051触发台灯摄像头重新拍摄作业图像。
需要指出的是,继续参照9b中(2),若用户对作业图像7061满意,则可以点击提交选项7052。响应于用户操作,教育APP也可以不再显示如图9c所示的界面,直接将作业图像7061上传至数据库。本实施例对此不做限定。
场景三
参照图1a所示的应用场景示意图,本场景以点读功能(或称指读功能)为例进行技术方案阐述。当学生需要教育APP朗读书本中内容时,可以利用台灯摄像头实时采集书本图像,进而教育APP可以根据书本图像加载相应的书本内容,并根据学生的手指位置或翻页操作确定待朗读的书本内容进行朗读。
如图10所示为各模块的交互示意图。参照图10,本申请实施例提供平板和台灯协同工作的方法流程,具体包括:
S901,响应于用户点击点读功能的操作,平板和台灯执行设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,平板显示预览界面。
其中,关于设备发现阶段、虚拟相机使能阶段以及虚拟相机预览访问阶段的流程,可以参见前文,在此不再赘述。
需要指出的是,在虚拟相机预览访问阶段中,平板中硬件虚拟化API向相机服务发送虚拟相机访问指令中会携带摄像头配置参数。其中,摄像头配置参数可以包括但不限于图像分辨率和图像采集帧率。台灯摄像头按照接收到的配置参数进行设置,并案按照相应的图像分辨率和图像采集帧率采集预览图像数据。
在本场景中,为了降低预览图像流占用的带宽,在拟相机预览访问阶段中,台灯摄像头可以按照低分辨率采集预览图像。例如,平板中硬件虚拟化API向相机服务发送虚拟相机访问指令中会携带第一配置参数,其中,第一配置参数中包括第一图像分辨率(如480P)。进而,台灯摄像头按照接收到的配置参数进行设置,并案按照第一图像分辨率以及相应的图像采集帧率采集预览图像数据。
S902,平板中教育APP对预览图像进行识别,确定图书名称。
示例性的,教育APP可以针对接收到的每帧预览图像进行图书信息识别,也可以定时对最新接收到的预览图像进行图书信息识别,本实施例对此不做限定。
示例性的,教育APP中可以集成图像识别算法以实现图像识别操作,教育APP也可以调用图像识别服务进行图像识别操作,本实施例对此不做限定。
关于图像识别算法可以参照已有技术,本实施例在此不再赘述。
S903,平板中教育APP根据图书名称检索数据库,并加载与图书名称对应的图书内容。
平板中教育APP如果根据图书名称检索数据库,确定不同版本的图书,则可以显示相应的图书列表,以供用户选择。进而,响应于用户对某个版本的图书的选择操作,教育APP加载与该版本图书对应的内容
S904,响应于用户翻页或手指点读操作,平板中教育APP对预览图像进行识别,确定待朗读段落,并朗读相应的段落。
在加载完成图书内容之后,教育APP可以针对接收到的每帧预览图像进行手指或点读笔指令的指示工具的识别,也可以定时对最新接收到的预览图像进行手指或点读笔指令的指示工具的识别,本实施例对此不做限定。响应于用户的点读操作,教育APP可以根据预览图像识别到图书页码以及用户的点击位置信息,例如坐标信息等,进而可以根据图书页码以及用户的点击位置信息,在加载的图书内容中确定出待朗读的段落,并朗读相应的段落。
在加载完成图书内容之后,教育APP还可以根据预览图像流进行翻页识别。响应于用户的翻页操作,教育APP可以根据识别到图书页码在加载的图书内容中确定出待朗读的段落,并朗读相应的段落。
本流程未尽详细解释之处可以参照前文,在此不再赘述。
图1a、图11a-图11b示例性的示出一种应用场景。如图11a中(1)所示,平板显示教育APP界面701,在界面701上显示有教育应用的各个功能选项,包括但不限于查词功能、点读功能、作业功能、拍照功能等。用户点击点读功能选项7013,响应于用户操作,平板执行设备发现阶段和虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程。
其中,在设备发现阶段,如果平板的设备管理服务过滤得到的能够与平板联动的台灯数量为一个,则平板自动执行虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程,并显示例如图11a中(2)所示的界面。在设备发现阶段,如果平板的设备管理服务过滤得到的能够与平板联动的台灯数量为多个,则平板显示台灯选择界面。示例性的,在台灯选择界面上显示有待联动的台灯列表,用户可以执行选择操作,响应于用户的选择操作,教育应用确定待联动的一个台灯,并继续执行虚拟相机服务使能阶段以及虚拟相机预览访问阶段的流程,以显示例如图11a中(2)所示的界面。
如图11a中(2)所示,界面708中显示有图像预览窗口7081。其中,在图像预览窗口7081中显示有台灯摄像头实时采集到的预览图像。教育APP对预览图像进行识别,以确定图书名称。教育APP在识别到图书名称之后,根据图书名称检索数据库。如果检索到相应的图书,则执行图书内容的加载操作,可以参照图11b中(1)所示。
继续参照图11b中(1)所示,界面709中显示有图像预览窗口7081、识别到的图书名称7091和图书内容加载进度标识7092。在图书内容加载完成之后,教育APP即可根据预览图像识别用户的点读操作或翻页操作。以用户执行翻页操作为例,参照如图11b中(2)所示的界面710,图像预览窗口7081中可以显示用户的翻页动作。响应于用户的操作,教育APP根据预览图像识别到图书页码。进而,教育APP可以根据识别到图书页码在加载的图书内容中确定出待朗读的段落,并朗读相应的段落。
在本申请实施例提供的协同工作方法中,使用家用平板和带摄像头台灯即可组合出的专业在线教育体验。利用台灯设备的摄像头配合平板的教育APP完成学生手指查词、作业提交、图书指读等需要拍照的场景。
基于上述硬件结构、软件结构的电子设备100(以平板为例),以及IOT设备200(以台灯为例),在相互配合应用于上文所说的学习场景时,根据业务的不同,台灯传输给平板的数据有所不同。例如,在上文所说的点读场景下,台灯向平板传输的是摄像头拍摄的预览流数据,即是持续传输的视频数据流;在上文所说的查词场景、提交作业场景下,台灯向平板传输的是摄像头拍摄的图像数据。
具体到实际应用中,台灯在向平板传输预览流数据和图像数据时,可以基于相同的数据组包原理,以设定的大小为单位,将当前产生的预览流数据封装为一个预览流数据包,将整张图像数据中的一部分封装为一个图像数据小包,然后基于实时传输协议(Real-time Transport Protocol,RTP)传输至平板侧。这种方式对于预览流数据而言,由于不涉及组包的处理过程,得到预览流数据包直接进行处理展示即可,即不存在首包、尾包、中间包的区分,而对于图像数据而言,最终展示的照片必须按照图像数据小包之间的位置关系确定,并根据尾包触发组包操作。然而目前的图像数据传输方式中,必须对图像数据小包的数据体进行解析才能确定该图像数据小包是否为首包。
另外,即便对图像数据小包的数据体进行解析也不能确定该图像数据小包是否为尾包,即不能快速、精准的触发组包。
有鉴于此,本申请提供了一种图像数据传输方法,旨在不对接收到的图像数据小包的数据体进行解析的情况下,快速、精准的确定该图像数据小包是首包、中间包,还是尾包,这样在识别出接收到的图像数据小包为尾包时,就可以执行数据组包操作。
参见图12,示例性示出了平板与台灯之间进行图像数据传输的具体流程:
S1001,平板响应于用户的操作行为,生成拍照请求(包括拍摄的照片需要满足的参数信息)。
可理解的,通过上文的描述可知,在查词场景和提交作业场景下,才涉及图像数据的传输,因此平板响应于用户的操作行为,具体为用户触发了对查词功能,或提交作业功能的操作。
示例性的,在一些实现方式中,用户作出的操作行为,例如是点击了平板当前界面中显示的点读功能/场景对应的控件,或点击了提交作业功能/场景对应的控件。
示例性的,在另一些实现方式中,用户作出的操作行为,例如是通过语音命令控制平板作出响应,进而选中查词功能,或提交作业功能。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
此外,通过上文描述可知,在查词场景、提交作业场景下,对图像数据的分辨率要求要高于点读场景下对预览流数据的分辨率要求。因此,响应于用户的操作行为,生成拍照请求时,至少需要携带拍摄的照片需要满足的参数信息,如分辨率。
S1002,平板向台灯发送拍照请求。
平板在生成上述要求的拍照请求后,例如可以通过与台灯协商好的控制通道将拍照请求发送给台灯。
S1003,台灯检测摄像头是否异常。
由于在实际应用中,台灯的摄像头可能因为某些因素无法进行拍摄,因此为了尽可能减少不必要的处理,如对拍照请求的解析,参数信息的判断,可以先检测当前场景下,台灯的摄像头是否异常,即是否能够正常使用。
相应地,如果摄像头异常,台灯可以生成一个异常反馈包,为了便于区分以下将摄像头异常时反馈的异常反馈包称为异常反馈包1,将参数异常时反馈的异常反馈包称为异常反馈包2,并执行步骤S1004。
反之,即摄像头正常可用时,才提取拍照请求中携带的参数信息,即执行步骤S1006。
S1004,台灯向平板发送异常反馈包1。
示例性的,在一些实现方式中,可以通过与平板协商好的图像数据通道将异常反馈包1传输给平板。
S1005,根据异常反馈包1中的异常原因作出响应。
示例性的,在一些实现方式中,为了便于平板获知异常反馈包1中的异常原因,可以在异常反馈包1中的数据头中携带标识异常的错误码,这样平板无需对数据体进行解析,直接根据数据头就可以快速获知本次异常原因,进而根据异常原因作出对应的响应。例如,平板可以在用户界面作出提示,告知用户台灯的摄像头出现了异常,以使用户根据提示对台灯的摄像头进行检查。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
S1006,台灯提取拍照请求中的参数信息。
具体的,在台灯的摄像头正常可用时,台灯可以从提取平板发送的拍照请求中的参数信息,如需要拍摄的照片的分辨率信息。
S1007,台灯检测参数信息是否异常。
具体的,在本实施例中,台灯对参数信息的检测例如为判断该分辨率信息摄像头是否支持。
相应地,如果不支持,则确定该参数异常,需要执行步骤S1008;如果支持,则确定该参数信息正常,可以执行步骤S1010。
S1008,台灯向平板发送异常反馈包2。
同理,可以通过与平板协商好的图像数据通道将异常反馈包2传输给平板。
另外,需要说明的是,在实际应用中,台灯侧还可以根据其他的异常原因,如网络传输异常等生成其他的异常反馈包反馈给平板侧,上述给出的仅为两种具体的异常场景,并不作为对本实施例的具体限定。
S1009,根据异常反馈包2中的异常原因作出响应。
示例性的,异常反馈包2中的携带的错误码同样可以存放在异常反馈包2的数据头中。这样平板无需对数据体进行解析,直接根据数据头就可以快速获知本次异常原因,进而根据异常原因作出对应的响应。例如,平板可以根据台灯支持的分辨率重新生成拍照请求,并将重新生成的拍照请求发送给台灯。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
S1010,台灯根据参数信息调整摄像头的拍摄参数,并利用调整后的摄像头拍摄,得到图像数据包。
需要说明的是,本实施例中所说的图像数据包具体包括了需要在平板侧显示的一整张照片的图像数据(数据体),以及为该图像数据分配的数据头。
为了更好的理解上述所说的图像数据包的产生过程,以下结合图13进行说明。
参见图13,以利用调整后的摄像头拍摄,得到需要在平板侧显示的一整张照片的图像数据的大小为10000个字节为例。在得到该图像数据后,基于本实施例中的图像数据包的生成标准,需要将该图像数据作为数据体,在该数据体之前添加128个字节大小的数据头,进而得到整张照片对应的图像数据包。
可理解的,字节是从0开始的,因此该图像数据包的整体大小为128个字节的数据头+10000个字节的数据体,即10128个字节。其中,0~127字节对应的是数据头的内容,128~10127字节对应的是10000个字节大小的图像数据。
具体到本实施例中,图像数据包中的数据头包括两部分,一部分用于记录图像数据是否正常的标识,本实施例中将其称为数据是否正常的标识字段,另一部分留作后续业务的拓展使用,本实施例中将其称为拓展字段。为了更好的理解该结构的数据头,一下结合图14进行说明。
参见图14,在数据头的128个字节中,其中0~3字节是用于记录图像数据是否正常的标识,即是数据是否正常的标识字段,4~127字节留作后续业务的拓展使用,即是拓展字段。
示例性的,在一些实现方式中,可以约定用户“0”标识该数据正常,用“1”标识该数据异常,即如果0字节中的内容为“0”表示数据体中的图像数据是正常数据(实质为需要返回给平板的照片的二进制数据),即经平板处理可以还原出对应的照片,如果0字节中的内容为“1”表示数据体中的图像数据是异常数据,例如可能是异常的字符串。
示例性的,在一些实现方式中可以约定不同的异常字符串对应不同的异常原因,这样便于后期定位异常,并解决该异常。
此外,需要说明的是,在一些实现方式中,拓展字段也可以根据业务需要进一步进行划分,比如对于一对多,即一个台灯需要向多个平板、手机设备传输图像数据的场景,可以约定拍照请求中携带需要拍摄的照片的唯一标识,而台灯在生成上述图像数据包时,可以在拓展字段中4~32字节中添加标识照片唯一性的标识。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
S1011,台灯按照设定的大小,按照设定的大小,对图像数据包中的数据进行分包,得到N个图像数据小包(每个图像数据小包包括数据头;记录图像数据小包为首包,或中间包,或尾包的标识字段;存放图像数据的数据体)。
可理解的,关于图像数据小包的大小,可以根据传输通道的带宽资源、当前的网络质量等动态设置,也可以设置为一个固定的值,具体的实现方式,本实施例对此不作限定。
为了便于说明本实施例以设定的大小1394个字节,图像数据包为上述所说的10128个字节为例,结合图15对将图像数据包划分为多个图像数据小包的过程进行说明。
参见图15,以划分的图像数据小包后续依旧使用RTP协议进行传输为例,本实施例中划分的图像数据小包的数据结构包括RTP数据头、标识字段和数据体这三部分。
继续参见图15,对于任意一个图像数据小包,其中的0~11字节作为数据头使用,12字节作为标识字段使用,13~1393字节作为数据体使用。即,每个图像数据小包的13~1393字节才是用来存放图像数据包中的数据的,因此每个图像数据小包中存方的图像数据包中的数据只有1381个字节。
此外,还需要说明的是,作为首包的图像数据小包中,数据体中还包括了图像数据包中128个字节大小的数据头,因此在首包的图像数据小包中,如图15中的图像数据小包1中真正存放的图像数据为1253个字节的内容,其后的图像数据小包不需要包括图像数据包中128个字节大小的数据头,因此为1381个字节,基于此,对于10128个字节大小的图像数据包,可以拆分为8个上述结构的图像数据小包,作为尾包的图像数据小包8大小不足1394字节,具体为12字节大小的RTP数据头+1字节大小的标识字段+589字节大小的图像数据,即图像数据小包8的大小为601个字节。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
参见图16,示例性的示出了每一个图像数据小包的RTP数据头的具体格式。如图16所示,0字节中具体存放的是当前的版本号(V),1字节中具体存放的是图像数据的数据类型(T),2字节和3字节中具体存放的是序列号(SEQNUM),4~7字节中具体存放的是时间戳(RTPTIME),8~11字节中具体存放了同步源标识(SSRC)。
需要说明的是,关于上述所说的数据类型具体可以是便携式网络图形(PortableNetwork Graphics,PGN)类型、联合图像专家组(Portable Network Graphics,JPG)类型等,此处不再一一例举,本实施例对此不作限制。
此外,关于上述所说的序列号,在实际应用中,台灯每发送一个图像数据小包,序列号都会加1。
此外,关于上述所说的时间戳,具体是用于反映该图像数据小包中数据体中第一个字节的图像数据的采集时间的。这样,后续根据时间戳就可以按序将图像数据小包进行组合,进而还原出整张照片的图像数据包,使得平板能够对该照片的图像数据进行处理,进而将其显示在用户界面。
此外,关于上述所说的同步源标识,具体用于标识每一个图像数据小包的唯一性,从而避免重复发送相同的图像数据小包,给平板侧的缓存队列造成冗余。
参见图17,示例性示出了每一个图像数据小包的标识字段的具体格式。如图17所示,12字节的0帧和1帧中具体存放的是标识当前图像数据小包为首包、中间包,还是尾包的包标识信息,剩余的2~7帧这作为预留帧,以便后续根据业务需要进行拓展使用。
也就是说,本实施例给出的包括RTP数据头、标识字段和数据体结构的图像数据小包中,标识字段专门供平板进行组包处理使用。
关于上述所说的包标识信息,在一些实现方式中,可以约定用“10”(0帧的位置为“1”,1帧的位置为“0”)表示当前图像数据小包为首包,即包括了图像数据的首帧,在组包时需要从该图像数据小包中的第一帧图像数据开始。
示例性的,还可以约定用“01”(0帧的位置为“0”,1帧的位置为“1”)表示当前图像数据小包为尾包,即包括了图像数据的尾帧,在组包时,该图像数据小包即为本次需要获取的照片的最后一个包,在接收到该包后即触发组包操作。
示例性的,还可以约定用“00”(0帧的位置为“0”,1帧的位置为“0”)表示当前图像数据小包为中间包。
此外,还需要说明的是,考虑到实际应用中,对于需要传输多张照片的图像数据时,可能存在前后两张照片的数据位于同一个图像数据小包中,如前一张照片的尾帧和后一张照片的首帧位于同一个图像数据小包中,可以约定用户“11”((0帧的位置为“1”,1帧的位置为“1”)表示当前图像数据小包包括了前一张照片的尾帧,以及后一张照片的首帧。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
此外,还需要说明的是,基于本实施例给出的图像数据小包的数据结构,上述摄像头存在异常时发送给平板的异常反馈包1,以及摄像头不支持拍照请求中携带的分辨率时发送给平板的异常反馈包2,同样可以基于上述分包原理,将其进行分包。
可理解的,由于异常反馈包(异常反馈包1、异常反馈包2)通常较小,因此采用上述分包原理分包处理后,所有的数据可以存储在一个小包中,对于这种情况,上述所说的包标识信息即为“11”。
S1012,台灯发送N个图像数据小包。
具体的,在按照上述数据结构对图像数据包中的数据进行分包,得到需要发送的N个图像数据小包后,台灯就可以通过与平板协商好的图像数据通道发送这N个图像数据小包。
可理解的,如果在协商阶段确定需要对传输的数据进行加密,则需要将每一个图像数据小包按照协商的加密方式进行加密处理,然后再将加密后的图像数据小包发送给平板。
S1013,平板根据当前接收到的图像数据小包中标识字段的内容进行后续处理。
可理解的,如果接收到的图像数据小包是加密形式,平板需要先根据与台灯协商的解密方式进行解密,进而得到明文形式的图像数据小包。然后通过判断12字节的标识字段中0帧中的内容是否为“1”,1帧的内容是否为“0”,即确定包标识信息是否为约定的“10”,进而确定当前接收到的图像数据小包是否为包含首帧的图像数据小包,即首包。
相应地,如果是,则将该图像数据小包缓存到图像数据小包缓存队列中,并接着对接收到的图像数据小包进行上述处理,如果包标识为约定的“00”,则确定为示中间包,将其缓存到图像数据小包缓存队列中,并接着对接收到的图像数据小包进行上述处理,直到接收到的图像数据小包的包标识信息为约定的“01”,或“11”,将其缓存到图像数据小包缓存队列中,并停止接收图像数据小包,开始执行组包操作。
为了便于理解,以下结合图18至图21对组包涉及的操作进行说明。
仍以上述示例中图像数据为10000个字节为例,示例性的,在进行组包操作时,平板会从图像数据小包缓存队列中取出图像数据小包1,如图18所示,在12字节的标识字段,记录的包标识信息为“10”表面图像数据小包1为首包,该包的数据体中包括了图13所示的整个图像数据包的数据头,而该数据头的第一个字节中记录了标识该图像数据是否正常的标识。因此可以对图像数据小包1的数据体进行解析,提取出字节13中记录的内容,进而确定该图像数据是正常。
示例性的,当字节13中记录的标识为“1”(如图18所示),根据上文的描述可知,“1”指示该图像数据异常,这种情况下无需在对其他的图像数据小包,如上文所说的图像数据小包2至图像数据小包8进行解析处理,直接清空图像数据小包缓存队列即可。
示例性的,在一些实现方式中,在清空图像数据小包缓存队列后,平板可以在用户界面作出提示,以提示用户本次拍摄的图像数据出现异常,无法显示,从使得用户能够再次触发拍照请求,获取图像数据。
示例性的,在另一些实现方式中,在清空图像数据小包缓存队列后,平板也可以模拟用户操作,自动生成拍照请求,以使台灯能够根据新的拍照请求重新执行上述流程。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
示例性的,当字节13中记录的标识为“0”(如图19所示),根据上文的描述可知,“0”指示该图像数据正常,这种情况下可以对图像数据小包缓存队列中缓存的其他图像数据小包进行解析处理。
示例性的,如果当前解析的图像数据小包的12字节中0帧中的内容是否为“0”,1帧的内容是否为“0”,即包标识信息为“00”(如图20所示),这表明该图像数据小包为中间包,对该中间包进行解析,就可以得到中间包的图像数据。
示例性的,如果当前解析的图像数据包的12字节中0帧中的内容是否为“0”,1帧的内容是否为“1”,即包标识信息为“01”(如图21所示),这表明该图像数据小包为尾包,对该图像数据小包进行解析后,就可以得到尾包的图像数据。
在完成对首包、各中间包、尾包的解析后,就可以根据各图像数据包中RTP数据头中2~3字节记录的序列号和4~7字节记录的时间戳确定各图像数据之间的位置关系,进而还原出摄像头拍摄的照片的图像数据。这样,平板就可以根据业务需要对该照片的图像数据进行处理,进而在用户界面显示处理后的照片。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
由此,本实施例提供的图像数据传输方法,在传输前通过按照上述数据结构对图像数据包进行分包,从而使得接收到图像数据小包的平板根据每一个图像数据小包中标识字段的包标识信息就可以快速、精准的确定当前的图像数据小包为首包,还是中间包,还是尾包。
也就是说,基于本实施例提供的图像数据传输方法,无需对接收到的图像数据小包的数据体进行解析,既可以快速、精准的确定每一张需要还原的照片的首包、中间包和尾包,从而快速、精准的实现组包。
此外,可理解的,上述是从平板和台灯这两个设备整体的角度对本申请提供的图像数据传输方法进行说明的,在具体实现时,上述流程的实现需要涉及平板侧的教育应用、设备管理服务、相机服务、传输管理服务、硬件虚拟化服务、虚拟相机HAL,以及台灯侧的设备互联服务、硬件抽象服务、摄像头,关于这些模块之间的具体的交互,可以参见上文中查词场景和提交作业场景的描述,此处不再赘述。
此外,还可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
此外,需要说明的是,在实际的应用场景中由电子设备实现的上述各实施例提供的方法,也可以由电子设备中包括的一种芯片系统来执行,其中,该芯片系统可以包括处理器。该芯片系统可以与存储器耦合,使得该芯片系统运行时调用该存储器中存储的计算机程序,实现上述电子设备执行的步骤。其中,该芯片系统中的处理器可以是应用处理器也可以是非应用处理器的处理器。
另外,本申请实施例还提供一种计算机可读存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述各实施例中的方法。
另外,本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在电子设备上运行时,使得电子设备执行上述相关步骤,以实现上述各实施例中的方法。
另外,本申请的实施例还提供一种芯片(也可以是组件或模块),该芯片可包括一个或多个处理电路和一个或多个收发管脚;其中,所述收发管脚和所述处理电路通过内部连接通路互相通信,所述处理电路执行上述相关方法步骤实现上述实施例中方法,以控制接收管脚接收信号,以控制发送管脚发送信号。
此外,通过上述描述可知,本申请实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (26)
1.一种图像数据传输方法,其特征在于,应用于物联网设备,所述物联网设备上设置有摄像头,所述摄像头用于向下采集图像数据,所述物联网设备与电子设备中的目标应用绑定,所述图像数据传输方法包括:
接收电子设备发送的拍照请求,所述拍照请求中携带了指示所述摄像头拍摄的图像数据的分辨率;
调用所述摄像头按照所述分辨率拍摄图像,得到图像数据;
根据第一数据包标准,将所述图像数据处理为图像数据包;
根据第二数据包标准,对所述图像数据包分包,得到N个图像数据小包,N为大于0的整数,每一个图像数据小包中携带了标识所述图像数据小包为首包,或者中间包,或者尾包的包标识信息;
将得到的N个图像数据小包发送给所述电子设备。
2.根据权利要求1所述的方法,其特征在于,所述第一数据包标准指示所述图像数据包包括第一数据头和第一数据体;
所述第一数据体用于存放所述图像数据;
所述第一数据头包括图像数据标识字段,所述图像数据标识字段中记录的图像数据标识信息用于标识所述第一数据体中存放的所述图像数据是否正常。
3.根据权利要求2所述的方法,其特征在于,所述第一数据头还包括拓展字段。
4.根据权利要求3所述的方法,其特征在于,所述第一数据头的大小为128个字节,所述标识字段位于0~3字节,所述拓展字段位于4~127字节。
5.根据权利要求4所述的方法,其特征在于,所述第二数据包标准指示所述图像数据小包包括第二数据头、包标识字段和第二数据体;
所述第二数据头占12个字节,所述包标识字段占1个字节;
所述包标识字段中第0帧和第1帧对应的二进制数据组合后的内容所述包标识信息;
所述第二数据体用于存放所述图像数据。
6.根据权利要求5所述的方法,其特征在于,在所述包标识信息指示所述图像数据小包为首包时,所述第二数据体还用于存放所述第一数据头。
7.根据权利要求1至6任一项所述的方法,其特征在于,在所述接收电子设备发送的拍照请求之后,所述方法还用于:
检测所述摄像头是否异常;
在所述摄像头异常时,向所述电子设备发送第一异常反馈包,所述第一异常反馈包中携带指示摄像头异常的异常原因;
在所述摄像头正常时,检测所述摄像头是否支持所述分辨率;
在所述摄像头支持所述分辨率时,执行所述调用所述摄像头按照所述分辨率拍摄图像的步骤;
在所述摄像头不支持所述分辨率时,向所述电子设备发送第二异常反馈包,所述第二异常反馈包中携带指示分辨率异常的异常原因。
8.根据权利要求1至6任一项所述的方法,其特征在于,所述分辨率为1080P。
9.根据权利要求1至6任一项所述的方法,其特征在于,所述物联网设备为台灯。
10.根据权利要求1至6任一项所述的方法,其特征在于,所述电子设备包括手机、平板电脑。
11.一种图像数据传输方法,其特征在于,应用于电子设备,所述电子设备中目标应用与物联网设备绑定,所述物联网设备上设置有摄像头,所述摄像头用于向下采集图像数据,所述图像数据传输方法包括:
在系统中注册与所述摄像头对应的虚拟相机,并通过调用所述虚拟相机向所述物联网设备发送拍照请求,所述拍照请求中携带了指示所述摄像头拍摄的图像数据的分辨率;
接收所述物联网设备发送的图像数据小包,所述图像数据小包由所述物联网设备根据第二数据包标准对图像数据包分包获得,所述图像数据包由所述物联网设备根据第一数据包标准对图像数据处理所得,所述图像数据由所述摄像头按照所述分辨率拍摄获得,所述图像数据包可以分为N个图像数据小包,N为大于0的整数,每一个图像数据小包中携带了标识所述图像数据小包为首包,或者中间包,或者尾包的包标识信息;
在接收到携带的包标识信息为尾包的图像数据小包时,对接收的N个图像数据小包进行组包,还原出所述摄像头按照所述分辨率拍摄的所述图像数据,并将所述图像数据在所述目标应用中进行显示。
12.根据权利要求11所述的方法,其特征在于,所述第一数据包标准指示所述图像数据包包括第一数据头和第一数据体;
所述第一数据体用于存放所述图像数据;
所述第一数据头包括图像数据标识字段,所述图像数据标识字段用于标识所述第一数据体中存放的所述图像数据是否正常。
13.根据权利要求12所述的方法,其特征在于,所述第一数据头还包括拓展字段。
14.根据权利要求13所述的方法,其特征在于,所述第一数据头的大小为128个字节,所述标识字段位于0~3字节,所述拓展字段位于4~127字节。
15.根据权利要求14所述的方法,其特征在于,所述第二数据包标准指示所述图像数据小包包括第二数据头、包标识字段和第二数据体;
所述第二数据头占12个字节,所述包标识字段占1个字节;
所述包标识字段中第0帧和第1帧对应的二进制数据组合后的内容所述包标识信息;
所述第二数据体用于存放所述图像数据。
16.根据权利要求15所述的方法,其特征在于,在所述包标识信息指示所述图像数据小包为首包时,所述第二数据体还用于存放所述第一数据头。
17.根据权利要求16所述的方法,其特征在于,在所述接收所述物联网设备发送的图像数据小包之后,所述方法还包括:
根据所述第二数据包标准,从所述包标识字段占用的字节中提取所述包标识信息;
在所述包标识信息指示所述图像数据小包为首包时,将所述首包添加到图像数据小包缓存队列;
在所述包标识信息指示所述图像数据小包为中间包时,将所述中间包添加到图像数据小包缓存队列;
在所述包标识信息指示所述图像数据包为尾包时,将所述尾包添加到图像数据小包缓存队列,并执行所述对接收的N个图像数据小包进行组包的步骤。
18.根据权利要求17所述的方法,其特征在于,所述对接收的N个图像数据小包进行组包,包括:
根据所述第二数据包标准,对每一个所述图像数据小包的所述第二数据头进行解析;
根据所述第二数据头中记录的序列号、时间戳,按序提取每一个所述图像数据小包中的第二数据体中的数据进行组合。
19.根据权利要求18所述的方法,其特征在于,在所述对每一个所述图像数据小包的所述第二数据头进行解析之前,所述方法还包括:
根据所述第二数据包标准和所述第一数据包标准,确定所述首包中所述图像数据标识字段所在的字节;
从所述图像数据标识字段占用的字节中提取图像数据标识信息;
在所述图像数据标识信息指示所述图像数据正常时,执行所述对每一个所述图像数据小包的所述第二数据头进行解析的步骤;
在所述图像数据标识信息指示所述图像数据异常时,清空所述图像数据小包缓存队列中缓存的N个图像数据小包。
20.根据权利要求11至19任一项所述的方法,其特征在于,所述方法还包括:
接收所述物联网设备发送的第一异常反馈包,并根据所述第一异常反馈包中的异常原因作出响应,所述第一异常反馈包中携带指示摄像头异常的异常原因;
接收所述物联网设备发送的第二异常反馈包,并根据所述第二异常反馈包中的异常原因作出响应,所述第二异常反馈包中携带指示分辨率异常的异常原因。
21.根据权利要求1至19任一项所述的方法,其特征在于,所述分辨率为1080P。
22.根据权利要求1至19任一项所述的方法,其特征在于,所述物联网设备为台灯。
23.根据权利要求1至19任一项所述的方法,其特征在于,所述电子设备包括手机、平板电脑。
24.一种物联网设备,其特征在于,所述物联网设备包括:存储器和处理器,所述存储器和所述处理器耦合;所述存储器存储有程序指令,所述程序指令由所述处理器执行时,使得所述物联网设备执行如权利要求1至10任意一项所述的图像数据传输方法。
25.一种电子设备,其特征在于,所述电子设备包括:存储器和处理器,所述存储器和所述处理器耦合;所述存储器存储有程序指令,所述程序指令由所述处理器执行时,使得所述电子设备执行如权利要求1至23任意一项所述的图像数据传输方法。
26.一种协同工作系统,其特征在于,包括如权利要求24所述的物联网设备和如权利要求25所述的电子设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210859326.4A CN117478653A (zh) | 2022-07-21 | 2022-07-21 | 图像数据传输方法、设备及协同工作系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210859326.4A CN117478653A (zh) | 2022-07-21 | 2022-07-21 | 图像数据传输方法、设备及协同工作系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117478653A true CN117478653A (zh) | 2024-01-30 |
Family
ID=89627966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210859326.4A Pending CN117478653A (zh) | 2022-07-21 | 2022-07-21 | 图像数据传输方法、设备及协同工作系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117478653A (zh) |
-
2022
- 2022-07-21 CN CN202210859326.4A patent/CN117478653A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113691842B (zh) | 一种跨设备的内容投射方法及电子设备 | |
CN112398855B (zh) | 应用内容跨设备流转方法与装置、电子设备 | |
CN113630910B (zh) | 蜂窝通信功能的使用方法、相关装置及系统 | |
CN114040242B (zh) | 投屏方法、电子设备和存储介质 | |
CN116360725B (zh) | 显示交互系统、显示方法及设备 | |
CN110955452B (zh) | 一种非侵入式交互方法及电子设备 | |
WO2022206770A1 (zh) | 一种设备间应用协同工作的方法及设备 | |
WO2022143883A1 (zh) | 一种拍摄方法、系统及电子设备 | |
CN111615820B (zh) | 通过向grs服务器发送关键值进行域名解析的方法及设备 | |
CN114356195B (zh) | 一种文件传输的方法及相关设备 | |
WO2023005711A1 (zh) | 一种服务的推荐方法及电子设备 | |
CN114995591B (zh) | 传感器注册方法、控制系统及相关设备 | |
CN117478653A (zh) | 图像数据传输方法、设备及协同工作系统 | |
US20230289432A1 (en) | Application Data Transmission Method, User Equipment, and System | |
CN116056076B (zh) | 通信系统、方法及电子设备 | |
CN117478654A (zh) | 图像数据传输过程的异常处理方法、设备及协同工作系统 | |
CN117478656A (zh) | 图像数据传输方法、设备及协同工作系统 | |
CN117472603A (zh) | 数据传输方法、电子设备及协同工作系统 | |
CN117499445A (zh) | 协同工作系统、方法及电子设备 | |
CN117499446A (zh) | 协同工作系统、方法及电子设备 | |
CN114567871A (zh) | 文件共享的方法、装置、电子设备以及可读存储介质 | |
CN117478682A (zh) | 建立点对点通道的方法、设备及协同工作系统 | |
CN117499780A (zh) | 一种拍照方法、电子设备及协同工作系统 | |
CN117499781A (zh) | 一种拍照方法、物联网设备及协同工作系统 | |
CN116366957B (zh) | 一种虚拟化相机使能的方法、电子设备及协同工作系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |