執行labelme2yolo,如果檔案名稱有中文會出現錯誤如下:
(yolov8) D:\waferData\waferShift\data>labelme2yolo --json_dir sandbox
Traceback (most recent call last):
File "C:\Users\USER\.conda\envs\yolov8\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\USER\.conda\envs\yolov8\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\USER\.conda\envs\yolov8\Scripts\labelme2yolo.exe\__main__.py", line 7, in <module>
File "C:\Users\USER\.conda\envs\yolov8\lib\site-packages\labelme2yolo\cli\__init__.py", line 63, in run
convertor = Labelme2YOLO(
File "C:\Users\USER\.conda\envs\yolov8\lib\site-packages\labelme2yolo\l2y.py", line 168, in __init__
self._label_id_map = get_label_id_map(self._json_dir)
File "C:\Users\USER\.conda\envs\yolov8\lib\site-packages\labelme2yolo\l2y.py", line 96, in get_label_id_map
data = json.load(open(json_path))
File "C:\Users\USER\.conda\envs\yolov8\lib\json\__init__.py", line 293, in load
return loads(fp.read(),
UnicodeDecodeError: 'cp950' codec can't decode byte 0xb8 in position 9959: illegal multibyte sequence
解決方法如下:
開啟C:\Users\USER\.conda\envs\yolov8\lib\site-packages\labelme2yolo\l2y.py
搜尋關鍵字open
在
open()
裡加上
encoding="utf-8"
即可解決。
修改前:
修改後
:
繼續往下搜尋
繼續往下搜尋
繼續往下搜尋
繼續往下搜尋
修改完成,存檔並重新轉檔
留言列表