naturalintelligence / imglab Goto Github PK
View Code? Open in Web Editor NEWTo speedup and simplify image labeling/ annotation process with multiple supported formats.
Home Page: https://solothought.com/imglab/
License: MIT License
To speedup and simplify image labeling/ annotation process with multiple supported formats.
Home Page: https://solothought.com/imglab/
License: MIT License
Starting point: https://naturalintelligence.github.io/imglab/v2.html
It is quite difficult to work on large images. Hence a feature is required to zoom in / out image with SVG.
What to do
tags\actions
folder with necessary functionalityCheck technical documentation to know how to add an action bar.
Currently all the data is being saved to labellingData
. We want to keep labellingData sync with browser store securely. So if the browser is accidentally closed, user should not loose data.
Considerations
starting point: v2.html
link: https://naturalintelligence.github.io/imglab/v2.html
images-slider.tag.html
menu.tag.html
Note - all the new key mappings need to be mentioned in shortcuts.tag.html
better if it is automated.
https://naturalintelligence.github.io/imglab
User can see key mappings when he clicks on keyboard icon. In addition, it'll be good if we display key mappings with each menu item.
Watch for changes, or Bookmark for easy discovery.
Fund this project for new features and maintenance.
[Showcase] your project with us by raising an issue
Imglab is currently implemented using jQuery. I believe it should be migrated to react app. Discussion and PRs are welcome.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
v2.html looks fine on chrome but on firefox it moves the menu bar down.
Hint: Try line height of the container.
Check technical documentation.
URL : https://naturalintelligence.github.io/imglab/v2.html
starting point : v2.html
Issue:
fill-opacity
of SVG. But it is not working.Check technical documentation.
There is a switch just below the image gallery slider and just above the canvas / work area. It is helpful to switch between creating label or point. It doesn't display correctly in all the browsers.
I believe setting max-width may fix the issue. Manual switch or other libraries can also be the solution
On following cases
Update label-panel on every update on workarea and vice versa.
Watch for changes, or Bookmark for easy discovery.
Fund this project for new features and maintenance.
[Showcase] your project with us by raising an issue
Currently imglab can export data in dlib pst or XML file only. We want to support PascalVoc XML as well.
labellingData format: https://github.com/NaturalIntelligence/imglab/blob/master/js/nimnObjStructure.js
Sample format:
<?xml version="1.0"?>
<annotation>
<folder>images</folder>
<filename>raccoon-63.png</filename>
<path>/Users/datitran/Desktop/raccoon/images/raccoon-63.png</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>600</width>
<height>400</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<name>raccoon</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>74</xmin>
<ymin>107</ymin>
<xmax>280</xmax>
<ymax>290</ymax>
</bndbox>
</object>
<object>
<name>raccoon</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>227</xmin>
<ymin>93</ymin>
<xmax>403</xmax>
<ymax>298</ymax>
</bndbox>
</object>
</annotation>
Note:
object.bndbox
can be taken from labellingData[n].shapes.bbox
Check technical documentation.
The x position of the cursor displays extra numbers. In the image below it's displaying ".84375" Even if that number is technically correct (I don't know if it is or not), it should probably just display a whole number and not a decimal. This was in Chrome. A different number appeared in FireFox. And I actually couldn't get any image to load in IE, but that should be a separate issue.
The code is already there to identify the SVG element and select it. workarea.tag.html
Watch for changes, or Bookmark for easy discovery.
Fund this project for new features and maintenance.
[Showcase] your project with us by raising an issue
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
In dlib face, there are 68 points. Is it necessary that you have to order them right?
For example, you might label your eyebrow first before your cheek if order doesn't matter.
And what if the landmark labeler mislabeled the number of points to, say 67 or 69?
When multiple images are loaded in image slider and a user is scrolling through the images, it'll be a good user experience if an icon overlayed on image can notify them which images are already labelled. Currently user need to click every image to check if they are labelled.
Note
This feature should work in all the cases;
To motivate more people for opensource contribution we need to create an easy to start development guide for this project. It should contain
Once a polygon is created, user should be able to add extra points later to change the shape of polygon.
Watch for changes, or Bookmark for easy discovery.
Fund this project for new features and maintenance.
[Showcase] your project with us by raising an issue
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
starting point: v2.html
link: https://naturalintelligence.github.io/imglab/v2.html
Following issues has to be fixed
Can I save the face and landmark point which I am getting by using face++ API. I tried to save it but the generated .xml file in not including any points.
Currently workarea / canvas where we load the image for labeling is small. I believe we should take the advantage of full browser width.
Note : A small change in class file can do that. But it may lead change in cursor position.
We can also discuss for the new design to maximize the work area.
starting point: v2.html
link: https://naturalintelligence.github.io/imglab/v2.html
Check technical documentation.
Though Imglab works offline once it is loaded in the browser, it'll be more handy if it can be installed on the machine without internet.
Using node js, electron and other helpful technologies, it's installer can be created. Discussion and PR are welcome for this thread.
After creating a label or feature point on an image, user can delete selected element from the left side widget.
Instead, we would like to create an action bar between canvas and thumbnail slider with "delete", "empty", "move" buttons. Appropriate options should be visible or enable. Eg when a feature point is selected then "empty" option either should not be visible or disabled.
starting point: v2.html
link: https://naturalintelligence.github.io/imglab/v2.html
Just like version 1 we need to show vertical and horizontal crossing lines to track mouse pointer.
It's hard to detect landmark point when the background color is same. Light tool helps a bit.
We're planning to introduce an action or make it automatic to change the color of SVG circle point based on the image background color.
I believe taking white and black color based on the image background would be good. Suggestions are welcome.
Watch for changes, or Bookmark for easy discovery.
Fund this project for new features and maintenance.
[Showcase] your project with us by raising an issue
dlib
requires them to be integers.dlib
. You output UTF-8
and the first line of the XML is buggy (dlib yelled error at the first line of the XML when training). But dlib
requires encoding of ISO-xxxxx
Please fix this if possible.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
With the inspiration of many photo editing software and to support other features in future, I was wondering if we should change the UI of Imglab
.
Some points in my mind
Steps
Some UI changes has to be done on this
Files to be changed: tags\label-panel.tag.html
starting point: v2.html
link: https://naturalintelligence.github.io/imglab/v2.html
Following issues has to be fixed
Starting point: https://naturalintelligence.github.io/imglab/v2.html
Issue: Tools displayed in left bottom are extra padded
Check technical documentation.
For the sake of laziness, we were wondering to introduce a smart selection tool which can automatically create a polygon and select particular part of an object.
How to
workarea.tag.html
load the image on hidden canvas.Watch for changes, or Bookmark for easy discovery.
Fund this project for new features and maintenance.
[Showcase] your project with us by raising an issue
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
starting point: v2.html
link: https://naturalintelligence.github.io/imglab/v2.html
Steps:
<polygon id="SvgjsPolygon1063" points="179,177 179,177 397,147 323,381 323,381 88,350 88,350" class="labelbox shape"></polygon>
In case of 3 points (triangle) polygon, total points are 5.
In case of 4 points polygon, total points are 7.
In case of 5 points polygon, total points are 8.
Starting point: https://naturalintelligence.github.io/imglab/v2.html
While annotating the images sometimes you may need to copy almost similar element on the same image or across the images. It'll be more handy when we can just copy paste svg elements (workarea.tag.html). So that the user's effort and time can be saved.
Check technical documentation.
Landmark points are small and hard to find on an image. Hence we've introduced that for some images they are bigger and for some images they're not much visible due the back ground.
Hence we're planning to create an action bar which can let the users to change it's size.
To do it,
tags\actions\lightbulb-action.tag.html
Watch for changes, or Bookmark for easy discovery.
Fund this project for new features and maintenance.
[Showcase] your project with us by raising an issue
You must be labeling a face with landmark points. What if you add extra detail about that. E.g. age, gender, name etc.
This issue is raised to discuss what will be the best option to associate this information. As this tool is not limited to label only the faces, we can't hard code the attributes related to particular type of objects only.
In my opinion tags can be the good option for that. Your thought for discussion and PR for code change is welcome.
Check technical documentation.
It is difficult to see a small feature point on an image. Hence I've fixed their size to 2px. But when you draw multiple points on small faces, you only see the points not the face. Moreover, it is very difficult to draw point on small face / object. Hence it'll be good if can enlarge workarea to draw points correctly.
file: tags\actions\lightbulb-action.tag.html
, tags\workarea.tag.html
Currently we can click use light tool to set the opacity of an image. We want to remember the settings so that when a new image is loaded in work area it uses the same opacity.
Watch for changes, or Bookmark for easy discovery.
Fund this project for new features and maintenance.
[Showcase] your project with us by raising an issue
Latest refactoring have broken Face ++ integration.
As per console log,
Face++DataParser.js:42 Uncaught ReferenceError: deleteAll is not defined
at Object.success (Face++DataParser.js:42)
at i (jquery.min.js:2)
at Object.fireWith [as resolveWith] (jquery.min.js:2)
at A (jquery.min.js:4)
at XMLHttpRequest.<anonymous> (jquery.min.js:4)
Demo: https://naturalintelligence.github.io/imglab/
workarea.tag.html
Hint code:
if(up) diffY = -1
if(down) diffY = 1
if(left) diffX = -1
if(right) diffX = 1
selectedShapes.forEach(shape => {
shape.move(shape.rbox.x + diffX ,shape.rbox.y + diffY) ;
}
Note - all the new key mappings need to be mentioned in shortcuts.tag.html
Check technical documentation.
Through imglab, you can only make the rectangular labels. As a part of this issue, we want to let user create polygons.
This issue has dependency on issue #17 Create Toolbar
Features
If user has not saved the data and close the window, he should be warned before closing the window.
Starting point: v2.html
Don't show when
ref: https://stackoverflow.com/questions/7317273/warn-user-before-leaving-web-page-with-unsaved-changes
Check technical documentation.
starting point: v2.html
link: https://naturalintelligence.github.io/imglab/v2.html
On top right side there are 3 buttons: plugins, keyboard, donate. When the browser window is < 1412px. They are not properly aligned.
All the elements in a menu should be aligned for different screen size.
Imglab currently save data in json format. The size of project file can be reduced by 66% if it uses निम्न (nimn) format.
Hii,
I want to detect face from HOG based face detector using dlib's face detector and then train this for land mark detection using my dataset. Can I load this face points and generate one .xml file using this imglab tool. If yes how to do it. Is there any specific format to load the face points (i.e. 4 points of rectangle)
Please help me in this regard.
Regards
Nidhi
starting point: v2.html
link: https://naturalintelligence.github.io/imglab/v2.html
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.