Synthetic Data for Text Localisation in Natural Images(人工合成帶有文字的圖片)
1.解決python3的pickle.load錯誤:a bytes-like object is required, not 'str'
經過幾番查詢,發現是Python3和Python2的字串相容問題,因為資料檔案是在Python2下序列化的,所以使用Python3讀取時,需要將‘str’轉化為'bytes'。
class StrToBytes:
def __init__(self, fileobj):
self.fileobj = fileobj
def read(self, size):
return self.fileobj.read(size).encode()
def readline(self, size=-1):
return self.fileobj.readline(size).encode()
with open('final_project_dataset.pkl', 'r') as data_file:
data_dict = pickle.load(StrToBytes(data_file))
經過這樣一個轉化後,就可以正確讀取資料了。
2.UnicodeDecodeError: 'ascii' codec can't decode byte 0xf7 in position 2: ordinal not in range(128)
改為 data_dict = cp.load(StrToBytes(data_file),encoding='bytes')
3.AttributeError: module 'cv2.cv2' has no attribute 'CV_RGB2Lab'
cv2.COLOR_RGB2LAB
4.AttributeError: module 'cv2.cv2' has no attribute 'BoxPoints'
cv2.boxPoints()
5.ValueError: too many values to unpack (expected 2)
返回值是三個
binary,contour,hier = cv2.findContours(mask.copy().astype('uint8'),cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
6.TypeError: 'numpy.float64' object cannot be interpreted as an integer
7.中文字元空白
1 invert_font_size.py
2 the new font_px2pt_2.cp should be in data/models
3 font_list.txt should be updated