![見出し画像](https://assets.st-note.com/production/uploads/images/120086982/rectangle_large_type_2_2d947b9f33f262a6fa08bf5f771b2bb8.png?width=800)
【Python】ラベリングツール「labelimg」 エラー対策(応急処置)
はじめに
YOLOv8のDetection用には「labelimg」というpythonライブラリがシンプル、かつ使いやすくて超おすすめ!
ただし、2023/10/28現在、そのままだと操作した際に、エラーで落ちてしまう…残念!
とりあえず、応急処置する方法がわかったのでメモがてら記事にしておきます
動作環境
![](https://assets.st-note.com/img/1698443765721-OM3FEO9a0i.png?width=800)
![](https://assets.st-note.com/img/1698445972983-yBPUKz8ld5.png?width=800)
1. 仮想環境の作成(推奨)
元のソースコードを直接修正するため、仮想環境内で作業したほうがなにかと安全なので、作って入ります
![](https://assets.st-note.com/img/1698446086279-By8ZEQgjko.png?width=800)
2. labelimg導入
pipコマンドで簡単に導入できます(楽でいいよね!)
python -m pip install labelimg
![](https://assets.st-note.com/img/1698446107299-bsqFKm69rO.png?width=800)
3. デバッグの時間だぁ!
とりあえず起動してみましょう
環境内でlabelimgコマンドを打つと、起動できます
labelimg
![](https://assets.st-note.com/img/1698446221207-DcNVnG97qc.png?width=800)
3.1 Zoom機能のエラー修正
ctrl+マウスホイールで操作(Zoom)すると、labelimgが落ちます…
![](https://assets.st-note.com/img/1698446301102-7ZkLnl6sux.png?width=800)
エラー内容から以下のファイルでエラーが起きていることが判明
- C:\Users\Nagisa\.venv\test_labelimg\Lib\site-packages\labelImg\labelimg.py
Zoom機能関連で修正するのは、以下の2か所です
971行目
1025行目, 1026行目
setValue関数がfloat型の引数を受け付けてエラー(意訳)なので、
引数をint型にキャストする修正をします
(小数点の誤差が気になる方は、別の修正してください)
![](https://assets.st-note.com/img/1698446564905-Jnliuuvs1p.png?width=800)
![](https://assets.st-note.com/img/1698446582608-LTXR7sWot1.png?width=800)
修正後、labelimg.pyを上書き保存して、再度起動するとZoomしても落ちなくなります
![](https://assets.st-note.com/img/1698446605654-MHICTsl7GB.png?width=800)
4. CreateRectangleのエラー修正
CreateRectangleを押して、画面上へマウスカーソルを移動すると、落ちます
![](https://assets.st-note.com/img/1698446752963-jGtGFubsdu.png?width=800)
今度は以下のファイルですね…
- C:\Users\Nagisa.venv\test_labelimg\Lib\site-packages\libs\canvas.py
DrowRectangle関連で修正するのは以下の行です
530行目, 531行目
526行目
![](https://assets.st-note.com/img/1698446844568-kM7JKWD5zQ.png?width=800)
![](https://assets.st-note.com/img/1698446947299-j1GQo1nlOD.png?width=800)
修正後、canvas.pyを保存して、再度起動するとDrawRectangle機能でBoundingBoxを作成しても落ちなくなります
![](https://assets.st-note.com/img/1698447004674-Ws8fTfcst2.png?width=800)
5. まとめ
labelimgがエラーで落ちるため、プログラムの修正を行った
応急処置的な修正なので、float型->int型の誤差が気になる人は、元の変数やライブラリまでさかのぼって真因追及してください
以下、おそらくの真因(予想)
- 依存ライブラリの仕様変わった(int型->float型)
- labelimg側の依存ライブラリ指定がされていない
以上!
この記事が気に入ったらサポートをしてみませんか?