Skip to content

Commit 97e5742

Browse files
authored
Merge pull request SkalskiP#62 from SkalskiP/develop
1.4.0-alpha relese merge
2 parents d4ea708 + 35d15d7 commit 97e5742

File tree

82 files changed

+1025
-391
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+1025
-391
lines changed

README.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,15 @@ Andrew Ng
2121
## Sneak Peek
2222

2323
<p align="center">
24-
<img width="1000" src=".//examples/alfa-demo.gif" alt="bbox">
24+
<img width="1000" src=".//examples/alfa-demo.gif" alt="alfa-demo">
25+
</p>
26+
27+
## Advanced AI functionalities
28+
29+
[makesense.ai][1] strives to significantly reduce the time we have to spend on labeling photos. To achieve this, we are going to use many different AI models that will be able to give you recommendations as well as automate repetitive and tedious activities. The first step on this journey is to use a [SSD model][8] pretrained on the [COCO dataset][9], which will do some of the work for you in drawing bboxes on photos and - in future versions of the application - will also suggest a label. We also plan to add, among other things, models that classify photos, detect characteristic features of faces, whole faces, and also human pose. The engine that drives our AI functionalities is [TensorFlow.js][10] - 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!
30+
31+
<p align="center">
32+
<img width="1000" src=".//examples/ai-demo.gif" alt="ai-demo">
2533
</p>
2634

2735
## Set Up the Project Locally
@@ -95,17 +103,6 @@ Feel free to file [issues](https://github.com/SkalskiP/make-sense/issues) or [pu
95103
}
96104
```
97105

98-
## Citation
99-
100-
```
101-
@MISC{make-sense,
102-
author = {Piotr Skalski},
103-
title = {{Make Sense}},
104-
howpublished = "\url{https://github.com/SkalskiP/make-sense/}",
105-
year = {2019},
106-
}
107-
```
108-
109106
## License
110107

111108
This project is licensed under the GPL-3.0 License - see the [LICENSE][2] file for details
@@ -119,3 +116,6 @@ Copyright (c) 2019-present, Piotr Skalski
119116
[5]: https://gitter.im/make-sense-ai/community?utm_source=share-link&utm_medium=link&utm_campaign=share-link
120117
[6]: https://github.com/SkalskiP/make-sense/wiki/Road-Map
121118
[7]: https://github.com/SkalskiP/make-sense/wiki/Supported-Output-Formats
119+
[8]: https://arxiv.org/abs/1512.02325
120+
[9]: http://cocodataset.org
121+
[10]: https://www.tensorflow.org/js

examples/ai-demo.gif

10.4 MB
Loading

package-lock.json

Lines changed: 95 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
"private": true,
55
"dependencies": {
66
"@material-ui/core": "^4.1.1",
7+
"@tensorflow-models/coco-ssd": "^2.0.0",
8+
"@tensorflow/tfjs": "^1.2.9",
79
"@types/jest": "24.0.14",
810
"@types/node": "12.0.8",
911
"@types/react": "16.8.20",
@@ -29,7 +31,7 @@
2931
"scripts": {
3032
"start": "react-scripts start",
3133
"build": "react-scripts build",
32-
"test": "CI=true react-scripts test --env=jsdom",
34+
"test": "CI=true react-scripts test --env=./src/__test__/custom-test-env.js",
3335
"test:coverage": "npm test -- --coverage",
3436
"eject": "react-scripts eject"
3537
},

public/ico/checkbox-checked-color.png

-518 Bytes
Binary file not shown.

public/ico/ok.png

1.02 KB
Loading

public/img/robot.png

796 Bytes
Loading

src/App.scss

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
@import './settings/_Settings';
22

3-
//.App {
4-
// height: 100vh;
5-
// width: 100vw;
6-
// margin: 0;
7-
// padding: 0;
8-
//}
3+
.App {
4+
--leading-color: #{$secondaryColor};
5+
--hue-value: 172deg;
6+
}
7+
8+
.App.AI {
9+
--leading-color: #{$primaryColor};
10+
--hue-value: 120deg;
11+
}

src/App.tsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,15 @@ import {ISize} from "./interfaces/ISize";
1111
import {Settings} from "./settings/Settings";
1212
import {SizeItUpView} from "./views/SizeItUpView/SizeItUpView";
1313
import {PlatformModel} from "./staticModels/PlatformModel";
14+
import classNames from "classnames";
1415

1516
interface IProps {
1617
projectType: ProjectType;
1718
windowSize: ISize;
19+
AIMode: boolean;
1820
}
1921

20-
const App: React.FC<IProps> = ({projectType, windowSize}) => {
22+
const App: React.FC<IProps> = ({projectType, windowSize, AIMode}) => {
2123
const selectRoute = () => {
2224
if (!!PlatformModel.mobileDeviceData.manufacturer && !!PlatformModel.mobileDeviceData.os)
2325
return <MobileMainView/>;
@@ -33,7 +35,7 @@ const App: React.FC<IProps> = ({projectType, windowSize}) => {
3335
};
3436

3537
return (
36-
<div className="App"
38+
<div className={classNames("App", {"AI": AIMode})}
3739
draggable={false}
3840
>
3941
{selectRoute()}
@@ -43,8 +45,9 @@ const App: React.FC<IProps> = ({projectType, windowSize}) => {
4345
};
4446

4547
const mapStateToProps = (state: AppState) => ({
46-
projectType: state.editor.projectType,
47-
windowSize: state.general.windowSize
48+
projectType: state.general.projectData.type,
49+
windowSize: state.general.windowSize,
50+
AIMode: state.ai.isObjectDetectorLoaded
4851
});
4952

5053
export default connect(

src/__test__/custom-test-env.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const Environment = require('jest-environment-jsdom');
2+
3+
/**
4+
* A custom environment to set the TextEncoder that is required by TensorFlow.js.
5+
*/
6+
module.exports = class CustomTestEnvironment extends Environment {
7+
async setup() {
8+
await super.setup();
9+
const { TextEncoder } = require('util');
10+
this.global.TextEncoder = TextEncoder;
11+
}
12+
}

0 commit comments

Comments
 (0)