数据生成方法、装置及计算机可读存储介质
技术领域
本发明实施例涉及数据生成领域,特别涉及一种数据生成方法、装置及计算机可读存储介质。
背景技术
当今深度学习技术掀起了AI(人工智能)的新浪潮,广泛用于医学、图像处理、语音识别、机器翻译等领域。深度学习的提出使得人工神经网络重新成为机器学习最重要的算法之一,在深度学习的初始训练中,往往需要大量的数据,以提高对图像中物品的识别准确性。而这些用于初始训练的数据,往往需要经过人工识别,并对图像进行标注,才能保证后续训练过程中的准确性。例如在无人值守商铺运营中,为了更好的让机器识别出图像中所含商品的种类,需要建立含有大量商品图像的初始训练数据库。
发明人发现现有技术中至少存在如下问题:通过人工对图像进行标注,耗费的人力、时间成本高,同时由于个别商品外观极其相似,人工标注也很容易出错。
发明内容
本发明实施方式的目的在于提供一种数据生成方法、装置及计算机可读存储介质,其能够在快速且准确的得到物体的识别数据的同时,减少人力成本。
为解决上述技术问题,本发明的实施方式提供了一种数据方法,包括:
根据预设的拍摄场景,确定物体的拍摄角度,其中,所述拍摄场景中放置有可旋转360度的底座;从所述拍摄角度拍摄置于所述底座上的所述物体的视频数据;根据所述视频数据得到所述物体的多张单帧图像,并根据所述多张单帧图像得到所述物体的识别数据。
本发明的实施方式相对于现有技术而言,通过根据预设的拍摄场景确定物体的拍摄角度,且物体置于可旋转360度的底座上,从而实现物体视频数据多角度、多方位的采集;由于拍摄场景是根据实际应用场景布置的,确保了后续得到的识别数据的准确性,且可以针对不同应用场景设计不同的拍摄场景;通过根据视频数据得到物体的多张单帧图像,并根据多张单帧图像得到物体的识别数据,使得能够自动采集物体的识别数据,减轻了标注物体的工作量,从而减小了人力成本,也避免了“由于个别商品外观极其相似,人工标注也很容易出错”的情况的发生,提高了得到的识别数据的准确性;此外,可以在底座上摆放多个物体,且保证物体摆放的随机性,确保生成多样性的识别数据。
另外,所述根据所述多张单帧图像得到所述物体的识别数据,包括:分别对每张所述单帧图像进行显著性检测,得到多张检测图像;根据多张所述检测图像得到所述物体在多张所述单帧图像中的轮廓信息;将所述轮廓信息和对应的所述单帧图像进行映射,在所述单帧图像中分割出仅包含所述物体的分割图像,并根据所述分割图像得到所述识别数据。
另外,所述根据多张所述检测图像得到所述物体在多张所述单帧图像中的轮廓信息,包括:对多张所述检测图像进行二值化处理,得到多张二值图像;根据多张所述二值图像得到所述轮廓信息。图像的二值化有利于图像的进一步处理,使图像变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓。
另外,所述根据分割图像得到所述识别数据,包括:将所述分割图像粘贴在预设背景上;根据所述分割图像确定所述物体的外接框,并根据所述预设背景建立坐标系;根据所述分割图像在所述预设背景中的位置,生成所述物体在所述坐标系下的外接框坐标,并将所述外接框坐标作为所述识别数据。
另外,所述根据所述多张单帧图像得到所述物体的识别数据,包括:从所述多张单帧图像中随机取出一张作为待标注图像;对所述待标注图像中的所述物体进行标注,得到所述物体的标注信息,其中,所述标注信息包括所述物体的种类信息和在所述待标注图像中的位置信息;根据所述标注信息得到所述识别数据。
另外,所述根据所述标注信息得到所述识别数据,包括:根据所述标注信息标注所述多张单帧图像中除所述待标注图像外的其他单帧图像;将所述标注信息作为所述识别数据。
另外,所述单帧图像内的所述物体为多个,且多个所述物体中存在包装待更新的物体,在得到所述物体的标注信息之后,还包括:采集置于所述底座上的多个物体的新视频数据,其中,所述多个物体在底座的摆放位置与采集所述视频数据时的摆放位置一致,所述多个物体中包装待更新的物体被替换为包装已更新的物体;根据所述新视频数据得到所述多个物体的新单帧图像;将所述单帧图像替换为所述新单帧图像,并将所述标注信息转移至所述新单帧图像。
另外,所述根据所述视频数据得到所述物体的多张单帧图像,包括:获取所述视频数据的总帧数;根据所述总帧数和预设的提取图像张数确定提取间隔帧数;根据所述提取间隔帧数,从所述视频数据中提取所述提取图像张数的所述单帧图像。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式提供的数据生成方法的流程图;
图2是根据本发明第二实施方式提供的数据生成方法的流程图;
图3是根据本发明第三实施方式提供的数据生成方法的流程图;
图4是根据本发明第四实施方式提供的数据生成方法的流程图;
图5是根据本发明第五实施方式提供的数据生成装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本发明而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本发明所要求保护的技术方案。
本发明的第一实施方式涉及一种数据生成方法,具体流程如图1所示,包括:
S101:根据预设的拍摄场景,确定物体的拍摄角度。
具体的说,拍摄场景中放置有可旋转360度的底座,物体置于底座上,以确保多角度、多方位的采集物体的视频数据,且物体的摆放具有随机性,以确保后续步骤中得到的识别数据具有多样性。
需要说明的是,本实施方式中的物体可以为食品(如零食、饮料等),也可以为办公用品(如笔记本、笔等),并不对物体的种类做具体限定。
可以理解的是,本实施例的数据生成方法可应用在特定场景的商品识别中,拍摄场景通过人工布置,如可设置自助商品识别、无人超市、自助拍照结算台、自助称重台等场景,以实现不同场景下的物体的识别数据的采集,从而增加了数据生成方法的实用性。
值得一提的是,拍摄角度由预设场景确定,从而进一步提高得到的识别数据的准确性,如在实际应用中,无人超市的货柜的摄像头置于商品的顶端,则在基于无人超市布置拍摄场景时,拍摄物体的摄像头也置于物体的顶端,以确保与实际应用场景一致。
S102:从拍摄角度拍摄置于底座上的物体的视频数据。
具体的说,将物体放置在低速旋转的马达底座上,设置好转动速度,360度旋转展示物体的不同角度,拍摄物体旋转一周的视频数据。
需要说明的是,本实施方式并不对底座的转动速度做具体限定,也不对底座的旋转周数做具体限定,优选为旋转一周,在实现物体多方位拍摄的同时,避免旋转周数过多导致视频数据过大,从而使后续步骤的计算量增大。
S103:根据视频数据得到物体的多张单帧图像。
具体的说,对视频数据进行后处理(后处理是与预处理相对应的,是指在进行在预处理后的下一步工作,是最后加工完善以前进行的工作,或者是对某一阶段性工作后进行的步骤),得到视频数据的总帧数,根据所述总帧数和预设的提取图像张数确定提取间隔帧数;根据所述提取间隔帧数,从所述视频数据中提取所述提取图像张数的所述单帧图像。
为了便于理解,下面对如何根据视频数据得到物体的多张单帧图像进行具体的举例说明:
假设拍摄的是底座旋转360度时物体的视频数据,视频数据共有720帧,预计底座每旋转18度提取一帧图像,即预计的提取图像张数为20张,从而可以计算间隔帧数为720/20=36帧,即每间隔36帧视频数据提取一张单帧图像。
S104:根据多张单帧图像得到物体的识别数据。
具体的说,本实施方式中的识别数据可以为物体的标注信息,标注信息中包含有物体的种类信息和位置信息。
本发明的实施方式相对于现有技术而言,通过根据预设的拍摄场景确定物体的拍摄角度,且物体置于可旋转360度的底座上,从而实现物体视频数据多角度、多方位的采集;由于拍摄场景是根据实际应用场景布置的,确保了后续得到的识别数据的准确性,且可以针对不同应用场景设计不同的拍摄场景;通过根据视频数据得到物体的多张单帧图像,并根据多张单帧图像得到物体的识别数据,使得能够自动采集物体的识别数据,减轻了标注物体的工作量,从而减小了人力成本,也避免了“由于个别商品外观极其相似,人工标注也很容易出错”的情况的发生,提高了得到的识别数据的准确性;此外,可以在底座上摆放多个物体,且保证物体摆放的随机性,确保生成多样性的识别数据。
本发明的第二实施方式涉及一种数据生成方法,本实施方式是对第一实施方式的举例说明,具体说明了:如何根据多张单帧图像得到物体的识别数据。
具体的说,如图2所示,在本实施方式中,包含步骤S201至步骤S207,其中,步骤S201至步骤S203分别与第一实施方式中的步骤S101至步骤S103大致相同,此处不再赘述。下面主要介绍不同之处:
执行步骤S201至步骤S203。
S204:分别对每张单帧图像进行显著性检测,得到多张检测图像。
具体的说,显著性检测指通过智能算法模拟人的视觉特点,提取图像中的显著区域(即人类感兴趣的区域)。
S205:根据多张检测图像得到物体在多张单帧图像中的轮廓信息。
具体的说,使用显著性检测模型对单帧图像进行检测,得到检测图像,通常得到的检测图像存在边缘模糊的现象,需要进行进一步地处理。由于图像的二值化有利于图像的进一步处理,使图像变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓,因此本实施方式中根据多张所述检测图像得到所述物体在多张所述单帧图像中的轮廓信息,包括:对多张所述检测图像进行二值化处理,得到多张二值图像;根据多张所述二值图像得到所述轮廓信息。也就是说,将检测结果转换灰度图,再转换成二值图,即显著的区域像素值变为255,背景区域像素变为0。
可以理解的是,本实施方式中的轮廓信息即为单帧图像中显著物体区域轮廓,可以根据二值图中的轮廓区域得到。
S206:将轮廓信息和对应的单帧图像进行映射,在单帧图像中分割出仅包含物体的分割图像。
具体的说,根据轮廓信息和单帧图像的映射,抠出单帧图像中的物体图。
由于轮廓信息只保留了物体本身的信息,而避免了物体周围背景的干扰,因此根据轮廓信息得到分割图像,再根据分割图像得到识别数据,更有助于提升物体识别的精度。
S207:根据分割图像得到识别数据。
具体的说,本实施方式中可以通过以下方式得到识别数据:将所述分割图像粘贴在预设背景上;根据所述分割图像确定所述物体的外接框,并根据所述预设背景建立坐标系;根据所述分割图像在所述预设背景中的位置,生成所述物体在所述坐标系下的外接框坐标,并将所述外接框坐标作为所述识别数据。
为了便于理解,下面对本实施方式中的数据生成方法进行具体的举例说明:
假定实际应用场景为自动称重台:
步骤1:设置白色背景,避免对后续显著性检测造成影响,准备需要采集的商品实物。商品采集的设备大致由几部分组成,一、可低速转动的底座;二、摄像头4个;三、摄像头连接支架。其中四个摄像头的位置大致在图像的顶部、45度斜上方角度,30度斜上方角度和水平角度。通过摄像头支架将4个摄像头固定在指定位置,保证多方位地拍摄商品。
进行如下子步骤:步骤1.1:将商品放置在低速旋转的马达底座上,设置好转动速度,360度旋转展示商品不同角度。步骤1.2:4个摄像头分别录制4个视角的视频,马达底座上的商品共低速旋转一周360度。步骤1.3:对于袋装的商品,由于正反面不一样,所以将正反面分别重复一次步骤1.2操作。
步骤2:对4个摄像头采集的视频进行后处理。计算视频帧数,平均每旋转18度提取一帧图像,每个视频提取360/18=20张,根据帧数/20的间隔提取图像。四个摄像头共提取20*4=80张,即每个商品拍摄80张图片。
步骤3:对每张图片中的商品,使用显著性区域检测进行分割。由于使用显著性检测模型对图片进行检测,得到图片检测结果,通常得到的检测图像存在边缘模糊的现象,需要进行进一步地处理,而图像的二值化有利于图像的进一步处理,使图像变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓。所以将检测结果转换灰度图,再转换成二值图,即显著的区域像素值变为255,背景区域像素变为0。
进行如下子步骤:步骤3.3:求二值图中轮廓区域,获取显著物体区域轮廓;步骤3.4:根据步骤3.3获取的显著物体区域轮廓,与原图进行映射,生成分割后商品数据。
步骤4:将步骤3中生成的商品数据随机粘贴在指定背景上(通常为纯色,避免背景存在干扰),允许有少量重叠(不超过20%),并根据商品的轮廓信息,生成并保存可用于目标检测的外接框坐标,和用于实例分割的轮廓信息。具体的说,根据指定背景建立坐标系,然后将商品放置在指定背景上,当商品有多个时,允许不同商品之间存在不超过20%的重叠,以确保每个商品拍摄的完整性,避免难以得到被其他商品覆盖的商品的识别数据,根据每个商品在指定背景中的位置,得到每个商品的外接框坐标。
本发明的实施方式相对于现有技术而言,通过根据预设的拍摄场景确定物体的拍摄角度,且物体置于可旋转360度的底座上,从而实现物体视频数据多角度、多方位的采集;由于拍摄场景是根据实际应用场景布置的,确保了后续得到的识别数据的准确性,且可以针对不同应用场景设计不同的拍摄场景;通过根据视频数据得到物体的多张单帧图像,并根据多张单帧图像得到物体的识别数据,使得能够自动采集物体的识别数据,减轻了标注物体的工作量,从而减小了人力成本,也避免了“由于个别商品外观极其相似,人工标注也很容易出错”的情况的发生,提高了得到的识别数据的准确性;此外,可以在底座上摆放多个物体,且保证物体摆放的随机性,确保生成多样性的识别数据。
本发明的第三实施方式涉及一种数据生成方法,本实施方式是对第一实施方式的举例说明,具体说明了:如何根据多张单帧图像得到物体的识别数据。
具体的说,如图3所示,在本实施方式中,包含步骤S301至步骤S306,其中,步骤S301至步骤S303分别与第一实施方式中的步骤S101至步骤S103大致相同,此处不再赘述。下面主要介绍不同之处:
执行步骤S301至步骤S303。
S304:从多张单帧图像中随机取出一张作为待标注图像。
具体的说,由于每张单帧图像中的物体是一样的,是相同类别、不同物体角度的图片,因此只需选取一张作为待标注图像即可。
S305:对待标注图像中的物体进行标注,得到物体的标注信息。
具体的说,本实施方式中的标注信息包括物体的种类信息和位置信息。
S306:根据标注信息得到识别数据。
具体的说,本实施方式中根据所述标注信息得到所述识别数据,包括:根据所述标注信息标注所述多张单帧图像中除所述待标注图像外的其他单帧图像;将所述标注信息作为所述识别数据。
为了便于理解,下面对本实施方式中的数据生成方法进行具体的举例说明:
以预设场景为智能货柜为例:
智能货柜的商品图像采集相较于通用场景更为复杂,因为上货人员摆放商品较为随机,所以需要人为进行多种随机组合的调整,所以由此带来的标注工作量也极大;同时,商品包装更换,或增删商品都需要重新采集和标注大量的图片。除此之外,如果货柜的尺寸有所变化,则所有的数据都不可用了,而采用本方法可以轻松模拟更改后的货柜大小,更高效地采集和标注新的数据集。
步骤1:参考智能货柜的硬件设备,根据设备内部实际场景和选定某一层的各个边的尺寸信息,尽可能地模拟货柜图像采集场景。采集场景的模拟包含如下子步骤:
步骤1.1:目前采用的智能货柜是方形,每个货柜包含4层,每一层的顶部正中央包含一个摄像头,所有4层采集到的商品图像类似,所以先以一层为原型,设计模拟场景。步骤1.2:测量货柜选定层的长宽高,测量摄像头位置。步骤1.3:准备材料,货柜四周是三面白色的柜体和一面门,所以可根据上一步测量的尺寸,使用三个白色背景板和一个透明板在白色背景桌上围成一个与货柜的一层一样的立方体,顶部通过支架悬挂一个相同的摄像头。步骤1.4:准备可低速旋转底座若干,放在立方体底部,注意立方体的高度=货柜所选层高度+底座高度。
步骤2:准备待采集商品,设定摆放规则,将待采集商品按照摆放规则放置在底座上。
包含如下子步骤:
步骤2.1:根据业务需求,确定待采集商品清单,并准备足够的商品,至少满足可水平或垂直摆放一列;步骤2.2:为了防止遮挡严重,建议将较高的商品摆放在两侧,较低的商品摆放在中间区域。为了模拟真实场景,不同商品之间尽量满足随机组合。对于零食类这种正反面不同的商品,需要正反面都拍摄一次。
步骤3:摆放好后,启动所有底座低速旋转一周,顶部的摄像头自动录制视频。
步骤4:对顶部摄像头采集的视频进行后处理。计算视频帧数,平均每旋转9度提取一帧图像,每个视频提取360/9=40张,根据帧数/40的间隔提取图像。
步骤5:步骤4产生的图像放置的摆放位置一样,只是不同商品的角度不同,所以标注信息是一致的,将步骤4的图片放置在同一个文件夹中只需标注一次即可,不需重复标注。
步骤6:如果只是根据上次采集情况增减商品,则采集过程与步骤3和步骤4一致,且这批数据标注时只需依据步骤5的标注结果增减相应的检测框,相比对每张图片的所有商品重新全部标注,此种方法极大的减少了工作量。
本发明的实施方式相对于现有技术而言,通过根据预设的拍摄场景确定物体的拍摄角度,且物体置于可旋转360度的底座上,从而实现物体视频数据多角度、多方位的采集;由于拍摄场景是根据实际应用场景布置的,确保了后续得到的识别数据的准确性,且可以针对不同应用场景设计不同的拍摄场景;通过根据视频数据得到物体的多张单帧图像,并根据多张单帧图像得到物体的识别数据,使得能够自动采集物体的识别数据,减轻了标注物体的工作量,从而减小了人力成本,也避免了“由于个别商品外观极其相似,人工标注也很容易出错”的情况的发生,提高了得到的识别数据的准确性;此外,可以在底座上摆放多个物体,且保证物体摆放的随机性,确保生成多样性的识别数据。
本发明的第四实施方式涉及一种数据生成方法,本实施方式在第三实施方式的基础上做了进一步的改进,主要改进之处在于:单帧图像内的所述物体为多个,且多个所述物体中存在包装待更新的物体,在得到所述物体的标注信息之后,还包括:采集置于所述底座上的多个物体的新视频数据,其中,所述多个物体在底座的摆放位置与采集所述视频数据时的摆放位置一致,所述多个物体中包装待更新的物体被替换为包装已更新的物体;根据所述新视频数据得到所述多个物体的新单帧图像;将所述单帧图像替换为所述新单帧图像,并将所述标注信息转移至所述新单帧图像。
也就是说,如果需要对第三实施方式得到的数据集,更换某个物体的包装,只需要将包含更换了包装的物体的图像挑选出来,按照摆放规则将该物体替换为新包装,并进行视频拍摄、提取图片。如果更换了包装后,物体的尺寸没有明显变化,则标注信息也不需更改,如果尺寸存在变化,则只需要调整该物体的标注信息即可。相对于人工采集和标注,这种方法可以节省大量的人力,提高物体识别数据采集的效率。
具体的说,如图4所示,在本实施方式中,包含步骤S401至步骤S409,其中,步骤S401至步骤S406分别与第三实施方式中的步骤S301至步骤S306大致相同,此处不再赘述。下面主要介绍不同之处:
执行步骤S401至步骤S406。
S407:采集置于底座上的多个物体的新视频数据。
具体的说,多个物体在底座的摆放位置与采集所述视频数据时的摆放位置一致,且多个物体中包装待更新的物体被替换为包装已更新的物体。
S408:根据新视频数据得到多个物体的新单帧图像。
S409:将单帧图像替换为新单帧图像,并将标注信息转移至新单帧图像。
为了便于理解,下面对本实施方式中的数据生成方法进行具体的举例说明:
步骤1:针对前述实施方式采集的数据集,获取需要更换包装的商品类别,表示为L。
步骤2:针对L中的每一种商品,遍历前述实施方式数据集的标注信息,分别筛选出包含该商品的图片。
步骤3:针对筛选出的图片中商品的摆放方式进行复现,只将需要替换包装是商品替换为新包装商品。
步骤4:采用前述实施方式中的视频和图像采集方式,获取更换包装后的商品图片。
步骤5:将步骤4中的图片替换掉前述实施方式含原包装的图片,无需重新标注,即可重新训练。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第五实施方式涉及一种数据生成装置,如图5所示,包括:
至少一个处理器501;以及,
与至少一个处理器501通信连接的存储器502;其中,
存储器502存储有可被至少一个处理器501执行的指令,指令被至少一个处理器501执行,以使至少一个处理器501能够执行上述数据生成方法。
其中,存储器502和处理器501采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器501和存储器502的各种电路连接在一起。总线还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器501处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器501。
处理器501负责管理总线和通常的处理,还可以提供各种功能,包括定时,***接口,电压调节、电源管理以及其他控制功能。而存储器502可以被用于存储处理器501在执行操作时所使用的数据。
本发明第六实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。