掌桥专利:专业的专利平台
掌桥专利
首页

基于Fuse文件系统的图片处理方法、系统及设备

文献发布时间:2023-06-19 16:06:26



技术领域

本发明涉及图片处理领域,特别涉及一种基于Fuse文件系统的图片处理方法、系统、设备及存储介质。

背景技术

随着人工智能技术的不断发展,越来越多的场景使用了人工智能相关技术。计算机视觉领域也不例外,计算机视觉通过和深度学习实现了很多人工智能技术,如图像识别,图像分类,图像检测等等。

目前移动端设备一般在保存图片后,通过应用程序来对保存的图片进行进一步的处理,这给应用程序的开发造成了很大的负担,也影响。

发明内容

本发明要解决的技术问题是为了克服现有技术中移动端设备在保存图片后,通过应用程序对图片进行进一步处理从而给应用程序的开发造成很大的负担缺陷,提供一种基于Fuse(Filesystem in Userspace,用户空间文件系统)文件系统的图片处理方法、系统、设备及存储介质。

本发明是通过下述技术方案来解决上述技术问题:

本发明提供了一种基于Fuse文件系统的图片处理方法,所述Fuse文件系统包括用户空间及内核空间,所述内核空间包括VFS(virtual File System,虚拟文件系统),所述图片处理方法包括以下步骤:

在所述用户空间配置图片处理模块;

响应于接收到图片保存指令,VFS将所述图片保存指令发送至图片管理进程;

所述图片管理进程调用所述图片处理模块,并将待处理图片输入至所述图片处理模块以获取图片处理信息;

存储所述图片处理信息。

较佳地,所述用户空间包括所述图片管理进程及第一通信接口,所述内核空间包括第二通信接口,所述VFS将所述图片保存指令发送至图片管理进程的步骤包括:

所述VFS将所述图片保存指令发送至Fuse驱动模块;

所述Fuse驱动模块通过所述第二通信接口将所述图片保存指令发送至所述第一通信接口;

所述图片管理进程接收所述图片保存指令。

较佳地,所述图片管理进程包括FuseDaemon(Fuse文件系统中,位于用户空间的用于控制文件保存权限的进程)进程。

较佳地,所述存储所述图片处理信息的步骤包括:

通过所述第一通信接口将所述图片处理信息发送至所述第二通信接口;

将所述图片处理信息存储至底层文件系统。

较佳地,所述图片处理模块包括图片分类算法,所述图片处理信息包括图片分类信息。

较佳地,所述图片分类算法为基于Tensorflow Lite(一种深度学习框架)模型训练的算法。

较佳地,将所述图片处理信息存储至底层文件系统的步骤包括:

若底层文件系统中存在与所述图片分类信息对应的路径,则将所述待处理图片存储至对应的路径中;

若所述底层文件系统中不存在与所述图片分类信息对应的路径,则生成对应的路径,并将所述待处理图片存储至对应的路径中。

较佳地,所述将所述待处理图片存储至对应的路径中的步骤后还包括:

获取目标图片;

根据所述目标图片对应的路径获取图片分类信息。

本发明还提供了一种基于Fuse文件系统的图片处理系统,所述Fuse文件系统包括用户空间及内核空间,所述内核空间包括VFS,所述图片处理系统包括:配置模块、指令发送模块、图片处理模块及信息存储模块;

所述配置模块用于在所述用户空间配置图片处理模块;

所述指令发送模块用于响应于接收到图片保存指令,所述VFS将所述图片保存指令发送至图片管理进程;

所述图片处理模块用于通过所述图片管理进程调用所述图片处理模块,并将待处理图片输入至所述图片处理模块以获取图片处理信息;

所述信息存储模块用于存储所述图片处理信息。

本发明还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的基于Fuse文件系统的图片处理方法。

本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于Fuse文件系统的图片处理方法。

本发明的积极进步效果在于:本发明通过搭载Fuse文件系统,在Fuse文件系统的用户空间配置图片处理模块,在接收到图片保存指令时,保存图片的同时可以通过图片管理进程调用图片处理模块来获取图片处理信息,通过存储图片处理信息,可以使应用程序在需要时直接使用图片处理信息,不需要在应用程序中开发图片处理的功能,降低了应用程序的开发压力,也可以在使用应用程序时,有效降低应用的性能消耗和内存占用。

附图说明

图1为本发明实施例1中基于Fuse文件系统的图片处理方法的流程图。

图2为本发明实施例1中步骤102的具体实施方式的流程图。

图3为本发明实施例1中步骤104的具体实施方式的流程图。

图4为本发明实施例1中获取目标图片的图片分类信息的流程图。

图5为本发明实施例1中第一图片保存流程图。

图6为本发明实施例1中第二图片保存流程图。

图7为本发明实施例2中基于Fuse文件系统的图片处理方法的模块示意图。

图8为本发明实施例3中电子设备的模块示意图。

具体实施方式

为了便于理解,下面先对实施例中常出现的术语进行解释:

【包括的定义】如这里所使用的术语“具有”、“可以具有”、“包括”或“可以包括”指示本公开的相应功能、操作、元件等的存在,并且不限制其它的一个或多个功能、操作、元件等的存在。此外应当理解到,如这里所使用的术语“包括”或“具有”是指示在说明书中所描述的特点、数字、步骤、操作、元件、部件或其组合的存在,而不排除一个或多个其它特点、数字、步骤、操作、元件、部件或其组合的存在或增加。

【和/或的定义】如这里所使用的术语“A或B”、“A和/或B的至少之一”或“A和/或B的一个或多个”包括与其一起列举的单词的任意和所有组合。例如,“A或B”、“A和B的至少之一”或“A或B的至少之一”意味着(1)包括至少一个A,(2)包括至少一个B,或(3)包括至少一个A和至少一个B两者。

【第一、第二的定义】本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。例如,可以将第一元件称为第二元件,而没脱离本公开的范围,类似地,可以将第二元件称为第一元件。

【连接的定义】将理解到,当将元件(例如,第一元件)“连接到”或“(操作性地或通信性地)耦接到”另一元件(例如,第二元件)时,可以将所述元件直接连接或耦接到另一元件,并且在所述元件与另一元件之间可以有中间元件(例如,第三元件)。相反,将理解到,当将元件(例如,第一元件)“直接连接到”或“直接耦接到”另一元件(例如,第二元件)时,在所述元件与另一元件之间没有中间元件(例如,第三元件)。

【配置的含义】如这里所使用的表述“配置为(或设置)”根据情况可以用“适合于”、“具有能力”、“设计为”、“适应为”、“形成为”或“能够”来代替。术语“配置为(设置)”不是必然意味着“专门被设计为”在硬件级别。相反,表述“装置配置为…”可以意味着装置在某些情况中“能够”随着其他设备或部件一起。例如,“配置为(设置)执行A、B和C的处理器”可以是用于执行相应操作的例如嵌入式处理器的专用处理器,或者通过运行存储在存储设备中的一个或多个软件程序能够执行相应操作的例如中央处理单元(CPU)或应用处理器(AP)的通用处理器。

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

本实施例提供了一种基于Fuse文件系统的图片处理方法,Fuse文件系统包括用户空间及内核空间,内核空间与内核中VFS(Virtua1 Fi1e System,虚拟文件系统)层对接,用户态基本逻辑处理库与用户空间对接,如图1所示,该图片处理方法包括以下步骤:

步骤101、在用户空间配置图片处理模块。

在一些具体的实施方式中,图片处理模块包括图片分类算法,如基于TensorflowLite模型训练的算法,具体而言,获取若干图片样本,对于每一图片样本进行标记以获取图片分类信息,将这些图片样本作为Tensorflow Lite模型的输入,对应的图片分类信息作为输出来进行模型训练,从而得到图片分类算法。

步骤102、响应于接收到图片保存指令,VFS将图片保存指令发送至图片管理进程。

在接收到图片保存指令时(如在下载或拷贝图片的过程中),进程从用户空间进入到内核空间,通过VFS将图片保存指令发送至图片管理进程。其中,图片管理进程既可以是位于用户空间的图片管理进程也可以是位于用户空间的图片管理进程,本实施例中优选位于用户空间的图片管理进程(如FuseDaemon进程),以方便进行调试,下面均以位于用户空间的图片管理进程作为举例以方便对本实施例进行说明。

具体的,用户空间包括图片管理进程及第一通信接口,内核空间包括第二通信接口,其中第一通信接口与第二通信接口进行通信,以使用户空间和内核空间可以交互,如图2所示,本实施例中,步骤102具体包括以下步骤:

步骤1021、VFS将图片保存指令发送至Fuse驱动模块;

步骤1022、Fuse驱动模块通过第二通信接口将图片保存指令发送至第一通信接口;

步骤1023、图片管理进程接收图片保存指令。

本实施例中,通过第一通信接口与第二通信接口的交互,Fuse驱动模块可以将VFS发送的图片保存指令上传至在在用户空间运行的图片管理进程,图片管理进程进一步将待处理图片发送至图片处理模块,既方便在用户空间对图片管理进程进行调试,又可以实现在保存图片的同时对图片进行处理。

步骤103、图片管理进程调用图片处理模块,并将待处理图片输入至图片处理模块以获取图片处理信息;

步骤104、存储图片处理信息。

在一些具体的实现方式中,如图3所示,步骤104具体包括以下步骤:

步骤1041、通过第一通信接口将图片处理信息发送至第二通信接口;

步骤1042、将图片处理信息存储至底层文件系统。

本实施例中,通过将图片处理信息保存至底层文件系统可以便于后续应用程序直接使用图片处理信息。

在一些较佳的实施方式,步骤1042具体包括以下步骤:

若底层文件系统中存在与图片分类信息对应的路径,则将待处理图片存储至对应的路径中;

若底层文件系统中不存在与图片分类信息对应的路径,则生成对应的路径,并将待处理图片存储至对应的路径中。

本实施例中,根据图片的分类信息建立了不同的存储路径,不同的图片分类信息存储在不同的路径中,如建筑放入建筑文件夹中,花草放入花草文件夹中等等。如果该图片分类信息时第一次得到,基于该图片分类信息建立一新的路径,以方便对不同类型的图片进行保存。

本实施例中,当应用程序需要使用图片时,无需对应用程序进行分类,而可以直接得到图片对应的图片分类信息,具体的,如图4所示,步骤1042后包括以下步骤:

步骤105、获取目标图片;

步骤106、根据目标图片对应的路径获取图片分类信息。

由于当前的图片分类一般均是通过应用程序等多媒体软件本身去进行图片分类处理,其增加了应用本身的处理流程,基于应用本身进行分类处理在一定程度上会增加占用的内存和性能消耗。

本实施例中通过搭载文件系统,在Fuse文件系统的用户空间配置图片处理模块,在接收到图片保存指令时,保存图片的同时可以通过图片管理进程调用图片处理模块来获取图片处理信息(如图片分类信息),通过存储图片分类信息,可以使应用程序在需要时直接使用图片分类信息,不需要在应用程序中开发图片分类的功能,降低了应用程序的开发压力,也可以在使用应用程序时,可以有效降低应用的性能消耗和内存占用。

为了更好的理解本实施例,下面通过一具体实例对本实施例中整体流程进行说明:

图5示意性示出了现有技术中的图片保存流程,图6示意性示出了本实施例中保存图片的流程。

如图5所示,一般来说,在接收到图片保存指令时,获取待处理图片,通过VFS直接将待处理图片存储至底层文件系统(如Vfat/exfat/f2fs),再通过设备驱动(Devicedriver),将图片保存至物理磁盘(Physical Disk)中,即完成图片的保存。

如图6所示,本实施例中,会现在目标设备上搭建一个Fuse文件系统,并挂载在磁盘上。然后在Fuse文件系统的用户空间程序中部署如Tensorflow Lite等图片分类算法,在接收到图片保存指令时,获取待处理图片,VFS将图片保存指令发送至Fuse驱动模块(Fusedriver),通过内存空间的第二通信接口(/dev/fuse)可以与用户空间的第一通信接口(libfuse)进行通信,从而将图片保存指令上报至FuseDaemon中,FuseDaemon调用图片处理模块,并将待处理图片输入至图片处理模块以获取图片分类算法,并将待处理图片发送至图片分类算法,通过图片分类算法的推理、运算过程,可以得到分类结果(即图片分类信息),FuseDaemon再通过第一通信接口(libfuse)将图片分类信息传递至内核空间的底层文件系统,具体的将不同的类型的图片放入的对应的文件夹中,如人物,建筑,名片,服饰,美食,交通工具等等。当应用程序需要使用从设备中获取图片时,则获取图片的同时可以根据对应的文件夹得到对应的图片分类信息。

实施例2

本实施例提供了一种基于Fuse文件系统的图片处理系统,Fuse文件系统包括用户空间及内核空间,如图7所示,该图片处理系统包括:配置模块201、指令发送模块202、图片处理模块203及信息存储模块204。

配置模块201用于在用户空间配置图片处理模块;

指令发送模块202用于响应于接收到图片保存指令,VFS将图片保存指令发送至图片管理进程;

图片处理模块203用于通过图片管理进程调用图片处理模块,并将待处理图片输入至图片处理模块以获取图片处理信息;

信息存储模块204用于存储图片处理信息。

本实施例通过搭载文件系统,配置模块在Fuse文件系统的用户空间配置图片处理模块,指令发送模块在接收到图片保存指令时,信息存储模块保存图片时可以通过图片处理模块使用图片管理进程调用图片处理模块来获取图片处理信息,通过存储图片处理信息,可以使应用程序在需要时直接使用图片处理信息,不需要在应用程序中开发图片处理的功能,降低了应用程序的开发压力,也可以在使用应用程序时,有效降低应用的性能消耗和内存占用。

实施例3

本实施例提供一种电子设备,电子设备可以通过计算设备的形式表现(例如可以为服务器设备),包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中处理器执行计算机程序时可以实现实施例中基于Fuse文件系统的图片处理方法。

图8示出了本实施例的硬件结构示意图,如图8所示,电子设备9具体包括:

至少一个处理器91、至少一个存储器92以及用于连接不同系统组件(包括处理器91和存储器92)的总线93,其中:

总线93包括数据总线、地址总线和控制总线。

存储器92包括易失性存储器,例如随机存取存储器(RAM)921和/或高速缓存存储器922,还可以进一步包括只读存储器(ROM)923。

存储器92还包括具有一组(至少一个)程序模块924的程序/实用工具925,这样的程序模块924包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

处理器91通过运行存储在存储器92中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1中基于Fuse文件系统的图片处理方法。

电子设备9进一步可以与一个或多个外部设备94(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口95进行。并且,电子设备9还可以通过网络适配器96与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器96通过总线93与电子设备9的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备9使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

实施例4

本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1中基于Fuse文件系统的图片处理方法。

其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。

在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1中基于Fuse文件系统的图片处理方法。

其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

相关技术
  • 基于Fuse文件系统的图片处理方法、系统及设备
  • 基于Fuse文件系统的文件解压方法、系统及设备
技术分类

06120114699704