LabelMe注释工具的源代码

・9 分钟阅读

  • 源代码名称: LabelMeAnnotationTool
  • 源代码网址: https://www.github.com/CSAILVision/LabelMeAnnotationTool
  • LabelMeAnnotationTool的文档
  • LabelMeAnnotationTool的源代码下载
  • Git URL:
    git://www.github.com/CSAILVision/LabelMeAnnotationTool.git
  • Git Clone代码到本地:
    git clone https://www.github.com/CSAILVision/LabelMeAnnotationTool
  • Subversion代码到本地:
    $ svn co --depth empty https://www.github.com/CSAILVision/LabelMeAnnotationTool
                              Checked out revision 1.
                              $ cd repo
                              $ svn up trunk
              
  • LabelMe注释工具源代码

    在这里,您将找到如何在你服务器上用源代码安装LabelMe注释工具。 LabelMe是一个用Javascript编写的注释工具,用于在线图像标记。 图像注释工具的优势在于您可以从任何地方访问该工具,人们可以帮助您注释图像,而且无需在它计算机上安装或复制大型数据集。

    引用:

    B. C. Russell, A. Torralba, K. P. Murphy, W. T. Freeman. LabelMe: 一种基于数据库和web的图像标注工具。 国际计算机视觉杂志 77 (1-3):157-173, 2008. 项目主页

    下载:

    你可以直接下载源代码的 zip文件。

    或者,你可以从GitHub克隆它,如下所示:

    
    
    
    
    $ git clone https://github.com/CSAILVision/LabelMeAnnotationTool.git
    
    
    
    

    内容:

    • Images - 这就是你的照片。
    • Annotations - 这里是收集注释的地方。
    • Masks - 这是收集分割遮罩的位置(涂鸦模式)。
    • Scribbles - 这就是书写( scribble模式)的地方。
    • tool.html - LabelMe注释工具的主网页。
    • annotationTools - 带有源代码的目录。
    • annotationCache - 临时文件的位置。
    • Icons - 网页上使用的图标。

    快速入门说明:

    将LabelMe注释工具代码放在web服务器( 请参阅下面的web服务器配置要求) 上。

    在命令行上运行:

    
    
    
    
    $ make
    
    
    
    

    这将设置perl脚本所需的全局变量。 请注意,如果移动代码的位置,则需要重新运行"make "以刷新全局变量。

    在"Images "文件夹中创建一个子文件夹,然后将图像放在那里。 例如:"Images / example_folder / img1.jpg"。 确保所有图片都有".jpg"扩展名,文件夹/文件名包含字母数字字符。 没有空格或有趣的字符)。

    将你的网页浏览器指向以下网址:

    http://www.yourserver.edu/path/to/LabelMe/tool.html?collection=LabelMe&mode=f&folder=example_folder&image=img1.jpg

    标记您的图像。按"显示另一个图像"转到文件夹中的下一个图像。

    瞧!您的注释将显示在"Annotations "文件夹中。

    WEB服务器要求:

    要在web服务器上设置LabelMe工具,你需要以下选项:

    • 运行Apache服务器( 请参见 或者 Windows的特殊配置指令。)。

    • 在Apache中启用 AuthConfig,以便服务器端包含( SSI ) 将工作。 这将允许SVG绘图功能。 这是最常见的错误来源,所以请确保这一步工作正常。

    • 允许运行 perl/cgi脚本。 这是第二个最常见的错误。

    • 确保安装了php5和libapache2-mod-php5库。 你可以通过运行以下命令在Linux上安装它们:

      
      
      
      
      $ sudo apt-get install php5 libapache2-mod-php5
      
      
      
      
    • 如果你安装在 Ubuntu 或者 Windows,请参见特殊配置指令。

    如果无法绘制多边形,请检查是否将页面加载为"application/xhtml xml"页面( 你可以通过导航到 Tools- 如果不是,请确保SSI已经启用。

    确保图像对你的网站服务器具有读权限,并且"Annotations"文件夹中的文件夹具有写权限。 另外,"annotationCache/TmpAnnotations"需要有写权限。

    注释工具的特性:

    • 以下是可以传递给注释工具的URL变量:

      • mode=im - 仅显示图像和绘图画布( 不显示图像之外的任何内容)。
      • mode = mt - Mechanical Turk模式。
      • mode=f - 按下"下一幅图像"按钮进入文件夹中的下一个图像。
      • mode=i - 按"下一幅图像"键进入默认LabelMe集合中的随机图像。
      • mode=c - 转到 Collection ( 通过目录编辑器设置) 中的下一个图像。
      • username=johndoe - 为会话设置用户名。
      • collection=LabelMe - 使用默认的LabelMe Collection 列表。 请参阅以下有关设置新收藏列表的信息。
      • folder=MyLabelMeFolder - LabelMe文件夹,其中包含图像。
      • image=image.jpg - 要注释的LabelMe图像。
      • objects = car,person,building - 当弹出气泡出现询问用户对象名称时,用户选择其中一个对象显示为下拉列表。
      • scribble=false - 关闭scribble模式。
      • objlist=visible - 控制右边的对象列表是可见还是不可见。 使用"objlist=hidden"使它的隐藏。
      • actions=n - 控制允许用户执行哪些操作。 要设置所需的操作,请使用以下字母的任意组合。 例如,要允许重命名,修改控制点和删除操作,请设置"actions = rmd "。 缺省情况下,"actions=n"以下是可能的操作:
        • n - 创建和编辑新多边形
        • R - 重命名现有对象
        • m - 修改现有对象上的控制点
        • d - 删除现有对象
        • a - 允许所有操作
        • 只查看多边形( 不允许任何编辑)
      • viewobj=e - 控制用户看到的对象。 使用以下可能的选项之一。 默认情况下,"viewobj = e "。请注意,对于已删除的对象,这些对象将以灰色显示,对象列表中的对象名称将以斜体显示。
        • e - 查看新的和以前标记的对象
        • n - 仅查看新对象
        • d - 查看新的和已经删除的对象
        • a - 查看所有对象( 新的,现有的,已经删除的)

      以下是 Mechanical Turk模式:

      • mt_sandbox=true - 使用 Mechanical Turk沙盒模式。 这里模式用于在 Mechanical Turk上调试。 你可能想从这个变量集开始,以确保一切都正常。
      • N=5 - 工作线程至少需要标注 5个多边形。 使用N = inf允许标记任意数量。
      • 你可以自定义员工看到的指令。 默认情况下,以下指令给了人。
      • mt_instructions=Place你在这里的指令- 你可以自定义工作人员在标签任务顶部的一行指令。 缺省情况下,说明为: 请在这里图像中标注任意多的对象。
    • 您可以通过在命令行上运行以下命令来创建要标记的图像集合,

      
      
      
      
      $ cd./annotationTools/sh/
      
      
      $./populate_dirlist.sh
      
      
      
      

      这将在"./Images "文件夹中创建所有图像的列表,并将显示在文件"./annotationCache/DirLists/labelme.txt "中。

      然后,您可以使用以下URL标记集合中的图像,

      http://www.yourserver.edu/path/to/LabelMe/tool.html?collection=labelme&mode=i

      您可以通过从命令行运行以下命令来创建包含特定文件夹的集合,

      
      
      
      
      $ cd./annotationTools/sh/
      
      
      $./populate_dirlist.sh my_collection.txt example_folder
      
      
      
      

      该列表将显示在"./annotationCache/DirLists/my_collection.txt "中。然后,您可以使用以下URL标记集合中的图像,

      http://www.yourserver.edu/path/to/LabelMe/tool.html?collection=my_collection&mode=i

    • 您可以通过修改"./annotationCache/XMLTemplates/your_collection.xml "中的XML文件模板来更改集合的注释文件的布局。默认模板是"./annotationCache/XMLTemplates/labelme.xml "。

    • 注释工具操作的日志文件记录在"./annotationCache/Logs/logfile.txt". 中,确保该文件具有写权限。

    代码 API

    下面是源代码的简要概述。 请参见 Javascript代码 API 了解更多细节。

    • tool.html - 这是注释工具的入口点。 主要的功能是插入所有的javascript代码并放置绘图画布。

    • annotationTools/js/- 这里文件夹包含注释工具功能的所有javascript代码。 我们为Javascript源代码提供了代码API插件,它已经从源代码注释中自动提取出来。

    • annotationTools/perl/- 这个文件夹包含用于与服务器后端通信的所有Perl脚本。

    • annotationTools/css/- 这里文件夹包含所有CSS样式定义。

    • annotationTools/html/- 这里文件夹包含辅助HTML文件( 比如。 对于Mechanical Turk指令,等等 )。

    ( c ) 2015,麻省理工学院计算机和人工智能实验室

    讨论
    Fansisi profile image