MCPcopy Index your code
hub / github.com/SkalskiP/make-sense

github.com/SkalskiP/make-sense @main sqlite

repository ↗ · DeepWiki ↗
1,063 symbols 2,387 edges 198 files 0 documented · 0%
README

Github Stars GitHub release (latest by date including pre-releases) codecov Gitter Discord

makesense.ai

<img width="100" src="https://github.com/SkalskiP/make-sense/raw/main/public/favicon.png" alt="make sense logo">

makesense.ai is a free-to-use online tool for labeling photos. Thanks to the use of a browser it does not require any complicated installation - just visit the website and you are ready to go. It also doesn't matter which operating system you're running on - we do our best to be truly cross-platform. It is perfect for small computer vision deep learning projects, making the process of preparing a dataset much easier and faster. Prepared labels can be downloaded in one of the multiple supported formats. The application was written in TypeScript and is based on React/Redux duo.

📄 Documentation

You can find out more about our tool from the newly released documentation - still under 🚧 construction. Let us know what topics we should cover first.

🤖 Advanced AI integrations

makesense.ai strives to significantly reduce the time you have to spend on photo labeling. We are doing our best to integrate the latest and greatest AI models, that can give you recommendations as well as automate repetitive and tedious activities.

  • YOLOv5 is our most powerful integration yet. Thanks to the use of yolov5js you can load not only pretrained models from yolov5js-zoo, but above all your own models trained thanks to YOLOv5 and exported to tfjs format.
  • SSD pretrained on the COCO dataset, which will do some of the work for you in drawing bounding boxes on photos and also (in some cases) suggest a label.
  • PoseNet is a vision model that can be used to estimate the pose of a person in an image or video by estimating where key body joints are.

The engine that drives our AI functionalities is TensorFlow.js - JS version of the most popular framework for training neural networks. This choice allows us not only to speed up your work but also to care about the privacy of your data, because unlike with other commercial and open-source tools, your photos do not have to be transferred to the server. This time AI comes to your device!

https://user-images.githubusercontent.com/26109316/193255987-2d01c549-48c3-41ae-87e9-e1b378968966.mov

💻 Local Setup

# clone repository
git clone https://github.com/SkalskiP/make-sense.git

# navigate to main dir
cd make-sense

# install dependencies
npm install

# serve with hot reload at localhost:3000
npm start

To ensure proper functionality of the application locally, npm 8.x.x and node.js v16.x.x versions are required. More information about this problem is available in the #16.

🐳 Docker Setup

# Build Docker Image
docker build -t make-sense -f docker/Dockerfile .

# Run Docker Image as Service
docker run -dit -p 3000:3000 --restart=always --name=make-sense make-sense

# Get Docker Container Logs
docker logs make-sense

# Access make-sense: http://localhost:3000/

⌨️ Keyboard Shortcuts

Functionality Context Mac Windows / Linux
Polygon autocomplete Editor Enter Enter
Cancel polygon drawing Editor Escape Escape
Delete currently selected label Editor Backspace Delete
Load previous image Editor + Left Ctrl + Left
Load next image Editor + Right Ctrl + Right
Zoom in Editor + + Ctrl + +
Zoom out Editor + - Ctrl + -
Move image Editor Up / Down / Left / Right Up / Down / Left / Right
Select Label Editor + 0-9 Ctrl + 0-9
Exit popup Popup Escape Escape

Table 1. Supported keyboard shortcuts

⬆️ Export Formats

CSV YOLO VOC XML VGG JSON COCO JSON PIXEL MASK
Point
Line
Rect
Polygon
Label

Table 2. The matrix of supported labels export formats, where: * ✓ - supported format * ☐ - not yet supported format * ✗ - format does not make sense for a given label type

You can find examples of export files along with a description and schema on our Wiki.

⬇️ Import Formats

CSV YOLO VOC XML VGG JSON COCO JSON PIXEL MASK
Point
Line
Rect
Polygon
Label

Table 3. The matrix of supported labels import formats * ✓ - supported format * ☐ - not yet supported format * ✗ - format does not make sense for a given label type

🔐 Privacy

We don't store your images, because we don't send them anywhere in the first place.

🚀 Tutorials

If you are just starting your adventure with deep learning and would like to learn and create something cool along the way, makesense.ai can help you with that. Leverage our bounding box labeling functionality to prepare a data set and use it to train your first state-of-the-art object detection model. Follow instructions and examples but most importantly, free your creativity.

🏆 Contribution

<a href="https://github.com/SkalskiP/make-sense/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=SkalskiP/make-sense" />
</a>

💬 Citation

Please cite Make Sense in your publications if this is useful for your research. Here is an example BibTeX entry:

@MISC{make-sense,
   author = {Piotr Skalski},
   title = {{Make Sense}},
   howpublished = "\url{https://github.com/SkalskiP/make-sense/}",
   year = {2019},
}

🪧 License

This project is licensed under the GPL-3.0 License - see the LICENSE file for details. Copyright © 2019 Piotr Skalski.

Extension points exported contracts — how you extend this code

IProps (Interface)
(no doc)
src/App.tsx
MobileDeviceData (Interface)
(no doc)
src/data/MobileDeviceData.ts
INotification (Interface)
(no doc)
src/store/notifications/types.ts
RoboflowPrediction (Interface)
(no doc)
src/ai/RoboflowAPIObjectDetector.ts
IProps (Interface)
(no doc)
src/views/MobileMainView/MobileMainView.tsx
ILine (Interface)
(no doc)
src/interfaces/ILine.ts
RectAnchor (Interface)
(no doc)
src/data/RectAnchor.ts
SubmitNewNotification (Interface)
(no doc)
src/store/notifications/types.ts

Core symbols most depended-on inside this repo

getActiveImageData
called by 35
src/store/selectors/LabelsSelector.ts
updateImageDataById
called by 30
src/store/labels/actionCreators.ts
getLabelNames
called by 27
src/store/selectors/LabelsSelector.ts
updateActivePopupType
called by 21
src/store/general/actionCreators.ts
updateActiveLabelId
called by 21
src/store/labels/actionCreators.ts
fullRender
called by 19
src/logic/actions/EditorActions.ts
isPointInside
called by 18
src/utils/RectUtil.ts
isMouseOverLine
called by 17
src/utils/RenderEngineUtil.ts

Shape

Method 443
Function 305
Class 193
Interface 102
Enum 20

Languages

TypeScript100%

Modules by API surface

src/logic/render/PolygonRenderEngine.ts31 symbols
src/views/PopupView/InsertLabelNamesPopup/InsertLabelNamesPopup.tsx23 symbols
src/views/PopupView/LoadYOLOv5ModelPopup/LoadYOLOv5ModelPopup.tsx20 symbols
src/utils/RenderEngineUtil.ts20 symbols
src/logic/render/LineRenderEngine.ts20 symbols
src/logic/render/RectRenderEngine.ts18 symbols
src/logic/actions/ViewPortActions.ts18 symbols
src/store/selectors/LabelsSelector.ts17 symbols
src/utils/RectUtil.ts16 symbols
src/logic/context/ContextManager.ts16 symbols
src/views/PopupView/SuggestLabelNamesPopup/SuggestLabelNamesPopup.tsx15 symbols
src/views/PopupView/ConnectInferenceServerPopup/ConnectInferenceServerPopup.tsx15 symbols

Dependencies from manifests, versioned

@emotion/react11.9.3 · 1×
@emotion/styled11.9.3 · 1×
@mui/material5.9.1 · 1×
@mui/system5.9.1 · 1×
@redux-devtools/core3.13.1 · 1×
@swc/core1.2.218 · 1×
@swc/jest0.2.22 · 1×
@tensorflow-models/coco-ssd2.2.2 · 1×
@tensorflow-models/posenet2.2.2 · 1×
@tensorflow/tfjs3.19.0 · 1×
@tensorflow/tfjs-backend-cpu3.19.0 · 1×
@tensorflow/tfjs-backend-webgl3.19.0 · 1×

For agents

$ claude mcp add make-sense \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact