图像处理:利用python-opencv自动(辅助)标注数据集的简单实现
- 本文目的是为深度学习初学者提供一个自动(辅助)标注数据的方法,或者说是提供一种想法。
- 做深度学习的同志们都知道,想要模型精度达到预期,前期数据集的准备是至关重要的一步;常言道,万事开头难!而数据集的标注就是一个大工程,尤其是欲要将训练出来的模型应用在复杂且多变的场景中。那么,一个可以帮助标注数据的全自动或者半自动的辅助软件(代码)显得格外重要。基于这个想法,我们利用python-opencv写了一个简单的文件,来实现预期效果。
- 图片:随便在白纸上面画一些“√”、“×”,手机拍照;
- 方法:利用python-opencv找到“√”和“×”,生成包围的轮廓点,然后保存到对应的.json文件中;
- 下面给出代码:
import cv2
import io
from io import BytesIO
import binascii
import json
import numpy as np
import PIL
import os.path as osp
from labelme.logger import logger
from labelme import PY2
from labelme import QT4
import PIL.Image
import base64
from labelme import utils
def dict_json(flags, imageData, shapes, imagePath, imageHeight=100,
imageWidth=100):
'''
:param imageData: str
:param shapes: list
:param imagePath: str
:return: dict
'''
return {
"version": "4.5.6", "flags": flags, "shapes": shapes,
'imagePath': imagePath.split('/')[-1], "imageData": imageData,
'imageHeight': imageHeight,
'imageWidth': imageWidth}
def load_image_file(filename):
try:
image_pil = PIL.Image.