1. 程式人生 > >Synthetic Data for Text Localisation in Natural Images(人工合成帶有文字的圖片)

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