Code Monkey home page Code Monkey logo

labelme2yolo's People

Contributors

mattthecuber avatar rooneysh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

labelme2yolo's Issues

формат

не пойму - в yolo txt формате вроде шел номер класса, а потом 4 значения (x_center y_center width height). а после конвертации вашей утилитой получаю номер класса и еще 8 значений после него в этой же строке..

Suggest to loosen the dependency on labelme

Hi, your project Labelme2YOLO requires "labelme==4.5.9" in its dependency. After analyzing the source code, we found that some other versions of labelme can also be suitable without affecting your project, i.e., labelme 4.5.0, 4.5.1, 4.5.2, 4.5.3, 4.5.4, 4.5.5, 4.5.6, 4.5.7, 4.5.8, 4.5.8.post0. Therefore, we suggest to loosen the dependency on labelme from "labelme==4.5.9" to "labelme>=4.5.0,<=4.5.9" to avoid any possible conflict for importing more packages or for downstream projects that may use Labelme2YOLO.

May I pull a request to loosen the dependency on labelme?

By the way, could you please tell us whether such dependency analysis may be potentially helpful for maintaining dependencies easier during your development?



For your reference, here are details in our analysis.

Your project Labelme2YOLO(commit id: 49788b6) directly uses 1 APIs from package labelme.

labelme.utils.image.img_b64_to_arr

From which, 6 functions are then indirectly called, including 2 labelme's internal APIs and 4 outsider APIs, as follows (neglecting some repeated function occurrences).

[/rooneysh/Labelme2YOLO]
+--labelme.utils.image.img_b64_to_arr
|      +--base64.b64decode
|      +--labelme.utils.image.img_data_to_arr
|      |      +--labelme.utils.image.img_data_to_pil
|      |      |      +--io.BytesIO
|      |      |      +--PIL.Image.open
|      |      +--numpy.array

We scan labelme's versions among [4.5.0, 4.5.1, 4.5.2, 4.5.3, 4.5.4, 4.5.5, 4.5.6, 4.5.7, 4.5.8, 4.5.8.post0] and 4.5.9, the changing functions (diffs being listed below) have none intersection with any function or API we mentioned above (either directly or indirectly called by this project).

diff: 4.5.9(original) 4.5.0
['labelme.widgets.canvas.Canvas.deleteShape', 'labelme.app.MainWindow.fileSearchChanged', 'labelme.widgets.label_list_widget.LabelListWidget.itemDropped', 'labelme.app.MainWindow.setDirty', 'labelme.app.MainWindow.dragEnterEvent', 'labelme.logger.ColoredFormatter', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.widgets.canvas.Canvas.hideBackroundShapes', 'labelme.cli.on_docker.labelme_on_docker', 'labelme.app.MainWindow.importDroppedImageFiles', 'labelme.widgets.label_list_widget.StandardItemModel.removeRows', 'labelme.widgets.canvas.Canvas.paintEvent', 'labelme.shape.Shape', 'labelme.widgets.label_list_widget.LabelListWidget.__init__', 'labelme.widgets.canvas.Canvas.restoreShape', 'labelme.widgets.canvas.Canvas.isShapeRestorable', 'labelme.widgets.canvas.Canvas.loadShapes', 'labelme.label_file.LabelFile.load', 'labelme.label_file.LabelFile', 'labelme.widgets.canvas.Canvas.storeShapes', 'labelme.widgets.label_list_widget.LabelListWidget.findItemByShape', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.widgets.canvas.Canvas.undoLastPoint', 'labelme.app.MainWindow.addLabel', 'labelme.shape.Shape.highlightVertex', 'labelme.logger.ColoredFormatter.format', 'labelme.app.MainWindow', 'labelme.app.MainWindow.loadLabels', 'labelme.app.MainWindow.brightnessContrast', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.widgets.label_list_widget.LabelListWidget.dropEvent', 'labelme.app.MainWindow.zoomRequest', 'labelme.widgets.canvas.Canvas', 'labelme.widgets.canvas.Canvas.loadPixmap', 'labelme.app.MainWindow.addZoom', 'labelme.widgets.label_list_widget.LabelListWidget', 'labelme.label_file.open', 'labelme.shape.Shape.highlightClear', 'labelme.widgets.label_list_widget.StandardItemModel', 'labelme.app.MainWindow.scanAllImages', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.setShapeVisible', 'labelme.utils.qt.distancetoline']

diff: 4.5.9(original) 4.5.1
['labelme.widgets.canvas.Canvas.deleteShape', 'labelme.app.MainWindow.fileSearchChanged', 'labelme.widgets.label_list_widget.LabelListWidget.itemDropped', 'labelme.app.MainWindow.setDirty', 'labelme.app.MainWindow.dragEnterEvent', 'labelme.logger.ColoredFormatter', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.widgets.canvas.Canvas.hideBackroundShapes', 'labelme.cli.on_docker.labelme_on_docker', 'labelme.app.MainWindow.importDroppedImageFiles', 'labelme.widgets.label_list_widget.StandardItemModel.removeRows', 'labelme.widgets.canvas.Canvas.paintEvent', 'labelme.shape.Shape', 'labelme.widgets.label_list_widget.LabelListWidget.__init__', 'labelme.widgets.canvas.Canvas.restoreShape', 'labelme.widgets.canvas.Canvas.isShapeRestorable', 'labelme.widgets.canvas.Canvas.loadShapes', 'labelme.label_file.LabelFile.load', 'labelme.label_file.LabelFile', 'labelme.widgets.canvas.Canvas.storeShapes', 'labelme.widgets.label_list_widget.LabelListWidget.findItemByShape', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.widgets.canvas.Canvas.undoLastPoint', 'labelme.app.MainWindow.addLabel', 'labelme.shape.Shape.highlightVertex', 'labelme.logger.ColoredFormatter.format', 'labelme.app.MainWindow', 'labelme.app.MainWindow.loadLabels', 'labelme.app.MainWindow.brightnessContrast', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.widgets.label_list_widget.LabelListWidget.dropEvent', 'labelme.app.MainWindow.zoomRequest', 'labelme.widgets.canvas.Canvas', 'labelme.widgets.canvas.Canvas.loadPixmap', 'labelme.app.MainWindow.addZoom', 'labelme.widgets.label_list_widget.LabelListWidget', 'labelme.label_file.open', 'labelme.shape.Shape.highlightClear', 'labelme.widgets.label_list_widget.StandardItemModel', 'labelme.app.MainWindow.scanAllImages', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.setShapeVisible', 'labelme.utils.qt.distancetoline']

diff: 4.5.9(original) 4.5.2
['labelme.widgets.canvas.Canvas.deleteShape', 'labelme.app.MainWindow.fileSearchChanged', 'labelme.widgets.label_list_widget.LabelListWidget.itemDropped', 'labelme.app.MainWindow.setDirty', 'labelme.app.MainWindow.dragEnterEvent', 'labelme.logger.ColoredFormatter', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.cli.on_docker.labelme_on_docker', 'labelme.widgets.canvas.Canvas.hideBackroundShapes', 'labelme.app.MainWindow.importDroppedImageFiles', 'labelme.widgets.label_list_widget.StandardItemModel.removeRows', 'labelme.widgets.canvas.Canvas.paintEvent', 'labelme.shape.Shape', 'labelme.widgets.label_list_widget.LabelListWidget.__init__', 'labelme.widgets.canvas.Canvas.restoreShape', 'labelme.widgets.canvas.Canvas.isShapeRestorable', 'labelme.widgets.canvas.Canvas.loadShapes', 'labelme.widgets.canvas.Canvas.storeShapes', 'labelme.widgets.label_list_widget.LabelListWidget.findItemByShape', 'labelme.widgets.canvas.Canvas.undoLastPoint', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.app.MainWindow.addLabel', 'labelme.shape.Shape.highlightVertex', 'labelme.logger.ColoredFormatter.format', 'labelme.app.MainWindow', 'labelme.app.MainWindow.loadLabels', 'labelme.app.MainWindow.brightnessContrast', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.widgets.label_list_widget.LabelListWidget.dropEvent', 'labelme.app.MainWindow.zoomRequest', 'labelme.widgets.canvas.Canvas', 'labelme.widgets.canvas.Canvas.loadPixmap', 'labelme.app.MainWindow.addZoom', 'labelme.widgets.label_list_widget.LabelListWidget', 'labelme.shape.Shape.highlightClear', 'labelme.widgets.label_list_widget.StandardItemModel', 'labelme.app.MainWindow.scanAllImages', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.setShapeVisible', 'labelme.utils.qt.distancetoline']

diff: 4.5.9(original) 4.5.3
['labelme.widgets.canvas.Canvas.deleteShape', 'labelme.app.MainWindow.fileSearchChanged', 'labelme.app.MainWindow.setDirty', 'labelme.app.MainWindow.dragEnterEvent', 'labelme.logger.ColoredFormatter', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.cli.on_docker.labelme_on_docker', 'labelme.widgets.canvas.Canvas.hideBackroundShapes', 'labelme.app.MainWindow.importDroppedImageFiles', 'labelme.shape.Shape', 'labelme.widgets.canvas.Canvas.restoreShape', 'labelme.widgets.canvas.Canvas.isShapeRestorable', 'labelme.widgets.canvas.Canvas.loadShapes', 'labelme.widgets.canvas.Canvas.storeShapes', 'labelme.widgets.label_list_widget.LabelListWidget.findItemByShape', 'labelme.widgets.canvas.Canvas.undoLastPoint', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.shape.Shape.highlightVertex', 'labelme.logger.ColoredFormatter.format', 'labelme.app.MainWindow', 'labelme.app.MainWindow.loadLabels', 'labelme.app.MainWindow.brightnessContrast', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.app.MainWindow.zoomRequest', 'labelme.widgets.canvas.Canvas', 'labelme.widgets.canvas.Canvas.loadPixmap', 'labelme.app.MainWindow.addZoom', 'labelme.widgets.label_list_widget.LabelListWidget', 'labelme.shape.Shape.highlightClear', 'labelme.app.MainWindow.scanAllImages', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.setShapeVisible', 'labelme.utils.qt.distancetoline']

diff: 4.5.9(original) 4.5.4
['labelme.widgets.canvas.Canvas.deleteShape', 'labelme.app.MainWindow.fileSearchChanged', 'labelme.app.MainWindow.setDirty', 'labelme.logger.ColoredFormatter', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.cli.on_docker.labelme_on_docker', 'labelme.widgets.canvas.Canvas.hideBackroundShapes', 'labelme.shape.Shape', 'labelme.widgets.canvas.Canvas.restoreShape', 'labelme.widgets.canvas.Canvas.isShapeRestorable', 'labelme.widgets.canvas.Canvas.loadShapes', 'labelme.widgets.canvas.Canvas.storeShapes', 'labelme.widgets.label_list_widget.LabelListWidget.findItemByShape', 'labelme.widgets.canvas.Canvas.undoLastPoint', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.shape.Shape.highlightVertex', 'labelme.logger.ColoredFormatter.format', 'labelme.app.MainWindow', 'labelme.app.MainWindow.loadLabels', 'labelme.app.MainWindow.brightnessContrast', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.app.MainWindow.zoomRequest', 'labelme.widgets.canvas.Canvas', 'labelme.widgets.canvas.Canvas.loadPixmap', 'labelme.app.MainWindow.addZoom', 'labelme.widgets.label_list_widget.LabelListWidget', 'labelme.shape.Shape.highlightClear', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.setShapeVisible', 'labelme.utils.qt.distancetoline']

diff: 4.5.9(original) 4.5.5
['labelme.widgets.canvas.Canvas.deleteShape', 'labelme.app.MainWindow.fileSearchChanged', 'labelme.app.MainWindow.setDirty', 'labelme.logger.ColoredFormatter', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.cli.on_docker.labelme_on_docker', 'labelme.widgets.canvas.Canvas.hideBackroundShapes', 'labelme.shape.Shape', 'labelme.widgets.canvas.Canvas.restoreShape', 'labelme.widgets.canvas.Canvas.isShapeRestorable', 'labelme.widgets.canvas.Canvas.loadShapes', 'labelme.widgets.canvas.Canvas.storeShapes', 'labelme.widgets.label_list_widget.LabelListWidget.findItemByShape', 'labelme.widgets.canvas.Canvas.undoLastPoint', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.shape.Shape.highlightVertex', 'labelme.logger.ColoredFormatter.format', 'labelme.app.MainWindow', 'labelme.app.MainWindow.loadLabels', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.app.MainWindow.zoomRequest', 'labelme.widgets.canvas.Canvas', 'labelme.widgets.canvas.Canvas.loadPixmap', 'labelme.app.MainWindow.addZoom', 'labelme.widgets.label_list_widget.LabelListWidget', 'labelme.shape.Shape.highlightClear', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.setShapeVisible', 'labelme.utils.qt.distancetoline']

diff: 4.5.9(original) 4.5.6
['labelme.widgets.canvas.Canvas.deleteShape', 'labelme.app.MainWindow.fileSearchChanged', 'labelme.app.MainWindow.setDirty', 'labelme.logger.ColoredFormatter', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.cli.on_docker.labelme_on_docker', 'labelme.widgets.canvas.Canvas.hideBackroundShapes', 'labelme.shape.Shape', 'labelme.widgets.canvas.Canvas.restoreShape', 'labelme.widgets.canvas.Canvas.isShapeRestorable', 'labelme.widgets.canvas.Canvas.loadShapes', 'labelme.widgets.canvas.Canvas.storeShapes', 'labelme.widgets.label_list_widget.LabelListWidget.findItemByShape', 'labelme.widgets.canvas.Canvas.undoLastPoint', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.shape.Shape.highlightVertex', 'labelme.logger.ColoredFormatter.format', 'labelme.app.MainWindow', 'labelme.app.MainWindow.loadLabels', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.app.MainWindow.zoomRequest', 'labelme.widgets.canvas.Canvas', 'labelme.widgets.canvas.Canvas.loadPixmap', 'labelme.app.MainWindow.addZoom', 'labelme.widgets.label_list_widget.LabelListWidget', 'labelme.shape.Shape.highlightClear', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.setShapeVisible', 'labelme.utils.qt.distancetoline']

diff: 4.5.9(original) 4.5.7
['labelme.widgets.canvas.Canvas.deleteShape', 'labelme.app.MainWindow.setDirty', 'labelme.widgets.canvas.Canvas.hideBackroundShapes', 'labelme.shape.Shape', 'labelme.widgets.canvas.Canvas.restoreShape', 'labelme.widgets.canvas.Canvas.isShapeRestorable', 'labelme.widgets.canvas.Canvas.loadShapes', 'labelme.widgets.canvas.Canvas.storeShapes', 'labelme.widgets.label_list_widget.LabelListWidget.findItemByShape', 'labelme.widgets.canvas.Canvas.undoLastPoint', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.shape.Shape.highlightVertex', 'labelme.app.MainWindow', 'labelme.app.MainWindow.loadLabels', 'labelme.widgets.canvas.Canvas.loadPixmap', 'labelme.widgets.canvas.Canvas', 'labelme.widgets.label_list_widget.LabelListWidget', 'labelme.shape.Shape.highlightClear', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.setShapeVisible', 'labelme.utils.qt.distancetoline']

diff: 4.5.9(original) 4.5.8
[](no clear difference between the source codes of two versions)

diff: 4.5.9(original) 4.5.8.post0
[](no clear difference between the source codes of two versions)

diff: 4.5.9(original) 4.5.10
[](no clear difference between the source codes of two versions)

diff: 4.5.9(original) 4.5.11
['labelme.app.MainWindow', 'labelme.cli.draw_json.main', 'labelme.app.MainWindow._get_rgb_by_label', 'labelme.cli.json_to_dataset.main']

diff: 4.5.9(original) 4.5.12
['labelme.cli.draw_json.main', 'labelme.widgets.canvas.Canvas.mouseMoveEvent', 'labelme.cli.json_to_dataset.main', 'labelme.widgets.canvas.Canvas.keyReleaseEvent', 'labelme.app.MainWindow._get_rgb_by_label', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.widgets.canvas.Canvas.keyPressEvent', 'labelme.widgets.canvas.Canvas', 'labelme.app.MainWindow']

diff: 4.5.9(original) 4.5.13
['labelme.app.MainWindow.tutorial', 'labelme.cli.draw_json.main', 'labelme.widgets.canvas.Canvas.mouseMoveEvent', 'labelme.cli.json_to_dataset.main', 'labelme.widgets.canvas.Canvas.keyReleaseEvent', 'labelme.app.MainWindow._get_rgb_by_label', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.widgets.canvas.Canvas.keyPressEvent', 'labelme.widgets.canvas.Canvas', 'labelme.app.MainWindow']

diff: 4.5.9(original) 4.6.0
['labelme.app.MainWindow.shapeSelectionChanged', 'labelme.app.MainWindow.canvasShapeEdgeSelected', 'labelme.app.MainWindow.pasteSelectedShape', 'labelme.widgets.canvas.Canvas.duplicateSelectedShapes', 'labelme.app.MainWindow._update_shape_color', 'labelme.widgets.canvas.Canvas.keyReleaseEvent', 'labelme.app.MainWindow.openPrevImg', 'labelme.app.MainWindow.duplicateSelectedShape', 'labelme.widgets.file_dialog_preview.FileDialogPreview.__init__', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.app.MainWindow.copySelectedShape', 'labelme.widgets.canvas.Canvas.mousePressEvent', 'labelme.widgets.file_dialog_preview.FileDialogPreview', 'labelme.app.MainWindow.enableKeepPrevScale', 'labelme.widgets.canvas.Canvas.mouseMoveEvent', 'labelme.widgets.file_dialog_preview.FileDialogPreview.onChange', 'labelme.app.MainWindow.openNextImg', 'labelme.widgets.canvas.Canvas.calculateOffsets', 'labelme.app.MainWindow.copyShape', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.app.MainWindow.addLabel', 'labelme.widgets.canvas.Canvas.deSelectShape', 'labelme.app.MainWindow', 'labelme.app.MainWindow.tutorial', 'labelme.cli.draw_json.main', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.setText', 'labelme.widgets.canvas.Canvas.selectedEdge', 'labelme.widgets.canvas.Canvas.copySelectedShapes', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.widgets.label_list_widget.LabelListWidgetItem.__init__', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.__init__', 'labelme.widgets.canvas.Canvas', 'labelme.app.MainWindow.openFile', 'labelme.widgets.label_list_widget.LabelListWidgetItem', 'labelme.widgets.canvas.Canvas.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.selectShapePoint', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.clear', 'labelme.cli.json_to_dataset.main', 'labelme.app.MainWindow._get_rgb_by_label', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.keyPressEvent', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.setPixmap', 'labelme.app.MainWindow.saveLabels', 'labelme.widgets.canvas.Canvas.moveByKeyboard']

diff: 4.5.9(original) 5.0.0
['labelme.app.MainWindow.shapeSelectionChanged', 'labelme.app.MainWindow.canvasShapeEdgeSelected', 'labelme.app.MainWindow.pasteSelectedShape', 'labelme.widgets.canvas.Canvas.duplicateSelectedShapes', 'labelme.app.MainWindow._update_shape_color', 'labelme.widgets.canvas.Canvas.keyReleaseEvent', 'labelme.app.MainWindow.openPrevImg', 'labelme.app.MainWindow.duplicateSelectedShape', 'labelme.widgets.file_dialog_preview.FileDialogPreview.__init__', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.app.MainWindow.copySelectedShape', 'labelme.widgets.canvas.Canvas.mousePressEvent', 'labelme.widgets.file_dialog_preview.FileDialogPreview', 'labelme.app.MainWindow.enableKeepPrevScale', 'labelme.widgets.canvas.Canvas.mouseMoveEvent', 'labelme.widgets.file_dialog_preview.FileDialogPreview.onChange', 'labelme.app.MainWindow.openNextImg', 'labelme.widgets.canvas.Canvas.calculateOffsets', 'labelme.app.MainWindow.copyShape', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.app.MainWindow.addLabel', 'labelme.widgets.canvas.Canvas.deSelectShape', 'labelme.app.MainWindow', 'labelme.app.MainWindow.tutorial', 'labelme.cli.draw_json.main', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.setText', 'labelme.widgets.canvas.Canvas.selectedEdge', 'labelme.widgets.canvas.Canvas.copySelectedShapes', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.widgets.label_list_widget.LabelListWidgetItem.__init__', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.__init__', 'labelme.widgets.canvas.Canvas', 'labelme.app.MainWindow.openFile', 'labelme.widgets.label_list_widget.LabelListWidgetItem', 'labelme.widgets.canvas.Canvas.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.selectShapePoint', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.clear', 'labelme.cli.json_to_dataset.main', 'labelme.app.MainWindow.scanAllImages', 'labelme.app.MainWindow._get_rgb_by_label', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.keyPressEvent', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.setPixmap', 'labelme.widgets.canvas.Canvas.moveByKeyboard']

diff: 4.5.9(original) 5.0.1a0
['labelme.app.MainWindow.shapeSelectionChanged', 'labelme.app.MainWindow.canvasShapeEdgeSelected', 'labelme.app.MainWindow.pasteSelectedShape', 'labelme.widgets.canvas.Canvas.duplicateSelectedShapes', 'labelme.app.MainWindow._update_shape_color', 'labelme.widgets.canvas.Canvas.keyReleaseEvent', 'labelme.app.MainWindow.openPrevImg', 'labelme.app.MainWindow.duplicateSelectedShape', 'labelme.widgets.file_dialog_preview.FileDialogPreview.__init__', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.app.MainWindow.copySelectedShape', 'labelme.widgets.canvas.Canvas.mousePressEvent', 'labelme.widgets.file_dialog_preview.FileDialogPreview', 'labelme.app.MainWindow.enableKeepPrevScale', 'labelme.widgets.canvas.Canvas.mouseMoveEvent', 'labelme.widgets.file_dialog_preview.FileDialogPreview.onChange', 'labelme.app.MainWindow.openNextImg', 'labelme.widgets.canvas.Canvas.calculateOffsets', 'labelme.app.MainWindow.copyShape', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.app.MainWindow.addLabel', 'labelme.widgets.canvas.Canvas.deSelectShape', 'labelme.app.MainWindow', 'labelme.app.MainWindow.tutorial', 'labelme.cli.draw_json.main', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.setText', 'labelme.widgets.canvas.Canvas.selectedEdge', 'labelme.widgets.canvas.Canvas.copySelectedShapes', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.widgets.label_list_widget.LabelListWidgetItem.__init__', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.__init__', 'labelme.widgets.canvas.Canvas', 'labelme.app.MainWindow.openFile', 'labelme.widgets.label_list_widget.LabelListWidgetItem', 'labelme.widgets.canvas.Canvas.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.selectShapePoint', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.clear', 'labelme.cli.json_to_dataset.main', 'labelme.app.MainWindow.scanAllImages', 'labelme.app.MainWindow._get_rgb_by_label', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.keyPressEvent', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.setPixmap', 'labelme.widgets.canvas.Canvas.moveByKeyboard']

diff: 4.5.9(original) 5.0.1
['labelme.app.MainWindow.shapeSelectionChanged', 'labelme.app.MainWindow.canvasShapeEdgeSelected', 'labelme.app.MainWindow.pasteSelectedShape', 'labelme.widgets.canvas.Canvas.duplicateSelectedShapes', 'labelme.app.MainWindow._update_shape_color', 'labelme.widgets.canvas.Canvas.keyReleaseEvent', 'labelme.app.MainWindow.openPrevImg', 'labelme.app.MainWindow.duplicateSelectedShape', 'labelme.widgets.file_dialog_preview.FileDialogPreview.__init__', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.app.MainWindow.copySelectedShape', 'labelme.widgets.canvas.Canvas.mousePressEvent', 'labelme.widgets.file_dialog_preview.FileDialogPreview', 'labelme.app.MainWindow.enableKeepPrevScale', 'labelme.widgets.canvas.Canvas.mouseMoveEvent', 'labelme.widgets.file_dialog_preview.FileDialogPreview.onChange', 'labelme.app.MainWindow.openNextImg', 'labelme.widgets.canvas.Canvas.calculateOffsets', 'labelme.app.MainWindow.copyShape', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.app.MainWindow.addLabel', 'labelme.widgets.canvas.Canvas.deSelectShape', 'labelme.app.MainWindow', 'labelme.app.MainWindow.tutorial', 'labelme.cli.draw_json.main', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.setText', 'labelme.widgets.canvas.Canvas.selectedEdge', 'labelme.widgets.canvas.Canvas.copySelectedShapes', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.widgets.label_list_widget.LabelListWidgetItem.__init__', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.__init__', 'labelme.widgets.canvas.Canvas', 'labelme.app.MainWindow.openFile', 'labelme.widgets.label_list_widget.LabelListWidgetItem', 'labelme.widgets.canvas.Canvas.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.selectShapePoint', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.clear', 'labelme.cli.json_to_dataset.main', 'labelme.app.MainWindow.scanAllImages', 'labelme.app.MainWindow._get_rgb_by_label', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.keyPressEvent', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.setPixmap', 'labelme.widgets.canvas.Canvas.moveByKeyboard']

As for other packages, the APIs of @outside_package_name are called by labelme in the call graph and the dependencies on these packages also stay the same in our suggested versions, thus avoiding any outside conflict.

Therefore, we believe that it is quite safe to loose your dependency on labelme from "labelme==4.5.9" to "labelme>=4.5.0,<=4.5.9". This will improve the applicability of Labelme2YOLO and reduce the possibility of any further dependency conflict with other projects/packages.

Conversion too slow

You should not read the image before saving it

Can directly copy and paste images

Validation size is not really optional

When you run the command without specifying any optional settings, the dataset is still automatically divided into train/val. It would be great if we had an option to have all registered to train.

Issue converting labelme JSON to YOLODataset

Here is my labelme JSON:

{ "version": "5.3.1", "flags": {}, "shapes": [ { "label": "Center", "points": [ [ 1400, 900 ], [ 1500, 900 ], [ 1500, 1000 ], [ 1400, 1000 ] ], "group_id": null, "description": "", "shape_type": "Rectangle", "flags": {} }, { "label": "LeftGaurd", "points": [ [ 1320, 920 ], [ 1420, 920 ], [ 1420, 1020 ], [ 1320, 1020 ] ], "group_id": null, "description": "", "shape_type": "Circle", "flags": {} }, { "label": "LeftTackle", "points": [ [ 1240, 920 ], [ 1340, 920 ], [ 1340, 1020 ], [ 1240, 1020 ] ], "group_id": null, "description": "", "shape_type": "Circle", "flags": {} } ], "imagePath": "img/latest-00-QBShotGun-WRLeftHashmarkOn-WRRightHashmarkOn-FeatherLeft-WRRightHashmarkOff-FeatherRight-normal-16686378232057195.png", "imageData": "", "imageHeight": 1200, "imageWidth": 2500 }

Im trying to convert to YOLO Dataset using this command:
labelme2yolo --json_dir json --val_size 0.15 --test_size 0.15

It Generates a Folders YOLODataset -> images, label -> test, train val, but the folders are empty.

Im using:

Python 3.10.12
YoloV8
labelme2yolo 0.1.2 

please help with this issue.
Thanks

Bounding box position shifted

Hello,
I used your logic in converting labelme json file to yolo text file. The dimension of the box is not much changed but the position seems to be shifted from the actual locations. Hence the yolo model is not able to detect the actual object in the object detection task

how to merge object with same group id?

In labelme, I use same group id to label a broken object. In Labelme2YOLO, it seems that these objects are labeled as different objects. How should i process these objects?

Installing error

Hi, I'm trying to install the requirements.txt on a MacOS Arm64 using pip install -r requirements.txt and get the following error:

Collecting PyQt5!=5.15.3,!=5.15.4 (from labelme>=4.5.0->-r requirements.txt (line 7))
Using cached PyQt5-5.15.10.tar.gz (3.2 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... error
error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [16 lines of output]
Querying qmake about your Qt installation...
Traceback (most recent call last):
File "/Users/gerardocelis/miniconda3/envs/cameratraps-detector/lib/python3.8/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in
main()
File "/Users/gerardocelis/miniconda3/envs/cameratraps-detector/lib/python3.8/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/Users/gerardocelis/miniconda3/envs/cameratraps-detector/lib/python3.8/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 152, in prepare_metadata_for_build_wheel
whl_basename = backend.build_wheel(metadata_directory, config_settings)
File "/private/var/folders/h7/79_xs8tx5bx_ykgdf0cx722m0000gp/T/pip-build-env-1uhuy18q/overlay/lib/python3.8/site-packages/sipbuild/api.py", line 46, in build_wheel
project = AbstractProject.bootstrap('wheel',
File "/private/var/folders/h7/79_xs8tx5bx_ykgdf0cx722m0000gp/T/pip-build-env-1uhuy18q/overlay/lib/python3.8/site-packages/sipbuild/abstract_project.py", line 87, in bootstrap
project.setup(pyproject, tool, tool_description)
File "/private/var/folders/h7/79_xs8tx5bx_ykgdf0cx722m0000gp/T/pip-build-env-1uhuy18q/overlay/lib/python3.8/site-packages/sipbuild/project.py", line 602, in setup
self.update(tool)
File "project.py", line 165, in update
sipbuild.exceptions.UserException
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

Any ideas how to install?

doesnt work

your package doesnt work at all
what do you mean by home and username , cant i do it from anywhere

Package rasing a Type error

Converting 0006.json for train ...
Traceback (most recent call last):
File "C:\Users\Administrator\Downloads\Compressed\Labelme2YOLO-main\Labelme2YOLO-main\labelme2yolo.py", line 228, in
convertor.convert(val_size=args.val_size)
File "C:\Users\Administrator\Downloads\Compressed\Labelme2YOLO-main\Labelme2YOLO-main\labelme2yolo.py", line 97, in convert
img_path = self._save_yolo_image(json_data,
File "C:\Users\Administrator\Downloads\Compressed\Labelme2YOLO-main\Labelme2YOLO-main\labelme2yolo.py", line 194, in _save_yolo_image
img = utils.img_b64_to_arr(json_data['imageData'])
File "C:\ProgramData\anaconda3\lib\site-packages\labelme\utils\image.py", line 24, in img_b64_to_arr
img_data = base64.b64decode(img_b64)
File "C:\ProgramData\anaconda3\lib\base64.py", line 80, in b64decode
s = _bytes_from_decode_data(s)
File "C:\ProgramData\anaconda3\lib\base64.py", line 45, in _bytes_from_decode_data
raise TypeError("argument should be a bytes-like object or ASCII "
TypeError: argument should be a bytes-like object or ASCII string, not 'NoneType'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.