You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

labeling.html 58 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879
  1. <!-- <!DOCTYPE html> -->
  2. <!DOCTYPE html>
  3. <html >
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>数据标注平台</title>
  7. <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
  8. <meta name="description" content="Developed By M Abdur Rokib Promy">
  9. <meta name="keywords" content="Admin, Bootstrap 3, Template, Theme, Responsive">
  10. <!-- bootstrap 3.0.2 -->
  11. <link href="/self/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
  12. <!-- font Awesome -->
  13. <link href="/self/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
  14. <!-- Ionicons -->
  15. <link href="/self/css/ionicons.min.css" rel="stylesheet" type="text/css" />
  16. <!-- google font -->
  17. <!-- Theme style -->
  18. <link href="/self/css/style.css" rel="stylesheet" type="text/css" />
  19. <link href="/self/css/jquery.yhhDataTable.css" rel="stylesheet" type="text/css" />
  20. <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
  21. <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  22. <!--[if lt IE 9]>
  23. <![endif]-->
  24. <script>
  25. window.config={
  26. AppSubUrl:'',
  27. StaticUrlPrefix: '',
  28. csrf: '',
  29. }
  30. var title_text = sessionStorage.getItem('return_url').split('/')[2]
  31. console.log(sessionStorage.getItem('return_url').split('/'))
  32. title_text = "数据标注-" + title_text + '-OpenI'
  33. document.title = title_text
  34. </script>
  35. <style>
  36. html body{ height: 100%;margin: 0;padding: 0;}
  37. .containers{
  38. height: 100%;
  39. }
  40. .table-define td{border-bottom: 1px solid #222324;padding-top: 5px !important;padding-bottom:5px !important;border-top: 0px !important;padding-left: 20px !important;vertical-align: middle !important;}
  41. .btn:hover{background: transparent;}
  42. .display_area_content { } /* this class is used to clear the display area content */
  43. .force_small_font { font-size:small !important; }
  44. .draw_tool{padding:0;color:#fff}
  45. .draw_li {padding: 0.2em;border: 0.5px solid rgba(34,35,36,0.2);border-bottom: 0;border-radius: 3px;cursor: pointer;}
  46. ul.region_shape { font-size:xx-large; list-style-type:none; overflow:hidden; padding:0.4em 0; margin:0; }
  47. /*ul.region_shape li { float:left; padding:0 0.2em; fill:#ffffff; stroke:#000000; }*/
  48. ul.region_shape li { float:right; padding:0 0.2em; fill:#ffffff; stroke:#000000; }
  49. ul.region_shape li:hover { cursor:pointer; fill:#ffffff; stroke:#ff0000; }
  50. ul.region_shape .selected { fill:#ffffff; stroke:#ff0000; }
  51. /*.toolbar { display:inline-block; margin-left:1rem; }*/
  52. .toolbar { display:inline-block; margin-right:1rem; }
  53. .toolbar svg { fill:white; margin: 0.2rem 0.1rem; height:1.2rem; -moz-user-select:none; -webkit-user-select:none; -ms-user-select:none;}
  54. .toolbar svg:hover { fill:yellow; cursor:pointer; }
  55. .toolbar svg:active { fill:white; }
  56. .toolbar ul { display:inline-block; padding:0.2rem; margin:0; }
  57. /*.toolbar li { display:inline; float:left; padding:0rem 0.3rem; border:1px solid white;} *//* main menu items */
  58. .toolbar li { display:inline; float:right; padding:0rem 0.3rem; border:1px solid white;}
  59. .toolbar li:hover { color:red; cursor:pointer; }
  60. /* Top panel : #navbar, #toolbar */
  61. .top_panel { font-size:0.9rem; display:block; background-color:#212121; color:#ffffff; z-index:1001; margin-bottom:1rem;}
  62. /* Navigation menu bar that appear at the top */
  63. .menubar { display:inline-block; height:1.8rem; } /* height needed to avoid extra bottom border */
  64. .menubar a:link { color:#eeeeee; text-decoration:none; }
  65. .menubar a:visited { color:#eeeeee; text-decoration:none; }
  66. .menubar ul { display:block; padding:0; margin:0; }
  67. /*.menubar li { display:inline; float:left; padding:0.45rem 1rem; }*/
  68. .menubar li { display:inline; float:right; padding:0.45rem 1rem; }
  69. .menubar li:hover { background-color:#616161; cursor:default; }
  70. .menubar li ul { display:none; background-color:#212121; border:1px solid #616161; min-width:10rem; position:absolute; z-index:100; margin:0.4rem -1rem;}
  71. .menubar li ul li { display:block; float:none; color:#eeeeee; margin:0; padding:0.6rem 1rem; }
  72. .menubar li ul li:hover { cursor:pointer; }
  73. .menubar li ul li.submenu_divider { margin:0 0.4rem; padding:0; height:1px; border-bottom:1px solid #424242; }
  74. .menubar li:hover ul { display:block; }
  75. /* toolbar containing small icons for tools */
  76. .toolbar { display:inline-block; margin-right:1rem; }
  77. /*.toolbar { display:inline-block; margin-left:1rem; }*/
  78. .toolbar svg { fill:white; margin: 0.2rem 0.1rem; height:1.2rem; -moz-user-select:none; -webkit-user-select:none; -ms-user-select:none;}
  79. .toolbar svg:hover { fill:yellow; cursor:pointer; }
  80. .toolbar svg:active { fill:white; }
  81. .toolbar ul { display:inline-block; padding:0.2rem; margin:0; }
  82. /*.toolbar li { display:inline; float:left; padding:0rem 0.3rem; border:1px solid white;} *//* main menu items */
  83. .toolbar li { display:inline; float:right; padding:0rem 0.3rem; border:1px solid white;}
  84. .toolbar li:hover { color:red; cursor:pointer; }
  85. /* Middle panel: containing #image_panel, #leftsidebar */
  86. /*.middle_panel { display:table; table-layout:fixed; width:100%; z-index:1; padding:0;}*/
  87. .middle_panel { display:table; table-layout:fixed; right:0px,width:100%; z-index:1; padding:0;}
  88. /*#leftsidebar { display:none; z-index:10; vertical-align:top;}*/
  89. #leftsidebar { display:none; z-index:10; vertical-align:top;}
  90. /*#rightsidebar { z-index:-10; vertical-align:left;}*/
  91. /*#display_area { display:table-cell; width:100%; z-index:1; margin:0; padding-left:1em; vertical-align:top; }*/
  92. #display_area { display:table-cell; width:100%; z-index:1; margin:0; padding-right:1em; vertical-align:top; }
  93. /* layers of canvas */
  94. /*#image_panel { position:relative; outline:none; }
  95. #image_panel img { visibility:hidden; opacity:0; position:absolute; top:0px; left:0px; width:100%; height:100%; outline:none; }*/
  96. #image_panel { position:relative; outline:none; }
  97. #image_panel img { visibility:hidden; opacity:0; position:absolute; top:0px; right:0px; width:100%; height:100%; outline:none; }
  98. #image_panel canvas { position:absolute; top:0px; left:0px; outline:none;}
  99. #image_panel .visible { visibility:visible !important; opacity:1 !important; }
  100. #image_panel label>img { visibility:visible; opacity:1; position:relative; width:auto; height:4em; outline:none; }
  101. #leftsidebar_collapse_panel { display:none; position:relative; z-index:10; vertical-align:top; }
  102. /*#leftsidebar_show_button { font-size:large; margin-left:0.1rem; }*/
  103. #leftsidebar_show_button { font-size:large; margin-right:0.1rem; }
  104. #leftsidebar_show_button:hover { color:red; cursor: pointer; }
  105. /* Left sidebar accordion */
  106. button.leftsidebar_accordion { font-size:large; background-color:#f2f2f2; cursor:pointer; padding:0.5em 0.5em; width:100%; text-align:left; border:0; outline:none; }
  107. button.leftsidebar_accordion:focus { outline: none; }
  108. button.leftsidebar_accordion.active, button.leftsidebar_accordion:hover { background-color: #e6e6e6; }
  109. button.leftsidebar_accordion:after { content:'\02795'; color:#4d4d4d; float:right; }
  110. button.leftsidebar_accordion.active:after { content: '\2796'; }
  111. .leftsidebar_accordion_panel { display:none; padding:0 0.5em; font-size:small; border-right:0px solid #f2f2f2; border-bottom:0px solid #f2f2f2; }
  112. .leftsidebar_accordion_panel.show { display:block; }
  113. /* Keyboard shortcut panel */
  114. .leftsidebar_accordion_panel table { border-collapse:collapse; }
  115. .leftsidebar_accordion_panel td { border:1px solid #f2f2f2; padding:0.2rem 0.4rem; }
  116. /* buttons */
  117. /*.button_panel { display:inline-block; width:100%; margin:0.2rem 0; }*/
  118. .button_panel { display:inline-block; width:100%; margin:0.2rem 0; }
  119. .button_panel .text_button, .text_button { color: #0000ff; padding: 0.2rem 0.2rem; -moz-user-select:none; -webkit-user-select:none; -ms-user-select:none; }
  120. .button_panel .flush_right { float:right; }
  121. .button_panel .text_button:hover, .text_button:hover { cursor:pointer; }
  122. .button_panel .text_button:active, .text_button:active { color: #000000; }
  123. .button_panel .active { border-bottom:1px solid black; }
  124. .button_panel .button { display:inline-block; padding:0.35rem 0.5rem; margin:0 0.05rem; cursor:pointer; background-color:#cccccc; border-radius:0.2rem; -moz-user-select:none; -webkit-user-select:none; -ms-user-select:none; }
  125. .button_panel .button:hover { background-color:black; color:white; }
  126. /* Attributes properties: name, description, type, ... */
  127. #attribute_properties { display:table; right:200;width:100%; border-collapse:collapse; margin:1rem 0; border:1px solid #cccccc; }
  128. /*#attribute_properties { display:table; border-collapse:collapse; margin:1rem 0; border:1px solid #cccccc; }*/
  129. #attribute_properties .property { display:table-row;}
  130. #attribute_properties .property span { display:table-cell; padding: 0.2rem 0.4rem; }
  131. #attribute_properties .property span input { width: 100%; border:1px solid #cccccc; margin: 0;}
  132. #attribute_properties .property span input:focus { border:1px solid black; }
  133. #attribute_properties .property span select { width: 100%; border:1px solid #cccccc; margin: 0;}
  134. /* Attributes options: options for attribute type={checkbox,radio,...} */
  135. #attribute_options { display:table; width:100%; border-collapse:collapse; margin:1rem 0; border:1px solid #cccccc; table-layout:fixed; }
  136. #attribute_options .new_option_id_entry { display:inline-block; padding:1rem 0.2rem; }
  137. #attribute_options .new_option_id_entry input {border:none; border-bottom:1px solid #cccccc; margin: 0; font-size: 1.3rem;}
  138. #attribute_options .property { display:table-row;}
  139. #attribute_options .property span { display:table-cell; padding: 0.2rem 0.2rem; font-weight:bold; }
  140. /*#attribute_options .property input { display:table-cell; width:100%; border:none; border-bottom:1px solid #cccccc; margin: 0; font-size: 0.8rem;}*/
  141. #attribute_options .property input { display:table-cell; width:100%; border:none; border-bottom:1px solid #cccccc; margin: 0; font-size: 1.3rem;}
  142. #attribute_options .property input:focus { border-bottom:1px solid #000000; background-color:#f2f2f2; color:#000000; }
  143. #attribute_options .property span input[type=checkbox] { vertical-align:middle; }
  144. #attribute_options .property span input[type=radio] { vertical-align:middle; }
  145. #user_input_panel { position:fixed; display:none; width:100%; height:100%; top:0; left:50; right:0; bottom:0; background-color: rgba(0,0,0,0.6); z-index:1002; }
  146. /*#user_input_panel .content { position:fixed; background-color:white; top:50%; left:50%; transform:translate(-50%,-50%); -webkit-transform: translate(-50%, -50%); -moz-transform: translate(-50%, -50%); -o-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); padding:2rem 4rem;}*/
  147. #user_input_panel .content { position:fixed; background-color:white; top:50%; left:50%; transform:translate(-50%,-50%); -webkit-transform: translate(-50%, -50%); -moz-transform: translate(-50%, -50%); -o-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); padding:2rem 4rem;}
  148. #user_input_panel .content .title { font-size:large; font-weight:bold; }
  149. #user_input_panel .content .user_inputs { display:table; width:100%; border-collapse:collapse;}
  150. #user_input_panel .content .user_inputs .row { display:table-row; }
  151. #user_input_panel .content .user_inputs .cell { display:table-cell; padding:1rem 0.5rem; vertical-align:middle; border:1px solid #f2f2f2; }
  152. #user_input_panel .content .user_confirm { display:table; width:100%; text-align:center; margin:2rem 0;}
  153. #user_input_panel .content .user_confirm .ok { display:table-cell; width:48%; }
  154. #user_input_panel .content .user_confirm .cancel { display:table-cell; width:48%; }
  155. #user_input_panel .content .warning { color:red; }
  156. /* Attribute editor */
  157. #annotation_editor_panel { position:fixed; display:none; width:100%; right:0; bottom:0; background-color:white; border-top:2px solid #cccccc; padding:0.2em 1em; overflow:auto; z-index:1001; box-shadow: 0 0 1em #cccccc;}
  158. /*#annotation_editor { display:table; margin-bottom:3em; border-collapse:collapse; font-size:inherit; position: absolute; top:500px;left:800px; background-color:white; }*/
  159. #annotation_editor { display:table; margin-bottom:3em; border-collapse:collapse; font-size:inherit; background-color:white; z-index:10024;}
  160. #annotation_editor .row { display:table-row; }
  161. #annotation_editor .highlight .col { background-color:#e6e6e6;}
  162. #annotation_editor .col { display:table-cell; padding:0.4em 0.6em; border:1px solid #000000; vertical-align:middle; font-size:inherit; }
  163. #annotation_editor .header { font-weight:bold; white-space:nowrap}
  164. #annotation_editor .id { font-weight:bold; }
  165. #annotation_editor .col input[type=checkbox] { vertical-align:middle; }
  166. #annotation_editor .col input[type=radio] { vertical-align:middle; font-size:inherit; }
  167. #annotation_editor .col label { vertical-align:middle; font-size:inherit; }
  168. #annotation_editor .col textarea { border:0.1em solid #cccccc; padding:0; margin:0; font-size:inherit; background-color:#ffffff;height:20px;width: 80px}
  169. #annotation_editor .col textarea:focus { border:0.1em dashed #cccccc; }
  170. #annotation_editor .col span { display:block; }
  171. #annotation_editor .col horizontal_container { display:inline-block; }
  172. #annotation_editor .col .img_options { display:inline; }
  173. #annotation_editor .col .img_options .imrow { display:block; }
  174. #annotation_editor .col .img_options span { display:inline-block; margin: 0.2rem 0.4rem;}
  175. #annotation_editor .col .img_options span img { height:4em; }
  176. #annotation_editor .col .img_options p { margin:0; padding:0; font-size:inherit; }
  177. #annotation_editor .col .img_options input[type=radio] { display:none; }
  178. #annotation_editor .col .img_options input[type=radio] + label { display:block; cursor:pointer; text-align:center;}
  179. #annotation_editor .col .img_options input[type=radio]:checked + label { border: 0.1em solid black; background-color:#cccccc; cursor:default; font-size:inherit; }
  180. /* Region shape selection panel inside leftsidebar */
  181. ul.region_shape { font-size:xx-large; list-style-type:none; overflow:hidden; padding:0.4em 0; margin:0; }
  182. ul.region_shape li { float:left; padding:0 0.2em; fill:#ffffff; stroke:#000000; }
  183. /*ul.region_shape li { float:right; padding:0 0.2em; fill:#ffffff; stroke:#000000; }*/
  184. ul.region_shape li:hover { cursor:pointer; fill:#ffffff; stroke:#ff0000; }
  185. ul.region_shape .selected { fill:#ffffff; stroke:#ff0000; }
  186. /* cursor coordinates inside region shape selection panel in leftsidebar */
  187. #region_info { font-size:0.8em; margin-bottom:0.4em; }
  188. /*#message_panel { display:block; width:100%; position:fixed; bottom:300px; z-index:9999; text-align:center; }*/
  189. #message_panel { display:block; width:100%; position:fixed; bottom:30px; right:0;z-index:9999; text-align:center; }
  190. #message_panel .content { display:inline; margin:auto; background-color:#000000; color:#ffff00; font-size:small; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:2rem; padding: 0.5rem 2rem;}
  191. .text_panel { display:none; margin:auto; font-size:medium; line-height:1.3em; margin: 0; max-width:700px; }
  192. /*.text_panel li { margin:1em 0; text-align:left; }
  193. .text_panel p { text-align:left; }*/
  194. .text_panel li { margin:1em 0; text-align:right; }
  195. .text_panel p { text-align:right; }
  196. .svg_button:hover { cursor:pointer; }
  197. /* Loading spinbar */
  198. .loading_spinbox { display:inline-block; border:0.4em solid #cccccc; border-radius:50%; border-top:0.4em solid black; border-bottom:0.4em solid black;-webkit-animation:spin 2s linear infinite; animation:spin 2s linear infinite; }
  199. @-webkit-keyframes spin { 0% { -webkit-transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); } }
  200. @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
  201. #invisible_file_input { width:0.1px; height:0.1px; opacity:0; overflow:hidden; position:absolute; z-index:-1; }
  202. .display_none { display:none !important; }
  203. .display_block { display:block !important; }
  204. .display_area_content { } /* this class is used to clear the display area content */
  205. .narrow_page_content li { font-size:0.9rem; margin: 0.4rem 0; }
  206. .narrow_page_content { width:60%; }
  207. .force_small_font { font-size:small !important; }
  208. .key { font-family:monospace; padding:1px 6px; background:linear-gradient(to bottom,#f0f0f0,#fcfcfc);; border:1px solid #e0e0e0; white-space:nowrap; color:#303030; border-bottom-width:2px; border-radius:3px; font-size:1.2em; }
  209. #progress{
  210. width: 100%;
  211. height: 20px;
  212. background: rgb(255, 255, 255);
  213. }
  214. #bar{
  215. width: 1%;
  216. height: 20px;
  217. margin-top: 1px;
  218. background: green;
  219. }
  220. </style>
  221. </head>
  222. <body>
  223. <svg style="display:none;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  224. <defs>
  225. <symbol id="via_logo">
  226. <!-- Logo designed by Abhishek Dutta <adutta@robots.ox.ac.uk>, May 2018 -->
  227. <title>VGG Image Annotator Logo</title>
  228. <rect width="400" height="160" x="0" y="0" fill="#212121"></rect>
  229. <text x="56" y="130" font-family="Serif" font-size="100" fill="white">V</text>
  230. <text x="180" y="130" font-family="Serif" font-size="100" fill="white">I</text>
  231. <text x="270" y="130" font-family="Serif" font-size="100" fill="white">A</text>
  232. <rect width="80" height="100" x="52" y="40" stroke="yellow" fill="none" stroke-width="2"></rect>
  233. <text x="72" y="30" font-family="'Comic Sans MS', cursive, sans-serif" font-size="18" fill="yellow">VGG</text>
  234. <rect width="50" height="100" x="175" y="45" stroke="yellow" fill="none" stroke-width="2"></rect>
  235. <text x="175" y="35" font-family="'Comic Sans MS', cursive, sans-serif" font-size="18" fill="yellow">Image</text>
  236. <rect width="80" height="100" x="265" y="40" stroke="yellow" fill="none" stroke-width="2"></rect>
  237. <text x="265" y="30" font-family="'Comic Sans MS', cursive, sans-serif" font-size="18" fill="yellow">Annotator</text>
  238. </symbol>
  239. <symbol id="shape_rectangle">
  240. <rect width="20" height="12" x="6" y="10" stroke-width="2"></rect>
  241. </symbol>
  242. <symbol id="shape_circle">
  243. <title>Circular region shape</title>
  244. <circle r="10" cx="16" cy="16" stroke-width="2"></circle>
  245. </symbol>
  246. <symbol id="shape_ellipse">
  247. <title>Elliptical region shape</title>
  248. <ellipse rx="12" ry="8" cx="16" cy="16" stroke-width="2"></ellipse>
  249. </symbol>
  250. <symbol id="shape_polygon">
  251. <path d="M 15.25,2.2372 3.625,11.6122 6,29.9872 l 20.75,-9.625 2.375,-14.75 z" stroke-width="2"></path>
  252. </symbol>
  253. <symbol id="shape_point">
  254. <circle r="3" cx="16" cy="16" stroke-width="2"></circle>
  255. </symbol>
  256. <symbol id="shape_polyline">
  257. <title>Polyline region shape</title>
  258. <path d="M 2,12 10,24 18,12 24,18" stroke-width="2"></path>
  259. <circle r="1" cx="2" cy="12" stroke-width="2"></circle>
  260. <circle r="1" cx="10" cy="24" stroke-width="2"></circle>
  261. <circle r="1" cx="18" cy="12" stroke-width="2"></circle>
  262. <circle r="1" cx="24" cy="18" stroke-width="2"></circle>
  263. </symbol>
  264. <!-- Material icons downloaded from https://material.io/icons -->
  265. <symbol id="icon_settings">
  266. <path d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z"></path>
  267. </symbol>
  268. <symbol id="icon_save">
  269. <path d="M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"></path>
  270. </symbol>
  271. <symbol id="icon_open">
  272. <path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"></path>
  273. </symbol>
  274. <symbol id="icon_gridon">
  275. <path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z"></path>
  276. </symbol>
  277. <symbol id="icon_gridoff">
  278. <path d="M8 4v1.45l2 2V4h4v4h-3.45l2 2H14v1.45l2 2V10h4v4h-3.45l2 2H20v1.45l2 2V4c0-1.1-.9-2-2-2H4.55l2 2H8zm8 0h4v4h-4V4zM1.27 1.27L0 2.55l2 2V20c0 1.1.9 2 2 2h15.46l2 2 1.27-1.27L1.27 1.27zM10 12.55L11.45 14H10v-1.45zm-6-6L5.45 8H4V6.55zM8 20H4v-4h4v4zm0-6H4v-4h3.45l.55.55V14zm6 6h-4v-4h3.45l.55.54V20zm2 0v-1.46L17.46 20H16z"></path>
  279. </symbol>
  280. <symbol id="icon_next">
  281. <path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"></path>
  282. </symbol>
  283. <symbol id="icon_prev">
  284. <path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path>
  285. </symbol>
  286. <symbol id="icon_list">
  287. <path d="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z"></path>
  288. </symbol>
  289. <symbol id="icon_zoomin">
  290. <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
  291. <path d="M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z"/>
  292. </symbol>
  293. <symbol id="icon_zoomout">
  294. <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z"></path>
  295. </symbol>
  296. <symbol id="icon_copy">
  297. <path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"></path>
  298. </symbol>
  299. <symbol id="icon_paste">
  300. <path d="M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z"></path>
  301. </symbol>
  302. <symbol id="icon_pasten">
  303. <path d="M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z"></path>
  304. <text x="8" y="18">n</text>
  305. </symbol>
  306. <symbol id="icon_pasteundo">
  307. <path d="M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z"></path>
  308. <text x="8" y="18">x</text>
  309. </symbol>
  310. <symbol id="icon_selectall">
  311. <path d="M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h10V7H7v10zm2-8h6v6H9V9z"></path>
  312. </symbol>
  313. <symbol id="icon_close">
  314. <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path>
  315. </symbol>
  316. <symbol id="icon_insertcomment">
  317. <path d="M20 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4V4c0-1.1-.9-2-2-2zm-2 12H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z"></path>
  318. </symbol>
  319. <symbol id="icon_checkbox">
  320. <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"></path>
  321. </symbol>
  322. <symbol id="icon_fileupload">
  323. <path d="M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z"></path>
  324. </symbol>
  325. <symbol id="icon_filedownload">
  326. <path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"></path>
  327. </symbol>
  328. </defs>
  329. </svg>
  330. <!-- header logo: style can be found in header.less -->
  331. <!-- <header class="header" >
  332. <div class="logo">
  333. 人工标注
  334. </div>
  335. <nav class="navbar navbar-static-top" role="navigation">
  336. <span style="font-size:28px" id="title_id">通用图片标注</span>
  337. </nav>
  338. </header> -->
  339. <div style="height:100vh;display:flex;flex-flow:column nowrap;overflow:hidden;position: relative;">
  340. <header class="header">
  341. <div class="row" style="background-color: #020004;">
  342. <div class="col-lg-1">
  343. <a id="return_url" href="" style="margin: 8px;display: inline-block;"><i class="fa fa-home fa-fw" style="color: #E1E3E6;font-size: 24px;"></i></a>
  344. </div>
  345. <div class="col-lg-9">
  346. <div class="row">
  347. <div class="col-lg-5" style=" padding-left: 0;">
  348. <!-- <button type="button" class="btn" style="background:#3291F8;margin:8px 12px 8px 0;color: #fff;border-radius: 0;padding: 4px 12px;font-size: 12px;">返回任务</button>
  349. <button type="button" class="btn" style="margin: 8px 12px;background:#74818D;color: #fff;border-radius: 0;padding: 4px 12px;font-size: 12px;">跳过</button>
  350. <button type="button" class="btn" style="margin: 8px 12px;background:#FF6200;color: #fff;border-radius: 0;padding: 4px 12px;font-size: 12px;">提交</button> -->
  351. </div>
  352. <div class="col-lg-3" style="text-align: center;;line-height: 42px;color: #fff;">
  353. <span id="float_text"></span>
  354. </div>
  355. </div>
  356. </div>
  357. <div class="col-lg-2"></div>
  358. </div>
  359. </header>
  360. <div class="box1" style="float:left;position: absolute;z-index: 9999;left: 0.4em;top: 3.5em;">
  361. <ul class="draw_tool" style="font-size: 18px;background-color: rgba(12,13,13,0.3);color: rgba(225,227,230,0.8);">
  362. <li id="region_shape_rect" class="selected draw_li" onclick="createRectLabel()" title="新建矩形标注(W)"><i class="fa fa-square-o"></i></li>
  363. <li id="region_shape_polygon" class="draw_li" onclick="createMaskLabel()" title="新建多边形标注"><i class="fa fa-first-order" aria-hidden="true"></i> </li>
  364. <li id="region_shape_point" class="draw_li" onclick="createPointLabel()" title="新建点标注"><i class="fa fa-dot-circle-o" aria-hidden="true"></i></li>
  365. <li id="delete_shape" class="draw_li" onclick="deleterect()" title="删除选中的标注(D)"><i class="fa fa-times-circle-o" aria-hidden="true"></i></li>
  366. <li id="delete_all_shape" class="draw_li" onclick="deleteAllRect()" title="删除所有的标注框"><i class="fa fa-times" aria-hidden="true"></i></li>
  367. <li id="save_shape" class="draw_li" onclick="save()" title="保存标注(S)"><i class="fa fa-floppy-o" aria-hidden="true"></i></li>
  368. <li id="previous_shape"class="draw_li" onclick="last()" title="上一张(Q)"><i class="fa fa-arrow-circle-left" aria-hidden="true"></i></li>
  369. <li id="next_shape" class="draw_li" onclick="next()" title="下一张(E)"><i class="fa fa-arrow-circle-right" aria-hidden="true"></i></li>
  370. <li id="copy_shape" class="draw_li" onclick="copyOneBox()" title="复制单个选中的标注(C)"><i class="fa fa-file-o" aria-hidden="true"></i></li>
  371. <li id="copy_shape" class="draw_li" onclick="copy()" title="复制所有的标注"><i class="fa fa-clone" aria-hidden="true"></i></li>
  372. <li id="paste_shape" class="draw_li" onclick="paste()" title="粘贴复制的标注(V)"><i class="fa fa-clipboard" aria-hidden="true"></i></li>
  373. <li id="arrow-left" class="draw_li" onclick="moveLeftOnePx()" title="标注左移一个像素"><i class="fa fa-arrow-left" aria-hidden="true"></i> </li>
  374. <li id="arrow-right" class="draw_li" onclick="moveRightOnePx()" title="标注右移一个像素"><i class="fa fa-arrow-right" aria-hidden="true"></i> </li>
  375. <li id="arrow-up" class="draw_li" onclick="moveUpOnePx()" title="标注上移一个像素"><i class="fa fa-arrow-up" aria-hidden="true"></i></li>
  376. <li id="arrow-down" class="draw_li" onclick="moveDownOnePx()" title="标注下移一个像素"><i class="fa fa-arrow-down" aria-hidden="true"></i></li>
  377. <li id="setting" class="draw_li" onclick="updateSetting()" title="设置" href="#labeldefine"><i class="fa fa-cog" aria-hidden="true"></i> </li>
  378. <li id="skip" class="draw_li" onclick="skipLast()" title="跳转至上次标注的地方"><i class="fa fa-reply" aria-hidden="true"></i></li>
  379. <!-- <li class="draw_li" onclick="setAutoModel()" title="自动标注" href="#autoLabel" data-toggle="modal" data-backdrop="static" ><i class="fa fa-cube" aria-hidden="true"></i></li> -->
  380. <li class="draw_li" onclick="undo()" title="撤销上次标注(Z)" ><i class="fa fa-reply-all" aria-hidden="true"></i></li>
  381. <li style="padding: 0.2em;border: 0.5px solid rgba(34,35,36,0.2);border-radius: 3px;cursor: pointer;" title="清空指定文件的标注" href="#deleteLabel" data-toggle="modal" data-backdrop="static" ><i class="fa fa-eraser" aria-hidden="true"></i></li>
  382. </ul>
  383. </div>
  384. <div class="containers" style="flex: 1;">
  385. <!-- <aside class="left-side sidebar-offcanvas" ></aside> -->
  386. <div class="row" style="height: 100%;">
  387. <!-- left-side -->
  388. <!-- <div class="col-lg-1" style="background-color: #020004;height: 100%;border-top: 1px solid #222324;padding: 0;">
  389. <div style="line-height: 3em;text-align: center;font-size: 16px;">
  390. <span style="color: #fff;float: left;padding-left: 1.5em;">动物-狗</span>
  391. <a style="float: right;padding-right: 1em;"><i class="fa fa-cog" style="color: #74818D;font-size: 18px;cursor: pointer;"></i></a>
  392. </div>
  393. <div style="clear: both;">
  394. <input type="text" placeholder="搜索标签" style="width: 80%;margin: 0 10%;background-color: transparent;border-radius: 6px;border: 0.5px solid #43474B;outline: none;color: #74818D;padding: 0.1em;">
  395. </div>
  396. </div> -->
  397. <!-- canvas -->
  398. <div class="col-lg-10" id="showPic" style="background-color: #222324;height: 100%;padding: 0;padding-left: 4em;">
  399. <!-- <nav class="navbar navbar-default" role="navigation" id="tool0" style="margin-bottom: 0;">
  400. <div class="leftsidebar_accordion_panel show">
  401. <ul class="region_shape" style="padding: 0;">
  402. <li id="region_shape_rect" class="selected" onclick="createRectLabel()" title="新建矩形标注(W)"><svg height="28" viewbox="0 0 28 28"><use xlink:href="#shape_rectangle"></use></svg></li>
  403. <li id="region_shape_polygon" onclick="createMaskLabel()" title="新建多边形标注"><svg height="28" viewbox="0 0 28 28"><use xlink:href="#shape_polygon"></use></svg></li>
  404. <li id="region_shape_point" onclick="createPointLabel()" title="新建点标注"><svg height="28" viewbox="0 0 28 28"><use xlink:href="#shape_point"></use></svg></li>
  405. <li id="delete_shape" onclick="deleterect()" title="删除选中的标注(D)"><svg height="24" viewbox="0 0 28 28"><use xlink:href="#icon_close"></use></svg></li>
  406. <li id="save_shape" onclick="save()" title="保存标注(S)"><svg height="24" viewbox="0 0 28 28"><use xlink:href="#icon_save"></use></svg></li>
  407. <li id="previous_shape" onclick="last()" title="上一张(Q)"><svg height="24" viewbox="0 0 28 28"><use xlink:href="#icon_prev"></use></svg></li>
  408. <li id="next_shape" onclick="next()" title="下一张(E)"><svg height="24" viewbox="0 0 28 28"><use xlink:href="#icon_next"></use></svg></li>
  409. <li id="copy_shape" onclick="copy()" title="复制所有的标注"><svg height="24" viewbox="0 0 28 28"><use xlink:href="#icon_copy"></use></svg></li>
  410. <li id="paste_shape" onclick="paste()" title="粘贴复制的标注(V)"><svg height="24" viewbox="0 0 28 28"><use xlink:href="#icon_pasten"></use></svg></li>
  411. <li id="copy_shape" style="font-size: 20px;" onclick="copyOneBox()" title="复制单个选中的标注(C)"><i class="fa fa-files-o" style="vertical-align: bottom;" aria-hidden="true"></i></li>
  412. <li id="arrow-left" style="font-size: 26px" onclick="moveLeftOnePx()" title="标注左移一个像素"><i class="fa fa-long-arrow-left" aria-hidden="true" ></i></li>
  413. <li id="arrow-right" style="font-size: 26px" onclick="moveRightOnePx()" title="标注右移一个像素"><i class="fa fa-long-arrow-right" aria-hidden="true"></i></li>
  414. <li id="arrow-up" style="font-size: 26px" onclick="moveUpOnePx()" title="标注上移一个像素"><i class="fa fa-long-arrow-up" aria-hidden="true"></i></li>
  415. <li id="arrow-down" style="font-size: 26px" onclick="moveDownOnePx()" title="标注下移一个像素"><i class="fa fa-long-arrow-down" aria-hidden="true"></i></li>
  416. <li id="delete_all_shape" style="font-size: 22px;" onclick="deleteAllRect()" title="删除所有的标注框"><i class="fa fa-window-close-o" style="vertical-align: middle;" aria-hidden="true" ></i></li>
  417. <li id="setting" onclick="updateSetting()" title="设置" href="#labeldefine"><svg height="24" viewbox="0 0 28 28"><use xlink:href="#icon_settings"></use></svg></li>
  418. <li id="skip" style="font-size: 22px" onclick="skipLast()" title="跳转至上次标注的地方"><i class="fa fa-share" aria-hidden="true"></i></li>
  419. <li style="font-size: 22px" onclick="setAutoModel()" title="自动标注" href="#autoLabel" data-toggle="modal" data-backdrop="static" ><i class="fa fa-tag" aria-hidden="true"></i></li>
  420. <li style="font-size: 22px" onclick="undo()" title="撤销上次标注(Z)" ><i class="fa fa-undo" aria-hidden="true"></i></li>
  421. <li style="font-size: 22px" title="清空指定文件的标注" href="#deleteLabel" data-toggle="modal" data-backdrop="static" ><i class="fa fa-eraser" aria-hidden="true"></i></li>
  422. </ul>
  423. </div>
  424. <div id=labeldefine>
  425. </div>
  426. </nav> -->
  427. <div id="labelwin" width="100%" style="display: flex;justify-content: center;align-content: center;" >
  428. <input type="hidden" class="form-control" id="postmessage" >
  429. <div id = "show_region" style="z-index: 50000;width: 0px;height: 0px"></div>
  430. <canvas id="myCanvas" style="border:1px solid #5a5a5a;"></canvas>
  431. <div id="float_text"></div>
  432. </div>
  433. </div>
  434. <!-- right side -->
  435. <div class="col-lg-2" style="background-color: #020004;height: 100%;border-top: 1px solid #222324;padding: 0;">
  436. <div style="line-height: 3em;text-align: center;font-size: 14px;">
  437. <span id="task_info" style="color: #fff;float: left;padding-left: 1.5em;">train数据集标注任务</span>
  438. <!-- <a style="float: right;padding-right: 2em;"><i class="fa fa-cog" style="color: #74818D;font-size: 18px;cursor: pointer;"></i></a> -->
  439. </div>
  440. <div class="progress" style="clear: both;margin: 0 2em 0 1em;height: 0.5em;">
  441. <div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%;background-color: #389E0D;">
  442. <span class="sr-only">60% Complete</span>
  443. </div>
  444. </div>
  445. <div style="margin: 1em 1.5em;font-size: 10px;">
  446. <span style="color: #7092BE;margin-right: 1em;">任务标注进度</span><span id="task_progress" style="color:#7092BE;"></span>
  447. </div>
  448. <div class="panel" style="margin-bottom: 1em;">
  449. <div id = "labelStatus"></div>
  450. </div>
  451. <div id="nav" style="height:100%">
  452. <ul style="display: flex;padding: 0;margin: 0;color:#7092BE;">
  453. <li id="0" class="active">文件列表</li>
  454. <li id="1">标签列表</li>
  455. </ul>
  456. <div class="tabpannel" style="height: 100%;">
  457. <!-- <h4 class="ui top attached header">
  458. 文件列表
  459. </h4> -->
  460. <!-- <table class="ui single line table" id="filelist" style="table-layout:fixed;word-break: break-all;word-wrap: break-word;">
  461. </table> -->
  462. <div class="panel-body no-padding" id="filepanel" style="height: 100%;">
  463. <div style="display: flex;padding: 0.3em 0;border-bottom: 1px solid #222324 ;">
  464. <span style="flex: 3;padding-left: 20px;color: #7092BE;">文件名</span>
  465. <div class="btn-group" style="flex:1">
  466. <button type="button" class="btn-default dropdown-toggle"
  467. data-toggle="dropdown" style="background: transparent;padding: 0;border: 0;vertical-align: top;line-height: 1;color: #7092BE;">
  468. ...
  469. </button>
  470. <ul class="dropdown-menu" role="menu" style="left:-90px;background: #020004;border: 1px solid #222324;border-radius: 0;width:2em;min-width: 8em;color: #fff;">
  471. <li value="1" onclick="showOrder($(this).attr('value'))" style="font-size: 8px;color: #fff;padding: 0.3em 0 0.3em 2em;width: 100%;text-align: start;border-bottom: 0.5px solid #222324;">按文件名排序</li>
  472. <li value="2" onclick="showOrder($(this).attr('value'))" style="font-size: 8px;color: #fff;padding: 0.3em 0 0.3em 2em;width: 100%;text-align: start;">未标注</li>
  473. </ul>
  474. </div>
  475. </div>
  476. <table class="table table-condensed table-define" id="filelist" style="table-layout:fixed;overflow:auto;word-break: break-all;word-wrap: break-word;color:#7092BE;font-size: 10px;">
  477. </table>
  478. </div>
  479. <div class="panel-body" id="filepanel" style='position: absolute;bottom: 0;padding: 0.9em 0;width: 100%;border-top: 1px #ccc solid; color: #7092BE;'>
  480. <div style="width: 80%; margin: 0 10%;">
  481. <a id="prePage" href="" style="margin-right: 0.2em;"><i class="fa fa-angle-left"></i></a>
  482. <span id="startIndex">0</span>-<span id="endIndex">0</span>/<span id="totalNum">0</span>
  483. <span style="margin-left: 0.2em;">第</span><span id="displayPage1">1</span><span style="margin-right: 0.2em;">页</span>
  484. <span>跳到</span><input type="text" id="goNum" style="width: 2em;border-radius: 4px;padding: 0 0.4em;margin: 0 0.4em;height: 1.2em;border: 1px solid;" maxlength="5" oninput="value=value.replace(/[^\d]/g,'')"><span>页</span>
  485. <a style="margin-left: 0.4em;" id="nextPage" href=""><i class="fa fa-angle-right"></i></a>
  486. </div>
  487. </div>
  488. </div>
  489. <div class="hide1 tabpannel">
  490. <div class="panel-body no-padding" id="labelpanel">
  491. <table class="table table-condensed table-define" style="color: #fff;" >
  492. <tbody id="boxlabels">
  493. </tbody>
  494. </table>
  495. </div><!-- /.panel-body -->
  496. <div class="panel-body no-padding" id="labelcountpanel" style="display: none;">
  497. <table class="table table-condensed" id="labelcounttable">
  498. </table>
  499. </div><!-- /.panel-body -->
  500. </div>
  501. </div>
  502. </div>
  503. </div>
  504. <div class="panel" id="set_attributes" class="force_small_font display_area_content" style="display:none;">
  505. <button class="close" onclick="close_attribute()" style=" padding: .3em 0.8em;"> × </button>
  506. <div id="user_input_panel"></div>
  507. <div id="message_panel">
  508. <div id="message_panel_content" class="content"></div>
  509. </div>
  510. <div id="leftsidebar_collapse_panel">
  511. <span class="text_button" onclick="leftsidebar_toggle()" title="Show left sidebar">&rtrif;</span>
  512. </div>
  513. <div id="leftsidebar">
  514. <div class="leftsidebar_accordion_panel show" id="attributes_editor_panel">
  515. <div class="button_panel" style="padding:1rem 0;">
  516. <h4 class="modal-title">设置</h4>
  517. </div>
  518. <div id="attributes_update_panel">
  519. <div class="button_panel">
  520. <input style="width:50%" type="text" placeholder="attribute name" id="user_input_attribute_id" value="">
  521. <span id="button_add_new_attribute" class="button" onclick="add_new_attribute_from_user_input()" title="Add new attribute">&plus;</span>
  522. </div>
  523. <div class="button_panel" style="margin:0.1rem 0;width:70%;" >
  524. <table class="table table-hover" id="attributes_name_list">
  525. </table>
  526. </div>
  527. <div id="atttibute_child" >
  528. <div id="type_car" style="display: none;">
  529. <span class= "btn btn-xs btn-success" style="margin-left:5px" onclick="show_tpye_attribute();">点击此处快速添加常用车辆类别</span>
  530. </div>
  531. <div id="type_color" style="display: none;">
  532. <span class= "btn btn-xs btn-success" style="margin-left:5px" onclick="show_color_attribute();">点击此处快速添加常用颜色</span>
  533. </div>
  534. <div id="attribute_properties"> </div>
  535. <div id="attribute_options"></div>
  536. <p style="text-align:center"></p>
  537. </div>
  538. </div>
  539. <div>
  540. <button type="button" class="btn btn-default" onclick="save_attribute()" id="save" style=" margin:0.5rem 0.3rem "> 保存属性值</button>
  541. <button type="button" class="btn btn-default" onclick="export_attribute()" id="export" style=" margin:0.5rem 0.3rem;float:right"> 导出属性值</button>
  542. <button type="button" class="btn btn-default" onclick="import_attribute()" id="import" style=" margin:0.5rem 0.3rem;float:right"> 导入属性值</button>
  543. </div>
  544. </div>
  545. </div> <!-- Dialog setAttribute -->
  546. <div style="width: 100%;" id="vertical_space"></div>
  547. </div><!-- /.panel -->
  548. <div aria-hidden="true" aria-labelledby="myModalLabel" role="dialog" tabindex="-1" id="autoLabel" class="modal fade">
  549. <div class="modal-dialog">
  550. <div class="modal-content">
  551. <div class="modal-header">
  552. <button aria-hidden="true" data-dismiss="modal" class="close" type="button">×</button>
  553. <h4 class="modal-title">自动标注</h4>
  554. </div>
  555. <div class="modal-body">
  556. <form role="form">
  557. <div class="form-group">
  558. <label for="exampleInputPassword1">自动标注任务使用的模型</label>
  559. <select class="form-control" name="预检模型" id="predict_model" onchange="model_sele_Change(this)">
  560. <option value="" >请选择</option>
  561. <!--<option value="1" selected="">Faster RCNN</option> -->
  562. </select>
  563. </div>
  564. <div id="tracking_startid_div" class="form-group" style="display:none">
  565. <label for="exampleInputEmail1">追踪起始图片ID</label>
  566. <input type="" class="form-control" id="tracking_startid" placeholder="追踪起始图片ID">
  567. </div>
  568. <div id="tracking_endid_div" class="form-group" style="display:none">
  569. <label for="exampleInputEmail1">追踪结束图片ID</label>
  570. <input type="" class="form-control" id="tracking_endid" placeholder="追踪结束图片ID">
  571. </div>
  572. <div id="label_id_div" class="form-group">
  573. <label for="exampleInputEmail1">标注框ID</label>
  574. <input type="" class="form-control" id="label_id" placeholder="标注框ID">
  575. </div>
  576. <div id="labelOption_div" class="form-group">
  577. <label for="exampleInputEmail1">标注信息选项</label>
  578. <select class="form-control" name="labelOption" id="labelOption">
  579. <option value="4">请选择</option>
  580. <!--<option value="0" selected="">合并已有的标注信息</option>
  581. <option value="1">删除已有的标注信息</option>
  582. <option value="2">识别车的颜色及车的类型</option> -->
  583. </select>
  584. </div>
  585. <div id="progress">
  586. <div id="bar"></div>
  587. </div>
  588. <div><h5 id="text-progress">0%</h3></div>
  589. <button id="predtask_id" type="button" onclick="submit_predtask();">提交</button>
  590. </form>
  591. </div>
  592. </div>
  593. </div>
  594. </div>
  595. <div aria-hidden="true" aria-labelledby="myModalLabel" role="dialog" tabindex="-1" id="deleteLabel" class="modal fade">
  596. <div class="modal-dialog">
  597. <div class="modal-content">
  598. <div class="modal-header">
  599. <button aria-hidden="true" data-dismiss="modal" class="close" type="button">×</button>
  600. <h4 class="modal-title">清空指定文件的标注</h4>
  601. </div>
  602. <div class="modal-body">
  603. <form role="form">
  604. <div id="delete_startid_div" class="form-group">
  605. <label for="exampleInputEmail1">起始文件ID(对应文件列表中第几条)</label>
  606. <input type="" class="form-control" id="delete_startid" placeholder="起始文件ID">
  607. </div>
  608. <div id="delete_endid_div" class="form-group">
  609. <label for="exampleInputEmail1">结束文件ID(对应文件列表中第几条)</label>
  610. <input type="" class="form-control" id="delete_endid" placeholder="结束文件ID">
  611. </div>
  612. <button id="predtask_id" type="button" onclick="submit_deletelabel();">提交</button>
  613. </form>
  614. </div>
  615. </div>
  616. </div>
  617. </div>
  618. <div aria-hidden="true" aria-labelledby="myModalLabelc" role="dialog" tabindex="-1" id="datasetModal" class="modal fade">
  619. <div class="modal-dialog">
  620. <div class="modal-content">
  621. <div class="modal-header">
  622. <button aria-hidden="true" data-dismiss="modal" class="close" type="button">×</button>
  623. <h4 class="modal-title">导入标注属性</h4>
  624. </div>
  625. <div class="modal-body">
  626. <div class="form-group">
  627. <label id = "labelInfo" for="exampleInputFile">请输入符合格式Json字符串<font color=red>*</font> </label>
  628. <div>
  629. <textarea id="jsoninput" rows="8" cols="70"> </textarea>
  630. </div>
  631. </div>
  632. <button id="btnSubmit" type="button" onclick="submit_import_property();">提交</button>
  633. </div>
  634. </div>
  635. </div>
  636. </div>
  637. </div>
  638. <script>
  639. // back to label table
  640. var back_url = sessionStorage.getItem('return_url')
  641. document.getElementById('return_url').setAttribute('href',back_url);
  642. var ulObj = document.getElementById('nav').getElementsByTagName('ul')[0];
  643. var divObj = document.getElementsByClassName('tabpannel');
  644. var liObj = document.getElementById('nav').getElementsByTagName('li')
  645. ulObj.onclick = function(event){
  646. var ev = window.event || event;
  647. var item = ev.srcElement || ev.target;
  648. var id = item.getAttribute("id")
  649. for (var i=0; i<divObj.length;i++){
  650. if(i == id){
  651. divObj[i].style.display = 'block'
  652. liObj[i].classList.add('active')
  653. }
  654. else{
  655. divObj[i].style.display = 'none'
  656. liObj[i].classList.remove('active')
  657. }
  658. }
  659. }
  660. </script>
  661. <script>
  662. var box = document.getElementsByClassName("box1")[0]; //获取元素
  663. var x, y; //鼠标相对与div左边,上边的偏移
  664. var isDrop = false; //移动状态的判断鼠标按下才能移动
  665. box.onmousedown = function(e) {
  666. var e = e || window.event; //要用event这个对象来获取鼠标的位置
  667. x = e.clientX - box.offsetLeft;
  668. y = e.clientY - box.offsetTop;
  669. isDrop = true; //设为true表示可以移动
  670. }
  671. document.onmousemove = function(e) {
  672. //是否为可移动状态                    
  673. if(isDrop) {    
  674. var e = e || window.event;   
  675. var moveX = e.clientX - x; //得到距离左边移动距离   
  676. var moveY = e.clientY - y; //得到距离上边移动距离
  677. //可移动最大距离
  678. var maxX = document.documentElement.clientWidth - box.offsetWidth;
  679. var maxY = document.documentElement.clientHeight - box.offsetHeight;
  680. //范围限定 当移动的距离最小时取最大 移动的距离最大时取最小
  681. //范围限定方法一
  682. /*if(moveX < 0) {
  683. moveX = 0
  684. } else if(moveX > maxX) {
  685. moveX = maxX;
  686. }
  687. if(moveY < 0) {
  688. moveY = 0;
  689. } else if(moveY > maxY) {
  690. moveY = maxY;
  691. } */
  692. //范围限定方法二 
  693. moveX=Math.min(maxX, Math.max(0,moveX));
  694. moveY=Math.min(maxY, Math.max(0,moveY));
  695. box.style.left = moveX + "px";  
  696. box.style.top = moveY + "px";          
  697. } else {
  698. return;          
  699. }
  700. }
  701. document.onmouseup = function() {
  702. isDrop = false; //设置为false不可移动
  703. }
  704. </script>
  705. <script src="/self/func.js" type="text/javascript"></script>
  706. <!-- jQuery 2.0.2 -->
  707. <!-- -->
  708. <script src="/self/js/jquery.min.js" type="text/javascript"></script>
  709. <script src="/self/js/jquery.mousewheel.js"></script>
  710. <script src="/self/js/jquery.jscrollpane.js"></script>
  711. <!-- Bootstrap -->
  712. <script src="/self/js/bootstrap.min.js" type="text/javascript"></script>
  713. <script src="/self/js/app.js" type="text/javascript" ></script>
  714. <script src="/self/js/Director/labelingSelfDefine.js" type="text/javascript"></script>
  715. <script src="/self/js/Director/detection.js" type="text/javascript" ></script>
  716. <!-- <script src="../js/labelx.js"></script> -->
  717. </body>
  718. </html>