translate

This commit is contained in:
yatenglg 2023-05-11 20:03:42 +08:00
parent c6328fab6c
commit 977f889b01
9 changed files with 468 additions and 243 deletions

View File

@ -1,5 +1,6 @@
# ISAT with segment anything
## Image segmentation annotation tool with segment anything.
# Interactive semi-automatic annotation tool for image segmentation.
![annotate.gif](./display/标注%20-big-original.gif)
Quick annotate for image segmentation by [segment anything](https://github.com/facebookresearch/segment-anything)
@ -15,13 +16,17 @@ Demo Video[youtube](https://www.youtube.com/watch?v=yLdZCPmX-Bc)
# Feature
1. Support semantic segmentation and instance segmentation.
2. Get the mask by SAM (segment anything model) and convert the mask into polygon.
2. Integrating SAM (segment anything model) for interactive semi-automatic annotation of image segmentation.
3. Interactive correction mask, by clicking on the area of interest (not of interest) with the left (right) mouse button.
4. Support manual creation of polygons.
5. Support modifying polygons.
6. Support for adjusting polygon occlusion.
7. Support opening JSON files annotated by labelme (please backup a copy before opening).
8. Support exporting annotations as single-channel png images.
7. Support preview annotation result.
8. ISAT format json, contains more information.
9. Support opening JSON files annotated by labelme (please backup a copy before opening), and modify.
10. Support exporting ISAT format json to VOC as single-channel png images.
11. Support exporting ISAT format jsons to COCO format json.
12. Support exporting COCO format json to ISAT format jsons.
# INSTALL
## 1. Run the source code

View File

@ -1,5 +1,5 @@
# ISAT with segment anything
## ISAT 图像分割标注工具(集成segment anything)
# 交互式半自动图像分割标注工具
![标注.gif](./display/标注%20-big-original.gif)

View File

@ -19,4 +19,3 @@ label:
name: cake
- color: '#5c3566'
name: fence
language: zh

View File

@ -19,4 +19,4 @@ label:
name: cake
- color: '#5c3566'
name: fence
language: en
language: zh

View File

@ -107,7 +107,7 @@ class Ui_Dialog(object):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "ISAT to VOC png"))
self.pushButton_save_root.setText(_translate("Dialog", "Save root"))
self.lineEdit_label_root.setPlaceholderText(_translate("Dialog", "ISAT annotations root"))
self.lineEdit_label_root.setPlaceholderText(_translate("Dialog", "ISAT jsons root"))
self.pushButton_label_root.setText(_translate("Dialog", "Label root"))
self.lineEdit_save_root.setPlaceholderText(_translate("Dialog", "png save root"))
self.checkBox_is_instance.setText(_translate("Dialog", "Is instance"))

View File

@ -60,7 +60,7 @@
<bool>true</bool>
</property>
<property name="placeholderText">
<string>ISAT annotations root</string>
<string>ISAT jsons root</string>
</property>
</widget>
</item>

348
ui/en.ts
View File

@ -39,7 +39,7 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="convert_dialog.py" line="115"/>
<location filename="ISAT_to_VOC_dialog.py" line="121"/>
<source>cache</source>
<translation type="unfinished"></translation>
</message>
@ -49,47 +49,27 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="convert_dialog.py" line="106"/>
<source>ISAT to png converter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="convert_dialog.py" line="107"/>
<location filename="ISAT_to_VOC_dialog.py" line="112"/>
<source>png save root</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="convert_dialog.py" line="108"/>
<location filename="ISAT_to_VOC_dialog.py" line="109"/>
<source>Save root</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="convert_dialog.py" line="110"/>
<source>ISAT annotations root</source>
<location filename="ISAT_to_VOC_dialog.py" line="110"/>
<source>ISAT jsons root</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="convert_dialog.py" line="111"/>
<location filename="ISAT_to_VOC_dialog.py" line="111"/>
<source>Label root</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="convert_dialog.py" line="112"/>
<source>aaa</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="convert_dialog.py" line="113"/>
<source>/</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="convert_dialog.py" line="114"/>
<source>Convert ISAT annotations to png.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="convert_dialog.py" line="116"/>
<location filename="ISAT_to_VOC_dialog.py" line="122"/>
<source>convert</source>
<translation type="unfinished"></translation>
</message>
@ -164,17 +144,17 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="setting_dialog.py" line="93"/>
<location filename="setting_dialog.py" line="105"/>
<source>Label</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="setting_dialog.py" line="98"/>
<location filename="setting_dialog.py" line="110"/>
<source>Apply</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="setting_dialog.py" line="97"/>
<location filename="setting_dialog.py" line="109"/>
<source>Cache</source>
<translation type="unfinished"></translation>
</message>
@ -200,27 +180,22 @@ http://www.yatenglg.cn/isat</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="convert_dialog.py" line="109"/>
<source>Is Instance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="setting_dialog.py" line="92"/>
<location filename="setting_dialog.py" line="104"/>
<source>Setting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="setting_dialog.py" line="94"/>
<location filename="setting_dialog.py" line="106"/>
<source>Add new label</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="setting_dialog.py" line="95"/>
<location filename="setting_dialog.py" line="107"/>
<source>Import</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="setting_dialog.py" line="96"/>
<location filename="setting_dialog.py" line="108"/>
<source>Export</source>
<translation type="unfinished"></translation>
</message>
@ -304,6 +279,94 @@ http://www.yatenglg.cn/isat</source>
<source>V</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="COCO_to_ISAT_dialog.py" line="107"/>
<source>COCO to ISAT</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="COCO_to_ISAT_dialog.py" line="109"/>
<source>Json path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="COCO_to_ISAT_dialog.py" line="110"/>
<source>ISAT jsons save root</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="COCO_to_ISAT_dialog.py" line="111"/>
<source>COCO json path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="ISAT_to_VOC_dialog.py" line="114"/>
<source>Keep crowd</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="COCO_to_ISAT_dialog.py" line="113"/>
<source>Convert COCO json to ISAT jsons.All layer attr is 1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="ISAT_to_COCO_dialog.py" line="96"/>
<source>ISAT to COCO</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="ISAT_to_COCO_dialog.py" line="97"/>
<source>Save path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="ISAT_to_COCO_dialog.py" line="98"/>
<source>Jsons root</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="ISAT_to_COCO_dialog.py" line="99"/>
<source>COCO json save path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="ISAT_to_COCO_dialog.py" line="101"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:''; font-size:12pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Times New Roman';&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="ISAT_to_COCO_dialog.py" line="106"/>
<source>Convert ISAT jsons to COCO json.The layer attr will be lost.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="ISAT_to_VOC_dialog.py" line="108"/>
<source>ISAT to VOC png</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="ISAT_to_VOC_dialog.py" line="113"/>
<source>Is instance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="ISAT_to_VOC_dialog.py" line="115"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:''; font-size:12pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="ISAT_to_VOC_dialog.py" line="120"/>
<source>Convert ISAT annotations to VOC png.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Form</name>
@ -361,394 +424,429 @@ http://www.yatenglg.cn/isat</source>
<context>
<name>MainWindow</name>
<message>
<location filename="MainWindow.py" line="320"/>
<location filename="MainWindow.py" line="333"/>
<source>ISAT</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="321"/>
<location filename="MainWindow.py" line="334"/>
<source>File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="322"/>
<location filename="MainWindow.py" line="335"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="323"/>
<location filename="MainWindow.py" line="336"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="325"/>
<location filename="MainWindow.py" line="338"/>
<source>Tools</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="372"/>
<location filename="MainWindow.py" line="385"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="327"/>
<location filename="MainWindow.py" line="340"/>
<source>toolBar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="328"/>
<location filename="MainWindow.py" line="341"/>
<source>Info</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="329"/>
<location filename="MainWindow.py" line="342"/>
<source>Labels</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="330"/>
<location filename="MainWindow.py" line="343"/>
<source>Files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="333"/>
<location filename="MainWindow.py" line="346"/>
<source>Zoom in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="335"/>
<location filename="MainWindow.py" line="348"/>
<source>Zoom out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="338"/>
<location filename="MainWindow.py" line="351"/>
<source>Fit window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="340"/>
<location filename="MainWindow.py" line="353"/>
<source>F</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="341"/>
<location filename="MainWindow.py" line="354"/>
<source>Setting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="344"/>
<location filename="MainWindow.py" line="357"/>
<source>Exit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="348"/>
<location filename="MainWindow.py" line="361"/>
<source>Save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="350"/>
<location filename="MainWindow.py" line="363"/>
<source>S</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="352"/>
<location filename="MainWindow.py" line="365"/>
<source>Prev image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="354"/>
<location filename="MainWindow.py" line="367"/>
<source>A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="356"/>
<location filename="MainWindow.py" line="369"/>
<source>Next image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="358"/>
<location filename="MainWindow.py" line="371"/>
<source>D</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="360"/>
<location filename="MainWindow.py" line="373"/>
<source>About</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="402"/>
<location filename="MainWindow.py" line="416"/>
<source>C</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="365"/>
<location filename="MainWindow.py" line="378"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="366"/>
<location filename="MainWindow.py" line="379"/>
<source>Delete polygon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="368"/>
<location filename="MainWindow.py" line="381"/>
<source>Del</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="369"/>
<location filename="MainWindow.py" line="382"/>
<source>Bit map</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="371"/>
<location filename="MainWindow.py" line="384"/>
<source>Space</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="373"/>
<location filename="MainWindow.py" line="386"/>
<source>Edit polygon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="398"/>
<location filename="MainWindow.py" line="412"/>
<source>E</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="375"/>
<location filename="MainWindow.py" line="388"/>
<source>To top</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="376"/>
<location filename="MainWindow.py" line="389"/>
<source>Move polygon to top layer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="378"/>
<location filename="MainWindow.py" line="391"/>
<source>T</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="379"/>
<location filename="MainWindow.py" line="392"/>
<source>To bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="380"/>
<location filename="MainWindow.py" line="393"/>
<source>Move polygon to bottom layer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="382"/>
<location filename="MainWindow.py" line="395"/>
<source>B</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="383"/>
<source>Label converter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="384"/>
<source>Convert annotations to png image.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="324"/>
<location filename="MainWindow.py" line="337"/>
<source>Laguage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="331"/>
<location filename="MainWindow.py" line="344"/>
<source>Images dir</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="332"/>
<location filename="MainWindow.py" line="345"/>
<source>Open images dir.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="334"/>
<location filename="MainWindow.py" line="347"/>
<source>Zoom in.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="336"/>
<location filename="MainWindow.py" line="349"/>
<source>Zoom out.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="339"/>
<location filename="MainWindow.py" line="352"/>
<source>Fit window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="342"/>
<location filename="MainWindow.py" line="355"/>
<source>Setting.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="345"/>
<location filename="MainWindow.py" line="358"/>
<source>Exit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="346"/>
<location filename="MainWindow.py" line="359"/>
<source>Label dir</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="347"/>
<location filename="MainWindow.py" line="360"/>
<source>Open label dir.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="349"/>
<location filename="MainWindow.py" line="362"/>
<source>Save annotation.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="353"/>
<location filename="MainWindow.py" line="366"/>
<source>Prev image.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="357"/>
<location filename="MainWindow.py" line="370"/>
<source>Next image.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="359"/>
<location filename="MainWindow.py" line="372"/>
<source>Shortcut</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="362"/>
<location filename="MainWindow.py" line="375"/>
<source>Segment anything</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="363"/>
<location filename="MainWindow.py" line="376"/>
<source>Quick annotate using Segment anything.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="364"/>
<location filename="MainWindow.py" line="377"/>
<source>Q</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="367"/>
<location filename="MainWindow.py" line="380"/>
<source>Delete polygon.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="370"/>
<location filename="MainWindow.py" line="383"/>
<source>Show instance or segmeent state.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="374"/>
<location filename="MainWindow.py" line="387"/>
<source>Edit polygon attribute.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="377"/>
<location filename="MainWindow.py" line="390"/>
<source>Move polygon to top layer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="381"/>
<location filename="MainWindow.py" line="394"/>
<source>Move polygon to bottom layer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="385"/>
<location filename="MainWindow.py" line="399"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="386"/>
<location filename="MainWindow.py" line="400"/>
<source>English</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="388"/>
<location filename="MainWindow.py" line="402"/>
<source>Backspace</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="389"/>
<location filename="MainWindow.py" line="403"/>
<source>Backspace.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="390"/>
<location filename="MainWindow.py" line="404"/>
<source>Z</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="391"/>
<location filename="MainWindow.py" line="405"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="392"/>
<location filename="MainWindow.py" line="406"/>
<source>Annotate canceled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="393"/>
<location filename="MainWindow.py" line="407"/>
<source>Annotate canceled.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="394"/>
<location filename="MainWindow.py" line="408"/>
<source>Esc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="395"/>
<location filename="MainWindow.py" line="409"/>
<source>Finish</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="396"/>
<location filename="MainWindow.py" line="410"/>
<source>Annotate finished</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="397"/>
<location filename="MainWindow.py" line="411"/>
<source>Annotate finished.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="399"/>
<location filename="MainWindow.py" line="413"/>
<source>Polygon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="400"/>
<location filename="MainWindow.py" line="414"/>
<source>Draw polygon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="401"/>
<location filename="MainWindow.py" line="415"/>
<source>Accurately annotate by drawing polygon. </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="403"/>
<location filename="MainWindow.py" line="418"/>
<source>Visible</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="404"/>
<location filename="MainWindow.py" line="419"/>
<source>V</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="396"/>
<source>To VOC</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="397"/>
<source>Convert ISAT to VOC</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="398"/>
<source>Convert ISAT jsons to VOC png image.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="420"/>
<source>To COCO</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="421"/>
<source>Convert ISAT to COCO</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="422"/>
<source>Convert ISAT jsons to COCO json.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="423"/>
<source>From COCO</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="424"/>
<source>Convert COCO to ISAT</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="MainWindow.py" line="425"/>
<source>Convert COCO json to ISAT jsons.</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

Binary file not shown.

View File

@ -39,7 +39,7 @@
<translation>:</translation>
</message>
<message>
<location filename="convert_dialog.py" line="115"/>
<location filename="ISAT_to_VOC_dialog.py" line="121"/>
<source>cache</source>
<translation></translation>
</message>
@ -51,50 +51,40 @@
<message>
<location filename="convert_dialog.py" line="106"/>
<source>ISAT to png converter</source>
<translation>ISAT标签文件转png</translation>
<translation type="obsolete">ISAT标签文件转png</translation>
</message>
<message>
<location filename="convert_dialog.py" line="107"/>
<location filename="ISAT_to_VOC_dialog.py" line="112"/>
<source>png save root</source>
<translation>png保存路径</translation>
<translation></translation>
</message>
<message>
<location filename="convert_dialog.py" line="108"/>
<location filename="ISAT_to_VOC_dialog.py" line="109"/>
<source>Save root</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="convert_dialog.py" line="109"/>
<source>Is Instance</source>
<translation></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="convert_dialog.py" line="110"/>
<source>ISAT annotations root</source>
<translation>ISAT标注文件路径</translation>
<location filename="ISAT_to_VOC_dialog.py" line="110"/>
<source>ISAT jsons root</source>
<translation></translation>
</message>
<message>
<location filename="convert_dialog.py" line="111"/>
<location filename="ISAT_to_VOC_dialog.py" line="111"/>
<source>Label root</source>
<translation></translation>
</message>
<message>
<location filename="convert_dialog.py" line="112"/>
<source>aaa</source>
<translation></translation>
</message>
<message>
<location filename="convert_dialog.py" line="113"/>
<source>/</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="convert_dialog.py" line="114"/>
<source>Convert ISAT annotations to png.</source>
<translation>ISAT标注文件转换为png图片.</translation>
<translation type="obsolete">ISAT标注文件转换为png图片.</translation>
</message>
<message>
<location filename="convert_dialog.py" line="116"/>
<location filename="ISAT_to_VOC_dialog.py" line="122"/>
<source>convert</source>
<translation></translation>
</message>
@ -259,7 +249,7 @@
<translation type="obsolete"></translation>
</message>
<message>
<location filename="setting_dialog.py" line="93"/>
<location filename="setting_dialog.py" line="105"/>
<source>Label</source>
<translation></translation>
</message>
@ -299,27 +289,27 @@
<translation type="obsolete"></translation>
</message>
<message>
<location filename="setting_dialog.py" line="98"/>
<location filename="setting_dialog.py" line="110"/>
<source>Apply</source>
<translation></translation>
</message>
<message>
<location filename="setting_dialog.py" line="97"/>
<location filename="setting_dialog.py" line="109"/>
<source>Cache</source>
<translation></translation>
</message>
<message>
<location filename="setting_dialog.py" line="92"/>
<location filename="setting_dialog.py" line="104"/>
<source>Setting</source>
<translation></translation>
</message>
<message>
<location filename="setting_dialog.py" line="95"/>
<location filename="setting_dialog.py" line="107"/>
<source>Import</source>
<translation></translation>
</message>
<message>
<location filename="setting_dialog.py" line="96"/>
<location filename="setting_dialog.py" line="108"/>
<source>Export</source>
<translation></translation>
</message>
@ -345,7 +335,7 @@ http://www.yatenglg.cn/isat</source>
<translation></translation>
</message>
<message>
<location filename="setting_dialog.py" line="94"/>
<location filename="setting_dialog.py" line="106"/>
<source>Add new label</source>
<translation></translation>
</message>
@ -429,6 +419,94 @@ http://www.yatenglg.cn/isat</source>
<source>V</source>
<translation></translation>
</message>
<message>
<location filename="COCO_to_ISAT_dialog.py" line="107"/>
<source>COCO to ISAT</source>
<translation>COCO转ISAT</translation>
</message>
<message>
<location filename="COCO_to_ISAT_dialog.py" line="109"/>
<source>Json path</source>
<translation>Json路径</translation>
</message>
<message>
<location filename="COCO_to_ISAT_dialog.py" line="110"/>
<source>ISAT jsons save root</source>
<translation></translation>
</message>
<message>
<location filename="COCO_to_ISAT_dialog.py" line="111"/>
<source>COCO json path</source>
<translation></translation>
</message>
<message>
<location filename="ISAT_to_VOC_dialog.py" line="114"/>
<source>Keep crowd</source>
<translation></translation>
</message>
<message>
<location filename="COCO_to_ISAT_dialog.py" line="113"/>
<source>Convert COCO json to ISAT jsons.All layer attr is 1.</source>
<translation>COCO格式json转为ISAT格式json,1</translation>
</message>
<message>
<location filename="ISAT_to_COCO_dialog.py" line="96"/>
<source>ISAT to COCO</source>
<translation>ISAT转COCO</translation>
</message>
<message>
<location filename="ISAT_to_COCO_dialog.py" line="97"/>
<source>Save path</source>
<translation></translation>
</message>
<message>
<location filename="ISAT_to_COCO_dialog.py" line="98"/>
<source>Jsons root</source>
<translation>jsons目录</translation>
</message>
<message>
<location filename="ISAT_to_COCO_dialog.py" line="99"/>
<source>COCO json save path</source>
<translation></translation>
</message>
<message>
<location filename="ISAT_to_COCO_dialog.py" line="101"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;&apos;; font-size:12pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;Times New Roman&apos;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation></translation>
</message>
<message>
<location filename="ISAT_to_COCO_dialog.py" line="106"/>
<source>Convert ISAT jsons to COCO json.The layer attr will be lost.</source>
<translation>ISAT格式json转换为COCO格式json.</translation>
</message>
<message>
<location filename="ISAT_to_VOC_dialog.py" line="108"/>
<source>ISAT to VOC png</source>
<translation>ISAT转VOC</translation>
</message>
<message>
<location filename="ISAT_to_VOC_dialog.py" line="113"/>
<source>Is instance</source>
<translation></translation>
</message>
<message>
<location filename="ISAT_to_VOC_dialog.py" line="115"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;&apos;; font-size:12pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation></translation>
</message>
<message>
<location filename="ISAT_to_VOC_dialog.py" line="120"/>
<source>Convert ISAT annotations to VOC png.</source>
<translation>ISAT格式json转换为VOC格式单通道png图片</translation>
</message>
</context>
<context>
<name>Form</name>
@ -486,52 +564,52 @@ http://www.yatenglg.cn/isat</source>
<context>
<name>MainWindow</name>
<message>
<location filename="MainWindow.py" line="320"/>
<location filename="MainWindow.py" line="333"/>
<source>ISAT</source>
<translation>ISAT </translation>
</message>
<message>
<location filename="MainWindow.py" line="321"/>
<location filename="MainWindow.py" line="334"/>
<source>File</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="322"/>
<location filename="MainWindow.py" line="335"/>
<source>View</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="323"/>
<location filename="MainWindow.py" line="336"/>
<source>Help</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="325"/>
<location filename="MainWindow.py" line="338"/>
<source>Tools</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="372"/>
<location filename="MainWindow.py" line="385"/>
<source>Edit</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="327"/>
<location filename="MainWindow.py" line="340"/>
<source>toolBar</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="328"/>
<location filename="MainWindow.py" line="341"/>
<source>Info</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="329"/>
<location filename="MainWindow.py" line="342"/>
<source>Labels</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="330"/>
<location filename="MainWindow.py" line="343"/>
<source>Files</source>
<translation></translation>
</message>
@ -546,32 +624,32 @@ http://www.yatenglg.cn/isat</source>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="MainWindow.py" line="333"/>
<location filename="MainWindow.py" line="346"/>
<source>Zoom in</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="335"/>
<location filename="MainWindow.py" line="348"/>
<source>Zoom out</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="338"/>
<location filename="MainWindow.py" line="351"/>
<source>Fit window</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="340"/>
<location filename="MainWindow.py" line="353"/>
<source>F</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="341"/>
<location filename="MainWindow.py" line="354"/>
<source>Setting</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="344"/>
<location filename="MainWindow.py" line="357"/>
<source>Exit</source>
<translation>退</translation>
</message>
@ -581,12 +659,12 @@ http://www.yatenglg.cn/isat</source>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="MainWindow.py" line="348"/>
<location filename="MainWindow.py" line="361"/>
<source>Save</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="350"/>
<location filename="MainWindow.py" line="363"/>
<source>S</source>
<translation></translation>
</message>
@ -596,12 +674,12 @@ http://www.yatenglg.cn/isat</source>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="MainWindow.py" line="352"/>
<location filename="MainWindow.py" line="365"/>
<source>Prev image</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="354"/>
<location filename="MainWindow.py" line="367"/>
<source>A</source>
<translation></translation>
</message>
@ -611,17 +689,17 @@ http://www.yatenglg.cn/isat</source>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="MainWindow.py" line="356"/>
<location filename="MainWindow.py" line="369"/>
<source>Next image</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="358"/>
<location filename="MainWindow.py" line="371"/>
<source>D</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="360"/>
<location filename="MainWindow.py" line="373"/>
<source>About</source>
<translation></translation>
</message>
@ -636,92 +714,92 @@ http://www.yatenglg.cn/isat</source>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="MainWindow.py" line="402"/>
<location filename="MainWindow.py" line="416"/>
<source>C</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="365"/>
<location filename="MainWindow.py" line="378"/>
<source>Delete</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="366"/>
<location filename="MainWindow.py" line="379"/>
<source>Delete polygon</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="368"/>
<location filename="MainWindow.py" line="381"/>
<source>Del</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="369"/>
<location filename="MainWindow.py" line="382"/>
<source>Bit map</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="371"/>
<location filename="MainWindow.py" line="384"/>
<source>Space</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="373"/>
<location filename="MainWindow.py" line="386"/>
<source>Edit polygon</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="398"/>
<location filename="MainWindow.py" line="412"/>
<source>E</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="375"/>
<location filename="MainWindow.py" line="388"/>
<source>To top</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="376"/>
<location filename="MainWindow.py" line="389"/>
<source>Move polygon to top layer</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="378"/>
<location filename="MainWindow.py" line="391"/>
<source>T</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="379"/>
<location filename="MainWindow.py" line="392"/>
<source>To bottom</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="380"/>
<location filename="MainWindow.py" line="393"/>
<source>Move polygon to bottom layer</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="382"/>
<location filename="MainWindow.py" line="395"/>
<source>B</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="383"/>
<source>Label converter</source>
<translation></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="MainWindow.py" line="384"/>
<source>Convert annotations to png image.</source>
<translation>ISAT标注文件转换为png图片.</translation>
<translation type="obsolete">ISAT标注文件转换为png图片.</translation>
</message>
<message>
<location filename="MainWindow.py" line="324"/>
<location filename="MainWindow.py" line="337"/>
<source>Laguage</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="359"/>
<location filename="MainWindow.py" line="372"/>
<source>Shortcut</source>
<translation></translation>
</message>
@ -731,52 +809,52 @@ http://www.yatenglg.cn/isat</source>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="MainWindow.py" line="386"/>
<location filename="MainWindow.py" line="400"/>
<source>English</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="385"/>
<location filename="MainWindow.py" line="399"/>
<source></source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="331"/>
<location filename="MainWindow.py" line="344"/>
<source>Images dir</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="332"/>
<location filename="MainWindow.py" line="345"/>
<source>Open images dir.</source>
<translation>.</translation>
</message>
<message>
<location filename="MainWindow.py" line="334"/>
<location filename="MainWindow.py" line="347"/>
<source>Zoom in.</source>
<translation>.</translation>
</message>
<message>
<location filename="MainWindow.py" line="336"/>
<location filename="MainWindow.py" line="349"/>
<source>Zoom out.</source>
<translation>.</translation>
</message>
<message>
<location filename="MainWindow.py" line="339"/>
<location filename="MainWindow.py" line="352"/>
<source>Fit window.</source>
<translation>.</translation>
</message>
<message>
<location filename="MainWindow.py" line="346"/>
<location filename="MainWindow.py" line="359"/>
<source>Label dir</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="347"/>
<location filename="MainWindow.py" line="360"/>
<source>Open label dir.</source>
<translation>.</translation>
</message>
<message>
<location filename="MainWindow.py" line="349"/>
<location filename="MainWindow.py" line="362"/>
<source>Save annotation.</source>
<translation>.</translation>
</message>
@ -791,7 +869,7 @@ http://www.yatenglg.cn/isat</source>
<translation type="obsolete">.</translation>
</message>
<message>
<location filename="MainWindow.py" line="357"/>
<location filename="MainWindow.py" line="370"/>
<source>Next image.</source>
<translation>.</translation>
</message>
@ -801,134 +879,179 @@ http://www.yatenglg.cn/isat</source>
<translation type="obsolete">.</translation>
</message>
<message>
<location filename="MainWindow.py" line="367"/>
<location filename="MainWindow.py" line="380"/>
<source>Delete polygon.</source>
<translation>.</translation>
</message>
<message>
<location filename="MainWindow.py" line="370"/>
<location filename="MainWindow.py" line="383"/>
<source>Show instance or segmeent state.</source>
<translation>.</translation>
</message>
<message>
<location filename="MainWindow.py" line="374"/>
<location filename="MainWindow.py" line="387"/>
<source>Edit polygon attribute.</source>
<translation>.</translation>
</message>
<message>
<location filename="MainWindow.py" line="377"/>
<location filename="MainWindow.py" line="390"/>
<source>Move polygon to top layer.</source>
<translation>.</translation>
</message>
<message>
<location filename="MainWindow.py" line="381"/>
<location filename="MainWindow.py" line="394"/>
<source>Move polygon to bottom layer.</source>
<translation>.</translation>
</message>
<message>
<location filename="MainWindow.py" line="342"/>
<location filename="MainWindow.py" line="355"/>
<source>Setting.</source>
<translation>.</translation>
</message>
<message>
<location filename="MainWindow.py" line="345"/>
<location filename="MainWindow.py" line="358"/>
<source>Exit.</source>
<translation>退.</translation>
</message>
<message>
<location filename="MainWindow.py" line="353"/>
<location filename="MainWindow.py" line="366"/>
<source>Prev image.</source>
<translation>.</translation>
</message>
<message>
<location filename="MainWindow.py" line="362"/>
<location filename="MainWindow.py" line="375"/>
<source>Segment anything</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="363"/>
<location filename="MainWindow.py" line="376"/>
<source>Quick annotate using Segment anything.</source>
<translation>使Segment anything进行快速标注.</translation>
</message>
<message>
<location filename="MainWindow.py" line="364"/>
<location filename="MainWindow.py" line="377"/>
<source>Q</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="388"/>
<location filename="MainWindow.py" line="402"/>
<source>Backspace</source>
<translation>退</translation>
</message>
<message>
<location filename="MainWindow.py" line="389"/>
<location filename="MainWindow.py" line="403"/>
<source>Backspace.</source>
<translation>退.</translation>
</message>
<message>
<location filename="MainWindow.py" line="390"/>
<location filename="MainWindow.py" line="404"/>
<source>Z</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="391"/>
<location filename="MainWindow.py" line="405"/>
<source>Cancel</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="392"/>
<location filename="MainWindow.py" line="406"/>
<source>Annotate canceled</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="393"/>
<location filename="MainWindow.py" line="407"/>
<source>Annotate canceled.</source>
<translation>.</translation>
</message>
<message>
<location filename="MainWindow.py" line="394"/>
<location filename="MainWindow.py" line="408"/>
<source>Esc</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="395"/>
<location filename="MainWindow.py" line="409"/>
<source>Finish</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="396"/>
<location filename="MainWindow.py" line="410"/>
<source>Annotate finished</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="397"/>
<location filename="MainWindow.py" line="411"/>
<source>Annotate finished.</source>
<translation>.</translation>
</message>
<message>
<location filename="MainWindow.py" line="399"/>
<location filename="MainWindow.py" line="413"/>
<source>Polygon</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="400"/>
<location filename="MainWindow.py" line="414"/>
<source>Draw polygon</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="401"/>
<location filename="MainWindow.py" line="415"/>
<source>Accurately annotate by drawing polygon. </source>
<translation>,. </translation>
</message>
<message>
<location filename="MainWindow.py" line="403"/>
<location filename="MainWindow.py" line="418"/>
<source>Visible</source>
<translation>/</translation>
</message>
<message>
<location filename="MainWindow.py" line="404"/>
<location filename="MainWindow.py" line="419"/>
<source>V</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="396"/>
<source>To VOC</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="397"/>
<source>Convert ISAT to VOC</source>
<translation>ISAT转VOC</translation>
</message>
<message>
<location filename="MainWindow.py" line="398"/>
<source>Convert ISAT jsons to VOC png image.</source>
<translation>ISAT格式json转换为VOC单通道png</translation>
</message>
<message>
<location filename="MainWindow.py" line="420"/>
<source>To COCO</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="421"/>
<source>Convert ISAT to COCO</source>
<translation>ISAT转COCO</translation>
</message>
<message>
<location filename="MainWindow.py" line="422"/>
<source>Convert ISAT jsons to COCO json.</source>
<translation>ISAT格式json转换为COCO格式json</translation>
</message>
<message>
<location filename="MainWindow.py" line="423"/>
<source>From COCO</source>
<translation></translation>
</message>
<message>
<location filename="MainWindow.py" line="424"/>
<source>Convert COCO to ISAT</source>
<translation>COCO转ISAT</translation>
</message>
<message>
<location filename="MainWindow.py" line="425"/>
<source>Convert COCO json to ISAT jsons.</source>
<translation>COCO格式json转换为ISAT格式json</translation>
</message>
</context>
</TS>