termux-vision 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -75
- package/README.pypi.md +8 -3
- package/package.json +58 -58
package/README.md
CHANGED
|
@@ -1,75 +1,71 @@
|
|
|
1
|
-
# Termux-Vision
|
|
2
|
-
|
|
3
|
-
[](https://pypi.org/project/termux-vision/)
|
|
4
|
-
[](https://pypi.org/project/termux-vision/)
|
|
5
|
-
[](https://www.npmjs.com/package/termux-vision)
|
|
6
|
-
[](https://www.npmjs.com/package/termux-vision)
|
|
7
|
-
[](https://github.com/uno-km/termux-vision)
|
|
8
|
-
|
|
9
|
-
>
|
|
10
|
-
> *Zero-Dependency On-Device Computer Vision & Multimodal VLM Inference Engine for Android Termux*
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## Architecture & Overview
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
const
|
|
56
|
-
console.log(`
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## License
|
|
75
|
-
Licensed under the Apache-2.0 License. Copyright (c) 2026 Eunho Kim ([@uno-km](https://github.com/uno-km)).
|
|
1
|
+
# Termux-Vision
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/termux-vision/)
|
|
4
|
+
[](https://pypi.org/project/termux-vision/)
|
|
5
|
+
[](https://www.npmjs.com/package/termux-vision)
|
|
6
|
+
[](https://www.npmjs.com/package/termux-vision)
|
|
7
|
+
[](https://github.com/uno-km/termux-vision)
|
|
8
|
+
|
|
9
|
+
> **디바이스 리소스를 활용한 안드로이드 Termux 제로 디펜던시 온디바이스 컴퓨터 비전 & VLM 멀티모달 추론 엔진**
|
|
10
|
+
> *Zero-Dependency On-Device Computer Vision & Multimodal VLM Inference Engine Utilizing Device Resources for Android Termux*
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 📌 Architecture & Overview
|
|
15
|
+
|
|
16
|
+
순수 ARM64 NEON 커널과 4단계 화질 프리셋(fast, optimal, high, original), 디바이스 리소스 최적화 연산을 결합하여 메모리 격리 환경에서 엣지 검출과 VLM 멀티모달 시각 추론을 실현합니다.
|
|
17
|
+
|
|
18
|
+
Eliminates heavy C++ dependencies by integrating SIMD NEON spatial image transforms with on-device VLM (Qwen2-VL, SmolVLM) multi-tier resolution presets (fast, optimal, high, original) utilizing device resources under strict memory isolation.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 🚀 Installation & Quickstart
|
|
23
|
+
|
|
24
|
+
### Python (PyPI)
|
|
25
|
+
```bash
|
|
26
|
+
pip install termux-vision
|
|
27
|
+
```
|
|
28
|
+
```python
|
|
29
|
+
import termux_vision as tv
|
|
30
|
+
|
|
31
|
+
# 1. Zero-Dependency Spatial Filtering (0.01s ultra-fast)
|
|
32
|
+
img = tv.io.load_image("photo.jpg")
|
|
33
|
+
edges = tv.cv.canny(tv.transforms.to_grayscale(img), 40, 120)
|
|
34
|
+
|
|
35
|
+
# 2. On-Device VLM Multimodal Inference with 4-Tier Quality Presets
|
|
36
|
+
with tv.vlm.load("qwen2-vl-2b-q4", quality="optimal") as engine:
|
|
37
|
+
res = engine.describe("photo.jpg", prompt="Describe this scene in detail.", quality="optimal")
|
|
38
|
+
print(f"Generated ({res.metrics.tokens_per_second:.1f} t/s): {res.text}")
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Node.js / TypeScript (npm)
|
|
43
|
+
```bash
|
|
44
|
+
npm install termux-vision
|
|
45
|
+
```
|
|
46
|
+
```typescript
|
|
47
|
+
import tv from 'termux-vision';
|
|
48
|
+
|
|
49
|
+
// 1. Diagnostics & Hardware Probe
|
|
50
|
+
const doc = tv.doctor(true);
|
|
51
|
+
console.log(`Vulkan GPU: ${doc.vulkan.status} | RAM: ${doc.hardware.availableRamMb} MB`);
|
|
52
|
+
|
|
53
|
+
// 2. Multimodal VLM Inference with Quality Preset
|
|
54
|
+
const engine = await tv.load({ modelId: 'qwen2-vl-2b-q4', contextLimit: 4096 });
|
|
55
|
+
const result = await engine.describe('photo.jpg', { quality: 'optimal', maxTokens: 300 });
|
|
56
|
+
console.log(`[${result.metrics.backend.toUpperCase()}] ${result.text}`);
|
|
57
|
+
engine.close();
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 📖 Official Documentation & Benchmarks
|
|
64
|
+
- [Official Architecture & API Reference](https://uno-km.vercel.app/lib/vision/)
|
|
65
|
+
- [Ecosystem Metrics & Registry Stats](https://uno-km.vercel.app/foundation/metrics)
|
|
66
|
+
- [AMEVA Open-Source Foundation Portal](https://uno-km.vercel.app/foundation/index.html)
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 📄 License
|
|
71
|
+
Licensed under the Apache-2.0 License. Copyright (c) 2026 Eunho Kim ([@uno-km](https://github.com/uno-km)).
|
package/README.pypi.md
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
[](https://pypi.org/project/termux-vision/)
|
|
5
5
|
[](https://github.com/uno-km/termux-vision)
|
|
6
6
|
|
|
7
|
-
>
|
|
8
|
-
> *Zero-Dependency On-Device Computer Vision & Multimodal VLM Inference Engine for Android Termux*
|
|
7
|
+
> **디바이스 리소스를 활용한 안드로이드 Termux 제로 디펜던시 온디바이스 컴퓨터 비전 & VLM 멀티모달 추론 엔진**
|
|
8
|
+
> *Zero-Dependency On-Device Computer Vision & Multimodal VLM Inference Engine Utilizing Device Resources for Android Termux*
|
|
9
9
|
|
|
10
10
|
## Installation
|
|
11
11
|
|
|
@@ -17,15 +17,20 @@ pip install termux-vision
|
|
|
17
17
|
|
|
18
18
|
```python
|
|
19
19
|
import termux_vision as tv
|
|
20
|
+
|
|
21
|
+
# 1. Zero-Dependency Spatial Filtering (0.01s ultra-fast)
|
|
20
22
|
img = tv.io.load_image("photo.jpg")
|
|
21
23
|
edges = tv.cv.canny(tv.transforms.to_grayscale(img), 40, 120)
|
|
24
|
+
|
|
25
|
+
# 2. On-Device VLM Multimodal Inference with 4-Tier Quality Presets
|
|
22
26
|
with tv.vlm.load("qwen2-vl-2b-q4", quality="optimal") as engine:
|
|
23
27
|
res = engine.describe("photo.jpg", prompt="Describe this scene in detail.", quality="optimal")
|
|
24
28
|
print(f"Generated ({res.metrics.tokens_per_second:.1f} t/s): {res.text}")
|
|
29
|
+
|
|
25
30
|
```
|
|
26
31
|
|
|
27
32
|
## Description
|
|
28
|
-
Eliminates heavy C++ dependencies by integrating SIMD NEON spatial image transforms with on-device VLM (Qwen2-VL, SmolVLM) multi-tier resolution presets (fast, optimal, high, original)
|
|
33
|
+
Eliminates heavy C++ dependencies by integrating SIMD NEON spatial image transforms with on-device VLM (Qwen2-VL, SmolVLM) multi-tier resolution presets (fast, optimal, high, original) utilizing device resources under strict memory isolation.
|
|
29
34
|
|
|
30
35
|
## Documentation
|
|
31
36
|
- [Official Documentation & API Reference](https://uno-km.vercel.app/lib/vision/)
|
package/package.json
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "termux-vision",
|
|
3
|
-
"version": "1.1.
|
|
4
|
-
"description": "
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"types": "index.d.ts",
|
|
7
|
-
"bin": {
|
|
8
|
-
"termux-vision": "bin/cli.js",
|
|
9
|
-
"tv": "bin/cli.js"
|
|
10
|
-
},
|
|
11
|
-
"files": [
|
|
12
|
-
"index.js",
|
|
13
|
-
"index.d.ts",
|
|
14
|
-
"bin",
|
|
15
|
-
"lib",
|
|
16
|
-
"README.md",
|
|
17
|
-
"LICENSE",
|
|
18
|
-
"NOTICE"
|
|
19
|
-
],
|
|
20
|
-
"scripts": {
|
|
21
|
-
"test": "node tests/node_smoke.test.js"
|
|
22
|
-
},
|
|
23
|
-
"keywords": [
|
|
24
|
-
"termux",
|
|
25
|
-
"vision",
|
|
26
|
-
"vlm",
|
|
27
|
-
"multimodal",
|
|
28
|
-
"computer-vision",
|
|
29
|
-
"smolvlm",
|
|
30
|
-
"qwen2-vl",
|
|
31
|
-
"edge-ai",
|
|
32
|
-
"on-device-ai",
|
|
33
|
-
"vulkan",
|
|
34
|
-
"arm64",
|
|
35
|
-
"android",
|
|
36
|
-
"llama-cli",
|
|
37
|
-
"gguf",
|
|
38
|
-
"canny",
|
|
39
|
-
"haar-cascade",
|
|
40
|
-
"open-source"
|
|
41
|
-
],
|
|
42
|
-
"author": "uno-km (AMEVA Foundation) <dev@amevafoundation.org>",
|
|
43
|
-
"license": "Apache-2.0",
|
|
44
|
-
"homepage": "https://uno-km.vercel.app/lib/vision/",
|
|
45
|
-
"repository": {
|
|
46
|
-
"type": "git",
|
|
47
|
-
"url": "git+https://github.com/uno-km/termux-vision.git"
|
|
48
|
-
},
|
|
49
|
-
"bugs": {
|
|
50
|
-
"url": "https://github.com/uno-km/termux-vision/issues"
|
|
51
|
-
},
|
|
52
|
-
"dependencies": {
|
|
53
|
-
"ameva-vulkan-runtime": ">=1.0.0"
|
|
54
|
-
},
|
|
55
|
-
"engines": {
|
|
56
|
-
"node": ">=16.0.0"
|
|
57
|
-
}
|
|
58
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "termux-vision",
|
|
3
|
+
"version": "1.1.2",
|
|
4
|
+
"description": "On-device computer vision & VLM multimodal inference framework utilizing device resources for Android Termux & ARM64",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"types": "index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"termux-vision": "bin/cli.js",
|
|
9
|
+
"tv": "bin/cli.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"index.js",
|
|
13
|
+
"index.d.ts",
|
|
14
|
+
"bin",
|
|
15
|
+
"lib",
|
|
16
|
+
"README.md",
|
|
17
|
+
"LICENSE",
|
|
18
|
+
"NOTICE"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"test": "node tests/node_smoke.test.js"
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"termux",
|
|
25
|
+
"vision",
|
|
26
|
+
"vlm",
|
|
27
|
+
"multimodal",
|
|
28
|
+
"computer-vision",
|
|
29
|
+
"smolvlm",
|
|
30
|
+
"qwen2-vl",
|
|
31
|
+
"edge-ai",
|
|
32
|
+
"on-device-ai",
|
|
33
|
+
"vulkan",
|
|
34
|
+
"arm64",
|
|
35
|
+
"android",
|
|
36
|
+
"llama-cli",
|
|
37
|
+
"gguf",
|
|
38
|
+
"canny",
|
|
39
|
+
"haar-cascade",
|
|
40
|
+
"open-source"
|
|
41
|
+
],
|
|
42
|
+
"author": "uno-km (AMEVA Foundation) <dev@amevafoundation.org>",
|
|
43
|
+
"license": "Apache-2.0",
|
|
44
|
+
"homepage": "https://uno-km.vercel.app/lib/vision/",
|
|
45
|
+
"repository": {
|
|
46
|
+
"type": "git",
|
|
47
|
+
"url": "git+https://github.com/uno-km/termux-vision.git"
|
|
48
|
+
},
|
|
49
|
+
"bugs": {
|
|
50
|
+
"url": "https://github.com/uno-km/termux-vision/issues"
|
|
51
|
+
},
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"ameva-vulkan-runtime": ">=1.0.0"
|
|
54
|
+
},
|
|
55
|
+
"engines": {
|
|
56
|
+
"node": ">=16.0.0"
|
|
57
|
+
}
|
|
58
|
+
}
|