一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图像获取方法及装置、电子设备、存储介质与流程

2022-07-10 12:44:20 来源:中国专利 TAG:


1.本公开涉及控制技术领域,尤其涉及一种图像获取方法及装置、电子设备、存储介质。


背景技术:

2.随着用户对拍照需求的提高,电子设备中拍照功能也随之提升,例如,相机硬件中传感器cmos的分辨率增大,传感器cmos的感光单元增大和成像软件算法增强等,从而使照片画质也相应提升。
3.目前,很多电子设备中设置有相机应用,当相机应用开启后,相机硬件中传感器会输出一个最大分辨率的图像,以方便用户对图像进行平滑放大操作(zoom)。然后,由电子设备中操作系统进行降采样,重新生成相机应用预览所需的低分辨率图像和拍照所需的不同分辨率的图像。并且,上述最大分辨率的图像还可以方便用户对相机进行平滑放大操作。
4.然而,实际应用中,很多用户可以直接拍照或者录像,并不会对图像进行缩放,此时相机硬件输出最大分辨率的图像会增加功耗和内存等资源的消耗量,降低电子设备的性能,进而降低了用户拍照体验。


技术实现要素:

5.本公开提供一种图像获取方法及装置、电子设备、存储介质,以解决相关技术的不足。
6.根据本公开实施例的第一方面,提供一种图像获取方法,适用于电子设备,所述电子设备设置有相机应用和相机硬件,所述方法包括:
7.当检测到表征启动相机应用的触发操作后,利用所述相机应用提供的初始配置参数配置所述相机硬件,以获取所述相机硬件返回的初始图像;所述初始图像的分辨率与所述初始配置参数对应的初始分辨率相同;
8.获取所述初始图像对应的场景分类和推荐分辨率;
9.当检测到表征拍摄图像的拍摄请求后,根据所述推荐分辨率确定与所述场景分类相匹配的目标分辨率;
10.利用所述目标分辨率配置所述相机硬件,获得所述相机硬件返回的目标图像。
11.可选地,若所述相机应用为电子设备自带的应用,当检测到表征启动相机应用的触发操作后,利用所述相机应用提供的初始配置参数配置所述相机硬件,包括:
12.当检测到表征启动相机应用的触发操作后,启动相机硬件的底层服务;
13.通过与所述相机应用的相机会话,获取所述相机应用发送的预览参数和至少一组拍摄参数;所述预览参数和所述至少一组拍摄参数由所述相机应用在检测到表征启动相机应用的触发操作后进行配置;
14.选择与所述预览参数相匹配的配置参数作为初始配置参数;所述初始配置参数对应初始分辨率;
15.利用所述初始配置参数初始化所述相机硬件,以使所述相机硬件在配置完成后返回分辨率为所述初始分辨率的图像。
16.可选地,检测到表征拍摄图像的拍摄请求之前,所述方法还包括:
17.将所述场景分类和所述推荐分辨率发送给所述相机应用,以使所述相机应用在所述至少一组拍摄参数中选择与所述推荐分辨率相匹配的目标配置参数,所述目标配置参数对应目标分辨率;
18.通过所述相机会话获取拍摄请求,所述拍摄请求由所述相机应用在检测到表征拍摄图像的触发操作后生成且所述拍摄请求中包括所述目标配置参数。
19.可选地,若所述相机应用为第三方应用,当检测到表征启动相机应用的触发操作后,利用所述相机应用提供的初始配置参数配置所述相机硬件,包括:
20.当检测到表征启动相机应用的触发操作后,启动相机硬件的底层服务;
21.通过与所述相机应用的相机会话,获取所述相机应用发送的预览参数和拍摄参数;所述预览参数和所述拍摄参数由所述相机应用在检测到表征启动相机应用的触发操作后进行配置;
22.选择与所述预览参数相匹配的配置参数作为初始配置参数,且所述初始配置参数对应初始分辨率;
23.利用所述初始配置参数初始化所述相机硬件,以使所述相机硬件在配置完成后返回分辨率为所述初始分辨率的图像。
24.可选地,获取所述初始图像对应的场景分类和推荐分辨率,包括:
25.获取所述初始图像的预设参数;所述预设参数包括以下至少一种:解析度、距离和光照度;
26.基于预设的场景分类、推荐分辨率和预设参数的对应关系,根据所述预设参数确定所述初始图像相匹配的场景分类和推荐分辨率。
27.可选地,利用所述目标分辨率配置所述相机硬件,包括:
28.关闭与所述相机硬件之间的通道,以使所述相机硬件停止返回图像;
29.切换与所述相机硬件之间通道的分辨率为目标分辨率,以将所述相机硬件的分辨率配置到所述目标分辨率;
30.开启与所述相机硬件之间的通道,以使所述相机硬件返回分辨率为所述目标分辨率的图像。
31.可选地,若所述相机应用为第三方应用,获得所述相机硬件返回的目标图像之后,还包括:
32.判断所述目标分辨率是否小于或者等于所述相机应用提供的初始分辨率;
33.若所述目标分辨率等于所述相机应用提供的初始分辨率,将获取的目标图像发送给所述相机应用;
34.若所述目标分辨率小于所述相机应用提供的初始分辨率,则对所述目标图像进行放大处理,并将放大处理后的目标图像发送给所述相机应用。
35.根据本公开实施例的第二方面,提供一种图像获取装置,适用于电子设备,所述电子设备设置有相机应用和相机硬件,所述装置包括:
36.初始图像获取模块,用于当检测到表征启动相机应用的触发操作后,利用所述相
机应用提供的初始配置参数配置所述相机硬件,以获取所述相机硬件返回的初始图像;所述初始图像的分辨率与所述初始配置参数对应的初始分辨率相同;
37.场景分类获取模块,用于获取所述初始图像对应的场景分类和推荐分辨率;
38.目标分辨率获取模块,用于当检测到表征拍摄图像的拍摄请求后,根据所述推荐分辨率确定与所述场景分类相匹配的目标分辨率;
39.目标图像获取模块,用于利用所述目标分辨率配置所述相机硬件,获得所述相机硬件返回的目标图像。
40.可选地,若所述相机应用为电子设备自带的应用,所述初始图像获取模块包括:
41.底层服务启动单元,用于当检测到表征启动相机应用的触发操作后,启动相机硬件的底层服务;
42.拍摄参数获取单元,用于通过与所述相机应用的相机会话,获取所述相机应用发送的预览参数和至少一组拍摄参数;所述预览参数和所述至少一组拍摄参数由所述相机应用在检测到表征启动相机应用的触发操作后进行配置;
43.初始参数获取单元,用于选择与所述预览参数相匹配的配置参数作为初始配置参数;所述初始配置参数对应初始分辨率;
44.初始图像获取单元,用于利用所述初始配置参数初始化所述相机硬件,以使所述相机硬件在配置完成后返回分辨率为所述初始分辨率的图像。
45.可选地,所述装置还包括:
46.场景分类发送模块,用于将所述场景分类和所述推荐分辨率发送给所述相机应用,以使所述相机应用在所述至少一组拍摄参数中选择与所述推荐分辨率相匹配的目标配置参数,所述目标配置参数对应目标分辨率;
47.拍摄请求获取模块,用于通过所述相机会话获取拍摄请求,所述拍摄请求由所述相机应用在检测到表征拍摄图像的触发操作后生成且所述拍摄请求中包括所述目标配置参数。
48.可选地,若所述相机应用为第三方应用,所述初始图像获取模块包括:
49.底层服务启动单元,用于当检测到表征启动相机应用的触发操作后,启动相机硬件的底层服务;
50.拍摄参数获取单元,用于通过与所述相机应用的相机会话,获取所述相机应用发送的预览参数和拍摄参数;所述预览参数和所述拍摄参数由所述相机应用在检测到表征启动相机应用的触发操作后进行配置;
51.初始参数获取单元,用于选择与所述预览参数相匹配的配置参数作为初始配置参数,且所述初始配置参数对应初始分辨率;
52.初始图像获取单元,用于利用所述初始配置参数初始化所述相机硬件,以使所述相机硬件在配置完成后返回分辨率为所述初始分辨率的图像。
53.可选地,所述场景分类获取模块包括:
54.预设参数获取单元,用于获取所述初始图像的预设参数;所述预设参数包括以下至少一种:解析度、距离和光照度;
55.场景分类获取单元,用于基于预设的场景分类、推荐分辨率和预设参数的对应关系,根据所述预设参数确定所述初始图像相匹配的场景分类和推荐分辨率。
56.可选地,所述目标图像获取模块包括:
57.通道关闭单元,用于关闭与所述相机硬件之间的通道,以使所述相机硬件停止返回图像;
58.分辨率切换单元,用于切换与所述相机硬件之间通道的分辨率为目标分辨率,以将所述相机硬件的分辨率配置到所述目标分辨率;
59.通道开启单元,用于开启与所述相机硬件之间的通道,以使所述相机硬件返回分辨率为所述目标分辨率的图像。
60.可选地,若所述相机应用为第三方应用,所述装置还包括:
61.分辨率判断模块,用于判断所述目标分辨率是否小于或者等于所述相机应用提供的初始分辨率;
62.分辨率判断模块,用于在所述目标分辨率等于所述相机应用提供的初始分辨率时,将获取的目标图像发送给所述相机应用;
63.分辨率判断模块,还用于在所述目标分辨率小于所述相机应用提供的初始分辨率,对所述目标图像进行放大处理,并将放大处理后的目标图像发送给所述相机应用。
64.根据本公开实施例的第三方面,提供一种电子设备,包括:
65.相机硬件;
66.处理器;
67.用于存储所述处理器可执行的计算机程序的存储器;
68.其中,所述处理器被配置为执行所述存储器中的计算机程序,以实现如上述的方法。
69.根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述存储介质中的可执行的计算机程序由处理器执行时,能够实现如上述的方法。
70.本公开的实施例提供的技术方案可以包括以下有益效果:
71.由上述实施例可知,本公开实施例可以相机硬件启动时,利用相机应用提供的初始配置参数配置相机硬件,从而获得初始分辨率的初始图像;然后获取初始图像对应的场景分类和推荐分辨率,在拍摄时可以确定出相机硬件的初始分辨率和推荐分辨率中一种作为目标分辨率,获取与场景分类对应的目标分辨率的目标图像。这样,本实施例中可以不输出最大分辨率的图像,从而可以降低电子设备的功耗,提升电子设备的待机时长或者有利于降低电池容量;并且,减小图像的大小可以降低内存消耗和存储空间,有利于提升拍摄时的流畅度,提升用户体验。
72.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
73.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
74.图1是根据一示例性实施例示出的一种图像获取方法的流程图。
75.图2是根据一示例性实施例示出的一种应用场景的流程。
76.图3是根据一示例性实施例示出的另一种应用场景的流程。
77.图4是根据一示例性实施例示出的一种图像获取装置的框图。
78.图5是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
79.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性所描述的实施例并不代表与本公开相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置例子。
80.为解决上述技术问题,本公开实施例提供了一种图像获取方法,图1是根据一示例性实施例示出的一种图像获取方法的流程图,可以应用于电子设备,电子设备中可以设置有相机应用和相机硬件。电子设备中还可以设有操作系统,并且基于该操作系统安装有相机应用。其中操作系统可以包括安卓(android)操作系统,且相机应用包括操作系统自带的相机应用或者第三方相机应用。
81.参见图1,一种图像获取方法,包括步骤11~步骤14,其中:
82.在步骤11中,当检测到表征启动相机应用的触发操作后,利用所述相机应用提供的初始配置参数配置所述相机硬件,以获取所述相机硬件返回的初始图像。
83.本实施例中,当用户有拍摄需求时可以触发相机应用。相机应用检测到表示开启相机应用的触发操作时可以配置预览参数和拍摄参数,并生成开启请求;该开启请求中包括相机的初始配置参数,如尺寸、明亮度、分辨率、fov等参数。然后,相机应用可以与android操作系统的系统框架层(frame)建立相机会话,通过该相机会话将开启请求发送给系统框架层。
84.在检测到上述开启请求后,系统框架层可以启动相机硬件的底层服务,为方便描述后续实施例将底层服务归结到系统框架层来描述。系统框架层可以获取到开启请求,存储开启请求内的预览参数和拍摄参数。实际应用中,系统框架层已知相机硬件的性能参数,根据预览参数和性能参数可以确定一个初始配置参数,或者将预览参数作为初始配置参数,并将开启请求存储到请求队列中。
85.在相机硬件上电开机之后,相机硬件可以查询请求队列获得开启请求;并按照开启请求中的初始配置参数进行配置。在配置成功后,相机硬件可以采集并输出与该初始配置参数对应初始分辨率的初始图像。
86.实际应用中,系统框架层可以将初始图像处理为预览图像,并发送给相机应用。这样,电子设备的相机应用可以显示上述预览图像,这样用户在预览图像的过程中可以获取到比较合适的取景对象或者拍摄时机。
87.需要说明的是,实际应用中上述初始图像采用图像流的方式实现,为方便理解,仅以其他的一帧图像来描述各实施例。
88.在步骤12中,获取所述初始图像对应的场景分类和推荐分辨率。
89.实际应用中,电子设备中的相机应用是按照用户有缩放(zoom)图像的需求来设置的,因此相机硬件输出的初始图像为最大分辨率的图像,或者说相机应用所需最大分辨率的图像。实际应用中,很多用户或者很多场景并不会缩放图像,通常是直接进行拍照或者录像,因此相机硬件所采集的图像与相机应用所需要的图像的分辨率可能存在不匹配的情
况。
90.为此,本实施例中,系统框架层可以在预览过程中获取初始图像对应场景分类的推荐分辨率。或者说,系统框架层可以为不同场景选择不同的相机分辨率,以尽可能的减少相机硬件输出最大分辨率的图像。
91.在一示例中,系统框架层可以获取初始图像的预设参数,预设参数包括以下至少一种:解析度、距离和光照度。基于预设的场景分类、推荐分辨率和预设参数的对应关系,系统框架层可以获取与场景分类相匹配的推荐分辨率。这样,本实施例中通过分步骤获取推荐分辨率,可以提升获取推荐分辨率的准确度。
92.在一示例中,系统框架层可以采用以下示例获得场景分类:在显示初始图像的过程中,系统框架层可以获取场景分类模型。该场景分类模型可以预先存储在电子设备之内,可以用于获取场景分类,如白墙、花朵、沙漠、大海等类型。该场景分类模型可以包括但不限于以下模型:imagenet、alexnet、zfnet、inception v1、vgg-19、prelu-net、inception v3、resnet 152、inception resnet v2、densenet-264、resnext-101 64
×
4、polynet、dpn-131、mobilenetv2、shufflenet v2 2
×
、efficientnet等。可理解的是,在能够获取到初始图像的场景分类的情况下,相关模型落入本公开的保护范围。
93.系统框架层可以将初始图像输入到场景分类模型。场景分类模型可以处理上述初始图像并获得初始图像对应的场景分类,如白墙、花朵、沙漠、大海等类型。
94.在另一示例中,系统框架层还可以采用以下示例获得场景分类:系统框架层可以获取初始图像的图像特征向量。例如,电子设备内可以获取初始图像的特征点(如角点、拐点等),然后再根据特征点提取出初始图像的特征从而获得特征向量。系统框架层可以获取图像特征向量和预设特征向量的相似度。其中,计算两个特征向量的相似度可以采用余弦公式计算,在余弦值越大时两个特征越相似。其中,预设特征向量可以预先存储到电子设备内,且每个预设特征向量代表一种类型的预设场景。在预设特征向量足够多(如数十万、数百万,甚至更多的)的情况下,每个初始图像总会匹配到一种相同或者相近的预设场景。系统框架层可以将相似度最大的预设特征向量对应的场景分类作为初始图像的场景分类。
95.实际应用中,每个用户有一定的活动范围,或者说,每个用户的拍摄爱好并不会在短时间内发生明显变化,基于此,系统框架层可以在每次拍摄后,选择用户采用缩放操作后所拍摄的图像,然后从上述图像中提供出图像特征向量作为预设特征向量。这样,本示例中可以更新预设特征向量的数据库,以方便提高后续过程中获取场景分类的准确度。
96.本实施例中,电子设备内可以存储预设的场景分类、推荐分辨率和预设参数的对应关系。该对应关系可以采用多个数据表的方式实现,每一个数据表可以是相机硬件在不同预设参数下所创建的场景分类和分辨率的对应关系。该对应关系也可以采用一个数据表实现,如列方向对应预设参数,行方向对应场景分类,中间部分对应推荐分辨率。这样,在确定初始图像的预设参数和场景分类的情况下,可以获取该场景分类所匹配的推荐分辨率。例如,在场景分类是白墙的情况下,因白墙的纹理比较少,此时初始图像相匹配的推荐分辨率可以比较低;又如,在场景分类是花朵的情况下,因花朵的色彩和纹理比较丰富,此时初始图像相匹配的推荐分辨率可以提高。
97.实际应用中,考虑到相机应用可以包括表征系统自带的相机应用(如小米相机),以下称之为第一相机应用和第三方提供的相机应用,以下称之为第二相机应用。
98.对于第一相机应用而方,操作系统提供商可以根据需求进行预先配置至少一组(如n组,可根据相机性能进行调整)组分辨率的配置数据。因此,对于第一相机应用,系统框架层可以在获取到场景分类后发送给第一相机应用。第一相机应用可以存储预设的场景分类、推荐分辨率和预设参数的对应关系,在接收到场景分类后,由第一相机应用获取推荐分辨率,或者在接收到推荐分辨率后,由第一相机应用对推荐分辨率进行校正。或者,在接受到场景分类后,第一相机应用可以根据场景分类获得推荐分辨率。
99.也就是说,对于第一相机应用,系统框架层可以获得场景分类,并根据场景分类获得推荐分辨率;第一相机应用在获取推荐分辨率之后,可以从至少一组中选择一组相同或者相近的分辨率作为推荐分辨率,例如,推荐分辨率为2.1k,而至少一组分辨率中2k分辨率与之接近,此时可以将2k分辨率作为校正后的推荐分辨率。
100.对于第二相机应用,无法预先设置配置参数,此时系统框架层可以直接根据初始图像的预设参数获得场景分类和推荐分辨率。
101.在步骤13中,当检测到表征拍摄图像的拍摄请求后,根据所述推荐分辨率确定与所述场景分类相匹配的目标分辨率。
102.本实施例中,在预览过程中,相机应用可以实时地或者周期性的检测用户的触发操作,上述触发操作可以包括缩放操作、拍照操作或者录像操作等。当相机应用检测到表征拍摄图像的触发操作时,相机应用可以响应于上述触发操作生成拍摄请求,并发送给系统框架层。
103.系统框架层在接收到上述拍摄请求时,可以判断上述拍摄请求是拍照请求或者录像请求,录像请求可以简化理解为多个拍照请求的组合。为方便描述,本示例中以拍摄请求来进行说明,不再区别拍照或者录像,并且将相机硬件返回的拍照流和视频流统一为图像。
104.系统框架层可以获得推荐分辨率,如从第一相机应用发送的拍摄请求中获取或者根据步骤12计算得到。然后,系统框架层可以对比推荐分辨率与相机的当前分辨率即初始分辨率。当推荐分辨率与初始分辨率不一致时,系统框架层可以将推荐分辨率作为目标分辨率。当推荐分辨率与初始分辨率相同时,系统框架层可以将初始分辨率作为目标分辨率。
105.在步骤14中,利用所述目标分辨率配置所述相机硬件,获得所述相机硬件返回的目标图像。
106.本实施例中,当目标分辨率与初始分辨率一致时,系统框架层实际上已经对相机硬件配置完成,此时可以不再进行重复配置,从而可以输出目标图像的速度。
107.本实施例中,当目标分辨率与初始分辨率不同时,系统框架层可以生成与目标分辨率相匹配的配置请求。其中,配置请求中包含系统框架层根据目标分辨率转换成的相机配置参数,例如fov、尺寸等。系统框架层可以关闭与相机硬件的通道,以相机硬件停止返回图像;并将配置请求发送请求队列中,相机硬件读取上述配置请求进行配置。在配置成功后,系统框架层可以开启与相机硬件之间的通道,获取相机硬件返回的目标分辨率的目标图像。
108.在一实施例中,由于第二相机应用仍然以要求最大分辨率进行拍摄,当检测到拍摄请求时,系统框架层会提供推荐分辨率来配置相机,并让相机输出目标分辨率的图像。当目标分辨率小于(第二相机应用所需要的)初始分辨率时,此时系统框架层可以对图像进行放大处理,如upscale方式,对图像像素通过插值放大的处理,从而使处理后的目标图像满
足第二相机应用对应分辨率的要求。当推荐分辨率等于初始分辨率时,直接将目标图像反馈给第二相机应用即可。
109.至此,本公开实施例可以相机硬件启动时,利用相机应用提供的初始配置参数配置相机硬件,从而获得初始分辨率的初始图像;然后获取初始图像对应的场景分类和推荐分辨率,在拍摄时可以确定出相机硬件的初始分辨率和推荐分辨率中一种作为目标分辨率,获取与场景分类对应的目标分辨率的目标图像。这样,本实施例中可以不输出最大分辨率的图像,从而可以降低电子设备的功耗,提升电子设备的待机时长或者有利于降低电池容量;并且,减小图像的大小可以降低内存消耗和存储空间,有利于提升拍摄时的流畅度,提升用户体验。
110.下面以第一相机应用如小米相机应用为例来描述本公开提供的一种图像获取方法,参见图2,包括:
111.本实施例中,根据上述各实施例提供的一种图像获取方法,技术人员或者用户可以对小米相机应用进行配置,例如配置预览流、和/或者1-n路拍照流/录像流。在配置完成后,小米相机应用可以保存相应的配置参数,即可以形成场景分类和分辨率的对应关系。
112.本实施例中,当用户有拍摄需求时,用户可以触发操作小米相机应用。小米相机应用检测到表征开启相机应用的触发操作时,可以配置预览流、1-n路拍照流/录像流,然后与系统框架层创建相机会话。其中,1-n是指小米相机应用所需要的不同分辨率的拍摄流/图像流。同时,对于系统框架层中的小米相机服务来说,当小米相机应用检测到触发操作时,小米相机服务启动其中的底层服务。
113.本实施例中,小米相机服务与小米相机应用创建相机会话后,可以保存预览流、拍照流和录像流的配置参数。然后,小米相机服务可以上电启动相机硬件,在启动相机硬件后,选择与预览流相同或者相近的相机硬件参数。其中配置参数与相机硬件参数相近包括以下至少一种:各个参数的误差最小,所有参数的误差的平均值最小,指定参数(如分辨率)的误差最小。之后,小米相机服务可以利用相机硬件参数配置相机硬件,以对相机硬件初始化并启动通道pipeline。
114.实际应用中,小米相机服务生成开启请求,该开启请求包括配置参数,并发送到请求队列中。相机硬件在上电初始化后,可以从请求队列中读取开启请求,并从开启请求中获得配置参数进行配置,从而完成相机分辨率配置。之后,相机硬件可以向小米相机服务返回预览流。小米相机服务获取到预览流后开始预览,此时用户可以通过小米相机应用观看到预览图像。
115.本实施例中,小米相机服务在获取到预览流后,可以调用预先设置的场景分类模型即启动场景检测服务。该场景检测服务可以获得预览图像对应的场景分类,并将该场景分类上报给小米相机应用。
116.小米相机应用可以更新场景分类,将当前场景从默认状态下更新到所上报的场景分类。之后,小米相机应用可以检测是否检测到表征拍摄或者录像的触发操作,如果未检测到,则继续进行场景更新。如果检测到表征拍摄或者录像的触发操作,小米相机应用可以选择场景分类对应的拍照流,即小米相机应用可以获得场景分类对应的推荐分辨率,并生成拍摄请求发送给小米相机服务。
117.需要说明的是,小米相机应用可以获得场景分类对应的目标分辨率可以包括以下
情况:(1)小米相机服务获取到场景分类后,可以基于场景分类和分辨率的对应关系,获得目标分辨率。(2)小米相机应用获取到场景分类后,可以预设的场景分类、推荐分辨率和预设参数的对应关系,获得推荐分辨率。
118.小米相机服务在获取到拍摄请求后,可以判断是拍照请求还是录像请求。然后,判断初始分辨率与推荐分辨率是否一致(相同或者相近)。如果不一致,此时推荐分辨率作为目标分辨率,并利用目标分辨率配置相机硬件。例如,关闭当前的pipeline;在切换pileline后利用目标分辨率更新相机硬件,获得相机硬件反馈的图像流(拍照流或者录像流),再由拍摄或者录像pipeline对图像流进行处理,获得jpeg/heif编码/yuv等格式的图像流,最后反馈给小米相机应用。如果一致,此时初始分辨率作为目标分辨率,无需重复配置。系统框架层可以直接获得相机硬件反馈的图像流(拍照流或者录像流),再由拍摄或者录像pipeline对图像流进行处理,获得jpeg/heif编码/yuv等格式的图像(流),并反馈给小米相机应用显示,或者保存照片或者视频。
119.在保存完成后,小米相机应用可以返回到预览状态,重新执行上述过程。或者检测到表征退出相机的触发操作,则向小米相机服务发送退回请求,并关闭。小米相机服务关闭当前pipeline,释放相应的资源并关闭相机硬件,此时相机下电关闭,小米相机服务也关闭。
120.下面以第三方相机应用为例来描述本公开提供的一种图像获取方法,参见图3,包括:
121.本实施例中,当用户有拍摄需求时,用户可以触发操作第三方相机应用。第三方相机应用检测到表征开启相机的触发操作时,可以配置预览流、拍照流/录像流,然后创建相机会话。同时,对于系统框架层中的系统相机服务来说,当三方相机应用检测到触发操作时,系统相机服务启动其中的底层服务。
122.本实施例中,系统相机服务与第三方相机应用创建相机会话后,可以保存预览流、拍照流和录像流的配置参数。然后,系统相机服务可以启动相机硬件,选择与预览流相同或者相近的相机硬件参数。其中配置参数与相机硬件参数相近包括以下至少一种:各个参数的误差最小,所有参数的误差的平均值最小,指定参数(如分辨率)的误差最小。之后,系统相机服务可以设置相机硬件参数,以对相机初始化并启动通道pipeline。或者说,系统相机服务生成开启请求,该开启请求包括配置参数。并发送到请求队列中。
123.相机硬件在上电初始化后,可以从请求队列中读取开启请求,并从开启请求中获得配置参数进行配置,从而完成相机分辨率配置。之后,相机硬件可以采集初始图像并向系统相机服务返回预览流。系统相机服务获取到预览流后开始预览,此时用户可以在第三方相机应用内观看到预览图像。
124.本实施例中,系统相机服务在获取到预览流后,可以调用预先设置的场景分类模型,即启动场景检测服务。该场景检测服务可以获得初始图像对应的预设参数。然后场景检测服务可基于预设的场景分类、推荐分辨率和预设参数的对应关系,获得预设参数对应的场景分类和推荐分辨率。
125.本实施例中,第三方相机应用可以检测是否检测到表征拍摄或者录像的触发操作,如果未检测到,则继续进行检测。如果检测到表征拍摄或者录像的触发操作,第三方相机应用可以生成拍摄请求发送给系统相机服务。
126.系统相机服务在获取到拍摄请求后,可以判断是拍照请求还是录像请求。然后,系统相机服务可以根据上述计算出的推荐分辨率来判断初始分辨率与推荐分辨率是否一致(相同或者相近)。当一致时,可以将初始分辨率作为目标分辨率,当不一致时可以将推荐分辨率作为目标分辨率。如果不一致,此时推荐分辨率作为目标分辨率,并利用目标分辨率配置相机硬件。例如,关闭当前的pipeline;在切换pileline后利用目标分辨率配置相机硬件,获得相机硬件反馈的图像。
127.系统相机服务可以判断图像是否需要放大处理(upscale),如果需要则通过系统框架层中的isp进行放大处理,之后进行拍照/录像流程处理;如果不需要则进行拍照/录像流程处理,获得jpeg/heif编码/yuv等格式的图像流,并反馈给第三方相机应用。如果一致,则系统相机服务可以判断图像流是否需要放大处理,如果需要则通过系统框架层中的isp进行放大处理,之后进行拍照/录像流程处理;如果不需要则进行拍照/录像流程处理,获得jpeg/heif编码/yuv等格式的图像流,并反馈给第三方相机应用。第三方相机应用保存照片或者视频。
128.在保存完成后,第三方相机应用可以返回到预览状态,重新执行上述过程。或者检测到表征退出相机的触发操作,则向系统相机服务发送退回请求,并关闭。系统相机服务关闭当前pipeline,释放相应的资源并关闭相机硬件,此时相机下电关闭,系统相机服务也关闭。
129.在图1所示的一种图像获取方法的基础上,本公开实施例还提供了一种图像获取装置,适用于电子设备,所述电子设备设置有相机应用和相机硬件,参见图4,所述装置包括:
130.初始图像获取模块41,用于当检测到表征启动相机应用的触发操作后,利用所述相机应用提供的初始配置参数配置所述相机硬件,以获取所述相机硬件返回的初始图像;所述初始图像的分辨率与所述初始配置参数对应的初始分辨率相同;
131.场景分类获取模块42,用于获取所述初始图像对应的场景分类和推荐分辨率;
132.目标分辨率获取模块43,用于当检测到表征拍摄图像的拍摄请求后,根据所述推荐分辨率确定与所述场景分类相匹配的目标分辨率;
133.目标图像获取模块44,用于利用所述目标分辨率配置所述相机硬件,获得所述相机硬件返回的目标图像。
134.在一实施例中,若所述相机应用为电子设备自带的应用,所述初始图像获取模块包括:
135.底层服务启动单元,用于当检测到表征启动相机应用的触发操作后,启动相机硬件的底层服务;
136.拍摄参数获取单元,用于通过与所述相机应用的相机会话,获取所述相机应用发送的预览参数和至少一组拍摄参数;所述预览参数和所述至少一组拍摄参数由所述相机应用在检测到表征启动相机应用的触发操作后进行配置;
137.初始参数获取单元,用于选择与所述预览参数相匹配的配置参数作为初始配置参数;所述初始配置参数对应初始分辨率;
138.初始图像获取单元,用于利用所述初始配置参数初始化所述相机硬件,以使所述相机硬件在配置完成后返回分辨率为所述初始分辨率的图像。
139.在一实施例中,所述装置还包括:
140.场景分类发送模块,用于将所述场景分类和所述推荐分辨率发送给所述相机应用,以使所述相机应用在所述至少一组拍摄参数中选择与所述推荐分辨率相匹配的目标配置参数,所述目标配置参数对应目标分辨率;
141.拍摄请求获取模块,用于通过所述相机会话获取拍摄请求,所述拍摄请求由所述相机应用在检测到表征拍摄图像的触发操作后生成且所述拍摄请求中包括所述目标配置参数。
142.在一实施例中,若所述相机应用为第三方应用,所述初始图像获取模块包括:
143.底层服务启动单元,用于当检测到表征启动相机应用的触发操作后,启动相机硬件的底层服务;
144.拍摄参数获取单元,用于通过与所述相机应用的相机会话,获取所述相机应用发送的预览参数和拍摄参数;所述预览参数和所述拍摄参数由所述相机应用在检测到表征启动相机应用的触发操作后进行配置;
145.初始参数获取单元,用于选择与所述预览参数相匹配的配置参数作为初始配置参数,且所述初始配置参数对应初始分辨率;
146.初始图像获取单元,用于利用所述初始配置参数初始化所述相机硬件,以使所述相机硬件在配置完成后返回分辨率为所述初始分辨率的图像。
147.在一实施例中,所述场景分类获取模块包括:
148.预设参数获取单元,用于获取所述初始图像的预设参数;所述预设参数包括以下至少一种:解析度、距离和光照度;
149.场景分类获取单元,用于基于预设的场景分类、推荐分辨率和预设参数的对应关系,根据所述预设参数确定所述初始图像相匹配的场景分类和推荐分辨率。
150.在一实施例中,所述目标图像获取模块包括:
151.通道关闭单元,用于关闭与所述相机硬件之间的通道,以使所述相机硬件停止返回图像;
152.分辨率切换单元,用于切换与所述相机硬件之间通道的分辨率为目标分辨率,以将所述相机硬件的分辨率配置到所述目标分辨率;
153.通道开启单元,用于开启与所述相机硬件之间的通道,以使所述相机硬件返回分辨率为所述目标分辨率的图像。
154.在一实施例中,若所述相机应用为第三方应用,所述装置还包括:
155.分辨率判断模块,用于判断所述目标分辨率是否小于或者等于所述相机应用提供的初始分辨率;
156.分辨率判断模块,用于在所述目标分辨率等于所述相机应用提供的初始分辨率时,将获取的目标图像发送给所述相机应用;
157.分辨率判断模块,还用于在所述目标分辨率小于所述相机应用提供的初始分辨率,对所述目标图像进行放大处理,并将放大处理后的目标图像发送给所述相机应用。
158.可理解的是,本公开实施例提供的装置与上述图1所示方法相对应,具体内容可以参考方法各实施例的内容,在此不再赘述。
159.图5是根据一示例性实施例示出的一种电子设备的框图。例如,电子设备500可以
是智能手机,计算机,数字广播终端,平板设备,医疗设备,健身设备,个人数字助理等。
160.参照图5,电子设备500可以包括以下一个或多个组件:处理组件502,存储器504,电源组件506,多媒体组件505,音频组件510,输入/输出(i/o)的接口512,传感器组件514,通信组件516,以及图像采集组件515。
161.处理组件502通常控制电子设备500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件502可以包括一个或多个处理器520来执行计算机程序。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理组件502可以包括多媒体模块,以方便多媒体组件505和处理组件502之间的交互。
162.存储器504被配置为存储各种类型的数据以支持在电子设备500的操作。这些数据的示例包括用于在电子设备500上操作的任何应用程序或方法的计算机程序,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
163.电源组件506为电子设备500的各种组件提供电力。电源组件506可以包括电源管理系统,一个或多个电源,及其他与为电子设备500生成、管理和分配电力相关联的组件。电源组件506可以包括电源芯片,控制器可以电源芯片通信,从而控制电源芯片导通或者断开开关器件,使电池向主板电路供电或者不供电。
164.多媒体组件505包括在电子设备500和目标对象之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示屏(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自目标对象的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
165.音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(mic),当电子设备500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。
166.i/o接口512为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。
167.传感器组件514包括一个或多个传感器,用于为电子设备500提供各个方面的状态评估。例如,传感器组件514可以检测到电子设备500的打开/关闭状态,组件的相对定位,例如组件为电子设备500的显示屏和小键盘,传感器组件514还可以检测电子设备500或一个组件的位置改变,目标对象与电子设备500接触的存在或不存在,电子设备500方位或加速/减速和电子设备500的温度变化。本示例中,传感器组件514可以包括磁力传感器、陀螺仪和磁场传感器,其中磁场传感器包括以下至少一种:霍尔传感器、薄膜磁致电阻传感器、磁性液体加速度传感器。
168.通信组件516被配置为便于电子设备500和其他设备之间有线或无线方式的通信。电子设备500可以接入基于通信标准的无线网络,如wifi,2g、3g、4g、5g,或它们的组合。在
一个示例性实施例中,通信组件516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件516还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。在示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现。
169.在示例性实施例中,还提供了一种包括可执行的计算机程序的非临时性可读存储介质,例如包括指令的存储器504,上述可执行的计算机程序可由处理器执行。其中,可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
170.本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献